Ich arbeite mit Python, Scikit-Learn und Keras. Ich habe 3000 Tausend Bilder von Frontuhren wie die folgenden: Watch_1 , Watch_2 , Watch_3 .
Ich möchte ein Programm schreiben, das als Eingabe ein Foto einer echten Uhr empfängt, das möglicherweise unter weniger idealen Bedingungen als die obigen Fotos (andere Hintergrundfarbe, dunklerer Blitz usw.) aufgenommen wurde, und unter den 3000 Uhren die ähnlichsten finden. Mit Ähnlichkeit meine ich, wenn ich als Eingabe ein Foto einer runden, braunen Uhr mit dünner Spitze gebe, dann erwarte ich als Ausgabe Uhren von runder Form, dunkler Farbe und mit dünner Spitze.
Was ist der effizienteste Algorithmus für maschinelles Lernen, um dies zu tun?
Wenn ich zum Beispiel diesem Link folge, habe ich zwei verschiedene Lösungen im Kopf:
1) Verwenden Sie einen CNN als Merkmalsextraktor und vergleichen Sie die Abstände zwischen diesen Merkmalen für jedes Bildpaar mit Bezug auf das Eingabebild.
2) Verwenden von zwei CNNs in einem siamesischen neuronalen Netzwerk zum Vergleichen der Bilder.
Sind diese beiden Optionen die besten für diese Aufgabe oder würden Sie etwas anderes vorschlagen?
Kennen Sie ein vorab trainiertes neuronales Netzwerk (mit vordefinierten Hyperparametern) für diese Aufgabe?
Ich habe auf StackOverflow einige interessante Beiträge dazu gefunden, aber sie sind ziemlich alt: Post_1 , Post_2 , Post_3 .