이전에 윈도우에서 실행하는 파이썬으로 OpenCV에 대해서 다뤘다.
https://ansan-survivor.tistory.com/category/%ED%8C%8C%EC%9D%B4%EC%8D%AC%28python%29/Python%20OpenCV
OpenCV는 C언어 또는 Python등의 언어로 카메라에 각종 여러 프로그래밍을 넣어서 사물을 탐지하고 인식하는 등의 비전시스템을 개발 할 수 있는 오픈소스를 제공하는 라이브러리 이다.
라즈베리파이의 리눅스OS에서도 역시 이 오픈소스인 OpenCV를 넣어서 개발을 할 수 있다.
그러기 위한 개발환경을 구축하는 방법이다.
아래 순서를 따라하면 된다.
1. apt-get 최신버전 패치
$ sudo apt-get update -y
$ sudo apt-get upgrade -y
2. 컴파일링을 위한 패키지 설치
$ sudo apt-get install -y build-essential cmake
$ sudo apt-get install -y libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev
// for videos
$ sudo apt-get install -y libavcodec-dev libavformat-dev libswscale-dev libxvidcore-dev libx264-dev libxine2-dev
// 주의 1(숫자)이 아니고 l(알파벳)임
$ sudo apt-get install -y libv4l-dev v4l-utils
$ sudo apt-get install -y libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
3. Opencv GUI 환경 설치 (옵션 패키지)
// tk 2.0 설치
$ sudo apt-get install -y libgtk2.0-dev
// tk 3.0 설치
$ sudo apt-get install -y libgtk-3-dev
// qt 4.0 설치
$ sudo apt-get install -y libqt4-dev
4. OpenGL 지원패키지 설치
$ sudo apt-get install -y mesa-utils libgl1-mesa-dri libgtkgl2.0-dev libgtkglext1-dev
5. 파이썬에 필요한 OpenCV관련 패키지 설치
$ sudo apt-get install -y libatlas-base-dev gfortran libeigen3-dev
$ sudo apt-get install -y python2.7-dev python3-dev python-numpy python3-numpy
6. home디렉터리에 새로운 디렉터리 생성 후 이동
// 현재 위치에 opencv 라는 디렉터리 생성
mkdir opencv
// 해당 디렉터리로 이동
cd opencv
7. opencv 필요 패키지 다운로드 및 압축해제
// opencv 설치패키지 다운로드
$ wget -O opencv.zip https://github.com/opencv/opencv/archive/4.1.0.zip
// 압축 해제
$ unzip opencv.zip
// opencv_contrib 설치패키지 다운로드
$ wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.1.0.zip
// 압축 해제
$ unzip opencv_contrib.zip
( 옵션 ) 압축이 잘 풀렸나 확인. 아래와 같이 디렉터리 2개가 생성되어야 한다.
$ ls
8. 압축을 푼 디렉터리로 이동하여 build 디렉터리 생성 후 이동
$ cd opencv-4.1.0
$ mkdir build
$ cd build
9. 해당 디렉터리에서 OpenCV 컴파일 설정하기
$ cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTAL_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_EXTRA_MODULES_PATH=../../opencv_contrib-4.1.0/modules ?\
-D WITH_V4L=ON ?\
-D WITH_FFMPEG=ON ?\
-D WITH_XINE=ON ?\
-D BUILD_NEW_PYTHON_SUPPORT=ON ?\
-D OPENCV_GENERATE_PKGCONFIG=ON ../
10. Swap 멀티코어 사용, 메모리 부족 대비
- nano 편집기로 해당 파일을 연다
sudo nano /etc/dphys-swapfile
- 기존의 것은 주석처리하고 사이즈를 20배(2048)으로 늘린다.
#...
# CONF_SWAPSIZE=100
CONF_SWAPSIZE=2048 // <= 메모리를 20배 확장
...
11. 변경한 SWAP 업데이트
// 이전 메모리 확인
$ free
// 스왑실행
$ sudo /etc/init.d/dphys-swapfile restart
// 이후 메모리 확인
$ free
12. 컴파일 실행 (여기에서 엄청 오래 걸림 컴퓨터에 따라 몇시간? 도 걸림)
$ make
13. 컴파일 결과물을 설치
$ sudo make install
14. OpenCV 라이브러리를 찾을 수 있도록 명령
// l(알파벳) 임.
$ sudo ldconfig
15. 설치가 끝났으니 다시 메모리를 100으로 원상 복귀
$ sudo nano /etc/dphys-swapfile
아까 주석처리한 100을 해제하고, 2048을 주석처리, 그리고 저장.
16. Swap 재시작 변경 확인
// swap 재시작
$sudo /etc/init.d/dphys-swapfile restart
// 확인
$free
이제 라즈베리파이에 OpenCV를 설치했다.
Python코드를 작성하고, 카메라를 연결하여 사용할 수 있다.
https://link.coupang.com/a/j3JK2
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
https://link.coupang.com/a/j3JNR
'리눅스 > Raspbian 라즈비안 (Raspberry Pi 라즈베리파이)' 카테고리의 다른 글
[Raspberry Pi] 라즈베리파이 와치독(watchdog) 설정하기 (시스템 에러 감지 후 재부팅) (0) | 2022.02.25 |
---|---|
[Raspberry Pi] 라즈베리파이 자동 시작프로그램 등록하기 (0) | 2022.02.22 |
[Raspberry Pi] 라즈베리파이 숨겨진 와이파이 연결하기 (0) | 2022.02.22 |
[Raspberry Pi] 라즈베리파이 한글 깨짐 방지 패치 (0) | 2022.02.22 |
[Raspberry Pi] 라즈베리파이 화면 캡쳐 어플리케이션 (0) | 2022.02.22 |