Volver al inicio

Hash perceptual: búsqueda de imágenes similares

El artículo explica los principios del hash perceptual de imágenes. Se consideran dos métodos principales — hash promedio y pHash basado en transformada coseno discreta. Se proporciona una comparación del rendimiento y la robustez ante modificaciones.

Cómo se encuentran imágenes similares: hash perceptual para desarrolladores
Advertisement 728x90

# Hash perceptual: Cómo los algoritmos encuentran imágenes similares

El hash perceptual permite detectar similitudes visuales entre imágenes, incluso si difieren en tamaño, color o nivel de compresión. A diferencia de los hashes criptográficos como SHA1, los hashes perceptuales conservan información sobre la estructura de la imagen y son robustos ante modificaciones menores. Esto los hace indispensables en sistemas para encontrar duplicados, reconocimiento de contenido y forense digital.

Conceptos básicos del hash perceptual

Las funciones de hash criptográficas están diseñadas para verificar coincidencias exactas de datos: incluso el cambio más leve en el archivo de entrada produce un hash completamente diferente. Los hashes perceptuales resuelven un problema distinto: permanecen similares ante cambios visualmente insignificantes en la imagen. Este enfoque se basa en que la percepción humana ignora detalles finos y se centra en la estructura general.

Los algoritmos de hash perceptual son típicamente:

Google AdInline article slot
  • Robustos ante cambios de tamaño y proporción;
  • Invariantes a ajustes de brillo y contraste;
  • Conservan similitud bajo compresión ligera o ruido;
  • Rápidos y escalables.

Para comparar dos imágenes, se calculan sus hashes y se mide la distancia de Hamming: el número de bits que difieren. Cuanto menor sea la distancia, mayor es la similitud visual.

Método más simple: Hash promedio

Uno de los algoritmos de hash perceptual más accesibles se basa en el promedio de píxeles. Consiste en los siguientes pasos:

  • Redimensionar a 8×8 píxeles—esto reduce drásticamente el impacto de detalles de alta frecuencia.
  • Convertir a escala de grises—elimina la dependencia de los canales de color.
  • Calcular el brillo promedio de los 64 píxeles.
  • Binarización: cada píxel se reemplaza por 1 si su brillo está por encima del promedio, y por 0 si está por debajo.
  • Formar un hash de 64 bits concatenando los bits (normalmente de izquierda a derecha, de arriba hacia abajo).

Este método es extremadamente rápido y efectivo para encontrar duplicados exactos o casi exactos. Sin embargo, es sensible a transformaciones no lineales como la corrección gamma o cambios en el histograma, ya que el promedio se desplaza y muchos bits cambian.

Google AdInline article slot

Enfoque mejorado: pHash basado en DCT

El algoritmo pHash (hash perceptual) utiliza la transformada coseno discreta (DCT) para centrarse en los componentes de baja frecuencia de la imagen, que definen la estructura general. Los pasos de pHash:

  • Redimensionar a 32×32 píxeles—suficiente para una aplicación adecuada de DCT.
  • Convertir a escala de grises.
  • Aplicar DCT a toda la imagen (a diferencia de JPEG, donde DCT se aplica a bloques de 8×8).
  • Extraer el bloque superior izquierdo de 8×8 de la matriz de frecuencias resultante—contiene las frecuencias más bajas.
  • Calcular el promedio de estos 64 coeficientes, excluyendo el primero (componente DC), para evitar dependencia del brillo general.
  • Binarizar los coeficientes en relación con este promedio.
  • Formar un hash de 64 bits.

Este enfoque es significativamente más robusto ante distorsiones de color y brillo. Incluso después de una corrección gamma o cambios locales (p. ej., agregar una marca de agua a una pequeña parte de la imagen), el hash permanece cercano al original.

Aplicaciones prácticas y limitaciones

En sistemas del mundo real como TinEye o herramientas internas de forense digital, a menudo se combinan múltiples métodos:

Google AdInline article slot
  • Hashes precomputados para todo el archivo;
  • Hash promedio rápido para filtrado inicial;
  • pHash u otros algoritmos avanzados para refinamiento;
  • Características adicionales: distribución de color, posiciones de objetos, presencia de rostros.

Por ejemplo, en un sistema de reconocimiento facial, se pueden calcular hashes separados solo para las regiones faciales, mejorando la precisión en colecciones de retratos.

Sin embargo, ningún hash perceptual garantiza un 100 % de precisión. Cambios significativos —como reemplazar el fondo, rotar en un ángulo grande o intercambiar objetos clave— pueden hacer que las imágenes sean visualmente diferentes, pero los hashes pueden seguir siendo cercanos, o viceversa.

Puntos clave

  • El hash perceptual mide similitud visual, no bit a bit.
  • La distancia de Hamming entre hashes es la forma principal de evaluar similitud.
  • El hash promedio es rápido pero vulnerable a transformaciones no lineales.
  • El pHash basado en DCT ofrece mayor robustez ante modificaciones.
  • Los sistemas industriales usan combinaciones de métodos e indexación previa.

Comparación de métodos

| Criterio | Hash promedio | pHash (DCT) |

|------------------------|---------------|----------------|

| Velocidad | Muy alta | Media |

| Robustez al ruido | Media | Alta |

| Robustez a gamma | Baja | Alta |

| Memoria requerida | Mínima | Media |

| Adecuado para búsqueda masiva | Sí | Sí (con indexación) |

La elección del método depende de la tarea: hash promedio para copias exactas, pHash para imágenes modificadas.

— Editorial Team

Advertisement 728x90

Leer después