| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> [CVPR2022基于文本实例分割]ReSTR: Convolution-free Referring Image Segmentation Using Transformers -> 正文阅读 |
|
[人工智能][CVPR2022基于文本实例分割]ReSTR: Convolution-free Referring Image Segmentation Using Transformers |
文章地址:2203.16768.pdf (arxiv.org)个人阅读见解,欢迎大家交流讨论指正~ 一、研究背景虽然近些年语义分割有了很大的进步,但是应用到现实世界下游任务还是有局限,无法处理未定义类别。基于文本的实例分割(Referring image segmentation) 就是我为了解决此问题而提出的任务,Referring image segmentation是一个目标类别没有预定义但在自然语言被描述的前沿的图像分割任务,通过一段自然语言表述(query)分割出实例。这个任务在人机交互、照片编辑等场景广泛应用。 二、相关工作语义分割:FCN,CNN。但是只能对预先定义类别进行分割。 基于文本的实例分割:CNN,RNN,ConvLSTM。卷积很难获取语言表达中实体之间的长期依赖关系,并且不够灵活,无法对两种不同模式之间的交互进行建模。 Vision Transformer:对原始图片进行分块,展平成序列,输入进原始Transformer模型的编码器Encoder部分,最后接入一个全连接层对图片进行分类。 三、ReSTR为了捕捉每个模态的远程交互,ReSTR首先通过Transformer Encoder(Fig.2.a)独立地提取视觉和语言特征。然后,它将视觉和语言特征平行输入到多模融合编码器(Fig.2.b),以捕捉这两种模态之间的细微关系。最后,用于从粗到细分割的高效解码器(Fig.2.c) 将patch-level预测转换为高分辨pixel-level预测。 3.1视觉和语言特征提取Transformer encoder由M个连续的Transformer组成,每个Transformer由Multi-headed Self-Attention (MSA), Layer Normalization (LN), and Multilayer Perceptron (MLP) blocks组成,公式为: MSA由k个 Self-Attention (SA) 组成,公式为:
MSA
?
(
z
)
=
[
S
A
1
(
z
)
,
S
A
1
(
z
)
,
?
?
,
S
A
k
(
z
)
]
W
M
S
A
SA
?
(
z
)
=
A
v
A
=
softmax
?
(
q
k
?
/
D
h
)
其
中
,
W
M
S
A
是
一
个
线
性
映
射
\begin{gathered} \operatorname{MSA}(\mathbf{z})=\left[\mathrm{SA}_{1}(\mathbf{z}), \mathrm{SA}_{1}(\mathbf{z}), \cdots, \mathrm{SA}_{k}(\mathbf{z})\right] \mathbf{W}_{\mathrm{MSA}} \\ \operatorname{SA}(\mathbf{z})=A \mathbf{v} \\ A=\operatorname{softmax}\left(\mathbf{q k}^{\top} / \sqrt{D_{h}}\right) \end{gathered} 其中,\mathrm{W}_{MSA}是一个线性映射
MSA(z)=[SA1?(z),SA1?(z),?,SAk?(z)]WMSA?SA(z)=AvA=softmax(qk?/Dh??)?其中,WMSA?是一个线性映射 Vision encoder: 采用了ViT的思想,将图片分成P×P个小patches加上位置编码输入到Transformers,得到输出。 Language encoder: 将 word embeddings加上位置编码,输入到Transformers。 上述提到的Vision encoder和Language encoder都利用了Transformer encoder,并没做出改进,可以说是本文中的别名。 3.2多模融合编码器由两个Transformer encoder构成(visual-linguistic encoder and linguistic-seed encoder) 输 入 : z v ∈ R N v × D v , z l ∈ R N l × D l , e s ∈ R 1 × D ( N v = H / P × W / P , P 是 p a t c h _ s i z e ) 首 先 , 用 不 同 的 线 性 层 调 整 z v 和 z l 的 通 道 维 度 至 和 c l a s s _ s e e d _ e m b e d d i n g ? e s 一 样 的 D 维 ( e s 是 可 训 练 参 数 , 随 机 初 始 化 ) ; 然 后 , v i s u a l ? l i n g u i s t i c e n c o d e r 将 z v 和 z l 作 为 输 入 , 得 到 p a t c h 的 多 模 特 征 Z v ′ ∈ R N v × D 和 视 觉 关 注 ( V i s i o n ? a t t e n d e d ) 语 言 特 征 Z l ′ ∈ R N l × D : [ z v ′ , z l ′ ] = Transformers ? ( [ z v , z l ] ; θ v l ) 最 后 , Z l ′ 和 e s 输 入 到 l i n g u i s t i c ? s e e d e n c o d e r : e s ′ = Transformers ? ( [ z l ′ , e s ] ; θ l s ) \begin{aligned} &输入:\mathbf{z}_{v} \in \mathbb{R}^{N_{v} \times D_{v}},\mathbf{z}_{l} \in \mathbb{R}^{N_{l} \times D_{l}},\mathbf{e}_{s} \in \mathbb{R}^{1 \times D}(N_{v}=H/P \times W/P,P是patch\_size)\\ &首先,用不同的线性层调整\mathbf{z}_{v}和\mathbf{z}_{l}的通道维度至和 class\_seed\_embedding\ \mathbf{e}_{s}一样的D维(\mathbf{e}_{s}是可训练参数,随机初始化);\\ &然后,visual-linguistic encoder将\mathbf{z}_{v}和\mathbf{z}_{l}作为输入,得到patch的多模特征\mathbf{Z}_{v}^{\prime} \in \mathbb{R}^{N_{v} \times D}和视觉关注(Vision-attended)语言特征\mathbf{Z}_{l}^{\prime} \in \mathbb{R}^{N_{l} \times D}:\\ & \hspace{1cm}\left[\mathbf{z}_{v}^{\prime}, \mathbf{z}_{l}^{\prime}\right]=\operatorname{Transformers}\left(\left[\mathbf{z}_{v}, \mathbf{z}_{l}\right] ; \boldsymbol{\theta}_{v l}\right)\\ &最后,\mathbf{Z}_{l}^{\prime}和\mathbf{e}_{s}输入到linguistic-seed encoder: \\& \hspace{1cm}\mathbf{e}_{s}^{\prime}=\operatorname{Transformers}\left(\left[\mathbf{z}_{l}^{\prime}, \mathbf{e}_{s}\right] ; \boldsymbol{\theta}_{l s}\right)\\ \end{aligned} ?输入:zv?∈RNv?×Dv?,zl?∈RNl?×Dl?,es?∈R1×D(Nv?=H/P×W/P,P是patch_size)首先,用不同的线性层调整zv?和zl?的通道维度至和class_seed_embedding?es?一样的D维(es?是可训练参数,随机初始化);然后,visual?linguisticencoder将zv?和zl?作为输入,得到patch的多模特征Zv′?∈RNv?×D和视觉关注(Vision?attended)语言特征Zl′?∈RNl?×D:[zv′?,zl′?]=Transformers([zv?,zl?];θvl?)最后,Zl′?和es?输入到linguistic?seedencoder:es′?=Transformers([zl′?,es?];θls?)? 因为一个固定的分类器无法满足根据文本表达分割出不同目标mask,所以用 e s ′ \mathbf{e}_{s}^{\prime} es′? 自适应的分类器代替固定分类器,检测每一个patch是否包含一部分的目标实体。 多模融合编码器的目的就是产生自适应分类器,以满足基于文本图像分割中的以下两个需求:
3.3由粗到精的分割解码器计 算 p a t c h ? l e v e l 的 预 测 y ^ p ∈ R N v × 1 : y ^ p = σ ( z v ′ e s ′ ? D ) 其 中 , σ 是 s i g m o i d 函 数 , D 是 标 准 化 项 分 割 解 码 器 对 低 分 辨 率 的 p a t c h ? l e v e l 的 预 测 y ^ p 做 补 偿 : 首 先 , 计 算 m a s k e d 多 模 特 征 z masked? ∈ R N v × D : z masked? = z v ′ ? y ^ p 其 中 , ? 为 对 通 道 维 度 D 做 哈 达 玛 积 ( 矩 阵 相 同 位 置 相 乘 ) , 得 到 维 度 z masked? ∈ R N v × D 然 后 , 在 前 向 传 播 到 分 割 解 码 器 之 前 , 将 上 述 得 到 的 特 征 进 行 拼 接 [ z v , z masked? ] ∈ R N v × 2 D 得 到 视 觉 语 义 , 去 指 导 分 割 解 码 器 。 分 割 解 码 器 由 K ( K = l o g P ) 个 序 列 块 构 成 , 每 个 序 列 快 在 上 采 样 的 同 时 , 将 c h a n n e l 进 行 线 性 投 影 减 少 一 半 。 最 后 , 从 解 码 器 的 输 出 经 过 线 性 和 r e s h a p e 生 成 p i x e l ? l e v e l 的 预 测 结 果 Y ^ m ∈ R H × W × 1 。 在 推 断 模 型 中 , 这 就 是 最 后 的 分 割 结 果 。 \begin{aligned} &计算patch-level的预测 \hat{\mathbf{y}}_{p} \in \mathbb{R}^{N_{v} \times 1}: \\&\hspace{2cm}\hat{\mathbf{y}}_{p}=\sigma\left(\frac{\mathbf{z}_{v}^{\prime} \mathbf{e}_{s}^{\prime \top}}{\sqrt{D}}\right) \hspace{1cm}其中,\sigma是sigmoid函数,\sqrt{D}是标准化项 \\&分割解码器对低分辨率的patch-level的预测\hat{\mathbf{y}}_{p}做补偿: \\&\hspace{1cm}首先,计算masked多模特征 \mathbf{z}_{\text {masked }} \in \mathbb{R}^{N_{v} \times D}: \\&\hspace{2cm}\mathbf{z}_{\text {masked }}=\mathbf{z}_{v}^{\prime} \otimes \hat{\mathbf{y}}_{p} \hspace{1cm}其中,\otimes为对通道维度D做哈达玛积(矩阵相同位置相乘),得到维度\mathbf{z}_{\text {masked }} \in \mathbb{R}^{N_{v} \times D} \\&\hspace{1cm}然后,在前向传播到分割解码器之前,将上述得到的特征进行拼接\left[\mathbf{z}_{v}, \mathbf{z}_{\text {masked }}\right] \in \mathbb{R}^{N_{v} \times 2 D}得到视觉语义,去指导分割解码器。 分割解码器由K(K=logP)个序列块构成,每个序列快在上采样的同时,将channel进行线性投影减少一半。 \\&\hspace{1cm}最后,从解码器的输出经过线性和reshape生成pixel-level的预测结果\hat{Y}_{m} \in \mathbb{R}^{H \times W \times 1}。在推断模型中,这就是最后的分割结果。 \end{aligned} ?计算patch?level的预测y^?p?∈RNv?×1:y^?p?=σ(D?zv′?es′???)其中,σ是sigmoid函数,D?是标准化项分割解码器对低分辨率的patch?level的预测y^?p?做补偿:首先,计算masked多模特征zmasked??∈RNv?×D:zmasked??=zv′??y^?p?其中,?为对通道维度D做哈达玛积(矩阵相同位置相乘),得到维度zmasked??∈RNv?×D然后,在前向传播到分割解码器之前,将上述得到的特征进行拼接[zv?,zmasked??]∈RNv?×2D得到视觉语义,去指导分割解码器。分割解码器由K(K=logP)个序列块构成,每个序列快在上采样的同时,将channel进行线性投影减少一半。最后,从解码器的输出经过线性和reshape生成pixel?level的预测结果Y^m?∈RH×W×1。在推断模型中,这就是最后的分割结果。? 训练的损失函数由patch-level损失和pixel-level损失两部分构成: L ( y ^ p , y p , Y ^ m , Y m ) = λ L b ( y ^ p , y p ) + L b ( Y ^ m , Y m ) \mathcal{L}\left(\hat{\mathbf{y}}_{p}, \mathbf{y}_{p}, \hat{Y}_{m}, Y_{m}\right)=\lambda \mathcal{L}_{b}\left(\hat{\mathbf{y}}_{p}, \mathbf{y}_{p}\right)+\mathcal{L}_{b}\left(\hat{Y}_{m}, Y_{m}\right) L(y^?p?,yp?,Y^m?,Ym?)=λLb?(y^?p?,yp?)+Lb?(Y^m?,Ym?) 四、实验4.1实验设置数据集:ReferIt , UNC, UNC+ , and Gref 评估指标:实验选用了IoU作为评估指标,计算真实值和预测值两个集合的交集和并集之比。最后评估在IoU阈值在{0.5,0.6,0.7,0.8,0.9} 时的准确性 4.2和SoTA的比较根据实验结果,ReSTR在当前任务上有着优异的表现。 4.3融合编码器的变体分析作者提出了三种多模融合编码器:VME(FIg.3.a)、IME(FIg.3.b)、CME(FIg.3.c) 将多模融合编码器的4层Transformer记作{ f 1 , f 2 , f 3 , f 4 f_1,f_2,f_3,f_4 f1?,f2?,f3?,f4?},表格3(a)的实验数据表明:对于class-seed embedding的注意力更加偏向视觉特征(这里实验多模融合编码器采用的是VME),这样会造成不平衡,自适应分类器不能很好捕捉语言表达。而CME就较好的优化了这一缺陷。 C M E ? \mathrm{CME}^{\dagger} CME?是CME的权重共享高效精简版。 五、结论ReSTR是第一个用于基于文本图像分割的无卷积模型。ReSTR采用视觉和语言的Transformer,从特征提取中捕获全局上下文。它还包括由Transformer组成的多模融合编码器,用于对两种模态之间的精细和灵活交互进行编码。此外,多模融合编码器还计算了一个自适应分类器,用于patch级分类。此外,还提出了一种分割解码器,以从粗到精的方式将面片级预测细化为像素级预测。ReSTR在所有公共基准上都优于现有的基于文本图像分割技术。随着patch大小的减小,计算成本呈二次增长,这是我们工作的潜在局限性。 由于密集预测任务的性能在很大程度上取决于使用视觉Transformer时的patch大小,因此它在性能和计算成本之间引入了一种不希望的权衡。为了缓解这种情况,集成线性复杂Transformer架构将是一个很有前途的研究方向,将其留给未来的工作。
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 8:47:45- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |