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

news2024/11/26 9:32:41

目录

一、概述

二、背景

三、建议

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 有一个提升。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

FreeRTOS 初识

从这节开始学习FreeRTOS操作系统。 FreeRTOS 介绍 Q: 什么是 FreeRTOS ? A: Free即免费的,RTOS的全称是Real time operating system,中文就是实时操作系统。 注意:RTOS不是指某一个确定的系统,而是指一类操作系统。比…

【Java 并发编程】读写锁 ReentrantReadWriteLock StampLock 详解

读写锁 ReentrantReadWriteLock & StampLock 详解 1. 读写锁1.1 并发场景1.2 什么是读写锁1.3 思考如何自己实现一把锁? 2. ReentrantReadWriteLock2.1 ReentrantReadWriteLock 概述及其基本结构2.2 ReentrantReadWriteLock 的特点2.2.1 读写锁的互斥关系2.2.2 …

springboot实现qq邮箱发送邮件或者验证码

首先我先去qq邮箱或者网易邮箱开通POP3/IMAP/SMTP/Exchange/CardDAV 服务 它在左上角的设置——账户——往下滑就可以找到——然后点击开通 开通后就会得到一串授权码。如下图 接下来直接编写代码 首先我没导入依赖 <!-- 这个是邮箱验证--> <dependency> <group…

IDEA+java+spring+hibernate+jquery+mysql后台管理系统

IDEA javaspringhibernatejquerymysql后台管理系统 一、系统介绍1.环境配置 二、系统展示1. 管理员登录2.修改密码3.我的内容4.我的操作日志5. 我的登陆日志6. 我的登陆授权7. 内容管理8.标签管理9. 搜索词管理10.分类管理11.分类类型12.标签分类13.用户管理14.部门管理15.角色…

elasticsearch在统计存储用量方面的应用

存储介绍 对象存储在现在的项目中应用非常广泛&#xff0c;主要用来存储图片、视频、音频、文件等静态资源&#xff0c;所有云服务厂商基本上都有对象存储&#xff0c;对象存储收费一般 按每月每GB收费&#xff0c;如七牛的0.098 元/GB/月&#xff0c;阿里的0.12元/GB/月。比如…

k8s网络之(一)如何调试容器网络 nsenter

① 背景 ② 三种解决策略 最常见&#xff1a; 镜像为了保持精简化,没有安装网络命令,缺少必要的基础网络软件 ③ pod_id和container_id关系 细节&#xff1a; 一个pod内可以有多个容器,意味者可以有多个容器id说明&#xff1a; docker ps 默认容器id只有前12位案例&#x…

如何理解自动化

目录 1.如何定义自动化 2.自动化给人类带来的福利 3.如何学习自动化 4.自动化潜在的危害 1.如何定义自动化 自动化是指利用计算机、机械、电子技术和控制系统等现代科学技术手段&#xff0c;对各种工业、商业、农业和日常生活中的操作和过程进行自动控制和执行的过程。它旨在…

《博客继续更新说明》

目录 1.博客停更原因2.考研和比赛3.工作和博客题外话 1.博客停更原因 自2022.6.20起&#xff0c;本人CSDN博客断更了&#xff0c;故很多粉丝的私信没有看到&#xff0c;非常抱歉哈&#xff0c;简单叙说下这一年经历&#xff0c;当时大三后期原本想法是直接找嵌入式实习的&#…

怎样用IDEA社区版以及企业版创建spring boot项目?

Spring 的诞生是为了简化 Java 程序的开发的&#xff0c;而 Spring Boot 的诞生是为了简化 Spring 程序开发的 。 Spring Boot 翻译一下就是 Spring 脚手架&#xff0c;什么是脚手架呢&#xff1f;如下图所示&#xff1a; 盖房子的这个架子就是脚手架&#xff0c;脚手架…

脑电信号处理与特征提取——三. 脑电实验设计的原理与实例(古若雷)

三、脑电实验设计的原理与实例 被试间设计的实验结果也有可能是人员不同造成的&#xff0c;所以建议被试内设计。

【力扣每日一题】2023.7.22 柠檬水找零

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码运行结果&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 这是一道模拟题&#xff0c;我们贩卖五美元&#xff08;忒贵了&#xff09;一杯的柠檬水&#xff0c;然后只收取5,10,20面值的钞票…

API自动化测试总结

目录 Jmeter是怎么做API自动化测试的&#xff1f; Jmeter中动态参数的处理&#xff1f; 怎么判断前端问题还是后端问题&#xff1f; 详细描述下使用postman是怎么做API的测试的&#xff1f; 资料获取方法 Jmeter是怎么做API自动化测试的&#xff1f; 1、首先在JMeter里面…

57. 插入区间

题目链接&#xff1a;&#xff1a;力扣 解题思路&#xff0c;因为只插入一个新的区间&#xff0c;所以只需要找到插入的新区见的位置即可&#xff0c;如果与来的区间重叠&#xff0c;则进行合并&#xff0c; 两个区间重叠需要判断的情况比较多&#xff0c;可以判断两个区间不重…

已解决-使用Adobe Acrobat去除PDF水印

这个方法只能去带颜色的水印&#xff0c;灰色的去不了&#xff0c;等我有空时候&#xff0c;再写一篇使用PS去除水印的方法&#xff0c;也非常简单。敬请期待 安装软件 网上下载安装Adobe Acrobat Pro DC 安装Adobe PDF打印机 点击“添加打印机” 选择“我的打印机未列出”…

VCL界面组件DevExpress VCL v23.1 - 全新的Windows 11主题

DevExpress VCL是Devexpress公司旗下最老牌的用户界面套包&#xff0c;所包含的控件有&#xff1a;数据录入、图表、数据分析、导航、布局等。该控件能帮助您创建优异的用户体验&#xff0c;提供高影响力的业务解决方案&#xff0c;并利用您现有的VCL技能为未来构建下一代应用程…

RT-Thread qemu mps2-an385 bsp 移植制作 :环境搭建篇

前言 最近打算系统地研究一下 RT-Thread&#xff0c;包括 RT-Thread BSP 的移植&#xff0c;由于一直在使用 QEMU 进行一些软件功能的验证&#xff0c;qemu 支持很多的CPU 与 开发板&#xff0c;所以想移植一个新的 qemu board 到 RT-Thread&#xff0c;掌握BSP 移植的方法 当…

pytest配置文件:pytest.ini

1. 开始 pytest配置文件可以改变pytest的默认运行方式&#xff0c;它是一个固定的文件名称pytest.ini。 pytest.ini存放路径为项目的根路径。 2. 使用addopts-追加默认参数 我们每次在命令行中执行pytest命令时&#xff0c;如果参数是固定的&#xff0c;可以在pytest.ini进…

OpenCV:图像直方图计算

图像直方图为图像中像素强度的分布提供了有价值的见解。通过了解直方图&#xff0c;你可以获得有关图像对比度、亮度和整体色调分布的信息。这些知识对于图像增强、图像分割和特征提取等任务非常有用。 本文旨在为学习如何使用 OpenCV 执行图像直方图计算提供清晰且全面的指南。…

【Java基础教程】(四十三)多线程篇 · 下:深入剖析Java多线程编程:同步、死锁及经典案例——生产者与消费者,探究sleep()与wait()的差异

Java基础教程之多线程 下 &#x1f539;本节学习目标1️⃣ 线程的同步与死锁1.1 同步问题的引出2.2 synchronized 同步操作2.3 死锁 2️⃣ 多线程经典案例——生产者与消费者&#x1f50d;分析sleep()和wait()的区别&#xff1f; &#x1f33e; 总结 &#x1f539;本节学习目标…

SpringBoot Redis 配置多数据源

Redis 从入门到精通【应用篇】之SpringBoot Redis 配置多数据源 文章目录 Redis 从入门到精通【应用篇】之SpringBoot Redis 配置多数据源1.教程0. 添加依赖1. 配置多个 Redis 连接信息我们将上面的配置改造一下&#xff0c;支持Redis多数据源 2. 配置3. 创建 RedisTemplate 实…