본문 바로가기
머신러닝&딥러닝/YOLO

2. (YOLO) 라즈베리파이3에 OpenCV 3.2 설치

by J_Remind 2019. 1. 9.

라즈베리파이3에서 YOLO를 설치하기 위해 OpenCV 3.2.0를 설치합니다.

기본 (default) OpenCV 제거


Raspbian에는 OpenCV가 기본적으로 제공됩니다. 우리는 OpenCV 3.2.0를 설치하기 때문에 기본적으로 설치되어있는 Opencv를 제거 합니다.


1
2
sudo apt-get remove libopencv*
sudo apt-get autoremove
cs

Prerequisites 설치


system update & upgrade

1
2
3
4
sudo apt-get update
sudo apt-get upgrade
sudo rpi-update
sudo reboot
cs

개발자 도구 설치

1
sudo apt-get install build-essential cmake cmake-curses-gui pkg-config
cs

libraries 설치

이미지 처리/컴퓨터 비전 라이브리러인 JPEG, PNG, TIFF 파일 형식 로드를 위해 이미지 I/O 패키지를 설치합니다.
1
sudo apt-get install libjpeg-dev libjasper-dev libpng12-dev libtiff5-dev
cs

카메라 스트림으로 작업하고 비디오 파일을 처리 할 수 있도록 비디오 I/O 패키지를 설치합니다.
1
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libeigen3-dev libxvidcore-dev libx264-dev
cs


OpenCV의 GUI 작업을 위해 GTK 라이브러리를 설치합니다.
1
sudo apt-get install libgtk2.0-dev
cs

Install v4l library from repository & Enable the kernel module

1
2
sudo apt-get -y install libv4l-dev v4l-utils
sudo modprobe bcm2835-v4l2
cs

OpenCV 기능을 최적화 해주는 라이브러리를 설치합니다.

1
sudo apt-get install libatlas-base-dev gfortran
cs

Python 설치

Python 헤더와 라이브러리 설치합니다
Numpy는 매트릭스 연산 등을 빠르게 처리할 수 있어 OpenCV에서 사용됩니다.
1
2
sudo apt-get install python2.7-dev python-numpy
sudo apt-get install python3-dev python3-numpy
cs

OpenCV 설치


OpenCV 다운로드

1
2
3
4
mkdir /home/pi/opencv
cd  /home/pi/opencv
wget https://github.com/opencv/opencv/archive/3.2.0.zip -O opencv_source.zip
wget https://github.com/opencv/opencv_contrib/archive/3.2.0.zip -O opencv_contrib.zip
cs

opencv와 opencv_contrib의 버전은 같아야한다.

압축 풀기

1
2
3
cd /home/pi/opencv
unzip opencv_source.zip
unzip opencv_contrib.zip
cs

Build & Install OpenCV

working directory 생성

1
2
3
cd /home/pi/opencv/opencv-3.2.0
mkdir build
cd build
cs

Build 구성

1
2
3
4
5
6
7
8
9
10
11
12
13
14
cmake -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/usr/local \
    -D BUILD_WITH_DEBUG_INFO=OFF \
    -D BUILD_DOCS=OFF \
    -D BUILD_EXAMPLES=OFF \
    -D BUILD_TESTS=OFF \
    -D BUILD_opencv_ts=OFF \
    -D BUILD_PERF_TESTS=OFF \
    -D INSTALL_C_EXAMPLES=ON \
    -D INSTALL_PYTHON_EXAMPLES=ON \
    -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-3.2.0/modules \
    -D ENABLE_NEON=ON \
    -D WITH_LIBV4L=ON \
        ../
cs

OpenCV build

※ make -j4를 했을때 virtual memory exhausted: cannot allocate memory 에러가 뜰 수 있어 swap 파일 크기를 변경해줍니다.
1
sudo nano /etc/dphys-swapfile
cs

Raspbian 기본 값을 다음과 같이 변경해줍니다.
CONF_SWAPSIZE=100     (변경 전)
CONF_SWAPSIZE=1024    (변경 후)

서비스를 중지하고 다시 시작해줍니다.
1
2
sudo /etc/init.d/dphys-swapfile stop
sudo /etc/init.d/dphys-swapfile start
cs

swap 양이 변경 되었는지 확인합니다.
1
free -m
cs

make 명령을 사용하여 컴파일을 시작합니다.
-j 뒤에 cpu 코어 수를 입력합니다. 
(사용 중인 컴퓨터의 cpu 코어수 확인법은 cat /proc/cpuinfo | grep processor | wc-; 입니다.

1
make -j4
cs

※ 컴파일하는데 오랜시간이 걸립니다.


Install OpenCV

컴파일한 결과를 설치합니다.

1
2
sudo make install
sudo ldconfig
cs