DenseBox: Unifying Landmark Localization with End to End Object Detection


  • arxiv: http://arxiv.org/abs/1509.04874
  • demo: http://pan.baidu.com/s/1mgoWWsS
  • KITTI result: http://www.cvlibs.net/datasets/kitti/eval_object.php

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

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

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

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

Densebox for Detection

1、Ground Truth Generation

在图像预处理阶段,在保证人脸和足够的背景信息下对图片进行了剪切。 
                                                   

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

2、Model Design


上图是本文的网络结构图。红色部分表示存在学习参数。前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的修正。

3、Multi-Task Training

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

均衡抽样Balance Sample:

  • Ignoring Gray Zone:

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

  • 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)的方法来缓和训练过程中梯度不稳定的情况。

  • Loss with Mask

Landmark 改善定位模型

对比:

传统的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则通过上采样层来保证分辨率相对较高的输出,同时运用了下采样。这使得网络在处理小物体和高度重合的物体上有很大的优势.

实验:

KITTI 数据集车辆检测上面的结果: 
                      

DenseBox: Unifying Landmark Localization with End to End Object Detection相关推荐

  1. DenseBox Unifying Landmark Localization with End to End Object Detection

    前言 最近开始阅读AnchorFree系列的论文,2015年发布在CVPR的DenseBox基于AnchorFree思路的one-stage目标检测有必要阅读一下,了解下AnchorFree的一些思路 ...

  2. Delving into Localization Errors for Monocular 3D Object Detection 论文学习

    论文地址:Delving into Localization Errors for Monocular 3D Object Detection Github地址:Delving into Locali ...

  3. Unifying Voxel-based Representation with Transformer for 3D Object Detection (UVTR)论文笔记

    原文链接:https://arxiv.org/abs/2206.00630 1.引言 统一表达对多模态的知识迁移和特征融合是必不可少的. 目前的统一表达可大致分为输入级和特征级的.输入级方法在网络开始 ...

  4. 文献记录(part41)--Residual multi-task learning for facial landmark localization and expression ...

    学习笔记,仅供参考,有错必纠 关键词:面部地标定位:面部表情识别:深层神经网络:多任务学习 随便看看- 文章目录 Residual multi-task learning for facial lan ...

  5. Dynamic Head: Unifying Object Detection Heads with Attentions

    Dynamic Head 论文标题:Dynamic Head: Unifying Object Detection Heads with Attentions 论文地址:https://arxiv.o ...

  6. Dynamic Head: Unifying Object Detection Heads with Attentions 阅读

    Abstract 这里就是说在目标检测领域,很多工作都想提高检测头的性能,这篇文章提出了动态头,也就是Dynamic Head,来将检测头和注意力(Attention)结合.在尺度(scale-awa ...

  7. Dynamic Head: Unifying Object Detection Heads with Attentions论文阅读

    Dynamic Head: Unifying Object Detection Heads with Attentions论文阅读 摘要 介绍 相关工作 方法 Dynamic Head 扩展到现存的检 ...

  8. Dynamic Head Unifying Object Detection Heads with Attentions 论文阅读笔记

    Dynamic Head Unifying Object Detection Heads with Attentions论文阅读笔记 这是微软在CVPR2021发表的文章,在coco数据集上取得了目前 ...

  9. Deep Learning for Weakly-Supervised Object Detection and Object Localization: A Survey

    摘要 弱监督目标检测(WSOD)和定位(WSOL),即使用图像级标签检测图像中包含边界框的多个或单个实例,是CV领域中长期存在且具有挑战性的任务. 随着深度神经网络在目标检测中的成功,WSOD和WSO ...

最新文章

  1. 微信快速开发框架(六)-- 微信快速开发框架(WXPP QuickFramework)V2.0版本上线--源码已更新至github...
  2. bootstrap怎么用_不用自己写css,不用bootstrap,写样式有tailwindcss就足够了
  3. IDE:集成开发环境(Integrated Development Environment)
  4. 决策实验(1)——分钱任务
  5. Linux文件系统上的特殊权限      SUID, SGID, Sticky(粘之位)
  6. IDEA中Project 和 Module的区别
  7. java地狱猫_ES6 ES6变量的声明
  8. [jQuery] 根据表单的不同参数跳转不同的链接
  9. “约见”面试官系列之常见面试题第三十一篇之vue-router得守卫(建议收藏)
  10. 线性代数基础(矩阵、范数、正交、特征值分解、奇异值分解、迹运算)
  11. ant编译mysql驱动
  12. 如何自定义已有架构的css样式
  13. 数据有什么特征和作用
  14. 高中信息技术——Flash动画制作刷题点整理(一)
  15. 【设计模式】建造者模式(生成器模式)
  16. JAVA基础—适配器设计模式
  17. 导致UIButton半透明的原因
  18. iOS 幸运转盘抽奖+粒子动画
  19. 解决IDEA编译(java找不到符号)问题
  20. 计算机b类b级2020,CPU天梯图2020_笔记本CPU天梯图2020最新版【7月更新】-太平洋IT百科...

热门文章

  1. matlab 零速检测,一种基于车辆零速检测的惯性导航误差修正方法与流程
  2. html相册制作成视频,教你一招把手机相册里照片制作成视频,非常简单,一学就会...
  3. 中小企业融资风险分类有哪些
  4. 【mongoDB】一一一一安装报错1058解决方案
  5. ubuntu优化卸载不常用软件
  6. 数据集处理之python生成.lst文件
  7. 面向医疗数据的差分隐私保护
  8. Excel导入导出以及导出压缩文件
  9. java运算符优先级
  10. 【2023亲测有效】Pandownload 归来!加速效果极佳!