Sto lavorando con Python, scikit-learn e keras. Ho 3000 mila immagini di orologi frontali come i seguenti: Watch_1 , Watch_2 , Watch_3 .
Voglio scrivere un programma che riceva come input una foto di un vero orologio che potrebbe essere scattata in condizioni meno ideali rispetto alle foto sopra (colore di sfondo diverso, fulmini più scuri ecc.) E trovare gli orologi più simili tra i 3000 ad esso. Per somiglianza intendo che se do come input una foto di un orologio marrone rotondo con pizzo sottile, allora mi aspetto come output orologi di forma rotonda, di colore scuro e con pizzo sottile.
Qual è l'algoritmo di machine learning più efficiente per farlo?
Ad esempio, seguendo questo link ho in mente due diverse soluzioni:
1) Usare una CNN come estrattore di caratteristiche e confrontare le distanze tra queste caratteristiche per ogni coppia di immagini con riferimento all'immagine di input.
2) Utilizzo di due CNN in una rete neurale siamese per confrontare le immagini.
Queste due opzioni sono le migliori per questa attività o suggeriresti qualcos'altro?
Conosci qualche rete neurale pre-allenata (con iperparametri predeterminati) per questo compito?
Ho trovato alcuni post interessanti su StackOverflow a riguardo, ma sono piuttosto vecchi: Post_1 , Post_2 , Post_3 .