SIFT
Transformada de características invariante a la escala. Algoritmo que extrae características locales de imagen invariantes a cambios de escala y rotación, sirviendo como técnica fundamental para el emparejamiento de imágenes.
SIFT (Scale-Invariant Feature Transform), publicado por David Lowe en 2004, es un algoritmo emblemático para detectar y describir características locales de imagen. Produce puntos clave invariantes a escala, rotación y parcialmente invariantes a cambios de iluminación y punto de vista, cada uno descrito por un vector de 128 dimensiones.
El pipeline de SIFT consta de cuatro etapas. Primero, los candidatos a puntos clave se identifican como extremos en el espacio de escalas de Diferencia de Gaussianas (DoG). Segundo, los candidatos se refinan a precisión subpíxel y se filtran para eliminar puntos de bajo contraste y respuestas de borde. Tercero, se asigna una orientación dominante a cada punto clave basada en histogramas de gradiente locales, proporcionando invariancia a la rotación. Finalmente, un parche de 16x16 alrededor de cada punto clave (alineado a su orientación dominante) se divide en subregiones de 4x4, y se calcula un histograma de gradiente de 8 bins para cada una, generando el descriptor de 128 dimensiones.
- Invariancia a la escala: Al detectar extremos a través del espacio de escalas DoG, SIFT encuentra de forma fiable las mismas estructuras físicas independientemente de la distancia de captura o nivel de zoom
- Invariancia a la rotación: Normalizar el descriptor respecto a la dirección de gradiente dominante del punto clave asegura descriptores idénticos bajo rotación de imagen
- Estrategia de emparejamiento: Los descriptores se emparejan usando distancia euclidiana con el test de ratio de Lowe (umbral 0.7-0.8), que compara la distancia al vecino más cercano con el segundo más cercano para rechazar emparejamientos ambiguos
La patente de SIFT expiró en 2020, haciéndolo disponible libremente en OpenCV 4.4+ mediante cv2.SIFT_create(). Sigue siendo el estándar de oro para aplicaciones como costura de panoramas, reconstrucción 3D y reconocimiento de objetos. Para aplicaciones en tiempo real donde el coste computacional de SIFT es prohibitivo, alternativas más rápidas como ORB y AKAZE ofrecen compromisos razonables entre velocidad y calidad de emparejamiento.