SW/리눅스

Raspberry Pi 3 : OpenCV 설치 방법, 예제, 명령어

얇은생각 2021. 10. 21. 07:30
반응형

OpenCV(Open Source Computer Vision Library)는 오픈 소스 컴퓨터 비전 라이브러리로 C++, Python Java에 대한 바인딩이 있습니다. 의료 이미지 분석, 스트리트 뷰 이미지 연결, 보안 감시 비디오, 얼굴 감지 및 인식, 움직이는 물체 추적, 3D 모델 추출 등 매우 광범위한 애플리케이션에 사용됩니다. 

OpenCV는 멀티 코어 프로세싱을 활용할 수 있으며 실시간 작업을 위한 GPU 가속 기능을 제공합니다.

OpenCV Rasberry Pi에 설치하는 방법을 설명합니다.

 

 

Raspberry Pi 3 : OpenCV 설치 방법, 예제, 명령어

 

 

필수 조건

라스베리 파이에 라스비언이 설치되어 있을 거라 추정합니다

 

 

 

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를 설치할 때 이 옵션을 사용하는 것이 좋습니다.

반응형