The Detect Objects Using Deep Learning tool runs a trained deep learning model on an input raster to produce a feature class containing the objects it finds. The features can be polygons around the objects found, or points at the centers of the found objects.
Note:
This tool is now available in Map Viewer, the modern map-making tool in ArcGIS Enterprise. To learn more, see Detect Objects Using Deep Learning (Map Viewer).
To run this tool, the portal must be configured for raster analysis.
If you do not see this tool in Map Viewer Classic, contact your organization administrator. Your portal may not be configured for raster analysis, or you may not have the privileges required to run the tool.
Workflow diagram
Examples
- Given an image of a neighborhood, detect the location of every roof with a solar panel.
- Given an image of wilderness in northern Canada, detect the location of every glacial lake.
Usage notes
With this tool running, the raster analysis server calls a third-party deep learning Python API and uses the specific Python raster function to process each raster tile.
The input deep learning model for this tool must be a deep learning package (.dlpk) item stored in your portal. You can generate a .dlpk item using the Train Deep Learning Model geoprocessing tool in ArcGIS Pro or the ArcGIS REST API raster analysis tool.
After the input model is selected or specified, model arguments are obtained from the raster analysis server. The tool may fail to obtain this information if the model is invalid or if the raster analysis server isn't properly configured for deep learning.
The input .dlpk item must include an Esri model definition file (.emd). See the sample .emd file below.
{
"Framework" :"TensorFlow",
"ModelConfiguration": "ObjectDetectionAPI",
"ModelFile": ".\\CoconutTreeDetection.model",
"ModelType": "ObjectDetection",
"ImageHeight": 850,
"ImageWidth": 850,
"ExtractBands": [0,1,2],
"ImageSpaceUsed": "MAP_SPACE"
"Classes": [
{
"Value": 0,
"Name": "CoconutTree",
"Color": [0, 255, 0]
}
]
}
Check the box to turn on Non Maximum Suppression to identify and remove duplicate features from the object detection.
If Use current map extent is checked, only the pixels that are visible in the current map extent will be analyzed. If unchecked, the entire input imagery layer will be analyzed.
The parameters for this tool are listed in the following table:
Parameter | Explanation |
---|---|
Choose image used to detect objects | The input image that will be used to classify objects. |
Choose deep learning model used to detect objects | The input deep learning package (.dlpk) item. The deep learning package contained the Esri model definition JSON file (.emd), the deep learning binary model file, and optionally, the Python raster function to be used. |
Specify deep learning model arguments | The function arguments are defined in the Python raster function referenced by the input model. This is where you list additional deep learning parameters and arguments for refinement, such as a confidence threshold for adjusting sensitivity. The names of the arguments are populated by the tool from reading the Python module. |
Remove duplicate features from the output (optional) | Specifies whether nonmaximum suppression will be performed in which duplicate found objects are identified and the duplicated feature with the lower confidence value is removed.
|
Confidence score field | The field in the feature service that will contain the confidence scores output by the object detection method. This parameter is required when the Non maximum suppression parameter is checked. |
Class value field | The class value field in the output feature service. If not specified, the tool will use the standard class value fields Classvalue and Value. If these fields do not exist, all features will be treated as the same object class. This parameter is required when the Non maximum suppression parameter is checked. |
Maximum overlap ratio | The maximum overlap ratio for two overlapping features, which is defined as the ratio of intersection area over union area. The default is 0. This parameter is required when the Non maximum suppression parameter is checked. |
Processing mode | Specifies how all raster items in an image service will be processed.
|
Result layer name | The name of the layer that will be created in My Content and added to the map. The default name is based on the tool name and the input layer name. If the layer already exists, you will be prompted to provide another name. You can specify the name of a folder in My Content where the result will be saved using the Save result in drop-down box. |
Environments
Analysis environment settings are additional parameters that affect a tool's results. You can access the tool's analysis environment settings by clicking the gear icon at the top of the tool pane.
This tool honors the following Analysis Environments:
- Output coordinate system—Specifies the coordinate system of the output layer.
- Extent—Specifies the area to be used for analysis.
- Cell size—The cell size to use in the output layer.
- Mask—Specifies a mask layer, where only the cells that fall within the mask area will be used for analysis.
- Parallel processing factor—Controls the raster processing CPU or GPU instances.
- Processor type—Specifies whether to use the GPU or the CPU to process data.
Similar tools and raster functions
Use the Detect Objects Using Deep Learning tool to detect objects in an image. Other tools may be useful in solving similar problems.
Map Viewer Classic analysis tools and raster functions
Use the Classify Objects Using Deep Learning tool to detect the location of objects in an image. Use the Classify Pixels Using Deep Learning tool to classify each pixel in an image.
ArcGIS Pro analysis tools and raster functions
The Detect Objects Using Deep Learning geoprocessing tool is available in the Image Analyst toolbox. Other tools in the Deep Learning toolset perform deep learning workflows.
ArcGIS Enterprise developer resources
If you are working in ArcGIS REST API, use the Detect Objects Using Deep Learning operation.
If you are working in ArcGIS API for Python, perform deep learning tasks using the arcgis.learn module.