컴퓨터비전의 대표 라이브러리 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를 잘 검출하고 있습니다.
도움이 됐으면 좋겠습니다.
감사합니다.
'Embedded' 카테고리의 다른 글
젯슨 나노 jetson nano 한글 입력 설정 (0) | 2023.07.21 |
---|---|
젯슨 나노 Jetson nano Vino VNC 원격 데스크톱 제어 설정 (0) | 2023.07.20 |
젯슨 나노 개봉 및 초기 세팅 jetson nano (0) | 2023.07.18 |
라즈베리파이 tensorflow lite로 카메라 실시간 image classification, object detection (0) | 2023.07.18 |
라즈베리파이 파이썬 3.7 설치 (0) | 2023.07.14 |