Detectar cambios con aprendizaje profundo (Image Analyst)

Disponible con licencia de Image Analyst.

Resumen

Ejecuta un modelo de aprendizaje profundo entrenado para detectar cambios entre dos rásteres.

Esta herramienta requiere un archivo de definición de modelo que contenga información del modelo entrenado. 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

  • Las entradas para esta herramienta son dos imágenes: una imagen de un momento anterior y una imagen de un momento más reciente. La salida es un dataset ráster clasificado que muestra el cambio entre las dos entradas de ráster.

  • Debe instalar la API de Python de marco de aprendizaje profundo adecuada (como TensorFlow o 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.

    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.

  • 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.

  • Pueden ser necesarios parámetros de entrada adicionales como tamaño de minilote, tamaño de relleno, etc.

  • Consulte el ejemplo siguiente para ver un archivo JSON de definición de modelo (.emd).

    Archivo JSON de definición de modelo de muestra

    
    {
       "Framework": "",
       "ModelConfiguration":" ",
       "ModelFile":"",
       "InferenceFunction":"",
       "ModelType":"",
       "ImageHeight":256,
       "ImageWidth":256,
       "ExtractBands":[0,1,2],
       "CropSizeFixed": 1,
       "BlackenAroundFeature": 1,
          "Classes": [
          {
             "Value": 0,
                "Name": "Building",
                "Color": [255, 0, 0]
               	}
       ]
    }

  • Aumentar el tamaño de lote puede mejorar el rendimiento de la herramienta; sin embargo, a medida que 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 cuadrado perfecto, se utiliza el valor cuadrado más alto posible. Por ejemplo, si se especifica un valor de 6, significa que el tamaño de lote se establece en 4.

  • 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.

Parámetros

EtiquetaExplicaciónTipo de datos
De ráster

Ráster de entrada antes del cambio.

Raster Dataset; Raster Layer; Mosaic Layer; Image Service; Map Server; Map Server Layer; Internet Tiled Layer
A ráster

Ráster de entrada tras el cambio.

Raster Dataset; Raster Layer; Mosaic Layer; Image Service; Map Server; Map Server Layer; Internet Tiled Layer
Ráster clasificado de salida

Ráster clasificado de salida que muestra el cambio.

Raster Dataset
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 dependiendo de la arquitectura del modelo. A continuación figuran argumentos de modelos compatibles con los modelos entrenados en ArcGIS. Los modelos preentrenados de ArcGIS y los modelos de aprendizaje profundo personalizados pueden tener argumentos adicionales que son compatibles con las herramientas.

  • 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.
  • 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.

Value Table

DetectChangeUsingDeepLearning(from_raster, to_raster, out_classified_raster, in_model_definition, {arguments})
NombreExplicaciónTipo de datos
from_raster

Ráster de entrada antes del cambio.

Raster Dataset; Raster Layer; Mosaic Layer; Image Service; Map Server; Map Server Layer; Internet Tiled Layer
to_raster

Ráster de entrada tras el cambio.

Raster Dataset; Raster Layer; Mosaic Layer; Image Service; Map Server; Map Server Layer; Internet Tiled Layer
out_classified_raster

Ráster clasificado de salida que muestra el cambio.

Raster Dataset
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 usará para configurar los valores predeterminados de este parámetro. Estos argumentos varían dependiendo de la arquitectura del modelo. A continuación figuran argumentos de modelos compatibles con los modelos entrenados en ArcGIS. Los modelos preentrenados de ArcGIS y los modelos de aprendizaje profundo personalizados pueden tener argumentos adicionales que son compatibles con las herramientas.

  • 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.
  • 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.

Value Table

Muestra de código

Ejemplo 1 de DetectChangeUsingDeepLearning (ventana de Python)

Este ejemplo ejecuta un modelo de aprendizaje profundo para hallar la diferencia entre dos imágenes.

# Import system modules 
import arcpy 
from arcpy.ia import * 


# Check out the ArcGIS Image Analyst extension license 
arcpy.CheckOutExtension("ImageAnalyst")


DetectChangeUsingDeepLearning("c://detectchange//input_image1.tif", 
     "c://detectchange//input_image2.tif", "c://detectchange//output_difference.tif", 
     "c://detectchange/detectBuilding.emd", "padding 0;score_threshold 0.6;batch_size 4")
Ejemplo 2 de DetectChangeUsingDeepLearning (script independiente)

Este ejemplo ejecuta un modelo de aprendizaje profundo para hallar la diferencia entre dos imágenes.

# Import system modules 
import arcpy 
from arcpy.ia import * 

""" 
Usage: DetectObjectsUsingDeepLearning(from_raster, to_raster, out_classified_raster, 
    in_model_definition, {model_arguments}) 
"""

# Check out the ArcGIS Image Analyst extension license 
arcpy.CheckOutExtension("ImageAnalyst")

# Set local variable
from_raster = r"c:/detectchange/input_image1.tif"
to_raster = r"c:/detectchange/input_image2.tif"
out_classified_raster = r"c:/detectchange/output_difference.tif"
in_model_definition = r"c:/ detectchange/detectbuilding.emd"

# arcpy.env.processorType = "GPU"
# arcpy.env.gpuId = 0

# Execute
DetectChangeUsingDeepLearning(from_raster, to_raster, out_classified_raster, 
    in_model_definition, "padding 0;score_threshold 0.6;batch_size 4")

Información de licenciamiento

  • Basic: Requiere Image Analyst
  • Standard: Requiere Image Analyst
  • Advanced: Requiere Image Analyst

Temas relacionados