- 理解和掌握基于神经网络的人脸检测方法的理论基础知识。
- 理解MTCNN人脸检测的基本流程,并加以实践。
anaconda3 pytorch 0.4.1 torchvision opencv-python等。
一、获取代码
实验完整代码mtcnn_pytorch,可直接下载或是通过git clone命令下载。
git clone https://github.com/xiezheng-cs/mtcnn_pytorch.git
二、实验环境安装
- 确保本机或是服务器已安装好anaconda3环境;
- pip或conda安装pytorch 0.4.1 和 torchvision环境;
- pip或conda安装opencv-python环境;
pip install http://download.pytorch.org/whl/cpu/torch-0.4.1-cp36-cp36m-win_amd64.whl # Windows
pip install http://download.pytorch.org/whl/cpu/torch-0.4.1-cp36-cp36m-linux_x86_64.whl # Linux
pip install torchvision
pip install opencv-python
三、简单测试给定模型
直接使用我们训练好的网络模型在给定的测试数据集(位于mtcnn_pytorch/data/test_images/目录下,共64张测试图片),运行以下命令,即可在mtcnn_pytorch/data/you_result/目录下查看检测结果。
cd mtcnn_pytorch/
python test_image.py
四、训练步骤
- 准备好训练数据,包括 wider face 和 TCDCN两个数据集,前者用来训练人脸框,后者用来训练关键点。
- 依次训练pnet, rnet, onet. 先运行preprocessing目录下的gen_pnet_data.py,它会生成许多12x12大小的训练样本图像。
- 运行assemble_pnet_imglist.py,它会生成训练图像列表和标签。
- 运行training/pnet目录下train.py,开始训练,默认训练50个epoch
- 与2-4步相同,完成rnet和onet的训练。
- 看看自己训练的模型的效果。tools/test_detect.py 脚本里有三处load_state_dict 的调用,把它替换成自己训练的模型,参考上面注释掉的那一行写法。
有几个需要修改的地方: 代码根目录下config.py,ROOT_DIR 修改为你自己的代码根目录的绝对路径。 training目录下 pnet,rnet,onet三个目录下分别有train.py,把里面的os.chdir那一行的路径改为你的代码根目录。