Распознавание лиц с помощью TensorFlow
Это реализация распознавателя лиц на основе TensorFlow, описанная в статье «FaceNet: A Unified Embedding for Face Recognition and Clustering». В проекте также используются идеи из статьи «Deep Face Recognition» от Visual Geometry Group из Оксфорда.
Код протестирован с использованием Tensorflow r1.7 под Ubuntu 14.04 с Python 2.7 и Python 3.5. Тестовые случаи можно найти здесь, а результаты — здесь.
Дата | Обновление |
---|---|
2018-04-10 | Добавлены новые модели, обученные на Casia-WebFace и VGGFace2 (см. ниже). Обратите внимание, что модели используют фиксированную стандартизацию изображений (см. wiki). |
2018-03-31 | Добавлен новый, более гибкий входной конвейер, а также несколько незначительных обновлений. |
2017-05-13 | Удалены старые нетонкие модели. Последний уровень узкого места перемещён в соответствующие модели. Исправлена нормализация Center Loss. |
2017-05-06 | Добавлен код для обучения классификатора на собственных изображениях. Renamed facenet_train.py to train_tripletloss.py и facenet_train_classifier.py to train_softmax.py. |
2017-03-02 | Добавлены предварительно обученные модели, которые генерируют 128-мерные вложения. |
2017-02-22 | Обновлён до Tensorflow r1.0. Добавлена непрерывная интеграция с использованием Travis-CI. |
2017-02-03 | Добавлены модели, в которых только обучаемые переменные были сохранены в контрольной точке. Поэтому они значительно меньше. |
2017-01-27 | Добавлена модель, обученная на подмножестве набора данных MS-Celeb-1M. Точность LFW этой модели составляет около 0,994. |
2017–01–02 | Обновлено для работы с Tensorflow r0.12. Не уверен, работает ли он со старыми версиями Tensorflow. |
Название модели | Точность LFW | Набор данных для обучения | Архитектура |
---|---|---|---|
20180408–102900 | 0,9905 | CASIA-WebFace | Inception ResNet v1 |
20180402–114759 | 0,9965 | VGGFace2 | Inception ResNet v1 |
ПРИМЕЧАНИЕ: Если вы используете какую-либо из моделей, пожалуйста, не забудьте отдать должное тем, кто предоставил набор данных для обучения.
Код во многом вдохновлён реализацией OpenFace.
Для обучения использовался набор данных CASIA-WebFace, который состоит из 453 453 изображений более 10 575 личностей после обнаружения лица. Было замечено некоторое улучшение производительности, если набор данных был отфильтрован перед обучением. Позже появится дополнительная информация о том, как это было сделано. Лучшая модель была обучена на наборе данных VGGFace2, состоящем из ~3,3 млн лиц и ~9000 классов.
Одна из проблем вышеупомянутого подхода заключается в том, что детектор лиц Dlib пропускает некоторые сложные примеры (частичное перекрытие, силуэты и т. д.). Это делает обучающий набор слишком «простым», что приводит к ухудшению работы модели на других тестах. Доказано, что в этой конфигурации очень хорошо работает Multi-task CNN. Реализацию на Matlab/Caffe можно найти здесь, и она использовалась для выравнивания лица с очень хорошими результатами. Реализацию MTCNN на Python/Tensorflow можно найти здесь. Эта реализация не даёт идентичных результатов с реализацией на Matlab/Caffe, но производительность очень похожа.
В настоящее время наилучшие результаты достигаются путём обучения модели с использованием функции потерь softmax. Подробности о том, как обучить модель с помощью функции потерь softmax на наборе данных CASIA-WebFace, можно найти на странице Обучение классификатора Inception-ResNet-v1 и .
Предоставляется несколько предварительно обученных моделей. Они обучаются с использованием функции потерь softmax с моделью Inception-Resnet-v1. Наборы данных были выровнены с помощью MTCNN.
Точность на LFW для модели 20180402-114759 составляет 0,99650+-0,00252. Описание того, как запустить тест, можно найти на странице Проверка на LFW. Обратите внимание, что входные изображения для модели необходимо стандартизировать с использованием фиксированной стандартизации изображений (используйте опцию --use_fixed_image_standardization
при запуске, например, validate_on_lfw.py
).
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )