港科大提出适用于夜间场景语义分割的无监督域自适应新方法

news2024/11/29 3:53:51

跟大家分享港科大提出的无监督域自适应夜间场景语义分割方法,该方法对夜间的动态目标和小目标做了针对性的优化。

  • 论文标题:Towards Dynamic and Small Objects Refinement for Unsupervised Domain Adaptative Nighttime Semantic Segmentation
  • 机构:港科大
  • 论文地址:https://arxiv.org/pdf/2310.04747.pdf
  • 工程主页:https://rorisis.github.io/DSRNSS/
  • 代码即将开源
  • 关键词:语义分割、无监督域自适应、夜间场景

1.动机

语义分割在自动驾驶、机器人等应用中发挥着重要的作用。近年来,随着深度神经网络的发展,语义分割取得了显著的进展。然而,现有的方法主要针对白天场景,在夜间场景,尤其是包含动态目标和小目标时,它们的性能急剧下,主要原因是光照不足且标注数据集缺乏。

为了解决这一问题,研究人员开发了无监督域自适应(Unsupervised Domain Adaptation,简称UDA)方法,让从源域(即白天)图像训练的模型对未标记目标域(即夜间)图像进行自适应。

常用方法可分为3类:

(1)使用风格迁移模型(比如CyclelGAN),生成白天或夜间的图像,作为一个中间域来连接源域和目标域。这类方法比较繁琐,因为它们需要多阶段的学习;如果风格迁移失败则难以保证性能。

(2)利用与目标域粗对齐的黄昏图像,从白天逐步适应夜间域。

(3)利用先验的GPS信息或静态损失减少粗对齐的昼夜图像对(day-night image pairs)的影响,提高伪标签的质量。

上述方法很少关注夜间图像的动态目标和小目标,如车辆和交通标志,在低光照条件下很难实现有效的域对齐。

作者提出了一种新的UDA方法用于夜间场景语义分割,该方法更关注动态目标和小目标。

2.方法

该方法包含2个关键技术,其一为DSR(dynamic and small objects refinement,动态目标和小目标精炼)模块,其二为PFA(feature prototype alignment,特征原型对齐)模块。

总体结构如下图所示:

(1)DSR模块

夜间图片中的动态目标和小目标,很难直接从白天域获得准确的伪标签。因此作者首先利用源图像的标签将源域的动态目标和小目标区域混合到夜间图像中,为这种目标提供准确的标签。

将源图片中的标签记作 Y s Y_s Ys,定义:

M ( h , w ) = { 1 ,  if  Y s ( h , w ) ∈ c 0 ,  otherwise  M(h, w)= \begin{cases}1, & \text { if } Y_s(h, w) \in c \\ 0, & \text { otherwise }\end{cases} M(h,w)={1,0, if Ys(h,w)c otherwise 

上式中 M M M是二值mask, c c c是被选中的类别, h ∈ H h \in H hH w ∈ W w \in W wW分别表示图像的高和宽。

针对随机选择的类别,使用上述方式可以得到 M r M_r Mr;针对动态目标和小目标,使用上述方式可以得到 M m M_m Mm,将混合后的mask记作 M c M_c Mc,则:

M c = M r ∪ M m M_c=M_r \cup M_m Mc=MrMm

使用 M c M_c Mc,可使用源图片中的小目标和动态目标对夜间图片进行增强。可以使用 M c M_c Mc对源域图片和目标域图片进行混合:

X m = M c ⊙ X s ( 1 − M c ) ⊙ X n X_m=M_c \odot X_s\left(1-M_c\right) \odot X_n Xm=McXs(1Mc)Xn

上式中 X s X_s Xs表示源域的图片, X n X_n Xn表示目标域的图片(即夜间的图片)。

类似地,使用 M c M_c Mc混合源域图片的标注 Y s Y_s Ys和目标域的伪标签 y n ′ y_n^{\prime} yn,得到 X m X_m Xm的标签:

Y m = M c ⊙ Y s + ( 1 − M c ) ⊙ y n ′ Y_m=M_c \odot Y_s+\left(1-M_c\right) \odot y_n^{\prime} Ym=McYs+(1Mc)yn

为进一步提升性能,作者将长尾分布类别从源域中引入到目标域中,图片和伪标签的构造公式如下:

X m ′ = B m ⊙ B i + ( 1 − B m ) ⊙ X m Y m ′ = B m ⊙ B l + ( 1 − B m ) ⊙ Y m \begin{aligned} X_m^{\prime} & =B_m \odot B_i+\left(1-B_m\right) \odot X_m \\ Y_m^{\prime} & =B_m \odot B_l+\left(1-B_m\right) \odot Y_m \end{aligned} XmYm=BmBi+(1Bm)Xm=BmBl+(1Bm)Ym

上式中的 B m B_m Bm表示mask, B i B_i Bi表示源域图片, B l B_l Bl表示源域图片的标注。

利用学生模型 F s F_s Fs对混合后的图片 X m ′ X_m^{\prime} Xm做预测,得到 y m ′ = F s ( X m ′ ) y_m^{\prime}=F_s\left(X_m^{\prime}\right) ym=Fs(Xm),构造损失函数保证 y m ′ y_m^{\prime} ym Y m ′ Y_m^{\prime} Ym的一致性:

L m i x = − ∑ c = 0 C ∑ w = 0 W ∑ h = 0 H Y m ′ c , h , w log ⁡ ( y m ′ c , h , w ) \mathcal{L}_{m i x}=-\sum_{c=0}^C \sum_{w=0}^W \sum_{h=0}^H Y_m^{\prime c, h, w} \log \left(y_m^{\prime c, h, w}\right) Lmix=c=0Cw=0Wh=0HYmc,h,wlog(ymc,h,w)

工作流程表示如下:

用于生成伪标签的教师模型的权重 ϕ t ′ \phi_t^{\prime} ϕt在训练时,每 t t t次迭代使用学生模型的权重 ϕ t \phi_t ϕt更新一次,表示如下:

ϕ t ′ = λ ϕ ˙ t − 1 ′ + ( 1 − λ ) ϕ ˙ t \phi_t^{\prime}=\lambda \dot{\phi}_{t-1}^{\prime}+(1-\lambda) \dot{\phi}_t ϕt=λϕ˙t1+(1λ)ϕ˙t

上式中的 λ \lambda λ表示EMA衰减, λ ∈ [ 0 , 1 ] \lambda \in [0,1] λ[0,1]

(2)FPA模块

DSR模块产生了混合域,作者构造了FPA模块用于对齐源域、目标域和混合域。

为了学习域不变特征,对不同域同类目标的像素级别的特征进行累加,使用源域标注 Y s Y_s Ys和混合域伪标签 Y m ′ Y_m^{\prime} Ym得到每一类的原型(prototypes):

ρ s c = ∑ h H ∑ w W f s h , w Y s c , h , w ∑ h H ∑ w W Y s c , h , w , ρ m c = ∑ h H ∑ w W f m h , w Y m ′ c , h , w ∑ h H ∑ w W Y m ′ c , h , w \rho_s^c=\frac{\sum_h^H \sum_w^W f_s^{h, w} Y_s^{c, h, w}}{\sum_h^H \sum_w^W Y_s^{c, h, w}}, \rho_m^c=\frac{\sum_h^H \sum_w^W f_m^{h, w} Y_m^{\prime c, h, w}}{\sum_h^H \sum_w^W Y_m^{\prime c, h, w}} ρsc=hHwWYsc,h,whHwWfsh,wYsc,h,w,ρmc=hHwWYmc,h,whHwWfmh,wYmc,h,w

上式中 ρ s c \rho_s^c ρsc ρ m c \rho_m^c ρmc分别为源域和混合域中类别 c c c的原型, f s f_s fs f m f_m fm为学生模型 F s F_s Fs在源域图片和混合域图片中提取到的特征。

使用原型和特征计算跨域对比损失,使用源域和混合域中同类别目标的像素特征和原型作为positive pairs,这样可以最大化同类别像素特征和原型的一致性:

S m → s c = ( s ( f m h , w , ρ s c , h , w ) / τ ) ⋅ W c S_{m \rightarrow s}^c=\left(s\left(f_m^{h, w}, \rho_s^{c, h, w}\right) / \tau\right) \cdot W^c Smsc=(s(fmh,w,ρsc,h,w)/τ)Wc

上式中 s ( ⋅ , ⋅ ) s(\cdot, \cdot) s(,)表示余弦相似度, τ \tau τ表示温度参数, W c W^c Wc表示类别 c c c的相似度权重,使用如下公式计算对比损失:

L m → s = − ∑ c C ∑ h H ∑ w W y n ′ c , h , w log ⁡ exp ⁡ ( S m → s c ) ∑ c exp ⁡ ( S m → s c ) \mathcal{L}_{m \rightarrow s}=-\sum_c^C \sum_h^H \sum_w^W y_n^{\prime c, h, w} \log \frac{\exp \left(S_{m \rightarrow s}^c\right)}{\sum_c \exp \left(S_{m \rightarrow s}^c\right)} Lms=cChHwWync,h,wlogcexp(Smsc)exp(Smsc)

L m → s \mathcal{L}_{m \rightarrow s} Lms表示源域原型和混合域特征的对比损失。与之类似,还有:

S s → m c = ( s ( f s h , w , ρ m c , h , w ) / τ ) ⋅ W c S_{s \rightarrow m}^c=\left(s\left(f_s^{h, w}, \rho_m^{c, h, w}\right) / \tau\right) \cdot W^c Ssmc=(s(fsh,w,ρmc,h,w)/τ)Wc

L s → m = − ∑ c C ∑ h H ∑ w W Y s c , h , w log ⁡ exp ⁡ ( S s → m c ) ∑ c exp ⁡ ( S s → m c ) \mathcal{L}_{s \rightarrow m}=-\sum_c^C \sum_h^H \sum_w^W Y_s^{c, h, w} \log \frac{\exp \left(S_{s \rightarrow m}^c\right)}{\sum_c \exp \left(S_{s \rightarrow m}^c\right)} Lsm=cChHwWYsc,h,wlogcexp(Ssmc)exp(Ssmc)

为解决类别不均衡问题,作者提出了一种自适应的重加权算法,专门针对重叠区域包含动态目标和小目标的情况。通过给这些原型分配权重,我们可以调整相应的像素级特征,相似度权重定义如下:

W c = { 1 ,  if  c ∈ C o s + 1 / s  if  c ∈ C l 0 ,  otherwise  W^c= \begin{cases}1, & \text { if } c \in C_o \\ s+1 / s & \text { if } c \in C_l \\ 0, & \text { otherwise }\end{cases} Wc= 1,s+1/s0, if cCo if cCl otherwise 
上式中 s s s表示相互重叠的类别数量, C o C_o Co包括重叠类别但是不包括长尾类别, C l C_l Cl包括重叠类中的长尾类。

总体的原型对比损失如下:

L proto  = L n → s + L s → n + L m → s + L s → m \mathcal{L}_{\text {proto }}=\mathcal{L}_{n \rightarrow s}+\mathcal{L}_{s \rightarrow n}+\mathcal{L}_{m \rightarrow s}+\mathcal{L}_{s \rightarrow m} Lproto =Lns+Lsn+Lms+Lsm

(3)整体损失函数

除了上文中的2个损失函数,作者还使用交叉熵损失,用标注的源域图片监督分割模型,表示如下:

L sup  = − ∑ h = 0 H ∑ w = 0 W ∑ c = 0 C 1 ( Y s c , h , w ) log ⁡ ( y s c , h , w ) \mathcal{L}_{\text {sup }}=-\sum_{h=0}^H \sum_{w=0}^W \sum_{c=0}^C \mathbb{1}\left(Y_s^{c, h, w}\right) \log \left(y_s^{c, h, w}\right) Lsup =h=0Hw=0Wc=0C1(Ysc,h,w)log(ysc,h,w)

上式中的 1 ( ⋅ ) \mathbb{1}(\cdot) 1()表示one-hot编码。

总体损失函数如下:

L = L sup  + α L mix  + β L proto  \mathcal{L}=\mathcal{L}_{\text {sup }}+\alpha \mathcal{L}_{\text {mix }}+\beta \mathcal{L}_{\text {proto }} L=Lsup +αLmix +βLproto 

上式中的 α \alpha α β \beta β为用于平衡3种损失的超参数, α = 1.0 \alpha=1.0 α=1.0 β = 0.1 \beta=0.1 β=0.1

3.实验

(1)实验设置

(2)实验结果

4.总结

作者提出了一种新的UDA方法用于夜间分割,重点关注动态目标和小目标,该方法包括DSR模块和FPA模块。DSR模块将动态目标和小目标进行组合,同时引入长尾分布类。FPA模块通过特征和原型对齐约束混合过程,减少了不同域中的域偏移。

推荐阅读:
EViT:借鉴鹰眼视觉结构,南开大学等提出ViT新骨干架构,在多个任务上涨点

HSN:微调预训练ViT用于目标检测和语义分割,华南理工和阿里巴巴联合提出

CV计算机视觉每日开源代码Paper with code速览-2023.10.13

CV计算机视觉每日开源代码Paper with code速览-2023.10.12

CV计算机视觉每日开源代码Paper with code速览-2023.10.10

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

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

相关文章

UGUI交互组件ScrollBar

一.ScrollBar的结构 对象说明Scrollbar挂有Image和Scrollbar组件的主体对象Sliding Area表示滑动范围Handle滑块 二.Scrollbar的属性 属性说明Handle Rect控制柄对象的引用Direction拖动控制柄时滚动条值增加的方向Value滚动条的当前值,范围为 0.0 到 1.0Suze控制柄…

【Python搜索算法】深度优先搜索(DFS)算法原理详解与应用,示例+代码

目录 1 基本原理 2 DFS算法流程 3 时间复杂度 4 空间复杂度 5 DFS算法应用案例: 5.1 解决路径查找问题 5.2 解决图的连通性问题 5.3 拓扑排序 5.4 在树结构中进行深度遍历 深度优先搜索(DFS)是一种重要的图遍历算法,用…

容性耦合和距离的关系

容性耦合和距离的关系 在电路板设计中,耦合是指两个或多个电路元件之间的相互作用,这种相互作用会影响到电路的性能。而容性耦合是指通过电场进行耦合的一种方式,它可以通过电容器的作用使得信号在电路板中传递,但同时也会带来一些…

HBuilder创建uniapp默认项目导入uview(胎教)

1:更新HBuilder 建议更新 2:更新插件 我本人在没有更新插件的情况下报错了,找到了**这个大佬**解决问题,所以建议更新插件 先卸载uni-app(Vue2)编译 再重新安装 uni-app(Vue2)…

RabbitMQ从0到1完整学习笔记二:《高级篇》

目录 1. 发送者的可靠性 1.1.生产者连接重试机制 1.2.生产者确认机制(发布确认) 1.3.实现生产者确认 1.3.1.开启生产者确认 1.3.2.定义ReturnCallback 1.3.3.定义ConfirmCallback 拓展: confirm 模式细节处理 2.MQ的可靠性 2.1.数据持久化 2.…

论文阅读:Seeing in Extra Darkness Using a Deep-Red Flash

论文阅读:Seeing in Extra Darkness Using a Deep-Red Flash 今天介绍的这篇文章是 2021 年 ICCV 的一篇 oral 文章,主要是为了解决极暗光下的成像问题,通过一个深红的闪光灯补光。实现了暗光下很好的成像效果,整篇文章基本没有任…

Hadoop3教程(十一):MapReduce的详细工作流程

文章目录 (94)MR工作流程Map阶段Reduce阶段 参考文献 (94)MR工作流程 本小节将展示一下整个MapReduce的全工作流程。 Map阶段 首先是Map阶段: 首先,我们有一个待处理文本文件的集合; 客户端…

Flash-Attention

这是一篇硬核的优化Transformer的工作。众所周知,Transformer模型的计算量和储存复杂度是 O ( N 2 ) O(N^2) O(N2) 。尽管先前有了大量的优化工作,比如LongFormer、Sparse Transformer、Reformer等等,一定程度上减轻了Transformer的资源消耗…

[Zookeeper:基于容器化]:快速部署安装

文章目录 一:拉取docker zookeeper镜像二:创建zookeeper宿主机data目录三:运行容器四:开放防火墙 一:拉取docker zookeeper镜像 [rootvboxnode3ccccccttttttchenyang bigdata]# docker pull zookeeper Using default …

IDEA Gradle Lombok错误:找不到符号 setter getter方法没有

今天IDEA2022.3.3开个Gradle(7.5版本)项目,加入了Lombok依赖,依赖如下: dependencies {implementation group: org.springframework.boot, name: spring-boot-starter-web, version: 3.1.4compileOnly group: org.pro…

Windows:VS Code IDE安装ESP-IDF【保姆级】

物联网开发学习笔记——目录索引 参考: VS Code官网:Visual Studio Code - Code Editing. Redefined 乐鑫官网:ESP-IDF 编程指南 - ESP32 VSCode ESP-ID Extension Install 一、前提条件 Visual Studio Code IDE安装ESP-IDF扩展&#xf…

基于nodejs+vue水浒鉴赏平台系统

该平台内容丰富,便于操作。 零碎化的信息带给我们的短暂快感,人们沉寂在网络游戏、短视频、网络聊天,沉寂其中无法自拔。脱离现实、胡编乱造、五花八门的网络小说, 优秀的文化传承,学习和借鉴才是当今社会需要的。 …

睡衣内衣服装商城小程序的作用是什么

服装行业一直都是市场很重要的组成部分,每个人都需要,且根据品牌、样式作用等可以细分很多类目,其中睡衣内衣也有不小的市场规模,从业商家多、市场需求度高。 但同时睡衣内衣经营痛点也比较明显。 当今消费者习惯于线上消费&…

【面试经典150 | 区间】汇总区间

文章目录 Tag题目来源题目解读解题思路方法一:一次遍历复杂度分析 其他语言python3C 写在最后 Tag 【一次遍历】【数组】【字符串】 题目来源 228. 汇总区间 题目解读 给定一个无重复的升序数组 nums,需要将这个数组按照以下规则进行汇总&#xff1…

报道 | 2023-2024年1月国际运筹优化会议汇总

2023年10月、11月、12月召开会议汇总: 2023 International Conference on Optimization and Applications (ICOA) Location: Abu Dhabi, United Arab Emirates Important dates: Conference: October 05-06, 2023 Details: https://lct.ac.ae/en/icoa/ 2023 INF…

Kafka:容器安装篇

文章目录 一:拉取 kafka镜像: docker pull bitnami/kafka二:运行 kafka容器: docker run containerId三:开放防火墙 一:拉取 kafka镜像: docker pull bitnami/kafka docker search kafka docke…

Android Framework通信:Handler

文章目录 前言一、Handler源码分析1、创建Handler2、发送消息3、取消息4、消息处理5、线程切换的方法(Handler异步消息处理机制流程)handler.sendMessage()handler.post()View.post()Activity中的runOnUiThread() 二、Handler高频面试题1、为什么要有Han…

SSM - Springboot - MyBatis-Plus 全栈体系(二十八)

第六章 SpringBoot 三、SpringBoot3 整合 SpringMVC 1. 实现过程 1.1 创建程序 1.2 引入依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001…

单目3D目标检测——MonoDLE 模型训练 | 模型推理

本文分享 MonoDLE 的模型训练、模型推理、可视化3D检测结果。 模型原理&#xff0c;参考我这篇博客&#xff1a;【论文解读】单目3D目标检测 MonoDLE&#xff08;CVPR2021&#xff09;_一颗小树x的博客-CSDN博客 源码地址&#xff1a;https://github.com/xinzhuma/monodle 目…

2. 验证1101序列(Mealy)

题目要求&#xff1a; 用 M e a l y \rm Mealy Mealy型状态机验证 1101 1101 1101序列 题目描述&#xff1a; 使用状态机验证 1101 1101 1101序列&#xff0c;注意&#xff1a;允许重复子序列。 方法一&#xff1a; 去掉 M o o r e \rm Moore Moore的 s 4 s_4 s4​&#xff…