Linux CPU | Linux GPU | Mac OS CPU | Windows CPU |
|---|---|---|---|
Detección de cara libre y de código abierto. Basado en el MTCNN
Sitio web oficial (https://dface.tech)
También proporcionamos SDK de Reconocimiento de cara completa, contiene seguimiento, detección, reconocimiento de la cara, anti-bocas de la cara, etc. Consulte dface.tech para más detalles.
DFACE es un software de código abierto para detección y reconocimiento de cara. Todas las características implementadas por Pytorch (el marco de Facebook Deeplearning). Con Pytorch, utilizamos una técnica llamada diferenciación automática de modo inverso, que permite al desarrollador cambiar la forma en que su red se comporta arbitrariamente con cero retraso o sobrecarga. DFace herede estas características avanzadas, que lo hacen dinámico y facilita la revisión del código.
DFACE Support GPU Aceleración con NVIDIA CUDA. Recomendamos encarecidamente que use la versión GPU de Linux. Es muy rápido y extremadamente real.
Nuestra inspiración proviene de varios trabajos de investigación sobre este tema, así como los trabajos actuales y pasados, como la detección y la alineación de la cara conjunta, utilizando redes convolucionales de varias tareas y el tema de reconocimiento facial FACENET: una integración unificada para el reconocimiento y el agrupamiento
Estructura mtcnn
Si desea contribuir a DFACE, revise el contribuyente.md en el proyecto. Usamos Slack para rastrear solicitudes y errores. También puede seguir el Grupo QQ 681403076 o mi WeChat Jinkuaikuai005
DFACE tiene dos módulos principales, detección y reconocimiento. En estos dos, proporcionamos todos los tutoriales sobre cómo entrenar un modelo y correr. Primero establecer un Pytorch y CV2. Sugerimos Anaconda que haga un entorno de Python virtual e independiente. Si desea entrenar en GPU, instale Nvidia Cuda y Cudnn.
git clone https://github.com/kuaikuaikim/dface.gitTambién proporcionamos una lista de dependencia del entorno de Anaconda llamada Environment.yml (Windows Utilice el entorno-Win64.yml, Mac Environment_osx.yaml) en la ruta de la raíz. Puede crear su entorno DFACE muy fácilmente.
cd DFace
conda env create -f path/to/environment.ymlAgregue dface a su ruta local de Python
export PYTHONPATH= $PYTHONPATH :{your local DFace root path}Si está interesado en cómo entrenar un modelo MTCNN, puede seguir el siguiente paso.
MTCNN tiene tres redes llamadas PNET , RNET y ONET . Así que debemos entrenarlo en tres etapas, y cada etapa depende de la red anterior que generará datos de trenes para alimentar la red de tren actual, también impulsar la pérdida mínima entre dos redes. Descargue los conjuntos de datos de la cara del tren antes de su entrenamiento. Usamos cara más ancha y Celeba . Se utiliza la cara más amplia para entrenar la clasificación de la cara y la caja del límite de la cara, también Celeba se usa para puntos de referencia. El archivo de anotación facial más ancha original es el formato MATLAB, debe transformarlo en texto. He puesto el archivo de texto de anotación transformado en anno_store/wider_origin_anno.txt. Este archivo está relacionado con el siguiente parámetro llamado --anno_file.
mkdir {your dface traindata folder}python dface/prepare_data/gen_Pnet_train_data.py --prefix_path {annotation file image prefix path, just your local wider face images folder} --dface_traindata_store {dface train data temporary folder you made before } --anno_file {wider face original combined annotation file, default anno_store/wider_origin_anno.txt}python dface/prepare_data/assemble_pnet_imglist.pypython dface/train_net/train_p_net.pypython dface/prepare_data/gen_Rnet_train_data.py --prefix_path {annotation file image prefix path, just your local wider face images folder} --dface_traindata_store {dface train data temporary folder you made before } --anno_file {wider face original combined annotation file, default anno_store/wider_origin_anno.txt} --pmodel_file {your PNet model file trained before}python dface/prepare_data/assemble_rnet_imglist.pypython dface/train_net/train_r_net.pypython dface/prepare_data/gen_Onet_train_data.py --prefix_path {annotation file image prefix path, just your local wider face images folder} --dface_traindata_store {dface train data temporary folder you made before } --anno_file {wider face original combined annotation file, default anno_store/wider_origin_anno.txt} --pmodel_file {your PNet model file trained before} --rmodel_file {your RNet model file trained before}python dface/prepare_data/gen_landmark_48.pypython dface/prepare_data/assemble_onet_imglist.pypython dface/train_net/train_o_net.pySi no desea entrenar, he puesto onet_epoch.pt, pnet_epoch.pt, rnet_epoch.pt en la carpeta model_store. Simplemente pruebe test_image.py
python test_image.pyLicencia de Apache 2.0