本发明属于计算机
技术领域:
:,尤其是计算机视觉和自然语言处理领域,具体涉及一种基于多模态嵌入的场景理解语义生成方法。
背景技术:
::近年来随着人工智能的蓬勃发展,对于图像理解的研究越来越多,目标检测、目标识别等技术趋于成熟,作为更高层次的环境感知问题正在成为研究的焦点。环境感知中重要的一部分是场景理解,任意给出一幅图片,用完整的语句描述出图片的内容并从语义中准确判断出场景信息,这对人类来说轻而易举,但是对于机器来说是个非常困难的任务。机器需要先处理图像,检测提取出图像中物体的特征及不同物体间的联系,不仅需要识别出物体,还要理解物体组合在一起所表达的思想。传统的图像语义理解主要有两种方法,一是基于模板生成,二是在大型图像库检索相似图像。前者生成的图像描述不自然,后者限制了语义的多样性,都具有很大的局限性。近年来,深度学习的研究趋于成熟,神经网络模型已经主导了图像描述生成领域,卷积神经网络(cnn)和循环神经网络(rnn)的应用使得图像描述得到了很好的效果。此外,大数据技术以及以gpu为代表的高性能计算发展迅速,这使得用于训练的数据库更加丰富,模型的训练更加有效。在生成的图像语义描述中,有的直接带有场景信息,有的只包含图像中的对象以及他们的动作,本发明的重点是利用图像和语义两个模态,将图像生成的语义信息嵌入到场景特征空间,生成场景理解信息。技术实现要素:本发明的目的就是提供一种基于多模态嵌入的场景理解语义生成方法。本发明方法基于现有的cnn rnn模型,在自身数据集上进行训练微调,给语义信息加入嵌入层,生成场景理解语义。首先,确定多类不同的场景,针对每一类场景采集数据集,使用预训练的网络在采集的数据集上微调,使其能够正确识别不同的场景,并给出图像语义。其次,将语义信息嵌入到场景特征空间,提取或推断出场景理解语义。本发明方法具体步骤是:步骤(1).采集图片并进行预处理,生成数据集:首先确定n个类别场景,场景类别包括公园、广场、球场、街道、停车场、办公室、教室、卧室、走廊;对每个类别场景分别采集m张图片,建立每个场景语义关联度,语义包括可能出现的物体和可能出现的动词;对采集的图片进行预处理,然后对每一幅图片进行语义标注;预处理包括调整图片大小、光线。步骤(2).基于cnn rnn模型生成图像语义信息,具体是:(2.1).提取图像和语义特征:对于一张图片,希望得到图片中的物体(前景)、背景、物体间的关系以及整幅图所表达的思想。检测物体时,需要把图片分成若干个子块,采用基于区域的selectivesearch算法选择区域。具体是:首先将图片划分为多个区域,每个区域采用边界框(boundingbox)确定范围;通过相似度不断合并区域,得到最终边界框。对于颜色距离d1、纹理距离d2、区域合适度d3,分别赋予不同的权重计算总的相似度:其中,颜色距离相似度纹理距离相似度区域合适度相似度ri和rj分别表示第i个和第j个区域,和分别表示第i个和第j个区域的第k个通道的颜色直方图,和分别表示第i个和第j个区域的第k个通道的纹理直方图,rij表示第i个和第j个区域合并后的区域,k=1,2,…,k,k为直方图的通道数,i,j∈gr,gr表示划分区域的集合。总相似度s(ri,rj)=α1·d1(ri,rj) α2·d2(ri,rj) α3·d3(ri,rj),α1、α2和α3分别为色距离相似度、纹理距离相似度和区域合适度相似度的权重。利用经典cnn结构vgg16,抽取固定长度的特征向量,然后基于每个边界框内的像素ib计算检测区域向量v=wm[cnn(ib)] bm;其中,cnn(ib)表示将像素ib转化为分类前完全连接层的4096维向量;wm为转换矩阵,维数为h×4096,h为嵌入空间的大小;bm为偏差向量。每幅图片最后被表示成一组h维向量{vq|q=1,2,…,q},vq为第q个检测区域向量。使用双向循环神经网络(brnn)计算语义特征,即输出由当前状态和未来状态一起决定,将语义中的单词当成序列输入brnn,将每个单词转化成为h维向量;记输入单词为xt,输入层的输出gt=f(w1xt b1);w1为第一层转换矩阵,b1为第一层偏差向量。隐藏层将gt作为输入,分别进行前向和后向传播,输出分别记为和隐藏层前向传播输出隐藏层后向传播输出下标或上标的f表示前向传播,b当表示前向传播,t为当前时间步,t 1为后一时间步,t-1为前一时间步。双向传播后得到的结果作为输出层的输入,输出激活函数f采用线性整流函数relu,relu具有稀疏性,当神经元激活值进入负半区,梯度就会为0,该神经元不会被训练,通过relu实现稀疏后的模型能够更好的挖掘相关特征,拟合训练数据。(2.2).进行图像与语义匹配:将图片和语义表示为向量以后,结合已有公式对图片中提取的区域和语义中的单词进行匹配,匹配分数其中,wn表示单词,gw为单词集合,t表示转置。m=n表示图像语义匹配真值,则结构化损失函数为:(2.3).网络训练与测试:首先搭建rnn网络,利用cnn提取图像特征后,生成4096维向量,输入网络,进而生成图像的语义描述senti=w3[cnn(ri)],w3为搭建的rnn网络的转换矩阵;rnn获取图像向量和单词序列向量,计算出隐藏输出ht和模型输出yt:yt=w6ht bo,bo为搭建的rnn网络的偏差向量;然后对rnn网络进行训练,以单词xt和前一语境信息ht-1作为输入,训练如下:a.t=1时:令x1为特殊的start向量,y1的期望标签是真值序列中的第一个单词;b.t=2时:令x2为第一个单词的单词向量,输入为x2和h1,y2指向真值序列中第二个单词;c.t=3时:令x3为第一个单词的单词向量,输入为x3和h2,y3指向真值序列中第二个单词;d.依此类推至最后一个单词xt,目标标签指向特殊的end标志。训练结束后进行测试,如下:e.通过模型计算得到第一个单词y1的分布概率,选择概率最高的前三个作为候选结果y1′、y1″和y1″′;f.分别输入y1′、y1″和y1″′,在所有输出中选择概率最高的前三个作为预测结果y12′、y12″和y12″′;g.分别输入y12′、y12″和y12″′,在所有输出中选择概率最高的前三个作为预测结果y123′、y123″和y123″′;h.依此类推直至找到完整的一句话,即语义信息。步骤(3).将语义信息嵌入场景空间:将每个单词嵌入到场景空间,语义描述中未出现的单词设置0向量,出现的单词设置为场景语义关联度向量,则第z个单词场景关联度向量表示为'wordz'=[lz1,lz2,…,lzn],lzn表示第z个单词与第n个场景的关联度,n=1,2,…,n;将语义中所有单词的场景关联度向量对应相加,得到整句话的场景空间向量:z为单词数量;取场景空间向量sent中最大值元素对应的场景类型作为最终场景理解语义scene。本发明基于现有的多模态cnn rnn模型,在自身数据集上进行训练微调,生成图像语义信息,将语义信息嵌入到场景特征空间,生成场景理解信息,为进一步利用场景信息提供保障。附图说明:图1为本发明方法流程图。具体实施方式:以下结合附图对本发明作进一步说明。如图1所示,基于多模态嵌入的场景理解语义生成方法,具体如下:步骤(1).采集图片并进行预处理,生成数据集:首先确定十个类别场景,场景类别包括公园、广场、球场、街道、草地、停车场、办公室、教室、卧室、走廊。对每个类别场景分别采集100张图片,建立每个场景语义关联度,语义包括可能出现的物体和常用动词;对采集的图片进行预处理,然后对每一幅图片进行语义标注;预处理包括调整图片大小、光线。步骤(2).基于cnn rnn模型生成图像语义信息,具体是:(2.1).提取图像和语义特征:对于一张图片,希望得到图片中的物体(前景)、背景、物体间的关系以及整幅图所表达的思想。检测物体时,需要把图片分成若干个子块,采用基于区域的selectivesearch算法选择区域。具体是:首先将图片划分为多个区域,每个区域采用边界框(boundingbox)确定范围;通过相似度不断合并区域,得到最终边界框。对于颜色距离d1、纹理距离d2、区域合适度d3,分别赋予不同的权重计算总的相似度:其中,颜色距离相似度纹理距离相似度区域合适度相似度ri和rj分别表示第i个和第j个区域,和分别表示第i个和第j个区域的第k个通道的颜色直方图,和分别表示第i个和第j个区域的第k个通道的纹理直方图,rij表示第i个和第j个区域合并后的区域,k=1,2,…,k,k为直方图的通道数,i,j∈gr,gr表示划分区域的集合。总相似度s(ri,rj)=α1·d1(ri,rj) α2·d2(ri,rj) α3·d3(ri,rj),α1、α2和α3分别为颜色距离相似度、纹理距离相似度和区域合适度相似度的权重。利用经典cnn结构vgg16,抽取固定长度的特征向量,然后基于每个边界框内的像素ib计算检测区域向量v=wm[cnn(ib)] bm;其中,cnn(ib)表示将像素ib转化为分类前完全连接层的4096维向量;wm为转换矩阵,维数为h×4096,h为嵌入空间的大小;bm为偏差向量。每幅图片最后被表示成一组h维向量{vq|q=1,2,…,q},vq为第q个检测区域向量。使用双向循环神经网络(brnn)计算语义特征,即输出由当前状态和未来状态一起决定,将语义中的单词当成序列输入brnn,将每个单词转化成为h维向量;记输入单词为xt,输入层的输出gt=f(w1xt b1);w1为第一层转换矩阵,b1为第一层偏差向量。隐藏层将gt作为输入,分别进行前向和后向传播,输出分别记为和隐藏层前向传播输出隐藏层后向传播输出下标或上标的f表示前向传播,b当表示后向传播,t为当前时间步,t 1为后一时间步,t-1为前一时间步。双向传播后得到的结果作为输出层的输入,输出激活函数f采用线性整流函数relu,relu具有稀疏性,当神经元激活值进入负半区,梯度就会为0,该神经元不会被训练,通过relu实现稀疏后的模型能够更好的挖掘相关特征,拟合训练数据。(2.2).进行图像与语义匹配:将图片和语义表示为向量以后,结合已有公式对图片中提取的区域和语义中的单词进行匹配,匹配分数其中,wn表示单词,gw为单词集合,t表示转置。m=n表示图像语义匹配真值,则结构化损失函数为:(2.3).网络训练与测试:首先搭建rnn网络,利用cnn提取图像特征后,生成4096维向量,输入网络,进而生成图像的语义描述senti=w3[cnn(ri)],w3为搭建的rnn网络的转换矩阵;rnn获取图像向量和单词序列向量,计算出隐藏输出ht和模型输出yt:yt=w6ht bo,bo为搭建的rnn网络的偏差向量;然后对rnn网络进行训练,以单词xt和前一语境信息ht-1作为输入,训练如下:a.t=1时:令x1为特殊的start向量,y1的期望标签是真值序列中的第一个单词;b.t=2时:令x2为第一个单词的单词向量,输入为x2和h1,y2指向真值序列中第二个单词;c.t=3时:令x3为第一个单词的单词向量,输入为x3和h2,y3指向真值序列中第二个单词;d.以此类推至最后一个单词xt,目标标签指向特殊的end标志。训练结束后进行测试,如下:e.通过模型计算得到第一个单词y1的分布概率,选择概率最高的前三个作为候选结果y1′、y1″和y1″′;f.分别输入y1′、y1″和y1″′,在所有输出中选择概率最高的前三个作为预测结果y12′、y12″和y12″′;g.分别输入y12′、y12″和y12″′,在所有输出中选择概率最高的前三个作为预测结果y123′、y123″和y123″′;h.以此类推直至找到完整的一句话,即语义信息。步骤(3).将语义信息嵌入场景空间:将每个单词嵌入到场景空间,语义描述中未出现的单词设置0向量,出现的单词设置为场景语义关联度向量,则第z个单词场景语义关联度向量表示为'wordz'=[lz1,lz2,…,lz10],lzn表示第z个单词与第n个场景的关联度,n=1,2,…,10;对于步骤1中选取的十类场景,单词'table'=[0.1,1,0.1,0,0,1,0,0,0.5,0],'tree'=[0.8,0,0,0.1,0.6,0,0.6,0,1,0.6]。将所有单词的场景关联度向量对应相加,得到整句话的场景空间向量:z为单词数量;取场景空间向量sent中最大值元素对应的场景类型作为最终场景理解信息scene。对于语义描述“agroupofpeoplearestandingonthesidewalkbesidetrees.”,其场景特征向量为[3.1,1.1,0.5,1.2,2.3,1.9,1.7,1.3,3.7,0.9],最大值元素为3.7,场景类型对应为park。当前第1页1 2 3 当前第1页1 2 3 
技术特征:1.基于多模态嵌入的场景理解语义生成方法,其特征在于,该方法基于cnn rnn模型,在自身数据集上进行训练微调,给语义信息加入嵌入层,生成场景理解语义;首先,确定多类不同的场景,针对每一类场景采集数据集,使用预训练的网络在采集的数据集上微调,使其能够正确识别不同的场景,并给出图像语义;然后将语义信息嵌入到场景特征空间,提取或推断出场景理解语义;
步骤(1).采集图片并进行预处理,生成数据集:
步骤(2).基于cnn rnn模型生成图像语义信息,包括:
(2.1).提取图像和语义特征;
(2.2).进行图像与语义匹配;
(2.3).网络训练与测试;
步骤(3).将语义信息嵌入场景空间,确定最终场景理解语义。
2.如权利要求1所述的基于多模态嵌入的场景理解语义生成方法,其特征在于,步骤(1)具体是:首先确定n个类别场景,对每个类别场景分别采集m张图片,建立每个场景语义关联度,语义包括可能出现的物体和可能出现的动词;对采集的图片进行预处理,然后对每一幅图片进行语义标注;预处理包括调整图片大小、光线。
3.如权利要求2所述的基于多模态嵌入的场景理解语义生成方法,其特征在于,(2.1)具体是:
首先将图片划分为多个区域,每个区域采用边界框确定范围;通过相似度不断合并区域,得到最终边界框;对于颜色距离d1、纹理距离d2、区域合适度d3,分别赋予不同的权重计算总的相似度:其中,颜色距离相似度纹理距离相似度区域合适度相似度ri和rj分别表示第i个和第j个区域,和分别表示第i个和第j个区域的第k个通道的颜色直方图,和分别表示第i个和第j个区域的第k个通道的纹理直方图,rij表示第i个和第j个区域合并后的区域,k=1,2,…,k,k为直方图的通道数,i,j∈gr,gr表示划分区域的集合;
总相似度s(ri,rj)=α1·d1(ri,rj) α2·d2(ri,rj) α3·d3(ri,rj),α1、α2和α3分别为色距离相似度、纹理距离相似度和区域合适度相似度的权重;
利用经典cnn结构vgg16,抽取固定长度的特征向量,然后基于每个边界框内的像素ib计算检测区域向量v=wm[cnn(ib)] bm;其中,cnn(ib)表示将像素ib转化为分类前完全连接层的4096维向量;wm为转换矩阵,维数为h×4096,h为嵌入空间的大小;bm为偏差向量;每幅图片最后被表示成一组h维向量{vq|q=1,2,…,q},vq为第q个检测区域向量;
使用双向循环神经网络计算语义特征,将语义中的单词当成序列输入双向循环神经网络,将每个单词转化成为h维向量;记输入单词为xt,输入层的输出gt=f(w1xt b1);w1为第一层转换矩阵,b1为第一层偏差向量;
隐藏层将gt作为输入,分别进行前向和后向传播,输出分别记为和隐藏层前向传播输出隐藏层后向传播输出下标或上标的f表示前向传播,b当表示前向传播,t为当前时间步,t 1为后一时间步,t-1为前一时间步;
双向传播后得到的结果作为输出层的输入,输出激活函数f采用线性整流函数relu,
4.如权利要求3所述的基于多模态嵌入的场景理解语义生成方法,其特征在于,(2.2)具体是:
对图片中提取的区域和语义中的单词进行匹配,匹配分数其中,wn表示单词,gw为单词集合,t表示转置;m=n表示图像语义匹配真值,则结构化损失函数为:
5.如权利要求4所述的基于多模态嵌入的场景理解语义生成方法,其特征在于,(2.3)具体是:
首先搭建rnn网络,利用cnn提取图像特征后,生成4096维向量,输入网络,进而生成图像的语义描述senti=w3[cnn(ri)],w3为搭建的rnn网络的转换矩阵;rnn获取图像向量和单词序列向量,计算出隐藏输出ht和模型输出yt:yt=w6ht bo,bo为搭建的rnn网络的偏差向量;
然后对rnn网络进行训练,以单词xt和前一语境信息ht-1作为输入,训练如下:
a.t=1时:令x1为特殊的start向量,y1的期望标签是真值序列中的第一个单词;
b.t=2时:令x2为第一个单词的单词向量,输入为x2和h1,y2指向真值序列中第二个单词;
c.t=3时:令x3为第一个单词的单词向量,输入为x3和h2,y3指向真值序列中第二个单词;
d.依此类推至最后一个单词xt,目标标签指向特殊的end标志;
训练结束后进行测试,如下:
e.通过模型计算得到第一个单词y1的分布概率,选择概率最高的前三个作为候选结果y1′、y1″和y1″′;
f.分别输入y1′、y1″和y1″′,在所有输出中选择概率最高的前三个作为预测结果y12′、y12″和y12″′;
g.分别输入y12′、y12″和y12″′,在所有输出中选择概率最高的前三个作为预测结果y123′、y123″和y123″′;
h.依此类推直至找到完整的一句话,即语义信息。
6.如权利要求5所述的基于多模态嵌入的场景理解语义生成方法,其特征在于,步骤(3)具体是:
将每个单词嵌入到场景空间,语义描述中未出现的单词设置0向量,出现的单词设置为场景语义关联度向量,则第z个单词场景关联度向量表示为'wordz'=[lz1,lz2,…,lzn],lzn表示第z个单词与第n个场景的关联度,n=1,2,…,n;
将语义中所有单词的场景关联度向量对应相加,得到整句话的场景空间向量:
z为单词数量;
取场景空间向量sent中最大值元素对应的场景类型作为最终场景理解语义scene。
技术总结本发明涉及基于多模态嵌入的场景理解语义生成方法。本发明方法基于CNN RNN模型,在自身数据集上进行训练微调,对不同的场景进行分类识别,生成场景语义描述。首先,确定针对每一类场景采集数据集,为每幅图像标记语义信息。采用CNN提取数据集特征,将提取的图像区域转变成为h维向量。使用双向循环神经网络来计算语义表示,将语义中的单词当成序列输入,将每个单词转化成为h维向量。图像区域和语义单词处理完成后,将其作为数据集来训练RNN网络,利用集束搜索算法提高结果的准确率。本发明基于现有网络,构造自身数据集,并进行训练微调,生成场景语义描述,为进一步利用场景语义信息提供保障。
技术研发人员:王亚宁;刘伟峰;徐晓滨
受保护的技术使用者:杭州电子科技大学
技术研发日:2020.11.27
技术公布日:2021.03.12