Disponible con licencia de Image Analyst.
Resumen
Ejecuta un modelo de aprendizaje profundo entrenado en un ráster de entrada para generar una clase de entidad con los objetos que encuentre. Las entidades pueden ser cuadros o polígonos de delimitación alrededor de los objetos encontrados o puntos en el centro de los objetos.
Esta herramienta requiere un archivo de definición de modelo que contenga información del modelo entrenado. El modelo puede entrenarse usando la herramienta Entrenar un modelo de aprendizaje profundo o mediante software de entrenamiento de terceros como, por ejemplo, TensorFlow, PyTorch o Keras. El archivo de definición de modelo puede ser un archivo JSON de definición de modelo de Esri (.emd) o un paquete de modelo de aprendizaje profundo, y debe contener la ruta a la función ráster de Python que se llamará para procesar cada objeto y la ruta al archivo de modelo de aprendizaje profundo binario entrenado.
Uso
Debe instalar la API de Python de marco de aprendizaje profundo adecuada (como TensorFlow, PyTorch o Keras) en el entorno de Python de ArcGIS Pro; de lo contrario, se producirá un error al agregar el archivo de definición de modelo de Esri a la herramienta. La información de marco adecuada se obtiene del creador del archivo de definición de modelo de Esri.
Para configurar su equipo para usar marcos de aprendizaje profundo en ArcGIS Pro, consulte Instalar marcos de aprendizaje profundo para ArcGIS.
Esta herramienta llama a una API de Python de aprendizaje profundo de terceros (como TensorFlow, PyTorch o Keras) y usa la función ráster de Python especificada para procesar cada objeto.
Ejemplos de casos de uso de esta herramienta se encuentran en la página de GitHub sobre la función ráster de Python de Esri. También puede escribir módulos de Python personalizados con los siguientes ejemplos e instrucciones del repositorio de GitHub.
El valor del parámetro definición de modelo de Esri puede ser un archivo JSON de definición de modelo de Esri (.emd), una cadena de caracteres JSON o un paquete de modelo de aprendizaje profundo (.dlpk). Una cadena de caracteres JSON es útil cuando esta herramienta se utiliza en el servidor para pegar la cadena de caracteres JSON, en lugar de cargar el archivo .emd. El archivo .dlpk debe almacenarse localmente.
See the sample below for the .emd file.
{ "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] } ] }
Use the Non Maximum Suppression parameter to identify and remove duplicate features from the object detection.
La herramienta puede procesar imágenes de entrada que estén en el espacio de mapa o en el espacio de píxeles. Las imágenes en el espacio de mapa se encuentran en un sistema de coordenadas basado en mapa. Las imágenes en el espacio de píxeles están en un espacio de imagen sin procesar, sin rotación ni distorsión. El sistema de referencia puede especificarse al generar los datos de entrenamiento en la herramienta Exportar datos de entrenamiento para aprendizaje profundo usando el parámetro Sistema de referencia. Si el modelo se entrena en un software de entrenamiento de terceros, el sistema de referencia debe especificarse en el archivo .emd usando el parámetro ImageSpaceUsed , que puede establecerse en MAP_SPACE o PIXEL_SPACE.
El ráster de entrada puede ser un ráster simple, varios rásteres o una clase de entidad con imágenes adjuntas. Para obtener más información sobre los adjuntos, consulte Agregar o eliminar archivos adjuntos.
Para obtener información sobre los requisitos para ejecutar esta herramienta y los problemas que pueden presentarse, consulte Preguntas frecuentes sobre el aprendizaje profundo.
Para obtener más información sobre el aprendizaje profundo, consulte Aprendizaje profundo en ArcGIS Pro.
Sintaxis
DetectObjectsUsingDeepLearning(in_raster, out_detected_objects, in_model_definition, {arguments}, {run_nms}, {confidence_score_field}, {class_value_field}, {max_overlap_ratio}, {processing_mode})
Parámetro | Explicación | Tipo de datos |
in_raster | The input image used to detect objects. The input can be a single raster or multiple rasters in a mosaic dataset, image service, or folder of images. A feature class with image attachments is also supported. | Raster Dataset; Raster Layer; Mosaic Layer; Image Service; MapServer; Map Server Layer; Internet Tiled Layer; Folder; Feature Layer; Feature Class |
out_detected_objects | The output feature class that will contain geometries circling the object or objects detected in the input image. | Feature Class |
in_model_definition | El valor del parámetro in_model_definition puede ser un archivo JSON de definición de modelo de Esri (.emd), una cadena de caracteres JSON o un paquete de modelo de aprendizaje profundo (.dlpk). Una cadena de caracteres JSON es útil cuando esta herramienta se utiliza en el servidor para pegar la cadena de caracteres JSON, en lugar de cargar el archivo .emd. El archivo .dlpk debe almacenarse localmente. Contiene la ruta al archivo de modelo binario de aprendizaje profundo, la ruta a la función ráster de Python que se va a usar y otros parámetros, como el tamaño de tesela preferido o el relleno. | File; String |
arguments [arguments,...] (Opcional) | Los argumentos de función definidos en la clase de función ráster de Python. Aquí es donde enumera los argumentos y parámetros de aprendizaje profundo adicionales para experimentos y refinamiento, como un umbral de confianza para ajustar la sensibilidad. La herramienta rellena los nombres de los argumentos a partir de la lectura del módulo de Python. | Value Table |
run_nms (Opcional) | Specifies whether nonmaximum suppression will be performed, in which duplicate objects are identified and the duplicate features with lower confidence value are removed.
| Boolean |
confidence_score_field (Opcional) | The name of the field in the feature class that contains the confidence scores as output by the object detection method. This parameter is required when the NMS keyword for the run_nms parameter is used. | String |
class_value_field (Opcional) | El nombre del campo de valor de clase de la clase de entidad de entrada. Si el nombre de campo no se especifica, se utilizará un campo Classvalue o Value. Si estos campos no existen, se identificará que todos los registros pertenecen a una sola clase. | String |
max_overlap_ratio (Opcional) | El ratio de superposición máximo para dos entidades de superposición, definido como la relación del área de intersección sobre el área de combinación. El valor predeterminado es 0. | Double |
processing_mode (Opcional) | Especifica cómo se procesarán todos los elementos de ráster en un dataset de mosaico o un servicio de imágenes. Este parámetro se aplica si el ráster de entrada es un dataset de mosaico o un servicio de imágenes.
| String |
Muestra de código
This example creates a feature class based on object detection.
# Import system modules
import arcpy
from arcpy.ia import *
# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")
DetectObjectsUsingDeepLearning("c:/detectobjects/moncton_seg.tif",
"c:/detectobjects/moncton_seg.shp", "c:/detectobjects/moncton.emd",
"padding 0; threshold 0.5; batch_size 4", "NO_NMS", "Confidence",
"Class", 0, "PROCESS_AS_MOSAICKED_IMAGE")
This example creates a feature class based on object detection.
# Import system modules
import arcpy
from arcpy.ia import *
"""
Usage: DetectObjectsUsingDeepLearning( in_raster, out_detected_objects,
in_model_definition, {arguments}, {run_nms}, {confidence_score_field},
{class_value_field}, {max_overlap_ratio}, {processing_mode})
"""
# Set local variables
in_raster = "c:/classifydata/moncton_seg.tif"
out_detected_objects = "c:/detectobjects/moncton.shp"
in_model_definition = "c:/detectobjects/moncton_sig.emd"
model_arguments = "padding 0; threshold 0.5; batch_size 4"
run_nms = "NO_NMS"
confidence_score_field = "Confidence"
class_value_field = "Class"
max_overlap_ratio = 0
processing_mode = "PROCESS_AS_MOSAICKED_IMAGE"
# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")
# Execute
DetectObjectsUsingDeepLearning( in_raster, out_detected_objects,
in_model_definition, model_arguments, run_nms, confidence_score_field,
class_value_field, max_overlap_ratio, processing_mode)
Entornos
Información de licenciamiento
- Basic: Requiere Image Analyst
- Standard: Requiere Image Analyst
- Advanced: Requiere Image Analyst
Temas relacionados
- An overview of the Deep Learning toolset
- GUID-3193C25B-78BB-4BFF-986C-23071BA1F76B
- Train Deep Learning Model
- Buscar una herramienta de geoprocesamiento
- Compute Accuracy For Object Detection
- Classify Objects Using Deep Learning
- Classify Pixels Using Deep Learning
- Exportar datos de formación para aprendizaje profundo