Embedded

라즈베리파이3 OpenCV 설치

Bicentennial 2023. 6. 24. 01:53

 

컴퓨터비전의 대표 라이브러리 OpenCV를 라즈베리파이 3에 설치해 보겠습니다.

 

여러 시도 끝에 다음과 같은 방법으로 성공하여 기록해 둡니다.

 

 

 

터미널에 우선 설치의 국룰, update와 upgrade를 수행해 줍니다.

 

pi@rasberrypi:~ $ sudo apt-get update
pi@rasberrypi:~ $ sudo apt-get upgrade

 

필요 라이브러리를 설치합니다. 줄 바꿈 없이 한 번에 다 입력해도 됩니다.

 

pi@rasberrypi:~ $ sudo apt-get install build-essential cmake
pi@rasberrypi:~ $ sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev libavcodec-dev -y
libavformat-dev libswscale-dev libxvidcore-dev libx264-dev libxine2-dev libv4l-dev -y
v4l-utils libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgtk2.0-dev mesa-utils -y 
libgl1-mesa-dri libgtkgl2.0-dev libgtkglext1-dev libatlas-base-dev gfortran libeigen3-dev

파이썬 개발환경과 넘파이를 설치합니다.

pi@rasberrypi:~ $ sudo apt-get install python2.7-dev python3-dev python-numpy python3-numpy

 

OpenCV 폴더를 만들어주고 설치파일을 웹에서 받아와 압축을 풀어줍니다.

pi@rasberrypi:~ $ mkdir opencv
pi@rasberrypi:~ $ cd opencv

pi@rasberrypi:~/opencv $ wget -O opencv.zip https://github.com/opencv/opencv/archive/4.4.0.zip 
pi@rasberrypi:~/opencv $ unzip opencv.zip

pi@rasberrypi:~/opencv $ wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.4.0.zip 
pi@rasberrypi:~/opencv $ unzip opencv_contrib.zip

그러면 opencv-4.4.0 폴더가 생깁니다.

 

빌드 준비를 합니다.

 

pi@rasberrypi:~/opencv $ cd opencv-4.4.0
pi@rasberrypi:~/opencv/opencv-4.4.0 $ mkdir build
pi@rasberrypi:~/opencv/opencv-4.4.0 $ cd build

pi@rasberrypi:~/opencv/opencv-4.4.0/build $ 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_ENABLE_NONFREE=ON \ 
-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-4.4.0/modules \ 
-D WITH_V4L=ON \ 
-D WITH_FFMPEG=ON \ 
-D WITH_XINE=ON \ 
-D ENABLE_PRECOMPILED_HEADERS=OFF \ 
-D BUILD_NEW_PYTHON_SUPPORT=ON \ 
-D OPENCV_GENERATE_PKGCONFIG=ON ../

복붙 하면 중간에 끊긴 채로 저절로 실행해 버려서 오류가 발생합니다. 일일이 타이핑하는 게 가장 정확하고 빠릅니다...

 

 

컴파일하기 전에 메모리확장이 필요합니다. 안 그러면 라즈베리파이가 뻗습니다.

 

pi@rasberrypi:~/opencv/opencv-4.4.0/build $ sudo nano /etc/dphys-swapfile

아래 파일을 열고 커서를 이동하여 중간에 CONF_SWAPSIZE를 100에서 2048로 바꿔줍니다. 

Ctrl+X 키로 저장하면서 파일을 닫을 수 있습니다.

 

리스타트를 합니다.

 

pi@rasberrypi:~/opencv/opencv-4.4.0/build $ sudo /etc/init.d/dphys-swapfile restart

 

이제 build폴더에서 컴파일을 수행합니다.

 

pi@rasberrypi:~/opencv/opencv-4.4.0/build $ make -j4

 

 

저는 0%에서 100%까지 가는데 3시간 반~ 4시간 정도 소요됐습니다.

 

완료되면 install 합니다.

 

pi@rasberrypi:~/opencv/opencv-4.4.0/build $ sudo make install

 

공유 라이브러리 캐시 설정

pi@rasberrypi:~/opencv/opencv-4.4.0/build $ sudo ldconfig

 

이전에 메모리를 다시 원래값으로 재설정합니다.

 

pi@rasberrypi:~/opencv/opencv-4.4.0/build $ sudo nano /etc/dphys-swapfile

//2048->100으로 변경 후 저장

pi@rasberrypi:~/opencv/opencv-4.4.0/build $ sudo /etc/init.d/dphys-swapfile restart

설치가 완료 됐습니다.

 

아무 이미지 파일을 사용하여 테스트해도 되고, 저는 연결된 picamera를 사용하여 테스트해 보겠습니다.

 

파일탐색기에서 다음 경로로 가면 각종 이미지 처리 관련 예제 코드파일들이 있습니다.

 

/home/pi/opencv/opencv-4.4.0/samples/python

 

edge 검출 예제를 실행해 보겠습니다.

 

Execute in Terminal은 프롬프트 명령어로 바로 실행하는 것이고, Open을 누르면 Geany IDE로 코드를 확인할 수 있습니다.

 

현재 작업 중인 PC 화면의 edge를 잘 검출하고 있습니다.

 

도움이 됐으면 좋겠습니다.

 

감사합니다.