您的位置:首页 > 其它

Face Detection with the Faster R-CNN

2016-07-28 23:23 381 查看
物体检测合集Object Detection blog

数据集合集CV Datasets on the web

正文

当我选用Faster RCNN做人脸检测时,已经有了一篇同名的论文了,详见Face Detection with the Faster R-CNN,同时其它博文也有用Faster RCNN训练自己数据集的教程,所以在此就不班门弄斧了。人脸检测的数据集我采用了FDDB,原因是该数据集小,而且之前用过。如果想要训练结果好一点,可以采用WIDER face,MegaFace这些大的数据集。

较其它博文的不同,我模仿Faster RCNN源代码手写了FDDB的训练过程(很多都是可重用的,需要写的不多)。我试过可以不改变solver就可以进行训练,如果出现loss为Nan的情况,可以适当减小lr试试。



图片来源于实验室,取自与某Q空间

训练结果比较差,在一些稍微暗一点或者人脸小一点的图片,就没法进行检测。本次练手的目的只是熟悉源码,对与训练结果没有做进一步优化,相关工作上面Face Detection with the Faster R-CNN也做过了,所以就不重复工作了。下次用SSD做个Face detection in video吧。

输入为data, im_info(height, width, scale)和gt_boxes。conv1-conv5为共享卷积层。rpn_cls_score(分类)和rpn_bbox_pred(回归)分别输出2 * 9(anchors)和4 * 9(anchors)。重点是”rpn-data”层anchor的操作。那么问题来了。

如何实现共享卷积层?

RPN和Fast R-CNN共享卷积层。RPN在features maps生成的候选窗口,然后经roi pooling后再检测,边框校准。

交替训练方法:

1. Stage 1 RPN, init from ImageNet model’

2. Stage 1 RPN, generate proposals

2. Stage 1 Fast R-CNN using RPN proposals, init from ImageNet model

3. Stage 2 RPN, init from stage 1 Fast R-CNN model

4. Stage 2 RPN, generate proposals

5. Stage 2 Fast R-CNN, init from stage 2 RPN R-CNN model

anchors的工作原理?

在conv feature map上做3*3的滑窗,每个窗口区域预测输入图像的3种尺度(128,256,512)和3种长宽比(1:1,1:2,2:1)的候选区。以40*60的feature map为例,总共有约20000(40*60*9)个anchor(候选区, region proposal)。针对人脸检测(大致为正方形),anchors可以调整长宽比。

Code
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  face detection faster rcnn