Xavier入門チュートリアルソフトウェア編-ソースコードインストールGPUでサポートされているopencv 3.バージョン2.0

4275 ワード

Xavier入門チュートリアルソフトウェア編-ソースコードインストールGPUでサポートされているopencv 3.バージョン2.0


説明:
  • xavierのソースコードにGPUでサポートされているopencv 3をインストールする方法について説明する.2.0バージョン
  • 環境:
  • xavier sdk managerを使用してjetpack 4をインストールする.2
  • デフォルトでopencv 3がインストールされています.3.1
  • cuda 10
  • cuda 9は2.0アーキテクチャをサポートしていないため、後述の問題2
  • を引き起こす可能性があります.
    手順:
  • インストール依存:
  • sudo apt-get update
    sudo apt-get install -y build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
    sudo apt-get install -y libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
    sudo apt-get install -y python2.7-dev
    sudo apt-get install -y python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
    sudo apt-get install -y libv4l-dev v4l-utils qv4l2 v4l2ucp
    sudo apt-get install -y curl
    sudo apt-get update
    
  • ダウンロードソース
  • mkdir -p ~/tools/
    cd ~/tools/
    curl -L https://github.com/opencv/opencv/archive/3.2.0.zip -o opencv-3.2.0.zip
    unzip opencv-3.2.0.zip 
    cd opencv-3.2.0/
    
  • ダウンロードその他のモジュール
  • git clone https://github.com/opencv/opencv_contrib.git
    cd opencv_contrib
    git checkout -b v3.2.0 3.2.0
    
  • FindCUDAが見つかりました.cmakeファイル
  • 行が見つかりました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)
    
  • 行が見つかりました.
  • 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}")
    
  • 行が見つかりました
  • 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)
    
  • ファイルを見つけた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")
      elseif(CUDA_GENERATION STREQUAL "Maxwell")
        set(__cuda_arch_bin "5.0 5.2")
      ...
    
  • cuda 9以降のバージョンにはhalffloat(cuda_fp 16.h)ヘッダファイルが1つあり、opencvのディレクトリにも
  • 含まれるべきである.
  • ヘッダファイルcuda_fp16.h Opencvmodulescudevincludeopencv 2cudevcommonに追加します.hpp
  • #include 
    
  • ソースコード
  • をコンパイル
    mkdir release
    cd release/
    cmake -D WITH_CUDA=ON -D CUDA_ARCH_BIN="7.2" -D ENABLE_PRECOMPILED_HEADERS=OFF  -D CUDA_ARCH_PTX="" -D WITH_GSTREAMER=ON -D WITH_LIBV4L=ON -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D BUILD_EXAMPLES=OFF -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=~/tools/opencv_contrib/modules ..
    
    make
    sudo make install 
    

    質問:
  • 問題1:
  • if you get stdlib error use -DENABLE_PRECOMPILED_HEADERS=OFF flag on cmake
    
  • 問題2:
  • in the CMake files:
    CUDA_nppi_LIBRARY (ADVANCED)
    
  • 複数のファイルを変更する必要があります.参照:
  • https://stackoverflow.com/questions/46584000/cmake-error-variables-are-set-to-notfound
  • https://blog.csdn.net/u014613745/article/details/78310916