1.本发明属于计算机软件技术领域,具体涉及一种基于层次结构的无偏置场景图生成方法。
背景技术:2.场景图(scene graph)是一种用来描述场景信息的图结构,场景中的目标对应图中的节点,目标之间的关系对应图中的边,有时还会包含目标的各种属性,如颜色等。这种结构化的表示方法可以看作一种知识图谱,它相比用特征向量表示某一场景更加直观,可以广泛地用于推理、检索、问答、推荐等任务中。这种表示方法是与模态无关的,目前已经有非常成熟的工具可以将自然语言解析为场景图,同样图像、视频、语音等数据也可以表示成类似的图结构(即场景图),这一特性很直观地说明场景图在融合多模态信息上的巨大潜力。
3.场景图生成(scene graph generation,sgg)任务,一般指从图像中检测抽取场景图。这是一个近三年来逐渐受到跨模态领域研究者们关注的方向,它和视觉关系检测(visual relationship detection,vrd)任务一脉相承,旨在从图像中抽象出场景的语义信息,增强对于视觉信息的理解与推理。视觉场景图生成与目标检测类似,作为一个前置环节在许多跨模态问题中有着不容忽视的作用(如跨媒体检索,图像描述,视觉问答,视觉对话等)。早期的工作重点是通过独立的神经网络分别进行对象检测和关系检测,而忽略了图像中目标丰富的上下文信息(参考cewu lu,ranjay krishna,michael bernstein,and li fei-fei.visual relationship detection with language priors.in eccv,pages 852
–
869,2016)。为了整合全局的视觉上下文信息,xu等人利用了消息传递机制(参考danfei xu,y uke zhu,christopher b choy,and li fei-fei.scene graph generation by iterative message passing.in cvpr,pages 5410
–
5419,2017.shaoqing ren,kaiming he,ross girshick,and jian sun.faster r-cnn:towards real-time object detection with region proposal networks.39(6):1137
–
1149,2017),zellars等利用循环序列结构(参考rowan zellers,mark yatskar,sam thomson,and yejin choi.neural motifs:scene graph parsing with global context.in cvpr,pages 5831
–
5840,2018),zhang等利用对比学习(参考ji zhang,kevin j.shih,ahmed elgammal,andrew tao,and bryan catanzaro.graphical contrastive losses for scene graph parsing.in cvpr,pages 11535
–
11543,2019),均获得了具有更丰富上下文信息与更具有辨别力的关系和目标特征表示。虽然在许多论文中,场景图生成的效果看起来已经足够优秀,但是将其应用到下游任务中的效果却始终差强人意。这是因为过去场景图生成任务主要采用recall指标评价模型能力。recall是一个带有偏置的评价指标,它鼓励模型拟合头部数据,而场景图生成使用的数据由于自然存在以及数据标注的问题,表现出了明显的长尾分布(long-tail distribution),因此过去在recall指标上表现优秀的模型实际上只是在拟合头部数据,与提取真正有意义的关系这一初衷相悖。
4.2019年的cvpr上,kern和vctree等提出了mean recall指标(参考tianshui chen,weihao y u,riquan chen,and liang lin.knowledge-embedded routing network for scene graph generation.in cvpr,pages 6163
–
6171,2019;kaihua tang,hanwang zhang,baoyuan wu,wenhan luo,and wei liu.learning to compose dynamic tree structures for visual contexts.in cvpr,pages 6619
–
6628,2019),这两篇工作首次开始关注如何衡量和解决无偏置场景图生成问题,让这一方向的研究者将注意力从如何拟合数据集中的偏置转移到如何去除数据集中的偏置,提取更有意义的关系,开启了视觉场景图生成研究的新阶段。liang等通过删除数据集中主要的关系,并保留了数据集中信息丰富的尾部关系来解决偏置问题(yuanzhi liang,y along bai,wei zhang,xueming qian,li zhu,and tao mei.vrr-vg:refocusing visually-relevant relationships.in iccv,pages 10403
–
10412,2019)。tang等通过对因果图的反事实操作,提出了无偏置场景图生成的第一个解决方案(参考kaihua tang,y ulei niu,jianqiang huang,jiaxin shi,and hanwang zhang.unbiased scene graph generation from biased training.in cvpr,pages3716
–
3725,2020)。本发明从认知的角度重新思考场景图生成任务,基于从粗到细的层次化结构,新颖地解决了去偏问题。
5.目前场景图生成模型主要存在以下问题:
6.1.由于自然存在和数据标注的问题导致的数据长尾分布,场景图数据集中的头部样本往往占据着相当大的比例,这些图像样本的标注虽然正确,但不够具体,同时含有更加丰富语义信息的标签在数据集中出现较少,大部分都被头部标签所替代。在这样的长尾数据上学习到的模型自然是存在偏见的,它更倾向于预测头部类别。
7.2.对于模型而言,不同关系是相互独立的,无法学习到关系间的语义关联信息,而现有方法对待这些关系都是一视同仁的,认为“on”和“walking on”是完全独立的,然而对于人类而言,人类首先会从见过的关系中组织关系间的层次结构,并在判断新的关系时依赖这一结构,逐级做出区分。
技术实现要素:8.针对现有技术中存在的问题,本发明的目的在于提供一种基于层次结构的无偏置场景图生成方法。本方法重点通过基于层次认知结构的学习方法,让模型由粗到细地学习不同关系间的区别。并提出了一种从有偏模型预测结果中自动构建该层次认知结构的方法,该结构可以反映关系类别间的语义关联。
9.1.受人类的认知规律启发,提出基于认知的层次化关系损失函数来从高度有偏的长尾场景图数据中生成无偏置场景图。
10.2.从有偏模型的预测结果中自动构建了表达关系类别间语义关联的层次化结构关系树,层次化关系结构树包含了由粗到细的多层关系。
11.3.该层次化关系损失函数与模型无关,可以有效提升多种场景图生成模型的性能,显著缓解了场景图生成任务中的偏置问题。
12.本发明的技术方案为:
13.一种基于层次结构的无偏置场景图生成方法,其步骤包括:
14.1)利用有偏模型对图像样本进行处理,得到有偏模型预测结果;根据各图像样本
对应的所述有偏模型预测结果构建一层次化关系树;其中,所述有偏模型为场景图生成模型;
15.2)根据所述层次化关系树和设定的层次化关系损失函数,计算损失值;然后基于所述损失值利用梯度反向传播方法优化所述有偏模型,使所述有偏模型输出结果迭代优化,最终输出无偏置场景图;所述层次化关系损失函数为化,最终输出无偏置场景图;所述层次化关系损失函数为其中,b(i)代表节点i的兄弟节点集合,wk为类别k对应的权重系数,wi为类别i对应的权重系数,zi为层次化关系树中节点i的层次化关系树预测概率,zj为层次化关系树中节点j的层次化关系树预测概率,pk为场景图生成模型输出的类别k对应的概率值,pj为场景图生成模型输出的类别j对应的概率值,l
path
为层次化关系树中从根节点到节点i的真实标签路径,p
pred
为场景图生成模型对真实标签为k的样本预测的属于所有可能标签的概率集合;节点i为样本i的标签类别;
16.3)对于一待处理的图像,将其输入步骤2)优化后的所述有偏模型,得到对应的无偏置场景图。
17.进一步的,所述层次化关系树的结构为:第一层为根节点层r0,包括一虚拟节点;第二层为概念层r1,用于区分样本所属概念,包括各概念关系组中的头部概念;第三层为粗细分化层r2,用于区分样本所属头部概念中的一细粒度关系描述,包括头部概念的细粒度标记节点或不可细分的头部概念节点;第四层为细粒度层r3,用于区分细粒度关系描述中的差异,包含概念关系组中除头部概念关系外的所有关系。
18.进一步的,构建所述层次化关系树的方法为:
19.11)根据所述有偏模型预测结果,如果标签yi对应样本被有偏模型预测概率最高的标签为yj,则将yj作为标签yi的头部概念,将具有相同头部概念的标签划分到同一个概念关系组;从而将全部标签归纳为c个概念关系组,每一概念关系组的头部概念作为对应概念关系组的中心概念;
20.12)将步骤11)所得c个概念关系组重新组织为m个概念子树:初始化第i个概念子树的根节点为一概念关系组c的头部概念对应的标签ci,将该概念关系组c中剩余的标签作为第i个概念子树的叶子节点;如果一概念子树j中只包含根节点a时,则将该概念子树j作为一叶子节点归入根节点a对应样本被有偏模型预测概率第二高的标签所在的概念子树中。
21.13)将步骤12)所得m个概念子树聚合成所述层次化关系树。
22.进一步的,其中,c(i)代表节点i对应概念子树的所有叶子节点,class(i)代表节点i对应的关系类别。
23.进一步的,其中,α是一个取值为[0,1)的超参数,ni为节点i对应类别的样本数量。
[0024]
一种服务器,其特征在于,包括存储器和处理器,所述存储器存储计算机程序,所述计算机程序被配置为由所述处理器执行,所述计算机程序包括用于执行上述方法中各步骤的指令。
[0025]
一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述方法的步骤。
[0026]
本发明的优点如下:
[0027]
本发明从人类的认知角度出发,从有偏模型的预测结果中自动构建了表达关系类别间语义关联的层次化结构关系树,并基于层次化关系损失函数,让模型由粗到细地学习不同关系间的区别,从高度有偏的长尾场景图数据中生成无偏场景图。
附图说明
[0028]
图1为传统方法(有偏模型)流程图。
[0029]
图2为基于人类认知的无偏置场景图生成方法流程图(本发明简化版流程图)。
[0030]
图3为本发明方法流程图。
具体实施方式
[0031]
下面结合附图对本发明进行进一步详细描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
[0032]
本发明提出了一个新的神经网络损失函数—基于认知的层次化损失函数。通过模仿人类的思维过程,首先从大量学习过的样本中归纳出蕴含了关系类别间语义关联的层次结构,随后利用该结构计算本发明的损失函数结果,它首先区分明显不同的关系,随后专注于一小部分容易混淆的关系,由粗到细地区分关系类别,使模型能够更加准确地检测出更有意义的关系。
[0033]
本算法的解决思路是:从有偏模型预测结果自动构建出层次化的关系结构,随后通过基于认知的层次化损失函数来进行无偏置的场景图生成任务。由于该损失是模型无关的,可以适用于任何场景图生成模型。
[0034]
本算法的解决思路是:利用传统有偏模型对样本进行处理,得到有偏模型预测结果,将该有偏模型预测结果输入到本发明的模型,构建基于人类认知的层次化关系结构树(后续步骤1),然后将该层次化的关系结构树输入本发明设计的基于认知的层次化关系损失函数计算损失值(后续步骤2),利用梯度反向传播持续优化传统有偏模型,使传统有偏模型输出结果在迭代优化中逐渐接近本发明提出的层次化关系,得到对应的无偏置场景图。即最终利用本算法提出的损失函数将传统有偏模型优化为无偏模型。
[0035]
本发明的详细流程如图3所示。
[0036]
1.层次化关系结构树构建
[0037]
当有偏模型在长尾分布的有偏数据上训练后,它往往倾向于预测头部的类别,这样的模型虽然难以预测出足够细致的关系,但可以较为轻松地分辨出几种不同头部类别。当不同类别的样本都被有偏模型预测成同一关系类别时,他们之间往往在视觉外观上或高层语义上具有相似性。通过这一现象,可认为有偏模型的预测结果中已经蕴含了关系标签之间的语义关联,模型会倾向于将尾部类别都预测为共享同一概念的头部类别,因此,基于
有偏模型的预测结果,并设计一定规则,即可自动构建出层次化关系结构树。如图3上半部分所示,这一过程分为了三个步骤,分别为中心概念归纳、概念子树构建、概念子树聚合。
[0038]
(1)中心概念归纳
[0039]
对于所有标签为yi的样本,统计有偏模型预测的其标签的分布,表示为pi。我们将具有相似属性的标签归类为同一个概念关系组,例如“on”,“standing on”,“walking on”具有相同属性,因此属于同一个概念关系组,具体方法如下:标签yi对应样本被有偏模型预测概率最高的标签yj被认为是标签yi所属于的头部概念。如图3上半部中步骤1所示,因为概念“on”是有偏模型对标签为“on”,“standing on”,“walking on”的样本预测概率最高的概念,因此概念“on”是概念“on”,“standing on”,“walking on”的头部概念,具有相同头部概念的标签被认为具有相似属性,属于同一个概念关系组。通过这样的过程,可以将全部标签归纳为c个概念关系组,每一组都有一个头部概念关系标签作为这一组的中心概念{ci}c。
[0040]
(2)概念子树构建
[0041]
在这一步将上一步的c组关系标签重新组织为m个概念子树。对于第i组关系构建概念子树过程如下:它的根节点为头部概念关系标签ci(例如“on”),叶子节点是该组关系中剩余的全部细粒度关系(例如“standing on”,“walking on”)。当一个子树中只包含根节点时,本发明认为它的根节点对应的关系标签不够具有概括性,需要将该概念子树进行合并,因为第一高频关系即为该根节点,应该将其归入pi中第二高频出现的关系所在的子树中。如果一概念子树j中只包含根节点a时,则将该概念子树j作为一叶子节点归入根节点a对应样本被有偏模型预测概率第二高的标签所在的概念子树中。
[0042]
(3)概念子树聚合
[0043]
本发明最后将m个概念子树聚合成一个分层的层次化关系树,层次化关系树包含四层如图3中步骤3所示,构建方法如下:第一层根节点层(r0)为虚拟节点;第二层概念层(r1)用于区分该样本属于哪个概念,对应每个概念关系组中的头部概念;第三层粗细分化层(r2)用于区分该样本是否可以用某一细粒度关系描述,包含头部概念节点(不可继续进行细分)和一个细粒度标记节点(可以用某一细粒度关系描述);细粒度层(r3)用于区分细粒度关系中容易混淆的微小差异,包含概念关系组中除头部关系外的所有关系。
[0044]
2.基于认知的层次化关系损失函数
[0045]
定义以下概念:真实标签路径,真实标签路径代表在层次化关系树中从根节点到该样本对应的真实标签的路径l
path
={l0,l1,
…
,lm},其中第k个值lm代表在ym层的真实标签节点。层次化关系树预测概率代表层次化关系树中每个节点在计算损失时对应的值。对于一个场景图生成模型,会给每一个类别k输出一个对应的概率值pk用来计算损失,pk为场景图生成模型预测得到的类别k(标签)为正确类别(标签)的概率值;本发明定义层次化关系树中每个节点的层次化关系树预测概率为:
[0046][0047]
其中c(i)代表节点i对应概念子树的所有叶子节点,class(i)代表节点i对应的关系类别。类别平衡权重,类别平衡权重代表层次化关系树中每个节点对应的平衡权重,层次化关系树中每个节点的类别平衡权重为:
[0048][0049]
其中α是一个取值为[0,1)的超参数,ni为叶子节点i对应类别的样本数量。
[0050]
基于认知的层次化关系损失函数包含两个互补的部分:为由粗到细进行偏置消除的基于层次化关系树的类平衡损失和在常规交叉熵基础上增加权重的类平衡损失。具体来说,本发明在真实标签路径中的每一层上计算带权重的交叉熵,并取其均值作为基于层次化关系树的类平衡损失,这一过程可以被描述为:
[0051][0052]
其中b(i)代表节点i兄弟节点的集合。
[0053]
增加权重的类平衡损失在一般的交叉熵中增加了权重系数,对一个真实标签为k的样本,增加权重的类平衡损失具体表示为:
[0054][0055]
其中wk为类别k对应的权重系数,p
pred
为对一个真实标签为k的样本,场景图生成模型预测的属于所有可能标签的概率集合,所有概率加和为1。通过实验发现结合两个loss可以获得最好的效果,最终基于认知的层次化关系损失函数表示为:
[0056][0057]
最终基于本发明得到的对步骤1中的传统场景图生成模型(即有偏模型)进行优化得到一个无偏的场景图生成模型,最终优化得到的无偏场景图生成模型通过接受图片输入,对图片中区域进行关系预测得到无偏置场景图。本发明提出的损失函数计算模型适用于任何已提出的传统有偏场景图生成模型。
[0058]
算法效果比较
[0059]
本发明在场景图生成任务最大最常用的数据集vg150上进行了相关实验。vg150是visual genome的子集,选取了vg中最常见的150类物体和50类关系标签,vg150只提供了训练集和测试集,本发明从训练集中划分了5k大小的验证集评价指标:
[0060]
表1数据集
[0061]
序号数据集训练集样本数测试集样本数物体类数关系类数关系语言1vg15087,6705,00015050英
[0062]
该算法采用三种基线模型证实效果,分别是motifs、vctree和sg-transformer。这些模型主要包含两个部分:用于检测物体位置和标签的物体分类模块以及用于预测物体间关系的关系分类模块。以下分别介绍基线模型:
[0063]
(1)motifs:首先采用一个训练好的faster r-cnn模型从图片中抽取k个物体o={oi}k,其中oi具体被描述为视觉特征vi,初始物体标签li,以及物体的位置特征bi。将上述三个特征拼接送入物体编码器encodero中获得进一步编码后的物体特征向量mi,mi随后被送进物体解码器decodero解码出最终物体标签motifs采用了bi-lstm做encodero,lstm做
decodero。关系编码器encoderr采用了额外的bi-lstm以在物体级别上捕捉额外的上下文信息,随后将物体两两组对,与两物体并集区域的视觉特征进行融合,随后由关系解码器decoderr解码。这里motifs采用了全连接层作为decoderr。
[0064]
(2)vctree:vctree的框架与motifs基本相同,不同在于vctree采用了treelstm作为物体与关系的编解码器,并且在关系解码前额外加入了成对的物体位置信息。
[0065]
(3)sg-transformer:与motifs和vctree不同的是,sg-transformer采用了transformer作为encodero、encoderr:
[0066]
根据给定条件多少,场景图生成任务可以由简单到复杂细分为以下几种子任务:
[0067]
(1)关系分类(predicate classification):给定图中物体位置及类别,预测关系类别
[0068]
(2)场景图分类(scene graph classification):给定图中目标位置,预测物体及关系
[0069]
(3)场景图生成(scene graph generation):只给定图片,生成完整的场景图。
[0070]
无偏置场景图生成主要参考mean recall指标,该算法效果展示同样报告了recall指标的结果。表2展示了基线模型加入基于认知的层次化关系损失函数后对比的结果。可以看到,本发明提出的基于认知的层次化关系损失函数可以有效地提升采用的三种模型在mrecall上的效果,在vctree上,可以获得3.6%~13.6%的提升。对比常见的去偏方法以及tang等提出的原最佳方法tde,该损失函数同样有效。对比mrecall@50/100,在较难的提升的mrecall@20上,该损失函数的提升更加明显。该损失函数与模型无关,可以有效提升多种场景图生成模型的性能,显著缓解了场景图生成任务中的偏置问题。同一模型的mrecall提升时,往往对应的recall就会下降,recall是一个偏向头部类别的指标,当本发明的模型更多地将头部类别预测为更细粒度的关系时(将on预测为parked on),势必会降低头部类别预测的结果。
[0071]
表2算法结果
[0072][0073]
尽管为说明目的公开了本发明的具体实施例,其目的在于帮助理解本发明的内容并据以实施,本领域的技术人员可以理解:在不脱离本发明及所附的权利要求的精神和范围内,各种替换、变化和修改都是可能的。因此,本发明不应局限于最佳实施例所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。
技术特征:1.一种基于层次结构的无偏置场景图生成方法,其步骤包括:1)利用有偏模型对图像样本进行处理,得到有偏模型预测结果;根据各图像样本对应的所述有偏模型预测结果构建一层次化关系树;其中,所述有偏模型为场景图生成模型;2)根据所述层次化关系树和设定的层次化关系损失函数,计算损失值;然后基于所述损失值利用梯度反向传播方法优化所述有偏模型,使所述有偏模型输出结果迭代优化,最终输出无偏置场景图;所述层次化关系损失函数为终输出无偏置场景图;所述层次化关系损失函数为其中,b(i)代表节点i的兄弟节点集合,w
k
为类别k对应的权重系数,w
i
为类别i对应的权重系数,z
i
为层次化关系树中节点i的层次化关系树预测概率,z
j
为层次化关系树中节点j的层次化关系树预测概率,p
k
为场景图生成模型输出的类别k对应的概率值,p
j
为场景图生成模型输出的类别j对应的概率值,l
path
为层次化关系树中从根节点到节点i的真实标签路径,p
pred
为场景图生成模型对真实标签为k的样本预测的属于所有可能标签的概率集合;节点i为样本i的标签类别;3)对于一待处理的图像,将其输入步骤2)优化后的所述有偏模型,得到对应的无偏置场景图。2.根据权利要求1所述的方法,其特征在于,所述层次化关系树的结构为:第一层为根节点层r0,包括一虚拟节点;第二层为概念层r1,用于区分样本所属概念,包括各概念关系组中的头部概念;第三层为粗细分化层r2,用于区分样本所属头部概念中的一细粒度关系描述,包括头部概念的细粒度标记节点或不可细分的头部概念节点;第四层为细粒度层r3,用于区分细粒度关系描述中的差异,包含概念关系组中除头部概念关系外的所有关系。3.根据权利要求2所述的方法,其特征在于,构建所述层次化关系树的方法为:11)根据所述有偏模型预测结果,如果标签y
i
对应样本被有偏模型预测概率最高的标签为y
j
,则将y
j
作为标签y
i
的头部概念,将具有相同头部概念的标签划分到同一个概念关系组;从而将全部标签归纳为c个概念关系组,每一概念关系组的头部概念作为对应概念关系组的中心概念;12)将步骤11)所得c个概念关系组重新组织为m个概念子树:初始化第i个概念子树的根节点为一概念关系组c的头部概念对应的标签c
i
,将该概念关系组c中剩余的标签作为第i个概念子树的叶子节点;如果一概念子树j中只包含根节点a时,则将该概念子树j作为一叶子节点归入根节点a对应样本被有偏模型预测概率第二高的标签所在的概念子树中;13)将步骤12)所得m个概念子树聚合成所述层次化关系树。4.根据权利要求1所述的方法,其特征在于,中,c(i)代表节点i对应概念子树的所有叶子节点,class(i)代表节点i对应的关系类别。5.根据权利要求4所述的方法,其特征在于,
其中,α是一个取值为[0,1)的超参数,n
i
为节点i对应类别的样本数量。6.一种服务器,其特征在于,包括存储器和处理器,所述存储器存储计算机程序,所述计算机程序被配置为由所述处理器执行,所述计算机程序包括用于执行权利要求1至5任一所述方法中各步骤的指令。7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5任一所述方法的步骤。
技术总结本发明公开了一种基于层次结构的无偏置场景图生成方法。本方法为:1)利用有偏模型对图像样本进行处理,得到有偏模型预测结果;根据各图像样本对应的所述有偏模型预测结果构建一层次化关系树;其中,所述有偏模型为场景图生成模型;2)根据所述层次化关系树和设定的层次化关系损失函数,计算损失值;然后基于所述损失值利用梯度反向传播方法优化所述有偏模型,使所述有偏模型输出结果迭代优化,最终输出无偏置场景图;3)对于一待处理的图像,将其输入步骤2)优化后的所述有偏模型,得到对应的无偏置场景图。本发明能够让模型由粗到细地学习不同关系间的区别,从高度有偏的长尾场景图数据中生成无偏置场景图。图数据中生成无偏置场景图。图数据中生成无偏置场景图。
技术研发人员:于静 丁阳 庄佳敏 胡玥 熊刚
受保护的技术使用者:中国科学院信息工程研究所
技术研发日:2022.06.23
技术公布日:2022/11/1