Целью моего проекта является извлечение определенных черт лица на мобильный телефон.Это приложение для проверки с использованием лица пользователя.Имея два разных изображения одного и того же человека, извлекая функции как можно ближе.
Прямо сейчас я использую предварительно обученную модель и веса команды VGGFace в качестве экстрактора функций, вы можете загрузить модель в здесь .Однако, когда я извлек функции на основе модели, результат был недостаточно хорош, я описал то, что я сделал и что я хочу, как показано ниже:
Я извлекаю функции из изображений Эммы Уотсон, image_1 возвращает feature_1, image2возвращает feature_2 и так далее (длина вектора = 2048).Если функция [i]> 0.0, преобразуйте ее в 1.
for i in range(0, 2048):
if feature1[0][i] > 0.0:
feature1[0][i] = 1
Затем я сравниваю вектор двух объектов, используя расстояние Хэмминга.Расстояние Хэмминга - это просто наивный способ сравнения, в реальном проекте я буду квантовать эти функции перед сравнением.Тем не менее, расстояние между двумя изображениями Эммы все еще велико, хотя я использую 2 изображения с выражением нейронного выражения лица (одни и те же эмоции, разные типы эмоций дают худший результат).
Мой вопрос заключается в том, как я могу обучить модель для извлечения функцийцелевого пользователя.Воображение, Эмма является целевым пользователем, и ее телефон должен только извлечь ее функции.Когда кто-то пытается разблокировать телефон Эммы, ее телефон извлекает лицо этого человека, а затем сравнивает с сохраненными функциями Эммы.Кроме того, я не хочу тренировать модель для классификации 2 классов Эммы, а не Эммы.Мне нужно сравнить извлеченные элементы.
Подводя итог: если мы сравниваем элементы из разных изображений одного и того же человека, расстояние (различия) должно быть «близким» (маленьким).Если мы сравним особенности разных изображений разных людей, расстояние должно быть «большим» (большим).
Большое вам спасибо.