无需配对数据的对比学习图像到图像转换,助力跨域物体检测 | 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物体检测
随机推荐
- sharepoint 打开rdl报表,报表服务器数据库内出错。此错误可能是因连接失败、超时或数据库中磁盘空间不足而导致的
最近在做reporting services报表的时候,部署到sharepoint后,打开rdl报表,经常遇到一个问题: 报表服务器数据库内出错.此错误可能是因连接失败.超时或数据库中磁盘空间不足而导 ...
- Figma 学习笔记 – Constraints 约束
用途 Constraints 用于 responsive design, 子元素和父元素建立约束关系后, 当父元素 dimension 变换的时候, 子元素会做出相应的变化 (移动位置或 resize ...
- Perfetto分析进阶
一.Perfetto介绍 Perfetto是Android Q中引入的全新下一代平台级跟踪工具,为Android.Linux和Chrome平台提供了一种通用的性能检测和跟踪分析工具集.其核心是引入了一 ...
- js 时间日期
Date.parse() 把字符串时间转化为时间戳. new Date(时间戳) 转化 时间格式 时间比较大小
- Python之py9-录音自动下载
#!/usr/bin/env python # -*- coding:utf-8 -*- import os import re import pandas as pd import numpy as ...
- k8s的ReplicationController
ReplicationController 存活探针 Kubemetes有以下三种探测容器的机制: HTTPGET探针对容器的IP地址(你指定的端口和路径)执行HTTPGET请求,如果探测器收到响应, ...
- KubeSphere 集群配置 NFS 存储解决方案
作者:申红磊,QingCloud 容器解决方案架构师,开源项目爱好者,KubeSphere Member 在正式阅读本文之前,先友情提醒一下:不建议您在生产环境中使用 NFS 存储(特别是 Kuber ...
- javascript 中==和===的区别【转载】
javascript 中==和===的区别[转] 对于JavaScript中比较运算符,可能大家用的比较多的是"==".对于"==="很多人可能很陌生 ...
- CTime类缺陷
如果构造CTime的时间不在下面这个范围内,会抛出异常
- Rust 版本一直是 1.4 或者其它版本
Rust 版本一直是 1.4 或者其它版本 通过rustup update 升级或者 rustup default 设置版本也不行 解决方法 删除 rust-toolchain 这个东西,这个东西覆盖 ...