论文速读:YOLO-G,用于跨域目标检测的改进YOLO(Plos One 2023)

原文标题:YOLO-G: Improved YOLO for cross-domain object detection

中文标题:YOLO-G:用于跨域目标检测的改进YOLO

论文地址: 百度网盘 请输入提取码  提取码:z8h7

代码地址: GitHub - airy975924806/yolo-G

1Abstract

跨域目标检测是智能检测模型研究中的一个关键问题。与许多基于双阶段检测模型的改进算法不同,我们尝试了另一种方法。本文引入了一种简单高效的单阶段模型,综合考虑了推理效率和检测精度,扩大了承担跨域目标检测问题的范围。我们将这种基于梯度反转层的模型命名为YOLO-G,大大提高了跨域场景下的目标检测精度。具体来说,我们在主干之后添加了一个特征对齐分支,其中附加了梯度反转层和分类器。计算量只增加了一点点,性能得到了更高的提高。通过若干实验表明,与大多数最先进的(SOTA)算法相比,所提出的模型实现了更好的平均精度(mAP)。此外,还对4个部件进行了消融实验,以验证模型的可靠性。

2、Introduction

2.1、目标检测面临的挑战

深度卷积模型显著提高了目标检测的精度。然而,这些模型受到训练数据的严重约束。跨域目标检测要求模型在完全标注的训练集中完成训练过程,然后应用于来自不同域的验证。由于这样的领域差距,可能会出现糟糕的结果甚至退化。在现实世界中,这样的差异,比如照明条件、天气条件、视角、设备差异等是很常见的。此外,提供无限的训练数据是不可能的。也就是说,收集更多的数据并不是提高模型能力和增强模型鲁棒性的可靠方法。

2.2、针对跨域目标检测的方法

2.2.1、无监督方法

针对有限标记训练数据下的跨域目标检测问题,DAF首次关注到这一问题,设计了一种基于Faster R-CNN的改进双阶段检测模型,采用无监督训练的方式提升其在变化天气条件下的检测能力。随后,有人采用了添加了指导分支、融合生成对抗模型等方法,获得了更好的能力。

2.2.2、半监督方法

也有人采用了半监督的方法,如调整训练策略,增加知识蒸馏机制,或者引入迭代训练方式,这些都是为了逐步提高模型的跨域检测能力。然而这些方法大大增加了计算预算,延长了训练时间。

2.2.3、基于YOLO的跨域检测

与双阶段检测模型相比,YOLO在速度、精度、应用等方面更具优势。目前基于YOLO的跨域检测模型正在迅速发展。聚焦跨域目标检测问题,本文以YOLOv5-L模型为基线;特别是,我们采用了双阶段模型中广泛使用的特征对齐思想,并添加无监督对抗训练分支来提高模型的自适应能力;通过采用这样一个简单而高效的分支,该模型获得了全新的能力。具体来说,为了实现自适应特征对齐并减少不同图像之间的域差距,我们将对抗性训练机制引入模型参数更新过程。为了减轻负担,我们使用基于全卷积网络和全局平均最大池化的朴素三层分类器,并进行梯度反向操作。与密集线性层相比,YOLO-G只是稍微增加了计算量,但精度大大提高。为了在跨域目标检测任务中验证所提出的模型,本文在6个基准集下进行了大量的实验;结果表明,YOLO-G比一系列半监督和双阶段SOTA模型具有更好的检测精度。

2.3、本文贡献

1)对于跨域目标检测任务,我们通过综合实验验证了YOLO模型在跨域目标检测任务中的可用性。本文消融实验表明,在仅源条件下,YOLOV5-L模型可以与许多SOTA算法进行比较。

2)YOLO-G模型是基于YOLOV5-L设计的。在基线模型中加入了一个简洁高效的无监督对抗训练分支。扩大了跨领域模型设计的范围,改变了以往仅限于双阶段模型的情况。

3)我们进行了定性和定量实验,并在6个跨域基准测试中比较了10种算法。为了充分说明模型的可信度,还进行了2个方面4和个因素的消融实验。实验结果表明,该模型确实取得了较好的检测效果。

3、Related work

3.1、Object detection

目标检测模型作为计算机视觉研究的重要内容,近年来在深度学习技术的支持下得到了迅速发展。其中,单阶段检测模型以 YOLO 和 SSD 为代表。特别是YOLO模型已经逐渐发展成为一个推理速度快、精度准确、部署简单的丰富系列。以Mask R-CNN和Fast R-CNN为代表的双阶段检测模型在学术研究中占有重要地位,因为模型采用了分离ROI区域生成和分类判别的过程,使得模型具有较高的可塑性。由于采用了更精细的ROI搜索策略,两阶段模型在相同条件下具有更高的检测精度。 目前,随着transformer的应用,基于transformer的更大参数规模的目标检测模型大放异彩,显示出良好的发展前景。在实际部署场景中,YOLO系列模型具有更好的兼容性。因此,综合考虑任务需求、应用场景和推理速度,本文选择YOLOv5-L模型作为基准,并对其进行改进,以适应跨域目标检测任务。

3.2、Cross-domain

DAF创造性地利用双阶段检测模型解决了跨域目标检测问题,提出了一种基于全局特征对齐和目标特征对齐的处理方法。受其启发,后续的大多数研究都基于双阶段检测模型。少数研究,SWDA提出使用增强的局部特征和全局特征作为辅助特征对齐,GPA设计了基于类特征对齐的检测框架,ATF和PA-ATF尝试使用多分支监督训练来提高跨域目标检测能力。随着相关研究内容的不断深入,已经有了基于单阶段检测模型的尝试,如 EPMDA 将FCOS 模块集成到YOLO主干中,以提高其在跨域图像中提取目标特征的能力,SSDA-YOLO 在基于YOLO的跨域目标检测模型中加入 CUT 和知识蒸馏机制,也是基于YOLO。本文以单阶段检测模型为基准,探索跨域目标检测任务。通过本文的实验研究表明,借助有限计算量的功能分支,YOLO-G提高了YOLO在跨域目标检测任务中的能力。并且在某些任务中,结果远高于一些双阶段检测模型。

3.3、Cross-domain detection

跨域检测任务在发展过程中演化出全监督、半监督、无监督等多种路径。

1全监督方法是指构建目标领域的全标注数据;该方法通过收集和标注数据增强,达到提高泛化能力的目的,然而这会带来巨大的劳动力。在实际应用场景中,无法收集所有可能场景的数据,因此这种方法并不可取。

2半监督方法提出使用部分标记的数据来指导训练过程;他们主要将训练过程分为多个阶段。首先,训练具有完全标记的源域数据的初始模型,然后通过预训练的模型创建目标域数据上的伪标签。设置置信度阈值后,迭代地将检测到的充分准备的目标域数据添加到训练集中。逐步引导模型提高泛化能力,但该方法受到初始模型检测能力的限制。很多情况下,初始模型很难提供足够有效的伪标签,导致迭代过程难以继续下去。

3无监督方法利用深度学习模型本身强大的自学习能力,通过设置简单的边界条件甚至提供属于目标域的未标记数据,模型可以独立学习识别目标的关键特征,在实现上更加简洁高效。

受这些原理的启发,本文在YOLOV5-L模型的基础上,通过增加无监督特征对齐函数分支,提出了一种简单、准确的跨域目标检测模型。

4、Discussion

YOLO-G在跨域目标检测方面的能力大大增强。但也存在一个严重的问题,即YOLO-G在考虑小物体时表现不佳。YOLO是一个基于锚点的模型,因此要确定一个适合所有目标的锚点是非常困难的,由于不同目标的大小和形状各异,为所有目标选择一个“最适合”的锚点是一个挑战。有些目标可能与预定义的锚点形状匹配得很好,而其他目标可能匹配得不好。特别是当数据集中的小目标较少时,如果没有焦损失函数的帮助,模型可能会偏向于检测那些较大的、容易被检测到的目标。焦点损失(focal loss)是一种损失函数,它专门为解决类别不平衡问题而设计,特别是在目标检测任务中;它通过减少对容易分类样本的关注,增加对难以分类样本的关注,来鼓励模型关注那些难以检测的目标(如小目标);这有助于模型更好地学习检测所有大小的目标。总之,在实际应用中还有很多需要进一步探索的地方。

5、Conclusion

为了缓解跨域目标检测问题,本文分析了主流算法模型的特点,在YOLOV5的基础上提出了一种简单高效的YOLO-G模型。通过引入特征对齐分支和对抗训练,提高了主干模型在提取目标特征方面的一致性,增强了模型的泛化性,实现了更好的跨域检测能力。我们还组织了9组跨域对比实验,本文提出的YOLO-G模型达到了超越一系列SOTA模型的精度,表明其在跨域目标检测任务中具有更好的应用前景。

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

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

相关文章

使用js-enumerate报错Cannot set properties of undefined

环境 node v16.20.2react 18.3.1react-scripts 5.0.1 按照最新 npx create-react-app my-app 创建出来的新项目,引入 js-enumerate 库后运行报错。 报错 Uncaught runtime errors:ERROR Cannot set properties of undefined (setting Enum) TypeError: Cannot se…

【electron7】调试对话图片的加密处理

1.图片加解密的公共数据&#xff1a;key、iv等 // 字符串转字节数组的方法 const stringToBytes (str: string) > {let ch 0let st []let re: any[] []for (let i 0; i < str.length; i) {ch str.charCodeAt(i) // get charst [] // set up "stack"do …

基于springboot企业微信SCRM管理系统源码带本地搭建教程

系统是前后端分离的架构&#xff0c;前端使用Vue2&#xff0c;后端使用SpringBoot2。 技术框架&#xff1a;SpringBoot2.0.0 Mybatis1.3.2 Shiro swagger-ui jpa lombok Vue2 Mysql5.7 运行环境&#xff1a;jdk8 IntelliJ IDEA maven 宝塔面板 系统与功能介绍 基…

C++ —— 《模板进阶详解》,typename和class的用法,非类型模板参数,模板的特化,模板的分离编译

目录 1.非类型模板参数 2.模板特化 2.1 概念 2.2 函数模板特化 2.3 类模板特化 2.3.1 全特化 2.3.2 偏特化 3 模板分离编译 3.1 什么是分离编译 3.2 模板的分离编译 4.模板总结 在讲解模板进阶之前&#xff0c;我想先简单单独聊聊class和typename的用法 我们在平时…

goalng框架Gin解析

本文通过案例的形式&#xff0c;说明gin框架的基本用法&#xff0c;主要列举后端的案例&#xff0c;前端和相对简单的知识点未在此分析&#xff1b; 过完案例后可以有个基本的印象&#xff1a;就是封装和简便 package mainimport ("fmt""github.com/gin-gonic/…

博弈论 C++

前置知识 若一个游戏满足&#xff1a; 由两名玩家交替行动在游戏进行的任意时刻&#xff0c;可以执行的合法行动与轮到哪位玩家无关不能行动的玩家判负 则称该游戏为一个公平组合游戏。 尼姆游戏&#xff08;NIM&#xff09;属于公平组合游戏&#xff0c;但常见的棋类游戏&…

前端零基础入门到上班:【Day5】HTML 和 CSS

HTML 和 CSS 的完美结合&#xff1a;从基础到进阶 引言 1. HTML 与 CSS 的基础知识1.1 HTML 概述常用标签 1.2 CSS 概述选择器与属性 1.3 HTML 与 CSS 的基本结合 2. HTML 与 CSS 的基本结合2.1 选择器的使用2.1.1 元素选择器2.1.2 类选择器2.1.3 ID 选择器2.1.4 组合选择器 2.…

ASP.NET Core开发Chatbot API

本文介绍基于ASP.NET Core的Chatbot Restful API开发&#xff0c;通过调用大语言模型的SDK&#xff0c;完成一个简单的示例。并且通过容器化进行部署. 安装 首先需要安装.NET环境&#xff0c;笔者在Ubuntu 22.04通过二进制包进行安装&#xff0c;Windows和Mac下都有installer…

终止,半成收入来自海外,收入可持续性被质疑

芬尼科技终止原因如下&#xff1a;芬尼科技4年期间经历了两次IPO失败&#xff0c;公司半成收入来自海外&#xff0c;然而公司泳池收入面临欧洲地区冲突冲击及德国新节能措施影响。交易所质疑其收入是否具有可持续性。 作者&#xff1a;Eric 来源&#xff1a;IPO魔女 9月25日&a…

grafana 和 prometheus

1. 监控 mysql 数据库 使用 Grafana 配合 Prometheus 对 MySQL 数据库进行监控的步骤主要包括配置 Prometheus、MySQL Exporter 和 Grafana。以下是详细的步骤&#xff1a; 1. 安装 MySQL Exporter MySQL Exporter 是一个 Prometheus 的 Exporter&#xff0c;用于从 MySQL 数…

使用HIP和OpenMP卸载的Jacobi求解器

Jacobi Solver with HIP and OpenMP offloading — ROCm Blogs (amd.com) 作者&#xff1a;Asitav Mishra, Rajat Arora, Justin Chang 发布日期&#xff1a;2023年9月15日 Jacobi方法作为求解偏微分方程&#xff08;PDE&#xff09;的基本迭代线性求解器在高性能计算&#xff…

Webserver(2)GCC

目录 安装GCCVScode远程连接到虚拟机编写代码gcc编译过程gcc与g的区别Xftp连接虚拟机上传文件 安装GCC sudo apt install gcc g查看版本是7.5 touch test.c创建代码 但是在虚拟机中写代码很不方便 VScode远程连接到虚拟机编写代码 gcc test.c -o app在虚拟机中用gcc编译的…

AtCoder ABC376A-D题解

个人觉得 ABC 变得越来越难了/kk/kk/kk 比赛链接:ABC376 Problem A: Code #include <bits/stdc.h> using namespace std; int main(){int N,C;cin>>N>>C;for(int i1;i<N;i)cin>>T[i];int ans0,pre-1e5;for(int i1;i<N;i){if(T[i]-pre>C){…

APP专项测试-冷启动-流量-电量-内存

1、响应时间 1.1怎么获取冷启动时间&#xff08;热启动&#xff0c;就是后台不关后台再次打开&#xff09; 方法一 1.2怎么获取包名 与 启动页 方法三soloPi&#xff1a;启动时间(用户角度出发&#xff0c;页面差异进行计算时间)&#xff1a; 然后默认配置。点击开始录制 1开…

今日头条躺赚流量:自动化新闻爬取和改写脚本

构建一个自动化的新闻爬取和改写系统&#xff0c;实现热点新闻的自动整理和发布&#xff0c;需要分为以下几个模块&#xff1a;新闻爬取、信息解析与抽取、内容改写、自动发布。以下是每个模块的详细实现步骤和代码示例&#xff1a; 1. 新闻爬取模块 目标&#xff1a;从新闻网…

leetcode hot100【LeetCode 146. LRU缓存】java实现

LeetCode 146. LRU缓存 题目描述 设计和实现一个 LRU (Least Recently Used) 缓存机制。它应该支持以下操作&#xff1a; get(key)&#xff1a;如果缓存中存在 key&#xff0c;则返回 value&#xff0c;否则返回 -1。put(key, value)&#xff1a;如果缓存已满&#xff0c;移…

未来汽车驾驶还会有趣吗?车辆动力学系统简史

未来汽车驾驶还会有趣吗&#xff1f;车辆动力学系统简史 本篇文章来源&#xff1a;Schmidt, F., Knig, L. (2020). Will driving still be fun in the future? Vehicle dynamics systems through the ages. In: Pfeffer, P. (eds) 10th International Munich Chassis Symposiu…

高边坡稳定安全监测预警系统解决方案

一、项目背景 高边坡的滑坡和崩塌是一种常见的自然地质灾害&#xff0c;一但发生而没有提前预告将给人民的生命财产和社会危害产生严重影响。对高边坡可能产生的灾害提前预警、必将有利于决策者采取应对措施、减少和降低灾害造成的损失。现有的高边坡监测技术有人工巡查和利用测…

Java基础题:循环求水仙花数

所谓水仙花数&#xff0c;是指一个三位数abc&#xff0c;如果满足 a^3b^3c^3abc&#xff0c;则abc 是水仙花数&#xff0c;此处^表示次方。 分析&#xff1a;因为这里求得的是水仙花的3位数&#xff0c;定义一个方法接收3位数&#xff0c;对每一位进行取值&#xff0c;最后进行…

python3的基本数据类型:字符串的其他操作

一. 简介 前面文章学习了 python3 中字符串的创建&#xff0c;连接与转化。文章如下&#xff1a; 本文继续来学习 python3 中字符串的其他操作。 二. python3 的基本数据类型&#xff1a;字符串的其他操作 1. 字符转义 python3 中使用反斜杠 \ 转义特殊字符&#xff0c;它…