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

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

  • 论文标题: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.niftyadmin.cn/n/5092679.html

相关文章

未来展望:大型语言模型与 SQL 数据库集成的前景与挑战

一、前言 随着 GPT-3、PaLM 和 Anthropic 的 Claude 等大型语言模型 (LLM) 的出现引发了自然语言在人工智能领域的一场革命。这些模型可以理解复杂的语言、推理概念并生成连贯的文本。这使得各种应用程序都能够使用对话界面。然而,绝大多数企业数据都存储在结构化 …

【1day】用友U8Cloud未授权访问漏洞学习

注:该文章来自作者日常学习笔记,请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与作者无关。 目录 一、漏洞描述 二、影响版本 三、资产测绘 四、漏洞复现

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

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

rsyslog实现将日志存储到mysql中

​ 前提:准备好msql server或mariadb server; ​ 1、安装rsyslog连接至mysql server的驱动模块; [13:24 rootcentos6.8~]# yum install -y rsyslog-mysql [13:24 rootcentos6.8~]# rpm -ql rsyslog-mysql /lib64/rsyslog/ommysql.so /usr/…

【机器学习】特征工程:从理论到实践的关键技巧

机器学习之特征工程实践技巧 1、引言2、了解特征工程2.1 机器学习2.2 特征工程 3、特征工程的思路4、特征工程的方法5、特征工程的实践6、总结 1、引言 小屌丝:鱼哥, 你不厚道~ 小鱼:啥情况? 小屌丝:你为啥不给我讲…

一条 MySQL 语句执行的步骤

MySQL执行一条SQL语句的过程通常涉及多个步骤,以下是一个详细的概述: SQL解析: 当客户端发送一条SQL查询或更新语句时,MySQL服务器首先需要解析该语句。这包括语法分析、语义分析和权限检查。语法分析确保SQL语句的语法正确&…

PTA:7-1 栈的基本操作

栈的基本操作 题目输入格式输出格式输入样例输出样例 思路代码 题目 给定一个初始为空的栈(栈容量为10)和一系列进栈、出栈操作,请编写程序输出经过这些操作后栈的元素。栈的元素值均为整数。 输入格式 输入第1行为1个正整数n,…

Seata入门系列【4】undo_log、global_table、branch_table、lock_table字段及作用详解

1 客户端 1.1 undo_log 在AT模式中,需要在参与全局事务的数据库中,添加一个undo_log表,建表语句如下: SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS 0;-- ---------------------------- -- Table structure for undo_log -- --…