一种基于解耦策略的全场景图生成方法

文档序号:35837233发布日期:2023-10-25 13:18阅读:21来源:国知局
本发明涉及视觉理解领域,尤其提出一种基于解耦策略(decoupling policies)的全场景图生成(panoptic scene graph generation)方法。
背景技术
::1、场景图生成(scene graph generation)任务的目标是从给定的图像生成一个图结构的表示,以抽象出以边界框为基础的对象及其成对关系。场景图旨在促进对图像中复杂场景的理解,并具有广泛的下游应用潜力,如图像检索、视觉推理、视觉问答、图像字幕、结构化图像生成和绘制等。2、现有的研究从目标检测的角度解决了场景图生成,即使用边界框检测物体,然后预测它们的成对关系。然而,这种基于边界框的方法导致了以下几个问题:首先,边界框仅提供对象的粗略定位,并且通常包含属于不同对象或类别的噪声;其次,边界框通常不能覆盖图像的整个场景;第三,目前的场景图生成数据集中往往包含冗余类和无实际意义的关系,这些问题阻碍了场景图生成的进步。相比之下,从全景分割(panoptic segmentation)的角度完成场景理解成为了一个更好的选择。全景分割任务要求必须为图像的每个像素分配一个语义标签和一个id,具有相同标签和id的像素属于同一对象,对于背景类标签,则忽略其id。理想情况下,物体的位置表示应该是清晰和精确的,显然,全景分割可以更加灵活和准确的表示出物体与背景在图片中的位置,符合场景理解这一目标。因此,在这项工作中引入全场景图生成这一个新的任务,要求模型基于全景分割而不是刚性的边界框生成更全面的场景图表示。3、在实际应用方面,全场景图生成算法具有广泛的应用场景。在辅助驾驶系统中,车载摄像头将拍摄到的场景实时生成场景图,系统便可以根据该场景图准确的分析当前的行车环境,并对驾驶员做出相应的提示,在一定的准确度下,可大大减轻司机的负担,提高道路交通安全,具有十分良好的研究前景及重要的研究意义。4、无论是场景图生成还是全场景图生成,通过观察生成结果可以发现,即使是目前实验结果最好的模型也存在着检测到谓词与其主语和宾语在语义上的不匹配这个问题,例如sky-other-merged looking at house、table-merged sitting on pavement-merged。以上两个关系中,主语皆为背景(stuff),但是在人们的日常用语中,主语是“动作的发出者”(主谓宾结构中)或者“表述的对象”(主系表结构中),显然,当背景类对象作为主语时,其不可以作为动作的施加者,即天空不能看着房屋,桌子不能坐在人行道上。在全场景图生成的过程中,如果能筛去这些不符合人类认知且没有实际意义的关系三元组,将对实验结果的提升与实际应用具有重大意义。技术实现思路1、本发明的目的是针对上述场景图生成方法的存在的问题,提供一种基于解耦策略的全场景图生成方法,将物体与背景进行区分,考虑物体与背景分别作为主语和宾语时的情况,使模型在训练的过程中根据物体对象-背景对象、物体对象-物体对象、背景对象-物体对象,背景对象-背景对象这四种主语和宾语的组合去匹配与其对应的谓词集,以达到在训练过程中自动筛去无意义关系三元组的目的。2、本发明解决上述场景图生成方法存在问题的技术方案包括如下步骤:3、步骤(1):数据集的预处理及划分4、采用psgdataset作为训练与测试数据集,对数据集中的图片进行预处理以及划分;5、步骤(2):使用训练好的全景分割模型(detr)对图片进行全景分割并提取各个分割块的特征6、对于一张输入的图片,模型首先会将整张图片经过残差网络(resnet101)对图片进行初步的特征提取,然后采用经典的transformer结构:将上一步得到的图片特征与图片的位置编码进行相加,并输入transformerencoder中进行更深层次的特征提取,从而得到包含整张图片特征的向量表示。在解码阶段,将编码器得到的向量表示分别输入到两个transformer decoder中,其中,一个解码器作为物体对象解码器(thingsdecoder),另一个解码器作为背景对象解码器(stuffdecoder)。物体对象解码器的输出为nt个物体对象的特征表示,nt是预定义的目标查询的个数,代码中默认为100。背景对象解码器的输出为53个背景对象的特征表示。最后将得到的物体对象的特征表示和背景对象的特征表示分别进行一定的线性转换得到对应的分类、边界框以及分别作为主语和宾语时的查询匹配向量,共得到作为主语时的查询匹配向量querysub-things、querysub-stuff和作为宾语时的查询匹配向量queryobj-things、queryobj-stuff。其中,sub表示作为主语,obj表示作为宾语;7、步骤(3):使用关系解码器提取谓词特征8、该步骤本质与步骤(2)中的解码器部分相同,同样是将编码器得到的向量表示输入到transformerdecoder中,该解码器作为关系解码器(relationdecoder),经过训练就可以得到nr个谓词的表示特征。nr是预定义的关系查询的个数,代码中默认为100。最后,将得到的谓词特征表示进过一定的线性转换,得到用于进行匹配的谓词查询匹配向量queryrel;9、步骤(4):将步骤(2)得到主语和宾语的查询匹配向量的和步骤(3)得到的谓词的查询匹配向量进行关系匹配10、将得到的查询匹配向量以querysub-things-queryrel-queryobj-stuff、querysub-things-queryrel-queryobj-things、querysub-stuff-queryrel-queryobj-things、querysub-stuff-queryrel-queryobj-stuff的形式组合分别进行匹配训练。将作为谓词的查询匹配向量与作为主语的查询匹配向量的转置进行相乘,得到的分数即为主语和谓语的匹配分数;同理将作为谓词的查询匹配向量与作为宾语的查询匹配向量的转置进行相乘,得到的分数即为宾语和谓语的匹配分数,匹配分数越大,则在图片中出现此关系三元组的置信度越高,取最大匹配分数所在的下标为检测到的物体或背景的下标;11、步骤(5):处理数据集中的标注信息12、在psgdataset数据集的标注中,共有133种可以检测到的对象。其中,前80种位物体对象,后53种为背景对象。将数据集标注信息中的三元组按照物体对象-背景对象、物体对象-物体对象、背景对象-物体对象、背景对象-背景对象这四种不同关系类型分为四组,与预测出的四种关系三元组分别对应;13、步骤(6):将检测到的物体对象与真实值进行二分匹配14、在步骤(2)中检测到的n个目标与步骤(5)中得到的物体对象进行二分匹配,找到代价最小的预测结果。其中代价由边界框的l1loss和giouloss组成。最终可得到与真实值中物体对象个数相同的预测结果;15、步骤(7):将检测到关系三元组与真实值进行二分匹配16、本步骤思想上与步骤(6)相同,目的是从检测结果中筛选出与真实值中关系三元组数量相同的关系三元组,筛选出的关系三元组与真实值的代价最小;17、步骤(8):构造损失函数18、损失函数由两部分组成:一部分为图片中检测到的对象位置与真实值的损失,另一部分为关系三元组的预测类别与其标注真实值的损失;19、步骤(9):训练深度神经网络模型20、根据步骤(8)中的损失函数产生的损失值,利用反向传播算法对深度神经网络的模型参数进行梯度回传,不断优化,直至整个网络模型收敛;21、步骤(10):深度神经网络模预测值计算22、将主语、谓语以及宾语的分类分数向量相乘作为总分数进行排序,选择最高分数对应的三元组作为其预测三元组;调整对应候选框以及分割块的排序使其与得到的三元组对应。23、进一步的,步骤(1)具体实现如下:24、psgdataset数据集中共有常见的133中可检测的对象类别,其中前80种为物体对象,后53种为背景对象,还包括常见的56个关系类别。共有46697张图片,将45697张图片用于训练和验证,剩下1000张用于测试;25、进一步的,步骤(2)所述的用全景分割网络对图像提取特征,具体如下:26、2-1.使用残差网络resnet101初步提取特征并进行处理27、将整张预处理后的图片输入到残差网络resnet101中,将残差网络中最后一层(conv5_x)的输出特征和位置编码分别进行flatten操作,具体操作如下:28、src=src.flatten     (公式1)29、pos_embed=pos_embed.flatten       (公式2)30、src为从残差网络中提取的特征,pos_embed为位置编码,编码方式为正弦编码,分别对x轴方向和y轴方向进行位置编码,计算公式如下:31、32、33、其中,pos表示嵌入向量在输入图片中的位置,i表示嵌入向量中的维度索引,dmodel是一个超参数,在代码中默认为512,transformerencoder中,会将处理后的输出特征和位置编码相加;34、2-2.transformerencoder进一步提取特征35、在transformerencoder中,将上一步得到的特征f与位置编码p相加作为transformer encoder的query与key,将特征src作为value,计算公式如下:36、q=k=f+p      (公式5)37、v=f     (公式6)38、经过transformerencoder进一步的特征提取,可以得到对整张图片的更深层次的向量表示m;39、2-3.thingsdecoder与stuffdecoder从m中解码分别得到对应的特征表示40、transformerdecoder有两个模块组合而成。对于multi-headself-attention,输入的query、key以及value分别为:41、q=k=target+query_pos     (公式7)42、v=target     (公式8)43、对于multi-headattention,输入的query、key以及value分别为:44、q=target+query_pos     (公式9)45、k=m+p      (公式10)46、v=m     (公式11)47、其中,target是随机初始化得到的向量,经过迭代训练可得到要检测对象的特征;query_pos也是随机初始化得到的向量,经过迭代训练可得到要检测对象的位置向量;48、2-4.将得到的特征表示转化为预测值49、将上一步得到的物体对象特征与背景对象特征分别进行后处理。以物体对象为例,将物体对象特征经过一个线性层转化为类别特征向量,同时经过一个多层感知机转化为边界框特征向量。具体操作如下:50、clsthings=linear(t)       (公式12)51、bboxthings=mlp(t)       (公式13)52、其中,t为thingsdecoder的解码结果,clsthings为n个物体类别的分类分数,bboxthings为n个物体对应的坐标。53、对于分割块,可以由对象特征经过一系列的卷积实现。具体操作如下:54、segthings=maskheadsmallconv(t)        (公式14)55、同理,对于背景对象特征也需要经过同样的处理,具体操作如下:56、clsstuff=linear(s)       (公式15)57、bboxstuff=mlp(s)       (公式16)58、segstuff=maskheadsmallconv(s)       (公式17)59、其中,s为stuffdecoder的解码结果,clsstuff为53个背景类别的分类分数,bboxstuff为53个背景对应的坐标;60、2-5.将得到的特征表示转化为查询向量61、为了进行与谓词特征的匹配,需要将物体对象与背景对象经过一系列的线性层转换为可用于查询匹配的特征向量。具体操作如下:62、querysub-things=normalize(linear(relu(linear(t))))       (公式18)63、queryobj-things=normalize(linear(relu(linear(t))))       (公式19)64、querysub-stuff=normalize(linear(relu(linear(s))))       (公式20)65、queryobj-stuff=normalize(linear(relu(linear(s))))       (公式21)66、其中,querysub-things为物体作为主语时的查询匹配向量,queryobj-things为物体作为宾语时的查询匹配向量,querysub-stuff为背景作为主语时的查询匹配向量,queryobj-stuff为背景作为宾语时的查询匹配向量;67、进一步的,步骤(3)所述的关系解码器,具体如下:68、本步骤与步骤(2)中的解码过程相似。经过解码得到的谓词特征向量需要经过一个恒等函数转化为关系查询匹配向量。具体公式如下:69、clsrel=linear(r)       (公式22)70、queryrel=normalize(identity(r))       (公式23)71、其中,clsrel为nr个谓词类别的分类分数,queryrel为nr个谓词的查询匹配向量;72、进一步的,步骤(4)所述的关系查询匹配模块,具体如下:73、将关系查询匹配向量与各个主语或宾语查询匹配向量的转置相乘,可以得到其作为主语或宾语的置信度,具体公式如下:74、subthings=queryrel×querysub-thingst      (公式24)75、objthings=queryrel×queryobj-thingst      (公式25)76、substuff=queryrel×querysub-stufft      (公式26)77、subthings=queryrel×queryobj-stufft         (公式27)78、其中,subthings为物体类别作为主语的置信度,objthings为物体类别作为宾语的置信度,substuff为背景类别作为主语的置信度,substuff为背景类别作为宾语的置信度;79、进一步的,步骤(5)所述的处理数据集标注信息,具体如下:80、psgdataset数据集中共有常见的133中可检测的对象类别,其中前80种为物体对象,后53种为背景对象。如果一个关系主语id小于80,宾语id大于等于80,则归入物体对象-背景对象关系类型;如果一个关系主语id与宾语id都小于80,则归入物体对象-物体对象关系类型;如果一个关系主语id大于等于80,宾语id小于80,则归入背景对象-物体对象关系类型;如果一个关系主语id和宾语id都大于等于80,则归入背景对象-背景对象关系类型。81、进一步的,步骤(6)所述的匈牙利匹配器,具体如下:82、83、84、是真值yi和具有索引σ(i)的一个预测之间的一个成对匹配代价。这个最优分配是通过匈牙利算法有效地计算的。匹配代价同时考虑了类预测以及预测框和真实框之间的相似性。其中,ci是目标类标签,bi∈0,14是一个向量,它定义了真实框的中心坐标及其相对于图像大小的高度和宽度。为ci的概率,预测框为85、进一步的,步骤(7)所述的三元组匈牙利匹配器,具体如下:86、将步骤(6)的匈牙利匹配器扩展为三元匈牙利语匹配器。匹配代价考虑了预测关系三元组的分类与真实值之间的相似性,公式如下:87、88、89、其中,是目标类标签,是预测标签。s、r、o分别代表主语、谓语和宾语;90、进一步的,步骤(8)所述的损失函数,具体如下:91、对于全景分割部分,使用l1损失函数和多重交叉熵损失函数计算边界框的损失,使用diceloss损失函数来计算全景分割的损失。对于分类部分,使用多重交叉熵损失函数计算检测到的三元组部分的损失。深度神经网络的总损失具体如下:92、93、94、95、其中,代表了各类型关系三元组的权重。t是一个常数,t=1时,等同于softmax的结果;t足够大时,趋近1,各个关系类型的loss权重相同。96、本发明有益效果如下:97、本发明核心方法为解耦策略的场景图生成方法,在全景分割阶段,将要检测的目标对象解耦为物体对象和背景对象,通过使用不同的解码器达到增强位置学习的效果,从而更好的提取物体与背景的特征;在关系匹配阶段,通过将一般的关系解耦为物体对象-背景对象、物体对象-物体对象、背景对象-物体对象,背景对象-背景对象四种关系类型,并分别与真实值计算损失,如果某一谓词在数据集标注中从未出现在一种关系类型中,那么其匹配结果的置信度将会降低,以此达到自动筛选不符合语义的谓词的效果。98、本发明在场景图生成领域首次将物体与背景做出区分,并考虑到关系三元组中物体和背景分别作为主语和宾语的情况,使预测的谓词更加准确,进而取得更好的实验结果。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1