Ubuntu16.04 LTS+Cuda8.0+opencv3.10+Matlab2014a+python配置

2024-02-18 10:38

本文主要是介绍Ubuntu16.04 LTS+Cuda8.0+opencv3.10+Matlab2014a+python配置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Ubuntu16.04LTS+Cuda8.0+opencv3.10+Matlab2014a+python配置:

参照blog:

http://blog.csdn.net/autocyz/article/details/52299889

一、安装Cuda驱动

 

 

 

 

采用下载文件安装,在系统设置选择软件和更新,更改下载源,选择aliyun,选择附       件驱动,选择“使用NVIDAbinary driver.......nvidia-367”

 

 

 

 

提示重启后,终端输入:

sudonvidia-settings

弹出界面:

 

 

则说明安装成功。通过nvidia-smi也可以得到GPU信息。

二、Cuda8安装

官网下载cuda8.0的deb文件。安装:

sudo dpkg -i xxxxxx.deb(下载的文件名)

 

sudo apt-get update

 

sudo apt-get install cuda

安装之后,需要修改配置文件:

sudo gedit /etc/profile

最后加入以下两行:

exportPATH=/usr/local/cuda-8.0/bin:$PATH

exportLD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH

然后使其生效:

source /etc/profile

可用以下语句验证:

nvcc --version

得到版本信息。

测试CUda的samples:

cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery

make

三、sudCudnn下载

官网下载cudnn,需要注册登录,下载速度很慢,下载cudnn5.1 Library for Linux版本,为tgz压缩文件,解压文件后进入include文件,进行头文件的复制:

sudo cp cudnn.h /usr/local/cuda/include/

再转到lib64目录下:

sudo cp lib* /usr/local/cuda/lib64/   

cd /usr/local/cuda/lib64/ 

sudo rm -rf libcudnn.so libcudnn.so.5    

sudo ln -s libcudnn.so.5.1.5 libcudnn.so.5  

sudo ln -s libcudnn.so.5 libcudnn.so      

sudo ldconfig

其中ibcudnn.so.5.1.5等文件可能因版本不同而不同,注意和自己版本对照。

四、Matlab安装

Matlab下载得到的为两个rar文件和crack文件夹,解压缩rar文件需要安装unrar:

sudo apt-get install unrar

unrar *****.part1.rar

Part2文件在part1解压缩的过程也会被解压缩,最后得到一个iso文件,挂载iso文件:

sudo mount -o loop MATHWORKS_R2014A.iso/media/zheng/study/linux/matlab2014

转到当前目录:

cd /media/zheng/software/matlab2014

sudo ./install

选择不联网安装,密钥任意:12345-67890-12345-67890,选择安装目录,最后激活需要crack文件夹的license_405329_R2014a.lic文件,最后要将对应的libmwservices.so复制到matlab安装目录下/bin/glnxa64/libmwservices.so

最后安装Matlabsupport可以添加快捷方式:

sudo apt-get install matlab-support

如果配置正确的话安装过程中一直选择yes即可。

 

五、安装opencv3.1.0

官网下载linux版本的opencv3.1.0,先安装python依赖项:

sudo apt-get update  

sudo apt-get install -y build-essential cmake git pkg-config  

 sudo apt-get install -ylibprotobuf-dev libleveldb-dev libsnappy-dev libhdf5-serial-devprotobuf-compiler  

 sudo apt-get install -ylibatlas-base-dev  

 sudo apt-get install -y--no-install-recommends libboost-all-dev  

 sudo apt-get install -ylibgflags-dev libgoogle-glog-dev liblmdb-dev  

 sudo apt-get install -ypython-pip  

 sudo apt-get install -ypython-dev  

 sudo apt-get install -ypython-numpy python-scipy

 

sudo apt-get install --assume-yes libopencv-dev build-essentialcmake git libgtk2.0-dev pkg-config python-dev python-numpy libdc1394-22libdc1394-22-dev libjpeg-dev libpng12-dev libtiff5-dev libjasper-dev libavcodec-devlibavformat-dev libswscale-dev libxine2-dev libgstreamer0.10-devlibgstreamer-plugins-base0.10-dev libv4l-dev libtbb-dev libqt4-dev libfaac-devlibmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-devlibvorbis-dev libxvidcore-dev x264 v4l-utils unzip 

Opencv依赖项:

 

    sudo apt-get installbuild-essential cmake git 

     sudo apt-get installffmpeg libopencv-dev libgtk-3-dev python-numpy python3-numpy libdc1394-22libdc1394-22-dev libjpeg-dev libpng12-dev libtiff5-dev libjasper-dev libavcodec-devlibavformat-dev libswscale-dev libxine2-dev libgstreamer1.0-devlibgstreamer-plugins-base1.0-dev libv4l-dev libtbb-dev qtbase5-dev libfaac-devlibmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-devlibvorbis-dev libxvidcore-dev x264 v4l-utils unzip 

编译之前需要做一些更改,期间可能会发生cuda与opencv的冲突问题(graphcuts.cpp中),需要作如下更改:

cd 'opencv-3.1.0/modules/cudalegacy/src 

sudo gedit graphcuts.cpp

将相关部分替换:

#include"precomp.hpp"

 

// GraphCut hasbeen removed in NPP 8.0

 

#if !defined(HAVE_CUDA) || defined (CUDA_DISABLER) || (CUDART_VERSION >= 8000)

 

 void cv::cuda::graphcut(GpuMat&,GpuMat&, GpuMat&, GpuMat&, GpuMat&, GpuMat&, GpuMat&,Stream&) { throw_no_cuda(); }

 

 void cv::cuda::graphcut(GpuMat&,GpuMat&, GpuMat&, GpuMat&, GpuMat&, GpuMat&, GpuMat&,GpuMat&, GpuMat&, GpuMat&, GpuMat&, Stream&) {throw_no_cuda(); }

同时,最后提前下载编译过程需要的文件:linux-808b791a6eac9ed78d32a7666804320e,目录为/opencv3.1.0/3rdparty/ippcv/downloads

完成上述工作后,可以终端cd到opencv解压缩文件中,新建build文件夹:

mkdir build   cd build/

cmake -D CMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D WITH_V4L=ON -D WITH_QT=ON -DWITH_OPENGL=ON -DCUDA_NVCC_FLAGS="-D_FORCE_INLINES" ..

编译完成后:

make -j8

此时,如果因为g++版本过高,产生错误,需要对CMakeList.txt文件进行更改,开头加入:

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}-D_FORCE_INLINES")

错误如下:

/usr/include/string.h:In function ‘void__mempcpy_inline(void, const void,size_t)’:/usr/include/string.h:652:42: error: ‘memcpy’ was not declared inthisscope return (char ) memcpy (dest, src, n)+ n;

最后,进行编译make即可:

sudo make install

Opencv编译成功之后,但是并没有安装到自己的系统中,需要进行install:

#加入动态链接库

sudo sh -c 'echo"/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'

sudo ldconfig

sudo gedit/etc/profile #在最后加入两行

#若无gedit命令,sudoapt-get install gedit

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig

exportPKG_CONFIG_PATH

#pkg-config可以查看下面链接了解:

http://www.cppblog.com/colorful/archive/2012/05/05/173750.aspx

#最后

将ippicv中的64位lib文件复制到/usr/local/lib下

位于: ~/opencv-3.1.0/3rdparty/ippicv/unpack/ippicv_lnx/lib/intel64/libippicv.a重启系统,转到之前的build目录。

sudo apt-get install checkinstall 

sudo checkinstall

然后按照提示安装就可以了。

使用checkinstall的目的是为了更好的管理我安装的opencv,因为opencv的安装很麻烦,卸载更麻烦,其安装的时候修改了一大堆的文件,当我想使用别的版本的opencv时,将当前版本的opencv卸载就是一件头疼的事情,因此需要使用checkinstall来管理我的安装。

执行了checkinstall后,会在build文件下生成一个以backup开头的.tgz的备份文件和一个以build开头的.deb安装文件,当你想卸载当前的opencv时,直接执行dpkg -rbuild即可。

六、安装Caffe

caffe-master下载,可以到github下载BVLC/caffe-master,首选安装各种依赖包:

sudo apt-get update

sudo apt-get install -y build-essential cmake git pkg-config

sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-devlibhdf5-serial-dev protobuf-compiler

sudo apt-get install -y libatlas-base-dev

sudo apt-get install -y--no-install-recommends libboost-all-dev

sudo apt-get install -y libgflags-dev libgoogle-glog-dev liblmdb-dev

sudo apt-get install -y python-pip

sudo apt-get install -y python-dev

sudo apt-get install -y python-numpy python-scipy

创建Makefiel.config文件:

cd caffe /

sudo cp Makefile.config.example Makefile.config 

sudo gedit Makefile.config

    打开之后修改如下内容: 

    //若使用cudnn,则将#USE_CUDNN := 1 修改成: USE_CUDNN := 1  

    //若使用的opencv版本是3的,则将#OPENCV_VERSION := 3 修改为: OPENCV_VERSION := 3  

    //若要使用python来编写layer,则需要将#WITH_PYTHON_LAYER := 1 修改为 WITH_PYTHON_LAYER := 1  

    //重要的一项 将# Whatever else youfind you need goes here.下面的 INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include LIBRARY_DIRS:= $(PYTHON_LIB) /usr/local/lib /usr/lib  

    修改为: 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/usr/lib/x86_64-linux-gnu/hdf5/serial //这是因为ubuntu16.04的文件包含位置发生了变化,尤其是需要用到的hdf5的位置,所以需要更改这一路径 

    //若使用MATLAB接口的话,则要讲MATLAB_DIR换成你自己的MATLAB安装路径 

    MATLAB_DIR := /media/zheng/study-software/linux_matlab

MATLAB_DIR :=/media/zheng/study-software/linux_matlabmatlab2014a 

打开Makefiel文件:

    将 

   NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS) 

    替换 

   NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC$(COMMON_FLAGS) 

编辑/usr/local/cuda/include/host_config.h,将其中的第115行注释掉,将:

   #error-- unsupported GNU version! gcc versions later than 4.9 are notsupported! 

     

    改为 

   //#error-- unsupported GNU version! gcc versions later than 4.9 are notsupported! 

最新版本的不需更改,version已经更新为5。

最后make:

make all -j8

make runtest -j8

make pycaffe -j8

make matcaffe -j8

Matcaffe可能会产生相关gcc版本的问题,但是目前貌似不影响使用。

测试Matlab功能:

转到caffe-master目录:

make all matcaffe

make mattest

如果发生了如下错误:

Invalid MEX-file ‘**/caffe.mexa64’

/usr/local/MATLAB/R2014a/bin/glnxa64/../../sys/os/glnxa64/libstdc++.so.6

则需要链接文件:

ln -sf /usr/lib/x86_64-linux-gnu/libstdc++.so.6/media/zheng/study/linux/MATLAB/bin/glnxa64/libstdc++.so.6

运行正确结果如下:

 

 

至此,caffe配置成功。

 

 

 

 

 

 

 

 

 

 

 

 

这篇关于Ubuntu16.04 LTS+Cuda8.0+opencv3.10+Matlab2014a+python配置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/720893

相关文章

浅谈配置MMCV环境,解决报错,版本不匹配问题

《浅谈配置MMCV环境,解决报错,版本不匹配问题》:本文主要介绍浅谈配置MMCV环境,解决报错,版本不匹配问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录配置MMCV环境,解决报错,版本不匹配错误示例正确示例总结配置MMCV环境,解决报错,版本不匹配在col

Python实现AVIF图片与其他图片格式间的批量转换

《Python实现AVIF图片与其他图片格式间的批量转换》这篇文章主要为大家详细介绍了如何使用Pillow库实现AVIF与其他格式的相互转换,即将AVIF转换为常见的格式,比如JPG或PNG,需要的小... 目录环境配置1.将单个 AVIF 图片转换为 JPG 和 PNG2.批量转换目录下所有 AVIF 图

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.

Nginx中配置HTTP/2协议的详细指南

《Nginx中配置HTTP/2协议的详细指南》HTTP/2是HTTP协议的下一代版本,旨在提高性能、减少延迟并优化现代网络环境中的通信效率,本文将为大家介绍Nginx配置HTTP/2协议想详细步骤,需... 目录一、HTTP/2 协议概述1.HTTP/22. HTTP/2 的核心特性3. HTTP/2 的优

详解如何通过Python批量转换图片为PDF

《详解如何通过Python批量转换图片为PDF》:本文主要介绍如何基于Python+Tkinter开发的图片批量转PDF工具,可以支持批量添加图片,拖拽等操作,感兴趣的小伙伴可以参考一下... 目录1. 概述2. 功能亮点2.1 主要功能2.2 界面设计3. 使用指南3.1 运行环境3.2 使用步骤4. 核

Python 安装和配置flask, flask_cors的图文教程

《Python安装和配置flask,flask_cors的图文教程》:本文主要介绍Python安装和配置flask,flask_cors的图文教程,本文通过图文并茂的形式给大家介绍的非常详细,... 目录一.python安装:二,配置环境变量,三:检查Python安装和环境变量,四:安装flask和flas

使用Python自建轻量级的HTTP调试工具

《使用Python自建轻量级的HTTP调试工具》这篇文章主要为大家详细介绍了如何使用Python自建一个轻量级的HTTP调试工具,文中的示例代码讲解详细,感兴趣的小伙伴可以参考一下... 目录一、为什么需要自建工具二、核心功能设计三、技术选型四、分步实现五、进阶优化技巧六、使用示例七、性能对比八、扩展方向建

基于Python打造一个可视化FTP服务器

《基于Python打造一个可视化FTP服务器》在日常办公和团队协作中,文件共享是一个不可或缺的需求,所以本文将使用Python+Tkinter+pyftpdlib开发一款可视化FTP服务器,有需要的小... 目录1. 概述2. 功能介绍3. 如何使用4. 代码解析5. 运行效果6.相关源码7. 总结与展望1

使用Python实现一键隐藏屏幕并锁定输入

《使用Python实现一键隐藏屏幕并锁定输入》本文主要介绍了使用Python编写一个一键隐藏屏幕并锁定输入的黑科技程序,能够在指定热键触发后立即遮挡屏幕,并禁止一切键盘鼠标输入,这样就再也不用担心自己... 目录1. 概述2. 功能亮点3.代码实现4.使用方法5. 展示效果6. 代码优化与拓展7. 总结1.

使用Python开发一个简单的本地图片服务器

《使用Python开发一个简单的本地图片服务器》本文介绍了如何结合wxPython构建的图形用户界面GUI和Python内建的Web服务器功能,在本地网络中搭建一个私人的,即开即用的网页相册,文中的示... 目录项目目标核心技术栈代码深度解析完整代码工作流程主要功能与优势潜在改进与思考运行结果总结你是否曾经