APP下载

基于深度学习的景点图像识别

2022-09-01单慧琳洪智毅张银胜王兴涛

实验室研究与探索 2022年5期
关键词:哈希景点检索

单慧琳,洪智毅,张银胜,王兴涛

(1.无锡学院电子信息工程学院,江苏无锡 214105;2.南京信息工程大学电子与信息工程学院,南京 210044)

0 引言

图像识别是将图像根据提取出的特征进行分类,进而将待识别的图像与已有的图像分类进行匹配。景点图像识别属于大规模图像检索的范畴,传统的基于内容的图像检索方法由于图像表达能力不强,处理数据又需要耗费大量的计算时间,不利于大规模图像检索。实现相关性更全面、速度更快、成本更低的景点图像识别成为了图像识别领域的热门研究话题。基于哈希的图像检索方法将图像的特征转变为哈希码,使用汉明距离来比较图像的相似性,可以大大减少计算机的内存消耗和检索响应时间,因此它能更好地适用于大规模图像的检索。

Ji等[1]通过一种特殊的位置词汇编码,将图像中的视觉相关内容和地理特征进行整合,通过位置感知将地理特征进行区分,同时使描述符与区分后的地理特征进行迭代优化,生成精简的地理特征描述符。同时,Ji等[2]还将图标的其他信息添加进生成地理特征描述符的过程中,类似于将GPS 信息加入,使得最终的描述符更加精简。在图像特征检索部分,Zhou 等[3]将图像特征信息转换成二进制编码,进而实现快速检索图像。在通过二进制编码描述被测图像的基础上,Min等[4]首先将图像进行一次压缩后,再转化成哈希码,使得哈希码更短,实现更加快速的转换。2017 年Zhu等[5]提出一种检索方案,即通过改进规范视图,实现离散多模态哈希算法上述这些图像识别算法,都是人工或者半监督的方法实现图像特征的提取,并不能实现端到端的学习提取特征。

随着深度学习分析能力不断提高,深度学习多层次的结构可以更好地发现复杂景点图像数据之间的关联性,因此,越来越多的研究者加入到深度学习的哈希检索领域中,在CVPR 等人工智能和图像识别的顶级会议中,相关论文不断发表。2013 年迭代量化哈希[6](ITQ)被提出,这是一种通过降维然后找到量化误差最小的哈希算法。离散图哈希[7](DGH)指的是一种建立图像对应的锚点图直接离散约束求解的算法。谱哈希(SH)通过sign在0 点处将特征函数值实现二元量化[8]。Scalable Graph Hashing(SGH)和Restricted Boltzmann machine(RBM)等也相继被提出[9-10]。2014年,Xia等[11]构建出一种相似度矩阵,这种用相似度矩阵来衡量两个样本之间的相似度关系的方法被叫做CNNH算法。2015 年,Zhao 等[12]通过对CNN 网络中的一个具有凸上界的函数进行训练,从而实现一种有序排列的深度哈希算法。这个有序排列的算法,可以有效地使图像检索系统最后返回的测试结果进行有效的优化。2015 年,Lin 等[13]在CNN 网络的基础上,增加了一个隐层,这个隐层采用Sigmoid 函数作为激活函数,这种通过添加隐层的方法可以使卷积神经网络直接在调整结束后,对添加的隐层的特征值直接阈值化,并得到二进制编码。2020 年,刘小安等[14]用CNN-BiLSTM-CRF的网络模型对景点进行识别,同年,赵平等[15]将BERT+BiLSTM+CRF 用于景点识别,两篇论文都是用于命名实体识别。

本文旨在设计一种新的图像检索方法,使用高层语义区分策略,综合现有的深度学习和哈希检索算法,应用到旅游景点图像检索中,使用新的卷积神经网络和激活函数使神经网络训练更加快速。在提高图像识别准确率的同时,降低检索成本。

1 基于深度学习的哈希检索方法

哈希映射主要指的是将被测图像数据通过建立好的模型转变为一种二进制编码,使得被测图像与二进制编码之间存在映射关系。但由于传统的哈希检索算法,只能通过人为参与的方式设置算法对图像特征的提取,这样得到的二进制码无法保证具有足够的代表性。基于深度学习的哈希检索方法可以使系统实现端到端的训练,直接从训练网络中得到编码。

在一般的哈希检索算法中,普遍做法是将目标样本表示为二进制码,这样的二进制码具有固定的长度,以0/1 或者-1/ +1 来表示每一位二进制码。这样的转化方式使得在最终的二进制编码集中,可以通过计算被测图像二进制码与检索图像的距离来判断是否相似(使用汉明距离来测量二进制代码之间的相似性)。在哈希检索算法的初级阶段,研究者利用超平面划分空间,进而通过被测图样的样本点在空间的某个区域来确定取值。这样的算法简单粗暴会造成极大的编码长度,随着网络图像数据指数提升,这种方法需要惊人的存储空间才能保证检索的精确度。人们通过采取不同的优化方法或者构建不用的目标函数得到编码长度更短的二进制编码,使得哈希检索的性能得到巨大提升。哈希检索算法的主要目标是得到二进制码,因此在优化的过程中会受到离散取值问题,通常采用一种放宽约束做法。下面主要介绍两种较为先进的深度哈希算法:DLBHC(Deep Learning of Binary Hash Codes)算法和DNNH(Deep Neural Network Hashing)算法。

1.1 DLBHC算法

DLBHC算法相较于Semantic Hashing方法使用一种更加直接迅速的方法来学习二进制编码。DLBHC算法的核心部分是插入一个全新的完全连接层,该完全连接层放置在倒数第二层和最终任务层之间。通过Sigmoid函数作为激活函数加入非线性因素,将代码长度作为节点数,将语义信息通过端到端的微调添加到新加入的完全连接层的输出中。在DLBHC 算法中,任务层最终输出的二进制代码包含了语义信息,但是最终的检测结果依旧会产生一定偏差。这是由于采样点的相对位置关系没有在网络训练的过程中被考虑,因此,该网络结构无法保证语义上相似的点包含所有汉明距离相近或者距离较短的点。该算法的网络流程如图1 所示。

图1 DLBHC算法模型

1.2 DNNH算法

DNNH算法采用一种NIN的网络结构。与同样使用NIN网络的CNNH算法相比,DNNH的核心做法是使用三元组的形式进行训练。DNNH算法采用一种非交叉熵的损失函数,这种损失函数是建立在三元组基础上的,采用这种基于三元组的损失函数使得不类似点的采样在最终汉明空间之间的距离大于类似采样的距离。同时,DNNH算法对NIN 网络结构做出一些针对性的改变以适应哈希学习的任务,主要分为两点:

(1)通过舍弃全连接层,使用部分链接层,使得每个不连接部分分别学习一部分,这样可以有效地减少二进制码在不同位上所产生的冗余(见图2 左切片层)。

图2 DNNH算法模型

(2)通过Sigmoid 函数作为激活函数,加入非线性因素,对于离散约束进行松弛。上面两个核心部分已共同构成DNNH算法网络图中的分段和编码模块。DNNH算法可以实现端到端的训练方式,将所学的图像反作用于二值码,因此,DNNH算法相较于同样使用Network in Network网络的CNNH算法,检索效果有了足够的提高。

1.3 改进的深度学习哈希检索方法

本文提出一种改进的深度学习哈希检索方法,对旅游景点进行图像识别。使用该方法对已有的景点图像数据进行训练得到训练集,该方法使用经典卷积神经网络VGG16 来训练提取图像特征,采用5 ×5 的卷积核大小,使用交叉熵作为损失函数,将ReLU函数作为激活函数,在训练好的网络模型中,由哈希层以及哈希层中的编码块数确定k位的哈希编码,并对得到的哈希编码进行阈值化分得到二值码,将待测的景点图像数据通过同样的网络模型,以得到待测景点图像的二值码,通过对训练集和待测图像的二值码进行多索引哈希近邻检索以实现最终的查找。

相较于传统的DNNH 算法和DLBHC 算法,在深度学习部分,本文的方法使用一种更为仿生的特征提取策略,使识别首先发生在高语义层次。与DNNH 算法和DLBHC算法相比,本文采用ReLU函数作为神经网络的激活函数,使得收敛速度更快,在哈希检索部分,本文使用多索引近邻检索进行查找。

1.3.1 基于深度学习的特征提取策略

传统的哈希算法基本通过手工设定的提取方法来提取特征,但这样得到的特征表达能力都不太强。景点图像识别首先依赖的是图像的特征,而提取特征的策略将直接影响图像检索的准确率。

研究表明,景点图像信息量最大的地方往往是图像的高频部分,这些高频的部分一般表现为角点、凹凸点、断点等地方。生物在区分这些图像时,往往会集中区分这些高频部分。通过对这些高频部分的低层特征来构建相应的领域,然后利用其他与领域有关的低频特征来归纳出对应的高频特征,进而实现检索。例如:当一个景点图如黄山被输入到计算机时,计算机往往通过提取这张图像的所有特征,然后再遍历搜索相对应的景点。这样搜索计算量大,消耗时间较长。而人眼在收集到黄山的这张图像信息时,人脑在第一时间会忽略掉其他无关的特征,从图像中提取较大的信息量的低层特征,总结出高层特征,将“山”这一图像信息输入人脑,然后利用与山相关特征对图像进行进一步的检索,最终得出识别结果。

可以看出,人类对于图像信号的理解往往发生在比较高的识别层次,而不是在低层次上进行遍历搜索。这些高层次的特征是对相关领域的总结,例如当发现待识别的是一座山时,会立刻去寻找山的高度,山顶的形状这些特征等,因此通过对于这些高层次特征的提取可以更快地实现图像的检索。

1.3.2 深度学习算法模型

基于像素和领域的特征可以设计一种分层次的算法模型,这种模型应具备从图像中抽取基本高频的像素特征,并对这些特征进行大致的领域划分,然后在更高的语义层次上抽取图像特征来最终识别对应的景点图像。由于低层次抽取和高层次抽取具有矛盾性,因此不能使用单一的网络学习结构来学习,需要一种深度学习的层次化结构来满足在不同层次上抽取特征的需求。本文所提出的算法模型是在卷积网络结构的基础上进行改进的。VGG16 作为经典的卷积网络,相较于其他网络具有收敛快的优势,因此本文使用卷积神经网络VGG16 来训练提取被测图像的特征,卷积核大小可以选用3 ×3 和5 ×5,也可以采用2 个3 ×3 的卷积层堆叠。VGG 结构图如图3 所示。卷积过程如图4 所示。

图3 VGG16卷积网络模型

图4 卷积过程

1.3.3 ReLU激活函数

DNNH算法和DLBHC 算法使用Sigmoid 函数作为激活函数来引入非线性因素。图5 所示为Sigmoid函数图像,Sigmoid单调递增容易优化,但Sigmoid函数缺点十分明显,Sigmoid 函数收敛缓慢,且会造成梯度消失,即Sigmoid 函数的导数在自变量x趋向于无穷时,会趋于0。函数公式:

图5 Sigmoid函数图像

因此,本文采用ReLU 函数为激活函数。其函数定义为

ReLU函数图像如图6 所示,ReLU 函数以0 点为中心,分为两段函数。ReLU 函数与Sigmoid 函数相比,ReLU 函数的导数恒为1,从根本上解决了激活函数梯度消失的问题,同时ReLU 函数得到的随机梯度下降的收敛速度要比Sigmoid 快很多。ReLU 函数也可以对神经网络进行稀疏表达,对于无监督学习,也能获得很好的效果。

图6 ReLU函数图像

1.3.4 交叉熵损失函数

本文使用交叉熵作为损失函数来评价预测值和真实值的不相似程度,标准形式如下:

式中:x表示样本;y表示实际的标签;a表示预测的输出;n表示样本总数量。在深度学习训练过程中,网络会产生一定的误差,这种误差通过选择的损失函数来进行弥补。因此,损失函数的性能将直接影响整个网络系统的性能。

1.3.5 哈希码生成

使用前面提到的卷积神经网络以及交叉熵损失函数完成模型的构建,使用爬取到的图片作为训练集训练,由哈希层以及哈希中的编码块数确定k位的哈希编码。同时对松弛的哈希编码使用一种阈值划分,这种阈值划分使得松弛的哈希编码最终行成二进制编码,阈值量化函数定义

对于待测图像A,可以通过训练好的网络模型,对待测图像A进行哈希码生成并经过阈值量化。最终得到二进制编码为sgn(A)。

1.3.6 检索策略

图7 显示了基于深度学习的哈希近邻检索的流程结构。哈希近邻检索是将图像经过训练好的模型网络和阈值化过程,得到一个二进制编码,将其放在索引表中去寻找候选的结果,计算查询图像的二进制码与候选结果间的海明距离,将候选结果通过计算出的海明距离进行排序,排序后的结果序列即为得到的影像序列。本文使用多索引哈希近邻算法,即在划分索引时,将查询图像和候选结果同时分成多个连续不重复的子串,并分别建立对应的子串索引表,这种划分子串的方式可以显著提高查找的速度。

图7 哈希近邻检索流程

2 实验结果与分析

2.1 数据集

为了验证构建的模型在旅游景点图像检索领域中的表现,从谷歌和百度提取1 万余张热门旅游景点图片构建一个数据集,针对热门景点中不同类型的景点,如建筑物、湖泊、树木、山脉等分别进行抓取。数据集部分图像如图8 所示。将数据集中的图片按9∶1的比例分为训练集和测试集。

图8 数据集部分图像

2.2 评价指标

本文采用图像识别常用评价指标,即查准率(也叫准确率,precision,P)、查全率(也叫召回率,recall,R)和F1测度值(F1-score)。

2.3 结果与分析

图9~12 分别表示景点天坛和长城的部分测试样本及测试结果。如图9 所示,当被测样本是天坛时,测试结果如图10 所示。如图11 所示,当被测样本是长城时,测试结果如图12 所示。

图9 天坛测试集示例

图10 天坛测试结果

图11 长城测试集示例

图12 长城测试结果

为了进一步验证本文模型的识别效果,设计了3组对比实验,即分别使用DLBHC 算法、DNNH 算法和本文提出的方法进行对比,实验结果对比如表1 所示。从表1 可以看出,本文方法的P、R和F1值都是3 种算法中最高的,分别为95.69%、93.36%、94.51%。3种算法的查全率曲线和P-R曲线如图13、14 所示。由图可见,本文提出的方法取得了最好的实验效果,优于DLBHC算法和DNNH算法。

表1 实验结果对比 %

图13 3种算法的查全率曲线

图14 3种算法的P-R曲线

3 结语

本文分析了传统深度哈希算法和传统图像检索的优缺点,在对传统深度哈希算法缺点加以改进的基础上,提出一种新的特征提取策略的改进的深度学习哈希检索方法,使得景点图像数据集中更加快速地检索。该方法使用了一种基于深度学习的多层次网络模型,采用ReLU函数作为激活函数,引入非线性因素,通过网络结构中使用VGG16 卷积网络来提取具有良好表达能力和鲁棒性的特征,并利用多索引哈希近邻算法进行查找。

本文的方法很好地完成了预期目标,并通过创立一个影像数据集来验证算法的有效性。验证了本文提出的方法可以使得深度哈希网络的训练更加稳定和迅速。但该方法由于使用了VGG16 作为卷积神经网络,造成算法占用内存较大,当待测图像同时出现两处景点时,存在一定的分辨误差。本文后续将进一步研究。

猜你喜欢

哈希景点检索
基于特征选择的局部敏感哈希位选择算法
哈希值处理 功能全面更易用
文件哈希值处理一条龙
瑞典专利数据库的检索技巧
一种基于Python的音乐检索方法的研究
打卡名校景点——那些必去朝圣的大学景点
浅议专利检索质量的提升
英格兰十大怪异景点
没有景点 只是生活
景点个股表现