按照https://blog.csdn.net/whu_gcoder_2017/article/details/71479944上的教程
从github上下载了caffe包
安装了vs2013
编译项目nuget的时候遇到了问题
启动nuget还原,一点就未响应
在 工具-扩展与更新-联机搜索nuget,如图打钩表示安装,如果没安装则下载安装
一开始打开这个,已安装那什么都没有,上面会显示一个自动还原项目缺少的包,点击自动还原,nuget下载设置在这里,如下图所示了;
然后,非常非常慢,等了很长很长时间……,慢慢的自动还原了图中所示的这些包,还原过程中没有进度提示,一开始不知道反反复复试了好多遍才知道,他会一直自动下载,但是真的太慢了,一直以为没反应卡死了!!!反反复复关了重新试了好多遍才发现有文件下载下来了
在nugetpackages文件夹中就会多出来这些,还有个opencv,但是编译caffe.sln老是出问题,出各种error提示,然后百度,各种办法一个一个试,然后。。。,最后问题变成了下图所示,很明显试opencv库关联有问题,在nuget管理器中卸载重新下载好多次,问题都没解决,查看nugetpackages下的opencv发现文件很小,应该nuget下载opencv不全有问题,所以只能在nuget管理器中重新卸载opencv,准备自己单独下载opencv,搭建opencv环境。。。
现在去下载 opencv。。。。。,能不能解决等会试过再来更新。。。
https://opencv.org/releases.html在这里能下载各种版本的opencv,在这里下载了一个2.4.10版本的尝试;官网下载的2.4.10的opencv有三百多兆,nuget自动下载的60多兆????
下载的300多兆,解压后3个g!!!!
然后就是配置opencv,具体百度教程,这里用以下永链接中一次性永久配置方法;
https://blog.csdn.net/sinat_36264666/article/details/77914570?locationNum=6&fps=1
先是添加环境变量D:\opencv\build\x64\vc12
然后添加包含目录和库目录
接着添加附加依赖项,以下是两个版本的依赖项,按需要自己添加
opencv_ml2410d.lib
opencv_calib3d2410d.lib
opencv_contrib2410d.lib
opencv_core2410d.lib
opencv_features2d2410d.lib
opencv_flann2410d.lib
opencv_gpu2410d.lib
opencv_highgui2410d.lib
opencv_imgproc2410d.lib
opencv_legacy2410d.lib
opencv_objdetect2410d.lib
opencv_ts2410d.lib
opencv_video2410d.lib
opencv_nonfree2410d.lib
opencv_ocl2410d.lib
opencv_photo2410d.lib
opencv_stitching2410d.lib
opencv_superres2410d.lib
opencv_videostab2410d.lib
opencv_objdetect2410.lib
opencv_ts2410.lib
opencv_video2410.lib
opencv_nonfree2410.lib
opencv_ocl2410.lib
opencv_photo2410.lib
opencv_stitching2410.lib
opencv_superres2410.lib
opencv_videostab2410.lib
opencv_calib3d2410.lib
opencv_contrib2410.lib
opencv_core2410.lib
opencv_features2d2410.lib
opencv_flann2410.lib
opencv_gpu2410.lib
opencv_highgui2410.lib
opencv_imgproc2410.lib
opencv_legacy2410.lib
opencv_ml2410.lib
*******************************************分割线*****************************
心得opencv配置好了
libcaffe生成成功了
算是解决了一个小问题
但是。。。。。。。。。。。。。
caffe生成,出现一堆错误。。。。。。。。。。。。。。心态爆炸。。。。。。。明天再看。。。好像还是opencv库的问题!!!
编译成功了,还是opencv的问题,就是在每一个项目中都要依次添加opencv的配置文件。然后生成项目就成功了。
这样就表示windows下的caffe配置成功了?然后就可以测试了?怎么测试再看看
然后就是测试了,https://blog.csdn.net/liuweiyuxiang/article/details/79532073
按这个里面一步一步操作的
期间出现两个问题,一个是写的bat批处理问价执行找不到路径什么的,是bat文件位置放的有问题
另一个是执行bat文件提示缺少opencv什么什么的库,原因是没有添加opencv的系统环境变量;
之后执行bat文件
成功转换文件
又bat一直有问题,一直以为是bat文件写的有问题,最后仔细看了看,发现是exe文件没了,看了360文件隔离发现果然是被360给隔离了,*******,,,,
还是能恢复的,还以为又要重新经过漫长的重新生成文件了!!!
然后运行bat,就这个样子了
看上去要等好久的样子
好了,这个文件说是训练好的模型
最后就是测试自己的手写数字数据了
在生成均值文件的时候,写bat文件一直运行出错,bat文件内容如下:
Build\x64\Release\compute_image_mean.exe examples\mnist\mnist_train_leveldb mean.binaryproto --backend=leveldb
pause
运行错误如下:
刚跳出这个问题的时候我是很头大的 ,跟着别人一步一步来的总出别人没出过的问题,然后翻别人博客没发现有这个问题,然后仔细看命令窗口错误,就是Failed to open leveldb;然后仔细看bat文件命令,按路径打开文件夹,最后发现我的生成的数据是lmdb的,而bat文件中写的是leveldb!!然后重新看别人博客,才发现我可能是这个地方漏了?生成了lmdb的数据。
回头重新看了别人博客,果然是自己文件配置漏改了,学习还是要认真,出的差错迟早都会带来你意想不到的问题!
这里既然是lmdb的文件,暂时不知道lmdb和leveldb的区别和对于caffe的影响,所以既然生成了lmdb就先试试吧;
决定改bat命令试一试识别效果,不行再重新转换数据从头再来;
Build\x64\Release\compute_image_mean.exe examples\mnist\mnist_train_lmdb mean.binaryproto --backend=lmdb
pause
嗯,没错,我把生成均值文件的命令中的所有leveldb改成了lmdb试试;生成了一个文件,接着往下走看看怎么样;
继续跟着别人的博客往下试;https://blog.csdn.net/hongbin_xu/article/details/75577912
在examples\minst下修改lenet_train_test.prototxt添加均值文件,两个地方要添加
在根目录编写bat调用caffe.exe,
Build\x64\Release\caffe.exe test --model=examples\mnist\lenet_train_test.prototxt -weights=examples\mnist\lenet_iter_10000.caffemodel -gpu=0
pause
运行,然后????
有了上次经验,这次先认真读错误,use gpu?由于我只有cpu,所以再回去看哪里设置cpu还是gpu运行,所以去掉这个,不要忽略别人经验帖中写的每一个字:DDD!!
去掉之后运行:
然后就是自己制作了0-9的手写体,用的ps,几分钟就可以做好,挺方便,放在了examples\mnist\mnistnumber下
最后一步,编写bat脚本文件,调用classification.exe;
Build\x64\Release\classification.exe examples\mnist\lenet.prototxt examples\mnist\lenet_iter_10000.caffemodel mean.binaryproto examples\mnist\synset_words.txt examples\mnist\mnistnumber\0.png
Build\x64\Release\classification.exe examples\mnist\lenet.prototxt examples\mnist\lenet_iter_10000.caffemodel mean.binaryproto examples\mnist\synset_words.txt examples\mnist\mnistnumber\1.png
Build\x64\Release\classification.exe examples\mnist\lenet.prototxt examples\mnist\lenet_iter_10000.caffemodel mean.binaryproto examples\mnist\synset_words.txt examples\mnist\mnistnumber\2.png
Build\x64\Release\classification.exe examples\mnist\lenet.prototxt examples\mnist\lenet_iter_10000.caffemodel mean.binaryproto examples\mnist\synset_words.txt examples\mnist\mnistnumber\3.png
Build\x64\Release\classification.exe examples\mnist\lenet.prototxt examples\mnist\lenet_iter_10000.caffemodel mean.binaryproto examples\mnist\synset_words.txt examples\mnist\mnistnumber\4.png
Build\x64\Release\classification.exe examples\mnist\lenet.prototxt examples\mnist\lenet_iter_10000.caffemodel mean.binaryproto examples\mnist\synset_words.txt examples\mnist\mnistnumber\5.png
Build\x64\Release\classification.exe examples\mnist\lenet.prototxt examples\mnist\lenet_iter_10000.caffemodel mean.binaryproto examples\mnist\synset_words.txt examples\mnist\mnistnumber\6.png
Build\x64\Release\classification.exe examples\mnist\lenet.prototxt examples\mnist\lenet_iter_10000.caffemodel mean.binaryproto examples\mnist\synset_words.txt examples\mnist\mnistnumber\7.png
Build\x64\Release\classification.exe examples\mnist\lenet.prototxt examples\mnist\lenet_iter_10000.caffemodel mean.binaryproto examples\mnist\synset_words.txt examples\mnist\mnistnumber\8.png
Build\x64\Release\classification.exe examples\mnist\lenet.prototxt examples\mnist\lenet_iter_10000.caffemodel mean.binaryproto examples\mnist\synset_words.txt examples\mnist\mnistnumber\9.png
pause
他的命令里边有个synset_words.txt,我看了我的文件并没有这个文件;我觉得应该是标签文件,博主忘说了;
在另一篇博客中找到这个:https://blog.csdn.net/zb1165048017/article/details/52217772,建立文本文档写入标签
然后 满怀期待地运行上面建立的bat文件,4,8,9识别错误;其他正确;
关于caffe的第一课学习就到此收尾了,虽然最后结果并不是很满意,这篇博文是边做边写,有点乱,但是总归照猫画虎照葫芦画瓢做完了,给自己加油!!