Во-первых, имейте в виду, что это далеко не решенная проблема.На самом деле это относительно область исследований в области компьютерного зрения.Пожалуйста, взгляните на Помеченные лица в наборе данных Wild , который использует именно ту задачу, о которой вы говорите, сравнивая два лица.Особый интерес для вас представляет секция результатов , в которой есть отчеты, для которых алгоритмы (и соответствующие статьи) работают лучше всего.
Однако, кажется, все это может быть довольно продвинутым.Возможно, вы не слишком знакомы с машинным обучением и / или компьютерным зрением, и в этом случае вы можете посмотреть учебники в этих областях.
В любом случае, основная вещь заключается в следующем: вы не хотите использовать пиксели для сравнения лиц, потому что они сильно меняются в зависимости от освещения и позы.(Вы должны попробовать!) Таким образом, вы должны преобразовать пиксели таким образом, чтобы лица одного и того же человека были похожими, а лица разных людей - разными.Это извлечение признаков, и, возможно, это самая сложная и важная часть распознавания лиц.Как вы узнаете, как лучше всего их трансформировать?Вот где приходят обучающие наборы данных. Так, например, если вы используете собственные грани (между прочим, они должны иметь довольно низкую производительность), вы используете обучающие данные, чтобы получить собственные векторы, которые лучше всего представляют эти данные.Затем сравните две грани, проецируя каждую грань на собственные векторы, и используйте евклидово расстояние.(Это то же самое, что и расстояние Махалонобиса).