上篇博客介绍了win10系统下caffe的 CPU/GPU配置模式,caffe支持matlab和python接口。使用matlab已经七八年了,从2009a一直用到现在,感情颇深,因此先来介绍matlab与caffe的接口设置方法。
【Matlab的安装】
Matlab版本选择最好为2014b及以上,本例Matlab使用的是2015b版本,软件下载及安装请参考http://jingyan.baidu.com/article/eae07827a466a31fed548563.html
【编译matcaffe工程】
首先对CommonSettings.props进行3处修改:
(1)第16行MatlabSupport修改为true:<MatlabSupport>true</MatlabSupport>
(2)第53行MatlabDir修改为实际的目录:<MatlabDir>D:\MATLAB\R2015b</MatlabDir>
如果此时编译matcaffe,会由于mxGPUArray.h无法打开出现以下错误:
因此,还要设置一个地方:
查找matlab根目录,发现mxGPUArray.h在以下目录:D:\MATLAB\R2015b\toolbox\distcomp\gpu\extern\include\gpu
(3)CommonSettings.props中第55行,IncludePath中加入以下地址
$(MatlabDir)\toolbox\distcomp\gpu\extern\include;
随后在release模式下重生成matcaffe,成功
使用release编译以后,在\Build\x64\Release下会生成一个matcaffe文件夹,在matcaffe\+caffe\private下重点包括了caffe_.mexw64文件。
【配置Matlab】
(1)将上步release生成的matcaffe文件夹加入matlab的路径中,直接点击matlab控制栏中部的“setpath”
(2)按照微软官方说明的配置方法,还需要将caffe master\build\x64\release文件夹加入环境变量系统path
接下来,重启Matlab,在默认目录(document\matlab)的command windows里输入caffe.reset_all(),如没有报错,则说明配置成功!
【运行Demo】
(1)将D:\caffe-master\caffe-master\Build\x64\Release\matcaffe\+caffe\private下的caffe_.mexw64文件拷贝到D:\caffe-master\caffe-master\matlab\+caffe\private中,这步很重要!
(2)从Model Zoo中下载Caffe Net
安装方法请参考caffe官方文件
http://caffe.berkeleyvision.org/model_zoo.html#bvlc-model-license
具体操作方法是,进入D:\caffe-master\caffe-master\scripts目录,按住shift键,右键打开“在此处打开命令窗口”
输入命令:
download_model_binary.py D:/caffe-master/caffe-master/models/bvlc_reference_caffenet
期间可能出现无法加载yaml module的问题,请读者自行安装所需的python包
下载完成后,在D:\caffe-master\caffe-master\models\bvlc_reference_caffenet文件夹中会出现bvlc_reference_caffenet.caffemodel文件:
读者也可以自行下载文件,后拷贝入bvlc_reference_caffenet文件夹中,下载地址:
下载地址 链接:http://pan.baidu.com/s/1geUv01l 密码:yp9p
(3)下载分类标签文件
下载地址链接:链接:http://pan.baidu.com/s/1c24ty6W 密码:3z7y
将下载的synset words.txt存放在D:\caffe-master\caffe-master\matlab\demo目录下
(4)编写matlab文件,进行分类测试,先从网上下载几张猫狗照片:
哈士奇:http://b.hiphotos.baidu.com/zhidao/pic/item/d8f9d72a6059252d8d66dd0c379b033b5bb5b941.jpg
松狮:http://imgsrc.baidu.com/forum/pic/item/b5074feed7811fd36e8119ef.jpg
波斯猫:http://upload.chinapet.com/forum/201501/05/090023tztza6lxpalgf1ga.jpg
图片存在D:\caffe-master\caffe-master\examples\images\下
接下来来一波测试,上matlab代码:
clear;clc
im = imread('D:\caffe-master\caffe-master\examples\images\dog.jpg');
[scores, maxlabel] = classification_demo(im,0);
index = importdata('synset_words.txt');
name = index(maxlabel);
figure;imshow(im);
str=strcat('分类结果:',name,' 得分:',num2str(max(scores)));
title(str);
该文件保存为test.m,存放在D:\caffe-master\caffe-master\matlab\demo目录下,运行:
【分类结果】
哈士奇分类结果:
松狮分类结果:
波斯猫分类结果:
准确率还是蛮高的啊!!