基于图像搜索与合成的图像语义理解

2022-06-29 12:32龚学尧赵逢禹
计算机技术与发展 2022年6期
关键词:框图语义对象

龚学尧,赵逢禹

(上海理工大学 光电信息与计算机工程学院,上海 200093)

0 引 言

图像语义理解以图像为对象,知识为核心,研究图像中的目标、目标场景之间的相互关系,进而构建图像的语义。图像语义理解对自动驾驶、儿童教育、图像检索等领域的发展都有促进作用,在人工智能的研究中具有重大的现实意义[1]。

早期的图像语义理解方法主要是基于模板的方法,该方法先对图像中的物体、动作、场景等信息进行检测,然后将对应的词汇填入格式固定的句子模板中,从而将图像转换成自然语言描述[2]。Farhadi等人采用检测的方法推理出一个三元场景元素,通过模板将其转化成文本,从而用自然语句输出描述内容[3]。KulKarni等人提出了由两步组成的图像描述生成系统,他们首先通过计算机视觉技术确定描述内容的最佳词汇,然后通过自然语言统计的方法来构造描述文本[4]。

随着深度学习的发展,人们提出了基于编码-解码的图像语义理解模型[5-7],这种模型将图像语义理解的任务拆成两部分,用卷积神经网络(CNN)提取图像特征,用循环神经网络(RNN)作为解码器生成语言文字。这类方法不依赖于单一的语言模板,但不足之处是不能很好地解释生成的单词与图像中对象的位置关系[8]。为了解决这个问题,Xu等人提出将注意力机制引入图像语义理解模型,提出了soft-attention和hard-attention,有效提高了模型的性能,为后续注意力机制的发展奠定了基础[9]。Qu等人使用CNN提取了更加丰富的特征,如颜色、轮廓等,并且将这些视觉特征加入到注意力机制中,使生成的描述更加准确[10]。Marcella等人提出了一种结合显著图(saliency map)和上下文的注意力机制,并且通过实验验证出显著图能在文本生成中起到重要作用[11]。

在上述方法中,基于模板的图像语义理解方法虽能保证图像语义中语法的准确,但完全固定的模板过于死板,会使最终的描述语言缺少多样性。基于深度学习的图像理解方法是端到端的训练方法,生成的描述语句不依赖于单一的语言模板,结构清晰易被理解,但仍存在着一些问题:

(1)由于生成描述依赖于视觉特征的选择与提取,部分图像场景目标及关系易被忽略,导致描述的文本信息不完整;

(2)文本描述的泛化能力较低,对于同一图像数据集的图片进行测试时可以较为准确,但对于随机图片进行测试时效果较差[12]。

针对一幅图像语义理解,人们通常先根据头脑中掌握的领域知识,识别图像中的物体及背景,结合图像内的信息组建出图像的场景,综合构建出图像语义。而对于超出其领域知识的图像,通常借助搜索引擎搜索对图像的文字解释。基于这一思想,该文提出一种基于搜索与合成的图像语义理解方法。首先通过搜索获取原图像的相似图像对应的描述文本,然后根据图像识别获得的目标对象以及图像相似度对描述文本进行分析,提取最契合原图像的描述文本作为语义合成的基础,最后提出了一个基本的图像语义合成方法。

1 基于图像目标识别与搜索的语义合成

为了获得一幅图像的语义,首先可以使用互联网上的图搜索引擎搜索相似图像并获得图像的文字描述,然后对文字进行分析,构建图像的语义信息;若搜索到的图像对比原图像有缺失的内容,则可对原图像内的物体进行识别,利用图像识别所得的目标对象进行搜索,最后将目标对象搜索到的图像描述与原图像搜索到的图像描述进行语义合成,生成描述所有目标对象的图像语义。基于图像目标识别与搜索的图像语义理解的处理流程如图1所示,该流程主要包括以下四步:

图1 基于搜索的图像语义理解流程

(1)搜索相似图像描述文本与图相似计算。

将原图像输入图搜索引擎,获得原图像对应的相似图片及描述文本的集合。利用图相似算法,对原图像与原图像搜索所得图像进行相似度计算,并依据相似度由高到低对所得图像进行排序。构建相似图像与描述文本集合Similartext={(相似图像,相似图像对应描述文本,相似度)}。

(2)获取目标词与目标框图像的描述文本。

通过目标检测算法对原图像内的目标对象进行识别,在原图像中检测目标对象的位置信息并获取目标物的类别信息。利用目标对象的类别信息构建目标词集合Twords={(目标词,位置信息)}。

利用目标对象的位置信息获取目标框图像,将目标框图像输入搜索引擎以获得目标对象的相关描述文本。构建图像的目标对象的描述文本集合Targettext={(目标词,目标框图像,目标框图像对应描述文本)}。

(3)提取图像语义的基础文本。

选取原图像的相似图像对应描述文本与图像目标词集合进行差异分析,若目标词出现在描述文本中就认为是共有目标词,对比计算两者的共有目标词数量。取每幅相似图像的共有目标词数量乘以其与原图像的相似度作为选取图像语义的度量标准,获得乘积最大的图像描述文本,该文本作为语义合成处理的基础文本。

(4)语义的合成处理。

获得基础文本后,将该文本的共有目标词与目标词集合进行对比分析,如果该描述文本包含所有目标词则直接作为图像语义输出,如果该描述文本中包含的目标词不全,则提取缺失目标词对应的目标框搜索所得的图像描述文本,然后将基础文本与缺失目标词的描述文本相拼接,使最终文本拥有全部目标词,得到完整描述。最后清除搜索所得大部分描述文本中无意义的前缀或后缀,输出纯净的图像语义。

2 主要技术实现

为了实现图1中各部分的任务,必须解决一些技术问题:在搜索相似图像描述与获取目标框图像描述的过程中须调用搜索引擎搜索并获取描述文本;另一方面由于搜索引擎获得的图像虽然有序但没有具体的相似值,为了通过计算选取用于合成的基础描述文本,须使用图相似度计算算法来获取相似度的值;在获取目标词与目标框图像的步骤中须使用目标检测算法来识别目标对象以获取信息;在获得图像相似度与目标词后须选取最契合原图像的描述文本作为语义合成的基础;最后将基础文本与其缺失目标词的描述文本进行拼接。下面就这些主要技术进行介绍。

2.1 搜索相似图像及描述文本

使用原图像及目标识别所得的目标框图像分别作为图片搜索的输入,调用Google API搜索互联网上的相似图像及图像自身携带的文本描述信息,获得大量对应相似图像及文本语义描述。分别将原图像和目标框的搜索结果放置于两个集合中,用于后续的图相似计算及语义合成。算法1给出相似图像与对应文本描述的搜索算法,原图像与目标框图像的搜索均使用该算法。

算法1:相似图像与对应文本描述的搜索算法。

输入:原图像Oimage。

输出:相似图像与描述文本集合Similartext={(imag,txt,sim)}。

处理:

(1)初始化Similartext=Φ。

(2)GoogleSearchResult Result= GoogleSearch.doSearch(Oimage);//进行原图像搜索并取结果。

(3)For each r in Result{

imag=r.getImage(); txt=r.getText();

//从搜索结果中提取相似图像以及描述文本。

sim=similarity(Oimage,imag);

//调用图相似度计算算法对原图像与相似图像计算获取相似值。

Similartext=Similartext∪{(imag,txt,sim)};

}

(4)输出处理后集合Similartext,结束算法。

2.2 图相似度计算

由于搜索获得的相似图像虽然有序但没有具体的相似度,为了获取图像相似度的具体值,该文使用均值哈希算法对搜索所得图像与原图像进行相似度计算。均值哈希算法是哈希算法的一类,哈希算法对每张图像生成一个“指纹”字符串,然后比较不同图像的指纹,获取图相似值。算法2给出图相似度计算算法。

算法2:图相似度计算算法。

输入:图像Image1,图像Image2。

输出:图像相似值sim。

处理:

(1)preprocessing(Image1);preprocessing(Image2);//对图像进行预处理,缩小尺寸,简化色彩。

(2)Avg1=average(Image1);Avg2=average(Image2);//计算图像像素的灰度平均值。

(3)Num1=getfingerprint(Avg1,Image1);Num2=getfingerprint(Avg2,Image2);//调用指纹计算算法获取两幅图像的指纹。

(4)sim=simcalculation(Num1,Num2);//比较计算两幅图像指纹获得图相似值。

(5)输出图像相似值sim,结束算法。

在算法2中指纹计算算法将图像中每个像素的灰度与其灰度平均值作比较,若灰度大于或等于其平均值则记为1,小于其平均值的记为0,随后将比较结果按固定顺序组合在一起构成图像指纹。

2.3 识别图像中的目标词与目标框图像

图像目标识别的目的是获得图像中重要目标对象对应的目标框图像。通过目标框图像识别其中的目标对象、目标词与对应的描述文本。

在目标识别中,该文使用基于目标检测任务的YOLO[13]对图像中的目标进行识别。针对没有在训练集中的目标对象,无法给出目标词的情况,利用搜索引擎和人工标注的方法对图像中不在已有类别中的新物体进行标注,在目标检测阶段得到新物体的目标框后,将其输入搜索引擎获取相似图像,根据相似图像的标注对新物体的目标类别进行划分,最后取结果输入训练集。

YOLO是一种基于深度神经网络的对象识别算法。YOLO算法利用整张图作为网络的输入,将一幅图像分成S×S个网格,每个网格负责检测中心落入该格子的物体,最后在输出层回归目标框的位置及类别概率。YOLO算法的网络全貌如图2所示,网络中包含24个卷积层和2个全连接层,其中卷积层用于抽取图像特征,全连接层用于预测物体的类别概率和坐标定位[13]。

图2 YOLO算法目标识别网络

识别得到对象的目标框及目标词之后,将全部目标词放入Twords构建目标词集合。并根据目标框采用算法1搜索目标框图像对应的描述文本,利用搜索结果构建出图像目标对象的描述文本集合Targettext={(目标词,目标框图像,目标框图像对应描述文本)}。

2.4 语义提取合成与处理

通过搜索得到的相似图像的文本描述往往不够完整,难以涵盖原图像中的所有目标,直接作为输出会缺漏原图像的部分语义。因此需要对搜索所得的文本描述进行语义处理。

文中语义处理主要分为两步:提取图像语义的基础文本;合成处理基础文本。提取图像语义的基础文本的具体操作为:首先利用目标词集合与相似图像的文本描述作差异分析,获得两者的共有目标词,然后使用共有目标词数量与图相似度相乘,取乘积最大的文本描述作为语义合成的基础文本。合成处理基础文本的具体操作为:利用目标词集合查找基础文本中缺失的目标词,通过图像目标对象的描述文本集合获取缺失目标词对应的描述文本,将基础文本和缺失目标词对应的描述文本进行拼接,形成图像语义,如算法3所示。

算法3:语义合成处理算法。

输入:基础文本Basictext,图像目标对象的描述文本集合Targettext。

输出:Stext={statement}。

处理:

(1)初始化Stext=Φ;初始化Statement=Φ;

(2)提取Targettext中的目标词,构建目标词集合Twords。

(3)For each tword in Twords{

if(tword不在基础文本Basictext中){

Lackstatement=getstatement(tword,Targettext);//取缺失目标词对应描述文本。

Statement={Basictext}∪{Lackstatement};//合成基础文本与缺失目标词对应描述文本。

}

}

(4)Stext=Stext∪{filtertext(Statement)};//对描述文本中可能含有的无意义前后缀做过滤处理后输出。

(5)输出描述Stext,结束算法。

3 实验及分析

3.1 数据集

为了测试各类图像的语义,采用在图像语义任务中具有代表性的MSCOCO(Microsoft Common Objects in Context)数据集[14]进行实验。MSCOCO数据集可用于图像识别、图像描述生成等任务,其中包含了图像内物体的类别、物体的轮廓坐标、边界框坐标以及对该图像内容的描述。图像内容描述可用于对比文中方法获得的图像语义。

3.2 语义评价方法

为了衡量生成的图像语义的好坏,需要对图像语义进行评估。文献[15]通过对测试获得的图像描述生成四个评价等级(“极好”,“好”,“差”,“极差”)来评价图像语义[15]。其中“极好”说明图像描述涵盖了图像中所有细节;“好”说明图像描述中有词语替代了其他一个或多个词语,且描述均正确;“差”意味着产生的描述中出现错误的语义或者遗漏图像中的要点;“极差”说明图像描述的语义完全错误,在实验分析中,引入了这一人工评价的准则。

3.3 实验步骤

STEP1:识别图像中的目标。

使用经过预训练的YOLOv3对COCO数据集中图像进行识别,提取目标对象的位置信息与类别概率形成目标词与目标框图像。

STEP2:搜索相似图像描述文本。

调用谷歌搜索引擎对原图像与目标框图像进行搜索,将搜索结果存于本地并提取图像文本信息,构成相似图像与描述文本集合以及图像目标对象的描述文本集合。

STEP3:提取图像语义的基础文本。

使用图相似度计算算法获取原图像与搜索结果图像的相似度,使用目标词对比搜索结果图像的对应文本获取共有目标词,提取图像相似度与共有目标词数量的乘积的图像的文本描述作为基础文本。

STEP4:语义合成处理。

使用目标词集合对比基础文本,获取基础文本中缺失的目标词,在图像目标对象的描述文本集合中提取缺失目标词对应的描述文本,将各缺失目标词描述文本与基础文本进行拼接,清理合成文本中无意义的内容。

3.4 语义描述效果

实验生成图像语义后,在结果中选取了部分图像以展示语义描述效果,表1给出了5幅图像的语义描述。文中方法可以做到比较精准且细致地描述场景及其人物,如在表1(a)、表1(e)中,可以获得“senior male player”以及“handsome young man”的解释而非“man”。在实验结果中,大部分语义在一定程度上能给出原图的内涵、原意,如表1(b)的语义中显示出图像在网络上的出处,表1(d)的语义中显示出图像所处地点;另一方面在表1(e)中,可以看出在“looking over shoulder”的用词上与图像所显示的略有差异,这是因为在相似图像的搜索中,图像场景及目标大部分相似的情况下,对于方向、位置的语义判断可能会与原图有所差别,这也是文中方法进一步完善的地方。

表1 图像语义描述效果

3.5 实验结果及分析

实验随机选取COCO数据集中814幅图像,采用了人工评测的方法,由5名图像语义领域的研究者根据图像中的信息对产生的图像语义给出评价等级。实验结果如表2所示。

表2 COCO数据集实验结果 %

表2中统计了“极好”“好”“差”“极差”四种评价等级在实验中的占比情况,文中算法抽取的随机图像中77.1%的图像语义是“好”与“极好”,而在使用相同语义评价方法的文献[15]实验结果中,“好”与“极好”的占比为73.4%,可以看出文中算法产生错误的图像语义的概率更低,能更准确地反映图像语义。在结果中值得一提的是,由于使用网络搜索获取文字描述加以合成,文中算法输出的语义结果不仅单纯地描述图像内容,而且语义的多样性和丰富程度相当充分,贴近人们对图像的理解,这一点在“极好”的评价等级中体现更加明显;另一方面,在面对复杂图像时,针对缺失目标词的语义合成也能使图像中要点部分遗漏的更少。

4 结束语

为了研究图像语义,提出了一种基于图像目标识别与搜索的方法,不同于图像理解早期基于模板的及基于编码-解法的方法,识别图像内目标后,采用搜索引擎获得互联网上繁多的相似图像标注数据,借助这些数据,通过图像相似度算法,提取并合成描述文本从而得到最终的图像语义。实验结果表明,该方法能够较好地解决语义语法多样性的问题,得到更为人性化的语义。其中77.1%的图像语义能较为准确地阐述图像内容,但部分图像对于方向和位置的语义判断出现了错误。在未来的研究中,可以对场景及目标位置进行分析以改善这一弊端,生成更准确的图像语义。

猜你喜欢
框图语义对象
分式复习指导
晒晒全国优秀县委书记拟推荐对象
攻略对象的心思好难猜
图说车事
算法框图的补全
汉语依凭介词的语义范畴
基于图表法构建《万有引力定律与航天》知识网络
个性签名
无机化学推断题与框图题解法