姓名:米芃
學(xué)號(hào):16040520018
[嵌牛導(dǎo)讀]DFace軟件介紹
[嵌牛鼻子]DFace? 開(kāi)源
[嵌牛提問(wèn)]如何入門(mén)學(xué)習(xí)人臉識(shí)別
[嵌牛正文]今天為大家介紹一款基于多任務(wù)卷積網(wǎng)絡(luò)(MTCNN)和Center-Loss的多人實(shí)時(shí)人臉檢測(cè)和人臉識(shí)別系統(tǒng)DFace 。
DFace 是個(gè)開(kāi)源的深度學(xué)習(xí)人臉檢測(cè)和人臉識(shí)別系統(tǒng)。所有功能都采用 pytorch 框架開(kāi)發(fā)。pytorch是一個(gè)由facebook開(kāi)發(fā)的深度學(xué)習(xí)框架,它包含了一些比較有趣的高級(jí)特性救拉,例如自動(dòng)求導(dǎo)麸拄,動(dòng)態(tài)構(gòu)圖等。
DFace天然的繼承了這些優(yōu)點(diǎn)岖是,使得它的訓(xùn)練過(guò)程可以更加簡(jiǎn)單方便聪轿,并且實(shí)現(xiàn)的代碼可以更加清晰易懂金赦。 DFace可以利用CUDA來(lái)支持GPU加速模式。我們建議嘗試linux GPU這種模式,它幾乎可以實(shí)現(xiàn)實(shí)時(shí)的效果。
MTCNN 結(jié)構(gòu)
依賴(lài)
cuda 8.0
anaconda
pytorch
torchvision
cv2
matplotlib
在這里我提供了一個(gè)anaconda的環(huán)境依賴(lài)文件environment.yml,它能方便你構(gòu)建自己的虛擬環(huán)境。
conda env create -f path/to/environment.yml
訓(xùn)練mtcnn模型
MTCNN主要有三個(gè)網(wǎng)絡(luò),叫做PNet, RNet 和 ONet。因此我們的訓(xùn)練過(guò)程也需要分三步先后進(jìn)行。為了更好的實(shí)現(xiàn)效果,當(dāng)前被訓(xùn)練的網(wǎng)絡(luò)都將依賴(lài)于上一個(gè)訓(xùn)練好的網(wǎng)絡(luò)來(lái)生成數(shù)據(jù)亚兄。所有的人臉數(shù)據(jù)集都來(lái)自 WIDER FACE 和 CelebA。WIDER FACE僅提供了大量的人臉邊框定位數(shù)據(jù),而CelebA包含了人臉關(guān)鍵點(diǎn)定位數(shù)據(jù)。
生成PNet訓(xùn)練數(shù)據(jù)和標(biāo)注文件
python src/prepare_data/gen_Pnet_train_data.py --dataset_path {your dataset path} --anno_file {your dataset original annotation path}
亂序合并標(biāo)注文件
python src/prepare_data/assemble_pnet_imglist.py
訓(xùn)練PNet模型
python src/train_net/train_p_net.py
生成RNet訓(xùn)練數(shù)據(jù)和標(biāo)注文件
python src/prepare_data/gen_Rnet_train_data.py --dataset_path {your dataset path} --anno_file {your dataset original annotation path} --pmodel_file {yout PNet model file trained before}
亂序合并標(biāo)注文件
python src/prepare_data/assemble_rnet_imglist.py
訓(xùn)練RNet模型
python src/train_net/train_r_net.py
生成ONet訓(xùn)練數(shù)據(jù)和標(biāo)注文件
python src/prepare_data/gen_Onet_train_data.py --dataset_path {your dataset path} --anno_file {your dataset original annotation path} --pmodel_file {yout PNet model file trained before} --rmodel_file {yout RNet model file trained before}
生成ONet的人臉關(guān)鍵點(diǎn)訓(xùn)練數(shù)據(jù)和標(biāo)注文件
python src/prepare_data/gen_landmark_48.py
亂序合并標(biāo)注文件(包括人臉關(guān)鍵點(diǎn))
python src/prepare_data/assemble_onet_imglist.py
訓(xùn)練ONet模型
python src/train_net/train_o_net.py