摘要

大型目标检测数据集(如MS-COCO) 试着尽可能地将边界框框的非常清晰,但是在标记边框时会存在歧义。在本文中,提出了一种新的边界框回归损失学习边界框的移动及位置方差,此方法在不增加计算量的基础上提高了不同架构定位的准确性,学习到的位置变化用于在进行NMS处理时合并两个相邻的边界框,进一步提升了定位的准确性在MS-COCO数据集上,将VGG-16 Faster R-CNN的平均精度(AP)从23.6%提升到了29.1%。更重要的是,对于ResNet-50-FPN Mask R-CNN,此方法将AP和AP90分别提高了1.8%和6.2%,大大超过了之前比较先进的边界框改进方法。

1.引言

像ImageNet、MS-COCO和CrowdHuman这样的大型目标检测数据集都尽量清晰地标注ground truth边界框。然而边界框在有些情况下会不可避免的存在不确定性,不确定性会使标注和边界框回归函数的学习变得困难。MS-COCO中一些不精确的标注框展示在图1(a)(c)中。当物体被部分遮挡了,边界框的边界将更加难以区分,比如图1(d)。

图1.在目标检测数据集中,ground-truth边界框在一些情况下存在固有的不确定性。(a)(c)标注的不确定性。(b) 遮挡带来的不确定性。(d) 目标自身边界是不确定的。由于树的遮挡,火车的左边界是不清晰的

目标检测是一项多任务的学习问题,由目标定位和目标分类组成。当前最好的目标检测器(如:Faster R-CNN, Cascade R-CNN, Mask R-CNN)都依赖于边界框回归来定位目标。然而,传统的边界框回归损失并没有将边界框的不确定性考虑进去,而且边界框回归当分类分数很高的情况下被假定是准确的,但事实并不总是这样,如图2。

图2.VGG-16 Faster R-CNN在MS-COCO数据集上错误的案例。(a) 两个框都是不准的。(b) 分类分数高的边界框反而是错误的

为了解决这个问题,提出了新的边界框回归损失,叫做KL Loss,旨在同时学习边界框回归和定位不确定性。具体来说,为了获得预测框的不确定性,首先为边界框预测和ground-truth框建模为高斯分布和狄拉克函数。接着定义了预测分布和真实分布的KL散度。采用KL Loss学习有三个好处:(1) 数据集中的不确定性可以被很好的捕获到,边界框回归器会从不确定边界框中计算出更小的损失;(2) 学习到的方差在后处理阶段非常有用。同时还提出了方差投票,在NMS阶段使用预测方差来加权候选框相邻的位置,最后投票得到候选框的最终定位。(3) 学到的概率分布是可解释的,因为它反映了边界框预测的不确定度,可以对自动驾驶和机器人上的应用有潜在的帮助。

为了证明KL Loss和方差投票的泛化能力,在PASCAL VOC2007、MS-COCO上验证了多种CNN目标检测器,包括VGG-CNN-M-1024、VGG-16、ResNet-50-FPN和Mask R-CNN。实验表明了此方法在目标定位上有更好的准确性。对于MS-COCO数据集上的VGG-16 Faster R-CNN模型将AP从23.6%提高到了29.1%,GPU(GTX 1080Ti)上前向预测时间仅增加了2ms。而且,对于ResNet-50-FPN Mask R-CNN,AP和AP90 分别提高了1.8%和6.2%,超越了目前最先进的边界框精调算法。

2. 方法

2.1 边界框参数化

    基于图3所示的双阶段目标检测器Faster R-CNN或Mask R-CNN,可以分别回归边界框的各个边界。实验目标是估计定位置信度。严格上说,是利用网络预测一个概率分布而不仅仅是边界框位置。尽管分布可能非常复杂,像多元高斯或混合高斯那样,但是本文中假设坐标是独立分布的,并且用一元高斯来简化问题。图3说明了目标检测器的网络结构。

图3.用于估计位置置信度的网络结构。不同于传统的标准fast R-CNN的双阶段网络模型头部,此网络的KL Loss回归损失将估计到的边界框位置的标准差考虑在内

2.2 使用KLLoss进行边界框回归

对于N个样本的KL散度最小化,使用KL散度作为边界框回归的损失函数,分类损失保持不变。如图4所示,当位置未被估计准确时,期望网络能够预测一个更大的方差,使回归损失减小,用随机高斯初始化来预测全连接层的权重。标准差和平均值分别设置为0.0001和0,使KL Loss和标准的smooth L1损失在训练初期相似。

图4.估计值的高斯分布,对应蓝色和灰色的曲线。橙色的曲线是ground-truth对应的狄拉克函数。当位置没被估计准确,期望预测结果有更大的方差,这样回归损失会比较低(蓝色)

2.3 方差投票

在获得预测位置的方差后,接下来要根据学习到的相邻边界框的方差来选举出候选边界框来。在NMS和soft-NMS循环中投票选出被选中框的位置。在选中有最大得分的检测结果后,新的位置通过它本身和对应相邻边界框计算得到。受到soft-NMS启发,分配更高的权重给那些接近的且有更少不确定性的框。两种类型的相邻边界框会得到更低的权重:(1) 有大方差的框,(2) 和候选框的IoU小的框。类别得分在投票中不被考虑,因为更低得分的框可能有更高的定位准确度。图5中提供了一种方差投票的可视化解释。借助方差投票,两种在图2中提到的现象会被避免。

图5.在MS-COCO上VGG-16Faster R-CNN模型的投票结果。两种错误的情形都被方差投票解决:(a) 当每个候选框在某些坐标上是不准确的情况下(右边的女性),方差投票可以整合位置置信度,给出更好的框。(b) 高分类得分的边界框(火车 0.99)实际上相比低分类得分的边界框(火车 0.35)有更低的定位准确度,在方差投票后,0.99的得分框移动到了正确的位置上

3. 实验

为了证明本文实验在目标检测中的准确性,使用了两种数据集:MS-COCO和PASCAL VOC 2007。实验中使用4块GPU。训练策略和batchsize根据线性尺度变换规则调整。对于VGG-CNN-M-1024,基于Caffe实现。对于ResNet-50 FPN和Mask R-CNN,基于Detectron实现。对于VGG-16 Faster R-CNN,参考py-faster-rcnn,在train2014上训练,在val2014上测试。对于其他目标检测框架,训练和测试都在train2017和val2017上。除非特别指定,所有超参数设置为默认。

3.1 消融研究

在VGG-16 Faster R-CNN验证了检测模型中每个模块的贡献:KL Loss、soft-NMS和varvoting。详细结果表1中呈现。

表1.MS-COCO上模型中每个模块的贡献,baseline是VGG-16 Faster R-CNN

KL Loss

令人惊讶的是,用KL Loss简单的训练就能获得2.8%的AP提升,这样的结果也同样表现在ResNet-50 Faster R-CNN和Mask R-CNN上(1.5%和0.9%)。首先,通过在训练中学习高不确定性的样本来预测高的方差,网络可以学到更多有用的样本。其次,定位用的梯度可以自适应通过训练来控制,这样鼓励网络学到更准确的目标位置。第三,KL Loss学习位置置信度,可以潜在帮助网络学习到更有判别力的特征。通过KL Loss学到的方差是可解释的。网络对于有挑战性的目标边界会输出更高的方差,这样在一些诸如自动驾驶和机器人的视觉应用上会很实用。图5的第一行就展示了一些KL Loss学到的标准差定量的例子。

表2.GPU1080TI,CUDA 8, CUDNN 6,MS-COCO,VGG-16 Faster R-CNN上的前向时间对比

方差投票

最后,方差投票进一步提高了AP 29.1%,提升主要来自于更准确的定位。注意到AP50只提升了0.1%,但是AP75,APM,APL分别提升了1.8%,1,8%,1,6%,见表1。这说明了分类置信度和位置置信度不总是相关的。因此,将定位置信度和分类置信度分开学习对提升目标定位准确性至关重要,且方差投票和soft-NMS可以共同作用。用标准的NMS的方差投票,AP提升1.4%,用soft-NMS的方差投票,AP可以提升1.3%,则可以认为soft-NMS擅长利用候选框得分来提升性能,而方差投票擅长精调这些候选框以获得更精确的目标位置。图5第二行就展示了方差投票的定量的例子。图6中,测试了方差投票中可调参数的灵敏度。

图6.ResNet-50Faster R-CNN中,AP提升随着方差投票的参数的变化关系

3.2 PASCAL VOC 2007上的实验

尽管本文中的方法针对大尺度目标检测任务设计,但它同样也能在小的数据集上有较好的泛化能力。用Faster R-CNN在PASCAL VOC 2007上进行了实验,包含了超过20个类别的5k张voc_2007_trainval图像和5k张voc_2007_test图像。骨架网络是:VGG-CNN-M-1024和VGG-16。如表3所示,和soft-NMS做了对比。对于QUBO,测试了贪心和经典tabu求解器。观察到它比标准的NMS效果还差,尽管论文中在行人检测任务中给出了很好的结果。假设QUBO在行人检测任务中效果好是因为有遮挡边界框的原因。对于VGG-CNN-M-1024,用方差投票训练提高了mAP 1.6%,进一步提高了0.8%。对于VGG-16而言,将本文所提出的方法和soft-NMS结合提高了mAP 2.9%。注意到方差投票仍然能提升性能即使已经对初始检测框进行了soft-NMS操作。

表3.用Faster R-CNN在PASCALVOC 2007上对比不同的方法

4.结论

总结来说,在大型数据集中的不确定性会影响先进的目标检测器的性能。分类置信度不总是和位置置信度有强的关联。本文提出了一种新的边界框回归损失,借助不确定性来学习更准确的目标位置。通过使用KL Loss训练,网络学到了每个坐标点的位置方差,并用其来进行方差投票精调边界框的位置,并在各种网络和数据集上证明了效果。

为什么vs会输出一个框作为结果_检测与分类专辑 | 对精准目标检测的含不确定性的边界框回归...相关推荐

  1. CVPR21最佳检测:不再是方方正正的目标检测输出(附源码)

    计算机视觉研究院专栏 作者:Edison_G 有些目标往往具有任意方向的分布.因此,检测器需要更多的参数来编码方向信息,这往往是高度冗余和低效的... 公众号ID|ComputerVisionGzq ...

  2. CVPR最佳检测:不再是方方正正的目标检测输出(附源码)

    计算机视觉研究院专栏 作者:Edison_G 有些目标往往具有任意方向的分布.因此,检测器需要更多的参数来编码方向信息,这往往是高度冗余和低效的... 公众号ID|ComputerVisionGzq ...

  3. PanoNet3D:一个基于激光雷达点云语义和几何理解的3D目标检测方法

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者丨黄浴@知乎 来源丨https://zhuanlan.zhih ...

  4. CVPR 2020 Oral | 旷视提出目前最好的密集场景目标检测算法:一个候选框,多个预测结果...

    作为 CVPR 2020 Oral展示论文之一, 该文提出一种简单却有效的基于候选框的物体检测方法,尤其适用于密集物体检测.该方法通过一个候选框.多个预测框的概念,引入 EMD Loss.Set NM ...

  5. 处理之后的图像句柄传到显示框_深度学习目标检测与预处理模块

    一般的深度学习的部署流程 对计算机而言,能够"看到"的是图像被编码之后的数字,但它很难解高层语义概念,比如图像或者视频帧中出现目标的是人还是物体,更无法定位目标出现在图像中哪个区域 ...

  6. 下拉多选择框 实现方式_非极大值抑制Non-Maximum Suppression(NMS)一文搞定理论+多平台实现...

    这是独立于薰风读论文的投稿,作为目标检测模型的拓展阅读,目的是帮助读者详细了解一些模型细节的实现. 薰风说 Non-Maximum Suppression的翻译是非"极大值"抑制, ...

  7. 重读 CenterNet,一个在Github有5.2K星标的目标检测算法

    本文带领大家重温 Objects as Points 一文,其于2019年4月发布于arXiv,谷歌学术显示目前已有403次引用,Github代码仓库已有5.2K星标,无论在工业界和学术界均有巨大影响 ...

  8. 带你读AI论文丨用于目标检测的高斯检测框与ProbIoU

    摘要:本文解读了<Gaussian Bounding Boxes and Probabilistic Intersection-over-Union for Object Detection&g ...

  9. 同r做一个窗口_目标检测(Object Detection):R-CNN/SPPnet/R-FCN/Yolo/SSD

    这篇文章我是Survey目标检测(Object Detection)系列论文的一个总结. 包括R-CNN系列.SPP-net.R-FCN.YOLO系列.SSD.DenseBox等. 基本概念 目标识别 ...

最新文章

  1. 移动端手机网站建设应注意哪些问题?
  2. indexes和indices的区别(下标)
  3. linux系统安全(二): 日志(转)
  4. 二进制的科学计数法?白话谈谈计算机如何存储与理解小数:IEEE 754
  5. LINUX一个正确的mime xml范例
  6. android平板开机动画,实战——Android5.0开机动画定制
  7. 通过PyMuPDF编写增值税发票多PDF文件合并工具
  8. 高斯过程回归python_高斯过程回归在pythony中的实现(n个样本,n个目标)
  9. gRPC接口性能测试
  10. 安卓原生镜像(中国网站)
  11. vue resource的应用
  12. vue项目SEO优化
  13. phpcms之 文件下载的页面
  14. win7如何设置通电自动开机_电脑如何设置自动开机,教您如何设置
  15. 《统计学习方法(第二版)》学习笔记 第五章 决策树
  16. MOSFET正温度系数和负温度系数
  17. 7种工具帮助你审查代码
  18. CTF 逆向之MD5短爆破
  19. uniapp引入openLayers天地图
  20. SWD模式下无法识别到芯片

热门文章

  1. 【Linux多线程】三个经典同步问题
  2. 详解/etc/profile、/etc/bash.bahsrc、~/.profile、~/.bashrc的用途
  3. deepin--解决网易云音乐个性推荐无法加载
  4. mixly编程怎样音乐_华人留学生开发首个古汉语编程语言,实现易经算命、圆周率计算,Github获赞14.7k...
  5. 拼音表大全图_一年级语文26个汉语拼音字母表读法+写法+笔顺,孩子现在正需要...
  6. 石头扫地机器人加速异响_米家扫地机器人有异响怎么办
  7. Unity3D+VR的实现
  8. Go并发编程之美-读写锁
  9. jquery checkbox attr区别prop
  10. 多级菜单栏展开隐藏动画