Repulsion loss的详细理解

2023-10-21 14:20
文章标签 理解 详细 loss repulsion

本文主要是介绍Repulsion loss的详细理解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述
本文由同济大学和北京大学合作发表于CVPR2018,聚焦于loss层面,为遮挡情况下的行人检测问题提供了一种行之有效的解决方案。
论文:https://arxiv.org/abs/1711.07752

一、问题提出在这里插入图片描述

1.行人遮挡会造成什么问题

当我们在做行人检测时,人与人之间会存在互相遮挡。遮挡会造成2个问题:

1.设红色框为目标框T(man)的预测框P,旁边也有个真实框B(woman),我们的P可能会被往B去移动(shift)。

2.检测器对NMS的阈值的选取更为敏感。如果NMS阈值选取过小,周围的目标框会被过滤掉;如果NMS阈值选取过大,会带更多的虚检

2.非极大抑制选取更敏感

第二点的影响是不是不太直观?没关系,我们先详细回顾一下非极大抑制NMS的实现过程:

在检测器中,一张图片可能会有n个检测目标,每个检测目标都会有很多检测框(proposals/anchors/bbox)。
对于每个检测目标来讲,它的附近都会有一簇IoU很高的检测框(相较于其他的检测框来说),所以针对同一个检测目标,有必要只留下置信度(score)最高的那个检测框作为该物体的检测框,其他的都应该过滤掉。

实现步骤:

1、假定有6个带置信率的region proposals,并预设一个IOU的阈值如0.72、按置信率大小对6个框排序: 0.95, 0.9, 0.9, 0.8, 0.7, 0.73、设定置信率为0.95的region proposals为一个预测框;4、在剩下5个region proposals中,去掉与0.95物体框IOU大于0.7的。5、重复24的步骤,直到没有region proposals为止。6、每次获取到的最大置信率的region proposals就是我们筛选出来的目标。

那么问题来了,对于有遮挡的行人数据集,这里过滤掉的检测框有没有对隔壁检测目标IoU最高却被我们这个检测目标的检测框给抑制掉的呢?看图。在这里插入图片描述
NMS阈值选取过小:针对目标T(man),检测框P与T的IoU最大,P会视为T的预测框。如果NMS选取过小,旁边目标B的预测框(woman)假设为K,那么K会被选作T的检测框,然后被P抑制掉。

NMS阈值选取过大:与上面是同样的道理,会多出许多检测框,带来更多的假正例。

二、Repulsion loss

既然已经清楚影响是怎样造成的,来看看解决方案。Repulsion loss的作用在于,要求预测框P靠近(吸引)自己的真实目标T的同时,还要求P远离(排斥)T旁边的其他真实框(例如B)

1.Replusion loss:

在这里插入图片描述

可以看到该损失函数中包含3个模块,下面来分别作解释。

2. L A t t r L_{Attr} LAttr

该模块的作用是使得预测框和它的目标框尽可能接近。
L A t t r L_{Attr} LAttr采用的是通用目标检测中的回归loss,可以采用欧式距离,SmoothL1距离以及IoU距离。但为了和其他算法有可比性,这里采用的是SmoothL1距离。在这里插入图片描述
P ∈ P + P∈P+ PP+(所有的正样本):正样本就是根据设定的IoU阈值来划分出来的检测框P的集合。

G A t t r P G^P_{Attr} GAttrP: 为每一个检测框P匹配一个有最大IoU值的真实目标框(Ground truth)

B P B^P BP: 从检测框P做回归偏移(shift)后得到的预测框。

清楚这些基础概念后,这个模块的函数就好理解了,smoothL1的公式如下:
在这里插入图片描述
从公式可以很直观的看出, B P B^P BP G A t t r P G^P_{Attr} GAttrP的左上角坐标以及宽高 ( x , y , w , h ) (x,y,w,h) x,y,w,h分别进行smoothL1计算,然后累加和。
优化的目标就是让两者之间距离缩短,那就达到了预测框和它的目标框尽可能接近的目的。

3. L R e p G T L_{RepGT} LRepGT

L R e p G T L_{RepGT} LRepGT是使得预测框P和周围的目标框G尽可能远离 。
在这里插入图片描述
这里的周围的目标框是除了已经匹配上的目标框以外的IoU最大的目标框,用 G R e p P G^P_{Rep} GRepP表示。在这里插入图片描述
G R e p P G^P_{Rep} GRepP是除了与预测框P匹配了的Ground_truth-A以外,其他剩下的Ground_truth中与预测框P的IoU最大的Ground_truth-B。

Q1: L R e p G T L_{RepGT} LRepGT采用的smoothLn和IoG,那么为什么不适用IoU呢?

A : 如果选用IoU,那么只要预测框变得足够大(即增大并集)就能使得 L R e p G T L_{RepGT} LRepGT减小。IoG不同,GT是固定的,只能优化分子部分(即增大交集)。

Q2.为什么采用smoothLn?

A : Ln既保留了L1的鲁棒性又吸收L2的快速收敛性。

4. L R e p B o x L_{RepBox} LRepBox

L R e p B o x L_{RepBox} LRepBox:使得预测框Pi和周围的预测框Pj尽可能远离, P i P_i Pi P j P_j Pj分别配上不同的预测框,他们之间的距离采用的是IoU。定义如下:
在这里插入图片描述

从式(4)中可以发现当预测框Pi和周围的其他预测框Pj的IoU越大,则产生的loss也会越大,因此可以有效防止两个预测框因为靠的太近而被NMS过滤掉,进而减少漏检。

参考文献:

[1].CVPR18|Repulsion loss:遮挡下的行人检测
[2].Repulsion Loss: Detecting Pedestrians in a Crowd
[3].NMS算法原理及代码验证

这篇关于Repulsion loss的详细理解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/254952

相关文章

Spring Boot集成Druid实现数据源管理与监控的详细步骤

《SpringBoot集成Druid实现数据源管理与监控的详细步骤》本文介绍如何在SpringBoot项目中集成Druid数据库连接池,包括环境搭建、Maven依赖配置、SpringBoot配置文件... 目录1. 引言1.1 环境准备1.2 Druid介绍2. 配置Druid连接池3. 查看Druid监控

创建Java keystore文件的完整指南及详细步骤

《创建Javakeystore文件的完整指南及详细步骤》本文详解Java中keystore的创建与配置,涵盖私钥管理、自签名与CA证书生成、SSL/TLS应用,强调安全存储及验证机制,确保通信加密和... 目录1. 秘密键(私钥)的理解与管理私钥的定义与重要性私钥的管理策略私钥的生成与存储2. 证书的创建与

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker

Python设置Cookie永不超时的详细指南

《Python设置Cookie永不超时的详细指南》Cookie是一种存储在用户浏览器中的小型数据片段,用于记录用户的登录状态、偏好设置等信息,下面小编就来和大家详细讲讲Python如何设置Cookie... 目录一、Cookie的作用与重要性二、Cookie过期的原因三、实现Cookie永不超时的方法(一)

从原理到实战深入理解Java 断言assert

《从原理到实战深入理解Java断言assert》本文深入解析Java断言机制,涵盖语法、工作原理、启用方式及与异常的区别,推荐用于开发阶段的条件检查与状态验证,并强调生产环境应使用参数验证工具类替代... 目录深入理解 Java 断言(assert):从原理到实战引言:为什么需要断言?一、断言基础1.1 语

SpringBoot整合liteflow的详细过程

《SpringBoot整合liteflow的详细过程》:本文主要介绍SpringBoot整合liteflow的详细过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋...  liteflow 是什么? 能做什么?总之一句话:能帮你规范写代码逻辑 ,编排并解耦业务逻辑,代码

浏览器插件cursor实现自动注册、续杯的详细过程

《浏览器插件cursor实现自动注册、续杯的详细过程》Cursor简易注册助手脚本通过自动化邮箱填写和验证码获取流程,大大简化了Cursor的注册过程,它不仅提高了注册效率,还通过友好的用户界面和详细... 目录前言功能概述使用方法安装脚本使用流程邮箱输入页面验证码页面实战演示技术实现核心功能实现1. 随机

HTML img标签和超链接标签详细介绍

《HTMLimg标签和超链接标签详细介绍》:本文主要介绍了HTML中img标签的使用,包括src属性(指定图片路径)、相对/绝对路径区别、alt替代文本、title提示、宽高控制及边框设置等,详细内容请阅读本文,希望能对你有所帮助... 目录img 标签src 属性alt 属性title 属性width/h

CSS3打造的现代交互式登录界面详细实现过程

《CSS3打造的现代交互式登录界面详细实现过程》本文介绍CSS3和jQuery在登录界面设计中的应用,涵盖动画、选择器、自定义字体及盒模型技术,提升界面美观与交互性,同时优化性能和可访问性,感兴趣的朋... 目录1. css3用户登录界面设计概述1.1 用户界面设计的重要性1.2 CSS3的新特性与优势1.

CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比

《CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比》CSS中的position属性用于控制元素的定位方式,不同的定位方式会影响元素在页面中的布... css 中的 position 属性用于控制元素的定位方式,不同的定位方式会影响元素在页面中的布局和层叠关