Al hacer clic en "Aceptar todas las cookies", usted acepta el almacenamiento de cookies en su dispositivo para mejorar la navegación por el sitio, analizar el uso del sitio y ayudar en nuestros esfuerzos de marketing. Más información en
Configuración de cookies
Al hacer clic en "Aceptar todas las cookies", usted acepta el almacenamiento de cookies en su dispositivo para mejorar la navegación por el sitio, analizar el uso del sitio y ayudar en nuestros esfuerzos de marketing. Más información en
Explore el algoritmo SIFT. Conozca qué es SIFT y sus potentes funciones para la visión por ordenador sin variantes de escala. Mejore su procesamiento de imágenes.
Hoy en día, muchos de los dispositivos inteligentes que utilizamos, desde teléfonos y cámaras hasta sistemas domésticos inteligentes, vienen con soluciones de IA que pueden reconocer caras, objetos e incluso escenas visuales enteras. Esta capacidad proviene de la visión por ordenador, un campo de la inteligencia artificial que permite a las máquinas comprender e interpretar imágenes y vídeos.
Por ejemplo, si tomas una foto de la Torre Eiffel desde cualquier ángulo o distancia, tu dispositivo puede reconocerla utilizando visión por ordenador y organizarla en la carpeta correcta de tu galería. Aunque esto parece sencillo, reconocer objetos no siempre lo es. Las imágenes pueden tener un aspecto muy diferente en función de su tamaño, ángulo, escala o iluminación, lo que dificulta que las máquinas las identifiquen de forma coherente.
Para resolver este problema, los investigadores desarrollaron un algoritmo de visión por ordenador llamado SIFT (Scale Invariant Feature Transform). Este algoritmo permite detectar objetos en distintas condiciones de visión. Creado por David Lowe en 1999, SIFT se diseñó para encontrar y describir puntos clave únicos en una imagen, como esquinas, bordes o patrones que siguen siendo reconocibles aunque la imagen cambie de tamaño, se gire o se ilumine de forma diferente.
Antes de que se popularizaran los modelos de visión por ordenador basados en el aprendizaje profundo, como Ultralytics YOLO11, SIFT era una técnica muy utilizada en visión por ordenador. Era un enfoque estándar para tareas como el reconocimiento de objetos, en las que el objetivo es identificar un elemento específico en una foto, y la correspondencia de imágenes, en la que las fotos se alinean encontrando características de imagen superpuestas.
En este artículo, exploraremos SIFT con una rápida visión general de lo que es, cómo funciona a alto nivel y por qué es importante en la evolución de la visión por ordenador. Empecemos.
Por qué el algoritmo SIFT es esencial para la visión por ordenador
En una imagen, un objeto puede aparecer de muchas formas distintas. Por ejemplo, una taza de café puede fotografiarse desde arriba, desde un lado, a plena luz del sol o bajo una lámpara cálida. La misma taza puede parecer más grande cuando está cerca de la cámara y más pequeña cuando está lejos.
Todas estas diferencias hacen que enseñar a un ordenador a reconocer un objeto sea una tarea complicada. Esta tarea de visión por ordenador, conocida como detección de objetos, requiere modelos de IA Vision para identificar y localizar objetos con precisión, incluso cuando cambian su tamaño, ángulo o condiciones de iluminación.
Para que esto sea posible, la visión por ordenador se basa en un proceso denominado extracción o detección de características. En lugar de intentar comprender toda la imagen a la vez, un modelo busca rasgos distintivos de la imagen como esquinas agudas, patrones únicos o texturas que sigan siendo reconocibles en distintos ángulos, escalas y condiciones de iluminación.
En concreto, para esto se diseñó la Transformada de Características Invariantes de Escala, o SIFT (Scale Invariant Feature Transform). SIFT es un algoritmo de detección y descripción de características que puede identificar con fiabilidad objetos en imágenes, independientemente de cómo se hayan capturado.
Invarianza de escala
El algoritmo SIFT tiene algunas propiedades importantes que lo hacen útil para el reconocimiento de objetos. Una de ellas es la invariancia de escala. Esto significa que SIFT puede reconocer varias partes de un objeto, tanto si parece grande y está cerca de la cámara como si es pequeño y está lejos. Incluso si el objeto no es completamente visible, el algoritmo puede reconocer los mismos puntos clave.
Para ello utiliza un concepto llamado teoría del espacio de escala. En pocas palabras, la imagen se difumina a distintos niveles para crear varias versiones. A continuación, SIFT examina estas versiones para encontrar patrones y detalles que permanezcan invariables, independientemente de cómo cambie el tamaño o la nitidez de la imagen.
Por ejemplo, una señal de tráfico fotografiada a unos metros de distancia parecerá mucho más grande que la misma señal captada a distancia, pero SIFT puede seguir detectando los mismos rasgos distintivos. Esto permite emparejar correctamente las dos imágenes, aunque la señal aparezca a escalas muy diferentes.
Garantizar la invariancia de la rotación
Los objetos de las imágenes también pueden aparecer girados, a veces incluso al revés. SIFT se encarga de ello mediante una propiedad llamada invariancia de rotación. Para cada punto clave que detecta, el algoritmo asigna una orientación coherente basada en los gradientes locales de la imagen. De este modo, se puede reconocer el mismo objeto independientemente de cómo esté girado.
Es como marcar cada punto clave con una pequeña flecha que indica en qué dirección está orientado. Al alinear las características con estas orientaciones, SIFT garantiza que los puntos clave coincidan correctamente incluso cuando se gira el objeto. Por ejemplo, un punto de referencia capturado en una foto de un paisaje puede seguir identificándose correctamente aunque se tome otra foto del mismo con la cámara inclinada en un ángulo.
Resistencia a otras variaciones de la imagen
Además del tamaño y la rotación, las imágenes también pueden cambiar de otras formas, como la iluminación. La iluminación de un objeto puede pasar de brillante a tenue, el ángulo de la cámara puede cambiar ligeramente o la imagen puede estar borrosa o tener ruido.
SIFT está diseñado para gestionar este tipo de variaciones. Para ello, se centra en los puntos clave distintivos y de alto contraste, ya que estas características se ven menos afectadas por los cambios de iluminación o los pequeños cambios en el punto de vista. Como resultado, SIFT tiende a ser más fiable que los métodos simples de detección de bordes o esquinas, que a menudo fallan cuando cambian las condiciones.
Fig. 1. Puntos clave SIFT extraídos de (a) una imagen de lluvia y (b) su correspondiente imagen de entrada limpia.(Fuente)
Piense en un cuadro en una galería. Se puede reconocer tanto si se fotografía a la luz del día como si se hace con focos artificiales brillantes o incluso con un ligero desenfoque de movimiento de una cámara de mano. A pesar de estas diferencias, los puntos clave se mantienen lo suficientemente estables como para que la coincidencia sea precisa.
Funcionamiento del algoritmo de transformación de características invariantes de escala (SIFT)
A continuación, veamos cómo funciona el algoritmo SIFT. Este proceso puede dividirse en cuatro pasos principales: detección del punto clave, localización del punto clave, asignación de la orientación y descripción del punto clave.
Paso 1: Detección de extremos en el espacio de escala
El primer paso consiste en encontrar y detectar puntos clave, que son puntos distintivos de la imagen, como esquinas o cambios bruscos de textura, que ayudan a rastrear o reconocer un objeto.
Para asegurarse de que estos posibles puntos clave pueden reconocerse a cualquier tamaño, SIFT construye lo que se denomina un espacio de escala. Se trata de una colección de imágenes creadas difuminando gradualmente la imagen original con un filtro gaussiano, que es una técnica de suavizado, y agrupando los resultados en capas denominadas octavas. Cada octava contiene la misma imagen con niveles crecientes de desenfoque, mientras que la octava siguiente es una versión más pequeña de la imagen.
Al sustraer una imagen borrosa de otra, SIFT calcula la diferencia de gaussianos (DoG), que resalta las zonas en las que el brillo cambia bruscamente. Estas zonas se eligen como puntos clave candidatos porque se mantienen constantes al ampliar o reducir la imagen.
Fig. 2. DoG resalta estructuras clave sustrayendo imágenes borrosas a diferentes niveles.(Fuente.)
Paso 2: Localización del punto clave
No todos los puntos clave candidatos son útiles porque algunos pueden ser débiles o inestables. Para perfeccionarlos, SIFT utiliza un método matemático llamado expansión en serie de Taylor, que ayuda a estimar la posición exacta de un punto clave con mayor precisión.
Durante este paso, se eliminan los puntos poco fiables. Se descartan los puntos clave con poco contraste, que se funden con su entorno, así como los que se sitúan directamente en los bordes, ya que pueden desplazarse con demasiada facilidad. Este paso de filtrado deja sólo los puntos clave más estables y característicos.
Paso 3: Asignación de orientación
Una vez identificados los puntos clave estables, SIFT los hace invariantes a la rotación, lo que significa que pueden seguir coincidiendo aunque la imagen se gire de lado o boca abajo. Para ello, SIFT analiza cómo cambia el brillo alrededor de cada punto clave, lo que se conoce como gradiente. Los gradientes muestran tanto la dirección como la intensidad del cambio en la intensidad del píxel, y juntos capturan la estructura local alrededor del punto.
Para cada punto clave, SIFT considera los gradientes dentro de una región circundante y los agrupa en un histograma de orientaciones. El pico más alto de este histograma indica la dirección dominante del cambio de intensidad, que se asigna como orientación del punto clave. Para construir este histograma se utilizan tanto las direcciones de los gradientes, que muestran dónde cambia la intensidad, como las magnitudes de los gradientes, que indican la intensidad del cambio.
Si hay otros picos casi igual de fuertes, SIFT asigna varias orientaciones al mismo punto clave. Esto evita que se pierdan características importantes cuando los objetos aparecen en ángulos inusuales. Al alinear cada punto clave con su orientación, SIFT garantiza la coherencia de los descriptores generados en el paso siguiente.
En otras palabras, aunque dos imágenes del mismo objeto se roten de forma diferente, los puntos clave alineados con la orientación seguirán coincidiendo correctamente. Este paso es el que confiere a SIFT su gran capacidad para manejar la rotación y lo hace mucho más robusto que los métodos anteriores de detección de características.
Fig. 3. Detalle del paso 3 del algoritmo SIFT(Fuente)
Paso 4: Descriptor de puntos clave
El último paso en SIFT es crear una descripción de cada punto clave para que pueda ser reconocido en otras imágenes.
SIFT lo consigue observando un pequeño parche cuadrado alrededor de cada punto clave, de unos 16 por 16 píxeles. Este parche se alinea primero con la orientación del punto clave para que la rotación no le afecte. A continuación, el parche se divide en una cuadrícula de 4 por 4 cuadrados más pequeños.
En cada pequeño cuadrado, SIFT mide cómo cambia el brillo en distintas direcciones. Estos cambios se almacenan en algo llamado histograma, que es como un gráfico que muestra qué direcciones son las más comunes. Cada cuadrado tiene su propio histograma, y los 16 cuadrados juntos producen 16 histogramas.
Por último, estos histogramas se combinan en una única lista de números, 128 en total. Esta lista se denomina vector de características y actúa como una huella dactilar del punto clave. Al capturar la textura y la estructura únicas del punto, esta huella dactilar permite identificar el mismo punto clave en distintas imágenes, incluso si se han redimensionado, girado o iluminado de forma diferente.
Fig. 4. Visión general del funcionamiento de SIFT(Fuente)
Principales aplicaciones de SIFT en visión por ordenador
Ahora que entendemos mejor qué es SIFT y cómo funciona, vamos a explorar algunas de sus aplicaciones en el mundo real de la visión por ordenador.
Reconocimiento y detección de objetos
Uno de los principales usos de SIFT es el reconocimiento y la detección de objetos. Se trata de enseñar a un ordenador a reconocer y localizar objetos en imágenes, incluso cuando los objetos no siempre tienen el mismo aspecto. Por ejemplo, SIFT puede detectar un libro independientemente de si está cerca de la cámara, más lejos o girado en ángulo.
La razón por la que esto funciona es que SIFT extrae puntos clave que son altamente distintivos y estables. Cuando estos puntos clave se emparejan con descriptores SIFT, forman características SIFT, que proporcionan una forma fiable de emparejar el mismo objeto en diferentes imágenes. Estas características capturan detalles únicos del objeto que permanecen constantes, lo que permite una correspondencia fiable de las características entre imágenes incluso cuando cambia el tamaño, la posición o la orientación del objeto.
Fig. 5. Uso de SIFT para reconocer la cubierta de un libro en una nueva imagen tomada con una orientación diferente a la original. Imagen del autor.
Antes de que se popularizara el aprendizaje profundo, SIFT era uno de los métodos más fiables para crear sistemas de reconocimiento de objetos. Se utilizó ampliamente en investigaciones y aplicaciones que requerían emparejar objetos a través de grandes conjuntos de datos de imágenes, aunque a menudo exigía importantes recursos computacionales.
Cosido de imágenes y creación de panorámicas
SIFT también puede utilizarse para crear imágenes panorámicas, que son fotos amplias hechas cosiendo varias imágenes. Con SIFT, se encuentran puntos clave distintivos en las partes superpuestas de distintas imágenes y luego se emparejan entre sí. Estas coincidencias actúan como anclas, guiando el proceso de cosido sobre cómo deben alinearse las fotos.
Una vez completado el emparejamiento, pueden utilizarse algoritmos de cosido para calcular la alineación correcta, a menudo mediante transformaciones geométricas que mapean una imagen sobre otra. A continuación, las imágenes se mezclan para que desaparezcan las costuras. El resultado final es una panorámica sin costuras que parece una sola foto amplia, aunque se haya creado a partir de varias tomas.
Reconstrucción 3D y robótica
Otra aplicación interesante de SIFT es la reconstrucción 3D, en la que se combinan varias fotos 2D tomadas desde distintos ángulos para construir un modelo tridimensional. SIFT funciona encontrando y emparejando los mismos puntos en todas estas imágenes.
Una vez obtenidas las coincidencias, las posiciones tridimensionales de esos puntos pueden estimarse mediante triangulación, un método que calcula la profundidad desde distintos puntos de vista. Este proceso forma parte de la estructura a partir del movimiento (SfM), una técnica que utiliza múltiples imágenes superpuestas para estimar la forma 3D de una escena junto con las posiciones de las cámaras que tomaron las fotos.
El resultado suele ser una nube de puntos 3D, una colección de puntos en el espacio que delinea el objeto o el entorno. SIFT fue una de las primeras herramientas que hicieron práctica la estructura a partir del movimiento. Aunque hoy en día existen técnicas más rápidas y comunes, SIFT sigue aplicándose cuando la precisión es más importante que la velocidad.
SIFT también se ha utilizado en robótica, sobre todo en SLAM visual (localización y mapeo simultáneos). El SLAM permite a un robot averiguar dónde se encuentra al tiempo que construye un mapa de su entorno.
Los puntos clave SIFT actúan como puntos de referencia fiables que un robot puede reconocer a través de los fotogramas, incluso cuando la iluminación o los ángulos cambian. Mediante el seguimiento de estos puntos de referencia, el robot puede estimar su posición y actualizar su mapa sobre la marcha. Aunque hoy en día se utilizan con más frecuencia en robótica detectores de características más rápidos, SIFT desempeñó un papel importante en los primeros sistemas SLAM y sigue siendo clave en los casos en que la robustez es más crítica que la velocidad.
Ventajas y consideraciones sobre SIFT
Aunque el algoritmo SIFT se ha utilizado ampliamente en visión por ordenador y es conocido por ser un método fiable, también tiene algunas desventajas. Por eso es importante sopesar sus pros y sus contras antes de decidir si es el más adecuado para un proyecto. A continuación, repasaremos sus puntos fuertes y sus limitaciones.
Principales ventajas de SIFT
Estas son algunas de las ventajas de utilizar el algoritmo SIFT:
Invariancia de escala y rotación: SIFT proporciona puntos clave invariantes con respecto a la escala que permanecen relativamente estables cuando los objetos aparecen en diferentes tamaños u orientaciones, lo que representa un avance significativo en comparación con los detectores de características anteriores.
Robustez moderada a los cambios de iluminación y de punto de vista: SIFT puede manejar cambios en el brillo, el contraste o pequeños cambios en el punto de vista, aunque es menos fiable en condiciones más extremas.
Capacidad para trabajar en escenas desordenadas o parcialmente ocultas: Dado que SIFT detecta muchos puntos clave locales, a menudo puede seguir identificando un objeto aunque parte de él esté cubierto o el fondo sea complejo.
Consideraciones sobre el rendimiento y alternativas
Estos son algunos de los contras de utilizar el algoritmo SIFT:
Costoso desde el punto de vista informático: El proceso en varios pasos y los descriptores detallados de SIFT hacen que sea más lento y consuma más recursos que los detectores de rasgos modernos. Para mejorarlo, los investigadores desarrollaron el algoritmo SURF (Speeded-Up Robust Features), que utiliza cálculos más rápidos para encontrar y describir características. SURF es menos preciso que SIFT en algunos casos, pero se ejecuta mucho más rápido, lo que lo hace más práctico para tareas urgentes.
No es ideal para su uso en tiempo real: Debido a su coste computacional, SIFT tiene dificultades cuando se trata de aplicaciones en las que la velocidad es fundamental, como el seguimiento en tiempo real o la robótica móvil.
Versatilidad limitada: Aunque robusto en muchos casos, SIFT es menos eficaz en cambios extremos de iluminación, grandes desplazamientos del punto de vista o escenas muy dinámicas en las que algoritmos más nuevos o métodos de aprendizaje automático funcionan mejor.
Al explorar los pros y los contras de SIFT, quizá se haya dado cuenta de que muchas de sus limitaciones allanaron el camino a técnicas más avanzadas. En concreto, las redes neuronales convolucionales (CNN) surgieron como una potente alternativa.
Una CNN es un tipo de modelo de aprendizaje profundo inspirado en el funcionamiento del sistema visual humano. Procesa una imagen por capas, partiendo de patrones sencillos como bordes y texturas, hasta llegar gradualmente a formas y objetos más complejos. A diferencia de las reglas de características elaboradas a mano de SIFT, las CNN aprenden representaciones de características directamente de los datos.
Este aprendizaje basado en datos significa que las CNN pueden superar a SIFT en tareas de correspondencia y clasificación de descriptores. Además, las CNN son más expresivas y robustas y se adaptan mejor a la variabilidad y complejidad de los datos visuales.
Por ejemplo, los modelos basados en CNN han logrado resultados revolucionarios en ImageNet, un enorme conjunto de datos de referencia que contiene millones de imágenes etiquetadas en miles de categorías. ImageNet, diseñada para probar la capacidad de los algoritmos para reconocer y clasificar objetos, es capaz de poner de relieve la brecha existente entre los métodos basados en características más antiguos y el aprendizaje profundo.
Las CNN superaron rápidamente a SIFT al aprender representaciones mucho más ricas y flexibles, lo que les permitió reconocer objetos con iluminación cambiante, desde distintos puntos de vista e incluso cuando estaban parcialmente ocultos, escenarios en los que SIFT suele tener dificultades.
Principales conclusiones
El algoritmo de la transformada de características invariante de escala ocupa un lugar importante en la historia de la visión por ordenador. Proporcionó una forma fiable de detectar características incluso en entornos cambiantes e influyó en muchos de los métodos utilizados hoy en día.
Aunque las nuevas técnicas son más rápidas y eficaces, SIFT sentó las bases para ellas. SIFT muestra dónde empezaron los avances actuales en visión por ordenador y pone de relieve lo lejos que han llegado los sistemas de IA de vanguardia.