随着信息社会的高速发展以及大数据时代的到来,图像等多媒体数据成指数量增长,如何从海量图像中提取需要的数据显得更加重要,而传统基于文本的方式由于耗费人力标注,已经不能满足大数据的需要。基于内容的图像检索技术(content-based image retrieval,CBIR)是以提取图像的特征构建检索数据库[1],通过计算待查询图像的特征与数据库中的图像特征的距离,根据距离的大小来代表图像的相似度,对图像按相似度大小排列,从而将相似的图像检索出来。SIFT特征对旋转和尺度变换有较好的不变性[2],是神经网络之前最好的图像特征提取方式,但是仍是手工提取的底层特征,不能代表高层语义,实现的检索系统精度差且速度慢。
2012年,Hinton[3]的研究小组采用深度学习赢得了ImageNet图像分类的比赛,在卷积神经网络以及图像分类问题上有了较大突破,卷积神经网络提取的高层特征被证明是比SIFT更有语义特性的特征。更重要的是神经网络提取的特征为自动学习的特征,而SIFT为手工特征。目前基于神经网络的模型众多[4-6],本文采用VGG16的改进版本[7],通过修改其结构保留图像的空间结构信息,提取图像显著性区域的特征构建数据库,使最终的特征更有针对性,减小信息冗余。与利用神经网络全局特征以及传统SIFT特征算法进行对比实验,结果表明,改进的VGG16以及基于显著性区域的特征对图像的检索更加有效,并且在一定程度上提高了检索的精度,比传统的检索方法性能更好。
1 VGG16结构调整及关键技术VGGnet是牛津大学计算机组(visual Geometry Group)和Google DeepMind一起研发的深度卷积神经网络,探索了网络深度与性能之间的关系。文中通过对VGGnet的一个版本VGG16的结构进行调整,使之能够保留图像的空间结构信息,从卷积层中提取局部图像的表征。
1.1 VGG16网络结构VGG16是16层深的卷积神经网络,通过反复堆叠3×3的小型卷积核以及2×2的最大池化层来构筑,一共有5个卷积段(13个卷积层),每个卷积段有2~3个卷积层,同时每一段尾部会接一个最大池化层来缩小图像的尺寸。每段的卷积核的数量一样,越靠后的段卷积核数量越多:64–128–256–512–1 024结构中会有2或者3个3×3堆叠在一起,这种方式能够增加感受野,提高非线性以及减小参数量。
如图1所示,2个3×3的卷积层相当于一个5×5的卷积层,即感受野的大小为5×5。2个3×3的卷积层的参数量只有后者的72%(
$y = \max \left( {x,0} \right)$ | (1) |
Download:
|
|
文中要通过卷积网络提取图像的特征,而有些图像的背景会形成干扰,使提取出的图像全局表征并没有针对性。比如一幅图中是一幅人像,我们想检索相似的带有此人的图像,提取的全局特征会将背景信息加入,若背景影响较大,则可能会检索出背景类似的图像。由文献[8]中的研究启发,一个已训练好的分类模型,对一个图像分类的判断是基于图像的某些区域的即显著性区域。神经网络根据图像的部分区域就可得出最终的结果,这种机制与人类类似,即不需要观察全局即能做出判断。我们提取图像显著性区域的特征作为图像检索表征,为此,必须在训练神经网络时保留图像的结构化信息。
VGG16有3个全连接层,第1和2层的全连接层会打乱图像的空间信息,而且占了绝大部分的参数量。所以,为了能定位到图像的显著性区域,新的网络结构去掉这2个全连接层,在最后一层卷积层之后以全局池化层代替平均池化层接最后分类的全连接层。文献[9]中最先提出全局池化层(global average pooling),经证明使用全局池化层能够使最终的输出保留图像的空间结构信息。实验表明,去掉2个全连接层之后,分类的准确率下降了2%左右。为保证分类的准确率,在全局池化层前再添加1个卷积段(2层卷积)。VGG16未使用batch normalization(BN)层[10],BN层的使用能够加速训练过程。对每一层卷积,实际采用conv+BN+ReLU的结构。图2中为改进的网络结构,conv3-64代表卷积层的卷积核为3×3,卷积核的个数为64个;(conv3×3-64)×2代表卷积核的尺寸是3×3,每层有64个神经元,2层进行串联;Max_pool为最大池化层;FC10代表最后输出为10分类,网络结构如下图2所示。
Download:
|
|
为了能够提取出图像的关键局部特征,即代表图像最主要信息的部分特征,受文献[11]的启发,使用CAM方法,对图像区域进行定位标定矩形框,取出局部图像信息。
给定一幅图像,对于网络最后一层卷积层的第k个神经元(卷积核),定义fk(x,y)为图像空间坐标(x, y)处的响应值,则对于整幅图像而言,第k个神经元在整幅图像上的响应
${{{s}}_{{c}}} = \sum\nolimits_k {w_k^c} \sum\nolimits_{x,y} {{f_k}\left( {x,y} \right) = \sum\nolimits_{x,y} {\sum\nolimits_k {w_k^c{f_k}\left( {x,y} \right)} } }$ |
定义Mc为
${M_c} = \sum\nolimits_k {w_k^c{f_k}\left( {x,y} \right)} $ |
所以
使用CAM方法对部分图像的显著区域标注结果如图3所示。
Download:
|
|
图3中第1行的图片为数据集Corel_1000中的4张图片,分别是大象、公交车、花朵和雪山;第2行对应的是使用CAM算法计算出的图像显著性关注的区域热力图;而第3行为根据热力图对图像区域的矩形框定位。在之后的数据库构建中,我们将提取矩形框内的特征来代替图像表征存入数据库。
2 图像特征数据库的构建图像数据库的构建涉及到3个阶段:训练模型、区域定位和特征提取。训练模型时使用在imagenet上预训练的VGG16的参数对新网络的前13层进行初始化,在目标数据集Corel_1000上进行微调,得到在新数据集上有较高准确率的模型,分类准确率为97%。模型训练过程如图4所示。在新训练好的模型上利用CAM的方法,可视化图像的特征显著性区域,并使用矩形框定位出关键区域的位置,提取出矩形区域内的部分图像。
Download:
|
|
将提取出的矩形框内图像输入已训练的模型,从最后的全局池化层中提取出图像的特征,代替图像存入数据库中,用于检索。此时提取的图像表征就代表了图像的关键信息,并且去掉了背景对其的影响,去掉冗余,增强了信息的准确性。图5为特征提取流程。
Download:
|
|
本文数据集采用的是Corel_1000数据集。一共有10类的图像,分别是巴士、大象、花朵、建筑、骏马、恐龙、人脸、食物、天空和雪山。每一类包含100张的图像。
评价指标使用一种基于排名的评价标准[12]。对于查询图像,通过计算查询图像的特征与数据库中的欧氏距离,从数据库中得到排名前k的图像。则对一幅查询图像的查准率为
${P_k} = \frac{{\mathop \sum \nolimits_{i = 1}^k r\left( i \right)}}{k}$ |
式中r(i)代表查询图像与k中第i个图像之间的关系,当查询图像的标签与其相同时,为1;否则为0。所以,
${A_{{\rm{MAP}}}} = \frac{1}{q}\sum\nolimits_{i = 1}^q {Pk\left( {{x_q}} \right)}$ |
除此之外,查全率(召回率)也是要考虑的一个关键指标:
${A_{{\rm{Recall}}}} = \frac{{\mathop \sum \nolimits_{i = 1}^k r\left( i \right)}}{a}$ |
式中a代表检索出来与待检图像相似的图像数目。
3.2 数据预处理为了能够使训练时模型能够尽快地收敛,并提高训练精度,对数据集进行数据预处理操作。
1)图像尺寸处理。数据集中图像的大小为256×384或者384×256,将所有的图像都处理为224×224的大小,对于每一幅图像,为了能够在之后的区域定位以及特征提取阶段还原到原图上,记录下缩放的比例。
2)去均值处理。对数据集进行去均值化能够加速训练的进程。首先求出三通道(R,G,B)的均值,然后对整个训练集分别减去3通道的均值,计算公式如下:
${u^i} = \frac{1}{n}\sum\nolimits_{j = 1}^n {x_j^i} $ |
$x_j^i = x_j^i - {u^i}$ |
为了验证本文的图像特征构造以及数据库的构造方法是有效的,并且有很好的结果,此处一共采用3个算法模型进行比较。首先是VGG16模型,记为VGG16,提取fc6(倒数第2层的全连接层)作为图像的全局特征,维度为1×4 096。第2个模型采用本文改进的VGG16模型:添加一个卷积段(3层卷积)和一个全局池化层(GAP),记模型为VGG16_new,提取全局池化层中数据作为图像表征,特征维度为1×1 024。第3个模型采用传统的基于内容的图像检索算法——SIFT+K-means算法[13],采用词袋模型,属于无监督学习算法。改算法首先提取图像中的所有SIFT特征,使用K-means对SIFT特征进行聚类,形成聚类中心。对每一幅图像提取所有的SIFT特征,根据所有SIFT特征对聚类中心的远近进行编码,构造图像表征。用Top_k代表一次检索返回的样本数目,在表1中,用平均检索精度(MAP)显示不同算法下的Top_k的查准率。
由表1以看出,VGG16_new+CAM算法在检索返回数量较少时与VGG+fc6相差不多;但是在检索返回图像数量增多时,VGG+fc6性能下降明显,平均每增加5幅返回的图像,MAP就下降约3.5%,而VGG16_new+CAM则下降1.8%。所以在检索返回数量增加时,VGG16_new+CAM相比之下有更好的性能。除此之外,SIFT+K_means算法相比深度学习提取特征的方法性能落后较为明显。图6是3种算法在检索返回图像数量变化时的曲线。
Download:
|
|
本文还探讨了查全率与查准率之间的关系:随着算法返回的相似图像越多,则查全率就会越大;相反,查准率就会因此下降。图7是3种算法的对比结果。
Download:
|
|
由曲线结果可知,VGG16_new+CAM较其他2种方法在高查准率的情况下有较高的查全率。
3.4 检索结果显示输入3幅查询图像如图7,分别是汽车、雪山和建筑。Top5的返回图像如图8所示。图8(a)汽车的检索图像中错误图像仅有一例;图8(b)为雪山图像,返回的均是雪山图像,无错误输出;图8(c)输出图像中仅有2例输出错误,其余大部分的检索结果均符合要求。通过实验分析以及检索结果比对,得知通过提取图像的局部显著性区域的特征作为图像描述构建的查询系统在检索时可以达到很好的效果。
Download:
|
|
Download:
|
|
本文提出了一种新的构建图像深度表征用于检索的算法。经实验对比证明,得出以下结论:
1)使用CAM算法定位图像显著性区域,提取显著性区域的特征作为图像表征构造数据库,相比利用图像全局表征,减小了信息的冗余,增强了图像表征的针对性,从而提升图像检索精度;
2)VGG16的网络结构去掉2层全连接层,添加2层卷积提高分类精度,并使用全局池化层代替平均池化层,从而使输出特征保留图像的空间结构信息,方便定位显著性区域;
3)全局池化层的输出特征作为图像特征,特征维度仅1×1 024,减小了图像特征的储存空间,并加速了距离计算。通过与传统的词袋模型(SIFT+K_means)以及使用全局特征的方法进行比较,得到提取显著性区域特征作为图像描述,目前有直接将全连接层提取出来作为图像的全局特征,并使用PCA对特征的维度进行简化,但是并未有针对性的关注图像的显著性区域的提取来简化特征。本文的特征提取方法更有针对性,有更好的性能表现。
[1] | 杭燕, 杨育彬, 陈兆乾. 基于内容的图像检索综述[J]. 计算机应用研究, 2002, 19(9): 9-13, 29. DOI:10.3969/j.issn.1001-3695.2002.09.003 (0) |
[2] | LOWE D G. Distinctive image features from scale-invariant keypoints[J]. International journal of computer vision, 2004, 60(2): 91-110. DOI:10.1023/B:VISI.0000029664.99615.94 (0) |
[3] | HINTON G E, SALAKHUTDINOV R R. Reducing the dimensionality of data with neural networks[J]. Science, 2006, 313(5786): 504-507. DOI:10.1126/science.1127647 (0) |
[4] | LAI Hanjiang, PAN Yan, LIU Ye, et al. Simultaneous feature learning and hash coding with deep neural networks[C]// 2015 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). Boston, USA, 2015, 3270-3278. (0) |
[5] | DENG Jia, BERG A C, LI Feifei. Hierarchical semantic indexing for large scale image retrieval[C]//CVPR 2011. Colorado Springs, USA, 2011. (0) |
[6] | BABENKO A, SLESAREV A, CHIGORIN A, et al. Neural codes for image retrieval[M]//FLEET D, PAJDLA T, SCHIELE B, et al. Computer Vision-ECCV 2014. Cham, Germany: Springer, 2014. (0) |
[7] | SIMONYAN K, ZISSERMAN A. Very deep convolutional networks for large-scale image recognition.[2017-12-20]. https://arxiv.org/abs/1409.1556. (0) |
[8] | ZHOU Bolei, BAU D, OLIVA A, et al. Interpreting deep visual representations via network dissection[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2018(99): 1−14. (0) |
[9] | LIN Min, CHEN Qiang, YAN Shuicheng. Network in network.[2017-12-20] . https://arxiv.org/abs/1312.4400. (0) |
[10] | IOFFE S, SZEGEDY C. Batch normalization: accelerating deep network training by reducing internal covariate shift.[2017-12-20] . https://arxiv.org/pdf/1502.03167v3. (0) |
[11] | ZHOU Bolei, KHOSLA A, LAPEDRIZA A, et al. Learning deep features for discriminative localization[C]//2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). Las Vegas, USA, 2016. (0) |
[12] | DENG Jia, BERG A C, LI Feifei. Hierarchical semantic indexing for large scale image retrieval[C]//Proceedings of CVPR 2011. Colorado Springs, USA, 2011. (0) |
[13] | HE Kaiming, WEN Fang, SUN Jian. K-means hashing: An affinity-preserving quantization method for learning binary compact codes[C]//2013 IEEE Conference on Computer Vision and Pattern Recognition. Portland, USA, 2013: 2938-2945. (0) |
[14] | BABENKO A, SLESARE A, CHIGORIN A, et al. Neural codes for image retrieval[C]//13th European Conference Computer Vision. Zurich, Switzerland, 2014. (0) |