Существует несколько подходов к этому, я довольно много работал над распознаванием лиц, и я попробовал несколько вещей. Вы можете сделать некоторые из следующих действий:
Создать классификатор KNN
Способ сделать это - создать БД сорта, где у каждого объекта есть имя человека связанный с ним (в этом случае особенность представляет одно изображение лица человека). Затем во время сравнения вы вычисляете расстояние вашего объекта запроса с каждым представлением. Вы берете сравнения с N наименьшими расстояниями. Затем вы можете go пройти через N расстояний и посмотреть, к каким классам принадлежит каждый, а затем вы можете использовать максимальную встречающуюся метку, и это будет ваш целевой класс. По моему опыту, хотя это не очень надежно (хотя это полностью зависит от типа ваших тестовых данных, мое было связано с большим количеством диких изображений, так что это было недостаточно надежно)
Усредненные представления
Другой подход, который я использовал, заключался в том, что я усреднял представления для каждого человека. Если бы у меня было 5 изображений, я бы взял среднее или медиану 5 представлений, извлеченных из этих представлений. По моему опыту медиана работала лучше, чем средняя. Теперь у вас будет среднее представление, связанное с каждым человеком, вы можете просто взять дистанцию с каждым средним представлением, и тот, у кого наименьшее расстояние, будет вашим целевым классом.
Представления кластера
Другой подход состоит в том, чтобы кластеризовать представление в кластеры с помощью DBScan, а затем во время выполнения классифицировать представителя запроса в кластер и принять класс большинства в этом кластере. как метка
По моему опыту, среднее представление лучше, но в итоге вам понадобится несколько изображений, по крайней мере, 5, я думаю. Но в моем случае мне нужно было как минимум 5, так как я обслуживал несколько углов, а что нет.
ПРИМЕЧАНИЕ :: SVM - ПЛОХОЙ подход, вы ограничиваете размер БД, и каждый -время, когда вам нужно добавить нового человека в БД, вам нужно будет подготовить новый SVM для дополнительного класса, который только что появился
Кроме того, для целей хранения вы всегда можете сохранить его в JSON