遥感目标检测(3)-DAL(Dynamic Anchor Learning for Object Detection)

目录

一、概述

二、背景

三、建议

1、旋转RetinaNet

2、动态锚框分布

3、匹配敏感损失 

四、实验


一、概述

        由于选择正样本锚框进行回归,不一定能够定位真实的GT,而部分负样本回归甚至可以回归到真实的GT,说明相当多的负样本锚框有着准确定位的能力,这说明IoU进行回归锚框存在一定的问题,所以引出DAL(动态锚框学习),重新设置新的匹配度来综合评价锚框的定位潜力。

        图(a)表示有74%的正样本锚框可以很好的定位GT(高质量样本IoU>0.5),说明定位GT引入了许多假阳性样本。图(b)表示能够定位GT的检测样本中,只有42%为正样本锚框,意味着大多数为负样本锚框具有准确定位潜力。图(c)当前标签分配,分类置信度与输入IoU成正相关。图(d)经检测后的分类置信度与输出IoU相关性较弱,大量具有高IoU的被判为背景,高IoU情况下基本成随机分布,说明不利于在推理过程中利用分类评分选择检测结果。另外这种随机分布的效果,会被NMS筛掉一部分,所以分类器也不会彻底崩掉。

        其实就是低IoU(负样本)输入产生了一个高IoU输出(正样本),这个负样本就是一个潜在的正样本,我们就应该找到一个匹配的办法来有效的找到这一类负样本,让其作为正样本来训练。

        下图中红色框为锚框(用于计算IoU),绿色为预测框,可以看到低IoU也可能产生高预测框。 

二、背景

        本文提到RoI Transformer使用水平锚点,通过空间变换学习旋转RoI,减少锚点数量。R3Det使用从粗到细的级联,另外细化了预测框回归的问题。虽然这两者都取得了很好地效果,但不能对锚框的质量做出正确的判断,可能导致标签分配不当。

        本文又提到了正负样本不平衡的问题,由于大多数基于锚点的检测器,都会密集的预设锚点。Focal Loss提出降低简单样本和维持正负样本不均衡的问题,动态R-CNN和ATSS提出自动调整IoU阈值,从而选择正样本,但没有考虑IoU本身是否可信的问题,只是考虑了正样本的噪声问题。FreeAnchor将目标与锚点的匹配定义为最大似然估计,来选择最具有代表性的锚,但定义相对复杂。

三、建议

1、旋转RetinaNet

        本文仍然使用RetinaNet(上图为RetinaNet部分结构)作为backbone,水平锚仍然设置在FPN层的P3,P4,P5,P6,P7上,不使用旋转锚,减少参数,减少时间消耗。

        边界框回归中预测框偏移量(下图)和真实框偏移量(论文中没有单独写出,与下图一致只不过多了上标*),与R3Net的区别,只是在θ的求解加了tan。

        多任务损失函数仍然是RetinaNet的那一套,p和p*是预测和真实标签概率分布。

                L=L_{cls}(p,p^*)+L_{reg}(t,t^*) 

2、动态锚框分布

        由于我们最开始看到纯粹的基于输入IoU来进行回归,会导致模型难以收敛,模型效果不好。本文提出匹配度MD的概念,利用空间匹配、特征对齐和锚点回归的不确定性的先验信息来衡量定位能力。md表示如下,其中sa为先验,等价于输入IoU,fa为后验,等价于输出IoU,α和γ为超参数,u为惩罚项,表示训练是回归的不确定性,u=|sa-fa|。 

        md=\alpha \cdot sa+(1-\alpha)\cdot fa-u^{\gamma}

        根据匹配度,对正样本进行动态锚点选择,计算GT box与锚的匹配度,规定大于0.6为正候选锚,另外规定α的取值。t表示当前迭代次数/最大迭代次数(规定的迭代次数)

3、匹配敏感损失 

        为了提高分类和回归之间的相关性,实现高质量的对任意方向的检测,将MD引入损失函数,将分类损失定义为:

        其中ψ和ψp表示代表所有锚点和匹配度阈值选择的正样本,N和Np表示所有锚点和正锚点的个数。FL为Focal Loss,w_j为匹配补偿因子,用于区分不同定位的正样本。根据每个GT,首先计算与锚点的匹配程度md,设定一个阈值为正样本的划分点,正样本的匹配值为md_{pos},假设GT的最大匹配程度为md_{max},补偿值为\Delta md=1-md_{max}。将各个正样本的补偿值加到匹配值上获得匹配补偿因子:\textbf{w}=md_{pos}+\Delta md

回归损失也进行重新定义:

四、实验

        这个论文就是一个模块的讲解,下面这个实验在HRSC2016上计算出超参数α和γ的值分别为5和0.3,在不同数据集可以进行测试。

        在与不同的模型进行对比时,DAL使用RetinaNet为backbone,可以对标一下R3Det 有一个提升。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/42766.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【自启动配置】Ubuntu 设置开机自启动脚本

Ubuntu 开机运行的脚本和当前操作系统运行的级别有关,OS 的运行级别大概分为七个 目录 1、查看 OS 运行级别 2、创建自启动脚本 3、添加软链接 1、查看 OS 运行级别 输入命令 runlevel 查看当前系统运行级别。当前系统的运行级别为 5 2、创建自启动脚本 在 /et…

ZooKeeper原理剖析

1.ZooKeeper简介 ZooKeeper是一个分布式、高可用性的协调服务。在大数据产品中主要提供两个功能: 帮助系统避免单点故障,建立可靠的应用程序。提供分布式协作服务和维护配置信息。 2.ZooKeeper结构 ZooKeeper集群中的节点分为三种角色:Le…

多线程(JavaEE初阶系列2)

目录 前言: 1.什么是线程 2.为什么要有线程 3.进程与线程的区别与联系 4.Java的线程和操作系统线程的关系 5.多线程编程示例 6.创建线程 6.1继承Thread类 6.2实现Runnable接口 6.3继承Thread,使用匿名内部类 6.4实现Runnable接口,使…

html2Canvas+JsPDF 导出pdf 无法显示网络图片

html2CanvasJsPDF 导出pdf 问题:类似于下面着这种网络图片使用img导出的时候是空白的 https://gimg3.baidu.com/search/srchttp%3A%2F%2Fpics4.baidu.com%2Ffeed%2F7e3e6709c93d70cf827fb2fda054500cb8a12bc9.jpeg%40f_auto%3Ftoken%3Dd97d3f0fd06e680e592584f8c7a2…

深度学习——LSTM解决分类问题

RNN基本介绍 概述 循环神经网络(Recurrent Neural Network,RNN)是一种深度学习模型,主要用于处理序列数据,如文本、语音、时间序列等具有时序关系的数据。 核心思想 RNN的关键思想是引入了循环结构,允许…

分布式 - 消息队列Kafka:Kafka分区常见问题总结

文章目录 01. Kafka 的分区是什么?02. Kafka 为什么需要分区?03. Kafka 分区有什么作用?03. Kafka 为什么使用分区的概念而不是直接使用多个主题呢?04. Kafka 分区的数量有什么限制?05. Kafka 分区的副本有什么作用&am…

动态内存管理基础详解

目录 1、为什么存在动态内存分配 2、动态内存函数的介绍 2.1 malloc和free 功能: 参数和返回值: 注意事项: tip: 2.2 calloc 2.3 realloc函数 功能: 参数和返回值: realloc开辟空间的两种情况 realloc会顺…

Rust操作MySQL

查询 本部分是对 「Rust入门系列」Rust 中使用 MySQL[1]的学习与记录 经常使用的时间处理库: chrono 流式查询使用: query_iter 输出到Vec使用: query 映射到结构体使用: query_map 获取单条数据使用: query_first 命名…

Hadoop简介以及集群搭建详细过程

Hadoop简介以及集群搭建详细过程 hadoop集群简介hadoop部署模式Hadoop集群安装1.集群角色规划2.服务器基础环境准备3.上传安装包hadoop安装包目录结构5.编辑hadoop配置文件6.分发安装包7.配置hadoop环境变量8.NameNode format(格式化操作) hadoop集群启动关闭-手动逐个进程启停…

漏洞复现-yapi远程执行命令漏洞复现

目录 漏洞原理漏洞发现漏洞描述影响范围 yapi学习漏洞复现环境搭建exp 入侵检测与防御参考 漏洞原理 漏洞发现 查看issue2229 漏洞描述 网站开放注册功能时可随意注册&#xff0c;设置全局mock脚本可执行任意代码。 影响范围 Yapi < 1.9.2 yapi学习 YApi 是高效、易…

vue3前端分页,全选翻页状态保持

直接贴代码&#xff0c;代码中有注释 <template><div class"viewer-container" id"viewer-container"><!-- 表格 --><el-table:row-key"getRowKeys":data"data.tableDataCopy"style"width: 100%"ref&…

Spring详解(学习总结)

目录 一、Spring概述 &#xff08;一&#xff09;、Spring是什么&#xff1f; &#xff08;二&#xff09;、Spring框架发展历程 &#xff08;三&#xff09;、Spring框架的优势 &#xff08;四&#xff09;、Spring的体系结构 二、程序耦合与解耦合 &#xff08;一&…

消息队列——rabbitmq的不同工作模式

目录 Work queues 工作队列模式 Pub/Sub 订阅模式 Routing路由模式 Topics通配符模式 工作模式总结 Work queues 工作队列模式 C1和C2属于竞争关系&#xff0c;一个消息只有一个消费者可以取到。 代码部分只需要用两个消费者进程监听同一个队里即可。 两个消费者呈现竞争关…

【itext7】itext7操作PDF文档之添加段落文本内容、添加List列表、添加Image图片、添加Table表格

这篇文章&#xff0c;主要介绍itext7操作PDF文档之添加段落文本内容、添加List列表、添加Image图片、添加Table表格。 目录 一、itext7操作PDF内容 1.1、添加段落文本内容 1.2、添加列表内容 1.3、添加图片 1.4、添加表格 &#xff08;1&#xff09;列宽采用点单位&#…

情绪即需求

情绪即需求 心理学认为&#xff0c;每个情绪背后都藏着一个未被满足的心里需求. 模型介绍 每一个情绪背后&#xff0c;都有一个未被满足的心理需求。情绪没有好坏之分&#xff0c;存在即合理。情绪是人类不断进化的产物&#xff0c;每一种情绪都是在保护我们&#xff0c;都有其…

基于Java+SpringBoot+vue前后端分离校园周边美食探索分享平台设计实现

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

OpenCv之特征检测

目录 一、基本概念 二、harris角点检测 三、SIFT算法 四、Shi-Tomasi角点检测 一、基本概念 特征检测指的是使用计算机提取图像信息&#xff0c;决定每个图像的点是否属于一个图像特征。特征检测的结果是把图像上的点分为不同的子集&#xff0c;这些子集往往属于孤立的点、…

Element Plus 日期选择器

计算开始日期到结束日期的总天数 结构 <el-form-item label"计划开始时间" required prop"StartTime"><el-date-pickertype"date"v-model"ruleForm.StartTime":disabled-date"StartTime"placeholder"计划开始…

图像处理之LoG算子(高斯拉普拉斯)

LoG算子&#xff08;高斯拉普拉斯算子&#xff09; LoG算子是由拉普拉斯算子改进而来。拉普拉斯算子是二阶导数算子&#xff0c;是一个标量&#xff0c;具有线性、位移不变性&#xff0c;其传函在频域空间的原点为0。所有经过拉普拉斯算子滤波的图像具有零平均灰度。但是该算子…

RT-Thread qemu mps2-an385 bsp 移植制作 :系统运行篇

前言 前面已经让 RT-Thread 进入了 entry 入口函数&#xff0c;并且 调整 链接脚本&#xff0c;自动初始化与 MSH shell 的符号已经预留&#xff0c; 进入了 RT-Thread 的初始化流程 接下来&#xff1a;从 内存管理、系统tick 定时器、适配串口 uart 驱动三个模块入手&#xf…