写在前面
最近 Arxiv 没啥新东西了,找篇老的文章读读,看看它们之间的区别在哪里。
基于传统的分组技术,本文提出一种方法来解决指代分割。提出的方法受循环卷积神经网络 convolutional-recurrent neural network (ConvRNN) 驱动,迭代地执行自顶向下的,对分割线索的自下而上的聚合过程。给定语言表达式,本文提出的方法学习去预测与其相关的每个像素,并驱动一个 See-through-Text Embedding Pixelwise (STEP) 热力图。通过学到的视觉-文本 co-embedding 得出像素水平的分割 masks。将热力图转化为一个精炼的热力图,ConvRNN 执行一个自上而下的近似。在精炼热力图辅助下,通过重新评估注意力分布来更新指代表达式的文本表示,然后计算一个新的 STEP 热力图作为 ConvRNN 的下一步输入。本文提出的方法泛化性强,无需来自其他 DNN 模型的目标检测结果,达到了 SOTA 的效果。
首先指出深度神经网络 deep neural networks (DNNs) 搭配大尺度图像/视频数据集的分割效果很好,而问题在于这些方法智能应用在那些预定义的目标类别上。接下来指出 RIS 的定义,应用。
本文旨在解决 RIS 问题,其中自然语言指代表达式用于引导像素级图像 mask 的生成。接下来再水一下 RIS 任务的难度。之前的方法总是采用 “拼接-卷积” 的流程:先拼接视觉和语言特征,然后应用卷积操作在拼接后的特征上。然而在未考虑像素的视觉特征与自然语言描述相关联的情况下,效果不那么好。
接下来是对 bottom-up 和 top-down 方法的介绍,bottom-up 方法关注于将像素分组到一致的区域,而 top-down 则是利用先验信息,例如目标表示去完成这一任务。本文提出的分割方法是一种综合利用 bottom-up 和 top-down 视角下的 DNN 方法。
给定一个 RIS 训练集,先学习一种兼容性表示是可行的。例如那些在指代区域中的像素产生较高的兼容性得分,而不在指代区域内的分数较低。
如上图所示,提出的方法包含一个收集像素分割线索的的 bottom-up 部分 See-through-Text Embedding Pixelwise (STEP),旨在衡量视觉-语言 co-embedding 的兼容性。另一方面,计算分类损失的 GT 信息可以教导模型以 top-down 的方式精炼每一步的 STEP 热力图。此外,设计了一个 ConvRNN 模型来迭代 bottom-up 和 top-down 的信息。方法优势总结如下:
首先引入 Fully Convolutional Network (FCN),接下来是一些方法的介绍:DeepLab、DeViSE 等。本文的方法同样也计算注意力,但是在像素水平上而不是 box 水平上。
首先是对 REC 的粗略介绍,接着举例一些方法,还提到了 VQA。通常采用 Recurrent
Neural Network (RNN) 来编码序列,此外还引入一种卷积的 RNN 来融合多个热力图。此外, embedding 的共同学习还广泛应用在 VQA 中。 不同之处:并非使用平均池化将每个区域转变为一个向量用于后续的 embedding,而是稠密地 embed 每个像素的视觉表示到一个公共空间。提出的 See-through-Text Embedding Pixelwise (STEP) 为后续的 top-down 分组提供了上下文信息。
这一部分就有点多了,首先指出谁是第一个引入 RIS 任务的,之后是一些方法的介绍,例如 MAttNet 等。
总结下:大多数之前的方法遵循 “拼接-卷积” 的理念,而卷积层用于融合这些拼接的多模态特征用于生成最终的分割。相比之下,文本的方法显式地学习一个 co-embedding 用于衡量多模态特征的兼容性,最后对图像分割的 bottom-up 进行分组。此外,使用了一个 ConvRNN 整合 top-down 和 bottom-up 的分割线索。
如上图所示,给定一个输入图像 I I I 和语言表达式 S S S,这一任务旨在定位到由 S S S 指定的前景区域。提出的 ConvRNN 受 see-through-text grouping 所驱动。在每一时间步上,首先从特征提取模型的感受野特征图上决策出 I I I 的视觉表示。之后 bottom-up grouping 将 embeded 这两种表示到一个公共特征空间用于逐像素的衡量多模态间的兼容性且生成 STEP 热力图 Q t Q_t Qt,表明每个像素的前景概率。以 Q t Q_t Qt 为输入,ConvRNN 将其提炼为 P t P_t Pt,即为时间步 t t t 的指代分割概率图。建立在这些迭代过程之上,本文的方法最终得到一个分割结果 P T P_T PT。
采用 DeepLab ResNet-101v2,预训练在 Pscal VOC 上生成视觉表示。输入图像调整至 W × H W\times H W×H 尺寸,零填充,输出五个特征图 F ℓ , ℓ ∈ { 1 , 2 , 3 , 4 , 5 } F_{\ell},\ell\in\{1,2,3,4,5\} Fℓ,ℓ∈{ 1,2,3,4,5}。在每个 F ℓ F_{\ell} Fℓ 上直接拼接上一个 8 维度的空间坐标来增强空间位置表示信息。ConvRNN 执行从 t = 1 , … , T t=1,\ldots,T t=1,…,T,其中 T = 5 × K T=5\times K T=5×K,表明 K K K 折部署。在每一时间步上,视觉表示由 F ℓ t F_{\ell_{t}} Fℓt 来确定,其中 ℓ t = 4 m o d 5 \ell_t = 4~mod~5 ℓt=4 mod 5。
具体来说,设置输入图像尺寸 W = H = 320 W=H=320 W=H=320,因此特征图的尺寸分别是: F 1 = F 2 = 80 × 80 F_1=F_2=80\times80 F1=F2=80×80, F 3 = F 4 = F 5 = 40 × 40 F_3=F_4=F_5=40\times40 F3=F4=F5=40×40。添加 8 维空间坐标表示后,通道维度分别为 72 , 264 , 520 , 1032 , 2056 72,264,520,1032,2056 72,264,520,1032,2056。
使用 S = { w 1 , w 2 , … , w n } S=\{w_1,w_2,\ldots,w_n\} S={
w1,w2,…,wn} 表示给定的语言表达式,而在时间步 t t t 上的文本表示为 s t \mathrm s_t st。使用预训练的 GloVe 模型来编码每个词 w i ∈ S w_i\in S wi∈S 到一个 300D 的词 embedding w i ∈ R 300 \mathrm{w}_i\in\mathbb{R}^{300} wi∈R300。输入的句子 S S S 然后通过 GloVe 词 embedding 进行表示。注意:若 I I I 中的区域变得明显时,则 S S S 的文本表示也会逐渐增强。至此,拼接 S S S 中的 n n n 个词 embedding,然后送入单层的双向 LSTM。令 h j \mathrm{h}_j hj 表示 biLSTM 中,第 j j j 个单词的隐藏层输出,令 v i \mathrm{v}_i vi 表示 I I I 中像素 i i i 位置的视觉特征向量, v i \mathrm{v}_i vi 的维度与 F ℓ t F_{\ell_t} Fℓt 有关。之后分别在每个隐藏状态的输出上附上一个 1 × 1 1\times1 1×1 卷积,以得到 h j ↦ h ~ j ∈ R 400 \mathbf{h}_j\mapsto\tilde{\mathbf{h}}_j\in\mathbb{R}^{400} hj↦h~j∈R400 和 v i ↦ v ~ i ∈ R 400 \mathbf{v}_i\mapsto\tilde{\mathbf{v}}_i\in\mathbb{R}^{400} vi↦v~i∈R400。然后在每个时间步 t t t 上, S S S 的文本表示执行逐像素 co-embedding 如下:
s t = ∑ i ∈ I π { P t − 1 ( i ) } × ∑ j = 1 n π { ⟨ v ~ i , h ~ j ⟩ } h j \mathrm{s}_t=\sum_{i\in I}\pi\{P_{t-1}(i)\}\times\sum_{j=1}^n\pi\{\langle\tilde{\mathrm{v}}_i,\tilde{\mathrm{h}}_j\rangle\}\mathrm{h}_j st=i∈I∑π{
Pt−1(i)}×j=1∑nπ{⟨v~i,h~j⟩}hj其中 π { ⋅ } \pi\{\cdot\} π{
⋅} 表示 Softmax 函数, P t − 1 ( i ) P_{t-1}(i) Pt−1(i) 为像素 i i i 成为指代前景的概率。 视觉参与的 s t \mathrm{s}_t st 表示连接到预测的分割图 P t − 1 P_{t-1} Pt−1 上。
GloVe 模型预训练在公共的 Crawl 数据集上,840B 个 tokens。每个句子 20 个单词长度。biLSTM 的细胞尺寸设为 1000。
为计算 ConvRNN 在每一时间步 t t t 上的 STEP,首先定义每一像素的视觉表示为 v \mathrm{v} v,然后采用两组映射 ϕ ( v ) \phi (\mathrm{v}) ϕ(v) 和 ψ ( s ) \psi(\mathrm{s}) ψ(s) 将 ( v , l ) (\mathrm{v},\mathrm{l}) (v,l) 映射到视觉-文本 co-embedding 的邻近空间上。因此,像素关联的任务就变为了通过相应的 embedding 函数来预测两个模态表示间的关系。
除 biLSTM 外,还考虑了 atrous convolution 来增强上下文信息。具体来说,对所有来自 F ℓ , ℓ ∈ { 1 , 2 , 3 , 4 , 5 } F_{\ell},\ell\in\{1,2,3,4,5\} Fℓ,ℓ∈{
1,2,3,4,5} 的特征图,利用卷积核尺寸为 3 × 3 3\times3 3×3,比例为 r = 3 r=3 r=3 的 atrous convolutions 生成。因此,给定成对表示 v \mathrm{v} v 和 s \mathrm{s} s,STEP 通过一个归一化的单层全连接网络生成其 ebedding:
ϕ ( v ) = N L 2 ( tanh ( W v ⋅ v + b v ) ) ψ ( s ) = N L 2 ( tanh ( W s ⋅ s + b s ) ) \begin{aligned}\phi(\mathbf{v})&=\mathrm{NL}_2(\tanh(W_v\cdot\mathbf{v}+\mathbf{b}_v))\\\psi(\mathbf{s})&=\mathrm{NL}_2(\tanh(W_s\cdot\mathbf{s}+\mathbf{b}_s))\end{aligned} ϕ(v)ψ(s)=NL2(tanh(Wv⋅v+bv))=NL2(tanh(Ws⋅s+bs))其中 W W W 和 b b b 分别为 fc 网络的权重和 bias, N L 2 ( ⋅ ) \mathrm{NL}_2(\cdot) NL2(⋅) 表示 L 2 L2 L2-归一化,输出维度设为 1000。
准备使用余弦相似度来衡量每一视觉-文本对的相似度。在像素 i i i 处与视觉特征 v i \mathrm{v}_i vi 的STEP 相似度通过内乘获得:
Q ( i ) = max { 0 , ⟨ ϕ ( v i ) , ψ ( s ) ⟩ } Q(i)=\max\{0,\left.\langle\phi(\mathbf{v}_i),\psi(\mathbf{s})\rangle\right\} Q(i)=max{
0,⟨ϕ(vi),ψ(s)⟩}其示意图如下图所示:
时间步 t t t 上的 STEP 的热力图 Q t Q_t Qt 源于 bottom-up grouping,其中像素关联通过衡量给定文本表达式 s t \mathrm{s}_t st 实现。这一过程极度依赖于局部联系,因此缺乏对指代分割的全局视角。于是本文将 top-down 过程整合进 ConvRNN,在指代分割的 GT 指导下来提炼 Q t Q_t Qt。
在本文的方法中,选择在 ConvRNN 下实施 top-down 的热力图提炼。具体来说,采用 GRU 卷积作为 base 模型,输入为 { x t } \{x_t\} {
xt},则有:
f t = σ ( R f ∗ h t − 1 + W f ∗ x t + b f ) zt = σ ( R z ∗ h t − 1 + W z ∗ x t + b z ) h ^ t = tanh ( R h ∗ ( f t ⊙ h t − 1 ) + W h ∗ x t + b h ) h t = z t ⊙ h t − 1 + ( 1 − z t ) ⊙ h ^ t \begin{aligned} &f_t =\sigma(R^f*h_{t-1}+W^f*x_t+b^f) \\ &\text{zt} =\sigma(R^z*h_{t-1}+W^z*x_t+b^z) \\ &\hat{h}_{t} =\tanh(R^h*(f_t\odot h_{t-1})+W^h*x_t+b^h) \\ &h_{t} =z_t\odot h_{t-1}+(1-z_t)\odot\hat{h}_t \end{aligned} ft=σ(Rf∗ht−1+Wf∗xt+bf)zt=σ(Rz∗ht−1+Wz∗xt+bz)h^t=tanh(Rh∗(ft⊙ht−1)+Wh∗xt+bh)ht=zt⊙ht−1+(1−zt)⊙h^t其中 f t f_t ft、 z t z_t zt、 h t h_t ht 分别为重置门的门值,更新门的门值,以及 t t t 时刻帧的隐藏激活值。输入的权重和循环隐藏单元分别为 W ∗ W^* W∗ 和 R ∗ R^* R∗, b b b 表示 bias, σ \sigma σ 为 sigmoid 函数, ⊙ \odot ⊙ 表示逐元素乘法。GRU 将输入和遗忘门组合到一个更新门 z t z_t zt 上,用于平衡之前的激活值 h t 1 h_{t1} ht1 和更新的激活值 h ^ t \hat h_t h^t,遗忘门 f t f_t ft 决定是否遗忘之前的激活。
来自 ConvGRU 的最终隐藏层由多分辨率信息图组成,用于预测指代的前景概率。使用一个 1 × 1 1\times1 1×1 卷积来得到最终的概率图:
P T = σ ( W P ∗ h T + b P ) P_T=\sigma(W^P*h_T+b^P) PT=σ(WP∗hT+bP)
GRU 卷积的权重尺寸为 h × w × c × f h\times w\times c\times f h×w×c×f,其中 h , w , c , f h,w,c,f h,w,c,f 分别表示卷积核的高、宽、输入通道的数量、滤波器的数量。实验中设置 h = w = c = 3 h=w=c=3 h=w=c=3, f = 32 f=32 f=32。共有 5 × K 5\times K 5×K 张 STEP 热力图 { Q t } \{Q_t\} { Qt} 作为 GRU 卷积的输入,从而生成最终的指代分割。
完整的 DNN 模型连接解耦的 bottom-up 和 top-down 过程。为使得网络端到端训练,采用双向插值上采样热力图:
P T → upsample P ∈ R W × H P_T\xrightarrow{\text{upsample}} P \in \mathbb{R}^{W\times H} PTupsampleP∈RW×H
接下来是二值交叉熵损失函数的定义:
L = − 1 H W ∑ i { G log P + ( 1 − G ) log ( 1 − P ) } ( i ) L=\frac{-1}{HW}\sum_i\{G\log P+(1-G)\log(1-P)\}(i) L=HW−1i∑{
GlogP+(1−G)log(1−P)}(i)
模型采用 Adam 优化器训练,700K 次迭代。权重衰减和初始的学习率分别为 0.005,0.00025,采用 polynomial 衰减,其指数为 0.9。
本文提出一种 DNN 架构,由两个解耦模块组成,用于解决 RIS 任务。 第一个模块解决 bottom-up grouping 问题,输出为 See-through-Text Embedding Pixelwise (STEP) 热力图。第二个模块将 ConvRNN 视为 top-down 驱动机制来提炼生成的 STEP 热力图。创新点在于 ConvRNN 的输入为前一步指代的输出。实验效果很好。
写在后面
读这篇论文就知道不是大陆的笔锋,原来是湾湾国立清华大学出品。论文新颖性放在 18、19 年来说还是可以的,实验也还行。
落笔千言,终究结束。2023 年啊,52周,写完了 52 篇高质量博文。期待我们下一次相见~
另外吐槽下 CSDN 2023 年的博客之星,越来越水了,真实离谱,一堆灌水,一坨翔。
更多【论文阅读-RIS 系列 See-Through-Text Grouping for Referring Image Segmentation 论文阅读笔记】相关视频教程:www.yxfzedu.com