H2RBox:HORIZONTAL BOX ANNOTATION IS ALL YOU NEED FOR ORIENTED OBJECT DETECTION(读论文)

本文主要是介绍H2RBox:HORIZONTAL BOX ANNOTATION IS ALL YOU NEED FOR ORIENTED OBJECT DETECTION(读论文),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

H2RBOX: HORIZONTAL BOX ANNOTATION IS ALL YOU NEED FOR ORIENTED OBJECT DETECTION

文章目录

  • H2RBOX: HORIZONTAL BOX ANNOTATION IS ALL YOU NEED FOR ORIENTED OBJECT DETECTION
    • abstract
    • intro
    • related work
    • proposed method
    • experiment
    • ablation studies
  • 代码层面解读
    • model.forwar_train(self,img,img_meta,gt_bboxes,gt_labels,gt_bboxes_ignore)
    • losses=self.bbox_head.forward_train(x,x_aug,rot,img_metas,gt_bboxes,gt_labels,gt_bboxes_ignore)
    • loss(outs,outs_aug,tf,gt_bboxes, gt_labels, img_metas)

训练旋转目标检测器使用水平框就够了

abstract

利用水平框标注训练旋转框能够节省标注成本,并且优化大量的现有数据集。
本文使用弱监督结合自监督训练了一个旋转框检测器,并与基于水平框的实例分割模型比较了性能。
代码:https://github.com/yangxue0827/h2rbox-mmrotate

intro

介绍了几个数据集:
DIOR-R
SKU110K-R
介绍了一些HBox-supervised instance segmentation方法:
BoxInst
BoxLevelSet

由于本任务第一次提出,本文的模型将与 实例分割-外接矩形模型 性能比较。

在这里插入图片描述
本文的贡献:

  • 第一个HBox annotation-based oriented object detector,提出self-supervised angle prediction moule
  • 与H2RBox实例分割-外接矩形模型BoxInst (Tian et al., 2021)比较,mAP50(67.9% vs 53.59%),12 x faster(31.6fps vs 2.7fps),显存占用 (6.25 GB vs. 19.93 GB)
  • 与经典旋转目标检测模型FCOS比较,
    H2RBox is only 0.91% (74.40% vs. 75.31%) behind on DOTA-v1.0, and even surpasses it by 1.7% (34.90% vs. 33.20%) on DIOR-R ,29.1 FPS vs. 29.5 FPS on DOTA-v1.0.

related work

一些等看的论文:
SDI
MCG
BBTP
Mask R-CNN
BoxInst
CondInst
BoxLevelSet

proposed method

这一部分推荐结合论文看,毕竟方法是最重要的部分,作者在论文中阐述的已经是精简的版本了。
在这里插入图片描述

  • 增强视角生成

文本最有趣的地方就是使用了自监督,保证预测旋转框的角度一致性,如示意图右边所示。注意:旋转后输入网络,要么需要裁剪,要么需要填充。
1:保留中心区域
2:填充(空白填充 与 反射填充)
(这里填充区域不参与回归损失,不必担心填充部分出现了目标)
在这里插入图片描述

  • 弱监督分支

使用 resnet + FPN 结构,FCOS的头部网络用于regerssion
如何设置监督呢?
使用外接水平框作为监督,作者说明,这样会导致一个问题,即无法准确预测出RBox,导致如下情况出现
在这里插入图片描述

  • 自监督分支

作为ws分支的补充,ss分支只包含回归,不包含分类,这意味着ss就是用来优化网络对于框回归的学习,即xywha
简单回忆一下旋转变换矩阵
在这里插入图片描述
回忆FCOS学习xl xr yl yr四个参数,结合centerness完成label assignment。由于外接水平框一定满足,中心与原始旋转框中心重合,故旋转框需要学习的参数有w h theta,显然当w h都准确时,为了外接矩形与gtH相等,theat只有两种情况。在这里插入图片描述
B s s s = S ( R ⋅ B w s c ) B_{ss}^s = S(R\cdot B_{ws}^c) Bsss=S(RBwsc)
这里等式左边代表ss分支预测的镜像框,右侧S代表水平翻转变换(因为中心对称,称垂直翻转也可),R代表旋转矩阵(即,由 θ \theta θ得到的旋转矩阵,角度为ss的旋转角), B w s c B_{ws}^c Bwsc为ws分支预测的框coincident rbox

(下面几句话我不能理解)
The final SS learning consists of scale-consistent and spatial-location-consistent learning:
S i m ⟨ R ⋅ B w s , B s s ⟩ Sim \langle R\cdot B_{ws},B_{ss} \rangle SimRBws,Bss
Fig. 4(b) shows the visualization by using the SS loss, with accurate predictions. The appendix
shows visualizations of feasible solutions for different combinations of constraints.
(主要是我不认为这样就能确定出一个旋转框,让我们接着看吧)

  • label assignment

作者:ws分支与ss分支的一致性可以通过 设置中心点损失和角度损失,来学习。
ws 分支预测的rb用于监督ss分支预测出来的rbox。并且图中每一个像素点的centerness category target GT Hbox应该保持一致。
1)一对一,每一个原图点对应到ss图点,用其rb对应的Hb作为监督
2)一对多,最接近中心点的rb用来监督ss分支rb
在这里插入图片描述
(说实话,这几句,我似懂非懂,也不知道自己理解的对不对,还是得从代码入一下)

  • loss combining the ws and ss

ws分支:rotated object detector,基于FCOS,损失: L r e g L c l s L c n L_{reg} L_{cls} L_{cn} LregLclsLcn分别是focal loss cross-entropy loss IoU loss,# 为啥还有Lcn???
在这里插入图片描述
一些参数解释:(不想手打了,没啥区别)
在这里插入图片描述

重点的,让我们看一下ss分支损失:
在这里插入图片描述
额,这个Lxy中的t没有解释,然后B(-,-,+,+)我没有看懂。。

experiment

见论文

ablation studies

在这里插入图片描述

  • 生成边界方法对结果的影响
  • 不同assigner对结果影响
  • 特殊圆形物体的训练、测试策略(st为storage tank)
  • ss方法对结果的提升

代码层面解读

代码见论文中链接
看了代码整体代码非常简洁,本文主要是在loss设计新颖
接下来分三个步骤介绍代码

model.forwar_train(self,img,img_meta,gt_bboxes,gt_labels,gt_bboxes_ignore)

这一部分是网络前向传播的代码干了如下事情:

  • 随机生成一个角度
  • 对原始图片进行旋转,然后反射填充边界
  • 旋转后图片和原始图片送入backbone+neck(共享权重)
  • 然后把得到的特征图送入head.forward_train

可见与一般的model.forward_train不同的仅仅是多了一个并行分支。

losses=self.bbox_head.forward_train(x,x_aug,rot,img_metas,gt_bboxes,gt_labels,gt_bboxes_ignore)

送入了头部网络Rotated_FCOS_head
头部网络首先是对于原始的x,直接forward(x)作用上去得到,bbox_pred,angle_pred,class,centerness
然后对于x_aug,走一遍回归分支(共享权重)得到bbox_pred,angle_pred

下面就是最重要的loss计算,如何设计loss?
按照论文中,首先关于x的loss使用FCOS的自带loss即可,分类+回归+角度+centerness都有损失,然后x_aug相关的损失可以称为一致性损失。下面让我们细看

loss(outs,outs_aug,tf,gt_bboxes, gt_labels, img_metas)

这篇关于H2RBox:HORIZONTAL BOX ANNOTATION IS ALL YOU NEED FOR ORIENTED OBJECT DETECTION(读论文)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

AI hospital 论文Idea

一、Benchmarking Large Language Models on Communicative Medical Coaching: A Dataset and a Novel System论文地址含代码 大多数现有模型和工具主要迎合以患者为中心的服务。这项工作深入探讨了LLMs在提高医疗专业人员的沟通能力。目标是构建一个模拟实践环境,人类医生(即医学学习者)可以在其中与患者代理进行医学

论文翻译:arxiv-2024 Benchmark Data Contamination of Large Language Models: A Survey

Benchmark Data Contamination of Large Language Models: A Survey https://arxiv.org/abs/2406.04244 大规模语言模型的基准数据污染:一项综述 文章目录 大规模语言模型的基准数据污染:一项综述摘要1 引言 摘要 大规模语言模型(LLMs),如GPT-4、Claude-3和Gemini的快

论文阅读笔记: Segment Anything

文章目录 Segment Anything摘要引言任务模型数据引擎数据集负责任的人工智能 Segment Anything Model图像编码器提示编码器mask解码器解决歧义损失和训练 Segment Anything 论文地址: https://arxiv.org/abs/2304.02643 代码地址:https://github.com/facebookresear

论文翻译:ICLR-2024 PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS

PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS https://openreview.net/forum?id=KS8mIvetg2 验证测试集污染在黑盒语言模型中 文章目录 验证测试集污染在黑盒语言模型中摘要1 引言 摘要 大型语言模型是在大量互联网数据上训练的,这引发了人们的担忧和猜测,即它们可能已

OmniGlue论文详解(特征匹配)

OmniGlue论文详解(特征匹配) 摘要1. 引言2. 相关工作2.1. 广义局部特征匹配2.2. 稀疏可学习匹配2.3. 半稠密可学习匹配2.4. 与其他图像表示匹配 3. OmniGlue3.1. 模型概述3.2. OmniGlue 细节3.2.1. 特征提取3.2.2. 利用DINOv2构建图形。3.2.3. 信息传播与新的指导3.2.4. 匹配层和损失函数3.2.5. 与Super

BERT 论文逐段精读【论文精读】

BERT: 近 3 年 NLP 最火 CV: 大数据集上的训练好的 NN 模型,提升 CV 任务的性能 —— ImageNet 的 CNN 模型 NLP: BERT 简化了 NLP 任务的训练,提升了 NLP 任务的性能 BERT 如何站在巨人的肩膀上的?使用了哪些 NLP 已有的技术和思想?哪些是 BERT 的创新? 1标题 + 作者 BERT: Pre-trainin

【Python报错已解决】AttributeError: ‘list‘ object has no attribute ‘text‘

🎬 鸽芷咕:个人主页  🔥 个人专栏: 《C++干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 文章目录 前言一、问题描述1.1 报错示例1.2 报错分析1.3 解决思路 二、解决方法2.1 方法一:检查属性名2.2 步骤二:访问列表元素的属性 三、其他解决方法四、总结 前言 在Python编程中,属性错误(At

[论文笔记]LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale

引言 今天带来第一篇量化论文LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale笔记。 为了简单,下文中以翻译的口吻记录,比如替换"作者"为"我们"。 大语言模型已被广泛采用,但推理时需要大量的GPU内存。我们开发了一种Int8矩阵乘法的过程,用于Transformer中的前馈和注意力投影层,这可以将推理所需

时间序列|change point detection

change point detection 被称为变点检测,其基本定义是在一个序列或过程中,当某个统计特性(分布类型、分布参数)在某时间点受系统性因素而非偶然因素影响发生变化,我们就称该时间点为变点。变点识别即利用统计量或统计方法或机器学习方法将该变点位置估计出来。 Change Point Detection的类型 online 指连续观察某一随机过程,监测到变点时停止检验,不运用到

2024 年高教社杯全国大学生数学建模竞赛 C 题 农作物的种植策略 参考论文 无水印

持续更新中,2024年数学建模比赛思路代码论文都会发布到专栏内,只需订阅一次!  完整论文+代码+数据结果链接在文末!  订阅后可查看参考论文文件 第一问 1.1 问题重述 这个问题围绕的是华北山区的某乡村,在有限的耕地条件下,如何制定最优的农作物种植策略。乡村有 34 块露天耕地和 20 个大棚,种植条件包括粮食作物、蔬菜、水稻和食用菌。除了要考虑地块的面积、种植季节等,还要确保