APP下载

融合显著性检测的图像检索方法研究

2023-04-11卢圆圆刘宗堡

关键词:特征提取检索卷积

田 枫,卢圆圆,刘 芳,刘宗堡

(1.东北石油大学 计算机与信息技术学院, 黑龙江 大庆 163318;2.东北石油大学 地球科学学院, 黑龙江 大庆 163318)

如今,由国防和民用卫星、军事侦察、指纹和面部数据、生物医学和家庭娱乐等产生的图像数据正在呈几何倍数增长,海量的多媒体资源在方便人们生活的同时也给人们带来了一定的困扰。人们需要花费更多的时间和精力去筛选和过滤无价值图像才能得到有用信息。随着现代计算机科学的发展,人们有必要使用计算机获得图像信息,从而有效提高图像处理性能[1]。

图像检索的发展自基于文本的检索技术到基于图像信息内容的其他语义,如图像的主体色彩[2]、纹理[3]等用来进行图像检索已不能够满足当今用户的复杂需求。基于深度学习方式的出现使得图像的概念与高级语义之间的距离变小。通过模型得到图像的特征向量[4],例如:AlexNet[5]模型使用非线性激活函数来提升特征的丰富性。人类的视觉系统具有极强的数据处理能力[6],计算机视觉是研究如何把计算机的视觉表达系统和人类所拥有的对外界的感知和分析的能力变得等同起来。显著性检测作为视觉研究的重要组成部分,关注从一个自然的图像场景中选择性地抽取出最重要的区域或物体[7]。因此,将显著性检测[8]算法融入到图像检索中会使检测结果更加贴近人们所希望的结果。

1 相关工作

图像检索的方法早期是基于文本的,提出过颜色直方图分块加权提取算法,融合文本和图像内容的混合相似度的检索方法等。传统的图像检索方法缺点是大量的图片需要人工设计特征,工作量过大。为解决此问题出现了基于图像内容的检索方法。

Xia等[9]提出一种基于卷积神经网络的哈希方法CNNH(convolutional neural network has-hing),该方法利用标签信息构造图像训练集的相似性矩阵,并分解产生相应的哈希码。Vaccaro等[10]利用基于NetVLAD的新型多尺度局部池化和基于样本难度的三元组挖掘程序来获得有效的图像特征,提高了图像检索准确率。林城龙[11]使用一个轻量级的卷积神经网络模型来检索图像,并利用多任务分类方法对图像精细分类。综上所述,基于深度学习的图像检索技术有着优秀的语义提取能力和更加关注高层信息的特点。研究者通常是使用多种技术相结合或者是使用特定的训练集对检索方法进行特化的方法来提高检索精度。

显著性检测方面的研究起初是由生物感知学科入手的。最早是作用于图像的颜色、强度和方向的模型[12],随后显著性模型大量涌现,2007年提出的频谱残差SR模型,2008年提出的PFT模型,2013年提出的基于多尺度频域滤波的HFT模型等。随着卷积神经网络的引入,显著性检测迎来了第三次发展高潮。卷积神经网络通常包含许多可调节的参数和感受野,可以更好地识别出图像中的主要区域。 这些优点使得其逐渐成为显著性物体检测研究的主要方向。

因此针对如何将海量图像进行有效组织并且迅速的检索得到人们所希望看到的图像即图像检索的准确率问题,本文将显著性检测的方法与图像检索方法相互融合,提出了基于显著性检测的两阶段图像检索模型NL-VG(NLDF-VGG16),首先搭建局部特征图与全局特征图相结合的非局部深度特征模型(NLDF)的显著性检测网络,其中使用了Sobel算子[13]边缘检测算法,定位图像中的显著性区域,其次搭建VGG-16网络,对定位到的显著性区域使用VGG-16网络进行特征提取,得到特征向量。最后构建图像检索系统,对于任意输入的图像,将得到的特征向量利用相似性度量方法和建立的图像检索库相匹配并显示与之相似的图像[14],最终输出输入图片最相似的检索结果。

2 NL-VG两阶段图像检索模型构建

2.1 NL-VG整体网络搭建

此两阶段的检索模型(NL-VG)的第一部分使用图像的显著性检测方法从而得到图像中的主要部分,生成显著图。图像的感兴趣区域通常包含了图像的重要内容信息[15]。第二部分利用第一部分的结果,使用神经网络进行训练得到检索的特征向量。在第二部分,将处理后得到的显著性图像作为输入。使用神经网络进行特征抽取,使用池化操作,获得一个用于检索的特征向量。对数据库中的所有图像进行上述两阶段的操作,均可得到对应的检索向量,生成检索库。对于任意的一幅图像,计算得到的检索库中所有检索向量与输入图像之间的余弦距离,相似程度即由余弦距离的数值大小来反映。限制检索结果的输出个数,方式为根据余弦距离的大小排序。此两阶段模型的整体结构如图1所示。

图1 NL-VG网络模型结构

本文的两阶段图像检索模型NL-VG第一阶段使用的是NLDF(non-localdeepfeatures)模型,其使用了大量的残差结构来将网络的各中间结果结合在一起,更好地获得全局上下文信息和局部注意力信息。NLDF一共有16层。第1层到第5层的结构均使用的是卷积加池化的操作,得到的是一个带有全局信息的特征图。第5层到第9层只使用卷积操作,同时使用了残差结构,1层至5层的输出结果作为6层至10层的输入。之后5层使用反卷积,同样是用到了5层至10层的结果。将第10层与第15层的结果进行结合,生成带有局部信息的特征图,最后将全局与局部特征图结合,进行主要区域的判断,得到图像的主体图。第二阶段模型是对得到的主体图像进行特征提取。模型见图1中的实线框内的部分,使用的是一个有5个模块且每个模块内均为2个卷积层加上一个最大池化层的结构,池化层用来对图像降维,并在神经网络训练时使用预训练权重,最终得到检索向量用于图像检索。

2.2 NL-VG子网络搭建

本文第一阶段使用的是NLDF(non-localdeepfeatures)模型,此模型使用了大量的残差结构来将网络的各中间结果结合在一起,更好地获得图像信息。普通的神经网络会随着网络深度的增加而存在梯度爆炸和梯度消失等问题,变得越来越难以训练。本网络中使用的残差结构[16]使得训练深度网络变得更加容易。

传统网络通过训练学习输入x与输出H(x)之间的关系,其中x为输入数据,H(x)为输出。残差块则使用有参网络层,在某一层的线性模块之后来学习输入、输出之间的残差,如式(1)所示,其中残差块结构如图2所示。

F(x,Wi)=W2σ(W1x)

(1)

式中:W1和W2表示有参卷积层的权值;σ表示ReLU函数;F表示残差映射函数;Wi表示第i层卷积层的权值矩阵。

根据图2,输入与输出的关系为x→F(x,Wi)+x。由于输入与残差之间的关系更易表示,因此该模型具有更强的图像特征提取能力。

模型中残差块卷积层的卷积核数目如表1所示。

图2 残差块结构图

表1 各卷积层的卷积核数目

此检索模型,第一阶段不仅使用了图像中的信息,更重要的是对图像的主要信息即显著性信息进行了特征提取,使用户的检索结果更加准确。

NLDF使用IoU计算预测值与实际值之间的差值大小,见式(2)。CEL使用了交叉熵损失,见式(3)。将上述2个公式采用线性组合的方式制作了新的损失函数,见式(4)。

(2)

(3)

Loss=∑jλjCEL(j)+∑jλj(1-IoULoss)

(4)

在NLDF网络中运用了Sobel算子检测算法。是一种利用局部差分寻找边缘的方法。其由横、纵2个方向的卷积核构成,图像中的像素分别与其做卷积,经过阈值处理得到方向上的边缘图像,可以提供较为准确的信息。

Sobel平面卷积的原理如式(5)所示:

(i*1)+(h*2)+(g*3)+

(f*4)+(e*5)+(d*6)+

(c*7)+(b*8)+(a*9)

(5)

水平、竖直2个方向的亮度差分近似值如式(6)(7)所示:

(6)

(7)

其中:A是指原图像;Gx及Gy是指对水平和竖直2个方向的计算。梯度值计算如式(8)所示。

(8)

原始图像如图3所示,Sobel算子的检测的效果图如图4所示。

图3 原始图像

图像检索的第二阶段是对第一阶段得到的图像进行特征提取。图像数据随着网络的发展也快速地增长。对于大量的数据图像,通常使用卷积神经网络来处理。ImageNet数据集中包括数量巨大的网络图像,此模型对未知图像的预测能力较好。本实验的图像检索模型中,使用了预训练的神经网络权重来实现特征提取,本文中使用的模型是VGG-16。VGG-16的网络层数深,更加适合于大数据集,此网络既可以保证感受野,又能够减少卷积层的参数,在此网络中使用2个3*3来代替1个5*5的效果,3个3*3来代替1个7*7的效果,使得参数更少,对特征学习能力更强。VGG-16结构如图5所示。

图4 Sobel检测效果图

图5 VGG-16结构

本文的特征提取模型结构如图1中的实线框部分所示。把图片放入一个可以使用预计算训练权重的卷积模型的神经网络,这里指的是一个有5个模块的且每个模块均为2个卷积层加上1个最大池化层的模型。在此模型中,所有卷积都使用了大小为3×3,步长为1的窗口,而池化操作都使用了大小为2×2,步长为2的窗口。3×3的卷积窗口,相较于5×5与7×7的窗口来说能够有效减少网络参数,加快模型训练速度。

2.3 基于NL-VG的检索模型的图像检索

在传统的检索任务中,对图像进行分块,然后根据每个分块提取图像特征,将2个差异较大的块聚类成一个簇,簇中每个元素的距离取决于原始特征提取方法的质量。当图像块的特征提取方法不能有效滤除噪声点时,会影响聚类效果,进而影响每个特征对应的聚类名称,最终导致块间距离的差距变大。

图像检索[17]主要分为图像入库和图像检索两部分。图像入库即将上述两阶段训练得到的特征向量作为图像的数据库。在进行检索时,根据特征相似性可以进行不同度量的综合算法分析计算得出被检索的数据特征和分组数据,并将需要查询的数据特征和检索数据库中系统相应的各个分组数据特征之间的相似度关系进行计算,把综合检索图像所得的计算结果从大到小依次进行排序后,再将计算得到的一个用于匹配检索图像的发送到进行检索的系统用户。图像检索基本流程如图6所示。

图6 图像检索基本流程框图

相似性度量是检索系统中的主要部分,通过特征模块检索完成匹配,从而实现目标图像的检索[18]。一般的相似性度量可以通过计算特征的距离来实现。本文使用的相似性度量方法是余弦距离,又称余弦相似度。计算方法见式(9)。

(9)

其中,分子运用的是点乘的计算方式,分母是向量的模相乘。结果越小相似度越高,越大相似度越低。余弦距离只与角度差值有关,与长度无关。余弦距离是图像检索中常用的距离度量方式。

3 实验结果与分析

3.1 数据集构建

本文实验中使用15个类别,共3 000张图像作为此实验的数据集。数据集的获取使用的是爬虫方法,自动获取信息或数据。按照一定的规则从万维网上抓取网页信息的程序或者脚本[19]。 使用requests请求向目标地址发起请求,在返回的数据里面就有所需要的图片的存放地址,将图片地址和其他信息区分开来,提取图片地址。最后将路径中的文件下载到电脑中。

对下载的图像进行数据预处理,对不符合要求的图像进行删减,删减后对图形进行数据增广处理,增加样本数量并构建数据集[20]。

3.2 网络训练

实验部分的软硬件环境如下所示:

系统:Windows 10 专业版

硬件:显卡NVIDIA GeForce 920M,CPU为Intel(R) Core(TM) i5-7200U CPU

软件:PyCharm 2020.1,Anaconda5.3.1

内存:16 G

采用基于TensorFlow框架的VGG-16进行图像的特征提取,并在做特征提取前使用显著性检测算法对图像进行处理得到显著图,从而使图像检索的准确度得到保证。采用网络爬虫技术获取图像,对获取到的不符合要求的图像进行删减并进行数据增广构建训练的数据集。由于卷积神经网络拥有大量的参数,训练网络时需要的训练样本较大。因此,在现有数据的基础上增加训练数据成为提升网络性能的一个重要方式。它可以提高模型的泛化能力。在参数设置上,其参数由经过预训练的参数权重进行初始化,方式为随机初始化。网络训练时在原来基础上进行数据的微调,将学习率设置为0.000 1,动量设置为常用数值0.9。每次选取小批量训练样本并计算预测的误差累积来更新网络参数。每次训练样本的数量batchsize设置为50,使用梯度下降的优化方法对网络参数进行更新。

3.3 评价指标

对于两段式图像检索模型采用查准率(precision)、查全率(recall)、平均精度(AP)、平均精度均值(mAP)作为模型的评价指标。

查准率代表模型正确预测的图像数量(TP)占所有预测图像的总数量(TP+FP)的比值,如式(10)所示:

(10)

查全率在本文中代表模型正确预测的图像数量(TP)占所有图像的总数(TP+FN)的比值,如式(11)所示:

(11)

平均精度(AP)用来计算单类别模型平均准确度。平均精度均值(mAP)就是对所有类别的AP值求平均值,N代表类别总数。如式(12)所示:

(12)

3.4 实验及结果分析

此两阶段图像检索模型中,在第一阶段利用显著性检测算法并没有使用图像中的全部信息,而是运用图像的主要信息,即使用显著性检测模型得到显著性区域,后续进行特征提取时就能够提取到表征能力较强的特征,使得图像检索的正确率有所提高。图7(a)是原始图像,图7 (b)是提取出的图像的最重要的显著性区域。

对原始主体图像中点的像素值大小进行判断。对于三通道的图像,像素点范围是在[0,255]区间内,选择127作为阈值能在最大程度上获取信息。

为了更加直观地观察出方法的效果,进行了视觉对比,其他方法比较结果如图8所示。根据效果对比图可知全局特征与局部特征相结合的方式可以更好地得到显著图。

图7 原始图像(a)和显著图(b)

图8 对比效果图

图像检索的阶段采用了map方法作为科学评价的主要指标,测试本文实验方法的科学有效性。数据集选择背景简单的5个类别的图片各20张,分别为狗、猫、大象、花、树。另外选择包含这5个类别中至少2个类别的背景较为复杂的图片20张,共挑选了120张图片进行实验,实验结果如图9所示。本模型与其他模型的数据对比结果如图10所示。

图9 图像检索模型实验结果

图10 模型结果

SpoC方法意在对特征图中信息进行有效整合以获得更好的效果。Crow方法提出交叉维度的加权求和方法,对特征图的信息进行进一步处理。

在对图片使用神经网络进行特征提取之前,先利用显著性检测模型获取一幅图像中的显著性区域,相较于之前直接进行特征提取的方式有效提高了图像检索时的正确率。模型中使用了全局特征图与局部特征图相结合的方式,对特征图中各种信息进行有效整合,以获得更好的效果。本文的准确率比传统算法有所提高。通过观察发现,图像中大部分的显著性区域是在图像的中间位置,所以在实验时应该更关注于图像的中心位置,所以对于一个特征图,越接近图像中央的部分权重越大,这种方法可以在一定程度上更加准确地利用图像的主体信息。

4 图像检索原型系统开发与验证

为直观地显示图像检索的结果,利用交互式工具包PyQt5设计可视化界面,构建图像检索系统。本文所设计的系统共包含5个功能。系统功能模块如图11所示,系统总体流程如图12所示。

图11 系统功能模块框图

图12 系统总体流程框图

图像检索系统的登录界面如图13所示,进入登录系统界面,需要输入登录用户名和登录密码2种基本信息即可完成本次登录,此界面包含登录和退出2种功能。系统主界面如图14所示。

图13 系统登录界面

图14 系统主界面

系统图像检索界面如图15所示,包含选择图片,转到上一页或下一页3种功能。选择图片功能如图16所示,点击选择图片弹出文件夹,可以在其中选择想要进行图像检索的图片。确认图片后,系统会出现检索结果。对检索结果的翻页功能如图17和图18所示。对1张图片进行检测时,一页不能够完全显示出来,此功能可以翻页并在所在页面是第一页或最后一页时进行提示。

图15 系统检索界面

图16 选择图片界面

图17 上一页功能界面

图18 下一页功能界面

5 结论

针对在海量图像数据下图像检索的准确度的问题,提出了一种改进的NL-VG(NLDF-VGG16)两段式图像检索模型,该算法首先搭建局部特征图与全局特征图相结合的非局部深度特征模型(NLDF)的显著性检测模型,此模型使用了大量的残差结构来将网络的各中间结果结合在一起,更好地获得全局上下文信息和局部信息。 在NLDF中使用了Sobel算子边缘检测算法,定位图像中的显著性区域,其次搭建VGG-16网络,对定位到的显著性区域使用VGG-16网络进行特征提取得到特征向量。最后使用PyQt5构建图像检索原型系统,并在自制数据集上进行实验。对于任意输入的图像,利用相似性度量方法进行特征匹配,最终输出与输入图片最相似的检索结果。证明在融入了显著性机制后的图像检索方法能够有效提高检索的准确度。

猜你喜欢

特征提取检索卷积
基于3D-Winograd的快速卷积算法设计及FPGA实现
从滤波器理解卷积
基于Daubechies(dbN)的飞行器音频特征提取
基于傅里叶域卷积表示的目标跟踪算法
Bagging RCSP脑电特征提取算法
专利检索中“语义”的表现
基于MED和循环域解调的多故障特征提取
一种基于卷积神经网络的性别识别方法
Walsh变换在滚动轴承早期故障特征提取中的应用
国际标准检索