Наш датасет не сбалансирован. Один класс содержит 10 фотографий, другой - 3, третий - 15. Например, у нас есть 2 фотографии Паши в классе “Паша” и 10 фотографий Глаши в классе “Глаша”. При описываемом выше подходе, алгоритм определит ключевые точки со всех трех фотографий Паши и объединит их в одну группу, то же самое сделает с десятью фотографиями Глаши.
А теперь дадим алгоритму на вход фото Паши. Ключевые точки фотографии Паши совпадают с ключевыми точками класса “Паша”, и по идее никаких проблем с определением кто перед нами быть не должно. Алгоритм видит, например, 7 ключевых точек на фотографии, видит эти же 7 ключевых точек в классе “Паша” и дает этому классу 14 баллов (ведь в классе “Паша” у нас 2 фотографии, а ключевые точки с двух фото мы объединили в одну группу, породив дубликаты). Однако так получилось, что и Глаша, и Паша - люди, и у них есть много общего: нос, глаза, рот, волосы, уши. Для алгоритма они имеют довольно много схожих ключевых точек, например, две.
Из-за выполненного ранее объединения ключевых точек разных фотографий в одну кучу, две ключевые точки Паши, схожие с ключевыми точками Глаши, дают классу “Глаша” не 2 балла, а целых 20, ведь в классе “Глаша” 10 фотографий, по две схожие ключевые точки на каждом фото. Таким образом побеждает класс “Глаша” из-за большого количества дубликатов.
В 2022 году надо уже все делать на самом устройстве.