RIS 系列 See-Through-Text Grouping for Referring Image Segmentation 论文阅读笔记

RIS 系列 See-Through-Text Grouping for Referring Image Segmentation 论文阅读笔记

  • 一、Abstract
  • 二、引言
  • 三、相关工作
    • 3.1 Semantic Segmentation and Embeddings
    • 3.2 Referring Expression Comprehension
    • 3.3 Referring Image Segmentation
  • 四、方法
    • 4.1 视觉表示
    • 4.2 文本表示
    • 4.3 See-through-Text Embedding
    • 4.4 Bottom-up STEP Heatmaps
    • 5.5 Top-down Heatmap Refinement
      • 细节
    • 4.6 训练
  • 五、实验
    • 5.1 消融研究
    • 5.2 与 SOTA 方法的比较
    • 5.3 定量分析
  • 六、结论

写在前面

  最近 Arxiv 没啥新东西了,找篇老的文章读读,看看它们之间的区别在哪里。

  • 论文地址:See-Through-Text Grouping for Referring Image Segmentation
  • 代码地址:源文未提供
  • 收录于:ICCV 2019
  • Ps:2023 年的最后一篇博文阅读笔记,我今年的 flag 也实现啦。主页 更多干货,欢迎关注呀,期待 6 千粉丝有你的参与呦~

一、Abstract

  基于传统的分组技术,本文提出一种方法来解决指代分割。提出的方法受循环卷积神经网络 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 的信息。方法优势总结如下:

  • 不同于 “拼接-卷积” 的处理,文本的方法显式地学习到一个视觉-文本 co-embedding,名为 See-through-Text Embedding Pixelwise (STEP) 来对齐两个模态;
  • 提出的 STEP 输出一个兼容性得分来衡量给定的指代表达式,反过来又关联相关像素到对应区域。其中的分组原则配备了传统的 bottom-up 方法用于图像分割;
  • 提出的 ConvRNN 以及合适的加权/注意力计划确保了迭代融合过程的成果,增强了最后的分割效果;
  • 提出的方法是一种标注的 DNN 方法,其结构包含 bottom-up 和 top-down 推理。在几大数据集上实现了 SOTA 的效果。

三、相关工作

3.1 Semantic Segmentation and Embeddings

  首先引入 Fully Convolutional Network (FCN),接下来是一些方法的介绍:DeepLab、DeViSE 等。本文的方法同样也计算注意力,但是在像素水平上而不是 box 水平上。

3.2 Referring Expression Comprehension

  首先是对 REC 的粗略介绍,接着举例一些方法,还提到了 VQA。通常采用 Recurrent
Neural Network (RNN) 来编码序列,此外还引入一种卷积的 RNN 来融合多个热力图。此外, embedding 的共同学习还广泛应用在 VQA 中。 不同之处:并非使用平均池化将每个区域转变为一个向量用于后续的 embedding,而是稠密地 embed 每个像素的视觉表示到一个公共空间。提出的 See-through-Text Embedding Pixelwise (STEP) 为后续的 top-down 分组提供了上下文信息。

3.3 Referring Image Segmentation

  这一部分就有点多了,首先指出谁是第一个引入 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

4.1 视觉表示

  采用 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}} Ft 来确定,其中 ℓ 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

4.2 文本表示

  使用 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 wiS 到一个 300D 的词 embedding w i ∈ R 300 \mathrm{w}_i\in\mathbb{R}^{300} wiR300。输入的句子 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} Ft 有关。之后分别在每个隐藏状态的输出上附上一个 1 × 1 1\times1 1×1 卷积,以得到 h j ↦ h ~ j ∈ R 400 \mathbf{h}_j\mapsto\tilde{\mathbf{h}}_j\in\mathbb{R}^{400} hjh~jR400 v i ↦ v ~ i ∈ R 400 \mathbf{v}_i\mapsto\tilde{\mathbf{v}}_i\in\mathbb{R}^{400} viv~iR400。然后在每个时间步 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=iIπ{Pt1(i)}×j=1nπ{⟨v~i,h~j⟩}hj其中 π { ⋅ } \pi\{\cdot\} π{} 表示 Softmax 函数, P t − 1 ( i ) P_{t-1}(i) Pt1(i) 为像素 i i i 成为指代前景的概率。 视觉参与的 s t \mathrm{s}_t st 表示连接到预测的分割图 P t − 1 P_{t-1} Pt1 上。

  GloVe 模型预训练在公共的 Crawl 数据集上,840B 个 tokens。每个句子 20 个单词长度。biLSTM 的细胞尺寸设为 1000。

4.3 See-through-Text Embedding

  为计算 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(Wvv+bv))=NL2(tanh(Wss+bs))其中 W W W b b b 分别为 fc 网络的权重和 bias, N L 2 ( ⋅ ) \mathrm{NL}_2(\cdot) NL2() 表示 L 2 L2 L2-归一化,输出维度设为 1000。

4.4 Bottom-up STEP Heatmaps

  准备使用余弦相似度来衡量每一视觉-文本对的相似度。在像素 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)⟩}其示意图如下图所示:

在这里插入图片描述

5.5 Top-down Heatmap Refinement

  时间步 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=σ(Rfht1+Wfxt+bf)zt=σ(Rzht1+Wzxt+bz)h^t=tanh(Rh(ftht1)+Whxt+bh)ht=ztht1+(1zt)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=σ(WPhT+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 卷积的输入,从而生成最终的指代分割。

4.6 训练

  完整的 DNN 模型连接解耦的 bottom-up 和 top-down 过程。为使得网络端到端训练,采用双向插值上采样热力图:
P T → upsample P ∈ R W × H P_T\xrightarrow{\text{upsample}} P \in \mathbb{R}^{W\times H} PTupsample PRW×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=HW1i{GlogP+(1G)log(1P)}(i)
  模型采用 Adam 优化器训练,700K 次迭代。权重衰减和初始的学习率分别为 0.005,0.00025,采用 polynomial 衰减,其指数为 0.9。

五、实验

  • 数据集:ReferItGame (ReferIt)、UNC & UNC+、Google-Ref (GRef);
  • 指标:mean intersection-over-union metric (mIoU)、Prec@X: X ∈ { 0.5 , 0 : 6 , 0.7 , 0.8 , 0.9 } X\in \{0.5,0:6,0.7,0.8,0.9\} X{0.5,0:6,0.7,0.8,0.9}

5.1 消融研究

在这里插入图片描述
在这里插入图片描述

5.2 与 SOTA 方法的比较

在这里插入图片描述

5.3 定量分析

在这里插入图片描述
在这里插入图片描述

六、结论

  本文提出一种 DNN 架构,由两个解耦模块组成,用于解决 RIS 任务。 第一个模块解决 bottom-up grouping 问题,输出为 See-through-Text Embedding Pixelwise (STEP) 热力图。第二个模块将 ConvRNN 视为 top-down 驱动机制来提炼生成的 STEP 热力图。创新点在于 ConvRNN 的输入为前一步指代的输出。实验效果很好。

写在后面

  读这篇论文就知道不是大陆的笔锋,原来是湾湾国立清华大学出品。论文新颖性放在 18、19 年来说还是可以的,实验也还行。

  落笔千言,终究结束。2023 年啊,52周,写完了 52 篇高质量博文。期待我们下一次相见~

另外吐槽下 CSDN 2023 年的博客之星,越来越水了,真实离谱,一堆灌水,一坨翔。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/310009.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

macos下转换.dmg文件为 .iso .cdr文件的简单方法

为了让镜像文件在mac 和windows平台通用, 所以需要将.dmg格式的镜像文件转换为.iso文件, 转换方法也非常简单, 一行命令即可 hdiutil convert /path/to/example.dmg -format UDTO -o /path/to/example.iso 转换完成后的文件名称默认是 example.iso.cdr 这里直接将.cdr后缀删…

进阶学习——Linux系统服务器硬件认识与RAID磁盘

目录 一、服务器知识补充 1.硬件 2.服务器常见故障 二、认识RAID 1.什么是RAID 2.RAID的优点 3.RAID的实现方式 三、RAID磁盘陈列 1.RAID 0 磁盘陈列介绍——RAID 0 2.RAID 1 磁盘陈列介绍——RAID 1 3.RAID 5 磁盘陈列介绍——RAID 5 4.RAID 6 磁盘陈列介绍——RA…

【Web】vulhub-httpd apache解析漏洞复现(1)

目录 ①CVE-2017-15715 ②apache_parsing_vulnerability ①CVE-2017-15715 贴出源码&#xff1a; <?php if(isset($_FILES[file])) {$name basename($_POST[name]);$ext pathinfo($name,PATHINFO_EXTENSION);if(in_array($ext, [php, php3, php4, php5, phtml, pht]))…

TOGAF架构开发方法

TOGAF针对架构开发方法定义了一系列阶段和步骤&#xff0c;这些阶段和步骤对架构的迭代过程进行了详细、标准的描述。 企业架构的项目过程 一、预备阶段&#xff08;Preliminary&#xff09; 1、目标 预备阶段的目标是&#xff1a; 对组织的背景和环境进行审查&#xff08;调…

简单vlan划分和dhcp中继(Cisco Packet Tracer模拟)

文章目录 1. 前言2. 功能实现2.1. dhcp服务器接入2.2. 学校web服务器2.3. 设置学校dns服务器2.4. 设置线路冗余2.5. 配置ac。 1. 前言 在这里我们的计网作业是使用思科的Cisco Packet Tracer进行对校园网的简单规划&#xff0c;这里我对校园网进行了简单的规划&#xff0c;功能…

优化算法3D可视化

编程实现优化算法&#xff0c;并3D可视化 1. 函数3D可视化 分别画出 和 的3D图 import numpy as np from matplotlib import pyplot as plt import torch# 画出x**2 class Op(object):def __init__(self):passdef __call__(self, inputs):return self.forward(inputs)def for…

python+django游戏分享论坛网站49c2c

本系统主要包括管理员和用户两个角色组成&#xff1b;主要包括首页、个人中心、用户管理、游戏类型管理、游戏文章管理、交流论坛、系统管理等功能的管理系统。 系统权限按管理员和用户两类涉及用户划分。 &#xff08;1&#xff09;管理员功能需求 管理员登陆后&#xff0c;主…

python+django高校教材共享管理系统PyCharm 项目

本中原工学院教材共享平台采用的数据库是mysql&#xff0c;使用nodejs技术开发。在设计过程中&#xff0c;充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护、操作方便以及页面简洁等特点。系统所要实现的功能分析&#xff0c;对于现在网络方便的管理&…

CSS 动态提示框

​​ <template> <div class"terminal-loader"><div class"terminal-header"><div class"terminal-title">提示框</div><div class"terminal-controls"><div class"control close"…

听GPT 讲Rust源代码--src/tools(36)

File: rust/src/tools/clippy/clippy_lints/src/loops/empty_loop.rs 在Rust源代码中&#xff0c;empty_loop.rs文件位于src/tools/clippy/clippy_lints/src/loops/目录下&#xff0c;它的作用是实现并提供一个名为EMPTY_LOOP的Lint规则。Clippy是一个Rust的静态分析工具&#…

gitlab 11.11.8的备份与恢复及500错误的修复

gitlab已经集成了非常方便的备份和恢复命令&#xff0c;只要我们执行这些命令就能完成gitlab的备份与恢复了。 我想gitlab备份与恢复的目的无非就是将已经运行了很久的旧的gitlab服务&#xff0c;迁移到新的服务器上。如果你旧的gitlab上项目很少&#xff0c;就需要考虑迁移服…

Android实验:contentprovider 实验+SQLite 数据库的实现

目录 SQLite实验目的实验内容实验要求项目结构代码实现结果展示 SQLite SQLite 是一个开源的嵌入式关系数据库&#xff0c;实现了自给自足的、无服务器的、配置无需的、事务性的 SQL 数据库引擎。它是一个零配置的数据库&#xff0c;这意味着与其他数据库系统不同&#xff0c;…