Detectar objetos

Disponible con licencia de Image Analyst.

Para detectar objetos en imágenes de entrada, utilice la herramienta Detectar objetos mediante aprendizaje profundo, que genera cuadros delimitadores alrededor de objetos o entidades en una imagen para identificar su ubicación. La siguiente imagen es un ejemplo que detecta palmeras utilizando las herramientas de aprendizaje profundo de ArcGIS:

Detección de palmeras

Un flujo de trabajo típico de detección de objetos mediante aprendizaje profundo consta de tres pasos principales:

  1. Cree y exporte muestras de entrenamiento. Cree muestras de entrenamiento usando el panel Etiquetar objetos para aprendizaje profundo y use la herramienta Exportar datos de entrenamiento para aprendizaje profundo para convertir las muestras en datos de entrenamiento de aprendizaje profundo.
  2. Entrene el modelo de aprendizaje profundo. Utilice la herramienta Entrenar modelo de aprendizaje profundo para entrenar un modelo utilizando las muestras de entrenamiento que creó en el paso anterior.
  3. Realizar inferencias: utilice la herramienta Detectar objetos con aprendizaje profundo. Utilizará el modelo que ha creado en el paso 2.

Una vez finalizado el flujo de trabajo de detección de objetos, se recomienda realizar un análisis de control de calidad y revisar los resultados. Si no está satisfecho con los resultados, puede mejorar el modelo agregando más muestras de entrenamiento y volver a realizar el flujo de trabajo. Para ayudarle a revisar los resultados, utilice el panel Atributos. Para ayudar a validar la precisión de los resultados, utilice la herramienta Calcular la precisión de la detección de objetos.

Para ver más ejemplos, formatos de metadatos compatibles y arquitecturas de tipos de modelos, consulte Arquitecturas de modelos de aprendizaje profundo.

Crear y exportar muestras de entrenamiento

Cree un esquema de entrenamiento y muestras de entrenamiento, y exporte los datos de entrenamiento.

Si tiene muestras de entrenamiento existentes en un conjunto de datos ráster o una clase de entidades, puede utilizar la herramienta Exportar datos de entrenamiento para aprendizaje profundo y pasar a la sección Entrenar un modelo de aprendizaje profundo a continuación.

  1. Cree un esquema de entrenamiento.
    1. Agregue a un mapa la imagen que se utilizará para generar las muestras de entrenamiento.
    2. En el panel Contenido, seleccione la imagen que ha agregado.
    3. Haga clic en la pestaña Imágenes.
    4. Haga clic en Herramientas de aprendizaje profundo y, a continuación, en Etiquetar objetos para aprendizaje profundo.

      Aparece el panel Clasificación de imagen con un esquema en blanco.

    5. En el panel Clasificación de imagen, haga clic con el botón derecho en Nuevo esquema y haga clic en Editar propiedades.

      Editar nuevo esquema

    6. Proporcione un nombre para el esquema.

      Editar el nombre del esquema

    7. Haga clic en Guardar.

    El esquema se renombra en el panel Clasificación de imágenes y puede agregarle clases.

  2. Agregar una nueva clase al esquema.
    1. Haga clic con el botón derecho en el esquema creado y haga clic Agregar nueva clase.

      Opción Agregar nueva clase

    2. Proporcione un nombre para la clase.

      Nuevo nombre de clase

    3. Proporcione un valor para la clase.

      El valor no puede ser 0.

    4. Opcionalmente, elija un color para la clase.
    5. Haga clic en Aceptar.

      La clase se agrega al esquema en el panel Clasificación de imágenes.

    6. Opcionalmente, repita los pasos 2a a 2e para agregar más clases.
  3. Cree muestras de entrenamiento.
    1. Elija una herramienta de dibujo, como el círculo, y utilícela para dibujar un límite alrededor de un objeto.

      Herramienta de círculo

      Ejemplo de la herramienta Círculo
      Esta muestra de entrenamiento con palmeras se creó con la herramienta Círculo.

      Si no está seguro de un objeto, no lo incluya. Los límites pueden solaparse.

    2. Utilice las herramientas de dibujo para seleccionar más entidades.

      Como el modelo final tendrá en cuenta el tamaño de los objetos que identifique, puedes seleccionar objetos de varios tamaños.

      Muestras de entrenamiento
      Estas muestras de entrenamiento se crearon en varias áreas y tienen diferentes tamaños para mostrar una variedad de muestras.

  4. Cuando termine de crear las muestras de entrenamiento, haga clic en Guardar en el panel Clasificación de imágenes.

    Botón Guardar

    1. En la ventana Guardar muestra de entrenamiento actual, navegue hasta la geodatabase.
    2. Introduzca un nombre para la clase de rasgo y haga clic en Guardar.

    Antes de poder entrenar el modelo, debe exportar las muestras de entrenamiento como chips de imagen. Un chip de imagen es una pequeña imagen que contiene uno o varios objetos que deben detectarse.

  5. En el panel Clasificación de imágenes, haga clic en la pestaña Exportar datos de entrenamiento y haga lo siguiente:
    1. Proporcione el valor de Carpeta de salida.

      Es la ruta y el nombre de la carpeta donde se almacenarán los chips de imagen de salida y los metadatos.

    2. Opcionalmente, proporcione el valor de Polígono de máscara.

      Se trata de una clase de entidad poligonal que delimita la zona en la que se pueden crear chips de imagen. Solo se crearán los chips de imagen que estén completamente dentro del polígono.

    3. Opcionalmente, elija el valor de Formato de imagen para las fichas.

      Los formatos compatibles son TIFF, PNG, JPEG y MRF.

    4. Opcionalmente, especifique los valores Tamaño de tesela X y Tamaño de tesela Y.

      Son la dimensión x y la dimensión y de los chips de imagen. Los valores predeterminados suelen dar buenos resultados. Generalmente, se especifica el mismo tamaño para ambas dimensiones.

    5. Opcionalmente, especifique los valores Paso X y Paso Y.

      Esta es la distancia que se moverá en la dirección x y en la dirección y al crear el siguiente chip de imagen. Cuando el paso equivale al tamaño de la tesela, no hay superposición. Cuando el paso equivale a la mitad del tamaño de la tesela, hay una superposición del 50%.

    6. Opcionalmente, especifique el valor del Ángulo de rotación.

      El chip de imagen se gira en el ángulo especificado para crear chips de imagen adicionales. Se crea un chip de imagen adicional para cada ángulo hasta que el chip de imagen haya girado completamente. Por ejemplo, si especifica un ángulo de rotación de 45 grados, se crearán ocho chips de imagen. Estos chips de imagen se crean para los siguientes ángulos: 45, 90, 135, 180, 225, 270 y 315 grados.

    7. Opcionalmente, elija el valor del Sistema de referencia.

      Es el sistema de referencia que se utilizará para interpretar la imagen de entrada. Las opciones son Espacio de mapa o Espacio de píxeles. El espacio cartográfico utiliza un sistema de coordenadas basado en mapas, que es el predeterminado cuando el ráster de entrada tiene una referencia espacial definida. El espacio de píxeles utiliza un sistema de coordenadas de espacio de imagen que no tiene rotación ni distorsión. La opción Espacio de píxeles se recomienda cuando las imágenes de entrada están orientadas u oblicuas. El sistema de referencia especificado debe coincidir con el sistema de referencia utilizado para entrenar el modelo de aprendizaje profundo.

    8. Opcionalmente, marque la casilla de verificación Salida sin teselas de entidades.

      Cuando esta opción está marcada, se exportan todos los chips de imagen, incluidos los que no capturan muestras de entrenamiento. Cuando esta opción se deja sin marcar, solo se exportan los chips de imagen que capturan muestras de entrenamiento. El valor predeterminado no está activado.

    9. Si lo desea, elija el valor de Formato de metadatos.

      Los formatos de metadatos admitidos para la detección de objetos son mosaicos etiquetados, clases de objetos visuales Pascal y máscaras RCNN.

    10. Haga clic en Ejecutar para exportar los datos de entrenamiento.

Pestaña Exportar datos de entrenamiento

Entrenar un modelo de aprendizaje profundo

La herramienta Entrenar un modelo de aprendizaje profundo utiliza los chips de imágenes etiquetadas para determinar las combinaciones de píxeles en cada imagen para representar el objeto. Utilizarás estas muestras de entrenamiento para entrenar un modelo de aprendizaje profundo. En la herramienta, solo se requieren los parámetros Datos de entrenamiento de entrada y Modelo de salida.

Dado que los datos de entrenamiento de entrada se basan en el valor de Formato de metadatos , se asignará por defecto un valor de Tipo de modelo adecuado. Por ejemplo, si ha especificado el formato de metadatos Pascal Visual Object Classes en el proceso de exportación, el valor Tipo de modelo será Single Shot Detector. La lista desplegable de parámetros Tipos de modelo también se actualizará con los tipos de modelo compatibles con el formato de metadatos Pascal Visual Object Classes. Los parámetros Tamaño de lote, Argumentos del modelo y Modelo central se completan en función del valor Tipo de modelo.

  1. Abra la herramienta Entrenar modelo de aprendizaje profundo.
  2. En el parámetro Datos de entrenamiento de entrada, busque y seleccione la carpeta de datos de entrenamiento en la que están almacenados los chips de imagen.
  3. Para el parámetro Modelo de salida, proporcione la ruta del archivo y el nombre de la carpeta donde se guardará el modelo de salida después del entrenamiento.
  4. Opcionalmente, especifique un valor para el parámetro Máximo de épocas.

    Una época es un ciclo completo a través del dataset de entrenamiento. Durante cada época, el dataset de entrenamiento que almacenó en la carpeta imagechips se pasa hacia delante y hacia atrás por la red neuronal una vez. En general, se utilizan entre 20 y 50 épocas para la revisión inicial. El valor predeterminado es 20. Si el modelo puede mejorarse aún más, puede volver a entrenarlo utilizando la misma herramienta.

  5. Si lo desea, cambie el valor del parámetro Tipo de modelo en la lista desplegable.

    El tipo de modelo determina el algoritmo de aprendizaje profundo y la red neuronal que se utilizará para entrenar el modelo, como la opción Single Shot Detector (SSD). Para obtener más información sobre los modelos, consulte Modelos de aprendizaje profundo en ArcGIS. Para ver ejemplos de documentación, metadatos compatibles y detalles de la arquitectura del modelo, consulte Arquitecturas de modelos de aprendizaje profundo.

  6. Opcionalmente, cambie el valor del parámetro Argumentos del modelo.

    El parámetro Argumentos del modelo se completa con información de la definición del modelo. Estos argumentos varían en función de la arquitectura del modelo que se haya especificado. En el parámetro Argumentos del modelo se ofrece una lista de los argumentos del modelo que admite la herramienta.

  7. Opcionalmente, establezca el valor del parámetro Tamaño de lote.

    Este parámetro determina el número de muestras de entrenamiento que se entrenarán a la vez. El valor del tamaño del lote puede venir determinado por varios factores, como el número de chips de imagen, la memoria de la GPU (si se utiliza GPU) y la tasa de aprendizaje, si se utiliza un valor personalizado. Normalmente, el tamaño de lote por defecto produce buenos resultados.

  8. Opcionalmente, proporcione el valor del parámetro Tasa de aprendizaje.

    Si no se proporciona ningún valor, la tasa de aprendizaje óptima se extrae de la curva de aprendizaje durante el proceso de entrenamiento.

  9. Opcionalmente, especifique el valor del parámetro Modelo base.

    El valor por defecto se basa en la arquitectura del modelo. Puede cambiar el modelo base por defecto utilizando la lista desplegable.

  10. Opcionalmente, proporcione el valor del parámetro Modelo preentrenado.

    Puede ajustarse un modelo previamente entrenado con clases similares para adaptarse al nuevo modelo. El modelo previamente entrenado debe haber sido entrenado con el mismo tipo de modelo y modelo base que se usará para entrenar el nuevo modelo.

  11. Opcionalmente, cambie el valor del parámetro Validación %.

    Es el porcentaje de muestras de entrenamiento que se utilizarán para validar el modelo. Este valor depende de varios factores, como el número de muestras de entrenamiento y la arquitectura del modelo. Generalmente, con una pequeña cantidad de datos de entrenamiento, entre el 10% y el 20% es adecuado para la validación. Si hay una gran cantidad de datos de entrenamiento, como varios miles de muestras, un porcentaje más bajo, como del 2 al 5 por ciento de los datos, es adecuado para la validación. El valor predeterminado es 10.

  12. Opcionalmente, marque el parámetro Detener cuando el modelo deje de mejorar.

    Cuando está marcada, el entrenamiento del modelo se detiene cuando el modelo ya no mejora, independientemente del valor de Máximo de épocas especificado. El valor predeterminado está activado.

  13. Opcionalmente, compruebe el parámetro Modelo de congelación.

    Este parámetro especifica si las capas base del modelo previamente entrenado se congelarán, de modo que los pesos y sesgos sigan tal como se diseñaron originalmente. Si activa este parámetro, las capas base se congelan y los pesos y sesgos predefinidos no se modifican en el parámetro Modelo base. Si desmarca esta opción, las capas base no se congelan y los pesos y sesgos del valor del parámetro Modelo base pueden modificarse para ajustarse a las muestras de entrenamiento. Esto conlleva más tiempo de procesamiento, pero suele producir mejores resultados. El valor predeterminado está activado.

  14. Haga clic en Ejecutar para iniciar el entrenamiento.

La siguiente imagen muestra el panel Entrenar modelo de aprendizaje profundo con Single Shot Detector (detección de objetos) como valor del parámetro Tipo de modelo.

Parámetros de la herramienta Entrenar modelo de aprendizaje profundo

Realizar inferencias

Para realizar inferencias, se utiliza el modelo de aprendizaje profundo resultante para analizar nuevos datos. La inferencia es el proceso en el que la información aprendida durante el proceso de entrenamiento del aprendizaje profundo se utiliza para detectar entidades similares en los datasets. Utilizará la herramienta Detectar objetos con aprendizaje profundo, ya que está realizando un flujo de trabajo de detección de objetos.

  1. Abra la herramienta Detectar objetos con aprendizaje profundo.
  2. En Ráster de entrada, busque y seleccione los datos del ráster de entrada en los que desea encontrar objetos.

    La entrada puede ser un solo dataset 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.

  3. En Objetos de salida detectados, escriba el nombre de la clase de entidades de salida.

    Esta clase de entidades de salida contendrá geometrías que rodearán los objetos detectados en la imagen de entrada.

  4. Especifique el valor de Definición de modelo (*.emd o *.dlpk).

    Es el fichero modelo que contiene el resultado del entrenamiento. Este es el resultado de la sección de aprendizaje profundo.

  5. El parámetro Argumentos se completa a partir del valor del parámetro Definición del modelo. Estos argumentos variarán en función de la arquitectura del modelo que se esté utilizando. En este ejemplo, se utiliza el modelo Single Shot Detector, por lo que se completan los siguientes argumentos. Puede aceptar los valores predeterminados o editarlos.

    Estos argumentos variarán en función de la arquitectura del modelo que se esté utilizando. En este ejemplo, se utiliza el modelo Single Shot Detector, por lo que se completan los siguientes argumentos. Puede aceptar los valores predeterminados o editarlos.

    1. padding: el 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. Aumente el valor para suavizar la salida, lo que reduce los artefactos. El valor máximo del relleno puede ser la mitad del valor del tamaño de tesela.
    2. threshold: las detecciones con una puntuación de confianza superior a esta cantidad se incluyen en el resultado. Los valores permitidos son entre 0 y 1,0.
    3. batch_size: el número de teselas de imágenes procesadas en cada paso de la inferencia del modelo. Este valor depende del tamaño de la memoria de la tarjeta gráfica.
    4. nms_overlap: 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,1.
    5. exclude_pad_detections: cuando es true, la herramienta filtra detecciones potencialmente truncadas cerca de los bordes que están en la región rellena de chips de imagen.
    6. test_time_augmentation: el aumento del tiempo de prueba se realiza al predecir. Si es true, las predicciones de variantes rotadas y volteadas de la imagen de entrada se fusionan en la salida final.
  6. Si lo desea, active la casilla de verificación Supresión no máxima.

    Cuando se activa esta opción, los objetos duplicados que se detectan se eliminan de la salida, y debe proporcionar información para los tres parámetros siguientes:

    1. Campo de puntuación de confianza: el nombre del campo en la clase de entidad que contendrá las puntuaciones de confianza en función de la salida del método de detección de objetos.
    2. Campo de valor de clase: el nombre del campo de valor de clase en la clase de entidad de entrada.
    3. Ratio de superposición máximo: 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.
  7. Haga clic en Ejecutar para iniciar la inferencia.

    Parámetros de la herramienta Detectar objetos con aprendizaje profundo

En la siguiente imagen de resultados, las palmeras detectadas se identifican con una caja poligonal delimitadora.

Resultado de la detección de palmeras

Para ver un ejemplo detallado de detección de objetos, consulte Utilizar el aprendizaje profundo para evaluar la salud de las palmeras.

Temas relacionados