- CAFFE安装:
Makefile.config已经修改了好了,使用GPU的方式
所以直接使用下面的命令编译:
make -j8
# Make sure to include $CAFFE_ROOT/python to your PYTHONPATH.
make pycaffe
make test -j8
# (Optional)
make runtest -j8
- 数据处理:
(1) 利用脚本wider_face_2_voc.py脚本把wider_face数据转换成VOC格式。并遮盖掉小于20x20的人脸。
脚本的位置在:
(2) 在wider_face_2_voc.py的同一级目录中创建wider_face文件夹,放解压好下载的wider数据,如图:
(4_old_method) 生成的图片会把小于20x20的人脸用图像均值覆盖掉,因为太小的人脸,训练时不容易收敛,如图:
(4_new_method) 在文件src/caffe/util/im_transforms.cpp,UpdateBBoxByResizePolicy函数中过滤pixel小于20的人脸,如图:
在caffe/data目录下创建faces_database文件夹,拷贝wider_face文件夹(前面生成的VOC格式数据),layout如图:
cd caffe
\# Create the trainval.txt, test.txt, and test_name_size.txt in data/FACE/
./data/FACE/create_list.sh
\# You can modify the parameters in create_data.sh if needed.
\# It will create lmdb files for trainval and test with encoded original image:
\# data/faces_database/FACE/lmdb/FACE_trainval_lmdb
\# data/faces_database/FACE/lmdb/FACE_test_lmdb
\# and make soft links at examples/FACE/
./data/FACE/create_data.sh
- 训练:
根据paper我们对train.prototxt的数据采样部门进行了修改,主要是aspect_ratio强制为1,因为是对人脸进行训练,所以没变要改变宽高比, 如图:
运行以下命令开始训练:
./build/tools/caffe train --solver examples/faceboxes/solver_new.prototxt
- 测评:
在同样100 false positives,召回率提升了3个点。
- 参考:
- 优化:
train.prototxt支持Anchor densification strategy