当前位置: 首页 > news >正文

论文速读:面向单阶段跨域检测的域自适应YOLO(ACML2021)

 原文标题:Domain Adaptive YOLO for One-Stage Cross-Domain Detection

中文标题:面向单阶段跨域检测的域自适应YOLO

1Abstract

域转移是目标检测器在实际应用中推广的主要挑战。两级检测器的域自适应新兴技术有助于解决这个问题。然而,两级检测器由于其耗时较长,并不是工业应用的首选。本文提出了一种新颖的域自适应 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

有时我们可能会需要在遍历时使用虚拟标签包裹内容&#xff0c;而不使用实际标签 &#xff0c;这种时候会有一个问题&#xff0c;就是虚拟标签无法加key&#xff0c;这样控制台会一直有警告。 {[1,2,3,4].map(v><><div></div><div></div><…...

大数据生态守护:Hadoop的深度保护策略

PART 1 从Hadoop运行原理透视数据保护需求 1、Hadoop的定义与范畴 Hadoop&#xff0c;狭义而言&#xff0c;是一个专为大数据设计的分布式存储与计算平台&#xff0c;其核心组件包括HDFS&#xff08;Hadoop分布式文件系统&#xff09;、MapReduce&#xff08;分布式计算框架&a…...

代码欣赏之:此题易错在 a+b 非要写成 a-fabs(b).因为这样就成了浮点值了,得不到准确数

代码欣赏之&#xff1a;此题易错在 ab 非要写成 a-fabs(b).因为这样就成了浮点值了&#xff0c;得不到准确数 7-23 小孩子才做选择&#xff0c;大人全都要 #include<stdio.h> #include<math.h> int main() {int a,b;scanf("%d %d",&a,&b);if(a&…...

ECharts饼图-环形图,附视频讲解与代码下载

引言&#xff1a; 在数据可视化的世界里&#xff0c;ECharts凭借其丰富的图表类型和强大的配置能力&#xff0c;成为了众多开发者的首选。今天&#xff0c;我将带大家一起实现一个饼图图表&#xff0c;通过该图表我们可以直观地展示和分析数据。此外&#xff0c;我还将提供详…...

arcgis js 怎么加载geoserver发布的wms服务

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

前端_006_Vue2

文章目录 vue常用属性生命周期模版语法自定义组件全局注册 单文件组件路由 本文全部参考Vue2 简介&#xff1a;Vue是一个数据响应式&#xff0c;MVVM模型的JS框架 官网&#xff1a;https://v2.cn.vuejs.org/v2/guide/ API&#xff1a;https://v2.cn.vuejs.org/v2/api/#method…...

论多端数据互通网游的架构评估

摘要 在2023年&#xff0c;笔者参与了一款多端数据互通网络游戏的架构评估工作&#xff0c;并担任评估团队的核心成员。该游戏支持PC、移动设备和游戏机等多种终端&#xff0c;实现了数据的实时互通。本文通过该项目的评估实践&#xff0c;探讨了多端数据互通网游架构评估的关…...

网页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 编程基础&#xff1a;深入理解 pair&#xff08;键值对&#xff09; 和 unordered_map&#xff08;无序映射&#xff09; 在 C 标准库中&#xff0c;pair&#xff08;键值对&#xff09;和 unordered_map&#xff08;无序映射&#xff09;是两种常用的数据结构&#xff0c;它…...

高德动态地图

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程序员节|征文# 微服务架构作为现代软件开发中的热门技术架构&#xff0c;因其灵活性和可扩展性&#xff0c;逐渐成为许多企业系统设计的首选。以下是关于微服务的一些学习笔记&#xff0c;涵盖微服务的核心概念、优缺点、设计原则以及常用工具等方面。 1. 微服务是什么&…...

代码优化之简化if臃肿的判断条件

简化if判断条件 方法1&#xff1a; #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 的全方位指南

前言 在人工智能的浪潮中&#xff0c;语音识别技术正逐渐成为我们日常生活中不可或缺的一部分。随着 OpenAI 的 Whisper 模型的推出&#xff0c;语音转文本的过程变得前所未有的简单和高效。无论是从 YouTube 视频中提取信息&#xff0c;还是将播客内容转化为文本&#xff0c;…...

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手机恢复出厂设置 &#xff0c; 或者 线刷 enchilada_22_K.52_210716_repack--HOS-10.0.11.zip &#xff1a; https://gitee.com/OnePlus6-brick-enchilada_22_K_52_210716_repack-HOS-10_0_11-zip OnePlus6Hydrogen_22…...

偷懒总结篇|贪心算法|动态规划|单调栈|图论

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

C语言初阶七:C语言操作符详解(1)

#1024程序员节|征文# 这篇文章是对之前文章中操作符的补充&#xff0c;可以看之前的文章&#xff1a;C语言初阶&#xff1a;六.算数操作_如何用编程表示除法-CSDN博客 C语言操作符是用于执行各种运算和操作的符号。包括算术操作符&#xff08;如、-、*、/、%&#xff09;&#…...

GO excelize 读取excel进行时间类型转换(自动转换)

GO excelize 读取excel进行时间类型转换&#xff08;自动转换&#xff09; 需求分析 需求&#xff1a;如何自动识别excel中的时间类型数据并转化成对应的 "Y-m-d H:i:s"类型数据。 分析&#xff1a;excelize在读取excel时&#xff0c;GetRows() 返回的都是字符串类…...

【算法与数据结构】二分查找思想

#1024程序员节&#xff5c;征文# 正文&#xff1a; 二分查找&#xff08;binary search&#xff09;是一种基于分治策略的高效搜索算法。它利用数据的有序性&#xff0c;每轮缩小一半搜索范围&#xff0c;直至找到目标元素或搜索区间为空为止&#xff0c;其实有时候数据没有序…...

PHP PDO:安全、灵活的数据持久层解决方案

PHP PDO&#xff1a;安全、灵活的数据持久层解决方案 PHP PDO&#xff08;PHP Data Objects&#xff09;是一个轻量级的、具有兼容接口的数据持久层抽象层。它提供了一个统一的API来访问多种数据库系统&#xff0c;如MySQL、PostgreSQL、SQLite、Oracle等。PDO扩展在PHP 5.1.0…...

九、Linux实战案例:项目部署全流程深度解析

Linux实战案例&#xff1a;项目部署全流程深度解析 在当今信息技术领域&#xff0c;Linux服务器凭借其卓越的稳定性、安全性以及强大的性能表现&#xff0c;被广泛应用于各类项目部署场景之中。本文将全面深入地介绍如何将一个项目成功部署至Linux服务器的完整流程&#xff0c…...

GIS常见前端开发框架

#1024程序员节&#xff5c;征文# 伴随GIS的发展&#xff0c;陆续出现了众多开源地图框架&#xff0c;这些地图框架与众多行业应用融合&#xff0c;极大地拓展了GIS的生命力&#xff0c;这里介绍几个常见的GIS前端开发框架&#xff0c;排名不分先后。 1.Leaflet https://leafl…...

Java | Leetcode Java题解之第506题相对名次

题目&#xff1a; 题解&#xff1a; class Solution {public String[] findRelativeRanks(int[] score) {int n score.length;String[] desc {"Gold Medal", "Silver Medal", "Bronze Medal"};int[][] arr new int[n][2];for (int i 0; i &…...

数据结构 - 堆

今天我们将学习新的数据结构-堆。 01定义 堆是一种特殊的二叉树&#xff0c;并且满足以下两个特性&#xff1a; &#xff08;1&#xff09;堆是一棵完全二叉树&#xff1b; &#xff08;2&#xff09;堆中任意一个节点元素值都小于等于&#xff08;或大于等于&#xff09;左…...

html----图片按钮,商品展示

源码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>图标</title><style>.box{width:…...

YOLOv11改进策略【卷积层】| ECCV-2024 小波卷积WTConv 增大感受野,降低参数量计算量,独家创新助力涨点

一、本文介绍 本文记录的是利用小波卷积WTConv模块优化YOLOv11的目标检测网络模型。WTConv的目的是在不出现过参数化的情况下有效地增加卷积的感受野,从而解决了CNN在感受野扩展中的参数膨胀问题。本文将其加入到深度可分离卷积中,有效降低模型参数量和计算量,并二次创新C3…...

redis高级篇之redis源码分析List类型quicklist底层演变 答疑159节

(1)ziplist压缩配置:list-compress-depth 0 表示一个quicklist两端不被压缩的节点个数。这里的节点是指quicklist双向链表的节点&#xff0c;而不是指ziplist里面的数据项个数参数list-compress-depth的取值含义如下: 0:是个特殊值&#xff0c;表示都不压缩。这是Redis的默认值…...

Elasticsearch 与 Lucene 的区别和联系

Elasticsearch 与 Lucene 的区别和联系 Elasticsearch 与 Lucene 的区别和联系一、知识背景Elasticsearch 简介Lucene 简介 二、Elasticsearch 和 Lucene 的区别适用场景性能优势和劣势架构设计的异同点 三、Elasticsearch和Lucene的联系四、Elasticsearch和Lucene的应用案例及…...

wordpress迁移换域名/百度指数下载手机版

用visualvm远程监视java进程的过程&#xff0c;假设远程机器的 ip192.168.1.2351.首先必须在远程机器上面启动jstatd这个后台进程。它位于JDK安装路径的bin目录里面。配置java安全访问&#xff0c;在jstatd所在的目录的下新建文件jstatd.all.policy,在我的机器上是/usr/java/jd…...

长沙中小企业网站建设/电商软文范例

dojo jquery该帖子现在已过时&#xff0c;仅保存在此处仅供娱乐之用。 总览 jQuery和DOJO都是JavaScript开发框架/程序包&#xff0c;它们提供的功能使JavaScript代码的编写更加轻松&#xff0c;快捷和高效。 两者都有优点和缺点&#xff0c;优点和缺点&#xff0c;但是在jQu…...

33岁改行做网站建设/营销型网站建设的步骤流程是什么

&#xff08;资料源于MSDN&#xff0c;本文仅对其进行翻译、批注。其链接为&#xff1a;http://msdn.microsoft.com/en-us/library/windows/desktop/ms644959%28vvs.85%29.aspx本文链接&#xff1a;http://blog.csdn.net/wlsgzl/article/details/37648721转载请注明出处并保持文…...

网站如何做收款二维码/友链对网站seo有帮助吗

启动靶场访问如下&#xff0c;输入1&#xff0c;报错&#xff0c;可知是字符型注入&#xff0c;变量由单引号包裹 输入1 and 11 --&#xff0c;显示正常 先直接用sqlmap注入一下&#xff0c;显示存在注入&#xff0c;但是始终注入不出来数据库&#xff0c;“[ERROR] unable to …...

栾城seo整站排名/中国十大企业培训公司

成员对象和封闭类 有成员对象的类叫封闭类 class CTyre //轮胎类 { private:int radius; //半径int width; //宽度 public:CTyre(int r, int w):radius(r), width(w) {} };class CEngine //引擎类 { };class CCar //汽车类&#xff0c;封闭类 { private:int price…...

wordpress的安装包/宁波seo在线优化公司

后端以Integer类型接受,前端传来字符串"null"&#xff0c;后端怎么做处理? /*** 获取当前用户功能菜单及权限* return*/ ResponseBody RequestMapping(value {"/mobBaseService/home/queryCompanyMenuFunctionName"}, method RequestMethod.GET) publi…...