앎/raspberry pi

[Raspberry Pi] OpenCV 설치 Case1

후니아부지 2018. 3. 10. 18:01

2018.02.13 11:41:58



raspbian-stretch-lite 에 설치




ref: 

http://webnautes.tistory.com/916

https://www.pyimagesearch.com/2017/09/04/raspbian-stretch-install-opencv-3-python-on-your-raspberry-pi/

http://kkokkal.tistory.com/1304

https://raspberrypi.stackexchange.com/questions/69169/how-to-install-opencv-on-raspberry-pi-3-in-raspbian-jessie


1. 설치



사용 가능한 패키지와 버전 리스트를 업데이트 한다.

$ sudp apt-get update     



설치된 패키지를 실제로 최신 버전으로 업그레이드 한다.

$ sudp apt-get upgrade

or

$ sudo apt-get dist-upgrade  (의존성 검사하며 설치)



컴파일툴과 Cmake를 설치한다.

$ sudo apt-get install build-essential cmake



컴파일 및 링크시에 필요한 라이브러리를 가져오기 위해 pkg-config를 설치한다.

$ sudo install pkg-config



비디오 및 이미지 관련 라이브러리를 설치한다.


// 정지 영상 파일 입출력

$ sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev


// 비디오 파일 입출력/스트리밍

$ sudo apt-get install libxvidcore-dev libx264-dev libxine2-dev

$ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev

$ sudo apt-get install libv4l-dev v4l-utils

$ sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev


// OpenCV의 highgui 모듈에서 GTK를 사용하도록

$ sudo apt-get install libgtk2.0-dev



Opencv-Python을 위해 파이썬을 설치한다.

$ sudo apt-get install python2.7-dev python3-dev



Opencv에서 매트릭스 연산을 위해 Numpy를 설치한다.

$ sudo apt-get install python-numpy python3-numpy



Opencv 최적화를 위한 라이브러리를 설치한다.

$ sudo apt-get install libatlas-base-dev gfortran libeigen3-dev



디렉토리를 만들고 Opencv를 다운로드 한다.

최신 버전은 3.4.0 이다.

$ mkdir opencv

$ cd opencv

$ wget -O opencv.zip https://github.com/Itseez/opencv/archive/3.4.0.zip

$ wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/3.4.0.zip



압축을 풀어준다.

$ unzip opencv.zip

$ unzip opencv_contrib.zip



빌드를 위해 디렉토리를 만든다.

$ cd opencv-3.4.0

$ mkdir build

$ cd build



컴파일 (path 주의. '..' 빼먹지말것)

[전체 설치]

$ cmake -D CMAKE_BUILD_TYPE=RELEASE \

        -D CMAKE_INSTALL_PREFIX=/usr/local \

        -D INSTALL_PYTHON_EXAMPLES=ON \

        -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-3.4.0/modules \

        -D BUILD_EXAMPLES=ON ../



[전체는 아니야.......]

$ cmake -D CMAKE_BUILD_TYPE=RELEASE \

        -D CMAKE_INSTALL_PREFIX=/usr/local \

        -D INSTALL_PYTHON_EXAMPLES=ON \

        -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-3.4.0/modules \

        -D BUILD_EXAMPLES=OFF \

        -D WITH_TBB=OFF \

        -D WITH_IPP=OFF \

        -D WITH_1394=OFF \

        -D BUILD_WITH_DEBUG_INFO=OFF \

        -D BUILD_DOCS=OFF \

        -D INSTALL_C_EXAMPLES=ON \

        -D BUILD_TESTS=OFF \

        -D BUILD_PERF_TESTS=OFF \

        -D ENABLE_NEON=ON \

        -D WITH_QT=ON \

        -D WITH_OPENGL=ON \

        -D WITH_V4L=ON  \

        -D WITH_FFMPEG=ON \

        -D WITH_XINE=ON \

        -D BUILD_NEW_PYTHON_SUPPORT=ON \

        ../



[전체는 아니야.......qt제외...c예제제외]

-> 일단 이놈으로 성공. 이건 두 시간 정도 걸림.다른것도 해봐.

$ cmake \

-D CMAKE_BUILD_TYPE=RELEASE \

-D CMAKE_INSTALL_PREFIX=/usr/local \

-D INSTALL_PYTHON_EXAMPLES=ON \

-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-3.4.0/modules \

-D BUILD_EXAMPLES=OFF \

-D WITH_TBB=OFF \

-D WITH_IPP=OFF \

-D WITH_1394=OFF \

-D BUILD_WITH_DEBUG_INFO=OFF \

-D BUILD_DOCS=OFF \

-D INSTALL_C_EXAMPLES=OFF \

-D BUILD_TESTS=OFF \

-D BUILD_PERF_TESTS=OFF \

-D ENABLE_NEON=ON \

-D WITH_QT=OFF \

-D WITH_OPENGL=ON \

-D WITH_V4L=ON  \

-D WITH_FFMPEG=ON \

-D WITH_XINE=ON \

-D BUILD_NEW_PYTHON_SUPPORT=ON \

../



[또다른...]

$ cmake \

-D CMAKE_BUILD_TYPE=RELEASE \

-D CMAKE_INSTALL_PREFIX=/usr/local \

-D INSTALL_PYTHON_EXAMPLES=ON \

-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-3.4.0/modules \

-D BUILD_EXAMPLES=ON \

-D BUILD_WITH_DEBUG_INFO=OFF \

-D BUILD_DOCS=OFF \

-D BUILD_TESTS=OFF \

-D BUILD_PERF_TESTS=OFF \

-D BUILD_opencv_python2=OFF \

-D BUILD_opencv_python3=ON \

-D INSTALL_C_EXAMPLES=ON \

-D ENABLE_NEON=ON \

-D WITH_LIBV4L=ON \

../


[또다른...c샘플제외..qt제외]

$ cmake \

-D CMAKE_BUILD_TYPE=RELEASE \

-D CMAKE_INSTALL_PREFIX=/usr/local \

-D INSTALL_PYTHON_EXAMPLES=ON \

-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-3.4.0/modules \

-D BUILD_EXAMPLES=ON \

-D BUILD_WITH_DEBUG_INFO=OFF \

-D BUILD_DOCS=OFF \

-D BUILD_TESTS=OFF \

-D BUILD_PERF_TESTS=OFF \

-D BUILD_opencv_python2=OFF \

-D BUILD_opencv_python3=ON \

-D INSTALL_C_EXAMPLES=OFF \

-D ENABLE_NEON=ON \

-D WITH_LIBV4L=ON \

-D WITH_QT=OFF \

../



cmake 중

face_landmark_model.dat 를 다운로드하는 과정에서 멈춘것처럼 보인다.

한참을 기다리다 타임아웃이 되버린다.

아래에 들어가서 미리 다운 받아놓자. 다운도 오래 걸린다.... 69M정도

https://github.com/opencv/opencv_3rdparty/tree/contrib_face_alignment_20170818


해당 파일을 다음 디렉토리에 넣어두자

/home/pi/opencv/opencv-3.4.0/build/downloads/xfeatures2d


안해도 한~참을 기다린 후 넘어가고 완료된다.



...

...

...

-- Configuring done

-- Generating done

-- Build files have been written to: /home/pi/opencv/opencv-3.4.0/build






make 시 진행이 안되는 경우가 있는데 중지하고 다시 시도한다. 

앞서 컴파일된 것은 넘어가므로 이렇게 진행하는것이 빠르다.

몇 시간 걸린다....

$ make -j4    or     make      // j옵션은 병열로 처리하도록하는 옵션... 그냥 j옵션 쓰지마라. 좀 더 늦어지겠지만 중간에 뻗지는 않는다.


....

[100%] Built target opencv_version


이제 설치...


$ sudo make install

$ sudo ldconfig



설치 확인

$ python3

> import cv2

> cv2.__version__