(CVPR2018)Repulsion Loss: Detecting Pedestrians in a Crowd

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

解决问题

遮挡给目标检测带来了极大的挑战,而遮挡通常可以分为两类:类内遮挡(不同种类目标遮挡)和类间遮挡(同一种类目标遮挡,也称为密集遮挡)。文章通过提出新的损失函数(Repulsion Loss)主要解决了行人检测中的密集遮挡,极大提升了检测器的性能。

主要思想

(CVPR2018)Repulsion Loss: Detecting Pedestrians in a Crowd_第1张图片

密集遮挡给行人检测主要带来两种负面影响:

1)误检---由于行人特征相似,因此在密集情况下,行人T的候选框可能会向行人B偏移,导致定位不准。

2)漏检---初始的检测结果需要进行NMS后处理,因此行人T的候选框可能会被行人B抑制,导致漏检。

为了消除负面影响,文章提出Repulsion Loss,损失函数主要由两部分驱动:目标的吸引和周围目标的排斥(传统损失函数只有前者)。

核心

Repulsion Loss由三个组件组成:

                                                                    L = LAttr + α∗LRepGT + β ∗LRepBox

LAttr是吸引项:需要预测框接近其目标框;LRepGT是排斥项:需要预测框远离周围其它目标框(GroundTrue);LRepBox也是排斥项:需要预测框远离周围其它目标框不同的预测框;系数 α和 β充当权重以平衡辅助损失。

为简化问题,下面只考虑两类检测,假定所有ground true的目标都是同一种类,P = (lP,tP,wP,hP) 和 G = (lG,tG,wG,hG)分别是候选框和ground true框,都由左上角坐标、宽度以及高度表示。P+ = {P}是所有正候选框的集合(至少和一个ground true有高的IoU分数(比如IoU ≥ 0.5)才可被认为是正样本),g = {G}是一张图片中所有ground true框的集合。

LAttr

此项的目的是减小通过某种距离矩阵(如欧式距离、SmoothL1或者 IoU)测量得到的所有预测框与所有ground true框之间的距离。给定一个候选框P∈ P+,文章把与其具有最大IoU值的ground true框作为其目标框:GPAttr = argmaxG∈g IoU(G,P),BP 是从候选框回归出的预测框,吸引损失可以被计算为:

LRepGT

此项的目的是使候选框与周围非其目标的ground true框排斥。给定一个候选框P∈ P+,文章把除了其目标框之外再与其具有最大IoU值的ground true框作为其排斥目标框:GPRep = argmax G∈G\{GPAttr}IoU(G,P),LRepGT惩罚的是BP与GPRep之间重叠的部分,此部分通过IoG计算:,则此项排斥损失可以被计算为:

       ,  其中 

LRepBox

此项的目的是使候选框与其它目标不同的候选框排斥,这也使检测器对NMS操作更鲁棒。文章将候选框集合P+按照每个候选框的目标分成一系列互不相交的子集:P+ = P1 ∩P2 ∩...∩P|g|,之后随机的从两个不同子集中选出两个候选框,希望这两个候选框的重叠尽可能的小,则此项排斥损失可以被计算为:

实验

本文的detector采用的是改进版的Faster R-CNN,以保证对比的公平性,验证实验是在CityPersons验证集上做的。对比实验是在Caltech测试集上做的,训练和测试均采用新标注。

(CVPR2018)Repulsion Loss: Detecting Pedestrians in a Crowd_第2张图片

(CVPR2018)Repulsion Loss: Detecting Pedestrians in a Crowd_第3张图片

结论

文章做了许多实验研究遮挡对行人检测的影响,最终从loss的层面专门提出了一个排斥损失以解决遮挡问题,并取得了显著的效果。同时提出的损失函数对于通用目标检测也要很大的提升。

你可能感兴趣的:(论文)