OpenCV 3.3.0 빌드해서 설치하기



  • git clone https://github.com/Itseez/opencv

  • git clone https://github.com/Itseez/opencv_contrib

  • 둘다 git checkout 3.3.0해서 3.3.0으로 버전 통일

  • mkdir opencv/build && cd opencv/build

  • cmake -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX={{site-packages}} \
    -D PYTHON2_LIBRARY={{python/bin}} \
    -D PYTHON2_INCLUDE_DIR={{include/python}} \
    -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON \
    -D BUILD_EXAMPLES=ON \
    -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules .. \
    -D WITH_FFMPEG=ON

  • 나는 FFMPEG의 비디오 코덱을 사용할 것이기 때문에 마지막줄을 추가했다.
  • cmake가 안되면 brew install cmake로 설치하고, brew도 없으면.. 알아서 설치하고, {{ }} 사이에 있는 것들을 확인하는 방법은 Python을 실행해서

  • >> from sysconfig import get_paths
    >> from pprint import pprint
    >> info = get_paths()
    >> pprint(info)
    해서 나오는 것들을 보고 집어넣는다.

  • make (-j4)
    make install
    ldconfig


  • 고쳐보자
  • opencv/cmake/FindCUDA.cmake 보자. 3.3.0버전 기준으로 809번째줄에 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)
  • 이렇게 바꾸자

  • 805번째 줄의
    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}")

  • 524번째 줄의 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에서 65번째부터 시작하는 if문에서 Fermi(2.0) 지우고 Kepler if 처리

  • 105번째 줄 set(__cuda_arch_bin "2.0 3.0 3.5 3.7 5.0 5.2 6.0 6.1") 에서도 2.0 지우자

  • \modules\cudev\include\opencv2\cudev\common.hpp 에 헤더를 추가해야됨
    #include <cuda_fp16.h>
    이 라인 적당한 곳에 끼워넣자

  • make

  • opencv_cudaarithm에서 뭔가 문제가 생겼다 

  • opencv  opencv_contrib 폴더를  지우자.




  • 다시 설치해서 3.4.0말고 master브랜치에서 다시..시도....

  • CUDA관련 설정이 이미 돼있다

  • -D BUILD_opencv_freetype=OFF 이 설정을 추가해서 cmake하면 성공

  • 3.4.0버전도 뭔가 이상하다

  • 3.1.0을 해보자.......

  • 도커를 쓰자!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    + Recent posts