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 np
import matplotlib.pyplot as plt
import os.path
import scipy
import argparse
import math
import cv2
import sys
import 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 arguments
parser = 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.shape
output_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 opencv
input_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

segnet 编译与测试相关推荐

  1. YOLO-Fastest从Darknet源码编译、测试再到训练完整图文教程!

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 最轻的YOLO算法出来了!这是个模型非常小.号称目前最快的YOLO算法--大小只有1.3MB,单核每秒 ...

  2. Linux内核编译和测试

    课程论文要求写的,顺便贴上来一部分. Linux内核编译和测试<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:of ...

  3. dubbox 编译 和 测试

    因为 dubbox 并没有发布到maven中央仓库仓库中,所以需要我们自己到官网下载,自己编译,install 到本地. 1. 首先安装git客户端工具 TortoiseGit, 然后使用它将 dub ...

  4. maven常用命令(编译、测试、运行、打包、安装、部署)

    我们可以在cmd中通过一系列的maven命令来对我们的maven-helloworld工程进行编译.测试.运行.打包.安装.部署. compile compile是maven工程的编译命令,作用是将s ...

  5. 第一季8:mpp的部署、sample的编译和测试、完整版根文件(包含mpp)制作

    mpp是别人写好的一些驱动.库等内容,我们需要部署这些内容,即复制粘贴在合适的位置. 一.mpp文件结构 二.部署ko文件和部署lib文件 (1)在板载系统的profile中添加设置网卡IP地址. / ...

  6. 【网络通信 -- SIP 电话】项目实战记录 -- SIP 服务器 OPENSIPS 搭建测试与 SIP 客户端 PJSIP 编译安装测试

    [网络通信 -- SIP 电话]项目实战记录 -- SIP 服务器 OPENSIPS 搭建测试与 SIP 客户端 PJSIP 编译安装测试 [1]SIP 服务器 OPENSIPS 搭建 1.1 安装环 ...

  7. Linux——Linux驱动之Makefile编译总结(编译器路径设置、编译流程分析、编译试验测试)

    目录 0 引言 1 编译器路径设置 2 Makefile编译文件 3 Linux内核编译流程分析 4 编译试验测试

  8. Linux驱动(驱动程序开发、驱动框架代码编译和测试)

    目录 什么是驱动: 设备分类: 驱动认知: 字符设备驱动工作原理 字符设备.字符设备驱动与用户空间访问该设备的程序三者之间的关系 驱动程序开发步骤 基于驱动框架的代码开发 驱动模块代码编译和测试 加载 ...

  9. alpine 编译c语言,Docker alpine中编译和测试Go RocketMQ Client

    为什么要做本次测试 rocketmq的go-client分为两种: native 优点 纯go实现 缺点 缺少功能 稳定性未达生产环境要求 API接口不稳定,随时可能修改 cgo 优点 完善的功能 稳 ...

最新文章

  1. linux如何查看归档文件,linux基本命令:文本搜索,拷贝文件,移动文件,归档管理,压缩解压缩文件,查看命令位置...
  2. 使用MrBayes构建贝叶斯系统发育树【实践】
  3. 微软家浏览器挺有意思,大家体会一下
  4. EOS Dawn 1.0
  5. FlygonTiebaToolkit 的开源决定
  6. TAAL在加拿大阿尔伯塔省工厂开启区块链基础设施运营
  7. Spark 基础 —— sc.broadcast
  8. 拓端tecdat|stata具有异方差误差的区间回归
  9. 解决Layui表格需表头固定悬浮的问题
  10. C# MP3操作类,能播放指定的mp3文件,或播放嵌入的资源中的Mp3文件
  11. mysql列行条件,返回满足mysql表中列的多个条件的行
  12. 考研高数——书本资料选择复习规划
  13. xss php漏洞扫描工具,XSpear:一款强大的XSS漏洞扫描器工具
  14. U盘/移动硬盘 有写保护怎么解除【未解决】
  15. python爬取奇书网小说
  16. 方差分析原理及实例应用
  17. 【HDFS】常用API
  18. Android 8.0 蓝牙唤醒 Ble 锁屏 保活 后台 持续扫描 进程拉活 自动唤醒
  19. 久视伤血,久卧伤气,久坐伤肉,久立伤骨,久行伤筋
  20. 三级管功放电路设计及参数选择

热门文章

  1. linux系统日志_如何使用 Linux Cockpit 来管理系统性能 | Linux 中国
  2. HashSet和LinkedHashSet使用
  3. 线程池和线程详细教程
  4. 动态链接(指向运行时常量池的方法引用)
  5. linux下java命令行参数_Java调用Linux命令行
  6. python给两个列表排序方法_Python连接两个字符串列表并对其元素排序的最佳方法...
  7. eclipse安卓工程的构建、配置连接模拟器、安卓工程结构介绍
  8. 文件系统(文件系统目录结构、磁盘分区、虚拟文件系统)、linux内核结构框图
  9. keynote使用手册_如何使用Keynote和智能手机为AR创建原型
  10. 如何使用 Node 后端创建 React 应用程序:完整指南