Ultralytics YOLO27: Únete a la lista de espera.
Licencia YOLO
Volver al glosario de Ultralytics

Homography

La homografía es una transformación proyectiva que asigna planos entre vistas y permite corregir la perspectiva, registrar imágenes y unir panorámicas.

Una homografía es una transformación proyectiva invertible que asigna puntos de un plano a puntos de otro y conserva las líneas rectas. En visión artificial, describe cómo se ve una superficie plana desde distintos puntos de vista: una página rectangular fotografiada en ángulo puede transformarse en un rectángulo frontal. Las homografías permiten el registro de imágenes, la corrección de la perspectiva y la unión de panorámicas. «Transformación proyectiva» es un sinónimo; el término lingüístico «homógrafo» se refiere a palabras con la misma grafía.

Cómo funciona la matriz de homografía#

Una homografía se representa mediante una matriz de 3 x 3, normalmente denominada H. Opera sobre coordenadas homogéneas, que representan un punto bidimensional mediante tres valores. Tras multiplicar por la matriz, al dividir los dos primeros valores de salida por el tercero se obtienen las coordenadas habituales de la imagen.

Aunque H contiene nueve elementos, tiene ocho parámetros independientes, o grados de libertad: multiplicar todos los elementos por el mismo número distinto de cero no altera la asignación. Esta geometría de las asignaciones de imágenes planas explica por qué cuatro correspondencias de puntos adecuadas determinan una homografía.

Una transformación afín es una homografía restringida que conserva las líneas paralelas. Una homografía general también representa efectos de perspectiva, como los bordes paralelos que convergen hacia un punto de fuga. Las distancias y los ángulos suelen cambiar. Michel Chasles desarrolló el concepto en su memoria de 1837 sobre dualidad y homografía.

Cómo estimar una homografía#

La estimación comienza con puntos correspondientes: ubicaciones que representan las mismas características físicas en dos imágenes. Estos pueden ser esquinas seleccionadas manualmente o puntos clave emparejados mediante la extracción de características. Métodos como la transformada de características invariantes a la escala proporcionan descriptores —resúmenes numéricos de la apariencia local— para emparejar características entre vistas.

Se necesitan al menos cuatro pares de puntos, sin que haya tres puntos colineales en ninguno de los dos conjuntos. El algoritmo de la transformada lineal directa (DLT) convierte las relaciones entre sus coordenadas en un sistema lineal. Las correspondencias adicionales mejoran la estimación cuando las mediciones contienen ruido.

Las correspondencias incorrectas requieren un ajuste robusto. El consenso de muestras aleatorias (RANSAC) ajusta repetidamente transformaciones candidatas a pequeños subconjuntos e identifica los valores atípicos: correspondencias coherentes con una candidata. El error de reproyección mide la distancia entre un punto de origen transformado y su destino observado. La API de estimación de homografías de OpenCV ofrece este proceso mediante cv2.findHomography y devuelve tanto H como una máscara de valores atípicos.

Aplica una homografía en Python#

OpenCV proporciona operaciones independientes para estimar una matriz y deformar una imagen. Instala las dependencias con pip install opencv-python numpy. Este ejemplo transforma el contorno rectangular de la imagen de muestra en un trapecio:

from urllib.request import urlopen

import cv2
import numpy as np

image_url = "https://ultralytics.com/images/bus.jpg"
with urlopen(image_url) as response:
    encoded = np.frombuffer(response.read(), dtype=np.uint8)
image = cv2.imdecode(encoded, cv2.IMREAD_COLOR)
height, width = image.shape[:2]

# Mantén el mismo orden de esquinas en sentido horario en ambas matrices.
source = np.float32([[0, 0], [width - 1, 0], [width - 1, height - 1], [0, height - 1]])
target = np.float32([[120, 80], [width - 121, 80], [width - 1, height - 1], [0, height - 1]])
matrix, _ = cv2.findHomography(source, target)
warped = cv2.warpPerspective(image, matrix, (width, height))
cv2.imwrite("homography_result.jpg", warped)

La imagen guardada muestra un acortamiento por perspectiva: su borde superior es más estrecho, mientras que los bordes rectos de la escena siguen siendo rectos.

Usos de la homografía#

  • Procesamiento de documentos: La rectificación de perspectiva asigna las cuatro esquinas de un documento plano a un rectángulo. Este paso de preprocesamiento regulariza la disposición del texto antes del reconocimiento óptico de caracteres, siguiendo la misma geometría de deformación plana que se muestra en los ejemplos de corrección de perspectiva de OpenCV.
  • Unión de panorámicas: Las fotografías superpuestas se alinean antes de fusionarlas. El sistema Autostitch de Matthew Brown y David Lowe utiliza características locales emparejadas para automatizar la creación de panorámicas, incluida la identificación de imágenes superpuestas en colecciones sin ordenar.

En Ultralytics YOLO, la transformación RandomPerspective aplica deformaciones proyectivas durante el entrenamiento y transforma conjuntamente las imágenes y sus cajas delimitadoras asociadas, los contornos de segmentación y los puntos clave. El ajuste perspective controla el componente de perspectiva de esta aumentación de datos.

Una única homografía relaciona exactamente las vistas ideales de cámara estenopeica de un plano, o las vistas capturadas al girar una cámara alrededor de su centro de proyección. Cuando la cámara se desplaza y los objetos están a distintas profundidades, el paralaje produce desplazamientos que dependen de la profundidad. Alinear un plano de fondo deja entonces desplazados los objetos del primer plano, lo que crea bordes duplicados o imágenes fantasma en las imágenes unidas.

La calibración de la cámara corrige la distorsión de la lente, cuya geometría curva de imagen debe corregirse antes de la alineación plana. En escenas tridimensionales generales, la geometría epipolar restringe un punto correspondiente a una línea; una homografía predice directamente su ubicación. En la visión estéreo, la posición restante a lo largo de la línea epipolar proporciona información de disparidad que se utiliza para la estimación de profundidad.

Explore solutions

Visión artificial en el deporte

Visión artificial en el deporte

Descubre cómo Ultralytics YOLO impulsa la visión artificial en el deporte con el seguimiento de jugadores y balones, analíticas de rendimiento, información útil para entrenadores y rehabilitación de deportistas.
Más información
Visión artificial para imágenes aéreas

Visión artificial para imágenes aéreas

Convierte imágenes aéreas y de drones en información útil en tiempo real para la agricultura, la acuicultura, la conservación y el análisis geoespacial con Ultralytics YOLO.
Más información
Visión artificial en el sector aeroespacial

Visión artificial en el sector aeroespacial

Aplica la visión artificial en el sector aeroespacial con Ultralytics YOLO para inspeccionar aeronaves, detectar objetos extraños en pistas, gestionar operaciones en tierra y detectar defectos en materiales compuestos.
Más información
Visión artificial en seguridad

Visión artificial en seguridad

Protege todas tus instalaciones con los modelos Ultralytics YOLO. La IA visual permite supervisar perímetros, detectar amenazas, reconocer matrículas y mejorar la seguridad laboral.
Más información
Visión artificial en robótica

Visión artificial en robótica

Potencia máquinas más inteligentes con los modelos Ultralytics YOLO. La IA visual en robótica impulsa la navegación autónoma, la percepción, el seguimiento de objetos y el control en tiempo real.
Más información
Visión artificial en logística

Visión artificial en logística

Agiliza la logística con modelos Ultralytics YOLO. La IA visual permite inspeccionar paquetes, clasificarlos, realizar el seguimiento de vehículos y supervisar la seguridad del almacén en tiempo real.
Más información
Visión artificial en el comercio minorista

Visión artificial en el comercio minorista

Reinventa el comercio minorista con modelos Ultralytics YOLO. La IA visual permite realizar el seguimiento del inventario, supervisar estanterías, gestionar colas y obtener información más útil sobre los clientes.
Más información
Visión artificial en el sector sanitario

Visión artificial en el sector sanitario

Desarrolla soluciones sanitarias con modelos Ultralytics YOLO. La IA visual en el sector sanitario permite acelerar el diagnóstico por imagen, mejorar los diagnósticos y supervisar a los pacientes.
Más información
Visión artificial en la fabricación

Visión artificial en la fabricación

Optimiza la fabricación con modelos Ultralytics YOLO. La IA visual mejora el control de calidad, la detección de defectos, el cumplimiento de las normas de uso de EPI y la automatización de las líneas de montaje.
Más información
Visión artificial en la automoción

Visión artificial en la automoción

Aplica la visión artificial al sector de la automoción con modelos Ultralytics YOLO. La IA visual mejora la seguridad vial, la asistencia al conductor y la automatización de vehículos para lograr carreteras más inteligentes.
Más información
Visión artificial en la agricultura

Visión artificial en la agricultura

Incorpora la IA de visión a la agricultura inteligente con modelos Ultralytics YOLO. Impulsa la monitorización de cultivos, el seguimiento del ganado y la agricultura de precisión para obtener cosechas más abundantes e inteligentes.
Más información

¡Construyamos juntos el futuro de la IA!

Inicia tu recorrido hacia el futuro del aprendizaje automático