ubuntu opencv带CUDA安装

官方给定的必备安装包

  • build-essential (12.1ubuntu2)
  • cmake (3.5.1-1ubuntu3)
  • git (1:2.7.4-0ubuntu1.1)
  • libgtk2.0-dev (2.24.30-1ubuntu1.16.04.1)
  • pkg-config (0.29.1-0ubuntu1)
  • libavcodec-dev : (7:2.8.11-0ubuntu0.16.04.1)
  • libavformat-dev (7:2.8.11-0ubuntu0.16.04.1)
  • libswscale-dev(7:2.8.11-0ubuntu0.16.04.1)

cuda install

  • wget cuda8网址
  • sudo sh xxxxrun 安装库(注意:已安装nvidia驱动了不要再选择安装Nvidia Graphic Driver那项,其他都可以yes或默认)。
  • ffmpeg 安装

安装其他依赖库

  • 官方必须包:sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev

  • 官方建议包:sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

  • OPENGL支持包:sudo apt-get install freeglut3-dev mesa-common-dev libgtkglext1 libgtkglext1-dev

  • 视频解码支持包:sudo apt-get install checkinstall yasm libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev libtbb-dev libqt4-dev libgtk2.0-dev libmp3lame-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils

opencv 编译安装

cmake 
    -D CMAKE_BUILD_TYPE=DEBUG 
    -D CMAKE_INSTALL_PREFIX=/usr/local/opencv2 
    -D WITH_CUDA=ON 
    -D WITH_CUBLAS=ON 
    -D CUDA_FAST_MATH=ON 
    -D WITH_CUFFT=ON 
    -D WITH_NVCUVID=ON 
    -D WITH_V4L=ON 
    -D WITH_LIBV4L=ON 
    -D WITH_OPENGL=ON 
    -D WITH_FFMPEG=ON 
    -D INSTALL_C_EXAMPLES=ON 
    -D BUILD_EXAMPLES=ON 
    .. 

如果一切正常,则得到如下配置信息:

--     Linker flags (Release):
--     Linker flags (Debug):
--     ccache:                      NO
--     Precompiled headers:         YES
-- 
--   OpenCV modules:
--     To be built:                 core flann imgproc highgui features2d calib3d ml video legacy objdetect photo gpu ocl nonfree contrib python stitching superres ts videostab
--     Disabled:                    world
--     Disabled by dependency:      -
--     Unavailable:                 androidcamera dynamicuda java viz
-- 
--   GUI: 
--     QT:                          NO
--     GTK+ 2.x:                    YES (ver 2.24.30)
--     GThread :                    YES (ver 2.48.2)
--     GtkGlExt:                    YES (ver 1.2.0)
--     OpenGL support:              YES (/usr/lib/x86_64-linux-gnu/libGLU.so /usr/lib/x86_64-linux-gnu/libGL.so)
--     VTK support:                 NO
-- 
--   Media I/O: 
--     ZLib:                        /usr/lib/x86_64-linux-gnu/libz.so (ver 1.2.8)
--     JPEG:                        /usr/lib/x86_64-linux-gnu/libjpeg.so (ver )
--     PNG:                         /usr/lib/x86_64-linux-gnu/libpng.so (ver 1.2.54)
--     TIFF:                        /usr/lib/x86_64-linux-gnu/libtiff.so (ver 42 - 4.0.6)
--     JPEG 2000:                   /usr/lib/x86_64-linux-gnu/libjasper.so (ver 1.900.1)
--     OpenEXR:                     /usr/lib/x86_64-linux-gnu/libImath.so /usr/lib/x86_64-linux-gnu/libIlmImf.so /usr/lib/x86_64-linux-gnu/libIex.so /usr/lib/x86_64-linux-gnu/libHalf.so /usr/lib/x86_64-linux-gnu/libIlmThread.so (ver 2.2.0)
-- 
--   Video I/O:
--     DC1394 1.x:                  NO
--     DC1394 2.x:                  YES (ver 2.2.4)
--     FFMPEG:                      YES
--       avcodec:                   YES (ver 56.60.100)
--       avformat:                  YES (ver 56.40.101)
--       avutil:                    YES (ver 54.31.100)
--       swscale:                   YES (ver 3.1.101)
--       avresample:                NO
--     GStreamer:                   
--       base:                      YES (ver 0.10.36)
--       video:                     YES (ver 0.10.36)
--       app:                       YES (ver 0.10.36)
--       riff:                      YES (ver 0.10.36)
--       pbutils:                   YES (ver 0.10.36)
--     OpenNI:                      NO
--     OpenNI PrimeSensor Modules:  NO
--     PvAPI:                       NO
--     GigEVisionSDK:               NO
--     UniCap:                      NO
--     UniCap ucil:                 NO
--     V4L/V4L2:                    Using libv4l1 (ver 1.10.0) / libv4l2 (ver 1.10.0)
--     XIMEA:                       NO
--     Xine:                        NO
-- 
--   Other third-party libraries:
--     Use IPP:                     NO
--     Use Eigen:                   NO
--     Use TBB:                     NO
--     Use OpenMP:                  NO
--     Use GCD                      NO
--     Use Concurrency              NO
--     Use C=:                      NO
--     Use Cuda:                    YES (ver 8.0)
--     Use OpenCL:                  YES
-- 
--   NVIDIA CUDA
--     Use CUFFT:                   YES
--     Use CUBLAS:                  YES
--     USE NVCUVID:                 YES
--     NVIDIA GPU arch:             20 21 30 35
--     NVIDIA PTX archs:            30
--     Use fast math:               YES
--     Tiny gpu module:             NO
-- 
--   OpenCL:
--     Version:                     dynamic
--     Include path:                /home/dutoeserver/OpenCV/opencv_git/3rdparty/include/opencl/1.2
--     Use AMD FFT:                 NO
--     Use AMD BLAS:                NO
-- 
--   Python:
--     Interpreter:                 /usr/bin/python2 (ver 2.7.12)
--     Libraries:                   /usr/lib/x86_64-linux-gnu/libpython2.7.so (ver 2.7.12)
--     numpy:                       /usr/lib/python2.7/dist-packages/numpy/core/include (ver 1.11.0)
--     packages path:               lib/python2.7/dist-packages
-- 
--   Java:
--     ant:                         NO
--     JNI:                         NO
--     Java tests:                  NO
-- 
--   Documentation:
--     Build Documentation:         NO
--     Sphinx:                      NO
--     PdfLaTeX compiler:           NO
--     Doxygen:                     NO
-- 
--   Tests and samples:
--     Tests:                       YES
--     Performance tests:           YES
--     C/C++ Examples:              YES
-- 
--   Install path:                  /usr/local/opencv2
-- 
--   cvconfig.h is in:              /home/dutoeserver/OpenCV/opencv_git/build
-- -----------------------------------------------------------------
-- 
-- Configuring done
-- Generating done
-- Build files have been written to: /home/dutoeserver/OpenCV/opencv_git/build

然后利用make -j $(($(nproc) + 1))进行编译,利用sudo make install安装。

可能错误

-D WITH_NVCUVID=ON是打开libnvcuvid模块的功能,但由于cuda预置的nvidia版本和自己pc安装nvidia版本有差异,所以需要修改~/NVIDIA_CUDA_8.0/Samples/findglib.mk文件,将UBUNTU_PKG_NAME = 'nvidia-367'修改为自己机器中的nvidia驱动版本。同时,还建立软链接:

sudo ln -s /usr/lib/nvidia-378/libnvcuvid.so /usr/lib/libnvcuvid.so
sudo ln -s /usr/lib/nvidia-378/libnvcuvid.so.1 /usr/lib/libnvcuvid.so.1
原文地址:https://www.cnblogs.com/imagezy/p/7156704.html