Estou trabalhando com Python, scikit-learn e keras. Tenho 3000 mil imagens de relógios de frente, como os seguintes: Watch_1 , Watch_2 , Watch_3 .
Quero escrever um programa que receba como entrada uma foto de um relógio real que talvez seja tirada em condições menos ideais do que as fotos acima (cor de fundo diferente, raios mais escuros etc.) e encontre os relógios mais semelhantes entre os 3000. Por semelhança, quero dizer que se eu der como entrada uma foto de um relógio redondo e marrom com rendas finas, espero que, como saída, relógios de formato redondo, de cor escura e com rendas finas.
Qual é o algoritmo de aprendizado de máquina mais eficiente para fazer isso?
Por exemplo, seguindo este link , tenho duas soluções diferentes em mente:
1) Usando um CNN como um extrator de recursos e compare as distâncias entre esses recursos para cada par de imagens com referência à imagem de entrada.
2) Usando duas CNNs em uma rede neural siamesa para comparar as imagens.
Essas duas opções são as melhores para esta tarefa ou você sugeriria outra coisa?
Você conhece alguma rede neural pré-treinada (com hiperparâmetros pré-determinados) para esta tarefa?
Eu encontrei algumas postagens interessantes no StackOverflow sobre isso, mas elas são bem antigas: Post_1 , Post_2 , Post_3 .