Je travaille avec Python, scikit-learn et keras. J'ai 3000 milliers d'images de montres frontales comme les suivantes: Watch_1 , Watch_2 , Watch_3 .
Je veux écrire un programme qui reçoit en entrée une photo d'une vraie montre qui peut être prise dans des conditions moins idéales que les photos ci-dessus (couleur de fond différente, éclair plus sombre, etc.) et trouver les montres les plus similaires parmi les 3000. Par similitude, je veux dire que si je donne en entrée une photo d'une montre ronde brune avec de la dentelle fine, j'attends en sortie des montres de forme ronde, de couleur sombre et avec de la dentelle fine.
Quel est l'algorithme d'apprentissage automatique le plus efficace pour ce faire?
Par exemple, en suivant ce lien, j'ai deux solutions différentes en tête:
1) Utiliser un CNN comme extracteur de caractéristiques et comparer les distances entre ces caractéristiques pour chaque paire d'images en référence à l'image d'entrée.
2) Utilisation de deux CNN dans un réseau neuronal siamois pour comparer les images.
Ces deux options sont-elles les meilleures pour cette tâche ou suggéreriez-vous autre chose?
Connaissez-vous un réseau neuronal pré-formé (avec des hyperparamètres prédéterminés) pour cette tâche?
J'ai trouvé des articles intéressants sur StackOverflow à ce sujet, mais ils sont assez anciens: Post_1 , Post_2 , Post_3 .