arxiv_FDNet_Face Detection Using Improved Faster RCNN



华为云的一篇人脸检测文章FDNet,目前在wider face上性能仅次于PyramidBox(来自百度,旷视的FAN也蛮屌),基于faster rcnn的改进,算法层面东西不多,但性能很好;同行的工程性文章还是值得一读的;

we propose a detailed designed Faster RCNN method named FDNet1.0 for face detection.
使用的方案:
1 multi-scale training;
2 multi-scale testing;
3 light-designed RCNN;
4 some tricks for inference;
5 a vote-based ensemble method;
多尺度训练+测试,基于投票的多NMS模型融合,耗时怎么样?
论文仅仅给出了在wider face验证集上的性能,测试集上的性能在wider face官网有给出,与验证集的结果一致;

1 introduction
讲到了yolo、ssd等one stage detector:One stage methods refer broadly to architectures that use a single feed-forward full convolutional neural network to directly predict each proposal’s class and corresponding bounding box without requiring a second stage per-proposal classification operation and box refinement . 作者认为:one stage直接对每个proposal提取类别标签和bbox,无需基于proposal再用类似fast rcnn做一次bbox细化类别的分类和回归(SSD这么搞的);
再以frcnn为例,讲了two stage detector:
In the first pipe, input image is directly processed by a feature extractor without any hand engineering, and features at the selected intermediate layer will be fed to a convolutional layer, which simultaneously predict objectiveness scores and region bounds at each location on a regular grid according to predefined stride .就是RPN网络的路子;
In the second pipe, these proposals with higher scores in the RPN are used to crop features from the same intermediate feature map which are subsequently fed to the remainder of the feature extractor in order to predict a class and class-specific box refinement for each proposal .然后就是frcnn中fast rcnn的路子。

作者提到的一些小工作:
1 A deformable layer生成fewer channels(类似1x1卷积减少channel),再与backbone network融合产生更加thin的feature map,后再接全连接层,形成two stage detector;
2 测试时,RPN阶段直接使用top-ranked proposals (e.g., 6000),不做MNS,以保证较高的召回率,这样可能会增加耗时哦;
3 在训练/测试阶段保留小尺度proposal;
4 多尺度训练/测试;

作者认为的贡献:
(1) 提取基于two-stage框架的轻头(light head)人脸检测器FDNet1.0;
(2) 提出了一些提升人脸检测性能的tricks:
2.1 多尺度训练/测试;
2.2 在训练/测试阶段保留小尺度proposal
2.3 在RPN阶段直接使用所有top-ranked proposals(例如frcnn中的6000个),而不附加NMS处理;
2.4 基于投票的NMS集成策略;

3 论文的方案
3.1 Light-Head Faster RCNN有点类似旷视的light-head rcnn,也有点类似R-FCN,能共享feature就共享,但没有使用ps roi pooling等方案;


arxiv_FDNet_Face Detection Using Improved Faster RCNN_第1张图片

ResNet-v1-101作为提特征的主干网(backbone network to extract high-level feature),stride设置为16 pixels;在做roi pooling映射前,使用large kernel-based deformable layer建立“thin” feature maps(512 channel size),好处就是利用上下文信息和对形变更加鲁棒;roi pooling的size是512×7×7,再后接fc层(2048个结点)做分类和回归即可;

anchor的设计:3个长宽比,6个scale;在训练和测试阶段保留所有small proposals(< 16 pixels width/height)有效;这样可以将face gt bbox与anchor更好的匹配;

注:deformable layer其实就是ICCV2017 Deformable Convolutional Networks中的思想;多学一个偏置,让5x5 size的conv filter可以利用更多的上下文信息;
以下绘图来自DCN网络:
arxiv_FDNet_Face Detection Using Improved Faster RCNN_第2张图片



arxiv_FDNet_Face Detection Using Improved Faster RCNN_第3张图片
3.2 Multi-Scale Training and Testing
训练阶段仅使用水平翻转的图像增强,图像shorter size做五个尺度的resize,再多尺度训练;
测试阶段使用的多尺度与测试阶段保持一致,每个尺度图像单独测试,最后所有结果做融合;
多尺度图像测试过程中,每个单独尺度的图像,不使用MNS做过滤;得到了每个尺度上检测的proposals之后,再在所有的proposals上使用voted-based NMS strategy。
操作分两步:
1 消除false positive samples:如果一个proposals(论文中称为output bounding box)与其他任何一个bbox的iou小于0.3,则可以认为是离群bbox,直接忽略即可;
2 常规NMS操作,获取最终检测的bbox;

4 实验设置
训练阶段使用imagenet上训练好的ResNet_v1_101,固定前两个block,再在wider face上训练;
测试阶段多尺度,且每张图像独立测试,并且6000 proposals不使用NMS筛选,都过一遍检测;最后的voted-based NMS strategy在所有图像上操作;

5 实验
论文里只介绍了在validation set上的结果,test set上的结果需要参考wider face官网;
arxiv_FDNet_Face Detection Using Improved Faster RCNN_第4张图片
arxiv_FDNet_Face Detection Using Improved Faster RCNN_第5张图片
arxiv_FDNet_Face Detection Using Improved Faster RCNN_第6张图片
arxiv_FDNet_Face Detection Using Improved Faster RCNN_第7张图片
arxiv_FDNet_Face Detection Using Improved Faster RCNN_第8张图片

总结:
1 作者提到没有怎么使用数据增强和OHEM方法,认为使用了更多的tricks之后,性能会更好;
2 多尺度的类图像金字塔的测试,耗时比较大,尽管使用了light-head rcnn,但3*6的尺度较多(3对应长宽比,6对应尺度),论文中并没有提到耗时;
3 frcnn生命力真是强大,虽然是一个general object detector,但在各个领域的普适性真是好,tencent、xiaomi、deepir都基于frcnn在人脸检测数据集wider face上取得了很好的成绩,不得不佩服frcnn的超凡能力;

论文参考
1 arxiv2018_FDNet_Face Detection Using Improved Faster RCNN
2 ICCV2017_DCN_Deformable Convolutional Networks

华为云的一篇人脸检测文章FDNet,目前在wider face上性能仅次于PyramidBox(来自百度,旷视的FAN也蛮屌),基于faster rcnn的改进,算法层面东西不多,但性能很好;同行的工程性文章还是值得一读的;

we propose a detailed designed Faster RCNN method named FDNet1.0 for face detection.
使用的方案:
1 multi-scale training;
2 multi-scale testing;
3 light-designed RCNN;
4 some tricks for inference;
5 a vote-based ensemble method;
多尺度训练+测试,基于投票的多NMS模型融合,耗时怎么样?
论文仅仅给出了在wider face验证集上的性能,测试集上的性能在wider face官网有给出,与验证集的结果一致;

1 introduction
讲到了yolo、ssd等one stage detector:One stage methods refer broadly to architectures that use a single feed-forward full convolutional neural network to directly predict each proposal’s class and corresponding bounding box without requiring a second stage per-proposal classification operation and box refinement . 作者认为:one stage直接对每个proposal提取类别标签和bbox,无需基于proposal再用类似fast rcnn做一次bbox细化类别的分类和回归(SSD这么搞的);
再以frcnn为例,讲了two stage detector:
In the first pipe, input image is directly processed by a feature extractor without any hand engineering, and features at the selected intermediate layer will be fed to a convolutional layer, which simultaneously predict objectiveness scores and region bounds at each location on a regular grid according to predefined stride .就是RPN网络的路子;
In the second pipe, these proposals with higher scores in the RPN are used to crop features from the same intermediate feature map which are subsequently fed to the remainder of the feature extractor in order to predict a class and class-specific box refinement for each proposal .然后就是frcnn中fast rcnn的路子。

作者提到的一些小工作:
1 A deformable layer生成fewer channels(类似1x1卷积减少channel),再与backbone network融合产生更加thin的feature map,后再接全连接层,形成two stage detector;
2 测试时,RPN阶段直接使用top-ranked proposals (e.g., 6000),不做MNS,以保证较高的召回率,这样可能会增加耗时哦;
3 在训练/测试阶段保留小尺度proposal;
4 多尺度训练/测试;

作者认为的贡献:
(1) 提取基于two-stage框架的轻头(light head)人脸检测器FDNet1.0;
(2) 提出了一些提升人脸检测性能的tricks:
2.1 多尺度训练/测试;
2.2 在训练/测试阶段保留小尺度proposal
2.3 在RPN阶段直接使用所有top-ranked proposals(例如frcnn中的6000个),而不附加NMS处理;
2.4 基于投票的NMS集成策略;

3 论文的方案
3.1 Light-Head Faster RCNN有点类似旷视的light-head rcnn,也有点类似R-FCN,能共享feature就共享,但没有使用ps roi pooling等方案;


arxiv_FDNet_Face Detection Using Improved Faster RCNN_第9张图片

ResNet-v1-101作为提特征的主干网(backbone network to extract high-level feature),stride设置为16 pixels;在做roi pooling映射前,使用large kernel-based deformable layer建立“thin” feature maps(512 channel size),好处就是利用上下文信息和对形变更加鲁棒;roi pooling的size是512×7×7,再后接fc层(2048个结点)做分类和回归即可;

anchor的设计:3个长宽比,6个scale;在训练和测试阶段保留所有small proposals(< 16 pixels width/height)有效;这样可以将face gt bbox与anchor更好的匹配;

注:deformable layer其实就是ICCV2017 Deformable Convolutional Networks中的思想;多学一个偏置,让5x5 size的conv filter可以利用更多的上下文信息;
以下绘图来自DCN网络:
arxiv_FDNet_Face Detection Using Improved Faster RCNN_第10张图片



arxiv_FDNet_Face Detection Using Improved Faster RCNN_第11张图片
3.2 Multi-Scale Training and Testing
训练阶段仅使用水平翻转的图像增强,图像shorter size做五个尺度的resize,再多尺度训练;
测试阶段使用的多尺度与测试阶段保持一致,每个尺度图像单独测试,最后所有结果做融合;
多尺度图像测试过程中,每个单独尺度的图像,不使用MNS做过滤;得到了每个尺度上检测的proposals之后,再在所有的proposals上使用voted-based NMS strategy。
操作分两步:
1 消除false positive samples:如果一个proposals(论文中称为output bounding box)与其他任何一个bbox的iou小于0.3,则可以认为是离群bbox,直接忽略即可;
2 常规NMS操作,获取最终检测的bbox;

4 实验设置
训练阶段使用imagenet上训练好的ResNet_v1_101,固定前两个block,再在wider face上训练;
测试阶段多尺度,且每张图像独立测试,并且6000 proposals不使用NMS筛选,都过一遍检测;最后的voted-based NMS strategy在所有图像上操作;

5 实验
论文里只介绍了在validation set上的结果,test set上的结果需要参考wider face官网;
arxiv_FDNet_Face Detection Using Improved Faster RCNN_第12张图片
arxiv_FDNet_Face Detection Using Improved Faster RCNN_第13张图片
arxiv_FDNet_Face Detection Using Improved Faster RCNN_第14张图片
arxiv_FDNet_Face Detection Using Improved Faster RCNN_第15张图片
arxiv_FDNet_Face Detection Using Improved Faster RCNN_第16张图片

总结:
1 作者提到没有怎么使用数据增强和OHEM方法,认为使用了更多的tricks之后,性能会更好;
2 多尺度的类图像金字塔的测试,耗时比较大,尽管使用了light-head rcnn,但3*6的尺度较多(3对应长宽比,6对应尺度),论文中并没有提到耗时;
3 frcnn生命力真是强大,虽然是一个general object detector,但在各个领域的普适性真是好,tencent、xiaomi、deepir都基于frcnn在人脸检测数据集wider face上取得了很好的成绩,不得不佩服frcnn的超凡能力;

论文参考
1 arxiv2018_FDNet_Face Detection Using Improved Faster RCNN
2 ICCV2017_DCN_Deformable Convolutional Networks

你可能感兴趣的:(人脸检测)