Я працюю з Python, scikit-learn та керами. У мене є 3000 тисяч зображень наручних годинників, таких як: Watch_1 , Watch_2 , Watch_3 .
Я хочу написати програму, яка отримує на вхід фото реального годинника, який може бути зроблений за менш ідеальних умов, ніж фотографії вище (різний колір тла, темніша блискавка тощо) та знайти найбільш подібні годинники серед 3000 з них. Під подібністю я маю на увазі, що якщо я надам в якості фото круглого, коричневого годинника з тонким мереживом, то я очікую як вихідний годинник круглої форми, темного кольору і з тонким мереживом.
Який найефективніший алгоритм машинного навчання для цього?
Наприклад, перейшовши за цим посиланням, я маю на увазі два різних рішення:
1) Використання CNN як екстрактора функцій та порівняйте відстані між цими ознаками для кожної пари зображень із посиланням на вхідне зображення.
2) Використання двох CNN в сіамській нейронній мережі для порівняння зображень.
Ці два варіанти найкращі для цього завдання чи ви б запропонували щось інше?
Чи знаєте ви будь-яку заздалегідь підготовлену нейронну мережу (із заздалегідь визначеними гіперпараметрами) для цього завдання?
Я знайшов кілька цікавих публікацій на StackOverflow про це, але вони досить старі: Post_1 , Post_2 , Post_3 .