Linux CPU | Linux GPU | Mac OS CPU | Windows CPU |
|---|---|---|---|
免費和開源的面部檢測。基於mtcnn
官方網站(https://dface.tech)
我們還提供完全識別SDK,包含跟踪,檢測,面部識別,抗散熱性等等。有關詳細信息,請參見Dface.Tech。
Dface是用於面部檢測和識別的開源軟件。 Pytorch (Facebook深度學習框架)實現的所有功能。使用Pytorch,我們使用一種稱為反向模式自動差異的技術,該技術使開發人員可以使用零滯後或開銷任意網絡行為的方式更改您的網絡行為方式。 dface繼承了這些高級特徵,使其使其動態和輕鬆的代碼審查。
dface用nvidia cuda支持GPU加速度。我們強烈建議您使用Linux GPU版本。它的快速和非常實時。
我們的靈感來自有關該主題的幾篇研究論文,以及使用多任務級聯卷積網絡和麵部識別主題面部的當前和過去的工作,例如聯合面部檢測和對齊方式:面部識別和聚類的統一嵌入
mtcnn結構
如果您想為dface做出貢獻,請查看項目中的貢獻。我們使用Slack來跟踪請求和錯誤。您也可以遵循QQ組681403076或我的微信Jinkuaikuai005
Dface有兩個主要模塊,即檢測和識別。在這兩個中,我們提供了有關如何訓練模型和運行的所有教程。首先設置Pytorch和CV2。我們建議Anaconda做一個虛擬和獨立的Python環境。如果您想在GPU上訓練,請安裝Nvidia Cuda和Cudnn。
git clone https://github.com/kuaikuaikim/dface.git另外,我們在根路徑中提供了一個稱為環境的Anaconda環境依賴列表。您可以非常輕鬆地創建DCEARENUSER。
cd DFace
conda env create -f path/to/environment.yml將dface添加到您當地的Python路徑
export PYTHONPATH= $PYTHONPATH :{your local DFace root path}如果您對如何培訓MTCNN型號感興趣,則可以按照下一步進行操作。
MTCNN有三個稱為PNET , RNET和ONET的網絡。因此,我們應該在三階段進行訓練,每個階段都取決於先前的網絡,該網絡將生成火車數據以供電到電流火車網,也可以推動兩個網絡之間的最小損失。在培訓之前,請下載火車面部數據集。我們使用較寬的臉部和Celeba 。原始的較寬的面部註釋文件是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放在model_store文件夾中。
python test_image.pyApache許可證2.0