[迁移学习]UniDAformer域自适应全景分割网络

原文的标题为:UniDAformer: Unified Domain Adaptive Panoptic Segmentation Transformer
via Hierarchical Mask Calibration,发表于CVPR2023。

一、概述

        域自适应全景分割是指利用一个或多个相关域中的现成标注数据来缓解语义分割数据标注复杂的问题。本文提出了一种UniDAformer域自适应全景分割网络,其基于Transformer,可以用一个统一的架构同时实现域自适应实例分割语义分割

        通过引入分层掩膜校准(HMC),UniDAformer可以实现在线自我训练。本网络具有以下几个特点:

                ①使用一个统一架构实现域自适应全景分割

                ②减少了错误预测

                ③可以实现端到端的训练和推理

        相较于传统的域自适应网络(二分支,下图(a)),UniDAformer(单一分支,下图(b))仅需要一个单一网络即可实现域自适应分割的任务,极大的减少了训练和推理的难度(减少了一个分支的参数量)。

        本文涉及到三个领域:

                ①Panoptic Segmentation(全景分割):为每一个像素分配语义类别和唯一标识。

                ②Unsupervised Domain Adaptation(无监督域自适应,UDA):利用已标记的源于数据来学习未标记的目标域数据。

                ③Self-training(自训练):一种主流的无监督域自适应技术,具体做法是利用伪标签重新训练网络。

二、模型&方法

        1.损失函数

        源域记作:D_s=\{(x_s^i,y_s^i)\};目标域记作D_t=\{x_t^i\}交叉熵损失函数可以定义为:L_{sup}=l(G(x_s),y_s)(仅使用源域进行训练)

        2.无监督训练

        整个无监督训练分为两个数据流:使用动量模型G^m校准伪模板;使用校准后的模型G进行无监督训练(使用自训练损失函数l_{self})。

        具体做法为:

                ①将未标记的图片x_t输入动量模型G^m中,生成一组伪掩码\hat{y}_{t}

                ②将伪掩码\hat{y}_t发送到HMC模块(分层掩码校准模块,Hierarchical Mask Calibration)中,生成校准后的伪掩码\hat{y}_{​{t}'},HMC模块会由粗到精校准伪掩码;

                ③将图像x_t校准后的伪掩码\hat{y}_{​{t}'}进行扩充(变形、裁切、缩放等),得到x_{aug}\hat{y}_{​{aug}'}

                ④使用自训练损失函数L_{self}来训练模型G

        其中动量模型G^m\theta G^m \leftarrow \gamma \theta G^m + (1-\gamma)\theta G\gamma为动量系数。

        3.分层掩码校准(HMC)

        HMC将物体和其预测(things and stuff predictions)统一视为掩码,并由粗到细对每层的掩码进行校正。校准分为三个阶段:区域超像素像素

                ①区域校准(Region-wise Calibration)

                通过重新加权类别概率来调整掩码类别;其使用的公式为:

                        \hat{c}_t ^k = \underset{c}{argmax} (w^{(c,k)}\bigotimes p^c);其中p^c为类别概率,\bigotimes为逐元素乘,w^{(c,k)}表示每个伪掩膜的概率的校准权重(对应第c类),权重w的计算公式为:

                        w^{(c,k)}=Softmax(-||v^k_r-\delta^c ||_1);其中,v_r^k区域特征向量\delta^c为特征向量第c质心\delta ^c距离||\; ||_1为L1距离。

                        其中区域特征向量v_r^k使用全局平均池化GAP,将特征掩码\hat{M}内的特征汇聚成区域向量v_r^k,公式如下:

                        v_r^k = GAP(\hat{M} \bigotimes f_t^k),其中f_t^k\in R^{E\times H \times W}

                        其中质心\delta^c的计算公式为:

                        \delta^c=\frac{\sum_{x_t \in D_t}\sum_{k \in K}v_m^r\cdot \mathbb{I}(\hat{c}=c)}{\sum_{x_t \in D_t}\sum_{k \in K}\mathbb{I}(\hat{c}^k=c)};其中\mathbb{I}指示函数,当向量v_m^k属于c类时返回1,不属于时返回0;

                        可以使用动量模型更新质心:

                        \delta^c \leftarrow {\gamma}' \delta^c + (1-{\gamma}')\delta_*^c;其中{\gamma}'为更新系数。

                ②超像素校准(Superpixel-wise Calibration)

                利用超像素黏附周围物体的边界特征来调整掩码性状;首先计算图片x_t超像素图M^I(其中包含I个超像素M^i),然后选择原始掩码\hat{M}_t^k中的超像素来生成修正后的掩码M_{sp}^k,可以表述为公式:

                M_{sp}^k=\bigcup_{i\in I}^{}M^{(i)} \cdot \mathbb{I}(A^{(i)}>0);该公式会选出与掩码模型重叠的超像素,工作模式如下图的(b)、(c)所示:

                ③像素校准(Pixel-wise Calibration)

                引入像素级分类信息,使用像素级投票机制调整掩膜边界;如上图中的(d)所示,当超像素M_{sp}^k中多数像素的特征向量与伪掩码总体类别不一致时,抛弃该超像素。可以表述为公式:

                \underset{c}{arg}min(||v_p^{(k,j)}||-\delta^c)=c_t^{​{k}'}

三、网络优化

        自训练损失函数L_{self}可以表示为:L_{self}=l(G(x_{aug}),\hat{y}' _{aug});其中l为匈牙利损失函数。

        总体损失函数由最小化监督损失函数L_{sup}非监督损失函数L_{self}共同决定。可以表述为:

                \underset{a}{arg}minL_{sup}+L_{self}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MyBatis的增删改查

2023.10.29 本章学习MyBatis的基本crud操作。 insert java程序如下: ①使用map集合传参 Testpublic void testInsertCar(){SqlSession sqlSession SqlSessionUtil.openSession();//先将数据放到Map集合中,在sql语句中使用 #{map集合的key} 来完成传…

Steger算法实现结构光光条中心提取(python版本)

Steger算法原理 对结构光进行光条中心提取时,Steger算法是以Hessian矩阵为基础的。它的基础步骤如下所示: 从Hessian矩阵中求出线激光条纹的法线方向在光条纹法线方向上将其灰度分布按照泰勒多项式展开,求取的极大值即为光条在该法线方向上…

【Flutter】自定义分段选择器Slider

【Flutter】ZFJ自定义分段选择器Slider 前言 在开发一个APP的时候,需要用到一个分段选择器,系统的不满足就自己自定义了一个; 可以自定义节点的数量、自定义节点的大小、自定义滑竿的粗细,自定义气泡的有无等等… 基本上满足你…

Springboot的Container Images,docker加springboot

Spring Boot应用程序可以使用Dockerfiles容器化,或者使用Cloud Native Buildpacks来创建优化的docker兼容的容器映像,您可以在任何地方运行。 1. Efficient Container Images 很容易将Spring Boot fat jar打包为docker映像。然而,像在docke…

合肥中科深谷嵌入式项目实战——人工智能与机械臂(三)

订阅:新手可以订阅我的其他专栏。免费阶段订阅量1000 python项目实战 Python编程基础教程系列(零基础小白搬砖逆袭) 作者:爱吃饼干的小白鼠。Python领域优质创作者,2022年度博客新星top100入围,荣获多家平台专家称号。…

信号去噪之卡尔曼滤波

在前面的文章 卡尔曼滤波 中曾讲解过卡尔曼滤波在惯性导航和飞行姿态控制中的应用,今天来聊一聊卡尔曼滤波在信号去噪中的应用。 卡尔曼滤波(Kalman Filtering)是一种用于估计系统状态的数学方法,它通过考虑系统的动态模型和传感…

86 最小栈

最小栈 题解1 STL大法好题解2 辅助最小栈(直观,空间换时间)题解3 不需要额外空间(!!!差值!!!) 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 实现 MinStack 类: MinStack() 初…

树莓派 qt 调用multimedia、multimediawidgets、serialport、Qchats

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、测试11.命令安装出现错误 二、测试21. 安装 Qt Charts:2. 安装 Qt Multimedia 和 Qt MultimediaWidgets:3. 安装 Qt SerialPort&…

重磅新闻-国内首家八类网线认证分析仪上市了

伴随USA对国内某些敏感企业的非常不友好,设置层层障碍,技术堡垒。使得一些网线基础制造研发、线缆线束厂、汽车生产生产厂、军工用途的线缆品质的认证、以及相关高校的研发受到了不同的程度的阻碍。重磅消息,国内首家八类网线认证测仪-维信仪…

几个常用的nosql数据库的操作方式

dynamoDB 键 partition key:分区键 定义:分区键是用于分布数据存储的主键,每个项(Item)在表中都必须有一个唯一的分区键值。 特点: 唯一性:每个分区键值在表中必须是唯一的,这是因为…

【Java 进阶篇】Java HTTP 请求消息详解

HTTP(Hypertext Transfer Protocol)是一种用于传输超文本的应用层协议,广泛用于构建互联网应用。在Java中,我们经常需要发送HTTP请求来与远程服务器进行通信。本文将详细介绍Java中HTTP请求消息的各个部分,包括请求行、…

基于纵横交叉算法的无人机航迹规划-附代码

基于纵横交叉算法的无人机航迹规划 文章目录 基于纵横交叉算法的无人机航迹规划1.纵横交叉搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要:本文主要介绍利用纵横交叉算法来优化无人机航迹规划。 …

vscode 通过ssh 连接虚拟机vmware(ubuntu)

1.网络连接是否ping的通(ubuntu虚拟机使用的是net 连接方式) 2.配置环境 ubuntu 需要安装ssh server 服务 (1): 安装(Ubuntu安装ssh server) apt-get install openssh-server 检查是否ssh server 是否启动…

PostMan 之 Mock 接口测试

在测试的时候经常会碰到后端开发工程师的接口还没有开发完成,但是测试任务已经分配过来。没有接口怎么测试呢? 测试人员可以通过 mock server 自己去造一个接口来访问。mock server 可用于模拟真实的接口。收到请求时,它会根据配置返回对应的…

图解Kafka高性能之谜(五)

高性能的多分区、冗余副本集群架构 高性能网络模型NIO 简单架构设计: 详细架构设计: 高性能的磁盘写技术 高性能的消息查找设计 索引文件定位使用跳表的设计 偏移量定位消息时使用稀疏索引: 高响应的磁盘拷贝技术 kafka采用sendFile()的…

Linux:KVM虚拟化

本章操作基于centos7系统 简介 KVM是Kernel Virtual Machine的简写,目前Redhat只支持在64位的Rhel5.4以上的系统运行KVM,同时硬件需要支持VT技术。KVM的前身是QEMU,在2008年被redhat公司收购并获得了一项hypervisor技术,不过redh…

一文浅析Instagram网红经济为什么远远超出其他社媒平台

根据数据显示,网红营销市场规模在短短五年时间内从2016年的17亿美元增长至2022年的164亿美元,累计增速超过了712%。未来,有专家预计该市场预计将进一步增长,将在2023年突破210亿美元。这种惊人的增长趋势源于社交媒体的快速发展以…

SpringBoot整合Gateway 的Demo(附源码)

源码&#xff0c;可直接下载 Gateway模块 Gateway 的父pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:sc…

【图像分类】基于计算机视觉的坑洼道路检测和识别(ResNet网络,附代码和数据集)

写在前面: 首先感谢兄弟们的关注和订阅,让我有创作的动力,在创作过程我会尽最大能力,保证作品的质量,如果有问题,可以私信我,让我们携手共进,共创辉煌。 本篇博文,我们将使用PyTorch深度学习框架搭建ResNet实现钢轨缺陷识别,附完整的项目代码和数据集,可以说是全网…

基于单片机的智能清洁小车设计—控制系统设计

收藏和点赞&#xff0c;您的关注是我创作的动力 文章目录 概要 一、研究的主要内容和目标二、总体方案设计2.1智能清洁小车的硬件系统组成2.2智能清洁小车的硬件结构图 三、 小车结构设计5.1基本布局和功能分析5.2小车二维及三维图小车三维图&#xff1a; 四、 原理图程序 五、…