Repulsion Loss: Detecting Pedestrians in a Crowd 详解(遮挡下的行人检测)

最近做行人检测Re-ID的工作,读了Repulsion Loss: Detecting Pedestrians in a Crowd,所以刚好记录一下对论文的阅读和个人理解。文章中部分内容为引用别人的,我在文章最后也给出了引用的文章链接。如有侵权,请联系我删除。

一、综述

行人检测中遮挡分为两种类型,一种是由于非目标造成的遮挡,文中作者称为Reasonable-occlusion,另外一种是由于也是需要检测的目标造成的遮挡,作者称为Reasonable-crowd。对于前一种类型遮挡,很难有针对性的办法去解决,最好的办法也就是使用更多的数据和更强的feature。但是对于后一种类型的遮挡,现在的pipeline其实并没有很好充分利用信息,例如下面示意的这个情况,两个黑色的框代表的是两个Ground Truth,红色和绿色分别是被assign到1号的GT上的anchor或者proposal。
在这里插入图片描述
虽然这两个proposal和左面GT的IoU一样,但是显然绿色的更容易受到2号GT的影响,从而远离它真实的目标,这也是为什么crowded的情况中,误检经常出现在两个真正GT中间的原因。但是我们为了抑制这样的误检,又不能一味提升NMS的阈值,否则会对于真正靠近的情况错误抑制。

作者作者还在CityPersons数据集上分别做了定量统计,可以看到在不同的误检率下,从图中可以发现遮挡占据了近60%的席位(蓝色+橙色),而在这60%席位中,自遮挡又占据了近60%。
在这里插入图片描述

二、Repulsion Loss

作者提出Repulsion loss函数定义如下:
在这里插入图片描述
其中第一个子模块 L A t t r L_{Attr} LAttr是使得预测框和匹配上的目标框尽可能接近,即:smooth L1损失,目的是使回归目标与GT接近;第二个子模块 L R e p G T L_{RepGT} LRepGT是使得预测框和周围的目标框尽可能远离,即:目标是使proposal和要尽量远离和它overlap的第二大的GT;第三个子模块 L R e p B o x L_{RepBox} LRepBox是使得预测框和周围的其他预测框尽可能远离,即:使assign到不同GT的proposal之间尽量远离。通过第二个和第三个loss,不仅仅使得proposal可以向正确的目标靠近,也可以使其远离错误的目标,从而减少NMS时候的误检。

Attraction Term( L R e p B o x L_{RepBox} LRepBox

因为 L R e p B o x L_{RepBox} LRepBox是使得预测框Pi和周围的其他预测框Pj尽可能远离,Pi和Pj分别匹配上不同的目标框,它们之间的距离采用的是IoU,则RepBox loss定义为:
在这里插入图片描述
从式(4)中可以发现当预测框Pi和周围的其他预测框Pj的IoU越大,则产生的loss也会越大,因此可以有效防止两个预测框因为靠的太近而被NMS过滤掉,进而减少漏检。

Repulsion Term ( L R e p G T L_{RepGT} LRepGT)

因为 L R e p G T L_{RepGT} LRepGT是使得预测框P和周围的目标框G尽可能远离,这里的周围的目标框是除了匹配上的目标框以外的IoU最大的目标框,也即和它overlap的第二大GT:
在这里插入图片描述
作者使用了Intersection over GT(IoG)而不是传统的IoU,原因在于GT无法改变,仔细思考一下,如果是IoU的话,那么只要预测框足够大就一定能够使得RepGT loss减小,而这和我们的预期目标是不一致的,也就是说如果使用IoU则网络可以通过放大proposal的方式来降低loss,但是这并不是我们所期望的。如果直接使用IoG,分母是GT的面积无法改变,从而规避了这样的问题。
在这里插入图片描述
所以RepGT损失定义为:
在这里插入图片描述
Note:P ∈ P + P_+ P+,即为GT
B P B^P BP即为预测的box
P = (lP , tP , wP , hP ) 表示proposal bounding box
G = (lG, tG, wG, hG) 表示groundtruth bounding box
P+ = {P} is the set of all positive proposals (those who have a high IoU (e.g., IoU ≥ 0.5) with at least one ground-truth box are regarded as positive samples, while negative samples otherwise).
G = {G} is the set of all ground-truth boxes in one image.
从(4)我们可以看出:当预测框P和周围的目标框G的IoG越大,则产生的loss也会越大,因此可以有效防止预测框偏移到周围的目标框上。此外,式(5)中的sigma是一个调整LRepGT敏感程度的超参数。
其中这个Smooth_ln是针对0到1的输入变量设计的一个robust function,具体形状如下所示:
在这里插入图片描述
可以看到,正如Smooth_l1不会对特别大的偏差给予过大的penalty,Smooth_ln对于很小接近于1的输入也不会像原始的ln函数一样给予负无穷那么大的loss,从而可以稳定训练过程,而且对抗一些outlier。

暂时还没看到作者给出源码

参考链接:https://zhuanlan.zhihu.com/p/41288115
https://zhuanlan.zhihu.com/p/43655912

Yolov5是一种用于目标检测的神经网络模型,它通过将整个图像分割成较小的网格,并对每个网格预测边界框和类别标签来实现目标检测。Yolov5的目标是在保持高精度的同时提高检测速度。 在Yolov5中,引入了一种名为repulsion loss的损失函数。该损失函数的设计目标是增加不同目标之间的距离,避免它们过于接近。这是为了解决传统目标检测方法在物体过于靠近时出现的问题,例如多个物体被错误地划分为同一个目标。 通过repulsion loss,Yolov5试图优化目标分离和边框预测的性能。它遵循以下步骤: 首先,对每个目标框进行编码,捕捉其位置信息和与其他框之间的关系。这些编码将用于衡量目标之间的距离。 然后,计算每个目标框之间的距离。这可以通过计算各个目标框的中心点之间的欧氏距离来完成。 接下来,通过权重函数对距离进行加权。权重函数根据距离的大小决定目标之间的排斥程度。较大的距离表示较强的排斥,较小的距离表示较弱的排斥。 最后,将排斥损失与传统的目标检测损失函数(如置信度损失和分类损失)相结合,通过反向传播来优化模型的参数。 总之,Yolov5的repulsion loss通过增加目标之间的距离来改善目标检测的性能。它是一个有效的手段,可以避免物体重叠和错误的目标划分问题,从而提高检测的准确性和稳定性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值