博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
segnet 编译与测试
阅读量:5317 次
发布时间:2019-06-14

本文共 3736 字,大约阅读时间需要 12 分钟。

segnet 编译与测试
参考:http://sunxg13.github.io/2015/09/10/caffe/
http://m.blog.csdn.net/lemianli/article/details/76687508
http://blog.h5min.cn/u010069760/article/details/75258539
(注意:nakefile而非makefile.config)
1、编译caffe-segnet:
1.1下载caffe-segnet(适用于segnet的caffe版本,下成scaffe)
git clone https://github.com/alexgkendall/caffe-segnet
1.2更改一些编译选项:
Makefile.config:
#USE_CUDNN := 1 (scaffe不支持高版本cudnn)
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial
WITH_PYTHON_LAYER := 1(需要PYTHON_LAYER)
修改Makefile,在
LIBRARIES += glog gflags protobuf leveldb snappy \
lmdb boost_system hdf5_hl hdf5 m \
opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs
处加入后面的opencv_imgcodecs,因为opencv3.0.0把imread相关函数放到imgcodecs.lib中了(原来是imgproc.lib
make -j8
make pycaffe

1.3、下载segnet,建议放置在caffe-segnet文件中:

git clone https://github.com/alexgkendall/SegNet-Tutorial
文件很大,因为其中包含一些图片
下载模型文件:[http://mi.eng.cam.ac.uk/~agk34/resources/SegNet/segnet_weights_driving_webdemo.caffemodel
这是用于摄像头的模型文件,不过图片也能使用,不过需要改变测试文件
使用文件中自带的图片测试结果
Example——Moudel下有相应的模型描述文件prototxt
Scripts文件夹下有相应的测试文件:*p

更改相应路径即可显示结果,这里我更改了使用上面那个摄像头模型的测试文件,可以用于测试单张图片:

# -*- coding: utf-8 -*import numpy as npimport matplotlib.pyplot as pltimport os.pathimport scipyimport argparseimport mathimport cv2import sysimport timesys.path.append('/usr/local/lib/python2.7/site-packages')# Make sure that caffe is on the python path:caffe_root = '/media/lbk/娱乐/seg-env/caffe-segnet/'sys.path.insert(0, caffe_root + 'python')import caffe# Import arguments#deploy='Example_Models/segnet_model_driving_webdemo.prototxt'#weights='Example_Moudels/segnet_weights_driving_webdemo.caffemodel'#colours='Scripts/camvid12.png'#net = caffe.Net(deploy,weights,caffe.TEST)# Import argumentsparser = argparse.ArgumentParser()parser.add_argument('--model', type=str, required=True)parser.add_argument('--weights', type=str, required=True)parser.add_argument('--colours', type=str, required=True)args = parser.parse_args()net = caffe.Net(args.model,args.weights,caffe.TEST)#caffe.set_mode_gpu()input_shape = net.blobs['data'].data.shapeoutput_shape = net.blobs['argmax'].data.shapelabel_colours = cv2.imread(args.colours).astype(np.uint8)#cv2.namedWindow("Input")#cv2.namedWindow("SegNet")cap = cv2.VideoCapture(0) # Change this to your webcam ID, or file name for your video filerval = Trueframe = cv2.imread('/media/lbk/娱乐/seg-env/caffe-segnet/segnet/Example_Models/123.png')frame = cv2.resize(frame, (input_shape[3],input_shape[2]))input_image = frame.transpose((2,0,1))# input_image = input_image[(2,1,0),:,:] # May be required, if you do not open your data with opencvinput_image = np.asarray([input_image])out = net.forward_all(data=input_image)segmentation_ind = np.squeeze(net.blobs['argmax'].data)segmentation_ind_3ch = np.resize(segmentation_ind,(3,input_shape[2],input_shape[3]))segmentation_ind_3ch = segmentation_ind_3ch.transpose(1,2,0).astype(np.uint8)segmentation_rgb = np.zeros(segmentation_ind_3ch.shape, dtype=np.uint8)cv2.LUT(segmentation_ind_3ch,label_colours,segmentation_rgb)#这里应该变成小数存储了,看来opencv对于小数也是热图显示,但是保存还是黑白的图segmentation_rgb = segmentation_rgb.astype(float)/255#cv2.imwrite('output.jpg',segmentation_rgb)#cv2.imshow("Input", frame)#cv2.imshow("SegNet", segmentation_rgb)#cv2.imwrite('output.jpg',segmentation_rgb)#这里使用plt显示与保存,比cv2好点,并且不会出现进程卡住的情况plt.imshow(segmentation_rgb)plt.savefig('output.png')plt.show()

运行:进入到SegNet-Tutorial-master文件夹

python Scripts/*.py --model Example_Models/segnet_model_driving_webdemo.prototxt --weights Example_Models/segnet_weights_driving_webdemo.caffemodel --colours Scripts/camvid12.png

即可得到结果

 

转载于:https://www.cnblogs.com/kanuore/p/7588846.html

你可能感兴趣的文章
wab框架
查看>>
GitHub项目管理维护实用教程
查看>>
【POJ】3415 Common Substrings
查看>>
JavaScript执行环境 + 变量对象 + 作用域链 + 闭包
查看>>
线程的语法 (event,重要)
查看>>
【转】学会这13个原则写UI界面文案,用户才能秒懂
查看>>
【转】Linux中断处理学习笔记
查看>>
【转】基于 Android NDK 的学习之旅-----数据传输(引用数据类型)
查看>>
点击User Profile Service Application 报错
查看>>
VS2010插件之NuGet
查看>>
1.单机部署hadoop测试环境
查看>>
[设计模式]桥接模式
查看>>
利用html5看雪花飘落的效果
查看>>
IOS实用功能之截图(来自相册和拍照)
查看>>
linux去掉某一字符开头的行
查看>>
# javascript 总结
查看>>
字符串(AC自动机):HDU 5129 Yong Zheng's Death
查看>>
最详细的排序解析,理解七大排序
查看>>
mybatis模糊查询不同写法
查看>>
Linux移植之内核启动过程引导阶段分析
查看>>