一文带你畅游视觉关系检测(Visual Relationship Detection)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一文带你畅游视觉关系检测(Visual Relationship Detection)相关的知识,希望对你有一定的参考价值。

参考技术A

视觉关系识别/检测 任务不仅需要识别出图像中的物体以及他们的位置(detection),还要识别物体之间的关系(relationship)。例子如下图所示,输入为一张图片,输出为objects和bounding boxes,以及objects之间的关系,如<person on motorcycle>。

视觉关系识别是图像理解的基础,可以 应用

挑战:

这篇文章将整理与视觉关系相关的论文,并作简要的介绍。论文列表:

第一篇是比较经典的论文,提出了一个数据集VRD和一个结合语言先验的关系预测模型。

Visual Phrases只有13个类型,Scene Graph 有两万多关系,但是它平均每个对象只有大约2个谓词关系。除了这三个数据集,还有有名的 VIsual Genome 大数据集,包含99658张图片,19237个关系,标注了物体类型,位置,属性和物体间的关系(场景图),还有caption,qa。虽然数据量大了,但是数据集的标注还是会有一些没有被标注的,毕竟组合多。

思考:论文利用了语言先验word embedding,对预测起到了很大的帮助,但是先验知识可能会使得关系预测倾向于频繁的关系,而忽略了视觉方面的信息。一个解决方案是先预训练视觉模型。然而,真正合理的融合先验的方式我觉得不是简单的乘法(先验可能会误导),是一个思考的点。

**Motivation: **这篇论文的启发是来源于知识图谱中,使用转移向量(translation vector)来表示实体之间的关系(见 Trans系列的知识表示 )。在视觉关系中,通过将对象的视觉特征映射到低维的关系空间中,然后用对象间的转移向量来表示对象之间的关系,比如person+ride=bike。如下图所示:

所以为了让 能够接近 ,即相似,loss函数为

在实验中,单从在VRD数据集上的predicate预测,与上一篇论文Lu对比是没有提升的(44<47),这是这篇论文中没有说明的,是我从两篇论文的实验数据中发现的。这篇论文在另外两个任务上效果比Lu的好些,我觉得有可能是用了Faster RCNN的缘故。
除了这三个任务的实验对比,还加了图像检索,zero-shot关系检测(没有Lu的好),特征重要性分析的实验。实验也表明了关系检测任务对目标检测任务的准确率的提升,不过其实很少。

更多相关的可参考原论文。

思考:论文用TransE来表示关系空间中对象与predicate的关系,如何映射到关系空间,更好的表达对象的联系,甚至predicate间的关系,是值得研究的一个点。(比如结合语言先验等,因为我觉的它的效果其实应该比不上加了语言先验的)

这篇论文跟上一篇论文类似,都是将<subject, rel, object>中的subject和object映射到一个空间中,他们间的关系表示为 .上一篇是基于知识图谱embedding的TransE(NIPS2013,Translating embeddings for modeling multi-relational data),而这一篇是基于TransD(ACL2015,Knowledge graph embedding via dynamic mapping matrix)。这是一个研究的方向,怎么将object,relationship很好的在embedding空间中表示。
论文的整个框架如图:

思考:这也是篇关于投射对象和关系到另一空间的论文,不过任务稍有不同,效果也比上一篇好些。同上,embedding也是可研究的一个方向。

这篇论文使用场景图scene graph来建模图片中对象以及它们的关系,任务是生成场景图:

这篇论文的亮点就是利用上下文信息以及消息传递,迭代更新以更好地预测关系。这是一个在场景图层级上的新的预测关系的方式,其消息传递方法等都是可以改进的地方,甚至结合embedding。

这篇论文的主要贡献是使用因式分解的方法来得到信息先验(a factorization scheme that yields highly informative priors),也就是关系的先验分布,即两个object间的predicate分布。
这个分布是通过张量分解的方法得到,具体是:
(1) 张量构建Tensorize :关系张量 , i, j是对象,k是关系,表示为关系k的矩阵 的堆叠,每一个值对象i, j在数据集中有关系k的次数。张量表示可以反映objects间的内在联系,关系分布等。

最后BP训练SG网络,θ设为0.2.
在实验中,论文对比了Lu的Visual Relationship Detection with Language Priors,和Xu的Scene Graph Generation by Iterative Message Passing,都有较好的提升。

思考:这篇论文通过张量分解的方式来得到关系的先验分布,与论文Visual Relationship Detection with Language Priors用到的语言先验有着异曲同工之处,都是用predicate的先验分布来调整网络预测的关系,提升zero shot能力。 不过我认为这种直接相乘的调整方式是比较粗糙的,需要更好的方式来融合先验分布与视觉上预测的分布。

这是一篇用场景上下文信息和实体间的关系来改进目标检测的论文,举个被错误检测的例子说明上下文的作用:

这篇论文做的任务不是关系预测,而是利用关系来消歧关系中的相同类的对象,其实是根据关系元组,来定位对象的位置。比如下图中需要确定人踢球是图中的哪个人,在什么位置。

论文首先用attention到对象object/subject,然后用predicate的卷积核来进行注意力的shift,同时object和subject需要结合。

这又是李飞飞团队做的工作(他们团队做了很多relationship相关的工作,语言先验那篇,迭代消息传递那篇等),做的是语句生成图像,利用了场景图表示语句中对象间的关系/联系,一个很有趣的研究,应该是第一个使用场景图的图像生成尝试了。

Sentence一般包含多个对象,以及对象间关系的描述,是比较复杂的,从上图也可以看出,直接从语句到图像效果是很差的。但是当我们把语句解析为场景图,然后再生成图像,可以更好的生成图像表示对象间的关系。
具体做法大致是根据场景图做布局预测 (layout prediction) 预测对象的位置,最后结合噪声,用生成网络生成图像。具体细节这里就不啰嗦了,列一下最终效果吧。

可以看出,对象的位置基本位于正确的位置,不过生成的图像质量不是很高,所以还是有很大的改进空间的。

这篇论文是Arxiv上今年7月份的论文,利用图像中的对象间的关系和对象属性,做QA任务。关系挖掘根据图像和问题得到一系列相关的fact——关系,对象属性,然后再attention到需要的fact上,联合视觉特征最后得到最终answer。

思考:这种提取fact的方法为QA提供了高层的语义信息,也符合人的思维方式。相比于我之前调研过的方法( 一文带你了解VQA ),可以认为这是知识的补充,之前的方法有的是只有类,属性信息,或者是额外的文本形式的知识,本论文的方法多了关系的检测,且用一个网络来提取高层语义用于QA,相比直接做数据增强更具解释性。不过论文没有用到那个bottom-up attention,这是我觉得可以改进的地方。

至此,有关VIsual Ralationship的相关问题,方法大家应该有个大致的了解和收获。有什么问题和想法欢迎一起交流学习。

以上是关于一文带你畅游视觉关系检测(Visual Relationship Detection)的主要内容,如果未能解决你的问题,请参考以下文章

掌握可视化卷积神经网络模型,带你畅游图像识别技术领域

一文带你弄懂Visual Studio:运行时库及MT/MTDMD/MDD

一文带你学会使用YOLO及Opencv完成图像及视频流目标检测(上)|附源码

一文带你了解基于视觉的机器人抓取自学习(Robot Learning)

一文带你了解人脸检测算法的类型及其工作原理

使用Tensorflow2.0执行视觉显著性检测(Visual Saliency Detection)