什么是目标检测中的旋转敏感度错误?
点击上方“小白学视觉”,选择加"星标"或“置顶”
重磅干货,第一时间送达
文章导读
旋转框的目标检测任务通常出现在遥感数据,文本数据,以及点云鸟瞰图数据中。对旋转框的表达会采用中心点和长宽再加上旋转角,然后设计损失函数求学习误差。以下介绍一篇讲述旋转框回归引起的旋转敏感度误差以及如何解决该问题的文章RSDet。
目录
前沿
核心思想
问题描述
解决方法
思考展望
前沿
目标检测任务根据方向,通常可分为水平框检测和旋转框检测。水平框检测通常适合于一般的自然场景图像。旋转框检测通常出现在场景文本、遥感地图、车牌检测、点云鸟瞰图中,通常需要更精确的定位,并需要有效的旋转检测器。
目标检测中如何表示一个旋转框?
通常对一个旋转框我们有两种表达形式:一种是基于五个参数,分别为中心点(x, y)、宽高(w, h)、旋转角度a,如下图所示:
另一种是基于八个参数,分别是旋转框的四个顶点(x1, y1),(x2, y2),(x3, y3),(x4, y4),如下图所示:
对于基于区域的旋转物体检测器,通常使用“l1-损失”作为损失函数。
核心思想
本文认为由于角度固有的周期性以及相关的宽度和高度的突然变化导致的损失不连续性,上述积分会导致训练不稳定和性能退化。考虑到五个具有不同测量单位的参数之间不一致的回归性,这个问题更加突出。
针对上述问题,本文提出调制旋转损耗来消除损耗不连续性。新的损耗与八参数回归相结合,进一步解决了参数回归不一致的问题。
什么是旋转敏感度误差?
1. 角度损失不连续:当角度数值达到其范围边界时,角度损失就会出现跳变;
2. 回归参数的不统一:中心点坐标,宽高以及角度的单位不同,并且与IoU存在不同的关系;
以上两个问题会导致训练不稳定以及最终检测性能的下降。
如何解决上述两个问题?
针对损失函数中出现的不连续的问题,本文在原有的基础上增加校正损失,对突变位置的L1-损失进行对称。
针对回归参数不一致的问题,本文对五参数旋转框的表示修改为八参数旋转框表示法。基于八参数回归的检测直接对旋转框的四个点回归,因此预测是四边形的。
四边形回归的关键步骤是预先对四个角点进行排序,使姿态预测正确,也可以避免非常大的损失。对于顶点顺序,本文采用基于叉积的算法来获得四个顶点的序列。
问题描述
什么是角度参数引起的损耗不连续?
当角度达到其范围边界时,损失值将会跳跃,如图,将水平矩形分别顺时针和逆时针旋转1度,得到地面真值框和检测框。参考矩形的位置只是略有变化,但它的角度变化很大,高度和宽度也发生了变化。
蓝色、红色和绿色的矩形分别代表参考框、真实框和预测框。上述三个框用五个参数来描述:参考框(0,0,10,25,-90°)、真实框(0,0,25,10,-1°)和预测框(0,0,10,25,-89°)。网络预测的偏移量为(0 , 0 , 0 , 0 , 1 ° ) ,将参考框转为预测框。网络训练的目标是(0 , 0 , 15 , − 15 , 89 ° ),目标与网络预测的偏移量很多,所以损失会很大。这就是角度的周期性导致的损失不连续。
参数单位的不同如何影响网络性能?
在五参数系统中,角度,宽度,高度和中心点坐标具有不同的测量单位,并且它们与IoU显示出相当不同的关系,如下图所示。简单地将它们加起来会导致不一致的回归性能。
解决办法
为了解决上述两个问题,本文分别针对五参数和八参数设计了旋转损失。
1. 五参数旋转损失
由于l1损失函数在五参数情况下,在边界会出现损耗不连续的情况。本文设计了新的损失函数lmr :
lcp是中心点损失,lmr的第一项是L1损失。第二项是通过消除角度周期性以及高度和宽度的交换性校正损失使其连续。当其未达到角度参数的范围边界时,该校正项大于L1损失。当L1损失突然发生不连续时,这种校正变得正常。换句话说,这种校正可以看作是对突变位置的L1-损失进行对称。最后,损失为最小的L1-损失和校正损失。lmr曲线是连续的。
2. 八参数旋转损失
为了避免固有的回归不一致,本文针对八参数表示法中顶点的顺序问题做了设计。
主要步骤是先确定最左边的点(如果矩形是水平的则有两个最左面点,取上面的那个)。然后通过叉乘找到对角点,也就是第三个点。最后利用这两个点构成的向量以及叉乘方法,根据逆时针或者顺时针的顺序要求找点其他两个点。
但是,在八参数回归模型中仍然存在损失不连续性。
如下图所示,从蓝色预选框到实际位置的回归过程。绿色真实框为{(a→a),(b→b),(c→c),(d→d)},但显然理想的回归过程应为{(a→b),(b→c),(c→d),(d→a)}。这种情况也导致模型训练困难和回归不平滑。
因此,本文设计了八参数版本的旋转损失函数。分别将预选框的四个顶点顺时针移动一位,保持预选框顶点的顺序不变,将预选框的四个顶点逆时针移动一位。取三种情况下的最小值。
思考展望
文章提到中心点,长宽和角度单位度量的不同会对训练的模型的结果产生影响。但是很多通用的目标检测网络中,回归损失函数的发展是经历了L-norm—>IoU—>GIoU—>DIoU—>CIoU—>EIoU的过程,正是因为使用L-norm作为回归损失无法兼顾边界框回归的三大几何因素:重叠面积、中心点距离、纵横比,才发展成了IoU系列。
为什么在旋转框的目标检测任务中仍在L-norm的回归上进行优化?是否可以在IoU系列上增加角度参数从而做到更好的位置回归?
下载1:OpenCV-Contrib扩展模块中文版教程
在「小白学视觉」公众号后台回复:扩展模块中文教程,即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。
下载2:Python视觉实战项目52讲
在「小白学视觉」公众号后台回复:Python视觉实战项目,即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。
下载3:OpenCV实战项目20讲
在「小白学视觉」公众号后台回复:OpenCV实战项目20讲,即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。
交流群
欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~
什么是目标检测中的旋转敏感度错误?相关推荐
- 目标检测中的Tricks
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 来自 | 知乎 作者 | roger 链接 | https: ...
- 目标检测中的特征冲突与不对齐问题
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|深度学习这件小事 前言 昨天看到一篇商汤的刷榜文< ...
- 目标检测中的分类和定位冲突问题
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者:steven Li | 来源:知乎 https://zhuanlan.zhihu.com/p/1 ...
- 目标检测中的数据格式转换工具Roboflow
目标检测中的数据格式转换工具.Roboflow Roboflow提供了您需要的所有工具,将原始图像转换为定制的训练有素的计算机视觉模型,并部署它在您的应用程序中使用. Roboflow支持检测目标和分 ...
- 解决目标检测中密集遮挡问题——Repulsion loss
解决目标检测中密集遮挡问题--Repulsion loss Rep loss Attr RepGT RepBox 之前参加了df的钢筋检测比赛,比赛中的一个难点是密集遮挡问题,为了解决这个问题,参考了 ...
- 2021综述:一般目标检测中的遮挡处理
目录 综述:通用对象检测中的遮挡处理 1.简介 2.目标检测的应用 3.数据集 4.户外场景的遮挡处理 A.数据收集 B.遮挡检测 C.生成遮挡区域 D.遮挡目标检测 5.室内场景中的遮挡处理 A.场 ...
- 浅谈目标检测中的特征冲突与不对齐问题
点击上方"AI算法修炼营",选择加星标或"置顶" 标题以下,全是干货 作者:黄飘 知乎链接:https://zhuanlan.zhihu.com/p/11470 ...
- 目标检测中的数据增强
目标检测中的数据增强 技术标签: 深度学习 人工智能 一.图像遮挡 ①random erase 用随机值或训练集的平均像素替换图像区域. URL: https://arxiv.org/pdf/1708 ...
- 小目标检测中的数据扩展
参考:https://blog.csdn.net/abrams90/article/details/89371797 论文:Augmentation for small object detectio ...
最新文章
- Python的全局和局部变量
- 用于在公网环境下测试的Telnet/SSH服务器
- linux i3wm性能,Core i3-530集成显卡Linux性能考察
- 【转】Android:ListView常见错位之CheckBox错位
- vue模板html,VueJS模板
- 相机内外参矩阵和坐标变换
- 常用各种芯片手册大全_【汇总】超全面!国内芯片60个细分领域知名代表企业...
- 25岁男生要有多少存款才能让女友满意?
- 微信小程序入门二: 条件、遍历、网络请求、获取本地图片
- 计算思维c语言软件,C语言编程入门与计算思维
- 仙岛求药(信息学奥赛一本通-T1251)
- 常见SMTP发送失败原因列表
- 如何用计算机计算微积分,高数从此不用怕?一键计算微积分的神App
- 西门子PLC中各个组织块OB作用(OB1、OB100……)
- linux制作虚拟机镜像,为OpenStack制作CoreOS虚拟机镜像(基于CoreOS官方提供镜像)
- 【语义分割】Smoothed Dilated Convolutions for Improved Dense Prediction阅读笔记
- php随机分配班级座位,班级座位编排的几种模式
- python实现匿名发邮件_python 发送匿名邮件或无发件人
- 解决阿里云Workbench登录失败
- Python数据可视化 Pyecharts 制作 Sunburst 旭日图
热门文章
- 作为一名程序员,数学到底对你有多重要?
- 四大指标超现有模型!少样本的无监督图像翻译效果逆天| 技术头条
- GitHub告急!黑客威胁程序员不交钱就删库
- 全栈AI工程师指南,DIY一个识别手写数字的web应用
- 给AI开发者的新年礼物,技术公开课大放送(附演讲PPT)
- “史上最强”BigGAN公开TensorFlow Hub demo!
- AI一分钟 | 传阿里暂停在美扩张云业务;Google发布AI工具以识别儿童性侵犯图片...
- Arm 发布Mali多媒体套件,机器学习将不再是高端手机的专享
- 为什么 JSP 还没有被淘汰?
- 《如何高效学习》作者推荐!