OpenCV(Open Source Computer Vision Library)는 오픈 소스 컴퓨터 비전 라이브러리로 C++, Python 및 Java에 대한 바인딩이 있습니다. 의료 이미지 분석, 스트리트 뷰 이미지 연결, 보안 감시 비디오, 얼굴 감지 및 인식, 움직이는 물체 추적, 3D 모델 추출 등 매우 광범위한 애플리케이션에 사용됩니다.
OpenCV는 멀티 코어 프로세싱을 활용할 수 있으며 실시간 작업을 위한 GPU 가속 기능을 제공합니다.
OpenCV를 Rasberry Pi에 설치하는 방법을 설명합니다.
필수 조건
라스베리 파이에 라스비언이 설치되어 있을 거라 추정합니다
Raspbian Repository에서 OpenCV를 설치
OpenCV Python 모듈은 표준 Raspbian 저장소에서 사용할 수 있습니다. 쓰기 시 저장소의 버전은 최신 버전이 아닌 3.2입니다.
OpenCV Python 모듈을 설치하려면 다음 명령을 실행합니다.
sudo apt update
sudo apt install python3-opencv
위의 명령은 OpenCV를 실행하는 데 필요한 모든 패키지를 설치합니다.
설치를 확인하려면 cv2 모듈을 가져오고 OpenCV 버전을 인쇄하십시오.
python3 -c "import cv2; print(cv2.__version__)"
# 3.2.0
OpenCV를 Python 2 바인딩과 함께 설치하려면 python-openCV 패키지를 설치합니다.
소스에서 OpenCV를 설치
OpenCV를 설치하는 권장 방법은 소스에서 라이브러리를 빌드하는 것입니다. 이렇게 하면 빌드 옵션을 완벽하게 제어할 수 있으며 OpenCV가 시스템에 최적화됩니다.
먼저 스왑 공간을 늘려 메모리 문제로 인한 컴파일 중단을 방지합니다.
sudo nano /etc/dphys-swapfile
CONF_SWAPSIZE 값을 기본값 100에서 1024로 변경합니다.
# /etc/dphys-swapfile
CONF_SWAPSIZE=1024
파일을 저장하고 다음 명령을 실행하여 변경 내용을 적용합니다.
sudo /etc/init.d/dphys-swapfile restart
이제 OpenCV 구축을 시작할 수 있습니다. 먼저 패키지 인덱스를 업데이트하고 빌드 도구 및 필수 종속성을 설치합니다.
sudo apt update
sudo apt install build-essential cmake git pkg-config libgtk-3-dev "libcanberra-gtk*"
sudo apt install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev
sudo apt install libjpeg-dev libpng-dev libtiff-dev gfortran openexr libatlas-base-dev opencl-headers
sudo apt install python3-dev python3-numpy libtbb2 libtbb-dev libdc1394-22-dev
빌드 디렉토리를 생성하고 해당 디렉토리로 이동하여 Github에서 OpenCV 및 OpenCV 기여 저장소를 복제합니다.
mkdir ~/opencv_build && cd ~/opencv_build
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
쓸 때 GitHub 저장소의 기본 버전은 버전 4.1.1입니다. 이전 버전의 OpenCV를 설치하려면 opencv 및 opencv_contribute 디렉토리로 이동하여 untit checkout <opencv-version>을 실행합니다.
저장소가 복제되면 임시 빌드 디렉토리를 생성하고 변경합니다.
mkdir -p ~/opencv_build/opencv/build && cd ~/opencv_build/opencv/build
cmake를 사용하여 OpenCV 빌드 구성을 설정합니다.
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_C_EXAMPLES=OFF \
-D INSTALL_PYTHON_EXAMPLES=OFF \
-D OPENCV_GENERATE_PKGCONFIG=ON \
-D ENABLE_NEON=ON \
-D OPENCV_EXTRA_EXE_LINKER_FLAGS=-latomic \
-D ENABLE_VFPV3=ON \
-D BUILD_TESTS=OFF \
-D OPENCV_ENABLE_NONFREE=ON \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_build/opencv_contrib/modules \
-D BUILD_EXAMPLES=OFF ..
# ...
# -- Configuring done
# -- Generating done
# -- Build files have been written to: /home/pi/opencv_build/opencv/build
make를 실행하여 컴파일 프로세스를 시작합니다.
이 과정은 라스베리 파이 모델에 따라 약 1 - 2시간이 소요됩니다. 리소스를 사용할 수 없어 컴파일에 실패하는 경우 make 명령을 다시 실행하면 프로세스가 중지된 위치부터 계속됩니다.
완료되면 다음과 같은 것을 볼 수 있습니다.
make -j4
# ...
# [100%] Linking CXX shared module ../../lib/python3/cv2.cpython-35m-arm-linux-gnueabihf.so
# [100%] Built target opencv_python3
마지막 단계는 컴파일된 OpenCV 파일을 설치하는 것입니다.
sudo make install
# ...
# -- Installing: /usr/local/bin/opencv_version
# -- Set runtime path of "/usr/local/bin/opencv_version" to "/usr/local/lib"
OpenCV가 성공적으로 설치되었는지 확인하려면 다음 명령을 입력하면 OpenCV 버전이 표시됩니다.
C++ 라이브러리
pkg-config --modversion opencv4
# 4.1.1
파이썬 라이브러리
python3 -c "import cv2; print(cv2.__version__)"
# 4.1.1-pre
정리
SD 카드에 사용 가능한 공간이 많지 않은 경우 소스 파일을 삭제합니다.
rm -rf ~/opencv_build
스왑 사용량이 많으면 SD 카드가 손상될 수 있습니다.
스왑 공간을 원래 크기로 다시 변경합니다.
CONF_SWAPSIZE 값을 100으로 편집합니다.
# /etc/dphys-swapfile
CONF_SWAPSIZE=100
파일을 저장하고 변경 사항을 활성화합니다.
sudo /etc/init.d/dphys-swapfile restart
Rasberry Pi 보드에 OpenCV를 설치하는 방법을 보여드렸습니다. 소스로부터 OpenCV를 구축하면 더 많은 유연성을 얻을 수 있으므로 OpenCV를 설치할 때 이 옵션을 사용하는 것이 좋습니다.
'SW > 리눅스' 카테고리의 다른 글
Debian 9 Stretch에서 Debian 10 Buster 업그레이드 방법, 예제, 명령어 (0) | 2021.10.23 |
---|---|
Linux : Groups 나열 방법, 예제, 명령어 (0) | 2021.10.22 |
Linux : Umask 명령어, 사용 방법, 예제 (1) | 2021.10.20 |
Linux : Less 명령어, 사용 방법, 예제 (0) | 2021.10.19 |
Debian 9 : VLC Media Player 설치 방법, 예제, 명령어 (0) | 2021.10.18 |