msf 生成php马_场景图生成任务(Scene graph generation)入坑

1 - 问题 & 任务

图片场景图生成任务(Image scene graph generation)目标是让计算机自动生成一种语义化的图结构(称为 scene graph,场景图),作为图像的表示。图像中的目标对应 graph node,目标间的关系对应 graph edge(目标的各种属性,如颜色,有时会在图中表示)。

这种结构化表示方法相对于向量表示更加直观,可以看做是小型知识图谱,因此可以广泛应用于知识管理、推理、检索、推荐等。此外,该表示方法是模态无关的,自然语言、视频、语音等数据同样可以表示成类似结构,因此对于融合多模态信息很有潜力。

Scene graph 刚开始提出时[1],被应用到图片检索任务,利用 scene graph 去图片库搜索内容相近的图片。当时使用到的 scene graph 是基于目标检测数据集人工标注的,耗时耗力。随着 Visual Genome 大型数据集的公开,其对超过十万的图片进行了 scene graph 的人工标注,如何自动生成 scene graph 成为了热门的研究任务。

fff9e58f10cfaf6ad589ed58b9092fbe.png
Figure 1 场景图生成的输入输出 [3]

形式化地,记关系集合为R,目标集为O, 目标位置为B (一般是 Bounding box),图像为 I,则图片场景图为G={ B, O, R}。根据给定条件多少,场景图生成任务可以由简单到复杂细分为以下几种:

  • 关系分类(Predicate classification): 给定图中目标位置及类别,对关系进行归类,记为 P(R | O, B, I)。
  • 场景图分类(Scene graph classification): 给定图中目标位置,对关系及目标关系进行归类,记为 P(R, O | B, I)。
  • 场景图生成(Scene graph generation): 只给定图片,要求生成 scene graph,记为 P( G={R, O, B} | I)。

前一个任务可认为是后一个任务简化版。在评测模型能力时,一般需要考察模型在此三个任务的表现,以评价模型中关系分类模块、目标分类模块及目标定位模块的作用。

2 - 数据 & 观察

数据集

Visual Genome 于2016年提出[1],是这个领域最常用的数据集,包含对超过 10W 张图片的目标、属性、关系、自然语言描述、视觉问答等的标注。与此任务相关的数据总结如下:

  • 目标 or 图节点:用 bounding box 标注位置,并且有对应的类别名称。Visual Genome 包含约 17,000 种目标。
  • 关系 or 图的边:可以动作 (jumping over),空间关系(on),从属关系(belong-to, has),动词(wear)等。Visual Genome 包含一共 13K 种关系。
  • 属性(在图中附着在是节点上):可以实验颜色(yellow),状态(standing)等。Visual Genome 包含约 155000 种属性。

对于目标、关系、属性对应的字词,使用了 WordNet 进行规范化,目的是为了归并同义词。不过常用的只是 Visual Genome 的一个子集([3,4,5] 文献都用到这个子集,简称为 VG150),选取了150 种常见目标,50 种常见关系,统计详见下表[2], [3]。

1f1f9782ffa3feb48949382e0bdb3458.png
Table 1 关于目标和关系类别的统计 [3]

一些重要的观察

[3] 对 Visual Genome 数据集进行了详细的统计分析,一个重要观察是:目标和关系总是以成对或成团的子结构反复出现(文章中称为 motif)。如 FIGURE 2左图,person 总是和 possessive 和 semantic 类型的关系一起出现(见表格)。因此,知道主语宾语目标类型很容易推断关系类型,如 FIGURE 2右图中蓝线表示,知道首尾节点类别后,对于关系预测的 top-5 精度能够达到 95% 以上。

另外,结合我们的生活常识,目标、关系的类别预测和整个图片上下文(context,比如其他的目标和关系)是密切相关的。比如知道了“马在吃草”,会提升检测到目标“人”和关系“骑”的概率。这个认知启发研究者们要考虑利用全局信息协助局部的目标和关系预测,常见的手法是 RNN,GCN 等模型[2]。

4b1cb5b25aab6e33070f6ceb29a417c4.png
Figure 2 关于数据的 Insights [3]

3 - 重要工作和方法

场景图的生成可认为基于目标检测任务的更 high-level 的图像理解任务。目标检测需要得到图像中的目标,场景图生成在此基础更进一步,需要标记目标之间存在什么视觉关系(有无关系,并且是什么关系)。形式化而言, P( G={R, O, B} | I) = P(B | I) P(O | I, B) P(R | O, B, I)。其中 P(B, O | I) = P(B | I) P(O | I, B) 表示目标检测任务,第二项 P(R | O, B, I) 表示视觉关系检测。这种分解也暗示大多数场景图生成模型的结构,即基于常用的目标检测模型(如 Faster-RCNN [4]),并增加关系预测模块 (比如 relation head)。

方法分类

目前的大多数场景图生成模型,根据任务的分解大致分为如下两种:

  • P(O,B,R | I) = P(O,B | I) * P(R| I,O,B),即先目标检测,再进行关系预测(有一个专门研究该子任务的领域,称为研究视觉关系识别,visual relationship detection)。最简单的方法是下文中基于统计频率的 baseline 方法,另外做视觉关系检测任务的大多数工作都可以应用到这里。
  • P(O,B,R | I) = P(B | I) * P(R,O| I,O,B),即先定位目标,然后将一张图片中所有的目标和关系看做一个未标记的图结构,再分别对节点和边进行类别预测。这种做法考虑到了一张图片中的各元素互为上下文,为彼此分类提供辅助信息。接下来的 IMP、GRCNN 及 Neural Motif 中基于 RNN 的方法属于这一类。事实上,自此类方法提出之后 [2],才正式有了 scene graph generation 这个新任务名称(之前基本都称为 visual relationship detection)。

重要方法

基于统计频率的方法 (Frequency baseline [3])

从第二节中对 Visual Genome 的统计分析看出,知道主语宾语的标签,两者的关系的类型很容易猜测(见 Figure 2 有图)。这表明只要做好目标检测,然后根据统计的频率猜测关系,即为本方法的基本思路。

显然这种方法忽略了很多可用信息,比如上下文、位置、视觉信息等。忽略这些信息的后果是,不能对同一类别的多个实例进行区分。比如图片中A在踢球,B 在守门,C 是个无关人员,利用这种盲猜的方法做预测,A,B,C 和球的关系将会是相同的结果。然而实验表明,该方法提供了很强的 baseline 效果,即使是当前效果最好的方法也仅仅是微弱的优势[5]。

IMP (Iterative message passing [2])

由第二节的 Insight 1引出的方法,以往的方法独立地预测每对目标之间的关系,这种局部的预测忽略了图片的上下文。如果在预测时考虑这种上下文,可以减少关系预测的模糊性。因此,[3] 中研究者设计的神经网络模型中在边和节点进行信息传递。利用 RNN 进行多次迭代传递之后,可以认为在进行目标归类(node)和关系归类(edge)时融合了全局信息。在实现上有几个重点问题如下:

  • 边和节点特征的表示。节点特征可以使用对应图像区域的特征,边的特征文章说的比较模糊,大致意思是使用相关联的两个 bounding box 的图像 feature 生成。
  • 信息传递。有从边到节点的传递,也有从节点到边的传递。以边到节点为例,对于一个节点而言,计算相关联的两条边的加权平均,得到 node message。将 node message 作为 GRU 的输入,GRU 的初始状态为 node feature,继而生成 node 经信息传递后的状态。经过多次迭代之后,则可以认为 node feature 同时包含了局部和全局信息。

fbfc2b37aeaf72082b1acb88269148ca.png
Figure 3 IMP 模型 [2]

整体模型 Figure 3,遵循 P(B|I) P(O,R|I) 的结构,即先生成 object proposals,然后给object 和 relationship 打标签。

Neural Motif [3]

不同于[3]的信息传递,该文采用 RNN 来融合全局和局部信息,从而得到边和节点包含全局信息的特征,再做目标和关系的归类,模型结构见 Figure 4。

281081bd735cfc70fe180d3f88ced794.png
Figure 4 Neural motif 模型 [3]

然而,使用 RNN融合全局信息存在一些缺点。由于 RNN 的输入是顺序的,proposals 以什么顺序输入影响信息的融合。即使文章中发现根据 x 坐标对proposal 排序后输入效果相对最好,但和随机顺序差别不大。RNN 毕竟只能接受的一维顺序输入,而目标关系的图结构是高阶的,RNN 模拟不了。

此外,这篇文章首次使用关系的统计频率作为偏移,加到模型的类别输出上。在模型中还引入了目标类别的语义信息(i.e. word embedding),有利于语义相近的目标产生类似的输出。常用的例子是由于“马”和“象”意义相近,“人骑马”的训练数据有利于检测“人骑象”,即使“人骑象”在训练数据中可能没有出现过。 此技巧首次在[6]提出,告诉我们语义信息也是一个重要的信息源。

Graph RCNN [7]

该方法提出关系 Proposal 模块,先检测关系是否存在,再判断是什么关系。该文章用到的图神经网络架构见 Figure 5。文章中声称是当时效果最好的方法,然而一段时间后我才发现,效果并没有超过 Neural motif,被误导了一阵子。

关系 Proposal 网络类似于目标检测的 object proposal,先筛选出存在关系的目标对,再去识别是什么关系。好处在于不用对每组目标都预测是什么关系。思路是ok的,对数据集进一步的统计可以看出来,由于已知主语宾语的关系分布 bias 问题非常严重,识别有没有关系显得比识别是什么关系更重要(在已知两者存在关系的条件下)。识别是否存在关系,可能需要用到目标的位置、类别、视觉信息等。该文章看起来只用到了目标检测阶段得到的类别信息,是可以改进的。

442a374354b8ba19fe086d53ffae880a.png
Figure 4 GRCNN 模型 [7]

方法评价指标

最常用的评价指标是 recall @ top k, 即主谓宾关系三元组 <subject, predicate, object> 在选取前 k 个最可信预测结果的召回率。三元组的confidence score一般采用 score(subject) * score(object) * score(predicate) 。如果在排序时,一对目标只选取最可信的那组关系来排序,则称之为 constrained scene graph generation;如果一对目标所有的关系三元组都参与排序,即一组目标可能预测多个关系,则称之为 unconstrained scene graph generation。这两种方式分别对应两种 recall 指标。

另外,可以对每一种谓语关系计算召回率,所有 predicate类别的平均召回率也是一个常用指标。还有一种召回率称之为 zero-shot recall,指的是对那些训练数据中从未出现过的关系三元组的召回率,以此反映出方法的泛化能力。

[7]提出更多的评价方法,在计算召回率时,不能只考虑三元组的命中,还需要考虑 <o, r> <o> 等二元组和单个元素的预测是否准确。不过后来的工作较少采用。

单纯使用召回率或许还不够,为什么不评测生成的精度(precision)?前人工作主要用召回率,据说是数据关系标注稀疏,用搜索问题常用的召回率来做评测。可以容忍一些找错的情况,只关注已标注的这些关系是不是被模型捞出来了。但是毕竟是要生成实用的场景图,生成太多与图片不符的内容也不合理,尤其是当下游任务对精度敏感时,比如视觉问题回答VQA。

4 – 其他碎碎念

离实用还有多远

当前生成的场景图离构建可实用的知识库还有相当的距离,分别从关系、节点、属性3个方面说明如下:

  • 关系:目前关系种类涵盖范围有限,不同的关系不互斥,大部分是浅层语义的关系。 left-to, on 这种空间关系甚至都不需要深度推理。另外,目标之间的关系可以是从浅到深的多种关系,比如 man on horse, man siting-on horse, man riding horse,这里的问题在于 graph nodes 之间可能存在多个连接边,并且连接边的意义是有混淆的。再有,难以处理更加高维的关系,比如 girl eat cake with spoon,这种高维关系如何在图中表示?
  • 节点:当前只能做到 object-level 的节点构建,不能做到 instance-level,比如知道图中的节点是一个人,而不知道是谁。
  • 属性:目前场景图生成的工作主要集中在对于关系和目标的预测,场景图中很少加入属性。属性对于是场景图的分析还是重要的,比如对于图片语义检索。[8] 中提出的 baseline 方法是,对每一种属性(e.g. 颜色)设计一个分类器,显然这种方法比较耗时耗力,如何改进值得探索。

合理利用先验知识

如何利用人类的先验知识协助场景图生成是一个研究趋势。所谓先验知识可以是统计信息、人类常识、语义信息等。场景图结构完全依靠数据驱动的学习太难了,尤其是对于视觉关系这种意义不太明确又丰富多样的元素。已有一些朝这个方向的工作,比如[6], [9],可以关注。

从数据角度列举当前的挑战

最近从数据角度,发现该任务的几个棘手的问题。

  1. 关系简单。从表1看出,空间关系和从属关系占了所有标注的90%以上,语义关系只占很少部分。
  2. 关系类别不互斥。比如 on, sitting on。这使得同一对目标可能存在多个关系标注。视觉关系分类建模成“多选一”的分类问题是否合理,也需要深思。
  3. 关系整体分布长尾效应严重。一般而言,可以将视觉关系分为空间关系、从属关系和语义关系等几种。对每一种关系的画柱状图,可以看出长尾分布非常严重。
  4. 关系的条件分布 bias 问题严重。比如已知主语宾语是 person 和 head,基本就可以猜测关系是 person has head 或是无关系。这也导致用复杂模型来预测并不比盲猜好多少的现象。
  5. 标注稀疏。VG 数据集每个图片大致有10个标注目标,但只有不到5组关系标注。很多目标之间存在关系,但却没有标注。

这些问题不能完全归咎于数据集,很大程度上由任务本身决定,换数据集问题照样存在。还有毕竟重建数据集工作量巨大,也不能保证重新标注得多好。更聪明的做法或许是接受现实,从解决问题的方法上努力,比如引入半监督学习处理标注稀疏的问题 [10],或者引入因果推理处理 bias 问题 [5]。

参考

[1] J. Johnson et al., “Image retrieval using scene graphs,” in 2015 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), Boston, MA, USA, Jun. 2015, pp. 3668–3678, doi: 10.1109/CVPR.2015.7298990.

[2] D. Xu, Y. Zhu, C. B. Choy, and L. Fei-Fei, “Scene Graph Generation by Iterative Message Passing,” p. 10, 2017.

[3] R. Zellers, M. Yatskar, S. Thomson, and Y. Choi, “Neural Motifs: Scene Graph Parsing with Global Context,” in 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition, Salt Lake City, UT, Jun. 2018, pp. 5831–5840, doi: 10.1109/CVPR.2018.00611.

[4] S. Ren, K. He, R. Girshick, and J. Sun, “Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks,” IEEE Trans. Pattern Anal. Mach. Intell., vol. 39, no. 6, pp. 1137–1149, 2017, doi: 10.1109/TPAMI.2016.2577031.

[5] K. Tang, Y. Niu, J. Huang, J. Shi, and H. Zhang, “Unbiased Scene Graph Generation from Biased Training,” ArXiv200211949 Cs, Mar. 2020, Accessed: Mar. 10, 2020. [Online]. Available: http://arxiv.org/abs/2002.11949.

[6] C. Lu, R. Krishna, M. Bernstein, and L. Fei-Fei, “Visual Relationship Detection with Language Priors,” ArXiv160800187 Cs, Jul. 2016, Accessed: Mar. 04, 2020. [Online]. Available: http://arxiv.org/abs/1608.00187.

[7] J. Yang, J. Lu, S. Lee, D. Batra, and D. Parikh, “Graph R-CNN for Scene Graph Generation,” ArXiv180800191 Cs, Aug. 2018, Accessed: Feb. 21, 2020. [Online]. Available: http://arxiv.org/abs/1808.00191.

[8] R. Krishna et al., “Visual Genome: Connecting Language and Vision Using Crowdsourced Dense Image Annotations,” ArXiv160207332 Cs, Feb. 2016, Accessed: Feb. 22, 2020. [Online]. Available: http://arxiv.org/abs/1602.07332.

[9] A. Zareian, S. Karaman, and S.-F. Chang, “Bridging Knowledge Graphs to Generate Scene Graphs,” ArXiv200102314 Cs, Jan. 2020, Accessed: Feb. 22, 2020. [Online]. Available: http://arxiv.org/abs/2001.02314.

[10] V. S. Chen, P. Varma, R. Krishna, M. Bernstein, C. Re, and L. Fei-Fei, “Scene graph prediction with limited labels,” in Proceedings of the IEEE International Conference on Computer Vision, 2019, pp. 2580–2590.

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值