라즈베리파이에 OpenCV 설치하기
라즈베리파이, 오렌지파이

라즈베리파이에 OpenCV 설치하기

반응형

사실 라즈베리파이에 OpenCV를 설치한지는 좀 시간이 지났지만 이제서야 설치 방법을 글로 남긴다. 원래 OpenCV를 설치하는 과정이 지루함의 연속이고 게다가 몇번이나 재설치를 해서 좀 진이 빠지긴 했었다.



라즈베리파이에 OpenCV를 설치하는 과정은 구글링만 좀 해도 바로 알수있지만 가장 도움을 많이 받았던 사이트는 https://www.pyimagesearch.com/2017/09/04/raspbian-stretch-install-opencv-3-python-on-your-raspberry-pi/ 와 http://webnautes.tistory.com/916 이다.


우선 OpenCV 자체가 용량이 크기 때문에 16GB의 SD카드를 추천한다. 만약 메모리가 부족할 것 같다면 라즈베리파이에 기본적으로 깔린 Wolfram Engine을 제거해 1GB정도의 여유 공간을 확보할 수있다. Wolfram Engine은 거의 사용하는 일이 없는 것 같다.


 $ sudo apt-get purge wolfram-engine


 $ sudo apt-get purge libreoffice*


 $ sudo apt-get clean


 $ sudo apt-get autoremove


위의 과정을 거치면 Wolfram Engine이 제거된다.


 $ sudo apt-get install build-essential cmake


 $ sudo apt-get install pkg-config


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


 $ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libxvidcore-dev libx264-dev libxine2-dev


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


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


 $ sudo apt-get install libgtk2.0-dev


 $ sudo apt-get install mesa-utils libgl1-mesa-dri libgtkgl2.0-dev libgtkglext1-dev


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


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


위의 라이브러리들을 모두 설치하면 기본적인 작업은 끝났다.


 $ mkdir opencv


 $ cd opencv


여기까지 진행했다면 디렉토리는 pi@raspberrypi:~/opencv $인 상태일 것이다. 아래 과정은 pi@raspberrypi:~/opencv $에서 진행한다.


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


 $ unzip opencv.zip


 $ wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/3.4.1.zip


 $ unzip opencv_contrib.zip


 $ cd opencv-3.4.1


 $ mkdir build


 $ cd build


이제 디렉토리는 ~/opencv/opencv-3.4.1/build $이다. 다음으로 cmake를 사용하여 OpenCV 컴파일 설정을 해야하는데, 그냥 아래의 코드를 복사해서 터미널에 붙여넣으면 된다.


cmake -D CMAKE_BUILD_TYPE=RELEASE \

    -D CMAKE_INSTALL_PREFIX=/usr/local \

    -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 INSTALL_PYTHON_EXAMPLES=ON \

    -D BUILD_EXAMPLES=OFF \

    -D BUILD_TESTS=OFF \

    -D BUILD_PERF_TESTS=OFF \

    -D ENABLE_NEON=ON \

    -D ENABLE_VFPV3=ON \

    -D WITH_QT=OFF \

    -D WITH_GTK=ON \

    -D WITH_OPENGL=ON \

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

    -D WITH_V4L=ON \

    -D WITH_FFMPEG=ON \

    -D WITH_XINE=ON \

    -D BUILD_NEW_PYTHON_SUPPORT=ON \

    -D PYTHON2_INCLUDE_DIR=/usr/include/python2.7 \

    -D PYTHON2_NUMPY_INCLUDE_DIRS=/usr/lib/python2.7/dist-packages/numpy/core/include/ \

    -D PYTHON2_PACKAGES_PATH=/usr/lib/python2.7/dist-packages \

    -D PYTHON2_LIBRARY= /usr/lib/arm-linux-gnueabihf/libpython2.7.so \

    -D PYTHON3_INCLUDE_DIR=/usr/include/python3.5m \

    -D PYTHON3_NUMPY_INCLUDE_DIRS=/usr/lib/python3/dist-packages/numpy/core/include/ \

    -D PYTHON3_PACKAGES_PATH=/usr/lib/python3.5/dist-packages \

    -D PYTHON3_LIBRARY=/usr/lib/arm-linux-gnueabihf/libpython3.5m.so \

    ../


시간이 좀 걸린다. 컴파일 설정이 완료되면 바로 컴파일을 해도 무방하나 가끔 메모리 에러가 발생하는 경우가 있어 아래의 과정을 거친다.


 $ sudo nano /etc/dphys-swapfile 


이제 nano편집기로 열린 파일에서 CONF_SWAPSIZE  값을 1024로 수정한다.


 CONF_SWAPSIZE=1024


nano편집기를 닫고 아래 과정을 진행한다.


 $ free 


 $ sudo /etc/init.d/dphys-swapfile restart


이제 컴파일을 한다. 여기선 발열 문제등을 고려해 코어 2개를 이용하는 j2 옵션을 사용했지만 본인이 원하면 j3나 j4를 이용해도 된다. j2 옵션에서 필자는 약 2시간이 걸렸다. (참고로 이 상태의 디렉토리는 pi@raspberrypi:~/opencv/opencv-3.4.1/build $ 이다.) 


 $ make -j4


 $ sudo make install 


$ sudo make install 과정에서 98%완료 됬을때 상당 시간동안 멈춰있으므로 참고하자.

완료되면 몇가지를 확인하자, 우선 같은 디렉토리 상에서  


 $ cat /etc/ld.so.conf.d/*


를 입력하면 아래와 같이 출력되는지 확인한다.


/opt/vc/lib

# Multiarch support

/lib/arm-linux-gnueabihf

/usr/lib/arm-linux-gnueabihf

/usr/lib/arm-linux-gnueabihf/libfakeroot

# libc default configuration

/usr/local/lib 


위와 같이 나오면 성공이다. Python에서 빌드가 완료됬는지 확인하는 방법은 아래를 참고하자


 pi@raspberrypi:~/opencv/opencv-3.4.0/build $ python

Python 2.7.13 (default, Nov 24 2017, 17:33:09)

[GCC 6.3.0 20170516] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>> import cv2

>>> cv2.__version__

'3.4.1'

>>>


pi@raspberrypi:~/opencv/opencv-3.4.0/build $ python3

Python 3.5.3 (default, Jan 19 2017, 14:11:04)

[GCC 6.3.0 20170124] on linux

Type "help", "copyright", "credits" or "license" for more information.

>>> import cv2

>>> cv2.__version__

'3.4.1'

>>>


반응형
    # 테스트용