1、河南科技大学本科毕业设计(论文)基于 caffe 的卷积神经网络模型的评估摘 要本课题主要依据 caffe 平台进行神经网络的训练,主要对于本组成员所设计的神经网络得模型进行的评估和测试,测试时使用的是 MATLAB,依据 caffe 提供的 MATLAB 的接口,使用的是 caffe 神经网络的模型,模型分别为alexnet,caffenet,lenet,目的是测试模型在新图片的准确率,同时对模型的网络文件的参数进行图像可视化,本课题通过研究三种模型,设计了算法来区分它们的识别率,测试识别率,模型参数可视化,测试准确率时是通过批处理测试,对比训练图片的标签,和测试图片得到的标签来进行判断:在
2、对于模型进行参数可视化时,对第一层的卷积三个通道进行参数可视化,本课题在测试模型对识别图片的准确率上,并未采用单张图片进行测试,而是使用了批处理测试,首先对图片进行预处理,将图片转化为 lmdb 格式,最后得到均值文件,再进行全部的测试。在可视化时,将原来的 3*num_output 的卷积层参数视图,转化为正方形的图像,最后在比对图像的清晰度。本课题最后得到图像分别为alexnet,caffenet,lenet 三种神经网络的参数可视化图像,得到的 caffenet 的图像应该为清晰的灰度图像,准确率方面也应该比其他的两种模型测试得到的结果要高。关键词:caffe,神经网络,参数可视化,卷积
3、层河南科技大学本科毕业设计(论文)IENGLISH SUBJECTABSTRACTNeural network based on the Caffe platform, training, evaluation and testing for the design of neural network for the members of this group, Caffe provides MATLAB interface based on the Caffe neural network model, models were alexnet, caffenet, lenet, test th
4、e accuracy of the model in the new picture, at the same time parameters on the model of network file image visualization, this paper through theStudy on three kinds of model, the algorithm is designed to distinguish them from the recognition rate, the recognition rate of the test, mainly through bat
5、ch test, comparison of training images and test images from the label, label to judge, after the parameters in the test model of visualization results, also designed the algorithm, the main use of the Gabor function, it is to extract the features of the images, this test by using the Gabor function
6、for each filter feature extraction and visualization of convolution of the first layer parameters of three channels, the subject in the test model on the accuracy of image recognition, did not use a single image for testing, but the use of the first batch of test. Preprocessing the image to a pictur
7、e into a LMDB format, and finally get the average file, then all the test. In the visualization, the original 3*num_output convolution layer parameter view is transformed into a square image, and finally the definition of the image is compared. This paper finally respectively alexnet, caffenet image
8、, lenet image visualization parameters of three kinds of neural network, the image of the caffenet should be a clear picture, the accuracy should be higher than the other two model test results to high.KEY WORDS: caffe, neural network, parameter visualization, convolution layer河南科技大学本科毕业设计(论文)II河南科技
9、大学本科毕业设计(论文)0目 录前 言 .2caffe 的安装与配置 .5caffe 的安装 .5Caffe 平台的搭建的配置选择 .5caffe 与 MATLAB 的接口配置 .7配置文件的设置 .8生成文件 .9测试模型 .9对网络 模型进行测试图片 .11单张图片的测试 .11Classfication 代码分析 .11deployed 配置文件分析 .15测试代码片段 .16Caffe 在 MATLAB 上实现批处理测试集的精度 .16分析 .17图片的准备 .18修改网络的配置文件 .19代码片段 .20测试的结果 .20网络参数可视化 .23卷积核的参数分析 .23测试 .23测试
10、结果 .26结 论 .29参考文献 .30致 谢 .32附 录 .33河南科技大学本科毕业设计(论文)1前 言深度学习可以说是当前人工智能研究领域的一个重要的部分,目前,在深度学习领域内已经触及很多方向(如图像的识别,语音的识别,机器的翻译) ,深度学习在这些领域都已经取得的不错的进展,在传统的算法领域内也取得了一些成就,包括淘宝的衣服智能识别,手写字符识别,商品图像智能识别,用于交通领域的车牌识别等。近年来由于国内外的研究人员对于深度学习算法的要求的不断提高,在之前传统的算法框架已经不能满足当前的研究人员的需要,有的研究人员甚至发费几个月的时间就是为了完成一个简单的算法功能,因此在计算机智能
11、领域迫切的需要一种高效的开发模式来替代传统的深度学习开发模块。与此同时,一些世界顶尖的科研机构开始对深度学习领域寻求高效的算法和快捷的深度学习开发模块,最为特别的就是在 2016 年 Google 所研究的阿法狗的问世,人工智能领域一片火热。因此就产生了本文所提到的 caffe 深度学习框架。这些深度学习开发框架不仅为科研机构相关的开发人员提供高效,快速的开发模式,并且也在深度学习开发框架中提供了多个卷积神经网络模型,以便于开发人员在已有的模型进行改进,研究。本文是基于 caffe 的深度学习框架的卷积神经网络进行了以下的研究和工作,首先,介绍了关于深度学习框架 caffe 的国内外研究现状,
12、包括深度学习在人工智能,图像识别。在深度学习中,图像识别是最早受到关注,以下为 caffe 的卷积神经网络发展的历史。在 20 世纪 90 年代,lecunn 卷积神经网络问世,它是根据猫的视觉系统所研发的一套模型。在 2006 年,可以说是卷积神经网络爆发的一年,代表就是 hinton 在科学杂志发表了一片论文,他指出多层的卷积神经网络在学习能力上具有明显的优势,并且他的训练时的复杂度可以调节,从而使得学习能力提高,这篇文章已经发表收到了大多数的研究人员的热捧,在如今的时代,gpu 加速下的条件下,在大数据,图像识别,人工智能,深度学习等领域,卷积神经网络有再次爆发。在 2012-2014
13、年,卷积神经网络,学术文献层出不穷,我认为的有两个:河南科技大学本科毕业设计(论文)22012 年,在 image 大赛,2014 年,deepid 模型,可以这样说,2012 年的 image大赛中的 imagenet 的表现直接奠定了深度学习的地位,正确率已经达到了 10%,远远超过第二名,实在是让广大深度学习的研究人员对于这个新出现的事物狂热追捧,在 2012 年卷积神经网络成功之后,他的应用已经不止局限于声音的识别和简单图像的识别了,他逐渐的应用到了人脸识别等其他重要的领域,所以在2014 年出现了两个人脸识别的大头,DeepFace,DeepID,这两个在人脸识别上具有非常高的识别率
14、,直达现在,cnn 在人脸识别的领域还是在使用这两个模型,而 deepid,这是有香港中文大学的研究人员提出,并在 2014 年一度被火热的应用,在这篇文章中对于卷积神经网络的网络结构进行了深层次的分析,并且他全力的去证明卷积神经网络在学习过层中对于物体的特征具有非常高的提取能力,从本质上去探索卷积神经网络。卷积神经网络的应用,在 2012 年 hinton 就 image 大赛中的 imagenet 在大量的图片中进行了特征提取,并且在图像的识别取得了很好的效果,同年 10 月,Google 也开始了深度学习项目,并称之为 Googlebrain,他将 1 万多台电脑进行连接,模仿人脑在学习
15、时候的原理,从视频网站上获取了 1 千万张图片进行特征的提取,测试过后得到了能够自动识别猫的图片。2014 年微软的研究人员研究出了一款 adam 的模型,并且微软称 adam 模型在图像识别上的正确率是 Google 所训练出的模型的两倍,如果说 Google 训练的Googlebrain 能够识别出一只猫的图片,那么微软所研究的模型不但能够识别这只猫的图片,还能够识别出这只猫是属于什么品种,在测试过程中,微软在发布会上,就现场识别出了一只狗并分析出他的种类。与此同时,在中国,百度深度学习研究院在深度学习领域,对于图像识别也取得了不错的成绩。百度深度学习关于图像的研究其主要是关于百度图片的识
16、别。称之为百度识图,他能够根据用户传输的图片,然后将图片识别,之后在将图片分类,分类到日常涵盖的四万个分类中,他能够告诉上传者所传输的图片是关于什么的,并推荐相似的图片,这在如今的阿里巴巴旗下的淘宝网站上使用最为广泛,例如淘宝卖家在淘宝的店铺上购买了一件衬衣,这时候网站会将购买者的数据发送到云计算大数据处理实验室,在这些数据中,首先利用卷积神经网络将用户的图片进行河南科技大学本科毕业设计(论文)3识别,并在云端找到与此相似的物品,还能够帮助用户了解该分类的背后知识。本课题中主要研究了三种卷积神经网络,分别为 caffenet,alexnet,lenet,本课题就是通过三种网络模型在对物体进行识
17、别的比对,测试他们在新图片的预测的准确率,验证他们的模型的好坏,以及测试模型在训练的时候所得到的特征图,即训练过程中对每一类的图片所得到的过滤器,通过 gabor 函数将他们的参数可视化。河南科技大学本科毕业设计(论文)4第一章 caffe 的安装与配置1.1 caffe 的安装1.1.1 Caffe 平台的搭建的配置选择本次课题是在 windows 下进行平台的搭建,在安装 caffe 平台是需要看一下电脑配置,如果你的电脑是带有独立显卡和驱动,这时就需要去选择平台,选择是否需要 cpu 或者 gpu,在熟悉完成 cpu 的配置之后,可以启动 gpu 的配置,确保电脑安装 vs2013 和
18、MATLAB,注意在这里的 caffe-windows 目前的版本只适合vs2013 版。1.1.2 下载 caffe 的安装包并配置本课题使用的是微软公司提供的链接,基本上与 caffe 官网提供的方法一致,这个 caffe 无需配置第三方的环境变量,在使用时可以直接下载开发所需要的第三方库,里面包含有 opencv 和 boost 的多种深度学习库,非常方便,比如我下载的是 caffe-windows,无需配置,里面在项目属性中已经添加了环境变量,配置步骤如下:第一步:在 caffe-windows 中的 windows 目录下, 复制 windows 下的CommonSettings.p
19、rops.example 这个文件,这个文件就是用来设置 caffe 的接口的问题,后缀名改为 props,内容如下第二步:由于在我的电脑中不是独立的显卡所以无需安装 gpu,如何判电脑是否需要安装 gpu,需要在我的电脑中管理查看显卡适配器,例如电脑的显卡是AMDRadeon 不需要安装 gpu,安装 vs2013 后,打开 CommonSettings.props这个文件,修改内容如下:河南科技大学本科毕业设计(论文)5第三步:点击 caffe-windows 目录下 windows 下的 caffe.sln 文件,并在 vs2013中生成解决方案,官网会自带 16 的项目生成之后会提示下
20、载一个文件NugetPackages,这个文件包含 caffe 所需要的第三方库,本课题在下载过程中有时会提示无法连接,原因是该网络故障,内容如下:第四步:下载完毕之后在 vs2013 会提示继续执行生成的任务,原因是不能一次性生成,需要先生成 libcaffe,这时应该对这个文件进行重新生成,当这个文件生成功后,在对所有的文件进行重新生成,这个时候就不会出现libcaffe.lib 文件无法打开的问题了,当然在本课题设置 caffe 的平台是也出现了这个问题,就是出现无法解析的外部符号,在百度和 Google 之后找到了原因,及时静态库没有连接好,在下载的 vs2013 中需要设置开发的第三
21、方库,配置完成后又出现了.h 文件未找到的问题,这时需要在 windows 下下载 windows 全库。第五步:在 vs2013 中设置运行项,在解决方案 caffe 中选择属性,选择启动项目为当前选定的内容,此时要选择 release 下不要选择 debug 下,这时会在caffe-window 下的 release 目录下生成 caffe.exe 文件,双击这个文件可以打开caffe 的训练界面,内容如下。河南科技大学本科毕业设计(论文)61.2 caffe 与 MATLAB 的接口配置1.2.1 配置文件的设置修改配置文件,就是在 caffe 目录下的 windows 中的 Commo
22、nSettings.props这个文件,双击打开后,修改网络配置文件,使这个文件能够支持 MATLAB 的接口,需要修改该网络的接口配置,修改两个地方,第一个是 MATLABsupport,将这个文件中的 false 改为 true,第二个 MATLABdir 这个目录,就是 MATLAB 的安装目录,可以通过 MATLAB 的桌面的图表邮件点击属性,复制该目录到 MATLABdir,最近 Microsoft 的官网的 github 有更新了 matcaffe 的 caffe 的 cpp 文件,在十六行添加了对于 gpu 的使用,由于本课题未使用了 gpu,因此在这里不再详细介绍。1.2.2 生成文件需要编译 caffe 中的 caffe.sln 该文件里面的 matcaffe 这个 cpp 文件,在这里不需要使用 debu 模式,必须使用的是 release 模式,生成该文件的解决方案,在使用完成后,会在 build/x64/release 下产生一个文件,其中重要的文件为 caffe_.mexw64。1.2.3 设置路径按照 Microsoft 官网提供的配置方法,官网给出的提示就是在完成MATLABsupport 这个配置文件之后,要想使用 caffe 的类库和文件,就必须添加matcaffe 这个文件到 MATLAB 设置路径里面,并且还需要添加 caffe 的生成的文