Transformación de características invariantes de escala


La transformación de características invariantes de escala ( SIFT ) es un algoritmo de visión por computadora para detectar, describir y hacer coincidir características locales en imágenes, inventado por David Lowe en 1999. [1] Las aplicaciones incluyen reconocimiento de objetos , mapeo y navegación robóticos, unión de imágenes , 3D Modelado , reconocimiento de gestos , seguimiento de vídeo , identificación individual de vida silvestre y movimiento de cerillas .

Los puntos clave SIFT de los objetos se extraen primero de un conjunto de imágenes de referencia [1] y se almacenan en una base de datos. Un objeto se reconoce en una nueva imagen comparando individualmente cada característica de la nueva imagen con esta base de datos y encontrando características candidatas coincidentes en función de la distancia euclidiana de sus vectores de características. A partir del conjunto completo de coincidencias, se identifican subconjuntos de puntos clave que coinciden en el objeto y su ubicación, escala y orientación en la nueva imagen para filtrar buenas coincidencias. La determinación de grupos consistentes se realiza rápidamente mediante el uso de una implementación eficiente de tabla hash de la transformada generalizada de Hough . Cada grupo de 3 o más características que coinciden en un objeto y su pose está sujeto a una verificación más detallada del modelo y posteriormente se descartan los valores atípicos. Finalmente, se calcula la probabilidad de que un conjunto particular de características indique la presencia de un objeto, dada la precisión del ajuste y el número de probables coincidencias falsas. Las coincidencias de objetos que pasan todas estas pruebas se pueden identificar como correctas con un alto nivel de confianza. [2]

Para cualquier objeto en una imagen, se pueden extraer puntos interesantes del objeto para proporcionar una "descripción de características" del objeto. Esta descripción, extraída de una imagen de entrenamiento, se puede utilizar para identificar el objeto cuando se intenta localizarlo en una imagen de prueba que contiene muchos otros objetos. Para realizar un reconocimiento confiable, es importante que las características extraídas de la imagen de entrenamiento sean detectables incluso bajo cambios en la escala de la imagen, el ruido y la iluminación. Estos puntos suelen encontrarse en regiones de la imagen de alto contraste, como los bordes de los objetos.

Otra característica importante de estas características es que las posiciones relativas entre ellas en la escena original no deberían cambiar de una imagen a otra. Por ejemplo, si solo se usaran como características las cuatro esquinas de una puerta, funcionarían independientemente de la posición de la puerta; pero si también se usaran puntos en el marco, el reconocimiento fallaría si la puerta se abre o se cierra. De manera similar, las características ubicadas en objetos articulados o flexibles normalmente no funcionarían si se produjera algún cambio en su geometría interna entre dos imágenes del conjunto que se está procesando. Sin embargo, en la práctica, SIFT detecta y utiliza una cantidad mucho mayor de características de las imágenes, lo que reduce la contribución de los errores causados ​​por estas variaciones locales en el error promedio de todos los errores de coincidencia de características.

SIFT [3] puede identificar objetos de manera sólida incluso entre el desorden y bajo oclusión parcial, porque el descriptor de características SIFT es invariante a cambios de escala , orientación y iluminación uniformes y parcialmente invariante a la distorsión afín . [1] Esta sección resume el algoritmo SIFT original y menciona algunas técnicas competitivas disponibles para el reconocimiento de objetos en condiciones de desorden y oclusión parcial.

El descriptor SIFT se basa en mediciones de imágenes en términos de campos receptivos [4] [5] [6] [7] sobre los cuales se establecen marcos de referencia invariantes de escala local [8] [9] mediante selección de escala local . [10] [11] [9] En el artículo de Scholarpedia sobre SIFT se ofrece una explicación teórica general sobre esto. [12]