基于卷积神经网络的图像识别算法研究
2018-10-20张荣磊田爱奎
张荣磊,田爱奎,谭 浩,郑 睿
(山东理工大学 计算机科学与技术学院,山东 淄博 255049)
基于卷积神经网络的图像识别算法研究
张荣磊,田爱奎,谭 浩,郑 睿
(山东理工大学 计算机科学与技术学院,山东 淄博 255049)
针对卷积神经网络在自然图像识别上的局限性,提出一种适用于自然图像识别的卷积神经网络算法,使其在自然图像识别的准确率和速度上取得更好的效果.首先利用MAPREDUCE实现算法的并行化,并利用GPU技术对该算法进行加速;再次利用多区域的逻辑回归计算方法提高图像识别的准确率.在实验环境下验证了改进算法的正确性和有效性.
卷积神经网络;自然图像;逻辑回归
卷积神经网络(Convolutional Neural Networks,CNN)是以人工神经网络为基础,并结合深度学习理论而提出的一种识别算法,是近些年来图像识别中的研究热点[1].从1998年的提出到现在,CNN识别技术虽已慢慢趋于稳定,可其网络结构的局限性针对自然图像识别在效率和速度上还是不能达到理想的程度[2].为了改善CNN在自然图像识别上的效果,本文对现有CNN网络结构的分析,提出了适用于自然图像识别的新型卷积神经网络算法,使这种新型的CNN识别算法能在短时间内实现快速收敛,达到预期的识别效果[3].
1 基于卷积神经网络的图像识别算法设计
1.1 MapReduce编程结构模型
MapReduce属于并行编程模型,在大型计算机集群上可以完成TB、PB级别数据集的处理,该编程模型的特点就是操作简单、包容性强、扩展能力高,并且在科学计算领域得到了广泛的应用[4].MapReduce编程结构属于树状图结构,是将大数据集操作模块通过一个主节点进行管理,主节点将操作任务分发给各个分节点,当分节点完成数据处理之后再汇总给主节点[5].MapReduce的处理过程由Map函数和Reduce函数两部分组成,两个函数的处理任务也不同,Map函数是将要处理的任务分解成多个任务模块,而Reduce函数则是将处理后的任务模块进行汇总[6-7].其处理数据流程如图1所示.
图1 MapReduce数据处理过程Fig.1 The MapReduce data processing
1.2 基于MapReduce的CNN算法设计
该算法将需要被训练的数据分成同样的小部分,与Hadoop平台上的节点一一对应,以平均分布的形式进行存储,通过各个节点上所存储CNN网络的数据来完成对网络的训练[8].Mapper任务接收到的数据能够作用于平台上的节点,通过正向与反向传播计算出其中的权值与偏置的局部变化量,从而形成中间键的数值.当所有样本计算完成以后,进行本地文件处理,将本地文件经过处理之后汇总各次训练所得到的数据写入全局文件中[9].基于MapReduce的CNN并行化分解过程如图2所示.
图2 基于MapReduce的CNN并行化分解过程Fig.2 CNN based on MapReduce parallel decomposition process
1.3 CUDA技术及平台分析
CUDA(Compute Unified Device Architecture)编程模型是一种支持GPU处理运算的数据开发环境,于2007年由NVIDIA公司率先提出.而GPU属于图像图形处理器,GPU的出现使计算机图形处理速度、质量都大大提高,并且还促进了虚拟现实环境、图形图像处理技术以及计算机图像仿真等领域的飞速发展[10].CUDA与GPU的结合,使编程人员在CUDA平台上运用通用的汇编语言C语言完成汇编,并通过GPU完成汇编程序的运行,这样就不用单独学习图像知识以及图形学,大大降低了GPU数据处理计算难度,提高了系统的稳定性.
CUDA平台下的整个数据处理结构由CPU和GPU构成,CPU+GPU的结构形式是提高计算机计算性能的重要想法,而且在能源上也有所节约.CPU+GPU的结构形式如图3所示.
图3 CPU+GPU结构Fig.3 The CPU+GPU structure
CPU主要是解释计算机指令以及处理计算机软件中的数据,实现它们之间联系的数据、控制及状态的总线.CPU能够直接存取GPU的存储位址.GPU作为一个多重单位运算体系,在并行计算上有得天独厚的优势,通过CPU与GPU的结合让串行工作与并行工作协调处理,将大幅度提高计算机的计算能力.
1.4 多区域的逻辑回归计算的网络改进的方法
图4 图像识别测试区域Fig.4 The image recognition test area
上图是对处理后的图像的5个区域的测定位置选择,在进行逻辑回归层错误率计算时,为达到最佳的识别和分类效果,将5个区域得到的测试结果的平均值作为输出.这种图像识别测试方法可以通过图像的训练学习,来对权值不断更新,最终完成权值的最优化.通过测试实验得出:通过区域测试训练之后的图像识别正确率提高了5%,训练时间缩减一半.但是由于增加了图像训练和测试区域选择的过程,所以系统进行图像识别的总时间呈增加趋势.
2 图像识别结果分析
2.1 图像识别的结果
经过系统的训练与筛选过程,输入系统中的数据集能够形成两种分类结果:当系统的预测分类与期望的标签相符合时,系统显示分类正确;当系统的预测分类与期望的分类标签不相符时,系统会自动显示分类错误.通过通用的数据集的输入接口方式,能够将所需构建分类的数据集进行分类.系统通过Python脚本所实现的分类结果如图5、图6所示.
图5 识别正确 图6 识别错误 Fig.5 Identify the correct Fig.6 Recognition errors
2.2 多区域的测试对识别结果的影响
这里使用的是 CIFAR10 数据集进行测试.系统对每一个 epoch 测试得到的错误率保存起来,通过 Python 脚本可以查看错误率的变化情况.每一个 epoch 是 128 个样本.
通过对参数的调整和网络结构的变化,之前没有使用多区域的逻辑回归计算时,系统的分类错误率在 18.00%,使用了多区域的逻辑回归之后,系统的分类错误率为13.46%左右,准确率提高了 4.54%.在原始的图像处理过程中图像没有经过裁剪,在MR-CNN-G中使用的是裁剪过的图像.在训练过程中,使用方法一的时间较少,但是每次在测试过程中,测试的时间增加了.见表1.
表1 结果对比
Tab.1 the comparison of the results
MR-CNN-G网络类型一次训练样本个数WC训练时间/s测试时间/s错误率/%原始网络30174.1116.918.00MR-CNN-G300.0141.8161.513.46
3 结束语
基于本文针对图像识别的CNN算法研究上面虽已取得了一定的进展,将改进后的算法应用于图像识别,提高了图像识别准确率,提升了识别过程中的数据处理过程.但还存在一定问题,如图象前期处理复杂,预处理时间较长及在引入GPU时,由于数据接口不通用,所需的数据集需要选择输入等.
[1]李媛媛.卷积神经网络优化及其在图像识别中的应用[D].沈阳:沈阳工业大学, 2016.
[2]徐冉,张俊格,黄凯奇.利用双通道卷积神经网络的图像超分辨率算法[J].中国图象图形学报, 2016, 21(5):556-564.
[3]刘旷.基于卷积网络集成的面部表情识别方法[D].杭州:浙江大学, 2016.
[4]MCKENNA A,HANNA M,BANKS E, et al. The Genome Analysis Toolkit: A MapReduce framework for analyzing next-generation DNA sequencing data[J]. Genome Research, 2010, 20(9):1297-1303.
[5] 李远方,贾时银,邓世昆,等. 基于树结构的MapReduce模型[J].计算机技术与发展, 2011, 21(8):149-152.
[6]THUSOO A,SAMA J S,JAIN N,et al. Hive: a warehousing solution over a map-reduce framework[J]. Proceedings of the Vldb Endowment, 2009, 2(2):1 626-1 629.
[7] 刘朵, 曾锋, 陈志刚,等.Hadoop平台中一种Reduce负载均衡贪心算法[J].计算机应用研究, 2016, 33(9) :2 656-2 659.
[8]高辰.Hadoop平台计算管理节点可扩展性改进方案[D].天津:南开大学,2013.
[9]肖瑛.采用瞬时梯度变化率判决的双模式盲均衡算法[J].大连民族学院学报,2013,15(1):79-82.
[10]岳俊,邹进贵,何豫航.基于CPU与GPU/CUDA的数字图像处理程序的性能比较[J].地理空间信息,2012(4):45-47.
Researchonimagerecognitionalgorithmbasedonconvolutionalneuralnetworks
ZHANG Rong-Lei, TIAN Ai-kui, TAN Hao, ZHENG Rui
(School of Computer Science and Technology, Shandong University of Technology, Zibo 255049, China)
According to the limitation of the convolutional neural network in natural image recognition, a convolution neural network algorithm for natural image recognition is proposed. So that the accuracy and speed can achieve better results. Firstly, the parallelism of the algorithm is achieved by using MAPREDUCE, and the algorithm is accelerated by using GPU technology; Secondly, the method of multi region logistic regression is used to improve the accuracy of image recognition; Finally, the correctness and effectiveness of the improved algorithm are verified in the experimental environment.
convolutional neural networks;natural image;logistic regression
2016-12-23
张荣磊, 男, lei880922@163.com;
田爱奎, 男, takui@163.com
1672-6197(2018)01-0048-03
TP391.41
A
(编辑:刘宝江)