¿Cuál es el estado del arte en la similitud de imagen con el aprendizaje profundo?

Hay varias formas de calcular la similitud de imagen con el aprendizaje profundo. Se puede entrenar un modelo profundo de extremo a extremo que aprende similitud entre imágenes, o usar el modelo Profundo como un extractor de características y luego usar una métrica de similitud estándar (producto de puntos, distancia L2, etc.)

  1. Uso del modelo profundo como extractor de características: este mecanismo es muy común. Por supuesto, depende del dominio del problema en cuestión. Por ejemplo, si se trata de imágenes naturales con escenas / objetos, se puede usar un modelo profundo previamente entrenado (por ejemplo, un modelo de GoogleNet entrenado en ImageNet o tal vez imágenes de escenas naturales (como, digamos Places-205) y luego extraer características de uno de las últimas capas (fc6 o fc7). Se pueden extraer entidades y luego calcular una distancia entre ellas. Esto también se utiliza, por ejemplo, en el reconocimiento de rostros o la verificación de rostros.
  2. Una forma más complicada de hacer esto, que también podría ser más basada en principios o de principio a fin, es entrenar una red de similitud. Estos modelos se llaman redes siamesas. Obviamente para esto, necesitas tener muchos datos para entrenar estos modelos desde cero.

Un algoritmo de clasificación profunda con Saimese Convnet parece lograr un gran éxito en comparación con la mayoría de los algoritmos que se muestran en el documento.

https: //users.eecs.northwestern

Aquí tengo un código poco implementado:

AlgorTroy / siamese_similarity_model