La comparación de plantillas [1] es una técnica de procesamiento de imágenes digitales que permite encontrar pequeñas partes de una imagen que coincidan con una imagen de plantilla. Se puede utilizar para el control de calidad en la fabricación, [2] la navegación de robots móviles [3] o la detección de bordes en imágenes. [4]
Los principales desafíos en una tarea de comparación de plantillas son la detección de oclusión, cuando un objeto buscado está parcialmente oculto en una imagen; la detección de transformaciones no rígidas, cuando un objeto está distorsionado o se visualiza desde diferentes ángulos; la sensibilidad a los cambios de iluminación y de fondo; el desorden del fondo; y los cambios de escala. [5]
El enfoque basado en características para la coincidencia de plantillas se basa en la extracción de características de la imagen , como formas, texturas y colores, que coinciden con la imagen o el marco de destino. Este enfoque generalmente se logra utilizando redes neuronales y clasificadores de aprendizaje profundo como VGG, AlexNet y ResNet . [ cita requerida ] Las redes neuronales convolucionales (CNN), en las que se basan muchos clasificadores modernos, procesan una imagen pasándola a través de diferentes capas ocultas, produciendo un vector en cada capa con información de clasificación sobre la imagen. Estos vectores se extraen de la red y se utilizan como características de la imagen. La extracción de características mediante redes neuronales profundas , como CNN, ha demostrado ser extremadamente efectiva y se ha convertido en el estándar en los algoritmos de coincidencia de plantillas de última generación. [6]
Este enfoque basado en características suele ser más sólido que el enfoque basado en plantillas que se describe a continuación. Como tal, se ha convertido en el método de última generación para la comparación de plantillas, ya que puede hacer coincidir plantillas con transformaciones no rígidas y fuera del plano , así como con grandes cambios de iluminación y desorden de fondo. [7] [8] [9]
En el caso de plantillas sin características sólidas , o cuando la mayor parte de una imagen de plantilla constituye la imagen coincidente en su totalidad, puede resultar eficaz un enfoque basado en plantillas. Dado que la coincidencia basada en plantillas puede requerir el muestreo de una gran cantidad de puntos de datos, a menudo es deseable reducir la cantidad de puntos de muestreo reduciendo la resolución de las imágenes de búsqueda y de plantilla por el mismo factor antes de realizar la operación en las imágenes resultantes reducidas. Este método de preprocesamiento crea una representación de imágenes en múltiples escalas, o piramidal , que proporciona una ventana de búsqueda reducida de puntos de datos dentro de una imagen de búsqueda para que la plantilla no tenga que compararse con cada punto de datos viable. Las representaciones piramidales son un método de reducción de la dimensionalidad , un objetivo común del aprendizaje automático en conjuntos de datos que sufren la maldición de la dimensionalidad .
En los casos en los que la plantilla puede no proporcionar una coincidencia directa, puede ser útil implementar espacios propios para crear plantillas que detallen el objeto coincidente bajo una serie de condiciones diferentes, como diferentes perspectivas, iluminaciones, contrastes de color o poses de objetos . [10] Por ejemplo, si un algoritmo está buscando una cara, sus espacios propios de plantilla pueden consistir en imágenes (es decir, plantillas) de caras en diferentes posiciones respecto de la cámara, en diferentes condiciones de iluminación o con diferentes expresiones (es decir, poses).
También es posible que una imagen coincidente esté oscurecida u ocluida por un objeto. En estos casos, no es razonable proporcionar una multitud de plantillas para cubrir cada posible oclusión. Por ejemplo, el objeto de búsqueda puede ser una carta de juego y, en algunas de las imágenes de búsqueda, la carta está oscurecida por los dedos de alguien que la sostiene, o por otra carta sobre ella, o por algún otro objeto frente a la cámara. En los casos en que el objeto es maleable o posable, el movimiento se convierte en un problema adicional y los problemas que involucran tanto el movimiento como la oclusión se vuelven ambiguos. [11] En estos casos, una posible solución es dividir la imagen de plantilla en múltiples subimágenes y realizar la coincidencia en cada subdivisión.
La comparación de plantillas es una herramienta central en la anatomía computacional (AC). En este campo, se utiliza un modelo de plantilla deformable para modelar el espacio de las anatomías humanas y sus órbitas bajo el grupo de difeomorfismos , funciones que deforman suavemente un objeto. [12] La comparación de plantillas surge como un enfoque para encontrar el difeomorfismo desconocido que actúa sobre una imagen de plantilla para que coincida con la imagen objetivo.
Los algoritmos de comparación de plantillas en CA se denominan mapeos métricos difeomórficos de deformación grande (LDDMM). Actualmente, existen algoritmos de comparación de plantillas LDDMM para la comparación de puntos de referencia anatómicos , curvas , superficies y volúmenes.
Un método básico de comparación de plantillas, a veces llamado "filtrado espacial lineal", utiliza un parche de imagen (es decir, la "imagen de plantilla" o "máscara de filtro") adaptado a una característica específica de las imágenes de búsqueda para detectar. [ cita requerida ] Esta técnica se puede realizar fácilmente en imágenes grises o imágenes de borde , donde la variable adicional de color no está presente o no es relevante. Las técnicas de correlación cruzada comparan las similitudes de las imágenes de búsqueda y de plantilla. Sus resultados deberían ser más altos en los lugares donde la estructura de la imagen coincide con la estructura de la plantilla, es decir, donde los valores grandes de la imagen de búsqueda se multiplican por los valores grandes de la imagen de plantilla.
Este método normalmente se implementa seleccionando primero una parte de una imagen de búsqueda para usar como plantilla. Sea representa el valor de un píxel de la imagen de búsqueda, donde representa las coordenadas del píxel en la imagen de búsqueda. Para simplificar, suponga que los valores de los píxeles son escalares, como en una imagen en escala de grises . De manera similar, sea representa el valor de un píxel de plantilla, donde representa las coordenadas del píxel en la imagen de plantilla. Para aplicar el filtro, simplemente mueva el centro (u origen) de la imagen de plantilla sobre cada punto en la imagen de búsqueda y calcule la suma de productos, similar a un producto escalar , entre los valores de los píxeles en las imágenes de búsqueda y de plantilla sobre toda el área abarcada por la plantilla. Más formalmente, si es el centro (u origen) de la imagen de plantilla, entonces la correlación cruzada en cada punto en la imagen de búsqueda se puede calcular como: Para mayor comodidad, denota tanto los valores de los píxeles de la imagen de plantilla como su dominio , los límites de la plantilla. Tenga en cuenta que se consideran todas las posiciones posibles de la plantilla con respecto a la imagen de búsqueda. Dado que los valores de correlación cruzada son mayores cuando los valores de los píxeles de búsqueda y de plantilla se alinean, la mejor posición de coincidencia corresponde al valor máximo de más de .
Otra forma de manejar problemas de traducción en imágenes usando coincidencia de plantillas es comparar las intensidades de los píxeles, usando la medida de suma de diferencias absolutas (SAD). Para formular esto, sea y denote la intensidad de luz de los píxeles en las imágenes de búsqueda y plantilla con coordenadas y , respectivamente. Luego, al mover el centro (u origen) de la plantilla a un punto en la imagen de búsqueda, como antes, la suma de las diferencias absolutas entre las intensidades de la plantilla y los píxeles de búsqueda en ese punto es: Con esta medida, la SAD más baja da la mejor posición para la plantilla, en lugar de la más grande como con la correlación cruzada. SAD tiende a ser relativamente simple de implementar y entender, pero también tiende a ser relativamente lento de ejecutar. A continuación, se muestra una implementación simple en C++ de coincidencia de plantillas SAD.
En esta implementación simple, se supone que el método descrito anteriormente se aplica a imágenes grises: por eso se utiliza el gris como intensidad de píxeles. La posición final en esta implementación proporciona la ubicación superior izquierda donde la imagen de plantilla coincide mejor con la imagen de búsqueda.
minSAD = VALOR_MÁXIMO ; // recorrer la imagen de búsqueda for ( size_t x = 0 ; x <= S_cols - T_cols ; x ++ ) { for ( size_t y = 0 ; y <= S_rows - T_rows ; y ++ ) { SAD = 0.0 ; // recorrer la imagen de plantilla para ( size_t j = 0 ; j < T_cols ; j ++ ) para ( size_t i = 0 ; i < T_rows ; i ++ ) { píxel p_SearchIMG = S [ y + i ][ x + j ]; píxel p_TemplateIMG = T [ i ][ j ]; SAD += abs ( p_SearchIMG . Grey - p_TemplateIMG . Grey ); } // guarda la mejor posición encontrada if ( minSAD > SAD ) { minSAD = SAD ; // dame la posición mínima de SAD position . bestRow = y ; position . bestCol = x ; position . bestSAD = SAD ; } } }
Una forma de realizar la coincidencia de plantillas en imágenes en color es descomponer los píxeles en sus componentes de color y medir la calidad de la coincidencia entre la plantilla de color y la imagen de búsqueda utilizando la suma del SAD calculado para cada color por separado.
En el pasado, este tipo de filtrado espacial normalmente solo se utilizaba en soluciones de hardware dedicadas debido a la complejidad computacional de la operación, [13] sin embargo, podemos reducir esta complejidad filtrándolo en el dominio de frecuencia de la imagen, lo que se conoce como "filtrado de dominio de frecuencia", esto se hace mediante el uso del teorema de convolución .
Otra forma de acelerar el proceso de comparación es mediante el uso de una pirámide de imágenes. Se trata de una serie de imágenes, a diferentes escalas, que se forman filtrando y submuestreando repetidamente la imagen original para generar una secuencia de imágenes de resolución reducida. [14] Estas imágenes de resolución más baja se pueden buscar luego en busca de la plantilla (con una resolución reducida similar), con el fin de obtener posibles posiciones de inicio para la búsqueda en las escalas más grandes. Las imágenes más grandes se pueden buscar luego en una pequeña ventana alrededor de la posición de inicio para encontrar la mejor ubicación de la plantilla.
Otros métodos pueden manejar problemas como traducción, escala, rotación de imágenes e incluso todas las transformaciones afines. [15] [16] [17]
Se pueden realizar mejoras en el método de correspondencia utilizando más de una plantilla (espacios propios); estas otras plantillas pueden tener diferentes escalas y rotaciones.
También es posible mejorar la precisión del método de coincidencia hibridando los enfoques basados en características y en plantillas. [18] Naturalmente, esto requiere que las imágenes de búsqueda y de plantilla tengan características que sean lo suficientemente evidentes para admitir la coincidencia de características.
Otros métodos similares incluyen "Correspondencia estéreo", " Registro de imágenes " y " Transformación de características invariantes de escala ".
La comparación de plantillas tiene diversas aplicaciones y se utiliza en campos como el reconocimiento facial (véase sistema de reconocimiento facial ) y el procesamiento de imágenes médicas. En el pasado se han desarrollado y utilizado sistemas para contar la cantidad de rostros que cruzan una parte de un puente en un tiempo determinado. Otros sistemas incluyen la detección automática de nódulos calcificados en radiografías de tórax digitales. [19] Recientemente, este método se implementó en la simulación geoestadística, lo que podría proporcionar un algoritmo rápido. [20]
{{cite arXiv}}
: CS1 maint: varios nombres: lista de autores ( enlace )