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

[迁移学习]DA-DETR基于信息融合的自适应检测模型

原文标题为:DA-DETR: Domain Adaptive Detection Transformer with Information Fusion;发表于CVPR2023

一、概述

        本文所描述的模型基于DETR,DETR网络是一种基于Transformer的目标检测网络,详细原理可以参见往期文章:[自注意力神经网络]DETR目标检测网络。本文在DETR模型的基础上,引入了信息融合机制,可以有效的实现从有标记的源域无标记的目标域之间的转移。

        相较于传统的两段式网络(Two-Stage;如Faster RCNN),DETR可以通过CNN骨干网络获得低层次的定位特征(如对象周围的边缘)通过Transformer Head获得全局像素间的关系和高级语义特征。融合这两种不同层次的信息可以有效的解决域自适应问题。

        本文创造性的提出了CTBlender(CNN-Transformer Blender)的概念。其原理是使用Transformer Head中的高级语义特征有条件的调节CNN主干中的低级特征。CTBlender由两个组件构成:

                ①分裂-合并融合(split-merge fusion;SMF):将CNN特征分为多个具有不同语义的组;再通过Transformer捕获这些语义信息;然后将这些通过并排合并(便于不同组之间有效的通信)

                ②多尺度聚合融合(scale aggregation fusion;SAF):通过融合多尺度特征的语义信息和本地化信息来聚合SMF获得的特征。

二、模型&方法

        1.Deformable-MSA

        DETR采用“编码器-解码器”模式,对于给定的图像x,先由骨干网络G生成特征向量f,然后通过Transformer对其进行编解码,Transformer由多头注意力模块组成,可以定义为公式:

                MSA(z_q,f)=\sum^H_{h=1}P_H[\sum SA_{hqk} \cdot {P_H}'f_k];其中MSA是由H个单头注意力构成,z_qf_k表示查询元素和关键元素,P_H \in R^{d \times d_h}{P_H}' \in R^{d \times d_h}为可学习的投影权重,而SA_{hqk}一种缩放的点注意力(将查询和键值映射到输出中),可以描述为公式:

                SA_{hqk} \propto exp(\frac{Z_q^TU_m^TV_mf_c}{\sqrt{d_h}});其中U_m,V_m均为可学习权重。

        本文提出了一种Deformable-Transformer(可变形Transformer)来代替传统的Transformer,这种结构拥有更快的收敛速度,其可以表述为:

                 D-MSA(Z_q,p_q,f)=\sum^H_{h=1}P_H[\sum_kSA_{hqk}\cdot {P_H}'f(p_q+\delta p_{hqk})];其中\delta p_{hqk}为第k个采样点的偏移量,SA_{hqk}为关注权重,改结构可以有效的缓解DERT收敛慢的问题,同时可变形的特点也适合从骨干网络中融合多尺度特征结构。

        2.网络结构

        网络总体结构如上图所示,整个网络可以被描述为公式:

                L_{det}=l(T(G(x_s)),y_s);其中x_s为源域图像,y_s为源域标签,G为骨干网络,T为DERT Head,l为匈牙利损失函数。

        从结构图可以看出,与传统DERT相比,其最大的区别是加入了CTBlender模块用于进行非监督的域适应训练。故其用于监督学习的分支①与传统DERT相同,通过将损失函数L_{det}前向传递即可完成训练。

        对于无监督训练,CTBlender以源图目标图的CNN的多尺度特征向量f^l(l=1,2,3,4)和Transformer编码的语义向量p^l(l=1,2,3,4)作为输入,CTBlender的输出将作为鉴别器(Discriminator)的输入,计算得出用于域间对齐的对抗损失函数L_{adv},可以表述为公式:

                L_{adv}=E_{(f,p)}\in D_s log C_d(H(f,p))+E_{(f,p)}\in D_t log(1-C_d(H(f,p)));其中f=G(x),p=E(G(x))G是骨干网络函数,E为Transformer编码器函数,H为CTBlender函数C_d为鉴别器。

        DA-DERT的总体优化函数可以描述为:\underset{C_d}{max}\, min L_{det}(G,T)-\lambda L _{adv}(H,C_d)

        3.CTBlender

        CTBlender由两个模块组成:SMF(负责混合CNN和Transformer的特征)和SAF(负责融合不同尺寸的加权特征图),其具体结构如下:

                ①SMF

                 由于SMF对每层的操作都是一样的,原文选择l=1时的数据进行展示。首先将CNN的特征图f^1和Transformer的语义特征p^1拆分(split)为多个组,(f^1p^1沿着通道均分为K个组)并通过空间(Spatial-wise)和通道(Channel-wise)两个方向进行融合;融合后的特征与信道进行合并(merge)。

                空间融合:分裂的p^1特征首先进行归一化,然后通过可学习权重图对偏置图(bias map)进行重加权,可以描述为公式:

                        \hat{p}^1_{ks}=f_s(w_s \cdot GN(p_k^1)+b_s);其中f_s()的输出范围限定在[0,1]

                通道融合:分裂的p^1通过全局池化进行压缩,然后通过可学习权重图对偏置图(bias map)进行重加权,可以描述为公式:

                        \hat{p}^1_{kc}=f_s(w_c \cdot GAP(p_k^1)+b_c);其中GAP为全局平均池化(Global Average Pooling),f_s()的输出范围限定在[0,1]

                利用上面求出的权重\hat{p}^1_{ks}\hat{p}^1_{kc}在对应的方向上对分裂后的特征图f_k^1进行重新加权,得到加权后的特征图\hat{f}_k^1,然后沿着通道方向对\hat{f}^1_k进行K次混洗(shuffle),将混洗后的特征图融合为\hat{f}^1

                ②SAF

                 将SMF得到的多尺度加权特征图组\hat{f}=\{\hat{f}^l\}^L_{l=1}通过全局平均池化(GAP)压缩为向量组u=\{u^l\}^L_{l=1}。首先通过逐元素求和的方法将通道方向的向量求和为u_m;然后通过全连接层将向量u_m和对应的权重向量\alpha^l连接(\alpha^l \in R^{c \times 1 \times 1});最后将文本信息嵌入到向量V_a中,可描述为公式:V_a=\sum^L_{l=1}\hat{f}^l \cdot \alpha^l

相关文章:

[迁移学习]DA-DETR基于信息融合的自适应检测模型

原文标题为:DA-DETR: Domain Adaptive Detection Transformer with Information Fusion;发表于CVPR2023 一、概述 本文所描述的模型基于DETR,DETR网络是一种基于Transformer的目标检测网络,详细原理可以参见往期文章:…...

【MATLAB】全网唯一的13种信号分解+FFT傅里叶频谱变换联合算法全家桶

有意向获取代码,请转文末观看代码获取方式~ 大家吃一顿火锅的价格便可以拥有13种信号分解FFT傅里叶频谱变换联合算法,绝对不亏,知识付费是现今时代的趋势,而且都是我精心制作的教程,有问题可随时反馈~也可单独获取某一…...

Nginx安装与配置

1.下载安装包 官网下载地址:nginx: download 可以先将安装包下载到本地再传到服务器,或者直接用wget命令将安装包下载到服务器,这里我们直接将安装包下载到服务器上。未安装wget命令的需要先安装wget,yum install -y wget [root…...

linux笔记总结-基本命令

参考: 1.Linux 和Windows比 比较 (了解) 1. 记住一句经典的话:在 Linux 世界里,一切皆文件 2. Linux目录结构 /lib • 系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几 乎所有…...

[PHP]禅道项目管理软件ZenTaoPMS源码包 v16.4

禅道项目管理软件ZenTaoPMS一键安装包是一款国产的开源项目管理软件。它集产品管理、项目管理、质量管理、文档管理、组织管理和事务管理于一体,是一款专业的研发项目管理软件,完整地覆盖了项目管理的核心流程。注重实效的管理思想,合理的软件…...

Required String parameter ‘name‘ is not present

[org.springframework.web.bind.MissingServletRequestParameterException: Required String parameter name is not present] 服务端有参数name,客户端没有传上来...

路由器基础(五): OSPF原理与配置

开放式最短路径优先 (Open Shortest Path First,OSPF) 是一个内部网关协议 (Interior Gateway Protocol,IGP),用于在单一自治系统(Autonomous System,AS) 内决策路由。OSPF 适合小型、中型、较大规模网络。OSPF 采用Dijkstra的最短路径优先算法 (Shortest Pat…...

Leetcode1128. 等价多米诺骨牌对的数量

Every day a Leetcode 题目来源&#xff1a;1128. 等价多米诺骨牌对的数量 解法1&#xff1a;暴力 代码&#xff1a; class Solution { public:int numEquivDominoPairs(vector<vector<int>> &dominoes){int n dominoes.size(), count 0;for (int i 0;…...

Dev-C调试的基本方法2-2

3.3 跳出函数 在图6所示的状态下&#xff0c;点击单步调试&#xff08;F7&#xff09;会继续调试下一行&#xff0c;而如果想结束在函数中的调试&#xff0c;则点击图4③所示的跳出函数&#xff0c;或CtrlF8按键跳出f()函数&#xff0c;程序将会停在图5所示的第11行处。 3.4 …...

企业之间的竞争,ISO三体系认证至关重要!

ISO三体系认证是指ISO 9001质量管理体系认证、ISO 14001环境管理体系认证、ISO 45001(OHSAS18001)职业健康安全管理体系认证。企业&#xff08;组织&#xff09;自愿申请、通过ISO三体系认证&#xff0c;并贯彻落实&#xff0c;确实能获益多多。 ISO 9001质量管理体系 我们经…...

node教程(四)Mongodb+mongoose

文章目录 一、mongodb1.简介1.1Mongodb是什么&#xff1f;1.2数据库是什么&#xff1f;1.3数据库的作用1.4数据库管理数据的特点 2.核心概念3.下载安装与启动4.命令行交互4.1数据库命令4.3文档命令 二、Mongoose1.介绍2.作用3.使用流程4.插入文档5.mongoose字段类型 一、mongod…...

作为一个初学者,该如何入门大模型?

在生成式 AI 盛行的当下&#xff0c;你是否被这种技术所折服&#xff0c;例如输入一段简简单单的文字&#xff0c;转眼之间&#xff0c;一幅精美的图片&#xff0c;又或者是文笔流畅的文字就展现在你的面前。 相信很多人有这种想法&#xff0c;认为生成式 AI 深不可测&#xf…...

编译支持GPU的opencv,并供python的import cv2调用

下载opencv和opencv_contrib&#xff0c;cmake过程中要下载的一些包可以手动下载配置&#xff0c;如果网络较好&#xff0c;也可以等待自动下载。主要记录的是cmake命令&#xff1a; cmake -D CMAKE_BUILD_TYPERELEASE \-D BUILD_opencv_python3YES \-D CMAKE_INSTALL_PREFIX/…...

Bug记录

那些年写过的很小的bug&#xff1a; Bug1&#xff1a; if args.model IRNN or irnn:# some code这实际上不会按你期望的方式工作。原因在于 ‘irnn’ 是一个非空的字符串&#xff0c;因此它在布尔上下文中被视为 True。所以条件总是为真&#xff0c;而不会考虑 args.model 的…...

web3 React dapp中编写balance组件从redux取出并展示用户资产

好啊 上文WEB3 在 React搭建的Dapp中通过redux全局获取并存储用户ETH与自定义token与交易所存储数量中 我们拿到了用户的一个本身 和 交易所token数量 并放进了redux中做了一个全局管理 然后 我们继续 先 起来ganache的一个模拟环境 ganache -d然后 我们启动自己的项目 顺手发…...

BIOS开发笔记 - DDR中的时序参数

通过前一篇文章学习,我们可以大致知道内存条(Module)的组成及SDRAM内部的结构,这一篇再介绍下SDRAM中常见的时序参数以及整个读写操作的流程。 一、外部信号 图1 DDR4的外部线路图 DDR是一种高带宽的传输接口,其外部信号较多,图1是一个DDR4的外部线路图,以下对图中跟通…...

语义分割 - 简介

语义分割是计算机视觉领域的一项重要任务&#xff0c;旨在将图像中的每个像素标记为对应的语义类别。与传统的图像分类任务不同&#xff0c;语义分割不仅要识别整个图像的类别&#xff0c;还需要对图像中的每个像素进行分类&#xff0c;从而实现对图像的像素级别理解。 语义分…...

ch0_OSI 七层网络协议介绍

目录 概述 1、三网融合的概念 三网&#xff1a;电信网络、有线电视网络、计算机网络 概念&#xff1a;把上述三种网络融合成一种网络 2、计算机网络的定义、分类 定义&#xff1a;计算机网络是将地理位置不同的独立计算机系统&#xff0c;通过传输介质链接起来&#xff0c…...

超声波俱乐部分享:百度世界大会点燃AI创业者新希望

10月22日&#xff0c;2023年第十三期超声波俱乐部内部分享会在北京望京举行。本期的主题是&#xff1a;百度世界大会点燃AI创业者新希望。 到场的嘉宾有&#xff1a;超声波创始人杨子超&#xff0c;超声波联合创始人、和牛商业创始人刘思雨&#xff0c;中国国际经济交流中心研…...

【项目管理】项目计划中常见影响进度的风险汇总

哈喽&#xff0c;大家好&#xff0c;我是雷工。 在项目实施过程中针对项目进度的计划常常会有各种各样的的风险&#xff0c;相比出了问题去救火与填坑&#xff0c;能够提前预知风险&#xff0c;并提前调整计划&#xff0c;更能有利于项目的如期交付。 以下为项目计划中影响进度…...

vscode里如何用git

打开vs终端执行如下&#xff1a; 1 初始化 Git 仓库&#xff08;如果尚未初始化&#xff09; git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...

云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?

大家好&#xff0c;欢迎来到《云原生核心技术》系列的第七篇&#xff01; 在上一篇&#xff0c;我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在&#xff0c;我们就像一个拥有了一块崭新数字土地的农场主&#xff0c;是时…...

stm32G473的flash模式是单bank还是双bank?

今天突然有人stm32G473的flash模式是单bank还是双bank&#xff1f;由于时间太久&#xff0c;我真忘记了。搜搜发现&#xff0c;还真有人和我一样。见下面的链接&#xff1a;https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...

.Net框架,除了EF还有很多很多......

文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

ssc377d修改flash分区大小

1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

Docker 运行 Kafka 带 SASL 认证教程

Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明&#xff1a;server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...

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

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

多种风格导航菜单 HTML 实现(附源码)

下面我将为您展示 6 种不同风格的导航菜单实现&#xff0c;每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...

ip子接口配置及删除

配置永久生效的子接口&#xff0c;2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...

docker 部署发现spring.profiles.active 问题

报错&#xff1a; org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...