Repulsion Loss: Detecting Pedestrians in a Crowd

排斥损失:检测人群中的行人
论文链接:arXiv

1. 论文思路

本文通过为拥挤场景设计普通边界框回归损失,即排斥损失。这种损失分为两部分:目标的吸引和周围其他物体的排斥。排斥损失可以防止proposals转移到周围的对象从而有更强的鲁棒性。

解决的问题:当目标行人T被另一个行人B重叠时,因为检测器混淆导致以T为界限的预测框很可能会转移到B,从而导致定位不准确。更进一步,NMS使得从T偏移的边界框可能被B的预测框抑制,其中T可能会错过检测,人群遮挡使得检测器对NMS阈值敏感,高阈值导致更多的误报低阈值导致更多的漏检。

现有的探测器框架中边界框回归技术常应用于对象定位,回归器被应用训练来减小某种距离度量。本文提出新的定位技术:RepLoss。在RepLoss中,每个proposal不仅需要接近其指定的目标T,而且远离其他不属于这个目标T的真实值的proposal。

RepLoss可以有效地防止预测的边界框移动到相邻的重叠对象使得检测器对于人群场景更加鲁棒。

文章提出两类排除损失来解决人群遮挡问题,RepGT Loss和RepBox Loss。RepGT Loss直接惩罚预测框转移到其他GT物体,而RepGT Loss要求每个预测框远离具有不同指定目标的其他预测框,预测框使检测结果对NMS不太敏感。

2. 知识点举例

线性回归模型是相对与proposal及其目标的坐标的欧几里得距离来训练的。SmoothL1LossSmooth_{L1} LossSmoothL1​Loss的提出来代替用于边界框回归的欧氏距离。

RPN(proposal region network)区域建议网络,其中边界框回归被执行两次将预定义的锚转换成最终检测框。

DenseBox 提出无锚的完全卷积的框架,还有方法使用IoU损失,以最大化基础事实框和预测框之间的IoU。

3. 是什么影响了人群中的遮挡

3.1 预备工作

CityPersons:总共有35000个人,另外还有13000个被忽略的区域,提供所有人的边界框标注和可见部分标注。

对于评估,log miss rate是每张图片的假正例率FPPI在[10−2,100][10^{-2},10^0][10−2,100]之间,越小越好。

baseline算法是Fast R-CNN,改进是使用ResNet50代替VGG-16主干网络。

**ResNet很少用于行人检测,因为卷积层的下采样速率太大,网络无法检测和定位小行人。**为了解决这个问题,我们使用扩张卷积,最终的特征图是输入大小的1/8。基于ResNet的检测器在验证集上获得了14.6MR−214.6 MR^{-2}14.6MR−2,略好于[33]中报告的结果(15.4MR−2)(15.4 MR^{-2})(15.4MR−2)。

MR−2MR^{-2}MR−2代表在9个FPPI值下(在值域[0.01, 1.0]内以对数空间均匀间隔)的平均miss rate值。

3.2 失败案例的分析

误检测:baseline中的遮挡计算为occ≜1−area(BBoxvisible)area(BBox)occ \triangleq 1 - \frac {area(BBox_{visible})} {area(BBox)}occ≜1−area(BBox)area(BBoxvisible​)​,将occ≥0.1occ \geq 0.1occ≥0.1视为遮挡情况,将occ≥0.1occ \geq 0.1occ≥0.1且IoU≥0.1IoU \geq 0.1IoU≥0.1的行人和任何其他带注释的行人定义为人群遮挡情况。

此图的意思就是当检测到20个假正例,需要检测总共多少个样本,分别在3个子集上检测:Reasonable,Reasonable-acc,Reasonable-crowd。作者还在CityPersons数据集上分别做了定量统计,可以看到在不同的误检率下,从图中可以发现遮挡占据了近60%的席位(蓝色+橙色),而在这60%席位中,自遮挡又占据了近60%。

实验观察三个子集(reasonable-crowd, reasonable-occ, reasonable)。最后得出的结论是在合理的occ子集的漏检中,人群遮挡的比例接近60%。

定量分析误报是由人群遮挡造成的。有三种情况:背景错误、定位错误和群体错误。当预测的边界框与任何真实行人的IoU<0.1IoU \lt 0.1IoU<0.1时就会出现背景误差,当定位误差与仅一个真实行人的IoU≥0.1IoU \geq 0.1IoU≥0.1时,会出现背景误差,人群误差是指IoU≥0.1IoU \geq 0.1IoU≥0.1且至少有两个真实行人的人群。

一个预测框轻微地或者戏剧性地移动到邻近的非目标真实地面物体,或者将几个重叠的真实地面物体结合在一起时,通常会出现群体误差。此外,群体错误通常具有相对高的置信度,从而导致排名靠前的误报。这表明,为了提高检测器对人群场景的鲁棒性,在进行包围盒回归时需要更多的判别损失。

4. Repulsion Loss

损失函数的设计:
L=LAttr+α⋆LRepGT+β⋆LRepBoxL = L_{Attr} + \alpha \star L_{RepGT} + \beta \star L_{RepBox} L=LAttr​+α⋆LRepGT​+β⋆LRepBox​
另设两个变量:P=(lP,tP,wP,hP),G=(lG,tG,wG,hG)P = (l_P, t_P, w_P,h_P), G = (l_G,t_G,w_G,h_G)P=(lP​,tP​,wP​,hP​),G=(lG​,tG​,wG​,hG​)分别代表预测边界框和真实值框,P+={P}P_+=\{P\}P+​={P}是所有正例的集合whichIoU≥0.5IoU\geq 0.5IoU≥0.5且至少偶一个真实值框被认定为正样本,反之则为负样本。G={G}\mathcal G=\{G\}G={G}是一个图片中所有真实值边框的集合。平滑L1损失为2.BPB_PBP​是从建议框回归的预测框。

4.1 Attribute Loss

LAttr=∑P∈P+SmoothL1(BP,GAttrP)∣P+∣GAttrP=arg⁡maxG∈GIoU(G.P)L_{Attr} = \frac {\sum _{P \in \mathcal P_+} Smooth_{L1}(B^P,G^P_{Attr})} {|\mathcal P_+|} \\ G^P_{Attr} = \arg max_{G \in \mathcal G} IoU(G.P) LAttr​=∣P+​∣∑P∈P+​​SmoothL1​(BP,GAttrP​)​GAttrP​=argmaxG∈G​IoU(G.P)

L1 Loss, L2 Loss, Smooth L1:
L1(y^,y)=∑i=0m∣y(i)−y^(i)∣L2(y^,y)=∑i=0m(y(i)−y^(i))2SmoothL1={0.5(xi−yi)2,if∣xi−yi∣<1∣xi−yi∣−0.5,otherwiseL_1(\hat y,y) = \sum^m_{i=0}|y^{(i)}-\hat y^{(i)}| \\ L_2(\hat y,y) = \sum^m_{i=0}(y^{(i)}-\hat y^{(i)})^2 \\ Smooth ~~ L_1 = \begin {cases} 0.5 (x_i-y_i)^2, ~~if~ |x_i - y_i| \lt 1 \\ |x_i-y_i| - 0.5, ~~ otherwise \end {cases} L1​(y^​,y)=i=0∑m​∣y(i)−y^​(i)∣L2​(y^​,y)=i=0∑m​(y(i)−y^​(i))2Smooth  L1​={0.5(xi​−yi​)2,  if ∣xi​−yi​∣<1∣xi​−yi​∣−0.5,  otherwise​

4.2 Relulsion Term(RepGT)

GRepP=arg⁡max⁡G∈G\GAttrPIoU(G,P)G^P_{Rep} = \mathop {\arg\max}_{G \in \mathcal G \backslash {G^P_{Attr}}} IoU(G,P) GRepP​=argmaxG∈G\GAttrP​​IoU(G,P)

它目的是不采用不属于当前类的建议框。它排斥真实对象被定义为除了它指定的目标之外,具有最大IoU区域

提出IoG与真实值之间的交集: IoG(B,G)≜area(B⋂G)area(G)IoG(B,G) \triangleq \frac {area(B \bigcap G)} {area(G)}IoG(B,G)≜area(G)area(B⋂G)​,IoG(B,G)∈[0,1]IoG(B,G) \in [0,1]IoG(B,G)∈[0,1]。定义RepGT Loss如下:
LRepGT=∑P∈P+Smoothln(IoG(BP,GRepP))∣P+∣Smoothln={−ln⁡(1−x)x≤σx−σ1−σ−ln⁡(1−σ)x>σL_{RepGT} = \frac {\sum_{P \in \mathcal P_+} Smooth_{ln}(IoG(B^P,G^P_{Rep}))} {|\mathcal P_+|} \\ Smooth_{ln} = \begin {cases} - \ln(1-x) ~~~~ x \leq \sigma \\ \frac { x-\sigma} {1-\sigma}- \ln(1-\sigma) ~~~~ x \gt \sigma \end {cases} LRepGT​=∣P+​∣∑P∈P+​​Smoothln​(IoG(BP,GRepP​))​Smoothln​={−ln(1−x)    x≤σ1−σx−σ​−ln(1−σ)    x>σ​
RepGT 损失旨在使 proposal 受到相邻的非目标 groundtruth 物体的排斥。给定一个 proposal P∈P+P \in P_+P∈P+​,它的排斥 groundtruth 物体被定义为除了其指定目标之外带有最大 IoU 区域的 groundtruth 物体。受 IoU 损失的启发,RepGT 损失被计算以惩罚 BPB^PBP和 GRepPG^P_{Rep}GRepP​之间的重叠(由 IoG 定义)。IoG(B, G) ∈ [0, 1] 。其中 SmoothlnSmooth_{ln}Smoothln​ 是一个在区间 (0, 1) 连续可微分的平滑 ln 函数,σ ∈ [0, 1) 是调节RepLoss 对异常值的敏感度的平滑参数。proposal 越倾向于与非目标 groundtruth 物体重叠,RepGT 损失对边界框回归器的惩罚就越大,从而有效防止边界框移向相邻的非目标物体。

4.3 Repulsion Term(RepBox)

NMS以合并应该约束相同对象的主要预测边界框。本文提出RepBox Loss目标是将每个proposal与具有不同指定目标的其他建议相排斥。将P+\mathcal P_+P+​分成互不重叠的建议集。P+=P1⋂P2⋂...⋂P∣G∣\mathcal P_+ = \mathcal P_1 \bigcap \mathcal P_2 \bigcap ... \bigcap \mathcal P_{|\mathcal G|}P+​=P1​⋂P2​⋂...⋂P∣G∣​,然后从两个不同子集随机抽样两个方案。计算BPi,BPjB^{P^i},B^{P^j}BPi,BPj的重叠部分。
LRepBox=∑i≠jSmoothln(IoU(BPi,BPj))∑i≠jI[IoU(BPi,BPj)>0]+ϵL_{RepBox} = \frac {\sum_{i \neq j} Smooth_{ln}(IoU(B^{P^i},B^{P^j}))} {\sum_{i \neq j}\mathbb I[IoU(B^{P^i},B^{P^j}) \gt 0]+ \epsilon} LRepBox​=∑i​=j​I[IoU(BPi,BPj)>0]+ϵ∑i​=j​Smoothln​(IoU(BPi,BPj))​
I\mathbb II是特征函数,ϵ\epsilonϵ被零除的情况下是一个小常数。为了使RepBox Loss最小化,具有不同指定目标的两个预测框之间的交并比应该很小。RepBoxLoss能够降低具有不同回归目标的预测框在NMS之后合并成一个的概率,使模型具有鲁棒性。

4.4 距离度量

本文选择IoU或IoG而不是SmoothL1度量来测量排斥项中两个边界框之间的距离,因为IoU和IoG在范围0-1内有界,而SmoothL1是无界的。在RepGT损失中,它将要求预测框尽可能远离其排斥的真实值对象。相反,IoG准则只要求预测框最小化与其排斥性的真实值对象的重叠,这更符合我们的动机。

在基于IoU的损失中采用IoG因为IoU损失中边界框回归器可以通过简单的扩大边界框的大小来增大分母面积来学习最小化损失。选择IoG因为其分母是一个特征的真实值对象常数,以直接最小化重叠区域。

此外,可以通过平滑参数σ\sigmaσ来调整排斥损失对异常值的敏感度。由于预测框比真实值框要大得多,所以一对两个预测框比一对一个预测框和一个真实值框可能具有更大的重叠。RepBox比RepGT有更多的outliers。RepBoxLoss比RepGTLoss不太敏感。

5. 实验研究

5.1 数据集介绍

除了CityPerson,本文实验还用到Caltech-USA数据集。在2.5小时的视频分为训练集和测试集,分别为42500帧和4024帧。

训练:在训练中对网络进行80k和160k次迭代,基础的lr=0.016,在CityPersons和Caltech-USA的前60k和120k次迭代后降低10倍。采用SGD进行网络优化,在4个GPU上运行。A mini-batch involves 1 image per GPU.在Caltech-USA中使用OHEM Online Hard Example Mining加速收敛。

5.2 消融研究

RepGT Loss

在SmoothlnSmooth_{ln}Smoothln​损失中,σ\sigmaσ的取值对模型的影响如表所示,设置σ=1\sigma=1σ=1意味着直接对−ln⁡(1−IoG)-\ln(1-IoG)−ln(1−IoG)求和,完全没有平滑,类似于IoU损失中使用的损失函数。

本文提供GepGt和baseline之间的误检测和假正例的比较。在resonable-crowd subset中,增加RepGT Loss能有效减少误检测数量。当检测阈值相当时,RepGT曲线比baseline算法低一些,二者曲线的分布接近0.5。曲线的饱和点都在0.9,这也是实际应用中常用的阈值,可以将误检率降低10%。在图b中,由人群遮挡导致的RepGT Loss比baseline低。这表明RepGT Loss可以再拥挤环境下有效降低误检测率和假正例率。

RepBox Loss:将σ\sigmaσ设置为0说明我们将ln函数完全平滑为线性函数,并在IoU上求和。设想RepBox Loss比RepGT Loss有更多的损失值,因为预测框比真实框的密度大得多。

此图显示在FPPI=10−2FPPI=10^{-2}FPPI=10−2情况下不同NMS对RepBox Loss的结果。总的来说,具有RepBox Loss的检测器性能比baseline更平滑。在0.35的阈值上,baseline和RepBox的差距有3.5个点,表明后者对NMS阈值不太敏感。在图7中,RepBox的两个相邻的基本真实值之间有更少的预测。

两个损失之间的平衡,通过实验调整参数得到,α=0.5,β=0.5\alpha=0.5,\beta=0.5α=0.5,β=0.5模型有着更好的性能。

5.3 与SOTA比较

对于此实验在1.4倍的大小时模型有着更好的表现性能。在重子集上提高了3.7个百分点,部分子集提高了1.8个百分点,裸子集的性能没有明显的提升。即RepLoss 是专门来解决遮挡问题的。

表四是在Calech-USA数据集上的实验。*表示在CityPersons数据集预训练的网络。能够在IoU阈值在0.5的情况下达到4.0MR−24.0 MR^{-2}4.0MR−2。

当IoU阈值增大时,一致性和更大的收益证明力我们的框架可以更好地解决遮挡问题,遮挡因为其更高的匹配阈值下更敏感而闻名。其结果如图8所示。

6. 将模型用于一般检测

在PASCAL VOC2007上做比较,数据集包含了20多个对象类别,对所有类使用标准评估度量mAP,采用Faster R-CNN框架,用ImageNet在ResNet-101为主干的预训练结果,在PASCAL VOC2007上做评估,结果比baseline好3.4 mAP

7. 总结

首先,模型结构是
L=AttrLoss+RepLossRepLoss=RepGTLoss+RepBoxLossL = AttrLoss + RepLoss\\ RepLoss = RepGTLoss + RepBoxLoss L=AttrLoss+RepLossRepLoss=RepGTLoss+RepBoxLoss
模型旨在对同类目标吸引和对不同类目标进行排斥。

  • 使用平滑L1函数度量,L1函数的损失是有折点,平滑的L1可以使函数更加光滑,其对离群点、异常值不敏感,可控制梯度的量级使训练时不容易跑飞

  • RepGT Loss直接惩罚预测框转移到其他GT物体,而RepGT Loss要求每个预测框远离具有不同指定目标的其他预测框,预测框使检测结果对NMS不太敏感。

  • proposal 越倾向于与非目标 groundtruth 物体重叠,RepGT 损失对边界框回归器的惩罚就越大,从而有效防止边界框移向相邻的非目标物体

  • NMS在大多数检测框架中是必要的后续处理步骤,以合并应该约束相同对象的主要预测边界框。本文提出RepBox Loss目标是将每个proposal与具有不同指定目标的其他建议相排斥

  • 在基于IoU的损失中采用IoG,因为IoU损失中边界框回归器可以通过简单的扩大边界框的大小来增大分母面积来学习最小化损失。选择IoG因为其分母是一个特征的真实值对象常数,以直接最小化重叠区域

  • 以合并应该约束相同对象的主要预测边界框。本文提出RepBox Loss目标是将每个proposal与具有不同指定目标的其他建议相排斥

  • 在基于IoU的损失中采用IoG,因为IoU损失中边界框回归器可以通过简单的扩大边界框的大小来增大分母面积来学习最小化损失。选择IoG因为其分母是一个特征的真实值对象常数,以直接最小化重叠区域

目标追踪与定位学习笔记8-排斥损失:检测人群中的行人相关推荐

  1. 目标追踪与定位学习笔记10-SiamMOT论文阅读

    阅读论文SiamMOT网络 我现在的问题: 问题描述: 给定一个目标进行跟踪,注意观察到人物的遮挡.进入人群中或者视角变化等因素下 SiamMOT专注于改进局部跟踪,在轨迹不可见的情况下也能向前跟踪, ...

  2. 目标追踪与定位实战笔记2-一生之敌:Cuda out of memory!

    1. 环境配置 将代码从github上下载解压之后需要配置python环境,然后安装requirements.txt中的依赖,然后我们进入readme界面,下载好maskrcnn_benchmark, ...

  3. 08年A题数码相机定位学习笔记

    To Be Continue- 文章目录 数码相机定位学习笔记 一.摘要 二.问题分析 三.刚体变换 3.1世界坐标系→\rightarrow→相机坐标系 3.2相机坐标系→\rightarrow→图 ...

  4. C++学习笔记目录链接(持续更新中)

    学习目标: C++学习笔记目录链接(持续更新中,未完待续) 学习内容: 序号 链接 0 C++ 常见bug记录(持续记录中) 1 C++学习笔记1[数据类型] 2 C++学习笔记2[表达式与语句] 3 ...

  5. OpenCV for Ios 学习笔记(4)-标记检测1

    本文原始地址:OpenCV for Ios 学习笔记(4)-标记检测1 简单的标记经常是以白色块和黑色块构成的规则图形.因为我们预先知道这些因素,所以我们可以很容易检测标记. 如图: 首先,我们需要找 ...

  6. OpenCV学习笔记(六):非线性滤波-中值、双边:medianBlur(),bilateralFilter()

    OpenCV学习笔记(六):非线性滤波-中值.双边:medianBlur(),bilateralFilter() 1.中值滤波(Median filter) 是一种典型的非线性滤波技术,基本思想是用像 ...

  7. WPF学习笔记(7):DataGrid中数字自定义格式显示

    WPF学习笔记(7):DataGrid中数字自定义格式显示 原文:WPF学习笔记(7):DataGrid中数字自定义格式显示 DataGrid中数据显示如下图,数据格式比较杂乱.希望达到以下要求:(1 ...

  8. 北大青鸟广州天河中心C#学习笔记一--C#中的参数传递

    C#学习笔记一--C#中的参数传递  发布者:[本站编辑]  来源:[北大青鸟广州天河培训中心]  浏览:[ 195 ] 字体:大 中 小       由于在.NET中存在两种类型,分别是值类型(va ...

  9. mybatis学习笔记(1)-对原生jdbc程序中的问题总结

    2019独角兽企业重金招聘Python工程师标准>>> mybatis学习笔记(1)-对原生jdbc程序中的问题总结 标签:mybatis [TOC] 本文总结jdbc编程的一般步骤 ...

最新文章

  1. 2017 清北济南考前刷题Day 2 afternoon
  2. 本月与上月对比数据叫什么_财务人事应会Excel数据对比Vlookup函数快速核定变动...
  3. PA银行面试之炮灰之程
  4. gwt-2.8.2下载_GWT 2 Spring 3 JPA 2 Hibernate 3.5教程
  5. OpenHarmony 1.1.0 LTS 版本发布,十六大性能全面提升
  6. elementui table某一列是否显示_汇编语言--键盘扫描及显示实验(含代码解释)
  7. 互联网公司如何有效执行流程的心得
  8. Delphi XE7 下载 安装序列号 破解
  9. 2022美赛C题 F奖思路分享
  10. 电音中DJ/Producer/MC/EDM/Remix/Mix的名词解释(转)
  11. 从链家网上爬取租房数据并进行数据分析
  12. 可爱又能干的小精灵—送餐机器人来啦
  13. 为什么程序员话少钱多死得早?一位人生悲惨的程序员与你讲述其中原因
  14. vue-treeselect下拉树
  15. HDU4745 Two Rabbits(区间dp)
  16. pytest报错 E ModuleNotFoundError解决办法
  17. 对计算机知识的掌握,计算机操作基本知识
  18. Simulink入门——RLC串联动态电路
  19. 位运算实现加减乘除四则运算
  20. linux基础09——nl

热门文章

  1. Redux、React-Redux入门笔记
  2. 英语和数学不好自学c语言,数学和英语不好,就不能学编程么?
  3. 论文笔记2:Video-based Person Re-identification with Spatial and Temporal Memory Networks
  4. 提高篇-深度优先搜索DFS与剪枝-《算法笔记》同步笔记总结与补充
  5. 【蚁狮算法】《The Ant Lion Optimizer》原文翻译(附源代码)
  6. 你信吗?任正非在华为持股仅1.42%!华为轮值CEO徐直军全面剖析华为
  7. Cocos2d开发系列(二)
  8. jQuery 清除div内容
  9. 模型评估指标-2-ROC与PR曲线对比,TPR/FPR/Precision关系,3种特殊的评估指标
  10. 新闻管理系统——新闻详情页面+评论模块