< OpenCV + IPP + TBB 빌드하는 방법 >

- !! 일반빌드와 속도 테스트 결과 저는 차이가 없었습니다!


* OpenCV 2.4.8 빌드
    - 다운로드, 압축풀기 http://opencv.org/
    IPP설치방법 :  http://codens.info/642
    TBB설치방법 :  http://codens.info/641

    - 환경변수 설정
    IPPROOT = ipp 설치 경로 (끝이 ipp)
    IPP_H_PATH = IPP include 경로(옵션)
    TBB_INCLUDE_DIRS = TBB include 경로

    - CMake 실행
source code : ..xx../OpenCV-2.4.8/sources
build the binaries : ..xx../OpenCV-2.4.8/build2
        - Configure 버튼 클릭
        - 옵션 조정(체크할 옵션)
BUILD_EXAMPLES
WITH_IPP
WITH_TBB


    - 솔루션 빌드
- build2 폴더로 가서 OpenCV.sln 로드
    -> ALL_BUILD 프로젝트를 시작 프로젝트로 설정하고 선택
        -> 메뉴 : Build -> Build Solution
    -> INSTALL 프로젝트 선택 해서 빌드
        %OPENVC%\install 경로에 빌드한 파일들이 설치된다.


//===============
* 속도 비교
http://www.shervinemami.info/timingTests.html
    - IPP와 TBB를 포함한 빌드와 포함하지 않은 빌드에 속도 차이가 없다. T.T
http://code.opencv.org/projects/opencv/wiki/ChangeLog 을 보면
2.4.3 버전 부터 내부적으로 병렬 처리를 하고있어서 TBB등이 없어도 된다고 한다.


//==============
* bgfg_gmg 프로젝트 속도 테스트 결과
    - BackgroundSubtractorGMG

- 속도 차이는 Debug, Release 만 속도 차이가 남
    Debug : 80ms, Release : 50ms

- 다음은 바꿔도 속도차이 없는 것
    - IPP, TBB 포함 빌드
    - HAVE_IPP
    - setUseOptimized(true); //CPU 기능 활용
    - setNumThreads(8);
    cv::setNumThreads() 함수에서 TBB( HAVE_TBB )가 선언되있지 않은 경우,
Microsoft Visual Studio를 이용하고 있으면  Concurrency Runtime ( HAVE_CONCURRENCY ) 을 기본으로 사용하게 된다.
2.4.3 부터는 기본으로 병렬프로그래밍을 지원한다.


//=======================

//아래는 그냥 참고용
- 전처리기
HAVE_IPP;HAVE_TBB;

- include 경로 추가
$(TBBROOT)\include;$(IPPROOT)\include;$(OpenCV_IT)\include;

- library 경로 추가
Debug : $(TBBROOT)\lib\ia32\vc10;$(IPPROOT)\lib\ia32;$(OpenCV_IT)\lib\debug;
Release : $(TBBROOT)\lib\ia32\vc10;$(IPPROOT)\lib\ia32;$(OpenCV_IT)\lib\release;

- 라이브러리 추가
ippvmmt.lib;ippccmt.lib;ippcvmt.lib;ippimt.lib;ippsmt.lib;ippcoremt.lib;
opencv_core248d.lib;opencv_flann248d.lib;opencv_imgproc248d.lib;opencv_highgui248d.lib;opencv_ml248d.lib;opencv_video248d.lib;

opencv_objdetect248d.lib;opencv_photo248d.lib;opencv_nonfree248d.lib;opencv_features2d248d.lib;opencv_calib3d248d.lib;

opencv_legacy248d.lib;opencv_contrib248d.lib;opencv_nonfree248d.lib;opencv_gpu248d.lib;opencv_photo248d.lib;opencv_legacy248d.lib;

opencv_ocl248d.lib;opencv_ml248d.lib;opencv_video248d.lib;opencv_objdetect248d.lib;opencv_calib3d248d.lib;opencv_features2d248d.lib;

opencv_flann248d.lib;opencv_highgui248d.lib;opencv_imgproc248d.lib;opencv_core248d.lib



반응형

'Code > Desktop' 카테고리의 다른 글

Boost 라이브러리 설치  (2) 2014.01.26
마이크로초(Micro Second) 구하기  (0) 2014.01.24
Intel IPP 사용법  (0) 2014.01.19
Intel TBB 사용법  (0) 2014.01.19
Visual Studio 2013 (2012) 에서 XP 호환 프로그램 만들기  (4) 2014.01.18
Posted by codens