GBDX

CrowdAI Road Detector

The CrowdAI Road Detector algorithm uses deep learning to detect roads at a pixel-level accuracy. A neural network is used to classify every pixel as road or non-road.

GBDX Task Name: crowdai-road-detector
Provider: CrowdAI Inc.
Input Data Support: DigitalGlobe Multispectral VNIR (4-band) and DigitalGlobe Multispectral VNIR (8-band).
Output Processing Result: The output is a color-coded GeoTiff. Colored pixels are areas considered to be roads.

Notes:
This algorithm documentation aligns with the most recent (highest) task version number. Older versions of the algorithm task which remain on GBDX for backwards compatibility may have slightly different behavior or execution parameters.

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

Algorithm Output Images

After: WorldView-3 image after road detection

After: WorldView-3 image after road detection

QuickStart Example

This is a workflow example for basic processing.

Python


# Initialize the Environment.
from gbdxtools import Interface
gbdx = Interface()

tasks = []
cat_id = '104001002D1B2100'
aop_output_location = 'CrowdAI/Road_Detector/aop/'
task_output_location = 'CrowdAI/Road_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.enable_acomp = True
aop_task.inputs.enable_dra = True
aop_task.inputs.enable_pansharpen = True
aop_task.inputs.ortho_epsg = 'UTM'
aop_task.inputs.ortho_pixel_size = "0.5"
tasks.append(aop_task)

# Algorithm task parameters
crowdai_road_detector_task = gbdx.Task('crowdai-road-detector')
crowdai_road_detector_task.inputs.data_in = aop_task.outputs.data.value
tasks.append(crowdai_road_detector_task)

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

# Execute workflow
workflow.execute()

Input Data Support

This algorithm requires pan-sharpened imagery from a DigitalGlobe Multispectral VNIR sensor with a Ground Sampling Distance of 50 cm or less and an off-nadir angle of less than 10 degrees. WorldView-2 and WorldView-3 images are supported.

Output Processing Result

The output is a a raster file in TIFF format with cells being either road or non road. Output images are named {catalog_id}_roads_mask.tif

Task Processing Options

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

Name Required Default Valid Values Description
stride False N/A string The stride to use for prediction. A smaller stride means the algorithm will take smaller steps. A lower number means slower execution but higher quality-- since each pixel is the average of many predictions. Default is "64", max is "256"
data_in True N/A directory Input data directory.

The following table lists all crowdai-road-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 and Seasons

This algorithm was trained using data from the following countries, but the developer notes that all geographies should be suitable:

  • United States of America
  • Bolivia
  • Japan
  • Mexico
  • Indonesia
  • China

This algorithm does not consider the following features to be roads:

  • Footpaths
  • Bike Paths
  • Driveways
  • Parking Lots
  • Waterways
  • Railroads
  • Paths in golf courses
  • Deforestation paths
  • Ports
  • Beaches

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

Accuracy Verification and Validation

The algorithm developer has reported accuracies of 0.72 recall, 0.73 precision, and F1 Score of 0.72 for the verification and validation they have performed using a set of sample input testing datasets.

The algorithm provides best results for paved roads. However, unpaved and dirt roads are often detected, but at a lower accuracy.

Presence of abundant snow cover in fall and winter seasons should be avoided.

Processing Speed Benchmark

During algorithm certification, DigitalGlobe observed a processing time of approximately 58 minutes per 1 GB of pan-sharpened imagery

Contact

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