Linux CPU | Linux GPU | Mac OS CPU | Windows CPU |
|---|---|---|---|
無料でオープンソースの顔の検出。 mtcnnに基づいています
公式ウェブサイト(https://dface.tech)
また、SDKを完全に認識し、追跡、検出、顔認識、顔のスプーフィングなどを含みます。詳細については、dface.techを参照してください。
DFACEは、顔の検出と認識のためのオープンソースソフトウェアです。 Pytorch (Facebook Deeplearningフレームワーク)によって実装されたすべての機能。 Pytorchを使用すると、リバースモードの自動分化と呼ばれる手法を使用します。これにより、開発者は、ネットワークがゼロラグまたはオーバーヘッドで任意に動作する方法を変更できます。 DFACEは、これらの高度な特性を継承し、動的で容易にコードレビューを行います。
DFACEサポートNVIDIA CUDAによるGPU加速。 Linux GPUバージョンを使用することを強くお勧めします。それは非常に高速で非常にリアルタイムです。
私たちのインスピレーションは、このトピックに関するいくつかの研究論文からのものであり、マルチタスクカスケード畳み込みネットワークと顔認識トピックFACENET:顔認識とクラスタリングのための統合埋め込みなどの共同顔の検出やアライメントなどの現在および過去の作業から来ています
mtcnn構造
DFACEに貢献したい場合は、プロジェクトの貢献を確認してください。リクエストとバグの追跡にSlackを使用します。また、QQグループ681403076または私のwechat jinkuaikuai005に従うことができます
DFACEには2つの主要なモジュール、検出と認識があります。これら2つでは、モデルのトレーニングと実行方法に関するすべてのチュートリアルを提供します。最初にPytorchとCV2を設定します。 Anacondaは、仮想で独立したPython環境を作ることをお勧めします。 GPUでトレーニングしたい場合は、Nvidia CudaとCudnnをインストールしてください。
git clone https://github.com/kuaikuaikim/dface.gitまた、ルートパスで環境.yml(windowsを環境Win64.yml、mac環境_osx.yamlを使用してください)と呼ばれるアナコンダ環境依存リストを提供します。 DFACE環境を非常に簡単に作成できます。
cd DFace
conda env create -f path/to/environment.ymlローカルPythonパスにDFACEを追加します
export PYTHONPATH= $PYTHONPATH :{your local DFace root path}MTCNNモデルのトレーニング方法に興味がある場合は、次のステップに従うことができます。
MTCNNにはPNET 、 RNET 、およびONETと呼ばれる3つのネットワークがあります。そのため、3つのステージでトレーニングする必要があります。各段階は、現在の列車ネットを供給する列車データを生成する以前のネットワークに依存し、2つのネットワーク間の最小損失も推進します。トレーニングの前に、Train Faceデータセットをダウンロードしてください。より広い顔とセレバを使用します。幅の顔は、顔の分類と顔の境界ボックスのトレーニングに使用されます。また、セレバは顔のランドマークに使用されます。元のより広いFace AnnotationファイルはMATLAB形式です。テキストに変換する必要があります。変換された注釈テキストファイルをanno_store/wider_origin_anno.txtに入れました。このファイルは、-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.pyトレーニングをしたくない場合は、onet_epoch.pt、pnet_epoch.pt、rnet_epoch.pt in model_store folderを入れました。
python test_image.pyApacheライセンス2.0