라즈베리파이에 OpenCV 설치 (python 연동)
OpenCV는 이미지 프로세싱, 얼굴인식 등을 위한 오픈소스 라이브러리로, 가장 많이 알려진 라이브러리 중 하나입니다. 안드로이드, 리눅스, Mac, PC 등 다양한 곳에서 사용이 가능한데, 물론 라즈베리파이에서도 사용할 수 있습니다. 라즈베리파이용 카메라가 있으시다면 설치해서 사용해 볼만한 라이브러리입니다.
다만 설치에 시간이 좀 걸리고, 환경에 따라 설치 중 문제가 발생하는 경우도 많고, 무거워서 라즈베리파이 2 정도는 되어야 쌩쌩하게 돌아가지 않을까 생각됩니다.
어쨌든 조금만 수고하면 라즈베리파이에서도 얼굴인식이 가능하다는 장점(!!)이 있습니다.
패키지 설치
설치를 위해 필요한 패키지들 입니다.
- GCC 4.4.x or later
- CMake 2.6 or higher
- Git
- GTK+2.x or higher, including headers (libgtk2.0-dev)
- pkg-config
- Python 2.6 or later and Numpy 1.5 or later with developer packages (python-dev, python-numpy)
- ffmpeg or libav development packages: libavcodec-dev, libavformat-dev, libswscale-dev
- [optional] libtbb2 libtbb-dev
- [optional] libdc1394 2.x
- [optional] libjpeg-dev, libpng-dev, libtiff-dev, libjasper-dev, libdc1394-22-dev
라즈베리파이에 로그인 한 뒤, 아래 명령어로 필요한 패키지들을 모조리 설치해 줍니다.
- sudo apt-get install build-essential
- sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
- sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
빌드
소스코드를 받아와서 빌드를 할 차례입니다. 아래 명령어를 순서대로 입력합니다. 빌드는 시간이 엄청 걸리므로 (몇 시간) make 명령어를 걸어두고 딴 일 하세요.
- cd $HOME
- mkdir opencv_src
- cd opencv_src/
- git clone https://github.com/Itseez/opencv.git
- cd opencv/
- mkdir release
- cd release/
- cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_PYTHON_SUPPORT=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D BUILD_EXAMPLES=ON ..
- make
- sudo make install
설정
정상적으로 돌아가도록 여러가지 설정을 해줘야 합니다. 여기서는 python 과 연동될 수 있도록 추가작업도 해줄겁니다.
- 아래 명령어를 입력해서 설정파일 수정
- sudo nano /etc/ld.so.conf.d/opencv.conf
- /usr/local/lib #<<<<<<<<<<<<<<<<< 마지막 줄에 추가
- 아래 명령어 입력
- sudo ldconfig
이제 파이썬과 연동하기 위해 설정을 해줄겁니다. [~/자신의 경로/opencv/release/lib] 폴더에 cv2.so 파일이 생성 되어있어야 합니다. 이 파일이 없다면 아래 과정을 마치고 빌드를 다시 해줘야 합니다.
cv2.so 파일이 생성된 경우 이 파일을 python 라이브러리 경로에 복사합니다.
- sudo cp lib/cv2.so /usr/local/lib/python2.7/site-packages/
빌드하기 전에 Python 을 위한 경로 설정을 해줍니다.
- sudo nano /etc/bash.bashrc
마지막에 아래 내용을 추가 해줍니다.
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig export PKG_CONFIG_PATH export PYTHONPATH=~/opencv_src/opencv/release/lib:$PYTHONPATH <<<<<<<<<<<<<자신의 경로 확인하세요.
Ctrl+x => y => enter 눌러서 저장합니다.
테스트
release/bin 폴더로 이동해서 라이브러리 동작을 테스트 해봅니다.
- cd bin
- ./opencv_test_core
Python에서 openCV 라이브러리가 정상적으로 호출되는지 테스트 합니다.
- python
- >>> import cv2
- >>> cv2.__version__
import 명령어에 문제가 발생하지 않고, 버전이 제대로 출력된다면 설치는 성공적.
문제가 발생할 경우 아래 명령으로 패키지 업데이트를 한 후 다시 실행해보세요.
- sudo apt-get update
- sudo apt-get upgrade
- sudo apt-get install python-dev python-numpy
제 경우에는 이렇게 조치하고 [빌드 – cmake] 과정부터 다시 수행하니 정상 동작 하네요. 각자의 설정에 따라 해결법은 틀릴 수 있습니다.
OpenCV 제거할 때는
- cd ~/opencv_src/release
- dpkg -r build
- 그리고 opencv 폴더 삭제하세요.
참고자료
- 파이썬 FFT, 그래프 그리기
- http://withrobot.tistory.com/category/Python
- 설치관련 참고 링크:
http://askubuntu.com/questions/447409/how-to-install-opencv-2-9-for-python
http://stackoverflow.com/questions/15790501/why-cv2-so-missing-after-opencv-installed
http://stackoverflow.com/questions/13892436/installing-opencv-for-python-in-ubuntu-12-04-no-module-present-in-dist-packages - OpenCV 윈도우 설치 및 테스트:
http://egloos.zum.com/imky/v/2969966
http://withrobot.tistory.com/181 - OpenCV 사용법 (C 언어)
http://thinkpiece.tistory.com/246
http://thinkpiece.tistory.com/244
https://thinkrpi.wordpress.com/2013/05/22/opencv-and-camera-board-csi/ (with PiCamera) - OpenCV 커뮤니티
http://www.opencv.co.kr/
http://cafe.naver.com/opencv - 기계 학습을 최대한 활용할 수 있는 11가지 오픈소스 도구
http://www.itworld.co.kr/print/90912 - SimpleCV 소개 및 설치
https://youngbin.tk/2014/11/02/how-to-install-simplecv-framework.html - SimpleCV 공식 페이지
http://simplecv.org/ - 데이터/수치 분석을 위한 파이썬 라이브러리 SciPy와 NumPy
http://www.hanbit.co.kr/ebook/look.html?isbn=9788968486135