zoukankan      html  css  js  c++  java
  • ubuntu14.04 + GTX980ti + cuda 8.0 ---Opencv3.1.0(基础+opecv_contrib)配置

    如果喜欢视频的话:YouTube 上有视频教程

    https://www.youtube.com/watch?v=1YIAp3Lh5hI

    后来我在mac上安装最新版的OpenCV 找到了一片非常详细的教程,一遍成,大赞

    https://www.pyimagesearch.com/2016/11/28/macos-install-opencv-3-and-python-2-7/

    狂踩坑,脑袋疼。

    流程:

    1.逛网下载opencv source Opencv3.1.0 zip

    我的文件结构是:

    | opencv

      | opencv 3.1.0

        | opencv_contrib-3.1.0

        | build  (自己mkdir创建的,将会在这里进行下面的 cmake)

    2.unzip解压

    3.安装一堆先决必要的环境:

       sudo apt-get install xx xx xx 

    sudo apt-get install build-essential
    sudo apt-get install 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

    非常重要的一点,以至于之后让我入坑长达数小时而不知 所错之 不容易注意到的Trick:

      编译环境 gcc + g++ 都需要 4.9 version 及以上。

    使用 gcc --version   g++ --version 可以产看。

    使用下面命令安装g++ gcc 4.9:

    sudo add-apt-repository ppa:ubuntu-toolchain-r/test
    sudo apt-get update
    //可以执行下面两句
    sudo update-alternatives --remove-all gcc
    sudo update-alternatives --remove-all g++
    sudo apt-get install gcc-4.9
    sudo apt-get install g++-4.9
    sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 20
    sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 20

    期间出现了安装 libgtk2.0-dev 的时候,出现了依赖项不满足的问题,最后通过切换apt-get 源服务器为‘主服务器’(因为我们实验室的网络是可以自动过墙的)解决了问题(在软件更新里面设置)

    据说选择 其他站点 选择 阿里或者163镜像服务器速度都不错!

    4.cd Opencv3.1.0

       mkdir build

       cd build

    5.cmake 这里搞了半天总有问题,最后使用了这个命令选项:

    sudo cmake -D CMAKE_BUILD_TYPE=Release -D INSTALL_C_EXAMPLES=OFF -D INSTALL_CREATE_DISTRIB=ON -D CMAKE_INSTALL_PREFIX=/usr/local ..

     说明:

     -D INSTALL_C_EXAMPLES=OFF  是为了屏蔽opencv3.1.0中的一个bug

    -D INSTALL_CREATE_DISTRIB=ON 选项是为了屏蔽后面的一个错误,在使用库文件管理工具编译时:
    出现的如下这个错误。
    g++ example.cpp -o example `pkg-config --libs --cflags opencv`
    /usr/bin/ld: 找不到 -lippicv
    这样以后编译工程的话

      #LDFLAGS := -lopencv_imgcodecs -lopencv_highgui -lopencv_xfeatures2d -lopencv_features2d -lopencv_core -lopencv_flann -lopencv_calib3d -lopencv_imgproc
      LDFLAGS :=`pkg-config --libs opencv`

      可以直接用pkg 就不用去一个个的罗列需要用到的libs了。一股脑全加进去了

    关于出现checkincludefiles.c 编译时 sys/videoio.h  等等的找不到错误。可以不用理会,他们并不是组织 configuration done的原因。

    6.
    make -j16 这里是根据自己的cpu核心数目进行cmake的时候可以并行加速

       这里还会出现的错误:

       error: ‘NppiGraphcutState’ has not been declared

       通过修改 :

    vim ~/Envoriment/opencv/opencv-3.1.0/modules/cudalegacy/src/graphcuts.cpp

    7.sudo make install

    8. 如果你要是不配置下面的环境变量,运行时就会发现 找不到.x.xx.lib ,所以要把opencv lib文件路径加到环境变量里面。

    这里环境变量分两种:profile 和 bash.bashrc 。profile是全局环境变量对于单个用户,后者是交互式shell下不针对某一个用户的环境变量。所以这里就都需要配置一下。

    要小心后面没有多余的空格。

    gedit /etc/profile

    加入下面两行保存

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

    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

    source /etc/profile

    gedit /etc/bash.bashrc

    加入下面两行保存

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

    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

    source /etc/bash.bashrc

    sudo ldconfig 

    ps :这里加上之前cuda环境时候配置的变量一共有四条自己加进来的环境变量,这里发现配置环境变量的两种格式,分别刚好都用上了。

    export PATH=/usr/local/cuda-8.0/bin:$PATH
    export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH

    ----后记  1 + opencv_contrib——————————————————————————————————————————————————————————————

    想用SIFT 但是发现在opencv_contrib中,现在在重装一遍。流程差不多,除了:

    下载对应版本 3.1.0的opencv_contrib模块在github opencv/opencv_contrib -> releases  这里https://github.com/opencv/opencv_contrib/releases:

    解压之后放到opencv_3.1.0文件夹下,

    加上额外的链接模块的cmake编译语句是这样的:

    sudo cmake -D CMAKE_BUILD_TYPE=Release -D INSTALL_C_EXAMPLES=OFF -D INSTALL_CREATE_DISTRIB=ON -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-3.1.0/modules/ -D CMAKE_INSTALL_PREFIX=/usr/local ..

    出现 config done 代表成功。否则:error occur的话,去check error log看一下哪里出问题了。

    这样混合编译 主文件资源和 额外的module (contrib)

    sudo make -j32

    查看cpu使用率:

    htop命令查看:

    16核cpu基本都飙到极限。

     Intel® Xeon(R) CPU E5-1660 v4 @ 3.20GHz × 15 

     这一阶段跑了:大概10minutes

    sudo make install

    ----后记  2 + cuda(gpu)——————————————————————————————————————————————————————————————

    cmake命令如下(记得更新 gcc g++ 版本到 4.9以上):

    sudo cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D INSTALL_C_EXAMPLES=OFF -D WITH_CUDA=ON -D WITH_QT=ON -D ENABLE_FAST_MATH=1 -D CUDA_FAST_MATH=1 -D WITH_CUBLAS=1 -D INSTALL_CREATE_DISTRIB=ON -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-3.1.0/modules/ ..

    哇 第N次装 opencv , 每次遇到的问题都不一样。 难受。。。

  • 相关阅读:
    经济地理国情监测
    《城市轨道交通——产业关联理论与应用》读书笔记
    《区域经济学原理》读书笔记(上)
    《国家经济地理》杂志之第一期:探寻中国经济的“第四极”
    《地理空间分析——原理、技术与软件工具》读书笔记
    《国家经济地理》杂志第二期:再望万里海疆——走向海洋经济的中国“大航海时代”
    国家统计遥感项目、商业图盟与品牌地图的碎碎念
    关于城市规划中的投融资规划
    区域功能定位对北京人口总量及分布的影响
    《中国经济地理——经济体成因与地缘架构》读书笔记
  • 原文地址:https://www.cnblogs.com/luntai/p/6882997.html
Copyright © 2011-2022 走看看