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

DACS: Domain Adaptation via Cross-domain Mixed Sampling 学习笔记

DACS

  • 介绍
  • 方法
    • Naive Mixing
    • DACS
    • ClassMix![在这里插入图片描述](https://img-blog.csdnimg.cn/ca4f83a2711e49f3b754ca90d774cd50.png)
    • 算法流程
    • 实验结果
    • 反思

介绍

近年来,基于卷积神经网络的语义分割模型在众多应用中表现出了显著的性能。然而当应用于新的领域时,这些模型通常不能很好地泛化,特别是从合成数据到真实数据时。本文讨论了无监督域适应(UDA)的问题,即对来自一个源域的标记数据进行训练,同时从目标域的无标记数据进行学习。现有的方法通过对这些无标签图像进行伪标签训练取得了成功。人们提出了多种技术来降低由域转移引起的低质量伪标签的情况,并取得了不同程度的成功。我们提出了DACS:通过跨域混合采样的域适应,它将来自两个域的图像与相应的标签和伪标签混合在一起。除了标签数据本身外,这些混合样本还会被训练。

我们注意到,在现有的纠正错误伪标签的方法中,目标域中的某些图像会过度采样,图像中的低置信度像素会被过滤掉。许多低置信度像素与语义边界上的预测对齐,从而导致那里的训练信号减弱。传统的直接使用混合的方法会导致一些类进行合并。

总结来说:DACS提出了三个创新点。
①引入了一种新的算法,将目标域的图片和源域中的图片进行混合,创造出来一个新的、高扰动的样本
②通过实验证明跨域的图像混合可以很大程度上解决类合并的问题
③在GTA5—>City 取得了sota 的水准

方法

Naive Mixing

在这里插入图片描述
对于朴素的混合方法就是拿目标域的两张图进行混合,然后生成Xm,然后获得其对应的伪标签Ym,然后将源域中的Xs,Ys,和在目标域混合生成的图片再放到一块训练。

DACS

在这里插入图片描述
DACS也是基于上述的混合的思想,不过使用的混合图片一张来自源域一张来自目标域。首先使用网络对目标域的数据生成伪标签,对于混合的方式采用的方式ClassMix,将源域Xs中的图像随机一半类抠出来粘贴到目标域的图片上,然后生成对应的伪标签,此时已知源域图片Xs和对应的标签Ys和混合图片Xm及其对应的标签Ym。

ClassMix在这里插入图片描述

如图所示:获取的B,Sb,A,Sa,通过Sa获得动态的二进制掩码M,随机将A中的一半类粘贴到B得到一个新的混合图Xa,然后将Sa,SB和M获得对应的特征图Ya。

算法流程

在这里插入图片描述
和方法里面的DACS讲解的差不多,先获取源域中的图标和对应的标签,然后获取目标域的图片,通过训练的网络获取对应的伪标签,然后将Xs和Xt通过ClassMix的方式混合,同时将标签也进行混合。然后将生成Xm和源域中的Xs利用网络生成对应的标签,然后去计算对应的交叉熵损失函数,执行反向传播和梯度下降。对于其他的参数在论文中都已经详细给了就不多介绍了。

实验结果

在这里插入图片描述
在这里插入图片描述
上两张图分别是在GTA5和SYNTHIA下的Iou和MIou。可以看出来虽然不是每一项都是sota,但是很多项都是top1。
在这里插入图片描述
为了进一步评估DACS,并更好地理解类合并问题的根源,进行了额外的实验,并在上图中展示。结果显示了论文3.1节中解释的朴素混合,以及仅使用伪标签而不使用任何混合和使用不同的混合策略。从上图可以看出,DACS的性能明显强于朴素混合。如论文3.1节所述,最重要的原因是朴素混合合并了几个类,这极大地影响了整体性能。从表中每个班级的借据可以清楚地看出,其中七个班级的朴素混合分数低于1%。

反思

老文章,但是没搜到别人写的学习笔记,就单纯按照自己所理解和代码中的写了,有不对的地方望指正。论文中提到了ClassMix,但是没有提到那个二进制掩码的地方,我去翻了翻代码发现确实是有相关的步骤,而且最后实验就跟最后论文说的一样用了2个源域的和2个目标域的图进行跑的。(等考完试看完代码再补充更新)

代码链接:https://github.com/vikolss/DACS/blob/master/trainUDA.py

相关文章:

DACS: Domain Adaptation via Cross-domain Mixed Sampling 学习笔记

DACS介绍方法Naive MixingDACSClassMix![在这里插入图片描述](https://img-blog.csdnimg.cn/ca4f83a2711e49f3b754ca90d774cd50.png)算法流程实验结果反思介绍 近年来,基于卷积神经网络的语义分割模型在众多应用中表现出了显著的性能。然而当应用于新的领域时&…...

python并发编程(并发与并行,同步和异步,阻塞与非阻塞)

最近在学python的网络编程,学了socket通信,并利用socket实现了一个具有用户验证功能,可以上传下载文件、可以实现命令行功能,创建和删除文件夹,可以实现的断点续传等功能的FTP服务器。但在这当中,发现一些概…...

【项目】DTO、VO以及PO之间的关系和区别

【项目】DTO、VO以及PO之间的关系和区别 文章目录【项目】DTO、VO以及PO之间的关系和区别1.概念2. 作用1.概念 DTO:DTO是 Data Transfer Object 的缩写,也叫数据传输对象。 PO:PO是 Persistent Object 的缩写,也叫持久化对象。 …...

Nginx介绍

什么是Nginx? Nginx 是一款高性能的 http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师伊戈尔西索夫(Igor Sysoev)所开发,官方测试 nginx 能够支支撑 5 万并发链接&#x…...

你什么档次?敢和我用一样的即时通讯平台WorkPlus?

现今,很多企业越来越青睐私有化部署,尤其是在选择组织内部即时通讯平台的时候,更是会提出私有化部署的需求。究其原因,企业选择私有化部署即时通讯软件完全是出于安全方面考虑。因此,越来越多的企业将眼光望向了本地化…...

学习资源 - 深度学习

文章目录PyTorchNLP语音CV深度学习其它在我过往博客笔记中,每个专项技术,前面我会贴上官网、官方文档、书籍教程等。 但有些topic,资源比较分散;一个博主/up主,也有可能有多个topic的分享,这里分享我遇到的…...

C语言数据结构初阶(1)----时空复杂度

目录 1. 数据结构,算法的概念 2. 算法的效率 2.1 算法复杂度 3. 时间复杂度 3.1 时间复杂度的概念 3.2 大O的渐进表示法 3.3 小试牛刀 4. 算法的空间复杂度 4.1 小试牛刀 1. 数据结构,算法的概念 数据结构(Data Structure)是计算机存储、组织数据…...

vscode SSH 保存密码自动登录服务器

先在win local上拿到秘钥,然后再把这秘钥copy 进服务器 1. 创建 RSA 密钥对 第一步是在客户端机器(通常是您的计算机 win 10)上创建密钥对:打开powershell, 输入 ssh-keygen默认情况下ssh-keygen将创建一个 2048 位 RSA 密钥对…...

VR全景多种玩法打破传统宣传,打造全新云端视界

传统的展示方式只是在进行单方面的表达,不论是图片、视频,都无法让浏览者有参与感,这样的展示宣传效果自然比不上VR全景展示,VR全景基于真实场景来形成三维图像,其沉浸式和无视野盲区的特点让用户更有真实感和沉浸感&a…...

Git 教程

目录1.简介:2.安装Git3.Git 如何工作状态区域4.使用Git5.Git配置5.1 创建仓库 - repository5.2 配置5.2.1 --global5.2.2 检查配置6. 查看工作区的文件状态6.1什么是工作区6.2 如果显示乱码的解决方式7.在工作区添加单个文件8. 添加工作区文件到暂存区9. 创建版本10…...

一种全新的图像滤波理论的实验(二)

一、前言 2021年12月31日,我发布了基于加权概率模型的图像滤波算法的第一个实验,当时有两个关键问题没有解决: 1、出现了大面积的黑色区域,最近考虑把这个算法实际应用在图像和视频的压缩领域,于是通过对程序的分析&a…...

Boost库文档搜索引擎

文章目录综述效果展示去标签化,清理数据构建索引用户查询综述 该项目使用了BS架构,实现了用户对Boost库进行站内搜索的功能, 用户输入关键字使用http协议通过ajax将数据发送给后端服务器,后端进行分词, 通过倒排索引…...

Linux中安装JDK

Linux中安装JDK一 、下载JDK包1、下载网址2、往下翻,找到 java83、继续往下翻找到要下载的版本 64位linux版本二 上传jdk安装包三 开始安装整体过程1、解压文件2、查看解压文件3、进入解压文件夹确认4、配置环境变量5、重新加载环境变量6、确认安装成功一 、下载JDK…...

宝塔面板公网ip非80端口非443端口部署ssl

有不少人使用家用宽带,虽然申请下来了公网ip,但是运营商封了80与443端口,但仍想使用ssl证书 一、仅封80端口 1、先在宝塔面板里创建网站,域名为test.xxx.cn:8085 2、再到域名运营商做A记录解析,此时可以通过http://…...

手撕八大排序(上)

排序的概念及其引用: 排序的概念: 排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。 稳定性:假定在待排序的记录序列中,存在多个具有…...

clickhouse 怎么统计每天0点到10点的某个字段的数据量

比喻&#xff1a;统计最近一周0点到10点期间每天id的数量 日期&#xff1a;2023-03-23 09:02:22 日期全是这种格式 第一步先把日期转小时&#xff1a;先把小于10小时的查出来 toHour(card_time)<10 select toDate(t.dates) as dates,sum(t.count) as count from ( se…...

[qiankun]-图片加载问题

[qiankun]-图片加载问题开发版本图片加载报错现象描述分析解决方案base64的展示格式静态资源的展示方式取消hash的取值方式&#xff0c;并在主应用中添加图片设置图片的绝对路径根据环境动态设置图片的绝对路径nginx转发方式开发版本 "vue": "^3.2.45", &…...

关于upstream的八种回调方法

1 creat_request调用背景&#xff1a;用于创建自己模板与第三方服务器的第一次连接步骤1&#xff09; 在Nginx主循环&#xff08;ngx_worker_process_cycle方法&#xff09; 中&#xff0c;会定期地调用事件模块&#xff0c; 以检查是否有网络事件发生。2&#xff09; 事件模块…...

0303泰勒公式-微分中值定理与导数的应用

文章目录1 引入2 泰勒中值定理2.1 泰勒多项式3.2 泰勒中值定理13.3 泰勒中值定理22.4 误差估计4 麦克劳林公式5 常见麦克劳林公式6 泰勒公式相关例题6.1 将函数展成指定的泰勒公式6.1.1 公式法6.1.2 间接展法&#xff08;变量替换&#xff09;6.2 利用泰勒公式求极限6.3 确定无…...

日常运维基础命令

commandexplainps -f -u user_name显示指定用户的进程ps aux --sort-pcpu,pmem先以cpu使用量进行排序&#xff0c;cpu使 用一样&#xff0c;以内存使用率排序ps -ef --forest显示ACLII进程数ps --ppid 28208显示父进程的子进程ps -p 14447 -L显示进程的线程ps -e -o pid&#x…...

STM32+rt-thread判断是否联网

一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI

前一阵子在百度 AI 开发者大会上&#xff0c;看到基于小智 AI DIY 玩具的演示&#xff0c;感觉有点意思&#xff0c;想着自己也来试试。 如果只是想烧录现成的固件&#xff0c;乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外&#xff0c;还提供了基于网页版的 ESP LA…...

linux 下常用变更-8

1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行&#xff0c;YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID&#xff1a; YW3…...

【HTML-16】深入理解HTML中的块元素与行内元素

HTML元素根据其显示特性可以分为两大类&#xff1a;块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...

MySQL 8.0 OCP 英文题库解析(十三)

Oracle 为庆祝 MySQL 30 周年&#xff0c;截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始&#xff0c;将英文题库免费公布出来&#xff0c;并进行解析&#xff0c;帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...

【JavaWeb】Docker项目部署

引言 之前学习了Linux操作系统的常见命令&#xff0c;在Linux上安装软件&#xff0c;以及如何在Linux上部署一个单体项目&#xff0c;大多数同学都会有相同的感受&#xff0c;那就是麻烦。 核心体现在三点&#xff1a; 命令太多了&#xff0c;记不住 软件安装包名字复杂&…...

Mac下Android Studio扫描根目录卡死问题记录

环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中&#xff0c;提示一个依赖外部头文件的cpp源文件需要同步&#xff0c;点…...

SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题

分区配置 (ptab.json) img 属性介绍&#xff1a; img 属性指定分区存放的 image 名称&#xff0c;指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件&#xff0c;则以 proj_name:binary_name 格式指定文件名&#xff0c; proj_name 为工程 名&…...

动态 Web 开发技术入门篇

一、HTTP 协议核心 1.1 HTTP 基础 协议全称 &#xff1a;HyperText Transfer Protocol&#xff08;超文本传输协议&#xff09; 默认端口 &#xff1a;HTTP 使用 80 端口&#xff0c;HTTPS 使用 443 端口。 请求方法 &#xff1a; GET &#xff1a;用于获取资源&#xff0c;…...

MySQL JOIN 表过多的优化思路

当 MySQL 查询涉及大量表 JOIN 时&#xff0c;性能会显著下降。以下是优化思路和简易实现方法&#xff1a; 一、核心优化思路 减少 JOIN 数量 数据冗余&#xff1a;添加必要的冗余字段&#xff08;如订单表直接存储用户名&#xff09;合并表&#xff1a;将频繁关联的小表合并成…...