热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

KL损失的边界框回归

原文:https:mp.weixin.qq.coms?__bizMzIwMTc4ODE0Mw&mid2247496513&idx2&sn6fb827b5482920e

原文:https://mp.weixin.qq.com/s?__biz=MzIwMTc4ODE0Mw==&mid=2247496513&idx=2&sn=6fb827b5482920ef678478e9d6254ac4&chksm=96ea2cc1a19da5d762b087af2ae56d228cda4e6e496c887cffebe36a632de351ab7012ce376d&scene=21#wechat_redirect

 

本文提出了一种新的带有不确定性的边界框回归损失,可用于学习更准确的目标定位。

 

论文名称:Bounding Box Regression with Uncertainty for Accurate Object Detection

论文链接:https://arxiv.org/abs/1809.08545

 


  • 边界框参数化
  • 使用 KL 损失的边界框回归
  • 方差投票
  • 实验

    消融实验
  • 准确的目标检测
  • 在 PASCAL VOC 2007 上的实验

 


导语

 

大规模目标检测数据集会尽可能清晰地定义基本 ground truth 边界框。但是,可以观察到在标记边界框时仍会存在模糊不清的现象。

旷视研究院在本文中提出了一种全新的边界框回归损失,可用于同时学习边界框变换和定位方差。据介绍,这种新损失能极大地提升多种架构的定位准确度,而且几乎不会有额外的计算成本。所学习到的定位方差也能帮助在非极大值抑制(NMS)期间融合相邻的边界框,进一步提升定位的效果。

实验结果表明这种新方法比之前最佳的边界框优化方法更优。研究员已公开相关代码和模型:github.com/yihui-he/KL-Loss

 


简介

ImageNet、MS-COCO 和 CrowdHuman 等大规模目标检测数据集都会尽可能清晰地定义基本 ground truth 边界框。

但是,可以观察到一些案例中的基本 ground truth 边界框原本就是模糊的,这会让边界框回归函数的学习更加困难。图 1 (a)(c) 是 MS-COCO 中两个边界框标记不准确的示例。当存在遮挡时,边界框的范围会更不清晰,比如来自 YouTube-BoundingBoxes 的图 1(d)。

 

 图1:边界框标注模糊的示例。(a,c) 是标注不准确,(b) 是存在遮挡,(d) 则是因为遮挡导致目标边界框本身并不清晰

 

目标检测是一种多任务学习问题,包含目标定位和目标分类。当前最佳的目标检测器(比如 Faster RCNN、Cascade R-CNN 和 Mask R-CNN)都依靠边界框回归来定位目标。

但是,传统的边界框回归损失(即平滑 L1 损失)没有考虑到基本 ground truth 边界框的模糊性。此外,人们通常假设当分类分数较高时,边界框回归是准确的,但事实并非总是如此,如图 2 所示。

 

 图2:VGG-16 Faster RCNN 在 MS-COCO 上的失败案例。(a) 两个边界框都不准确;(b)有较高分类分数的边界框的左边界是不准确的。

 

针对这些问题,本文提出了一种全新的边界框回归损失——KL 损失,用于同时学习边界框回归和定位的不确定性。

 

具体来说,为了获取边界框预测的不确定性,研究员首先将边界框预测和基本 ground truth 边界框分别建模为高斯分布(Gaussian distribution)和狄拉克 δ 函数(Dirac delta function)。而新提出的边界框回归损失则被定义为预测分布和基本 ground truth 分布之间的 KL 距离。

 

使用 KL 损失进行学习有三大优势: 

1. 可以成功获取数据集中的模糊性。让边界框回归器在模糊边界框上得到的损失更小。

2. 所学习到的方差可用于后处理阶段。研究者提出了方差投票(variance voting)方法,可在非极大值抑制(NMS)期间使用由预测的方差加权的临近位置来投票得到边界框的位置。

3. 所学习到的概率分布是可解释的。因为其反映了边界框预测的不确定性,所以可能有助于自动驾驶和机器人等下游应用。

 


方法

 

下面将具体介绍这种新的损失函数和方差投票方法。

边界框参数化 

 

在介绍新方法之前,先看看边界框参数化。本文提出基于 Faster R-CNN 或 Mask R-CNN 等两级式目标检测器(如图 3)分别回归边界框的边界。研究者将边界框表示成了一个四维向量,其中每一维都是框边界的位置。本文采用的参数化方案是 (x1, y1, x2, y2) 坐标(对角线),而非 R-CNN 使用的那种 (x, y, w, h) 坐标。

 

 图3:本文提出的用于估计定位置信度的网络架构。不同于两级式检测网络的标准 Fast R-CNN head,这个架构是估计边界框位置以及标准差,这会在新提出的 KL 损失得到考虑。

 

该网络的目标是在估计位置的同时估计定位置信度。形式上讲,该网络预测的是一个概率分布,而不只是边界框位置。尽管该分布可能更复杂,可能是多变量高斯分布或高斯混合分布,但该论文为了简单起见假设坐标是相互独立的且使用了单变量高斯分布。

 

另外,基本 ground truth 边界框也被形式化了一个高斯分布——狄拉克 δ 函数。

 

使用KL损失的边界框回归 

 

在这里,目标定位的目标是在样本上最小化预测分布和基本 ground truth 分布之间的 KL 距离。这个 KL 距离即为边界框回归的损失函数 L_reg。而分类损失则保持不变。

 

 

其中,x_g 为基本 ground truth 边界框位置,x_e 为估计的边界框位置,D_KL 是 KL 距离,σ 是标准差,P_D 是基本 ground truth 狄拉克 δ 函数,P_Θ 是预测的高斯分布,Θ 是一组可学习的参数。

 

如图 4 所示,当 x_e 不准确时,网络会预测得到更大的方差 σ²,使 L_reg 更低。

 

 图4:蓝色和灰色的高斯分布是估计结果。橙色表示狄拉克 δ 函数,是基本 ground truth 边界框的分布。

 

方差投票 

 

在获得预测位置的方差后,可根据所学习到的邻近边界框的方差直观地投票选择候选边界框位置。

 

如算法 1 所示,其代码基于 NMS,但有三行不一样。

 

 

本文是在标准 NMS 或 soft-NMS 的过程中投票所选框的位置。在选择了有最大分数的检测结果后,再根据它及其邻近边界框计算它本身的新位置。本文受 soft-NMS 的启发为更近的以及有更低不确定性的边界框分配了更高的权重。

 

在投票期间权重更低的邻近边界框包含两类:(1)高方差的边界框;(2)与所选边界框的 IoU 较小的边界框。投票不涉及分类分数,因为更低分数的框可能有更高的定位置信度。图 5 给出了方差投票的图示。使用方差投票可以避免图 2 中提到的那两类检测问题。

 

 图5:VGG-16 Faster R-CNN 在 MS-COCO 上的方差投票结果。每个边界框中的绿色文本框对应于预测的标准差 σ。

 


实验

 

旷视研究员基于 MS-COCO 和 PASCAL VOC 2007 数据集进行了实验。实验配置细节如下:

 


  • 使用了 4 个 GPU 

  • 训练流程和批大小根据线性缩放规则进行调整 

  • VGG-CNN-M-1024 和 VGG-16 的实现基于 Caffe;ResNet-50 FPN 和 Mask R-CNN 的实现基于 Detectron

  • VGG-16 Faster R-CNN 遵照 py-faster-rcnn(github.com/rbgirshick/py-faster-rcnn),在 train2014 上训练,在 val2014 上测试;其它目标检测网络的训练和测试分别在 train2017 和 val2017 上完成

  • σ_t 设为 0.02 

  • 除非另有说明,否则所有超参数都是默认设置(github.com/facebookresearch/Detectron)

 

消融实验 

 

研究者基于 VGG-16 Faster R-CNN 评估了每个模块对整体结果的贡献,包括 KL 损失、soft-NMS 和方差投票。表 1 给出了详细结果。可以看到,每新增一项改进,都能实现结果的进一步提升。

 

 表1:使用 VGG-16 Faster R-CNN 在 MS-COCO 数据集上检验每个模块的贡献

 

准确的目标检测 

 

表 4 总结了在 ResNet-50-FPN Mask R-CNN 上不同方法对准确目标检测的效果。使用 KL 损失,网络可以在训练阶段学习调节模糊边界框的梯度。

 

 表4:在 MS-COCO 上,不同方法对准确目标检测的效果 

 

旷视研究员还在特征金字塔网络(ResNet-50 FPN)上进行了评估,如表 6 所示。

 表6:FPN ResNet-50 在 MS-COCO 上的表现对比

 

在PASCAL VOC 2007上的实验 

 

尽管本文是针对大规模目标检测提出了这一方法,但也可将该方法用于更小型的数据集。研究者使用 Faster R-CNN 在 PASCAL VOC 2007 上进行了实验,该数据集包含约 5000 张 voc_2007_trainval 图像和 5000 张 voc_2007_test 测试图像,涉及 20 个目标类别。所测试的骨干网络为 VGG-CNN-M-1024 和 VGG-16。

 

结果见表 5,研究员也额外比较了 soft-NMS 和二次无约束二元优化(QUBO)。QUBO 的结果包含 greedy 求解器和经典的 tabu 求解器(二者的惩罚项都经过了人工调整,以得到更好的性能)。可以看到,QUBO 比标准 NMS 要差得多,尽管有研究认为其在行人检测上效果更好。研究者猜测 QUBO 更擅长检测行人的原因是此时边界框遮挡的情况更多。

 

 表5:不同方法在 PASCAL VOC 2007 上的结果

 


结论

 

大规模目标检测数据集中的不确定性可能有碍当前最佳目标检测器的表现。分类置信度并不总是与定位置信度强烈相关。这篇论文提出了一种全新的带有不确定性的边界框回归损失,可用于学习更准确的目标定位。使用 KL 损失进行训练,网络可学习预测每个坐标的定位方差。所得到的方差可实现方差投票,从而优化所选择的边界框。实验结果也表明了这些新方法的有效性。


推荐阅读
  • 图像分割技术在人工智能领域中扮演着关键角色,其中语义分割、实例分割和全景分割是三种主要的方法。本文对这三种分割技术进行了详细的对比分析,探讨了它们在不同应用场景中的优缺点和适用范围,为研究人员和从业者提供了有价值的参考。 ... [详细]
  • 汽车电子架构与CAN网络基础解析——鉴源实验室专业解读 ... [详细]
  • 能够感知你情绪状态的智能机器人即将问世 | 科技前沿观察
    本周科技前沿报道了多项重要进展,包括美国多所高校在机器人技术和自动驾驶领域的最新研究成果,以及硅谷大型企业在智能硬件和深度学习技术上的突破性进展。特别值得一提的是,一款能够感知用户情绪状态的智能机器人即将问世,为未来的人机交互带来了全新的可能性。 ... [详细]
  • 为什么多数程序员难以成为架构师?
    探讨80%的程序员为何难以晋升为架构师,涉及技术深度、经验积累和综合能力等方面。本文将详细解析Tomcat的配置和服务组件,帮助读者理解其内部机制。 ... [详细]
  • 微信平台通过盛派SDK(sdk.weixin.senparc.com)允许服务号和订阅号使用appId和token读取关注用户的个人信息。然而,这一过程需严格遵守隐私保护和数据安全的相关规定,确保用户数据的安全性和隐私性。 ... [详细]
  • Spring框架的核心组件与架构解析 ... [详细]
  • 深入解析 Python 中的 NumPy 加法函数 numpy.add() ... [详细]
  • 通过使用CIFAR-10数据集,本文详细介绍了如何快速掌握Mixup数据增强技术,并展示了该方法在图像分类任务中的显著效果。实验结果表明,Mixup能够有效提高模型的泛化能力和分类精度,为图像识别领域的研究提供了有价值的参考。 ... [详细]
  • 深入解析经典卷积神经网络及其实现代码
    深入解析经典卷积神经网络及其实现代码 ... [详细]
  • 在稀疏直接法视觉里程计中,通过优化特征点并采用基于光度误差最小化的灰度图像线性插值技术,提高了定位精度。该方法通过对空间点的非齐次和齐次表示进行处理,利用RGB-D传感器获取的3D坐标信息,在两帧图像之间实现精确匹配,有效减少了光度误差,提升了系统的鲁棒性和稳定性。 ... [详细]
  • 本文深入探讨了数据库性能优化与管理策略,通过实例分析和理论研究,详细阐述了如何有效提升数据库系统的响应速度和处理能力。文章首先介绍了数据库性能优化的基本原则和常用技术,包括索引优化、查询优化和存储管理等。接着,结合实际应用场景,讨论了如何利用容器化技术(如Docker)来部署和管理数据库,以提高系统的可扩展性和稳定性。最后,文章还提供了具体的配置示例和最佳实践,帮助读者在实际工作中更好地应用这些策略。 ... [详细]
  • 利用PaddleSharp模块在C#中实现图像文字识别功能测试
    PaddleSharp 是 PaddleInferenceCAPI 的 C# 封装库,适用于 Windows (x64)、NVIDIA GPU 和 Linux (Ubuntu 20.04) 等平台。本文详细介绍了如何使用 PaddleSharp 在 C# 环境中实现图像文字识别功能,并进行了全面的功能测试,验证了其在多种硬件配置下的稳定性和准确性。 ... [详细]
  • 深度森林算法解析:特征选择与确定能力分析
    本文深入探讨了深度森林算法在特征选择与确定方面的能力。提出了一种名为EncoderForest(简称eForest)的创新方法,作为首个基于决策树的编码器模型,它在处理高维数据时展现出卓越的性能,为特征选择提供了新的视角和工具。 ... [详细]
  • 在操作系统中,阻塞状态与挂起状态有着显著的区别。阻塞状态通常是指进程因等待某一事件(如I/O操作完成)而暂时停止执行,而挂起状态则是指进程被系统暂时移出内存,以释放资源或降低系统负载。此外,本文还深入分析了`sleep()`函数的实现机制,探讨了其在不同操作系统中的具体实现方式及其对进程调度的影响。通过这些分析,读者可以更好地理解操作系统如何管理进程的不同状态以及`sleep()`函数在其中的作用。 ... [详细]
  • 2018年热门趋势:轻松几步构建高效智能聊天机器人
    2018年,构建高效智能聊天机器人的简易步骤成为行业焦点。作为AI领域的关键应用,聊天机器人不仅被视为企业市场智能化转型的重要工具,也是技术变现的主要途径之一。随着自然语言处理技术的不断进步,越来越多的企业开始重视并投资于这一领域,以期通过聊天机器人提升客户服务体验和运营效率。 ... [详细]
author-avatar
林子冰2011
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有