本文基于大部分网上方法 http://blog.csdn.net/d5224/article/details/51916178,外加一点自己的个人实际配置经历,环境变量在配置后尽管显示正确并且重启多次仍然无法生效,需要手动激活,具体如下。
(1)修改配置文件,使之支持matlab接口,修改两个地方,第一个是matlabsupport,第二个是matlabdir也就是你的matlab安装目录(对matlab桌面图标右键属性查看):
(2)编译caffe文件夹里面的Windows里面的caffe.sln工程里面的matcaffe一项
(3)使用release编译以后,在Buildx64Release下会生成一个matcaffe文件夹,重点要有下面画框的文件。
(4)首先将上一步生成的matcaffe加入matlab的路径中,直接在setpath里面设置。
然后将release加入系统变量,
“”重启计算机“”使环境变量生效。
若遇到找不到caffe_的问题,则可以采取作者的暴力解决方法。
把这Buildx64Releasematcaffe+caffeprivate这个文件夹里面的东西全都拷贝到matlab+caffeprivate覆盖,然后可能遇到下面问题caffe_.mexw64找不到引用模块问题,本文在配置时也遇到了这个问题,但是重启后就解决了应该是配置环境变量后没有重启的缘故。如还有问题则按下满的方法暴力解决。
(5)把Buildx64Debug下的所有的链接文件也就是dll文件也拷贝到这个文件夹去,原文件在这里
拷贝到matlab+caffeprivate以后是这样
到这里为止,都是和网上其他方法一样的,但本人遇到了更奇葩的问题,即使如此配置,matlab始终显示找不到caffe接口,出现“找不到指定模块“的错误,最后怀疑是环境变量没生效导致,尽管已重启多次,并且在环境变量中显示正确,但仍然没生效,于是在cmd中输入命令caffe,出现如下界面,算是激活环境变量吧。。此后再次运行demo则运行正确。
(6)下载一下model文件放到caffe-mastermodelsvlc_reference_caffenet文件夹下
下载地址 链接:http://pan.baidu.com/s/1geUv01l 密码:yp9p
标签文件如下
synset_words.txt地址:
链接:http://pan.baidu.com/s/1c24ty6W 密码:3z7y
测试一下效果,建立一个test.m测试文件,路径如下【忽视readlabel,我自己写的读文件,最后放到test.m里面了】
【最好在matlab里面加一下路径】
测试代码:
1 %参考http://www.aichengxu.com/view/2422137 2 clear 3 clc 4 5 im = imread('../../examples/images/cat.jpg');%读取图片 6 figure;imshow(im);%显示图片 7 [scores, maxlabel] = classification_demo(im, 0);%获取得分第二个参数0为CPU,1为GPU 8 maxlabel %查看最大标签是谁 9 figure;plot(scores);%画出得分情况 10 axis([0, 999, -0.1, 0.5]);%坐标轴范围 11 grid on %有网格 12 13 fid = fopen('synset_words.txt', 'r'); 14 i=0; 15 while ~feof(fid) 16 i=i+1; 17 lin = fgetl(fid); 18 lin = strtrim(lin); 19 if(i==maxlabel) 20 fprintf('the label of %d is %s ',i,lin) 21 break 22 end 23 end
运行结果如下: