The Classify Objects Using Deep Learning tool runs a trained deep learning model on an input raster and optional feature class to produce a feature class or table in which each input object or feature has an assigned class or category label.
Note:
This tool is now available in Map Viewer, the modern map-making tool in ArcGIS Enterprise on Kubernetes.
To run this tool, the organization must be configured for raster analytics.
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 and feature class identifying the location of houses, classify each house as either damaged or undamaged using a trained deep learning model.
- Given an image collection where each image depicts a single tree, classify each tree as either healthy or unhealthy using a trained deep learning model.
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": "Keras",
"ModelConfiguration":"KerasClassifier",
"ModelFile":"C:\\DeepLearning\\Damage_Classification_Model_V7.h5",
"ModelType":"ObjectClassification",
"ImageHeight":256,
"ImageWidth":256,
"ExtractBands":[0,1,2],
"CropSizeFixed": 1,
"BlackenAroundFeature": 1,
"ImageSpaceUsed": "MAP_SPACE",
"Classes": [
{
"Value": 0,
"Name": "Damaged",
"Color": [255, 0, 0]
},
{
"Value": 1,
"Name": "Undamaged",
"Color": [76, 230, 0]
}
]
}
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 classify objects | The input image that will be used to classify objects. |
Choose feature layer for objects (optional) | The point, line, or polygon input feature layer that identifies the location of each object to be classified and labelled. Each row in the input feature layer represents a single object. If no input feature layer is specified, it is assumed that each input image contains a single object to be classified. If the input image or images use a spatial reference, the output from the tool is a feature layer in which the extent of each image is used as the bounding geometry for each labelled feature. If the input image or images are not spatially referenced, the output from the tool is a table containing the image ID values and the class labels for each image. |
Choose deep learning model used to classify 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. |
Define class label field name (optional) | The name of the field that will contain the classification label in the output feature layer. If no field name is specified, a new field called ClassLabel will be generated in the output feature layer. |
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 settings button 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.
- Parallel processing factor—Controls the raster processing CPU or GPU instances.
- Processor type—Specifies whether the GPU or the CPU will be used to process data.
Similar tools and raster functions
Use the Classify Objects Using Deep Learning tool to classify objects in an image. Other tools may be useful in solving similar problems.
Map Viewer Classic analysis tools and raster functions
Use the Detect 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 Classify 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 Classify Objects Using Deep Learning operation.
If you are working in ArcGIS API for Python, perform deep learning tasks using the arcgis.learn module.