GBDX

CrowdAI Road Density

The CrowdAI Road Density algorithm uses deep learning to detect roads at a pixel-level accuracy. A neural network is used to classify every pixel in the input image as road or non-road. Road density is computed by calculating the ratio of road pixels to total pixels per 1 sq km region. A GeoTiff color overlay is then created with colors corresponding to road density. This algorithm does not consider footpaths, driveways, railroads or parking lots to be roads.

GBDX Task Name: crowdai-road-density
Provider: CrowdAI Inc.
Input Data Support: DigitalGlobe Multispectral VNIR (4-band) or DigitalGlobe Multispectral VNIR (8-band)
Output Processing Result: GeoTiff color overlay with colors corresponding to road density.

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

Before: WorldView-3 image before road density has been processed

Before: WorldView-3 image before road density has been processed

After: WorldView-3 image after road density has been processed

After: WorldView-3 image after road density has been processed

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_Density/aop/"
output_location = "CrowdAI/Road_Density/task/"

# Auto ordering task parameters
order_task = gbdx.Task("Auto_Ordering", cat_id=cat_id)
order_task.impersonation_allowed = True
order_task.persist = True
data_loc = order_task.outputs.s3_location.value
tasks.append(order_task)

# AOP task parameters
# ortho_pixel_size of 0.5 is required.
aoptask = gbdx.Task(
    "AOP_Strip_Processor",
    data=data_loc,
    enable_acomp=True,
    enable_pansharpen=True,
    enable_dra=False,
    ortho_epsg="UTM",
    ortho_pixel_size="0.5"
)
aop_output = aoptask.outputs.data.value
tasks.append(aoptask)

# CrowdAI Road Density task parameters
crowdai_task = gbdx.Task('crowdai-road-density')
crowdai_task.inputs.data_in = aop_output
tasks.append(crowdai_task)

# Set up workflow save data
workflow = gbdx.Workflow(tasks)
workflow.savedata(aoptask.outputs.data, location=aop_output_location)
workflow.savedata(crowdai_task.outputs.data_out, location=output_location)

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, WorldView-3, and GeoEye-1 images are supported.

Output Processing Result

A neural network is used to classify every pixel in the input image as road or non-road. Road density is computed by calculating the ratio of road pixels to total pixels per 1 sq km region. A GeoTiff color overlay is then created with colors corresponding to road density. Output road density images are named {input_image_name}_density_mask.tif

Task Processing Options

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

CrowdAI reports accuracies of 0.72 recall, 0.73 precision, and F1 Score of 0.72.

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.

CrowdAI Road Density


The CrowdAI Road Density algorithm uses deep learning to detect roads at a pixel-level accuracy. A neural network is used to classify every pixel in the input image as road or non-road. Road density is computed by calculating the ratio of road pixels to total pixels per 1 sq km region. A GeoTiff color overlay is then created with colors corresponding to road density. This algorithm does not consider footpaths, driveways, railroads or parking lots to be roads.

GBDX Task Name: crowdai-road-density
Provider: CrowdAI Inc.
Input Data Support: DigitalGlobe Multispectral VNIR (4-band) or DigitalGlobe Multispectral VNIR (8-band)
Output Processing Result: GeoTiff color overlay with colors corresponding to road density.

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.

Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.