本期推荐的是基于多任务卷积网络(MTCNN)和Center-Loss的多人实时人脸检测和人脸识别系统。
DFace简介
DFace 是个开源的深度学习人脸检测系统和人脸识别系统。所有功能都采用pytorch框架开发。pytorch是一个由facebook开发的深度学习框架,它包含了一些比较有趣的高级特性,例如自动求导,动态构图等。DFace天然的继承了这些优点,使得它的训练过程可以更加简单方便,并且实现的代码可以更加清晰易懂。
MTCNN 结构
环境与模块
DFace主要有两大模块,人脸检测和人脸识别首先需要构建一个pytorch和cv2的python环境
依赖
- cuda 8.0
- anaconda
- pytorch
- torchvision
- cv2
- matplotlib
git clone https://github.com/kuaikuaikim/DFace.git
在这里我提供了一个anaconda的环境依赖文件environment.yml (windows请用environment-win64.yml),它能方便你构建自己的虚拟环境。
cd dface
conda env create -f environment.yml
添加python搜索模块路径
export PYTHONPATH=$PYTHONPATH:{your local DFace root path}
人脸识别和检测
训练mtcnn模型
MTCNN主要有三个网络,叫做PNet, RNet 和 ONet。因此我们的训练过程也需要分三步先后进行。为了更好地实现效果,当前被训练的网络都将依赖于上一个训练好的网络来生成数据。所有的人脸数据集都来自 WIDER FACE 和 CelebA。WIDER FACE仅提供了大量的人脸边框定位数据,而CelebA包含了人脸关键点定位数据。
- 创建 dface 训练数据临时目录,对应于以下所有的参数名 –dface_traindata_store
mkdir {your dface traindata folder}
- 生成PNet训练数据和标注文件
python dface/prepare_data/gen_Pnet_train_data.py --prefix_path {注解文件中图片的目录前缀,就是wider face图片所在目录} --dface_traindata_store {之前创建的dface训练数据临时目录} --anno_file {wider face 注解文件,可以不填,默认使用anno_store/wider_origin_anno.txt}
- 乱序合并标注文件
python dface/prepare_data/assemble_pnet_imglist.py
- 训练PNet模型
python dface/train_net/train_p_net.py
- 生成RNet训练数据和标注文件
python dface/prepare_data/gen_Onet_train_data.py --prefix_path {注解文件中图片的目录前缀,就是wider face图片所在目录} --dface_traindata_store {之前创建的dface训练数据临时目录} --anno_file {wider face 注解文件,可以不填,默认使用anno_store/wider_origin_anno.txt} --pmodel_file {之前训练的Pnet模型文件} --rmodel_file {之前训练的Rnet模型文件}
- 生成ONet的人脸五官关键点训练数据和标注文件
python dface/prepare_data/gen_landmark_48.py
- 乱序合并标注文件(包括人脸五官关键点)
python dface/prepare_data/assemble_onet_imglist.py
- 训练ONet模型
python dface/train_net/train_o_net.py
个人电脑安装
安装包下载地址 :
https://developer.nvidia.com/rdp/cudnn-download
根据自己的系统选择下面两个压缩包中的其中一个:
- cuDNN v6.0 Library for Windows 7
- cuDNN v6.0 Library for Windows 10
本地电脑下载文件名 :
cudnn-8.0-windows10-x64-v6.0.zip
配置步骤 :
- 将cudnn-8.0-windows10-x64-v6.0.zip解压
- 将解压得到的文件目录cuda拷贝到自己电脑的自定义位置,我存放到D:\Tools目录下了
- 添加环境变量
- 添加路径 : 路径1 D:\Tools\cuda\bin 路径2 D:\Tools\cuda\lib\x64
- 步骤 : 右键我的电脑 –> 属性 –> 高级系统设置 –> 环境变量 –> 系统变量 –> 添加路径到Path变量
安装:
- 双击安装包
- 点击Next
- 点击I Agree
- 上面的单选框选择 All Users(requires admin privileges) , 点击Next
- 选择安装路径,我的安装路径为 D:\Tools\Anaconda3 ,点击Next
- 上面的复选框默认,点击Install
- 一直Next直到结束
- 安装完成后,添加Anaconda3目录下的Scripts目录所在路径到环境变量,添加方法如cuda添加一致,我添加的路径为D:\Tools\Anaconda3\Scripts