[X]关闭
1

深度学习人脸识别(二)DFACE模型pytorch训练

摘要: 首先介绍一下MTCNN的网络结构,MTCNN有三种网络,训练网络的时候需要通过三部分分别进行,每一层网络都依赖前一层网络产生训练数据供当前训练网络,这样也推动了两个网络之间的最小损耗。PnetRnetOnetMTCNN的人脸模 ...

首先介绍一下MTCNN的网络结构,MTCNN有三种网络,训练网络的时候需要通过三部分分别进行,每一层网络都依赖前一层网络产生训练数据供当前训练网络,这样也推动了两个网络之间的最小损耗。

Pnet

data/attachment/portal/201909/08/143325mfb4mt9tm4axmxmm.jpg

Rnet

data/attachment/portal/201909/08/143326z4eoag07s307essm.jpg

Onet

data/attachment/portal/201909/08/143326rjdyl1d2tvf2qvjf.jpg

MTCNN的人脸模型按照以上结构按照三部分进行训练。

 

DFace有两个主要模块,即检测和识别。在这两个模块中,我们提供了有关如何训练模型和运行的所有教程。

首先设置一个pytorchcv2,版本要求:

* pytorch==0.4.0

* torchvision==0.2.0

* opencv-python==3.4.0.12

pip install torch==0.4.0 torchvision==0.2.0 -i https://pypi.tuna.tsinghua.edu.cn/simple

pip install opencv-python==3.4.0.12 -i https://pypi.tuna.tsinghua.edu.cn/simpleh

 

安装依赖库matplotlibpip install matplotlib

 

1)首先将DFacegit到本地用户目录,不要放在根目录:

git clone https://github.com/tuvia0213/DFace.git

2)添加DFace路径添加到本地python路径:

export PYTHONPATH=$PYTHONPATH:{your local DFace root path}/DFace

3)打开../DFace路径将WIDER FACE数据集下载到../DFace/WIDER_train/

WIDER_train下载地址http://mmlab.ie.cuhk.edu.hk/projects/WIDERFace/);

CelebA下载到../DFace/Celeba/路径下

CelebA下载地址:http://mmlab.ie.cuhk.edu.hk/projects/CelebA.html

并将../CelebA/Img/目录下的img_align_celeba压缩包解压到该目录;其中WIDER FACE用于训练人脸分类器与人脸约束框(Bounding Box,代码里常见形式为BBox),CelebA用于训练人脸坐标点(landmark点,人脸检测中的标点为双眼、鼻子、两个嘴角);

4)进入到../DFace路径下,生成PNet训练数据和注释文件(annotation file):

python dface/prepare_data/gen_Pnet_train_data.py --prefix_path WIDER_train/images/ --dface_traindata_store data/ --anno_file anno_store/wider_origin_anno.txt

5)组合注释文件并将其随机分布:

python dface/prepare_data/assemble_pnet_imglist.py

6训练Pnet模型:

python dface/train_net/train_p_net.py

7)生成RNet训练数据和注释文件:

python dface/prepare_data/gen_Rnet_train_data.py --prefix_path WIDER_train/images/ --dface_traindata_store data/ --anno_file  anno_store/wider_origin_anno.txt --pmodel_file model_store/pnet_epoch_10.pt

8)组合注释文件并将其随机分布:

python dface/prepare_data/assemble_rnet_imglist.py

9)训练Rnet模型:

python dface/train_net/train_r_net.py

10)生成ONet训练数据和注释文件:

python dface/prepare_data/gen_Onet_train_data.py --prefix_path WIDER_train/images/ --dface_traindata_store data/ --anno_file anno_store/wider_origin_anno.txt --pmodel_file model_store/pnet_epoch_10.pt --rmodel_file model_store/rnet_epoch_10.pt

11)生成Onet训练landmark点数据,在此之前,生成testImageList.txt,需先将merge_file.py复制到celeba/CelebA/Anno路径下:

python dface/prepare_data/gen_landmark_48.py --dface_traindata_store data/ --anno_file celeba/CelebA/Anno/testImageList.txt --prefix_path celeba/CelebA/Img/img_align_celeba

12)组合注释文件并将其随机分布:

python dface/prepare_data/assemble_onet_imglist.py

13)训练Onet模型:

python dface/train_net/train_o_net.py

DFace路径下提供了测试图片与测试脚本,可以用于测试训练网络的识别效果,回到../DFace路径下:

python test_image.py

显示出识别图片效果:

data/attachment/portal/201909/08/143327p7v454szznafimim.jpg

至此,模型训练完成,可以使用../DFace/model_store下的pnet_epoch_10.pt rnet_epoch_10.pt onet_epoch_10.pt进行模型转换,从pytorchcaffencnn



路过

雷人

握手

鲜花

鸡蛋
发表评论

最新评论

引用 猪猪 2021-3-11 10:24
不错,感谢

查看全部评论(1)

本文作者
2019-9-8 22:33
  • 7
    粉丝
  • 9545
    阅读
  • 1
    回复

关注米联客

扫描关注,了解最新资讯

联系人:汤经理
电话:0519-80699907
EMAIL:270682667@qq.com
地址:常州溧阳市天目云谷3号楼北楼201B
相关分类
热门评论
排行榜