По поводу той задачи, вот какие варианты есть для решения проблемы с монетами. Пока что самый оптимальный для меня 1 нейросети
Используя классический CV:
Выделяем углы изображения.
Находим самый большой элипс на картинке с вероятностью больше threshold, нормируем картинку, чтобы элипс был кругом, фон делаем черным. Можем повесить histeq или ещё что-нибудь.
После вращаем одну картинку относительно второй. Пытаемся найти наибольшее сходство лапласиана logpol координат. Таким образом, можем выравнить по повороту. После можно проверить части на сходство и как-то опеределить, что какие части не схожи.
Проблема в том, что на некоторых монетах ту часть, которую надо отметить в разы меньше чем у других монет может быть царапина. Соответсвенно, этот вариант не может работать...
Используя нейросети:
1. Разметить какие монеты относятся к одной группе, а какие монеты относятся к другой группе. Построить нейросеть из двух сиамских сверточных сетей. После обучаем их говорить да, когда шлём им две монеты с одинаковой группой и нет, когда шлём им две монеты из разных групп. (Группа - год). После используем один из методов наблюдения за вниманием сети (grad-cam, активация spatial attention или guided backprop), чтобы понять на основе чего нейросеть сделала вывод.
2. Разметить данные для сиамской сегментации. Использовать сиамский U-net like сеть.
3. Сделать свертку и на вход слать 6 каналов два изображения (херня идея)