博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在Ubuntu16.04/18.04 安装opencv3.3.0(可选带contrib和cuda)
阅读量:2395 次
发布时间:2019-05-10

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

Optional:contrib库、cuda库

注意版本对应:Ubuntu16.04对应安装cuda9,Ubuntu18.04对应安装cuda10

安装opencv前需验证cuda和cudnn是否正确安装。

Step 1: 更新包

sudo apt-get updatesudo apt-get upgrade

Step 2: 安装依赖项

sudo apt-get remove x264 libx264-dev
sudo apt-get install build-essential checkinstall cmake pkg-config yasmsudo apt-get install git gfortransudo apt-get install libjpeg8-dev libjasper-dev libpng12-devsudo apt-get install libtiff5-devsudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-devsudo apt-get install libxine2-dev libv4l-devsudo apt-get install libgstreamer0.10-dev libgstreamer-plugins-base0.10-devsudo apt-get install qt5-default libgtk2.0-dev libtbb-devsudo apt-get install libatlas-base-devsudo apt-get install libfaac-dev libmp3lame-dev libtheora-devsudo apt-get install libvorbis-dev libxvidcore-devsudo apt-get install libopencore-amrnb-dev libopencore-amrwb-devsudo apt-get install x264 v4l-utils
# Optional dependenciessudo apt-get install libprotobuf-dev protobuf-compilersudo apt-get install libgoogle-glog-dev libgflags-devsudo apt-get install libgphoto2-dev libeigen3-dev libhdf5-dev doxygen

Step 3:下载OpenCV 和 OpenCV_contrib 源码包

https://github.com/opencv/opencv/tree/3.3.0

https://github.com/opencv/opencv_contrib/tree/3.3.0

Step 4:修改源码包中某些文件

(参考https://blog.csdn.net/qq_15505637/article/details/79622968)

  • FindCUDA.cmake文件

  1. find_cuda_helper_libs(nppi) 改为:
find_cuda_helper_libs(nppial)  find_cuda_helper_libs(nppicc)  find_cuda_helper_libs(nppicom)  find_cuda_helper_libs(nppidei)  find_cuda_helper_libs(nppif)  find_cuda_helper_libs(nppig)  find_cuda_helper_libs(nppim)  find_cuda_helper_libs(nppist)  find_cuda_helper_libs(nppisu)  find_cuda_helper_libs(nppitc)
  1. set(CUDA_npp_LIBRARY "${CUDA_nppc_LIBRARY};${CUDA_nppi_LIBRARY};${CUDA_npps_LIBRARY}") 改为:
set(CUDA_npp_LIBRARY "${CUDA_nppc_LIBRARY};${CUDA_nppial_LIBRARY};${CUDA_nppicc_LIBRARY};${CUDA_nppicom_LIBRARY};${CUDA_nppidei_LIBRARY};${CUDA_nppif_LIBRARY};${CUDA_nppig_LIBRARY};${CUDA_nppim_LIBRARY};${CUDA_nppist_LIBRARY};${CUDA_nppisu_LIBRARY};${CUDA_nppitc_LIBRARY};${CUDA_npps_LIBRARY}")
  1. unset(CUDA_nppi_LIBRARY CACHE) 改为:
unset(CUDA_nppial_LIBRARY CACHE)  unset(CUDA_nppicc_LIBRARY CACHE)  unset(CUDA_nppicom_LIBRARY CACHE)  unset(CUDA_nppidei_LIBRARY CACHE)  unset(CUDA_nppif_LIBRARY CACHE)  unset(CUDA_nppig_LIBRARY CACHE)  unset(CUDA_nppim_LIBRARY CACHE)  unset(CUDA_nppist_LIBRARY CACHE)  unset(CUDA_nppisu_LIBRARY CACHE)  unset(CUDA_nppitc_LIBRARY CACHE)
  • OpenCVDetectCUDA.cmake文件

set(__cuda_arch_ptx "")    if(CUDA_GENERATION STREQUAL "Fermi")      	set(__cuda_arch_bin "2.0")    elseif(CUDA_GENERATION STREQUAL "Kepler")      	set(__cuda_arch_bin "3.0 3.5 3.7")

改为:

set(__cuda_arch_ptx "")    if(CUDA_GENERATION STREQUAL "Kepler")      	set(__cuda_arch_bin "3.0 3.5 3.7")
  • common.hpp文件

在common.hpp中添加#include <cuda_fp16.h>

Step 5:编译安装

首先通过下面的命令查找libcuda.so在哪个目录下,从而确定CUDA_CUDA_LIBRARY

sudo find / -name 'libcuda.so*' -maxdepth 10

然后确定CUDA_ARCH_BIN ,需要和自己的gpu对应,假设安装的是cuda-9.0,则

cd /usr/local/cuda-9.0/samples/1_Utilities/deviceQuerysudo make./deviceQuery

然后找到输出信息中的CUDA Capability Major/Minor version number。

最后:

cd opencv-3.3.0mkdir buildcd buildcmake \    -D CMAKE_BUILD_TYPE=RELEASE \    -D CMAKE_INSTALL_PREFIX=/usr/local \    -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-3.3.0/modules/ \    -D CUDA_CUDA_LIBRARY=/usr/local/cuda/lib64/stubs/libcuda.so \    -D CUDA_ARCH_BIN=7.5 \       -D CUDA_ARCH_PTX="" \    -D WITH_CUDA=ON \    -D WITH_TBB=ON \    -D BUILD_NEW_PYTHON_SUPPORT=ON \    -D WITH_V4L=ON \    -D INSTALL_C_EXAMPLES=ON \    -D INSTALL_PYTHON_EXAMPLES=ON \    -D BUILD_EXAMPLES=ON \    -D WITH_QT=ON \    -D WITH_OPENGL=ON \    -D ENABLE_FAST_MATH=1 \    -D CUDA_FAST_MATH=1 \    -D WITH_CUBLAS=1 \    -D WITH_NVCUVID=1 \    -D BUILD_opencv_cudacodec=OFF ..make -j8sudo make install

出现ippicv 下载比较慢,则手动下载并重命名87cbdeb627415d8e4bc811156289fa3a-ippicv_2017u2_lnx_intel64_20170418.tgz

然后放到opencv-3.3.0/.cache/ippicv文件夹下

你可能感兴趣的文章
Connecting to GPRS over Bluetooth on Linux
查看>>
Linux网络资源
查看>>
Android对Kernel的改动汇总
查看>>
WGET 通过代理下载
查看>>
JITTER BUFFER
查看>>
IP协议报头学习笔记
查看>>
关于SIGPIPE导致的程序退出
查看>>
基于MTD的NAND驱动开发
查看>>
linux mtd源码分析(好东西)
查看>>
关于SIGBUS的总结
查看>>
JSP--9大隐式对象
查看>>
Servelt中主要对象的使用
查看>>
EL表达式的深刻认识
查看>>
JSP技术的学习总结
查看>>
JavaBean的初步认知
查看>>
重识java反射
查看>>
Spring的核心中IOC、DI
查看>>
Spring中注解的使用
查看>>
Spring的认识
查看>>
maven项目出现如下错误,求指点;CoreException: Could not calculate build plan:
查看>>