Linux CPU | Linux GPU | Mac OS CPU | Windows CPU |
|---|---|---|---|
Détection de visage libre et open source. Basé sur le mtcnn
Site officiel (https://dface.tech)
Nous fournissons également le SDK Reconnus Face, contient le suivi, la détection, la reconnaissance du visage, la lutte contre le visage et ainsi de suite. Voir dface.tech pour plus de détails.
DFACE est un logiciel open source pour la détection et la reconnaissance du visage. Toutes les fonctionnalités implémentées par le Pytorch (le framework Facebook Deeplearning). Avec Pytorch, nous utilisons une technique appelée auto-différenciation en mode inverse, qui permet au développeur de modifier la façon dont votre réseau se comporte arbitrairement avec un décalage ou des frais généraux zéro. DFACE hériter de ces caractéristiques avancées, qui le rendent dynamique et facilitent l'examen du code.
DFACE Soutenez l'accélération du GPU avec NVIDIA CUDA. Nous vous recommandons fortement d'utiliser la version GPU Linux. Il est très rapide et extrêmement en temps réel.
Notre inspiration provient de plusieurs articles de recherche sur ce sujet, ainsi que des travaux actuels et antérieurs tels que la détection et l'alignement conjoints en utilisant des réseaux convolutionnels en cascade multi-tâches et un sujet de reconnaissance faciale: une intégration unifiée pour la reconnaissance du visage et le regroupement
Structure mtcnn
Si vous souhaitez contribuer à DFACE, veuillez consulter le contribution.md dans le projet. Nous utilisons Slack pour suivre les demandes et les bogues. Vous pouvez également suivre le groupe QQ 681403076 ou mon WeChat Jinkuaikuai005
Dface a deux modules principaux, détection et reconnaissance. Définition d'abord d'un pytorch et de CV2. Nous suggérons à Anaconda de faire un environnement de python virtuel et indépendant. Si vous souhaitez vous entraîner sur GPU, veuillez installer Nvidia Cuda et Cudnn.
git clone https://github.com/kuaikuaikim/dface.gitNous fournissons également une liste de dépendances de l'environnement Anaconda appelée Environment.yml (Windows Veuillez utiliser l'environnement-win64.yml, mac environnement_osx.yaml) dans le chemin racine. Vous pouvez créer votre environnement DFACE très facilement.
cd DFace
conda env create -f path/to/environment.ymlAjoutez Dface à votre chemin Python local
export PYTHONPATH= $PYTHONPATH :{your local DFace root path}Si vous êtes intéressé par la façon de former un modèle MTCNN, vous pouvez suivre la prochaine étape.
MTCNN a trois réseaux appelés PNET , RNET et ONET . Nous devons donc le former à trois étapes, et chaque étape dépend du réseau précédent qui générera des données de train pour alimenter le filet de train actuel, propulse également la perte minimale entre deux réseaux. Veuillez télécharger les ensembles de données Face Face avant votre formation. Nous utilisons un visage plus large et celeba . Le visage avec le visage est utilisé pour la classification du visage et la boîte de délimitation du visage, la Celeba est également utilisée pour les repères du visage. Le fichier d'annotation de face plus large d'origine est le format MATLAB, vous devez le transformer en texte. J'ai mis le fichier texte d'annotation transformé en anno_store / wider_origin_anno.txt. Ce fichier est lié au paramètre suivant appelé --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 vous ne voulez pas vous entraîner, j'ai mis Onet_epoch.pt, pnet_epoch.pt, rnet_epoch.pt dans le dossier Model_Store. Vous essayez simplement test_image.py
python test_image.pyLicence Apache 2.0