Clasificar píxeles con aprendizaje profundo (Herramientas de Image Analyst)
Resumen
Ejecuta un modelo de aprendizaje profundo entrenado en un ráster de entrada para generar un ráster clasificado, donde cada píxel válido tiene una etiqueta de clase asignada.
Esta herramienta requiere un archivo de definición de modelo que contenga información del modelo entrenado. El modelo se puede entrenar usando la herramienta Entrenar un modelo de aprendizaje profundo o mediante software de entrenamiento de terceros como PyTorch. 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 PyTorch) 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.
Esta herramienta llama a una API de Python de aprendizaje profundo de terceros (como PyTorch) 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 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.
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.
El rendimiento de la herramienta puede mejorarse aumentando el tamaño del lote; sin embargo, conforme aumenta el tamaño del lote se utiliza más memoria. Si se produce un error de memoria insuficiente, utilice un tamaño de lote más pequeño. El valor de batch_size se puede ajustar con el parámetro Argumentos.
Los tamaños de lote son números cuadrados, como 1, 4, 9, 16, 25, 64, etc. Si el valor de entrada no es un número cuadrado, se utiliza el valor cuadrado más alto posible. Por ejemplo, si se especifica un valor de 6, el tamaño de lote se establece en 4.
Esta herramienta admite y utiliza varias GPU, si están disponibles. Para utilizar una GPU específica, determine el entorno Id. de GPU. Cuando el Id. de GPU no se define, la herramienta todas las GPU disponibles. Esta es la opción predeterminada.
Cuando el entorno Tipo de procesador se configura como CPU y el entorno Factor de procesamiento en paralelo no se especifica, la herramienta utilizará un valor de Factor de procesamiento en paralelo del 50 %.
La entrada puede ser un solo ráster, varios rásteres de un dataset de mosaico, un servicio de imágenes, una carpeta de imágenes o una clase de entidad con imágenes adjuntas.
Raster Dataset; Raster Layer; Mosaic Layer; Image Service; Map Server; Map Server Layer; Internet Tiled Layer; Folder; Feature Layer; Feature Class
Definición de modelo
El valor del parámetro Definición de modelo 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
Argumentos
(Opcional)
La información del parámetro Definición de modelo se utilizará para rellenar este parámetro. Estos argumentos varían en función de la arquitectura del modelo. Los siguientes son los argumentos de modelo admitidos para los modelos entrenados en ArcGIS. Los modelos preentrenados de ArcGIS y los modelos de aprendizaje profundo personalizados pueden tener argumentos adicionales compatibles con la herramienta.
batch_size—Número de teselas de imágenes procesadas en cada paso de la inferencia del modelo. Esto depende de la memoria de la tarjeta gráfica. El argumento está disponible para todas las arquitecturas del modelo.
direction—La imagen se convierte de un dominio a otro. Las opciones son AtoB y BtoA. El argumento solo está disponible para la arquitectura CycleGAN. Para obtener información sobre este argumento, consulte [Funcionamiento de CycleGAN] (https://links.esri.com/DevHelp_HowCycleGANWorks).
merge_policy—Política para fusionar predicciones aumentadas. Las opciones disponibles son mean, max y min. Solo es aplicable cuando se utiliza el aumento del tiempo de prueba. El argumento está disponible para las arquitecturas Multi Task Road Extractor y ConnectNet. Si IsEdgeDetection está presente en el archivo .emd del modelo, las arquitecturas BDCN Edge Detector, HED Edge Detector y MMSegmentation también están disponibles.
n_timestep—Número de periodos de tiempo que se utilizarán. El valor predeterminado es 200. Se puede aumentar y disminuir según la calidad de las generaciones. El argumento solo se admite para la superresolución con arquitectura de modelo de base SR3.
padding—Número de píxeles en el borde de las teselas de imágenes desde los cuales se combinarán las predicciones de las teselas adyacentes. Para suavizar la salida a la vez que se reducen los artefactos, aumente el valor. El valor máximo del relleno puede ser la mitad del valor del tamaño de tesela. El argumento está disponible para todas las arquitecturas del modelo.
predict_background—Especifica si se clasificará la clase de fondo. Cuando es verdadero, la clase de fondo también se clasifica. El argumento está disponible para las arquitecturas UNET, PSPNET, DeepLab, MMSegmentation y SAMLoRA.
return_probability_raster—Especifica si la salida será un ráster de probabilidad. Cuando es true, la salida será un ráster de probabilidad. Si es false, la salida será un ráster clasificado binario. El valor predeterminado es falso. Si ArcGISLearnVersion pertenece a la versión 1.8.4 u otra posterior en el archivo .emd del modelo, las arquitecturas MultiTaskRoadExtractor y ConnectNet están disponibles. Si ArcGISLearnVersion es 1.8.4 o posterior e IsEdgeDetection está presente en el archivo .emd del modelo, las arquitecturas BDCN Edge Detector, HED Edge Detector y MMSegmentation también están disponibles.
sampling_type—Tipo de muestreo que se utilizará. Hay dos tipos de muestreo disponibles: ddim y ddpm. El predeterminado es ddim, que genera resultados en menos intervalos de tiempo en comparación con ddpm. El argumento solo se admite para la superresolución con arquitectura de modelo de base SR3.
schedule—Cadena de caracteres opcional que establece el tipo de programación. La programación predeterminada es la misma que la del modelo en el que se entrenó. El argumento solo se admite para la superresolución con arquitectura de modelo de base SR3.
test_time_augmentation—Especifica si el aumento del tiempo de prueba se realizará al predecir. Si se establece en True, las predicciones de variantes rotadas y volteadas de la imagen de entrada se fusionarán en la salida final. El argumento está disponible para las arquitecturas UNET, PSPNET, DeepLab, HEDEdgeDetector, BDCNEdgeDetector, ConnectNet, MMSegmentation, Multi-Task Road Extractor y SAMLoRA.
tile_size—Ancho y altura de las teselas de imágenes en las que se dividirán las imágenes para la predicción. El argumento solo está disponible para la arquitectura CycleGAN.
thinning—Especifica si el grosor de los bordes previstos se reducirá o si estos se reducirán a su esqueleto. Las opciones son True y False. Si IsEdgeDetection está presente en el archivo .emd del modelo, las arquitecturas BDCN Edge Detector, HED Edge Detector y MMSegmentation están disponibles.
threshold—Las predicciones con una puntuación de confianza superior a este umbral se incluyen en el resultado. Los valores permitidos son entre 0 y 1,0. Si ArcGISLearnVersion pertenece a la versión 1.8.4 u otra posterior en el archivo .emd del modelo, las arquitecturas MultiTaskRoadExtractor y ConnectNet están disponibles. Si ArcGISLearnVersion es 1.8.4 o posterior e IsEdgeDetection está presente en el archivo .emd del modelo, las arquitecturas BDCN Edge Detector, HED Edge Detector y MMSegmentation también están disponibles.
Columnas de la tabla de valores:
Name—The name of the function argument.
Value—The value of the function argument.
Value Table
Modo de procesamiento
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.
Procesar como imagen en mosaico—Se creará un mosaico con todos los elementos de ráster del dataset de mosaico o del servicio de imágenes y se procesarán. Esta es la opción predeterminada.
Procesar todos los elementos de ráster por separado—Todos los elementos de ráster del dataset de mosaico o del servicio de imágenes se procesarán como imágenes separadas.
String
Carpeta de salida
(Opcional)
Carpeta en la que se almacenarán los rásteres clasificados de salida. Se generará un dataset de mosaico utilizando los rásteres clasificados de esta carpeta.
Este parámetro es obligatorio si el ráster de entrada es una carpeta de imágenes o un dataset de mosaico en el que se procesarán todos los elementos por separado. El valor predeterminado es una carpeta de la carpeta del proyecto.
Folder
Entidades de salida
(Opcional)
Clase de entidad en la cual se almacenarán los rásteres clasificados de salida.
Este parámetro es obligatorio si el ráster de entrada es una clase de entidad de imágenes.
Si la clase de entidad ya existe, los resultados se agregarán a la clase de entidad existente.
Feature Class
Sobrescribir datos adjuntos
(Opcional)
Especifica si los datos adjuntos de la imagen existente se sobrescriben.
Este parámetro solo es válido cuando el valor del parámetro Ráster de entrada es una clase de entidad con adjuntos de imagen.
Activado—La clase de entidad existente se sobrescribirá con los nuevos datos adjuntos actualizados.
Desactivado—Los datos adjuntos de la imagen existente no se sobrescribirán y los datos adjuntos de la imagen nueva se guardarán en una clase de entidad nueva. Cuando se especifica esta opción, el parámetro Entidades de salida debe tener un valor. Esta es la opción predeterminada.
Boolean
Utilizar espacio de píxeles
(Opcional)
Especifica si la inferencia se realizará en imágenes en espacio de píxeles.
Activado—La inferencia se realizará en el espacio de píxeles y la salida se transformará de nuevo en el espacio de mapa. Esta opción es útil cuando se utilizan imágenes oblicuas o imágenes de callejero, que pueden distorsionar las entidades utilizando el espacio de mapa.
Desactivado—La inferencia se hará en el espacio de mapa. Esta es la opción predeterminada.
Boolean
Valor de retorno
Etiqueta
Explicación
Tipo de datos
Dataset ráster de salida
Nombre del ráster o dataset de mosaico que contiene el resultado.
La entrada puede ser un solo ráster, varios rásteres de un dataset de mosaico, un servicio de imágenes, una carpeta de imágenes o una clase de entidad con imágenes adjuntas.
Raster Dataset; Raster Layer; Mosaic Layer; Image Service; Map Server; Map Server Layer; Internet Tiled Layer; Folder; Feature Layer; 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)
La información del parámetro in_model_definition se utilizará para establecer los valores predeterminados de este parámetro. Estos argumentos varían en función de la arquitectura del modelo. Los siguientes son los argumentos de modelo admitidos para los modelos entrenados en ArcGIS. Los modelos preentrenados de ArcGIS y los modelos de aprendizaje profundo personalizados pueden tener argumentos adicionales compatibles con la herramienta.
batch_size—Número de teselas de imágenes procesadas en cada paso de la inferencia del modelo. Esto depende de la memoria de la tarjeta gráfica. El argumento está disponible para todas las arquitecturas del modelo.
direction—La imagen se convierte de un dominio a otro. Las opciones son AtoB y BtoA. El argumento solo está disponible para la arquitectura CycleGAN. Para obtener información sobre este argumento, consulte [Funcionamiento de CycleGAN] (https://links.esri.com/DevHelp_HowCycleGANWorks).
merge_policy—Política para fusionar predicciones aumentadas. Las opciones disponibles son mean, max y min. Solo es aplicable cuando se utiliza el aumento del tiempo de prueba. El argumento está disponible para las arquitecturas Multi Task Road Extractor y ConnectNet. Si IsEdgeDetection está presente en el archivo .emd del modelo, las arquitecturas BDCN Edge Detector, HED Edge Detector y MMSegmentation también están disponibles.
n_timestep—Número de periodos de tiempo que se utilizarán. El valor predeterminado es 200. Se puede aumentar y disminuir según la calidad de las generaciones. El argumento solo se admite para la superresolución con arquitectura de modelo de base SR3.
padding—Número de píxeles en el borde de las teselas de imágenes desde los cuales se combinarán las predicciones de las teselas adyacentes. Para suavizar la salida a la vez que se reducen los artefactos, aumente el valor. El valor máximo del relleno puede ser la mitad del valor del tamaño de tesela. El argumento está disponible para todas las arquitecturas del modelo.
predict_background—Especifica si se clasificará la clase de fondo. Cuando es verdadero, la clase de fondo también se clasifica. El argumento está disponible para las arquitecturas UNET, PSPNET, DeepLab, MMSegmentation y SAMLoRA.
return_probability_raster—Especifica si la salida será un ráster de probabilidad. Cuando es true, la salida será un ráster de probabilidad. Si es false, la salida será un ráster clasificado binario. El valor predeterminado es falso. Si ArcGISLearnVersion pertenece a la versión 1.8.4 u otra posterior en el archivo .emd del modelo, las arquitecturas MultiTaskRoadExtractor y ConnectNet están disponibles. Si ArcGISLearnVersion es 1.8.4 o posterior e IsEdgeDetection está presente en el archivo .emd del modelo, las arquitecturas BDCN Edge Detector, HED Edge Detector y MMSegmentation también están disponibles.
sampling_type—Tipo de muestreo que se utilizará. Hay dos tipos de muestreo disponibles: ddim y ddpm. El predeterminado es ddim, que genera resultados en menos intervalos de tiempo en comparación con ddpm. El argumento solo se admite para la superresolución con arquitectura de modelo de base SR3.
schedule—Cadena de caracteres opcional que establece el tipo de programación. La programación predeterminada es la misma que la del modelo en el que se entrenó. El argumento solo se admite para la superresolución con arquitectura de modelo de base SR3.
test_time_augmentation—Especifica si el aumento del tiempo de prueba se realizará al predecir. Si se establece en True, las predicciones de variantes rotadas y volteadas de la imagen de entrada se fusionarán en la salida final. El argumento está disponible para las arquitecturas UNET, PSPNET, DeepLab, HEDEdgeDetector, BDCNEdgeDetector, ConnectNet, MMSegmentation, Multi-Task Road Extractor y SAMLoRA.
tile_size—Ancho y altura de las teselas de imágenes en las que se dividirán las imágenes para la predicción. El argumento solo está disponible para la arquitectura CycleGAN.
thinning—Especifica si el grosor de los bordes previstos se reducirá o si estos se reducirán a su esqueleto. Las opciones son True y False. Si IsEdgeDetection está presente en el archivo .emd del modelo, las arquitecturas BDCN Edge Detector, HED Edge Detector y MMSegmentation están disponibles.
threshold—Las predicciones con una puntuación de confianza superior a este umbral se incluyen en el resultado. Los valores permitidos son entre 0 y 1,0. Si ArcGISLearnVersion pertenece a la versión 1.8.4 u otra posterior en el archivo .emd del modelo, las arquitecturas MultiTaskRoadExtractor y ConnectNet están disponibles. Si ArcGISLearnVersion es 1.8.4 o posterior e IsEdgeDetection está presente en el archivo .emd del modelo, las arquitecturas BDCN Edge Detector, HED Edge Detector y MMSegmentation también están disponibles.
Columnas de la tabla de valores:
Name—The name of the function argument.
Value—The value of the function argument.
Value Table
processing_mode
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.
PROCESS_AS_MOSAICKED_IMAGE—Se creará un mosaico con todos los elementos de ráster del dataset de mosaico o del servicio de imágenes y se procesarán. Esta es la opción predeterminada.
PROCESS_ITEMS_SEPARATELY—Todos los elementos de ráster del dataset de mosaico o del servicio de imágenes se procesarán como imágenes separadas.
String
out_classified_folder
(Opcional)
Carpeta en la que se almacenarán los rásteres clasificados de salida. Se generará un dataset de mosaico utilizando los rásteres clasificados de esta carpeta.
Este parámetro es obligatorio si el ráster de entrada es una carpeta de imágenes o un dataset de mosaico en el que se procesarán todos los elementos por separado. El valor predeterminado es una carpeta de la carpeta del proyecto.
Folder
out_featureclass
(Opcional)
Clase de entidad en la cual se almacenarán los rásteres clasificados de salida.
Este parámetro es obligatorio si el ráster de entrada es una clase de entidad de imágenes.
Si la clase de entidad ya existe, los resultados se agregarán a la clase de entidad existente.
Feature Class
overwrite_attachments
(Opcional)
Especifica si los datos adjuntos de la imagen existente se sobrescriben.
Este parámetro solo es válido cuando el valor del parámetro in_raster es una clase de entidad con datos adjuntos de imagen.
OVERWRITE—La clase de entidad existente se sobrescribirá con los nuevos datos adjuntos actualizados.
NO_OVERWRITE—Los datos adjuntos de la imagen existente no se sobrescribirán y los datos adjuntos de la imagen nueva se guardarán en una clase de entidad nueva. Cuando se especifica esta opción, el parámetro out_featureclass debe tener un valor. Esta es la opción predeterminada.
Boolean
use_pixelspace
(Opcional)
Especifica si la inferencia se realizará en imágenes en espacio de píxeles.
PIXELSPACE—La inferencia se realizará en el espacio de píxeles y la salida se transformará de nuevo en el espacio de mapa. Esta opción es útil cuando se utilizan imágenes oblicuas o imágenes de callejero, que pueden distorsionar las entidades utilizando el espacio de mapa.
NO_PIXELSPACE—La inferencia se hará en el espacio de mapa. Esta es la opción predeterminada.
Boolean
Valor de retorno
Nombre
Explicación
Tipo de datos
out_classified_raster
Nombre del ráster o dataset de mosaico que contiene el resultado.
Raster
Muestra de código
Ejemplo 1 de ClassifyPixelsUsingDeepLearning (ventana de Python)
Este ejemplo clasifica un ráster en función de una clasificación de píxeles personalizada mediante la función ClassifyPixelsUsingDeepLearning.