openCV 4.4.0 Build with extra Module, CUDA, TBB, IPP, MKL, Eigen, protobuf, openBLAS

반응형
728x90
반응형
 
(photo by 퓨림노)
 
 
Introduction

 
openCV 4.4.0 version이 2020년 7월달에 릴리즈되었습니다. 버전이 새로 나올 때마다 빌드 후 포스팅을 계속 하고 있는데, 현재, 원격접속으로 빌드를 수행하고 있어, 9월달이 되어야 최종 빌드를 테스트 할 수 있을 것 같습니다. CUDA와 함께 빌드하는 것은 9월로 하고, 그외 빌드방법에 대해 먼저 정리하여 포스팅하도록 하겠습니다. 
 
 
  기존의 블로그를 추가 작성하도록 하겠습니다. 자주 방문(?) 해주시는 분들은 알고 계시겠지만. 4.2.0 version에서는 하나하나 캡쳐를 통해 포스팅을 해두었고, 4.3.0. version에서는 필요한 부분만 추출하여 작성하였습니다. 
 
본 블로그 포스팅에서도 이전 포스팅과 유사하게 필요한 부분을 요약하여 작성하고자 합니다.
 

 

 

 

 

 

 

 

 
Release / OpenCV Change Logs version: 4.4.0

 
2020.07 월 업데이트 - Link
 
#주요업데이트 내용
  • SIFT (Scale-Invariant Feature Transform) 알고리즘의 특허가 만료됨에 따라 openCV 라이브러리 기본에 추가 
  • DNN Module
    • 레이어(Layers), activations, 다양한 모델추가(supported more models) 개선
  • 새로운 Sample 및 데모 추가
    • 텍스트(Text) 인식 예제 추가(C++/Python)
    • FlowNet2 optical flow 추가 
  • OpeVINO 추가 
  • CUDA backend 의 최적화 및 오류 수정
  • G-API 모듈 추가 
 
  주요 업데이트를 살펴보면, SIFT알고리즘의 특허가 만료됨에 따라 openCV 기본 모듈로 이동함을 알 수 있습니다. 
 

 

 

 

 

 

 

 

 
Download

 
openCV 4.4.0 버전과 빌드를 하기위해서 기존에 사용하던 cmake 부터 최신버전으로 업데이트를 하였습니다. 
로그인이 필요한 부분이 있으니, 이전 블로그 포스팅을 참조하여 필요한 라이브러리를 먼저 다운로드 하도록 합니다. 이때, CUDA Toolkit download 시간이 오래걸리기 때문에 제일 먼저 받으시기 바랍니다. 
 

 

 

 
 
openCV 4.4.0 build with Module(...)

 
openCV 4.4.0과 빌드 되는 모듈은 아래 build version 참조 해주기 바랍니다.  먼저 Windows 환경에서 VS2019(64bit)를 이용합니다. 그리고 총 3번의 빌드를 진행합니다. 
  • 1: openCV 4.4.0과 extra module 빌드시 각각의 DLL, LIB 파일 생성
  • 2: openCV 4.4.0과 extra module 빌드시 하나의 DLL, LIB 파일 생성
  • 3: openCV 4.4.0과 상위 다운받은 모듈 전체 빌드시, 각각의 DLL, LIB 파일 생성
 
빌드하는 부분은 어렵지 않기 때문에 필요한 부분만 요약하여 아래와 같이 작성합니다. 
 
 
#빌드환경
  • Visual studio 2019
  • Windows 10 46bit
 
#Build Version
  • Build R001
    • openCV 4.4.0 ( each DLL & Lib Files )
    • openCV extra Module 
  • Build R002
    • openCV 4.4.0 ( opencv_world one file)
    • openCV extra Module 
  • Build R003
    • openCV 4.4.0 ( each DLL & Lib Files )
    • openCV extra Module 
    • TBB 2020.3
    • IPP 2020 Update 2
    • CUDA 11.02.451.48
    • CUDNN v 8.0.2
    • protobuf 3.12.4
    • eigen 3.3.7
    • openBLAS v0.3.10
 
폴더 구성은 아래의 트리구조로 작성하였습니다. 이후, cmake에서 설정하는 부분이 중요하기 때문에 path설정이 맞는지 꼭확인해주시기 바랍니다. 

 

 

 
#폴더 구성
  • openCV
    • exeFiles 
    • buildr001
    • buildr002
    • buildr003
    • extracted
      • cmake (cmake 실행파일)
      • cuDNN (CUDA 설치 폴더로 이동후 삭제)
      • eigen
      • IPP
      • openBLAS0310
      • opencv
      • opencv_contrib
      • protobuf-3.12.4
      • TBB
 
 
cmake에서 이제 빌드를 하기위해 build R001, R002는 아래의 공통 option 만 선택,해제를 해주시고 빌드를 하시면 30분이내로 빌드가 완료됩니다. 이후 CUDA 및 기타 Library를 빌드를 할경우, path 설정 오류가 가장 많으니, 천천히 꼼꼼하게 살펴보시면서 진행하시길 권합니다. 
 

 

 

 

 

 

 

 

 
#CMake option
  • check
    • BUILD_opencv_world (openCV 빌드수행을 위해 r001은 선택, r002는 체크해제)
    • OPENCV_ENABLE_NONFREE
    • OPENCV_EXTRA_MODULES_PATH : D:/openCV/extracted/opencv_contrib/modules (path 속 "/" 방향 달라짐 주의)
  • uncheck
    • build_package
    • build_perf_tests
    • build_tests
    • build_with_static_crt
 
#CMake option 2
  • Eigen
    • WITH_EIGEN
    • EIGEN_INCLUDE_PATH : D:/openCV/extracted440/eigen
  • openBLAS
    • openBLAS_INCLUDE_DIR : D:/openCV/extracted440/OpenBLAS0310
  • TBB
    • WITH_TBB (generate이후 아래항목 추가 생성됨)
    • TBB_DIR : (미입력)
    • TBB_ENV_INCLUDE : D:/openCV/extracted440/TBB/include
    • TBB_ENV_LIB : D:/openCV/extracted440/TBB/lib/intel64/vc14/tbb.lib
    • TBB_ENV_LIB_DEBUG : D:/openCV/extracted440/TBB/lib/intel64/vc14/tbb_debug.lib
    • TBB_VER_FILE : D:/openCV/extracted440/TBB/include/tbb/tbb_stddef.h (자동설정)
      • (상위 3개 항목 설정 후 Configure 버튼을 누르면 생성됨)
  • CUDA
    • WITH_CUDA (WITH_CUBLAS, WITH_CUFFT는 cuDNN설정시 자동선택됨)
    • WITH_FAST_MATH (generate이후 아래항목 추가 생성됨)
    • CUDA_TOOLKIT_ROOT_DIR : C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v10.2 (자동)
  • cuDNN
    • cmake 3.16.4 version 에서 Advanced 를 선택해야 아래의 항목이 보임
    • CUDNN_LIBRARY : C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v10.2/lib/x64/cudnn.lib (generate이후 아래항목 추가 생성됨)
    • CUDNN_INCLUDE_DIR : C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v10.2/include (자동)
    • CUDNN_VERSION : 7.6.5 (자동)
  • protobuf
    • PROTOBUF_UPDATE_FILES (generate이후 아래항목 추가 생성됨)
    • Protobuf_SRC_ROOT_FOLDER : D:/openCV/extracted/protobuf-3.11.3
  • openBLAS
    • openBLAS_INCLUDE_DIR : D:/openCV/extracted/OpenBLAS0.3.8
  • MKL with lapack
    • MKL_WITH_TBB (generate이후 아래항목 추가 생성됨)
    • MKL_INCLUDE_DIRS : C:/Program Files (x86)/IntelSWTools/compilers_and_libraries_2020.0.166/windows/mkl/include
    • MKL_ROOT_DIR : C:/Program Files (x86)/IntelSWTools/compilers_and_libraries_2020.0.166/windows/mkl
    • 이후 generate 수행시, LAPACK library 자동설정

 

 

 
Conclusion

  현재 Windows 외 Mac환경에서 openCV를 사용해야하는 경우가 더 많아, 포스팅이 완료되면 Mac에서 openCV를 사용하는 방법들을 하나씩 정리해보고자 합니다. 그리고 Mac에서 설정할 때, mobile (android, iOS)에서도 같이 사용할 수 있는 방법도 같이 알아두려고 합니다. 기존 NDK를 이용하여 사용했는데… 시간이 오래되다보니 환경이 변하여 다시 작업 할 수 있도록 준비를 해둬야겠다고 생각되네요..
 
조만간 다시 포스팅에서 뵙겠습니다!
 
- 퓨림노 - 
 
 

 

728x90
반응형

댓글

Designed by JB FACTORY