网站的类型和特色,seo推广软件排行榜,网站制作的评价标准,小网站的制作Caffe刚刚安装配置结束#xff0c;乘热打铁#xff01;(一)环境准备前面我有两篇文章写到caffe的搭建#xff0c;第一篇cpu only #xff0c;第二篇是在服务器上搭建的#xff0c;其中第二篇因为硬件环境更佳我们的步骤稍显复杂。其实#xff0c;第二篇也仅仅是caffe的初…Caffe刚刚安装配置结束乘热打铁(一)环境准备前面我有两篇文章写到caffe的搭建第一篇cpu only 第二篇是在服务器上搭建的其中第二篇因为硬件环境更佳我们的步骤稍显复杂。其实第二篇也仅仅是caffe的初步搭建完成还没有编译python接口那么下面我们一起搞定吧在这篇博文的结尾我们再增加编译Python接口而这部分内容请参考我的博文《 Ubuntu14.04搭建Caffe(仅cpu) 》http://www.linuxidc.com/Linux/2016-09/135034.htm 这篇文章从编译Python接口部分看就好了。(二)下载模型作者在github上开源了代码:Fully Convolutional Networks我们首先将代码下载并且解压到家目录下。项目文件结构很清晰如果想train自己的model,只需要修改一些文件路径设置即可这里我们应用已经train好的model来测试一下自己的图片我们下载voc-fcn32s,voc-fcn16s以及voc-fcn8s的caffemodel(根据提供好的caffemodel-url)fcn-16s和fcn32s都是缺少deploy.prototxt的我们根据train.prototxt稍加修改即可。注意这里的caffemode-url其实在各个模型的文件夹下面都已经提供给我们了请读者细心找一找看看是不是每一个文件夹下面都有一个caffemode-url的文件打开里面会有模型的下载地址(三)修改infer.py文件caffe path的加入由于FCN代码和caffe代码是独立的文件夹因此须将caffe的Python接口加入到path中去。这里有两种方案一种是在所有代码中出现import caffe之前加入1 importsys2 sys.path.append(caffe根目录/python)另一种一劳永逸的方法是:在终端或者bashrc中将接口加入到PYTHONPATH中export PYTHONPATHcaffe根目录/python:$PYTHONPATH本次我们采用后者。在解压代码的根目录下找到一个文件:infer.py。略微修改infer.py,就可以测试我们自己的图片了请大家根据自己实际情况来进行修改。im Image.open(voc-fcn8s/test.jpeg) 这里指的是测试图片路径net caffe.Net(voc-fcn8s/deploy.prototxt, voc-fcn8s/fcn8s-heavy-pascal.caffemodel, caffe.TEST) 这里指的是voc-fcn8s文件下的部署文件和模型。注意fcn下每一个模型其实都对应于一个文件夹而每个文件夹下应当放着这个模型的caffemodel文件和prototxt文件plt.savefig(test.png) 这里指的是最终分割的结果应当放置在哪个路径下大家都知道语义分割的结果应当是一张图片修改完后的infer.py如下所示1 importnumpy as np2 from PIL importImage3 importmatplotlib.pyplot as plt4 importcaffe56 #load image, switch to BGR, subtract mean, and make dims C x H x W for Caffe7 im Image.open(voc-fcn8s/test.jpeg)8 in_ np.array(im, dtypenp.float32)9 in_ in_[:,:,::-1]10 in_ - np.array((104.00698793,116.66876762,122.67891434))11 in_ in_.transpose((2,0,1))1213 #load net14 net caffe.Net(voc-fcn8s/deploy.prototxt, voc-fcn8s/fcn8s-heavy-pascal.caffemodel, caffe.TEST)15 #shape for input (data blob is N x C x H x W), set data16 net.blobs[data].reshape(1, *in_.shape)17 net.blobs[data].data[...] in_18 #run net and take argmax for prediction19 net.forward()20 out net.blobs[score].data[0].argmax(axis0)2122 plt.imshow(out,cmapgray);23 plt.axis(off)24 plt.savefig(test.png)25 #plt.show()运行结束后会在软件的根目录下生成一个分割好的图片test.png我们可以看一下原始图片和最后生成的图片的区别可能会遇到的问题(1)no display name and no $DISPLAY environment variable其实在Ubuntu虚拟终端里执行python infer.py是没有任何错误的但是我是通过远程访问连接服务器的方式运行程序的。所以在执行到最后的时候会报这个错。不过不要害怕在stackoverflow中找到了终极解决办法如图中所示的步骤找到matplotlibrc将backend从tkAGG修改为AGG。sudo gedit /home/xuanxufeng/.local/lib/python2.7/site-packages/matplotlib/mpl-data/matplotlibrc再次在putty中执行就没有任何问题了(2)在执行python infer.py时可能会提示缺少某一两个模块。这个不用担心都是小问题百度很容易搜到一两个命令安装就好了~(四) 结束语从开始读论文到现在也算是前进了一小步可以看见的一小步。在往后随着实验的一步步进行我还会再更新模型的训练以及训练数据集的制作请各位看官耐心等待Ubuntu 16.04下Matlab2014aAnaconda2OpenCV3.1Caffe安装 http://www.linuxidc.com/Linux/2016-07/132860.htmCaffe配置简明教程 ( Ubuntu 14.04 / CUDA 7.5 / cuDNN 5.1 / OpenCV 3.1 ) http://www.linuxidc.com/Linux/2016-09/135016.htm