RIS系列:Multi-Modal Mutual Attention and Iterative Interaction for Referring Image Segmentation 论文阅读笔记
写在前面
新的一周又开始了,继续冲~
这篇论文是最近放在 Arxiv 上面的,看着应该比较新颖。大致扫一遍,工作量非常饱满,但网络结构怎么说呢,好像有一部分是堆嵌出来的?大量的注意力机制操作,然后也是站在了前人的肩膀上。
- 论文地址:Multi-Modal Mutual Attention and Iterative Interaction for Referring Image
- 代码地址:原论文未提供链接
- 收录于:IEEE TIP 2023
- PS:2023年每周一篇论文阅读笔记,主页更多干货,欢迎关注吖,期待 4 千粉丝有你呦~
一、Abstract
首先指出 Referring image segmentation(RIS)的定义,然后表明问题:最近的方法大量使用 Transformer,其中注意力机制仅采用语言输入作为注意力的权重计算方式,而输出的特征中却并未显式地融合语言特征。介于其输出主要由视觉信息主导,限制了模型全面理解多模态信息,从而导致后续 mask 解码的不确定性。
于是本文提出 Multi-Modal Mutual Attention (M3Att) and Multi-Modal Mutual Decoder (M3Dec) 来融合这两个模态的信息。在 M3Dec 基础上,提出 Iterative Multimodal Interaction (IMI) 对语言和视觉特征进行深层次交互。此外,引入 Language Feature Reconstruction (LFR) 保留被提取特征中的语言信息。实验效果很牛批。
二、引言
RIS 旨在根据给定的语言表达式在输入图像中生成相应的目标 mask。主要挑战在于未受限的表达式类型以及场景图中目标的多样性。
最近 Transformer 的引入加快了 CV-NLP 任务的发展,尤其是注意力机制。如下图所示:
由于其中语言特征仅用于计算注意力权重,称其为语言参与的视觉特征 language-attended vision feature (LAV)。然而,对于 RIS 来说,语言信息也是极其重要的。于是又引入一组视觉参与的语言特征 visionattended language features (VAL) ,使用语言特征来描述每个像素。但是 VAL 和 LAV 都有限制:其实质都是单模态特征且只表示多模态信息的一部分。
于是本文提出利用特征融合来增强通用的注意力机制,并设计出 Multi-Modal Mutual Attention (M3Att),如图 1(b) 所示。M3Att 有两种注意力路径:橘色,处理和输出视觉参与的语言特征;蓝色,处理和输出语言参与的视觉特征。之后这两种特征融合在一起生成深度交互的多模态特征。在 M3Att 基础上进一步设计一种 Modal Mutual Decoder(M3Dec)特征来作为特征优化融合器和提取器,进一步增强多模态特征。
M3Dec 的注意力特征使得语言特征也只是在解码器的第一层使用,而视觉特征在每层都用到,这就造成了模态不平衡问题:模型更倾向于关注视觉信息,而语言信息可能会随着网络的堆叠消失。于是提出 Multi-modal Interaction (IMI),逐渐地迁移语言特征并在 M3Dec 的每一层增强语言信息。
此外,GT mask 监督是唯一的监督方式,所用到的损失函数也未能促进模型关注语言信息。于是在 IMI 基础上,提出 Language Feature Reconstruction (LFR) ,进一步保留 M3Dec 中的语言信息,相应引入一种语言重构损失来直接监督多模态特征。
本文贡献如下:
- 提出 Multi-Modal Mutual Attention (M3Att) 和 Modal Mutual Decoder(M3Dec)来处理和融合多模态特征;
- 引入两个组件 Iterative Multi-Modal Interaction (IMI)、Language Feature Reconstruction (LFR) 来进一步促进 M3Dec 中的多模态特征深度交互;
- 在 RefCOCO 一系列数据集上表现很好。
三、相关工作
A、Referring segmentation
大多数前人工作的一个共同的特点在于:语言信息是在某些 “步骤” 上注入到多模态特征中。大多数最近的工作一般使用语言特征两次:拼接视觉特征时,作为辅助的注意力模块输入时。这些方法不能感知语言信息是否随着模型的训练而存在丢失的情况。相比之下,本文提出的方法在整个模型训练过程中一直持续迭代地利用这些语言信息,也能确保语言信息在整个网络中一直留存。
B、Transformer
介绍一下 Transformer 的由来,之后在 NLP 和 CV 领域的开支落叶,以及最近的大规模预训练模型用于视觉-语言任务。但大多数模型建立在通用的 Transformer 基础上,而这最初只是应用在单模态上的,因此这些方法并未对后续的多模态特征进行优化。本文提出 Mutual Attention mechanism,专用于多模态特征的设计,且输出真正的多模态特征。
四、方法
模型总览图如上图所示,输入包含:图像
I
I
I,包含
N
t
N_t
Nt 个单词的语言表达式
T
T
T。首先采用 CNN 从
I
I
I 中提取图像特征
F
v
i
s
∈
R
H
×
W
×
C
F_{vis}\in\mathbb R^{H\times W\times C}
Fvis∈RH×W×C,采用双向 LSTM 从
T
T
T 中提取语言单词级别的特征
F
t
∈
R
N
t
×
C
F_t\in\mathbb R^{N_t\times C}
Ft∈RNt×C、整个输入句子的特征
F
t
′
F_t'
Ft′(LSTM 的最后状态输出)。之后将视觉特征送入
N
e
n
c
N_{enc}
Nenc 层的 Transformer 编码器中得到深度视觉特征
F
e
n
c
F_{enc}
Fenc。接下来,将
F
e
n
c
F_{enc}
Fenc 作为 Modal Mutual Decoder(M3Dec)和 Iterative Multi-Modal Interaction (IMI) 的输入,进行多模态信息的深度交互。最后,Mask 解码器采用 Transformer 编码器和 M3Dec 的输出生成 mask。此外,提出 Language Feature Reconstruction (LFR) 模块来促进 M3Dec 中语言信息的利用,并防止在模型尾部信息的丢失。
A、Multi-Modal Mutual Attention
之前的大多数方法采用上图 3(a) 的方式,语言特征仅仅用于产生注意力权重来表明哪块视觉特征区域重要,因此语言信息并未直接参与到最后的输出 mask 中,同时随着解码器深度的增加,语言信息将会在解码器中急剧丢失。
为解决这一问题,提出 Multi-Modal Mutual Attention(M3Att),如上图 3(b) 所示。M3Att 以两个模态为输入,并转化为 key 和 value。接下来使用语言特征
F
t
∈
R
N
t
×
C
F_t\in\mathbb R^{N_t\times C}
Ft∈RNt×C 和 Transformer 编码器
F
e
n
c
∈
R
H
W
×
C
F_{enc}\in\mathbb R^{HW\times C}
Fenc∈RHW×C 输出的视觉特征作为 M3Att 的输入。具体来说,首先用线性层将语言特征投影到 key
F
L
k
F_L^k
FLk 和 values
F
L
v
F_L^v
FLv,类似的投影视觉特征到
F
V
k
F_V^k
FVk、
F
V
v
F_V^v
FVv。接下来产生交互注意力矩阵:
A
m
u
t
=
1
C
F
L
k
(
F
V
k
)
T
A_{mut}=\frac{1}{\sqrt{C}}F_L^k(F_V^k)^T
Amut=C1FLk(FVk)T其中
A
m
u
t
∈
R
N
t
×
H
W
A_{mut}\in\mathbb R^{N_t\times HW}
Amut∈RNt×HW,之后进行归一化:
F
V
a
=
softmax
(
A
m
u
t
)
F
V
v
F
L
a
=
softmax
(
A
m
u
t
T
)
F
L
v
\begin{gathered} F_V^a =\text{softmax}(A_{mut})F^v_V\\ F_L^a =\text{softmax}(A_{mut}^T)F_L^v \end{gathered}
FVa=softmax(Amut)FVvFLa=softmax(AmutT)FLv其中 Language-attended vision feature (LAV),即
F
V
a
∈
R
N
t
×
C
F_V^a\in\mathbb R^{N_t\times C}
FVa∈RNt×C,沿着特征通道进行 softmax 归一化,
F
V
F_V
FV 中的每
N
t
N_t
Nt 个特征向量对应着语言输入中每个单词的视觉特征;Vision-attended language feature (VAL),即
F
L
a
∈
R
H
W
×
C
F_L^a\in\mathbb R^{HW\times C}
FLa∈RHW×C,其中每个向量对应着视觉特征中每个像素的语言特征。
Fusing of multi-modal attended features
接下来将
F
V
a
F_V^a
FVa 中的每个视觉特征视为线性层的权重从而应用在
F
L
a
F_L^a
FLa 上,即
F
m
u
l
=
F
V
a
(
F
L
a
)
T
F_{mul}=F_V^a(F_L^a)^T
Fmul=FVa(FLa)T,
F
m
u
l
∈
R
N
t
×
H
W
F_{mul}\in\mathbb R^{N_t\times HW}
Fmul∈RNt×HW,其中
N
t
N_t
Nt 是 query 的序列长度,
H
W
HW
HW 为通道数量。最后应用一个线性层将其通道数量映射回
C
C
C,并实现 M3Att 的输出。
基于 M3Att,建立 Multi-Modal Mutual Decoder (M3Dec)。M3Dec 有
N
d
e
c
N_{dec}
Ndec 个堆叠层,每层都有相同的结构以及两个输入:编码器的输出特征和 query,其中语言特征
F
t
F_t
Ft 作为 query 的输入,Transformer 编码器的输出
F
e
n
c
F_{enc}
Fenc 作为被编码的特征。
在每一层内,首先在 query 上应用一个多头注意力层,接下来一个 M3Att 来融合两组特征:query 特征 和 Transformer 编码器的输出
F
e
n
c
F_{enc}
Fenc。输出的多模态特征进一步使用多头交叉注意力来索引,产生解码器层的输出。之后每个 M3Att 层的输入作为后续层的 query 输入,从而替代第一层的语言特征,而最后一层的输出给到 Mask 解码器来产生输出 mask。
B、Iterative Multi-Modal Interaction
IMI 模块在每两个 M3Dec 层之间插入,如下图所示:
其输入为 M3Dec 第
n
n
n 层
F
d
e
c
n
∈
R
N
t
×
C
F_{dec}^n\in\mathbb R^{N_t\times C}
Fdecn∈RNt×C 的输出以及前一个 IMI 层
F
l
n
−
1
∈
R
N
t
×
C
F_{l}^{n-1}\in\mathbb R^{N_t\times C}
Fln−1∈RNt×C。首先用线性层映射
F
l
n
−
1
F_{l}^{n-1}
Fln−1,生成当前层的语言特征
F
l
n
F_l^n
Fln。第一个 IMI 块的语言输入为单词特征
F
t
F_t
Ft。
接下来使用线性层投影多模态特征,并计算重组后语言特征的注意力矩阵:
A
l
n
=
softmax
(
ReLU
[
F
d
e
c
n
W
a
n
]
(
F
l
n
)
T
)
A_l^n=\operatorname{softmax}(\operatorname{ReLU}[F_{dec}^n W_a^n](F_l^n)^T)
Aln=softmax(ReLU[FdecnWan](Fln)T)
A
l
n
A_l^n
Aln 之后重塑为新的语言特征
F
i
n
=
A
l
n
F
l
′
n
F_i^{n} = A_l^{n} F_l^{\prime n}
Fin=AlnFl′n,其中
F
l
′
n
=
ReLU
[
F
l
n
W
l
′
n
]
F_l^{\prime n}=\operatorname{ReLU}[F_l^n W_l^{\prime n}]
Fl′n=ReLU[FlnWl′n]。
F
l
n
F_l^n
Fln 接着重新注入到 M3Dec 的输出层
F
d
e
c
n
F_{dec}^{n}
Fdecn:
F
d
e
c
′
n
=
BN
(
F
d
e
c
n
+
w
c
i
n
F
i
n
)
F^{\prime n}_{dec}=\text{BN}(F^n_{dec}+w^n_{ci}F^n_i)
Fdec′n=BN(Fdecn+wcinFin)其中
w
c
i
n
w^n_{ci}
wcin 为可学习的权重,
BN
\text{BN}
BN 表示 batch 归一化。输出的
F
d
e
c
′
n
F^{\prime n}_{dec}
Fdec′n 送入到下一个 M3Dec 层作为 query 的输入。
C、Language Feature Reconstruction
Language Feature Reconstruction (LFR) 模块位于 M3Dec 层的最后(图 2),旨在重构最后一个 M3Dec 输出的语言特征,其结构如下图所示:
其输入为语言特征
F
t
∈
R
N
t
×
C
F_t\in\mathbb R^{N_t\times C}
Ft∈RNt×C,
F
t
′
∈
R
1
×
C
F_t'\in\mathbb R^{1\times C}
Ft′∈R1×C 以及 M3Dec 最后一层
F
d
e
c
∈
R
N
t
×
C
F_{dec}\in\mathbb R^{N_t\times C}
Fdec∈RNt×C 的输出。
首先
F
t
F_t
Ft、
F
t
′
F_t'
Ft′ 和多模态特征
F
d
e
c
F_{dec}
Fdec 被映射到同一特征空间:
F
p
r
o
j
=
1
N
t
+
1
∑
ReLU
(
[
(
F
t
+
e
)
©
F
t
′
]
W
p
r
o
j
)
F_{proj}=\frac{1}{N_t+1}\sum\text{ReLU}\Big([(F_t+e)\copyright F_t']W_{proj}\Big)
Fproj=Nt+11∑ReLU([(Ft+e)c◯Ft′]Wproj)其中
©
\copyright
c◯ 为拼接操作,所有的
©
\copyright
c◯ 和
∑
\sum
∑ 都是在序列长度的维度上进行,即
[
(
F
t
+
e
)
©
F
t
′
]
∈
R
(
N
t
+
1
)
×
C
[(F_t+e)\copyright F_t']\in\mathbb R^{(N_t+1)\times C}
[(Ft+e)c◯Ft′]∈R(Nt+1)×C。
e
e
e 表示 cosine 位置编码,
W
p
r
o
j
∈
R
C
×
C
W_{proj}\in\mathbb R^{C\times C}
Wproj∈RC×C 为可学习的参数,
N
t
N_t
Nt 是归一化后的句子长度。
接下来,应用三个堆叠的线性层在 M3Dec 的输出
F
d
e
c
F_{dec}
Fdec 上,然后使用平均池化层缩小句子长度维度,得到重构后的语言特征
F
r
e
c
F_{rec}
Frec。通过语言重构损失 Mean Squared Error(均方误差)最小化
F
p
r
o
j
F_{proj}
Fproj 和
F
r
e
c
F_{rec}
Frec 的距离。
D、Mask Decoder and Loss Function
如上图所示,Mask 解码器的输入为 编码器的特征
F
e
n
c
∈
R
H
×
W
×
C
F_{enc}\in\mathbb R^{H\times W\times C}
Fenc∈RH×W×C 以及 M3Dec 的输出
F
d
e
c
∈
R
N
t
×
C
F_{dec}\in\mathbb R^{N_t\times C}
Fdec∈RNt×C。Mask 解码器中,首先用自注意力模块处理
F
d
e
c
F_{dec}
Fdec,接下来将被处理的解码器特征视为一个
1
×
1
1\times1
1×1 卷积层的卷积核,将
F
e
n
c
F_{enc}
Fenc 视为输入,
N
t
N_t
Nt 是这一卷积后的特征图。最后使用堆叠的卷积层来输出预测的 mask。上采样层在卷积层之间插入,用于恢复 mask 的空间尺寸。
输出的 mask 采用 Binary Cross Entropy 损失进行监督,最终的损失函数定义如下:
L
=
w
m
a
s
k
L
m
a
s
k
+
w
r
e
c
L
r
e
c
\mathcal L=w_{mask}\mathcal L_{mask}+w_{rec}\mathcal L_{rec}
L=wmaskLmask+wrecLrec其中
w
m
a
s
k
w_{mask}
wmask 和
w
r
e
c
w_{rec}
wrec 分别是 mask 损失
L
m
a
s
k
\mathcal L_{mask}
Lmask 和语言特征重构损失 Language Feature Reconstruction
L
r
e
c
\mathcal L_{rec}
Lrec 的权重。注意 LFR 不直接参与采用 mask 的预测和推理过程。那么就可以作为一个即插即用的模块用于任何的参考分割方法。
五、实验
两个评估指标:IoU 得分以及建立在 IoU 之上的准确度得分 Precision@X。
A、实施细节
数据集:RefCOCO、RefCOCO+、RefCOCOg;
Darknet-53 backbone 预训练在 MSCOCO 上,语言 embedding 用 GloVE 生成。在 RefCOCO/RefCOCO+ 上,语言表达式填充至 15 个单词,在 RefCOCOg 上填充至 20 个单词。CNN backbone 输入为
416
×
416
416\times416
416×416,Transformer backbone 输入为
480
×
480
480\times480
480×480。Transformer 的通道数量为 256,mask 解码器 通道数量为 512。2 层编码器层,每层 8 个头。
w
m
a
s
k
=
1
w_{mask}=1
wmask=1,
w
r
e
c
=
0.1
w_{rec}=0.1
wrec=0.1。50 epochs,batch 48,Adam 优化器,学习率 0.005,4 块 NVIDIA V100。
B、消融实验
M3Att、VAL、LAV
IMI、LFR
Mask Decoder
C、Visualizations
D、与 SOTA 方法的比较
E、失败的案例
六、结论
本文旨在设计一种多模态特征融合增强网络用于参考图像分割,提出了 Multi-Modal Mutual Attention (M3Att) 和 Multi-Modal Mutual Decoder (M3Dec),设计了 Iterative Multi-Modal Interaction (IMI) 进一步增强 M3Dec 的特征融合能力,引入了 Language Feature Reconstruction (LFR) 模块来确保语言信息在整个网络中的完整性。大量的实验表明本文提出的方法很有效。
写在后面
这篇文章的写作手法值得借鉴,尤其是各个模块的引入介绍,对于写作小白是个重要的参考文献。另外这篇论文的创新点和相应的实验效果也是不错的,达到了目前的 SOTA。文中提及的 LFR 也可以作为一个 Trick 来涨点。