with recognition learnopencv learning hog and algorithm image-processing image-recognition

algorithm - recognition - Comparación de similitud de imagen



object recognition opencv (5)

Originalmente, hice esta pregunta en cstheory.stackexchange.com, pero me sugirieron moverla a stats.stackexchange.com .

¿Existe un algoritmo existente que me devuelva una métrica de similitud entre dos imágenes de mapa de bits? Por "similar", quiero decir que un humano diría que estas dos imágenes fueron alteradas de la misma fotografía. Por ejemplo, el algoritmo debería decir que las siguientes 3 imágenes son las mismas (original, posición desplazada, encogida).

Mismo

No necesito detectar imágenes deformadas o volteadas. Tampoco necesito detectar si es el mismo objeto en diferentes orientaciones.

Diferente

Me gustaría utilizar este algoritmo para evitar el correo no deseado en mi sitio web. Noté que los spammers son demasiado perezosos para cambiar sus imágenes de spam. No está limitado a las caras. Ya sé que ya hay muchos algoritmos de reconocimiento facial fabulosos. La imagen de spam puede ser cualquier cosa, desde una URL a un campo de fútbol a un cuerpo desnudo.


Hay una discusión de algoritmos de similitud de imagen en desbordamiento de pila. Como no es necesario detectar imágenes deformadas o volteadas, el enfoque del histograma puede ser suficiente siempre que el recorte de la imagen no sea demasiado severo.


Puede usar arquitecturas de aprendizaje profundo existentes como VGG para generar características a partir de imágenes y luego usar una similitud similar a la similitud del coseno para ver si dos imágenes son esencialmente las mismas.

Todo el proceso es bastante fácil de configurar y no es necesario que entiendas la arquitectura de red neuronal (puedes tratarla como una caja negra). Además, estas características son bastante genéricas y se pueden aplicar para encontrar similitudes entre cualquier tipo de objeto, no solo las caras.

Aquí hay un par de blogs que lo guiarán a través del proceso. http://blog.ethanrosenthal.com/2016/12/05/recasketch-keras/ https://erikbern.com/2015/09/24/nearest-neighbor-methods-vector-models-part-1.html


Si solo quieres una similitud de imagen, esa es una cosa, pero la similitud facial es otra muy distinta. Dos personas muy diferentes podrían aparecer en el mismo contexto y un análisis de la similitud de la imagen muestra que son lo mismo, mientras que la misma persona puede ser filmada en dos configuraciones diferentes y el análisis de similitud muestra que son diferentes.

Si necesita hacer un análisis facial, debe buscar algoritmos específicos para eso. El cálculo del tamaño relativo del ojo, la nariz y la boca y la posición a menudo se realiza en este tipo de análisis.


Las robustas funciones Hash hacen eso. Pero todavía hay mucha investigación en ese dominio. No estoy seguro si ya hay prototipos utilizables.

Espero que ayude.


Amazon tiene una nueva API llamada Rekognition que le permite comparar dos imágenes para similitud facial. La API devuelve un porcentaje de similitud para cada cara entre sí y los cuadros delimitadores para cada cara.

Rekognition también incluye una API para el Análisis facial (que devuelve el sexo, la edad aproximada y otros detalles faciales relevantes) y la Detección de la escena del objeto (etiquetas de devolución de objetos que están dentro de la imagen).