写在最前面
这一系列文章是博主2020年本科论文调研时记的,现在是多模态的时代,很多技术都过时了,发出来希望对读这些论文的人有所帮助
Title
DenseBox: Unifying Landmark Localization with End to End Object Detection
Summary
DenseBox可以说是密集检测的前身,但其针对单类检测,并且需要对数据进行较为复杂的预处理,训练起来比较复杂,不适用于多类检测。
Research Objective
使用一个精心的设计和优化后的简单FCN:DenseBox,做到精确、高效地检测多种不同物体,进一步提升一阶段目标检测的性能。
Problem Statement
目标检测和我们的生活息息相关,它是计算机视觉中的一项核心任务,在CNN之前,目标检测通常使用基于滑动窗口的方法,而随着基于FCN的方法的出现,目标检测的性能得到了极大的提升。
R-CNN进一步提升了目标检测的精度,但是它存在两个问题:(1)R-CNN很难检测小物体,这是因为候选框分辨率低且缺乏语义信息;(2)R-CNN不能进行端到端的训练。
Methods
1.Overview
DenseBox的Pipeline如下:
整个网络接受一张
m
×
n
m \times n
m×n的图片作为输入,输出为5通道的
m
/
4
×
n
/
4
m/4\times n/4
m/4×n/4大小的特征图,5通道分别为置信度和位置信息。
2.Ground Truth Generation
在训练网络的过程中,没有必要将整张图片放入网络中训练,因为这将花费大量的时间在背景卷积上,一个比较聪明的做法是裁剪包含人脸和足够背景信息的图片进行训练。
在训练的过程中,裁剪出来的图片被修正到
240
×
240
240 \times 240
240×240的大小,其中间是人脸,大概高度是50像素,在训练过程中的ground truth是一个
60
×
60
60\times 60
60×60大小的5通道图,第一个通道的正例区域是一个半径为r的实心圆,位于脸的bounding box的中心,r由box的尺寸决定,剩下的4个通道由该位置和离它最近的bounding box的位置信息决定。
如果在一张裁剪图片中出现了多张脸,则进行如下的处理:如果这张脸和位于中心的脸的尺度接近(在我们的设置中为0.8-1.25),则为正例,否则为反例。
3.Model Design
我们的网络结构来源于VGG 19模型,整个模型有16个卷积层,前12个卷积层使用VGG 19初始化:
Multi-Level Feature Fusion
近期的一些工作表明,使用从不同卷积层得到的特征可以进一步提高性能,浅层特征注重局部细节,深层特征则有更大的感受野,在实验中,我们连接了conv3_4和conv4_4的特征图。
4.Multi-Task Training
我们使用ImageNet上的预训练模型VGG 19网络来初始化DenseBox,在初始化时,只保留VGG 19的前12个卷积层,后面则是4个新的卷积层。
4.1 Balance Sampling
负样本的筛选是学习过程中的重要环节,在每个batch中如果只是简单的使用所有负例,就会导致模型的预测偏向负例,另外,如果我们惩罚那些位于正负区域间的样例,也会导致检测器退化。这里我们使用一个二进制掩码来指示每个输出像素是否用于训练。
Ignoring Gray Zone
灰色区域位于正负区域之间,其损失权重应该设为0,灰色区域不是正例,但其2个像素半径内存在正例像素。
Hard Negative Mining
我们通过搜索错误预测的样本来使学习过程更高效,通过难样例挖掘,错误预测的样本更容易被挑选出来,使得模型产生更鲁棒的预测。
Loss with Mask
5.Refine with Landmark Localization
landmark localization可以在DenseBox中通过在全卷积结构中堆叠一些层来实现,此外,我们可以通过结合landmark的热图和face分数图来提升检测结果。
最终的损失函数为:
Evaluation
1.MALF(Multi-Attribute Labelled Faces)
2.KITTI Car
Conclusion
Strong Conclusion
1.在多任务环境下,当DenseBox融合了landmark localization后,其目标检测精度得到了进一步的提升。
2.DenseBox在人脸检测和车辆检测上都取得了不错的表现,但其检测速度较慢。
Notes
1.DenseBox进行了细致的图片预处理和样本均衡,这也是其达到state-of-the-art的原因之一。