论文速读:面向单阶段跨域检测的域自适应YOLO(ACML2021)
原文标题:Domain Adaptive YOLO for One-Stage Cross-Domain Detection
中文标题:面向单阶段跨域检测的域自适应YOLO
1、Abstract
域转移是目标检测器在实际应用中推广的主要挑战。两级检测器的域自适应新兴技术有助于解决这个问题。然而,两级检测器由于其耗时较长,并不是工业应用的首选。本文提出了一种新颖的域自适应 YOLO(DA-YOLO)来提高单级检测器的跨域性能。图像级特征对齐用于严格匹配纹理等局部特征,并松散地匹配照明等全局特征。提出多尺度实例级特征对齐以有效减少实例域偏移,例如目标外观和视点的变化。对这些域分类器进行共识正则化以帮助网络生成域不变检测。我们在 Cityscapes、KITTI、SIM10K 等流行数据集上评估我们提出的方法。在不同的跨域场景下进行测试时,结果表明有显著的改进。
关键词:域转移、域适应、单阶段检测器、YOLO
2、Introduction
2.1、目标检测面临的挑战
目标检测旨在对给定图像中感兴趣的目标进行定位和分类。近年来,自深度卷积神经网络(CNN)出现以来,大量成功的目标检测模型一直被提出。然而,一个被称为“领域转移”的新挑战开始困扰计算机视觉社区。域漂移是指源域和目标域之间的分布不匹配导致性能下降。它是由图像的变化引起的,包括不同的天气条件,相机的视角,图像质量等。以自动驾驶为例,一个可靠的目标检测模型应该在任何情况下都能稳定地工作;然而训练数据通常是在视野清晰的晴天收集的,而实际上汽车可能会遇到恶劣的天气条件,包括雪和雾,导致能见度受到影响,此外相机的位置在测试环境中可能会有所不同,从而导致视点变化。
2.2、领域自适应的发展
理想情况下,在目标域上重新标记是解决域转移问题的最直接的方法。但这种手工注释会带来昂贵的时间和经济成本。出于对无需注释方法的期望,领域适应努力消除领域差异,而无需对目标领域进行监督。领域自适应(DA)首先被广泛应用于分类任务中,使用最大平均差异(MMD)等距离度量单位来衡量域偏移,并监督模型学习领域不变特征。后来,使用领域分类器和梯度反转层(GRL)的对抗训练策略被证明是一种更有效的学习鲁棒跨领域特征的方法。在训练阶段,领域分类器对源域和目标域数据的区分能力逐渐提高,骨干特征提取器学习生成更多的领域不可区分特征。最后,特征提取器能够生成域不变特征。
2.3、域自适应目标检测
1)用于目标检测的 DA 继承并扩展了相同的对抗训练思想。与分类 DA 类似,检测 DA 对骨干特征提取器采用对抗性训练。然而除了分类之外,目标检测器还需要对每个感兴趣的物体进行定位和分类。因此使用一个额外的域分类器对每个实例特征进行分类,以促使特征提取器在实例级别上是域不变的。这种对抗性检测自适应方法是由Chen等人(2018)首创的,他们使用Faster R-CNN作为基本检测器模型。随后的研究遵循了这一惯例,Faster R-CNN成为了主要的领域自适应检测器。此外,Faster R-CNN的两阶段特性使得它非常适合在实例级特征上应用域自适应。区域建议网络(RPN)和兴趣区域池(ROI)产生的统一实例级特征便于领域分类器直接使用。
2)尽管 Faster R-CNN 很受欢迎并且可以方便地利用区域提议网络(RPN),但在时间性能至关重要的现实应用中,Faster R-CNN 并不是理想选择。与 Faster R-CNN 相比,YOLO (2016)是一种具有代表性的单阶段检测器,由于其惊人的实时性能、简单性和便携性而成为更有利的选择。YOLOv3 (2018)是YOLO的流行版本,广泛应用于工业领域,包括视频监控、人群检测和自动驾驶。然而,对单阶段检测器的域自适应研究仍然很少。
2.4、本文提出的方法
在本文中,我们介绍了一种新颖的域自适应 YOLO(DA-YOLO),它使用单级检测器 YOLOv3 执行域自适应。该模型的总体架构如下图1所示。首先,我们提出回归图像对齐(Regressive Image Alignment,RIA)来减少图像级别的域差异。RIA 在 YOLOv3 特征提取器的不同层使用三个域分类器来预测特征图的域标签。然后,它采用对抗性训练策略(adversarial training strategy)来对齐图像级别特征。通过为这些图像级域分类器分配不同的权重,RIA 严格对齐局部特征并宽松地对齐全局特征。其次,我们提出多尺度实例对齐(Multi-Scale Instance Alignment,MSIA)用于实例级域适应。由于没有两阶段检测器中的区域建议网络RPN,MSIA 利用了 YOLOv3 的三尺度检测。MSIA 使用三个域分类器进行这些检测,以对齐实例级特征。最后,我们将多级一致性正则化(Multi-Level Consensus Regularization,MLCR)应用于域分类器,以驱动网络产生域不变检测。
2.5、本文贡献
综上所述,我们在本文中的贡献有三个方面:
1)我们设计了两个新的领域自适应模块来解决领域移位问题。
2)我们提出了一种用于一级检测器的领域自适应范式。 据我们所知,这是第一个提出统一一级检测器的图像级和实例级自适应的工作。
3)利用Cityscapes、Foggy Cityscapes、KITTI、SIM10K数据集进行了广泛的领域自适应实验。结果表明,本文提出的自适应YOLO在不同的跨域场景下是有效的。
3、Related Works
3.1、Object Detection
随着深度神经网络的应用,目标检测方法蓬勃发展。它们大致可分为两类:两阶段法和单阶段法。R-CNN系列是两阶段检测器的代表,首先生成兴趣区域提案,然后对其进行分类。同时,YOLO作为单阶段检测器的代表,以其实时性成为应用广泛的一种检测器。YOLOv2 (2017) 和YOLOv3 (2018)是作为增量改进引入的,集成了残差块等有效技术。YOLOv4 (2020)是各种技巧的组合,可以实现最佳的速度和准确性。
3.2、Domain Adaptation
领域自适应旨在通过使用带注释的源域数据来提高模型在目标领域上的性能。首先通过匹配源域和目标域的边缘分布和条件分布,将其应用到分类任务中。以往工作包括TCA(2010)、JDA(2013)、JAN(2017)。随着生成式对抗网络GAN(2014) 的出现,对抗训练策略因其有效性而受到欢迎。事实证明,该策略在学习领域不变特征方面非常有帮助,并导致了一系列对抗性领域自适应的研究,包括DANN(2016),DSN(2016),SAN(2018)等等。
3.3、Domain Adaptation for Object detection
Domain Adaptive Faster R-CNN(2018)使用两阶段检测器Faster R-CNN探索了目标检测的对抗性域自适应。后续若干研究遵循了两阶段的范式,并做出了相当大的改进。尽管两级检测器便于域自适应,但在工业应用中很少使用。在实际应用中,单阶段探测器具有无可比拟的速度性能。因此,将单阶段检测器与领域自适应相结合具有重要的意义,但相关研究很少。这种情况促使我们开展本文提出的工作。
关于单阶段检测器的域自适应的研究有限。YOLO in the Dark Sasakawa and Nagahara (2020) 通过合并多个预先训练的模型来适应 YOLO。MS-DAYOLO (2021) 对 YOLO 模型采用多尺度图像级自适应。然而,它没有考虑实例级自适应,而实例级自适应被证明是同等甚至是更重要的。实例特征适应是一项更具挑战性的任务,因为在单阶段检测器中没有两阶段检测器中的区域建议网络RPN。在本文中,我们通过使用 YOLO 的检测来解决这个问题。
4、Conclusion
本文提出了一种有效的单阶段跨域自适应DA-YOLO算法。与以往的方法相比,我们在单阶段检测器上建立了域自适应模型。此外,我们还成功地为单阶段检测器引入了实例级自适应。在多个跨域数据集上的充分实验表明,我们的方法优于先前基于Faster R-CNN的方法,并且提出的三个域自适应模块都是有效的。
相关文章:

论文速读:面向单阶段跨域检测的域自适应YOLO(ACML2021)
原文标题:Domain Adaptive YOLO for One-Stage Cross-Domain Detection 中文标题:面向单阶段跨域检测的域自适应YOLO 1、Abstract 域转移是目标检测器在实际应用中推广的主要挑战。两级检测器的域自适应新兴技术有助于解决这个问题。然而,两…...
React中在map遍历中,给虚拟标签(<></>)加key
有时我们可能会需要在遍历时使用虚拟标签包裹内容,而不使用实际标签 ,这种时候会有一个问题,就是虚拟标签无法加key,这样控制台会一直有警告。 {[1,2,3,4].map(v><><div></div><div></div><…...
大数据生态守护:Hadoop的深度保护策略
PART 1 从Hadoop运行原理透视数据保护需求 1、Hadoop的定义与范畴 Hadoop,狭义而言,是一个专为大数据设计的分布式存储与计算平台,其核心组件包括HDFS(Hadoop分布式文件系统)、MapReduce(分布式计算框架&a…...
代码欣赏之:此题易错在 a+b 非要写成 a-fabs(b).因为这样就成了浮点值了,得不到准确数
代码欣赏之:此题易错在 ab 非要写成 a-fabs(b).因为这样就成了浮点值了,得不到准确数 7-23 小孩子才做选择,大人全都要 #include<stdio.h> #include<math.h> int main() {int a,b;scanf("%d %d",&a,&b);if(a&…...

ECharts饼图-环形图,附视频讲解与代码下载
引言: 在数据可视化的世界里,ECharts凭借其丰富的图表类型和强大的配置能力,成为了众多开发者的首选。今天,我将带大家一起实现一个饼图图表,通过该图表我们可以直观地展示和分析数据。此外,我还将提供详…...

arcgis js 怎么加载geoserver发布的wms服务
arcgis js api加载wms服务,官方的参考样例: WMSLayer | Sample Code | ArcGIS Maps SDK for JavaScript 4.30 | Esri Developer 按照官方样例加载比较奇怪,我们平常习惯用url或者json的方式加载,稍微改一下就行,如下…...

前端_006_Vue2
文章目录 vue常用属性生命周期模版语法自定义组件全局注册 单文件组件路由 本文全部参考Vue2 简介:Vue是一个数据响应式,MVVM模型的JS框架 官网:https://v2.cn.vuejs.org/v2/guide/ API:https://v2.cn.vuejs.org/v2/api/#method…...
论多端数据互通网游的架构评估
摘要 在2023年,笔者参与了一款多端数据互通网络游戏的架构评估工作,并担任评估团队的核心成员。该游戏支持PC、移动设备和游戏机等多种终端,实现了数据的实时互通。本文通过该项目的评估实践,探讨了多端数据互通网游架构评估的关…...

网页HTML编写练习:华语榜中榜
网页效果 HTML代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice…...
C++ 编程基础:深入理解 `pair`(键值对) 和 `unordered_map`(无序映射)
C 编程基础:深入理解 pair(键值对) 和 unordered_map(无序映射) 在 C 标准库中,pair(键值对)和 unordered_map(无序映射)是两种常用的数据结构,它…...

高德动态地图
1.搭建页面结构 <div class"dataAllBorder02" style"position: relative; overflow: hidden;"><div class"map_title_box" style"height: 6%"><div class"map_title_innerbox"><div class"map_t…...

springboot集成camunda学习与使用
springboot集成camunda学习与使用.md 0、前言一、Spring Boot 集成camunda流程引擎1.新建全新的springboot工程2.添加pom.xml依赖3.启动Spring Boot工程4.切换成mysql数据库5.设计并部署一个BPMN流程6.camunda流程引擎测试6.1 通过camunda web控制台测试6.2 通过camunda rest接…...

微服务架构学习笔记
#1024程序员节|征文# 微服务架构作为现代软件开发中的热门技术架构,因其灵活性和可扩展性,逐渐成为许多企业系统设计的首选。以下是关于微服务的一些学习笔记,涵盖微服务的核心概念、优缺点、设计原则以及常用工具等方面。 1. 微服务是什么&…...
代码优化之简化if臃肿的判断条件
简化if判断条件 方法1: #include <iostream> #include <vector> #include <functional>// 封装参数的结构体 struct ConditionParams {int facenum;double zoomRatio;int iso;double facelv;int face_w;double qualityScore;int xx;int yy; };//…...

【OpenAI】第六节(语音生成与语音识别技术)从 ChatGPT 到 Whisper 的全方位指南
前言 在人工智能的浪潮中,语音识别技术正逐渐成为我们日常生活中不可或缺的一部分。随着 OpenAI 的 Whisper 模型的推出,语音转文本的过程变得前所未有的简单和高效。无论是从 YouTube 视频中提取信息,还是将播客内容转化为文本,…...
Docker 下备份恢复oracle
1.docker导出容器镜像 ##docker save -o 导出后的镜像名称.tar 容器名称|镜像id docker save -o oracle_11g.tar 3fa112fd3642 2.下载镜像上传镜像略 3.加载镜像 ##docker load -i <archive_file> docker load -i oracle11g11201.tar 4.添加版本号…...
oneplus3t-android_framework
0.确认oneplus6 root正常 oneplus6 root材料 oneplus6手机恢复出厂设置 , 或者 线刷 enchilada_22_K.52_210716_repack--HOS-10.0.11.zip : https://gitee.com/OnePlus6-brick-enchilada_22_K_52_210716_repack-HOS-10_0_11-zip OnePlus6Hydrogen_22…...

偷懒总结篇|贪心算法|动态规划|单调栈|图论
由于这周来不及了,先过一遍后面的思路,具体实现等下周再开始详细写。 贪心算法 这个图非常好 122.买卖股票的最佳时机 II(妙,拆分利润) 把利润分解为每天为单位的维度,需要收集每天的正利润就可以,收集正利润的区间…...

C语言初阶七:C语言操作符详解(1)
#1024程序员节|征文# 这篇文章是对之前文章中操作符的补充,可以看之前的文章:C语言初阶:六.算数操作_如何用编程表示除法-CSDN博客 C语言操作符是用于执行各种运算和操作的符号。包括算术操作符(如、-、*、/、%)&#…...
GO excelize 读取excel进行时间类型转换(自动转换)
GO excelize 读取excel进行时间类型转换(自动转换) 需求分析 需求:如何自动识别excel中的时间类型数据并转化成对应的 "Y-m-d H:i:s"类型数据。 分析:excelize在读取excel时,GetRows() 返回的都是字符串类…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:
一、属性动画概述NETX 作用:实现组件通用属性的渐变过渡效果,提升用户体验。支持属性:width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项: 布局类属性(如宽高)变化时&#…...

边缘计算医疗风险自查APP开发方案
核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力
引言: 在人工智能快速发展的浪潮中,快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型(LLM)。该模型代表着该领域的重大突破,通过独特方式融合思考与非思考…...
Nginx server_name 配置说明
Nginx 是一个高性能的反向代理和负载均衡服务器,其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机(Virtual Host)。 1. 简介 Nginx 使用 server_name 指令来确定…...

DBAPI如何优雅的获取单条数据
API如何优雅的获取单条数据 案例一 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下: select id, name, age from user where id #{id}API默认返回的数据格式是多条的,如下: {&qu…...

ArcGIS Pro制作水平横向图例+多级标注
今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作:ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等(ArcGIS出图图例8大技巧),那这次我们看看ArcGIS Pro如何更加快捷的操作。…...

基于Java+MySQL实现(GUI)客户管理系统
客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息,对客户进行统一管理,可以把所有客户信息录入系统,进行维护和统计功能。可通过文件的方式保存相关录入数据,对…...

Linux 内存管理实战精讲:核心原理与面试常考点全解析
Linux 内存管理实战精讲:核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用,还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现企业微信功能
1. 开发环境准备 安装DevEco Studio 3.1: 从华为开发者官网下载最新版DevEco Studio安装HarmonyOS 5.0 SDK 项目配置: // module.json5 {"module": {"requestPermissions": [{"name": "ohos.permis…...