[라즈베리파이 강좌] OpenCV 설치하기

알도 2017-11-15 (수) 17:53 2년전 19637  


 

라즈베리파이 강좌

  OpenCV 설치하기






  안녕하세요. 메카솔루션 알도입니다.

  오늘은 라즈비안에 OpenCV를 설치해보겠습니다. OpenCV란 Open Computer Vision의 약자로 컴퓨터 비전, 즉 영상 처리 라이브러리입니다. 최근에 구글의 텐서플로우나 Nvidia 등에서 다양한 머신러닝 라이브러리를 제공하고 있지만, 가장 역사가 깊은 라이브러리는 OpenCV입니다. 영상처리 자체로는 우선 OpenCV가 최고라고 할 수 있습니다.


 


  상당히 과거(2000년대 초반 쯤)에 만들어진 라이브러리인 만큼 효율에 상당히 집중되어 있으며, 고전적인 기능도 타의 추종을 불허합니다. 단점이라면, 라이브러리의 기능이 상당히 방대하기 때문에 덩치가 다소 큰 편이고, 라이브러리를 설치하고 포함시키는 방법이 어렵고 시간이 오래 걸리는 편입니다. 보통 하루 잡고 작업하시면 맞을 것 같습니다.


  본 포스트는 pyimagesearch의 글을 참고하여 작성하였습니다.


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


 


 

     OpenCV 3.3


 준비물

  준비물로는 라즈비안이 설치된 라즈베리파이가 되겠습니다. 메카솔루션에서는 다양한 라즈베리파이 솔루션을 제공하고 있습니다.

http://mechasolution.com/shop/goods/goods_view.php?goodsno=329559&category=046001




  라즈베리파이가 처음이신 분들은 아래와 같은 스타터 키트를 구매하시면 필요한 물품을 한번에 구매하실 수 있습니다.

http://mechasolution.com/shop/goods/goods_view.php?goodsno=540647&category=046



  앞서 말씀드린대로 OpenCV 설치는 다소 난이도가 있고 시간이 걸리기 때문에 설치가 완료된 SD카드를 판매하고 있습니다. 아래 상품을 사용하시면 많은 시간과 노력을 절약하실 수 있습니다. 다만, 이미지가 망가지면, 상품의 가치가 사라지므로, 구매 직후 이미지를 백업해 놓으시는 것을 추천합니다.


http://mechasolution.com/shop/goods/goods_view.php?goodsno=543841&category=046



관련 라이브러리 설치하기

  OpenCV 설치를 시작하기 앞서 OpenCV가 필요로하는 라이브러리들을 설치해야 하는데 양이 좀 많습니다. 먼저 업데이트부터 합니다.


sudo apt-get update

$ sudo apt-get upgrade


  업데이트 후에 먼저 개발 툴을 설치합니다. OpenCV 설치는 소스코드를 다운로드 받아서 라즈베리파이 안에서 빌드를 해야하기 때문에 개발 툴이 필요합니다.


$ sudo apt-get install build-essential

$ sudo apt-get install cmake

$ sudo apt-get install pkg-config


  그 다음은 다양한 이미지 파일을 열 수 있도록 관련 라이브러리들을 설치합니다.


$ sudo apt-get install libjpeg-dev

$ sudo apt-get install libtiff5-dev

$ sudo apt-get install libjasper-dev

$ sudo apt-get install libpng12-dev 


  그 다음은 마찬가지로 다양한 비디오 파일에 대한 라이브러리를 설치합니다.


$ sudo apt-get install libavcodec-dev

$ sudo apt-get install libavformat-dev

$ sudo apt-get install libswscale-dev

$ sudo apt-get install libv4l-dev

$ sudo apt-get install libxvidcore-dev

$ sudo apt-get install libx264-dev


 OpenCV에는 highgui라는 서브 모듈이 있는데 이미지를 스크린에 출력하거나 간단한 GUI를 만드는데 사용됩니다. 이에 필요한 라이브러리를 설치합니다.


$ sudo apt-get install libgtk2.0-dev

$ sudo apt-get install libgtk-3-dev


  아래 라이브러리들은 OpenCV 내의 행렬 연산을 최적화시키는데 필요합니다.


$ sudo apt-get install libatlas-base-dev

$ sudo apt-get install gfortran


  마지막으로 OpenCV를 파이썬으로 사용할 수 있도록 파이썬 헤더를 설치합니다.


sudo apt-get install python2.7-dev

$ sudo apt-get install python3-dev


  여기까지 하시면 OpenCV를 설치할 준비가 끝납니다.



 OpenCV 설치하기

  이제 OpenCV를 설치해보도록 하겠습니다. 

 OpenCV 공식 GitHub 저장소에서 3.3.0버전을 설치할 것입니다. 아래와 같이 wget 명령을 이용해 소스파일을 다운 받습니다.


$ cd ~

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

$ unzip opencv.zip


  추가 라이브러리인 contrib도 다운로드 받습니다.


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

$ unzip opencv_contrib.zip


  PIP를 업데이트합니다.


wget https://bootstrap.pypa.io/get-pip.py

$ sudo python get-pip.py

$ sudo python3 get-pip.py


  가상환경 툴을 설치합니다. 가상환경이란, 기본 설정과 독립된 환경을 만들어서 전체 환경에 영향을 미치지 않고, 가상환경에서만 작업함으로써, 의도치 않게 전체 환경에 영향을 미치는 것을 피하기 위함입니다.


sudo pip install virtualenv virtualenvwrapper

$ sudo rm -rf ~/.cache/pip


  가상환경을 사용하기 위해 ./~profile 파일을 수정해야 합니다. nano로 수정할 수도 있지만, 아래 명령을 사용하면 텍스트 에디터에 들어갈 필요 없이 터미널에서 ./~profile의 끝에 원하는 내용을 추가할 수 있습니다.


$ echo -e "\n# virtualenv and virtualenvwrapper" >> ~/.profile

$ echo "export WORKON_HOME=$HOME/.virtualenvs" >> ~/.profile

$ echo "source /usr/local/bin/virtualenvwrapper.sh" >> ~/.profile


  위에 입력한 내용을 적용하기 위해 ~/.profile 파일을 실행시켜줍니다.


$ source ~/.profile


  이제 가상환경을 만들어줍니다. 원문에서는 python2와 3에서하는 방법 모두를 알려주는데, 혼동의 여지가 있으므로 여기서는 2만 보여드리도록 하겠습니다. python3로 설치하기 원하시는 분들은 포스트의 처음 부분에 있는 링크로 가서 참고하시기 바랍니다.


mkvirtualenv cv -p python2


  가상환경을 만들었으니 이제 가상환경으로 들어가보도록하겠습니다.  


$ source ~/.profile

$ workon cv


  가상환경이 제대로 만들어졌다면 터미널이 아래와 같이 바뀔 것입니다.


(cv) pi$raspberrypi:~ $


  가상환경이 만들어졌으니 마지막으로 가상환경 안에 numpy를 설치하도록 하겠습니다.


(cv) $ pip install numpy


  이제 빌드를 시작합니다.


(cv) $ cd ~/opencv-3.3.0/

(cv) $ mkdir build

(cv) $ cd build

(cv) $ 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.3.0/modules \

-D BUILD_EXAMPLES=ON ..

(cv) $ make


  여기서부터 시간이 꽤 오래걸립니다. 라즈베리파이는 덮어놓고 다른 일을 하시기를 추천드립니다.


  빌드가 완료되었으면, 이제 인스톨을 합니다.


$ sudo make install

$ sudo ldconfig


  인스톨까지 끝났으면 아래 명령으로 OpenCV bindings를 cv 가상환경과 sym-link하면 됩니다.


$ cd ~/.virtualenvs/cv/lib/python2.7/site-packages/

$ ln -s /usr/local/lib/python2.7/site-packages/cv2.so cv2.so


  설치가 완료되었으면 파이썬으로 들어가서 아래와 같이 cv2를 가져와서 설치가 올바르게 되었는지 확인합니다.


python

>>> import cv2

>>> cv2.__version__

'3.3.0'

>>>


  위와 같이 import cv2를 했을 때 아무 에러가 안나고 cv2.__version__을 했을 때 '3.3.0'이 뜬다면 설치가 잘 된것입니다.

  다음 시간에는 간단한 예제를 만들어서 실제 영상처리를 해보도록 하겠습니다.



▶아래 플러스 친구 버튼을 통해 다양한 정보와 교제 자료 및 이벤트등의 소식을 받아보실 수 있습니다.



jdjddd 2017-11-24 (금) 14:07 1년전
make 도중
87%에서 Building CXX object modules/python2/CMakeFiles/opencv_python2.dir/__/src2/cv2.cpp.o 에서 멈추는데 어디가문제일까요
주소
dlwndiqq 2019-10-03 (목) 13:22 1개월전
make 도중 40%쯤에서 계속 멈추는데 어떤게 문제인가요??
주소

모바일 버전으로 보기