无需配对数据的对比学习图像到图像转换,助力跨域物体检测 | BMVC'24
来源:晓飞的算法工程笔记 公众号,转载请注明出处
论文: Improving Object Detection via Local-global Contrastive Learning

创新点
- 提出了一种新颖的图像到图像转换方法,用于跨域物体检测。
- 该方法为一个具有引导先验的对比学习框架,通过空间注意力掩码优化物体实例的外观,隐式地将场景划分为与目标物体实例相关的前景区域和非物体的背景区域。
- 在转换过程中,该方法并不依赖物体标注来明确体实例,而是通过对比局部与全局信息来学习表示物体。
- 在三个具有挑战性的基准上进行了多个跨域物体检测设置的实验,得到了最先进的性能。
内容概述

检测模型通常依赖于大规模的标注数据来学习具有代表性的特征,但往往难以很好地泛化到存在视觉差异的新目标领域(如阴雾天气与晴朗天气场景)。图像到图像(I2I)转换旨在缓解输入级别的这种领域差距,从而减少视觉领域中的分布转移。
高成本的配对图像(领域间)数据收集促进了业界对无配对图像到图像转换的研究,但往往会导致严重的内容畸变和形状变形,这种失败可能会对下游物体检测任务的性能产生不利影响。指明物体实例可以为改善图像转换提供了直观的方向,但这依赖于物体标注,以便在目标领域中区分物体和背景的空间图像区域,从根本上限制了它们的适用性。
对比学习通过最大化对应输入和输出区域之间的互信息,已成为解决图像到图像转换的一种有前景的策略。但现有方法将图像转换视为一个全局任务,处理具有复杂局部结构的物体的图像时效果不佳。由于物体与背景之间的视觉差异通常很大,论文认为隐式地建模背景和前景物体区域可以提升局部显著区域的转换质量,从而显著改善下游物体检测。此外,前景和背景的分离可以通过局部-全局对比学习来实现。
基于这一直觉,论文提出了一种基于对比学习的图像到图像转换框架,用于跨域物体检测。该框架引入一种结构诱导先验,通过空间注意力掩码优化物体实例的外观,能够有效地将场景解构为背景和前景区域。
整体方案
用于无配对I2I转换的对比学习
自监督表示是在对比学习机制下,通过考虑字典查找任务实现的。给定一个编码查询 \(q\) ,任务是识别在一组编码键 \(\{k_0, k_1, ...\}\) 中的与查询 \(q\) 匹配的唯一正键 \(k_{{+}}\) 。使用InfoNCE损失函数来使 \(q\) 靠近 \(k_{{+}}\) 的同时,推动其远离一组替代负键 \(\{k_{{-}}\}\) :
\mathcal{L}^{\text{NCE}}
= -\log\frac{\exp(q \cdot k_{{+}} \mathbin{/} \tau )}{\exp(q\cdot k_{{+}} \mathbin{/} \tau ) + \sum_{k_{-} } \exp(q\cdot k_{{-}} \mathbin{/} \tau ) }
\label{eq:nce},
\end{equation}
\]
通过约束输入图像和转换输出图像之间匹配的空间位置(图像块)具有高互信息,对比技术可以用于图像到图像的翻译任务。在这种情况下,查询嵌入 \(q\) 是通过编码输出图像的局部区域生成的。正键 \(k_{{+}}\) 是指输入的相应区域,而负键集 \(\{k_{{-}}\}\) 是通过编码输入图像的不同区域进行选择的。

用于I2I转换的空间注意力
论文提出了一种以注意力驱动的方案,学习将输入图像 \(x\) 分解为前景和背景区域,并鼓励翻译模型专注于优化前景物体的外观。
方案采用编码器-解码器架构,其中编码器 \(E_B\) 作为特征提取器,将输入图像 \(x\) 编码低维度的图像表示 \(m_E = E_B(x)\) 。解码器将 \(m_E\) 作为输入,分为两个组件:1)内容生成器 \(G_C\) 生成一组 \(n\) 个内容图 \(\{C_t \,|\, t \in [0,n{-}1]\}\) 。2)注意力生成器 \(G_A\) 输出一组 \(n+1\) 个注意力掩码 \(\{A_t \,|\, t \in [0,n]\}\) 。
通过对生成的前景内容图进行加权求和得到转换后的图像 \(G(x)\) ,权重由相应的注意力掩码给出,并加上一个额外的表示图像的背景内容:
G(x)=\sum_{t=1}^{n} \underbrace{(C^{t} \odot A^{t})}_\textrm{foreground}
+
\underbrace{(x \odot A^{n+1})}_\textrm{background}.
\label{eq:fb}
\end{equation}
\]
使用在公式1中找到的InfoNCE损失来训练生成器,该损失在图像块级别上强制内容和结构的一致性。为了确保转换后的图像与源域 \(Y\) 的外观相匹配,进一步加入经过标准对抗损失训练的鉴别模块 \(D\) :
\mathcal{L}_{adv} = -\mathbb{E}_{y \sim Y} \log D(y)
-\mathbb{E}_{x \sim X} \log (1- D(G(x)))
\label{eq:adv}.
\end{equation}
\]
鉴别器然后最小化标准二分类任务的负对数似然,这等同于最小化模型输出分布与真实源域分布 \(Y\) 之间的Jensen-Shannon(JS) 散度。
局部全局对比学习
为了进一步引导转换任务关注包含具有语义意义的内容的图像区域,在注意力生成器上引入了额外的损失 \(\mathcal{L}_{G_A}\) ,该损失利用了局部和全局图像块之间的关系,完整的优化目标为:
\mathcal{L}_{G} = \mathcal{L}_{adv} + \mathcal{L}^{\text{NCE}} + \mathcal{L}_{G_A}
\label{eq:total1}.
\end{equation}
\]
对 \(x\) 应用两种不同的随机增强,生成变换后的图像 \(x_1\) 和 \(x_2\) ,并相应地得到两组变换后的图像块 \(P_1\) 和 \(P_2\) 。为了获得用于对比学习的局部和全局表征,在注意力生成器 \(G_{A}\) 上附加了两个投影头以及引入了动量复制的 \(G_{Am}\) 和 \(E_{Bm}\) (权重使用指数移动平均进行更新),生成两组全局和局部特征表征 \(\{ f_{A}x_1,f_{A}x_2, f_{A}x_{1}^p, f_{A}x_{2}^p \}\) 和 \(\{ f_{Am}x_1,f_{Am}x_2, f_{Am}x_{1}^p, f_{Am}x_{2}^p \}\) ,计算这些特征集中的所有对之间的 \(\mathcal{L}^{NCE}\) 以优化模型的区分能力,负对则从内存库中抽取。
最后,定义多尺度监督以提高模型识别显著区域的能力。在 \(G_A\) 的每一层输出处引入额外的局部和全局MLP层,并计算每新特征集的infoNCE损失。
因此,对 \(G_A\) 的无监督损失可以表示如下:
\mathcal{L}_{G_A}=\sum_{i=1}^{L} w_i \mathcal{L}^{NCE}_{g \leftrightarrow g} + \sum_{i=1}^{L} w_i \mathcal{L}^{NCE}_{g \leftrightarrow l} +
\sum_{i=1}^{L} w_i \mathcal{L}^{NCE}_{l \leftrightarrow l},
\label{eq:detco}
\end{equation}
\]
其中 \(L\) 是 \(G_A\) 中的层数, \(w_i\) 是一个权重参数,用于控制每层贡献的重要性。
通过将上述损失附加到 \(G_A\) 模块的特征上,能够鼓励注意力生成器提高对语义内容的敏感性,并关注对目标检测任务重要的转换区域。
主要实验


如果本文对你有帮助,麻烦点个赞或在看呗~
更多内容请关注 微信公众号【晓飞的算法工程笔记】

无需配对数据的对比学习图像到图像转换,助力跨域物体检测 | BMVC'24的更多相关文章
- AJAX学习笔记2:XHR实现跨域资源共享(CORS)以及和JSONP的对比----转载
1 前言: 首先对参考文章作者表示感谢,你们的经验总结给我们这些新手提供了太多资源.本文致力于解决AJAX的CORS问题,我在逻辑上进行了梳理:首先,系统的总结了CORS问题的起源-同源策略:其次,介 ...
- 学习ASP.NET Core(11)-解决跨域问题与程序部署
上一篇我们介绍了系统日志与测试相关的内容并添加了相关的功能:本章我们将介绍跨域与程序部署相关的内容 一.跨域 1.跨域的概念 1.什么是跨域? 一个请求的URL由协议,域名,端口号组成,以百度的htt ...
- JavaScript学习总结(一)——延迟对象、跨域、模板引擎、弹出层、AJAX示例
一.AJAX示例 AJAX全称为“Asynchronous JavaScript And XML”(异步JavaScript和XML) 是指一种创建交互式网页应用的开发技术.改善用户体验,实现无刷新效 ...
- JavaScript学习总结(二)——延迟对象、跨域、模板引擎、弹出层、AJAX示例
一.AJAX示例 AJAX全称为“Asynchronous JavaScript And XML”(异步JavaScript和XML) 是指一种创建交互式网页应用的开发技术.改善用户体验,实现无刷新效 ...
- JavaScript学习笔记(一)——延迟对象、跨域、模板引擎、弹出层、AJAX示例
一.AJAX示例 AJAX全称为“Asynchronous JavaScript And XML”(异步JavaScript和XML) 是指一种创建交互式网页应用的开发技术.改善用户体验,实现无刷新效 ...
- SpringBoot学习笔记(7)-----CORS支持解决跨域问题
在实际应用开发中,跨域是一个比较常见的问题,解决方法可以用jsonp,frame,cors等, 这里示例的是SpringBoot对CORS的支持的三种实现方式 第一种:配置一种全局的支持,这种方式需要 ...
- opencv学习之路(37)、运动物体检测(二)
一.运动物体轮廓椭圆拟合及中心 #include "opencv2/opencv.hpp" #include<iostream> using namespace std ...
- 深度学习原理与框架-卷积网络细节-三代物体检测算法 1.R-CNN 2.Fast R-CNN 3.Faster R-CNN
目标检测的选框操作:第一步:找出一些边缘信息,进行图像合并,获得少量的边框信息 1.R-CNN, 第一步:进行图像的选框,对于选出来的框,使用卷积计算其相似度,选择最相似ROI的选框,即最大值抑制RO ...
- opencv学习之路(36)、运动物体检测(一)
一.简介 二.背景减法 图片说明 #include "opencv2/opencv.hpp"using namespace cv; void main() { Mat img1 = ...
- 深度学习(六十四)Faster R-CNN物体检测
随机推荐
- Linux下载安装jdk1.8
Linux下载安装jdk1.8 一.下载 wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=a ...
- C# .net 6 Log4net 安装、配置 以及相关问题处理
安装log4net 首先下载相关Nuget包 安装的时候注意项目的.net版本,我这里使用的是.net 6 在根目录下面新建一个配置文件 log4net.config,并且添加下面相关配置项目 < ...
- Angular Material 18+ 高级教程 – Material Icon
前言 不熟悉 Icon 的可以先看这篇 CSS – Icon. Material Design 有自己的一套 Icon 设计.Angular Material 默认就使用这一套. 不过呢,目前 v17 ...
- 云上分布式SQL Server,你值得拥有
云上分布式SQL Server,你值得拥有 介绍Microsoft SQL Azure 是微软的云关系型数据库,后端存储又称为云 SQL Server(Cloud SQL Server).它构建在 S ...
- mac M1,M2,M3芯片踩坑 nodejs ruby brew
问题&解决方法 先说解决方法, 感兴趣的可以了解事情的经过, 也许我描述的问题不专业, 但确实解决了当下的问题, 欢迎留言讨论 这里主要是两个问题, 一个是启用rosetta模式失败, 一个是 ...
- Dos常用命令 - Dir
Dos命令,用于扫描当前目录创建目录清单 dir /s /b /ad >> "目录清单.txt" 解释: 将 dir /s /b /ad 生成的目录 追加写入目录清单. ...
- golang的类型转换
今天我们来说说一个大家每天都在做但很少深入思考的操作--类型转换. 本文索引 一行奇怪的代码 go的类型转换 数值类型之间互相转换 unsafe相关的转换 字符串到byte和rune切片的转换 sli ...
- 深入理解Redis锁与Backoff重试机制在Go中的实现
目录 Redis锁的深入实现 Backoff重试策略的深入探讨 结合Redis锁与Backoff策略的高级应用 具体实现 结论 在构建分布式系统时,确保数据的一致性和操作的原子性是至关重要的.Redi ...
- JVM--解析运行期优化与JIT编译器
JVM开发团队一直在努力,缩小Java与C/C++语言在运行效率上的差距. 本篇博客,我们来谈一谈JVM(HotSpot)为了提高Java程序的运行效率,都实现了哪些激动人心的技术- 1 JIT编译器 ...
- 封装一个Promise.all 的函数
// 1. 准备三个异步函数 const promise1 = Promise.resolve('prom11ise1'); const promise2 = new Promise(function ...