DenseBox: Unifying Landmark Localization with End to End Object Detection

DenseBox: Unifying Landmark Localization with End to End Object Detection



DenseBox是一个完整的基于CNN的物体检测框架,它通过精心的网络设计,能够处理不同尺度的检测,实现更精确的定位回归。模型训练中所采用特征融合,多任务训练,难负样本挖掘等方法也是被广泛证明有效的。同时它也KITTI上的结果也从另一个角度说明,只要模型设计和训练得当,小模型已经有足够好的效果。但是对于ADAS而言,光有检测是远远不够的,往往需要通过系统的冗余,采取相对保守的策略来规避最差的情况。

本文的贡献有以下几点: 
1,实现了end-to-end的学习,同时完成了对bounding box和物体类别的预测; 
2,在多任务学习中融入定位信息,提高了检测的准确率。

百度深度学习研究院 的目标检测工作 类似 Faster R-CNN,是地平线ADAS的车辆检测 核心算法

                    DenseBox: Unifying Landmark Localization with End to End Object Detection

从上图可以看到,只需要单独的卷积网络就可以同时输出多个预测到的bounding box和分类结果,除了nms之外,检测系统的所有组成部分都构建在FCN之中。

Densebox for Detection

1、Ground Truth Generation

在图像预处理阶段,在保证人脸和足够的背景信息下对图片进行了剪切。 
                                                   DenseBox: Unifying Landmark Localization with End to End Object Detection

在训练过程中,将原始图片剪切到240*240大小,保证处于中心的脸部高度为50p,输出的ground truth是一个5通道的大小为60*60的特征图。


2、Model Design

              DenseBox: Unifying Landmark Localization with End to End Object Detection
上图是本文的网络结构图。红色部分表示存在学习参数。前12个conv层的网络参数由VGG19模型参数直接初始化,conv4_4的输出作为后续四个1*1卷积层的输入,前两个输出的是通道1的特征图,用于分类预测,后两个利用通道4的特征图来预测bounding box的相对位置。这种有两个输出分支的结构和Fast R-CNN很相似,在第一个输出端口定义分类损失函数,在第二个定义bounding-box回归损失函数,这样就可定义完整的损失函数。

模型是从19层的VGG模型演变来的。

Multi-Level Feature Fusion: 将不同卷积层的特征联系起来可以提高检测效果

如果只做简单的全卷积,在高层的特征空间里很难保留物体的细节特征。这对于小物体的检测以及遮挡物体的定位都会带来不利的影响。图像分割中常常使用特征融合的方法,即把浅层的特征与高层的特征经过尺度变换后拼在一起。拼接的方式基本有两种,一种是像GoogLeNet一样,按channel维度拼起来,第二种就是孙健的ResNet那样,把它们直接相加。现在这种做法也变成了趋势,越来越多人做视觉任务都用了类似的方法。经过多层卷积,下采样后得到低分辨率的高维表达,可以抽象出物体的高层语意表达,捕获物体的上下文空间信息,相当于是一个bottom-up的表达抽象过程。然后再逐步把前面层的特征组合起来,补充细节信息,这相当于再做一个top-down的修正。

                     DenseBox: Unifying Landmark Localization with End to End Object Detection

3、Multi-Task Training

 两个任务:1)目标有无,2)目标的位置

均衡抽样Balance Sample:

  • Ignoring Gray Zone:

除了产生正样本的区域, 即下图中红色的区域外, 还会产生灰色的区域(gray zone) 或者是说模糊的区间。这些灰色地带被判别为正样本或者负样本都是不合理的, 训练的时候模型不应该对这些区域的预测正确与否产生惩罚。                     

                    DenseBox: Unifying Landmark Localization with End to End Object Detection

  • Hard Negative Mining:

地平线采用多任务学习(multi-task learning)的方式对网络进行端到端(end-to-end)的训练。多任务训练体现在同时进行分类和回归的学习,以及不同尺度对应的网络分支也会进行监督学习。多任务学习有助于网络训练的整体稳定,同时还能加快收敛。除此之外对于分类任务,地平线也用了在线难负样本挖掘(online hard negative mining)方法训练CNN。这个方法最近被证实在训练CNN检测器的时候很有效。其实在很早以前大家用boosting, DPM等方法的时候就已经这么做了,地平线也很早就在我们的方法里头用了这个策略。具体来说,会首先保持正负样本比例为1:1,然后让所有的负样本,一半从最难(即分类最糟糕)的一部分中采样,另一半则为随机采样。另外,我们用hinge loss来做分类,用简单的L2 loss 做检测框的回归。还有个细节就是地平线在训练中还用了梯度修剪(clip gradient)的方法来缓和训练过程中梯度不稳定的情况。

                  DenseBox: Unifying Landmark Localization with End to End Object Detection  

  • Loss with Mask

        DenseBox: Unifying Landmark Localization with End to End Object Detection

Landmark 改善定位模型 


                          DenseBox: Unifying Landmark Localization with End to End Object Detection

      DenseBox: Unifying Landmark Localization with End to End Object Detection

对比:

传统的NN-based Face Detector;

OverFeat[1]中提出了将分类和定位问题一起解决的思想,但这两个任务在训练阶段是分开进行的,并且需要复杂的后续处理来得到检测结果,而在本文中多任务的学习是end-to-end;

DDFD[2]是一个基于CNN的人脸检测系统,它比R-CNN的性能更好的原因在于R-CNN在proposal的产生过程中会遗失一些脸部信息。但DDFD的类别预测和bounding box定位也是分为两个阶段进行的; 

Faster R-CNN[3]通过RPN完成proposal的生成,RPN需要预先定义好的anchors,而且RPN是在多尺度物体上进行训练的。 
MultiBox[4]运用CNN来生成proposal而不是selective search,它生成的bounding box不具有不变性,而本文生成的bounding box和RPN一样,具有转换不变性;

YOLO[5]和DenseBox一样也可完成end-to-end的学习,但两者的输出层设计不一样。YOLO针对每个图像输出49个bounding box, 最终在分类的时候是基于低分辨率的特征图像,这导致原图像中面积很小的物体在经过多次的卷积之后,其信息很难在低分辨率的特征图中进行保存,DenseBox则通过上采样层来保证分辨率相对较高的输出,同时运用了下采样。这使得网络在处理小物体和高度重合的物体上有很大的优势.

实验:    

           DenseBox: Unifying Landmark Localization with End to End Object Detection

KITTI 数据集车辆检测上面的结果: 
                      DenseBox: Unifying Landmark Localization with End to End Object Detection     

           DenseBox: Unifying Landmark Localization with End to End Object Detection