본문 바로가기

카테고리 없음

[RaspberryPi][파이썬] 라즈베리파이 OpenCV 4.8 쉬운 설치 방법 최신 버전 libqtgui4 에러 오류

 

 

이번에는 라즈베리파이에 OpenCV 를 설치하는 방법을 설명해드리겠습니다. 이전 버전과 변경된 부분이 많아 우여곡절 끝에 알아낸 방법들입니다.

한글버전으로는 아직 관련 글을 보지 못했습니다. 최초이길 바라면서....

방법 1

 

되는 분들도 있고 안되는 분들도 있을 것 같아요. 이전 버전부터 사용했던 편리한 방법이니 먼저 시도해보세요. 만약 1번 방법이 불안하다 하시면 바로 방법 2를 하시는 것을 권장합니다.

(1) 시스템 업그레이드

시스템 업그레이드를 가끔씩 해 주셔야 합니다.

$sudo apt update
$sudo apt upgrade
 

오늘 라즈베리파이 OS를 다시 설치했는데, 버전은 6.1.21 이고 2023년 4월 3일 버전이네요. update와 upgrade를 했는데 저는 이미 완료가 되어 있습니다.

(2) 필요한 패키지 설치

사실 예전에는 git clone으로 소스를 다운 받은 후 cmake 를 이용하여 설치를 했어야 하는데, 이제는 pip로 바로 설치할 수 있다고 하네요. 그래서 git 같은 패키지는 설치하지 않으셔도 되나 나중을 위해 설치해 주시는게 좋을 것 같습니다.

$ sudo apt install cmake build-essential pkg-config git
 
$sudo apt install libjpeg-dev libtiff-dev libjasper-dev libpng-dev libwebp-dev libopenexr-dev
 

(3) 이미지 및 비디오 포맷 패키지 설치

$sudo apt install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev 
$sudp apt install libxvidcore-dev libx264-dev libdc1394-22-dev 
$sudo apt install libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev
 

(4) OpenCV 인터페이스 설치

이전에는 qt4를 설치하였으나 이번에는 qt4를 지원하지 않고 qt5로 업그레이드 되었네요. 그래서 qt5로 설치를 하셔야 합니다.

$sudo apt install libgtk-3-dev libqt5gui5 libqt5webkit5 libqt5test5 python3-pyqt5
 

(5) 임베디드 디바이스 패키지 설치

$sudo apt install libatlas-base-dev liblapacke-dev gfortran
 

(6) Hierarchical Data Format(HDF5) 데이터 포맷 지원

$sudo apt install libhdf5-dev libhdf5-103
 

(7) pip 설치를 위한 업그레이드

이 업그레이드를 하지 않으면 설치 도중 에러가 발생할 수 있으니 꼭 하시기 바랍니다.

$pip install --upgrade pip
$pip install --upgrade numpy
$pip install --upgrade setuptools wheel
 

(8) OpenCV 설치

OpenCV 와 contrib 설치는 각각 약 1시간씩 걸려요. 그래도 한번에 설치까지 해 주니까 오래 걸리더라도 마음의 여유를 가지고 설치하시면 됩니다.

$pip3 install opencv-python
$pip3 install opencv-contrib-python
 

(9) OpenCV 설치 확인

터미널에서 $python 을 실행시키시고 OpenCV를 import 해 보시면, 버전을 볼 수 있는데.... 저는 버전이 안나오네요.

$pkg-config --modversion opencv 를 해보니까 설치가 제대로 안된 것 같네요.

전 잘 안되네요. 되시는 분들은 그냥 위에처럼 하시고 안되시는 분들은 아래 Guide 대로 설치하시면 됩니다.

 

방법 2

 

자.. 방법 1처럼 pip 로 설치했다가 실패를 했다면 그걸 지우시고 다음 방법으로 하셔야 합니다.

$pip3 uninstall opencv-python

$pip3 uninstall opencv-contrib-python

OpenCV가 4.8.0 버전에 들어오면서 뭔가 좀 바뀐 듯 합니다. 저도 하루종일 컴파일만 하다가 보냈는데, 결국 이전 방법들로는 안됩니다. 아래 사이트에 잘 나와 있습니다.

https://qengineering.eu/install-opencv-on-raspberry-pi.html

 

Install OpenCV on Raspberry Pi - Q-engineering

A thorough guide on how to install OpenCV 4.8.0 on your Raspberry Pi 32-bit Operating System

qengineering.eu

OpenCV 4.8.0 버전은 6월 28일에 Release가 되었고, (제가 6월 29일에 글을 썼었죠..)

 

자.. 그럼 다른 방법으로

소스를 다운 받고 CMAKE를 이용하는 방법으로 해 보겠습니다.

 

(1) 스왑 파일 수정 및 재설정

설치 중 메모리 사용량이 크기 때문에 기본 라즈베리파이 메모리 사이즈로 에러가 날 수 있습니다. OpenCV를 설치하기 위해서는 Total 5.8GB 의 메모리가 필요하고, 따라서 하드의 공간을 메모리로 사용할 수 있도록 설정을 해 줍니다. 스왑 파일을 여시고 만약 RaspberryPi  2GB 짜리라면 SWAPSIZE = 4096으로 하셔야 하고, 4GB 짜리이면 SWAPSIZE = 2048로 변경해 줍니다. 아래와 같이요. 만약 8GB 짜리 라즈베리파이를 사용하신다면 굳이 하실필요 없습니다.

$sudo vi /etc/dphys-swapfile
 

CONF_SWAPSIZE=100  CONF_SWAPSIZE=2048 로 변경하는 예시 입니다.

vi 에디터가 불편하신 분은 탐색기로 직접 위치를 찾아 가셔서 더블클릭 하셔서 수정하셔도 됩니다.

파일이 수정되었다면 적용을 합니다.

$sudo systemctl restart dphys-swapfile
 

메모리 용량을 보시려면 아래와 같이 $free -m 을 치시면 됩니다. 저 두개의 메모리의 합이 (Mem + Swap) 5.8GB 이상이면 됩니다. 전 8GB 짜리 라즈베리파이라서 SWAPSIZE를 변경할 필요는 없네요. 설명을 위해 2048로 바꿨다가 다시 100으로 바꾼 결과 입니다.

(2) GPU 메모리 변경

Raspberry Pi Configuration 에 가셔서 GPU Memory를 128로 변경합니다.

 

(3) 환경 설정 및 설치 완료하기

너무나 훌륭하신 분이 github에 공개하셨는데 install 한번에 하는 bash shell script 파일이 있습니다. 이 파일을 다운 받습니다.

$wget https://github.com/Qengineering/Install-OpenCV-Raspberry-Pi-32-bits/raw/main/OpenCV-4-8-0.sh
 

해당 파일을 다운 받고 $ls -l로 확인해보니 실행 권한이 부족합니다.

실행 권한을 변경해주고 실행을 해 주시면 환경 설정이 끝납니다.

$sudo chmod 755 ./OpenCV-4-8-0.sh
$./OpenCV-4-8-0.sh
 

실행파일 내용을 보면,

(3-1) dependency 있는 패키지들 인스톨 하기

(3-2) OpenCV 다운로드 받기

(3-3) 디렉토리 생성하기

(3-4) CMake configuration 하기

(3-5) OpenCV 빌드 후 뒷정리하기

 

그럼 설치 끝 입니다~!!

아니죠.

(3-6) SWAPSIZE 복원하기

아까 (1) 에서 SWAPSIZE를 변경하신 분은 다시 100으로 복원하시고 재부팅하시면 됩니다.

 

(4) 설치 버전 확인하기

설치가 완료되었으면 버전을 확인해보겠습니다.

터미널에서 python을 실행시키신 후 cv2를 import 하고 버전을 확인하면 됩니다.

$phthon3
>>> import cv2
>>> cv2.__version__