Hola, hoy vamos a hablar sobre el reconocimiento de imágenes, y más en concreto del perceptual hashing.
Para ello vamos a hacer uso de una librería de código abierto llamada pHash.
El perceptual hashing funciona de manera diferente a los hash que se usan para funciones criptográficas o para verificación de la integridad de unos datos.
Por ejemplo, si generamos un hash MD5 para verificar la integridad de una imagen y luego a esta imagen le cambiamos un pixel, cuando verifiquemos la integridad comparando los dos hash MD5 veremos que son totalmente distintos.
Este es el hash MD5 de una imagen
640bee54f064dbdea9b960605a81eb50
Y este el el hash MD5 cambiando un pixel
89239f21cd39e020e85fe4b0c57a0f39
Pero si calculamos el hash de las dos usando pHash el resultado es idéntico, las dos imágenes dan el mismo resultado.
El perceptual hashing se basa en la percepción humana para la obtención del hash, esto quiere decir que cuanto mas se parezcan dos imágenes mas se parecerán sus respectivos hash. De esta manera seremos capaces obtener una medida exacta que nos permita comparar la similitud entre dos imágenes.