1 概述
以图像数据为代表的多媒体已经成为网络上传播的主要媒介形式,特别是随着涉及媒体软件的广泛应用,以及监控摄像头的广泛应用,如何有效地利用、组织、管理这些海量的无结构图像成为计算机视觉领域和IT产业的研究及应用热点,而图像检索是图像进一步组织、利用、管理的基础。
围绕着图像检索系统中的特征提取、相似度计算、结果反馈等技术,相关学者开展了深入的研究,但由于图像语义鸿沟的存在,传统的基于视觉特征的图像检索很难完成高质量的图像检索。本文采用深度学习方法,通过提取图像内含的场景和语义信息,以实现较高语义级别的图像检索。
2 深度学习
深度学习这门技术早已有之,实际上深度学习就是将神经网络的层数加深,但之所以深度学习现在看起来像一个新技术,原因是深度学习在21世纪早期没有得到大众的关注,而近几年在机器学习技术上出现了许多新的进展。所以,深度学习如今成为一个热点,频频出现在各大媒体上。
深度学习算法是算法研究者们对传统神经网络的改进,因而产生的一种具有深层次的神经网络结构。卷积神经网络是目前最受欢迎的一种神经网络结构,其结构相对比较简单,而且在提取特征方面表现得要比传统的特征提取算法优化很多。卷积神经网络有一个区别于其他模型的地方就是,卷积神经网络是通过使用感受区域和权值共享的方法来大大减少神经网络模型中的参数数量的,从而减轻训练模型的任务。卷积神经网络的基本结构是特征提取层和特征映射层,也就是常说的卷积层和池化层。
3 基于VGG16卷积神经网络的图像检索
本节是深度学习在图像检索方面的应用,使用了《VERY DEEP CONVOLUTIONAL NETWORK SFOR LARGE-SCALE IMAGE RECOGNITION》论文中提出的VGG16模型,卷积神经网络模型的实现、训练与测试等工作是在Google开源的深度学习系统TensorFlow上面完成的。模型的实现使用了开源的预训练模型,在此基础上对模型进行了精调,使用的数据集是CIFAR-10。这个数据集中包含训练数据5万幅图像,测试数据1万幅图像,图像都是以32×32×3的形式体现的。最终的图像检索模块和GUI界面模块皆使用了MathWorks公司的MATLAB计算环境。
3.1 VGG16神经网络模型
VGGNet都是由牛津大学视觉研究组(Visual Geometry Group)和Google DeepMind公司共同研发的,其中包括VGGNet-16和VGGNet-19,也就是常说的VGG16模型和VGG19模型。VGGNet的特点是所有卷积核的大小皆为3×3,而且所有池化层都采用最大池化层,并且池化层的过滤器尺寸都是固定的,但是VGGNet的特点是深度,这个模型要比之前所有的经典模型的深度都要深,是通过不断加深神经网络结构的方式来得到性能的极大提升,训练的效果目前也是最可观的,错误率下降了很多。
根据Visual Geometry Group官方的给出的信息,发现VGGNet在ImageNet数据集上表现非常好,并且将现有的VGGNet模型迁移到其他数据集上也可以得到很好的效果。
3.2 VGG16模型训练过程
VGG16和VGG19都是非常好的模型,但是本次实验使用的是CIFAR-10数据集,图像自身不大,只有32×32×3,所以,只要使用VGG16模型就可以在很短的时间内得到一个很好的效果。在本实验中,VGG16卷积神经网络模型的输入是32×32×3的tensor,经过上述图标描述的网络结构,在每一个全连接层下都加上一个批量合一算法,最终得到经过softmax函数得到一个1×10的tensor。
4 实验结果与结论
从Core1k数据集中随机选取了八类图片当做实验的数据集。而每类图片中又随机选取85张图片,把这总共680张图片用来训练图像分类模型,则每类图像剩余的15张图片就组成了一个具有120张图像的测试数据集。
卷积神经网络中的权值会随着模型迭代次数的增加而改变,并最终会趋近于一个理想的数值。不同迭代次数情况下,图像分类模型的实验结果如表1所示。
表1 不同迭代次数实验结果表
迭代次数 | 1 | 5 | 20 | 50 | 100 | 500 | 1000 |
准确率 | 24.7% | 35.3% | 46.2% | 71.8% | 73.6% | 74.3% | 75.0% |
到目前为止,图像检索仍然是研究人员重点关注的技术,因为随着大量的图像充斥着我们的生活,生活越来越依赖图像检索带来的巨大便利。例如,淘宝网每天要进行无数次相关图像的检索,给予用户更完善的体验。本文实验的深度学习部分使用的是开源框架TensorFlow,使用的深度学习模型是牛津视觉研究组提出的VGGNet-16,同时在使用VGGNet-16的基础上进行了改进,在每一个连接层后加上了一个BN算法,可以得到更好的效果。模型的参数不是直接初始化得来的,而是在Github上找到了一个国外研究人员分享的pre-trained模型,在此基础上,对参数进行了精调,在CIFAR-10上得到了很好的分类效果。到目前为止,只是把TensorFlow的模型当成了一个图像特征提取器,如果加上softmax函数,这个神经网络模型就是图像分类器,使用MATLAB完成了CBIR模块,完成了基于深度学习的图像检索软件的研究与实现。
参考文献
[1]郭昕.基于深度学习的视觉特征在图像检索中的应用[D].开封:河南大学,2015.
[2]郑启财.基于深度学习的图像检索技术的研究[D].福州:福建师范大学,2015.
[3]曹卫娜.基于深度学习的图像检索研究[D].成都:电子科技大学,2016.
[4]罗世操.基于深度学习的图像语义提取与图像检索技术研究[D].上海:东华大学,2016.
[5]马冬梅.基于深度信念模型的图像检索研究[D].呼和浩特:内蒙古大学,2014.
[6]郑莹雪.基于卷积神经网络的图像检索[D].长春:吉林大学,2016.
[7]冯子勇.基于深度学习的图像特征学习和分类方法的研究及应用[D].广州:华南理工大学,2016.
[8]吴岸城.神经网络与深度学习[M].北京:电子工业出版社,2016.
[9]郑泽宇,顾思宇.TensorFlow实战Google深度学习框架[M].北京:电子工业出版社,2017.
[10]黄文坚,唐源.TensorFlow实战[M].北京:电子工业出版社,2017.
[11]Hinton G E,Salakhutdinov R R.Reducing the dimensionality of data with neural networks[J].Science,2006,313(5786).
基金项目:国家级项目“大连民族大学2017年大学生创新创业训练计划项目”(201712026027)。
(作者李俊华系大连民族大学计算机科学与工程学院学生)