DFace (Deeplearning Face)
Linux CPU | Linux GPU | Mac OS CPU | Windows CPU |
---|---|---|---|
Система обнаружения и распознавания лиц на основе многозадачной свёрточной нейронной сети (MTCNN) и Center-Loss.
DFace — это открытая система обнаружения и распознавания лиц, основанная на глубоком обучении. Все функции разработаны с использованием фреймворка PyTorch. PyTorch — это фреймворк для глубокого обучения, разработанный Facebook, который включает в себя некоторые интересные продвинутые функции, такие как автоматическое дифференцирование и динамическое построение графиков. DFace естественным образом наследует эти преимущества, что делает процесс обучения более простым и понятным, а код реализации — более ясным и лёгким для понимания.
DFace может использовать CUDA для поддержки режима ускорения GPU. Мы рекомендуем попробовать режим Linux GPU, который может обеспечить почти реальное время работы. Все идеи основаны на недавних исследованиях в этой области, таких как «Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks» и «FaceNet: A Unified Embedding for Face Recognition and Clustering».
Структура MTCNN:
Pnet, Rnet, Onet.
Если вы заинтересованы в DFace и хотите присоединиться к этому проекту, вот список задач, которые необходимо выполнить. Я буду регулярно обновлять его, чтобы он отражал текущие потребности в разработке. Вы можете отправить свой запрос на форк, и я буду использовать проблемы для отслеживания и обратной связи по всем вопросам. Также можно добавить в официальный Q-группу 681403076 или связаться со мной через WeChat jinkuaikuai005.
DFace состоит из двух основных модулей: обнаружения и распознавания лиц. Я предоставлю подробные инструкции по обучению и запуску моделей. Сначала вам нужно создать среду Python с PyTorch и OpenCV (cv2), рекомендуется использовать Anaconda для создания отдельной виртуальной среды. Если вы планируете использовать режим ускорения GPU, вам потребуется установить CUDA и cuDNN от Nvidia. В настоящее время автор предпочитает установку на Ubuntu. Спасибо за помощь в установке на Windows от энтузиаста, который поделился своим опытом в блоге.
git clone https://gitee.com/kuaikuaikim/dface.git
Здесь я предоставляю файл зависимостей среды Anaconda environment.yml (для Windows используйте environment-win64.yml, для Mac OSX используйте environment_osx.yaml), который поможет вам создать свою виртуальную среду.
cd dface
conda env create -f environment.yml
Добавьте путь поиска Python:
export PYTHONPATH=$PYTHONPATH:{your local DFace root path}
Если вас интересует модель MTCNN, следующие шаги могут быть полезны.
MTCNN состоит из трёх сетей: PNet, RNet и ONet. Поэтому процесс обучения также должен проходить в три этапа. Чтобы достичь лучших результатов, все обучаемые сети будут зависеть от предыдущей обученной сети для генерации данных. Все наборы данных о лицах взяты из WIDER FACE и CelebA. WIDER FACE предоставляет только большое количество данных о границах лиц, в то время как CelebA содержит данные о ключевых точках лиц. За исключением генерации данных для обучения ONet и маркировки файлов, остальные этапы используют данные из WIDER FACE. Если вы используете wider face wider_face_train.mat для аннотаций, их необходимо преобразовать в формат txt. Здесь я предоставил скрипт для преобразования. Здесь также есть уже преобразованный файл аннотаций wider face anno_store/wider_origin_anno.txt. Тренировка данных для обучения моделей PNet, RNet и ONet
mkdir {your dface traindata folder}
python dface/prepare_data/gen_Pnet_train_data.py --prefix_path {префикс каталога изображений, например, wider face} --dface_traindata_store {созданная ранее папка для тренировочных данных} --anno_file {файл с аннотациями, можно не указывать, по умолчанию используется файл anno_store/wider_origin_anno.txt}
python dface/prepare_data/assemble_pnet_imglist.py
python dface/train_net/train_p_net.py
python dface/prepare_data/gen_Rnet_train_data.py --prefix_path {префикс каталога изображений} --dface_traindata_store {папка для тренировочных данных} --anno_file {файл с аннотациями} --pmodel_file {ранее обученная модель PNet}
python dface/prepare_data/assemble_rnet_imglist.py
python dface/train_net/train_r_net.py
python dface/prepare_data/gen_Onet_train_data.py --prefix_path {префикс каталога изображений} --dface_traindata_store {папка для тренировочных данных} --anno_file {файл с аннотациями} --pmodel_file {модель PNet} --rmodel_file {модель RNet}
python dface/prepare_data/gen_landmark_48.py
python dface/prepare_data/assemble_onet_imglist.py
python dface/train_net/train_o_net.py
Тестирование детектора лиц
Если вы не хотите обучать модели, то можете использовать уже обученные модели PNet, RNet и ONet, которые находятся в папке model_store. Для этого запустите скрипт test_image.py.
Сравнение лиц
TODO: реализовать распознавание лиц на основе center loss.
Проверка результатов
На рисунке ниже показан пример работы программы.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )