GBDX

CrowdAI Ship Detector

The algorithm locates every individual ship in the image. A neural network is used to determine the position and size of each ships. Minimum ship detection size is 7 meters in length.

Note: This GBDX algorithm is an extra-cost premium analytic, for information on how to purchase access please contact gbdx-support@digitalglobe.com.

GBDX Task Name: crowdai-ship-detector
AnswerFactory Recipe Name: Extract Ship from CrowdAI
Provider: CrowdAI Inc.
Input Data Support: Requires DigitalGlobe panchromatic imagery with 50cm GSD and an off-nadir angle of less than 10 degrees.
Output Processing Result: Output is a GeoJson file with ship bounding boxes.


Algorithm Output Screenshots

Before: WorldView 3 image before ship detection.

Before: WorldView 3 image before ship detection.

After: WorldView 3 image after ship detection.

After: WorldView 3 image after ship detection.

QuickStart Example

This is a workflow example for basic processing.

Python


# Initialize the Environment.
from gbdxtools import Interface

gbdx = Interface()

tasks = []
cat_id = "104001002F8DEE00"
aop_output_location = "CrowdAI/Ship_Detector/aop/"
task_output_location = "CrowdAI/Ship_Detector/task/"

# Auto ordering task parameters
order = gbdx.Task("Auto_Ordering")
order.inputs.cat_id = cat_id
order.impersonation_allowed = True
order.persist = True
order.timeout = 36000
order_data_loc = order.outputs.s3_location.value
tasks.append(order)

# AOP task parameters
aop_task = gbdx.Task("AOP_Strip_Processor")
aop_task.inputs.data = order_data_loc
aop_task.inputs.bands = "PAN"
aop_task.inputs.enable_acomp = False
aop_task.inputs.enable_dra = False
aop_task.inputs.enable_pansharpen = False
aop_task.inputs.ortho_epsg = "UTM"
aop_task.inputs.ortho_pixel_size = "0.5"
tasks.append(aop_task)

# Algorithm task parameters
crowdai_ship_detector_task = gbdx.Task("crowdai-ship-detector")
crowdai_ship_detector_task.inputs.data_in = aop_task.outputs.data.value
tasks.append(crowdai_ship_detector_task)

# Set up workflow save data
workflow = gbdx.Workflow(tasks)
workflow.savedata(aop_task.outputs.data, location=aop_output_location)
workflow.savedata(
    crowdai_ship_detector_task.outputs.data_out, location=task_output_location
)

# Execute workflow
workflow.execute()

Input Data Support

This algorithm requires panchromatic imagery from a DigitalGlobe sensor with a Ground Sampling Distance of 50cm. An off-nadir angle of less than 10 degrees. Images from WorldView-1, WorldView-2, WorldView-3 and GeoEye-1 sensors are supported.

Output Processing Result

The output is a GeoJson file with the detected ship length as a property.

Task Processing Options

The following table lists all crowdai-ship-detector input processing options.
Mandatory (optional) settings are listed as Required = True (Required = False).

Name Required Default Valid Values Description
data_in True N/A directory Input data directory.

The following table lists all crowdai-ship-detector output processing options.
Mandatory (optional) settings are listed as Required = True (Required = False).

Name Required Default Valid Values Description
data_out True N/A directory Output data directory.

Training/Testing Locations & Seasons

This algorithm has specifically been tuned for use in the United States. It does not detect Docks, Ships on land (other than dry-docks), or stationary floating objects, e.g. fish farms.

Note:Algorithms return the best results when your spatial processing area and temporal data acquisition timeframe is similar to the locations & seasons utilized when the algorithm was trained and tested.

Accuracy Verification & Validation

Coming Soon.

Note: The verification & validation was observed while testing the algorithm over select locations using the best possible input data which is not a guarantee of general algorithm accuracy.

Processing Speed Benchmark

Coming Soon

Contact

If you have any questions or issues with this task, please contact gbdx-support@digitalglobe.com.