728x90

OpenCV자체의 용량이 매우 크기 때문에 16GB이상의 SD카드를 추천드립니다.

 

 $ 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로 하셔도 됩니다.

(참고로 이 상태의 디렉토리는 pi@raspberrypi:~/opencv/opencv-3.4.1/build $) 

 

 $ make -j2

 

 $ 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'

>>>

 

참고 블로그 - https://diy-project.tistory.com/86

728x90

+ Recent posts