개발자/라즈베리파이4

라즈베리파이4 opencv 컴파일 설치 방법

지구빵집 2022. 6. 15. 19:14
반응형

 

 

 

잘 될 때까지 한다. 그게 진짜 행동하는 사람과 흉내만 내는 사람과 다른 점이다. 오늘 운동 했다면 내일도 하고, 일주일 뒤에도 하고, 한 달 뒤에도 하고, 내년에도 한다. 행동은 그런 것이다. 가끔 게으름을 피고, 낭비도 하고, 실패도 하지만 그렇다고 우리가 게으른 사람이라든가 실패하는 사람은 아니다. 운동하는 사람으로 살아가는 것을 보여주는 것은 계속 운동하는 시간을 내고, 운동을 실제로 하는 것 뿐이다.

 

몇 번 컴파일을 하고, Git 에서 빌드 파일을 받아 설치하고, 소스파일을 받아 10시간이 넘는 컴파일 시간을 기다리며 설치했지만 어찌된건지 늘 안되었다. 오늘도 검색을 해보다가 관련 포스팅을 찾았다. 다시 했는데 결국은 성공했다. python3 로는 import cv2 가 실행되지 않았고 python2 로만 예제를 실행하여 결과를 보았다. 당연한 거 아닌가? 스스로 포기만 하지 않는다면 결국 남는 것은 성공밖에 없다. 삶을 게임처럼 살아간다. 어떤 게임이든지 다 이긴다.

 

혹시 컴파일 방법이 아닌 가장 빠른 설치를 원한다면 다음 링크를 참고해 설치한다. 나름 한 방에 설치한 포스팅 글입니다.

 

Raspberry pi에 OpenCV 가장 빠르게 설치하는 방법 

 

Raspberry pi에 OpenCV 가장 빠르게 설치하는 방법

Raspberry pi4 에 OpenCV 가장 빠르게 설치하는 방법 영상 처리에 필수적으로 사용되는 라이브러리 OpenCV OpenCV (Open Source Computer Vision)에 대하여 간단하게 말씀드리면 인텔에서 제공하는 다양한 영상 처

fishpoint.tistory.com

 

 

지금까지 설치한 버전 중에 가장 탁월하게 잘 설치된 버전입니다. 문제가 있었다면 마지막에 실행할 때 Python3 가 아니라 Python2로 잘 돌아간다는 점만 다릅니다. 아마도 python3 로도 잘 실행될지 않을 까 하는 감이 듭니다. 그만큼 잘 설치가 되니까요. 천천히 따라하시면 됩니다. 항해를 시작합니다. ^^

 

설치는 라즈베피파이4 8G 보드입니다. Python3 설치되어 있습니다. 파이선3 버전은 아래와 같이 $python3 로 실행하면 버전을 볼 수 있습니다.

 

pi@raspberrypi:~/opencv/samples/python $ python3
Python 3.7.3 (default, Jan 22 2021, 20:04:44)
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>>

 

오늘 설치 방법은 opencv 패키지를 Gitd으로 다운 받아 모두 컴파일하고 링크 설치하는 방법입니다. 두 시간 정도 걸립니다. 각 설치 단계가 많으니 천천히 따라하시기 바랍니다. 추가 설명은 조금씩 필요한 곳에서 하겠습니다. 입력 명령어는 코드와 덱스트로 이중으로 올립니다. 타이핑 정확하게 하시기 바랍니다.

 

다음 명령어로 라즈베리파이 운영체제를 업데이트 합니다.

 

sudo apt-get update

sudo apt-get upgrade

 

그 다음 아래 명령어를 입력합니다.

 

sudo apt install cmake build-essential pkg-config git

 

아래는 실행 창 메시지입니다.

 

pi@raspberrypi:~ $ sudo apt install cmake build-essential pkg-config git
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다
상태 정보를 읽는 중입니다... 완료
build-essential is already the newest version (12.6).
git is already the newest version (1:2.20.1-2+deb10u3).
pkg-config is already the newest version (0.29-6).
cmake is already the newest version (3.16.3-3~bpo10+1).
다음 패키지가 자동으로 설치되었지만 더 이상 필요하지 않습니다:
  dconf-cli gir1.2-ibus-1.0 ibus-clutter ibus-gtk ibus-gtk3 ibus-qt4 libclutter-1.0-0 libclutter-1.0-common libclutter-imcontext-0.1-0
  libclutter-imcontext-0.1-bin libcogl-common libcogl-pango20 libcogl-path20 libcogl20 libibus-1.0-5 libibus-qt1
Use 'sudo apt autoremove' to remove them.
0개 업그레이드, 0개 새로 설치, 0개 제거 및 0개 업그레이드 안 함.

 

실행하면 위와 같은 메시지가 나오면서 설치합니다. 공간이 필요하다고 나오면 y 를 입력하고 설치를 진행합니다. 화면이 길어 이후에는 나타내지 않습니다.

 

opencv 컴파일에 필요한 모든 패키지를 설치하는 단계입니다. 아래 명령어를 입력합니다. 혹시 에러가 나는 경우에는 ', /, - 문자를 제대로 넣어주시면 됩니다. 카피 복사 중에 이상한 코드로 대체되어 들어가는 경우가 있습니다. 

 

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

 

아래 명령어를 차례대로 입력합니다.

 

sudo apt install libgtk-3-dev libqtgui4 libqtwebkit4 libqt4-test python3-pyqt5

 

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

 

sudo apt install libhdf5-dev libhdf5-103

 

sudo apt install python3-dev python3-pip python3-numpy

 

이제 모든 패키지를 설치했고, 컴파일 작업을 실행합니다. 우선 컴파일 환경 설정을 위해 파일을 열어 편집합지다. 여기서는 가벼운 nano 편집기를 사용합니다. 아래 명령어를 입력해 파일을 열어줍니다. 커서를 움직여 정해진 위치에서 수정을 합니다. 수정 완료하고 빠져 나올 때는 ctrl-x 누르고, 저장하겠냐고 물어오면 y를 누르고 같은 파일 이름이므로 그냥 enter를 입력하면 됩니다.

 

sudo nano /etc/dphys-swapfile

 

명령어 입력 후 nano 편집기에서 보이는 흰색 끌씨 CONF_SWAPSIZE=100 에서 100을 2048로 변경합니다. 저장하고 빠져 나옵니다.  

 

나중에 다시 원상태로 바꾸얼 줄겁니다. 잘 기억하고 계세요.

 

 

잘 수정하셨으면 변경 사항이 적용되도록 파일을 재시작 해줍니다.

 

sudo systemctl restart dphys-swapfile

 

이제 아래 명령을 사용하여 필요한 두 파일을 그대로 카피합니다.

 

git clone https://github.com/opencv/opencv.git

git clone https://github.com/opencv/opencv_contrib.git

 

모든 패키지들을 컴파일 합니다. opencv 아래에 build 폴더를 만들고 이동합니다.

 

mkdir ~/opencv/build

cd ~/opencv/build

 

아래 명령어를 입력한귀 > 표시 다음에 아래 명령어를 입력합니다. > 는 자동으로 표시되니 명령어만 잘 입력하면 됩니다.

 

cmake -D CMAKE_BUILD_TYPE=RELEASE \
> -D CMAKE_INSTALL_PREFIX=/usr/local \
> -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \
> -D ENABLE_NEON=ON \
> -D ENABLE_VFPV3=ON \
> -D BUILD_TESTS=OFF \
> -D INSTALL_PYTHON_EXAMPLES=OFF \
>-D OPENCV_ENABLE_NONFREE=ON \
> -D CMAKE_SHARED_LINKER_FLAGS=-latomic \
> -D BUILD_EXAMPLES=OFF ..

 

 

 

이제 모두 컴파일 될 때까지 기다립니다. 시간이 한 시간 이상 걸립니다. 설치가 완료되면 아래 명령어를 입력해 줍니다. 차례로 한 줄씩 입력합니다.

 

make -j$(nproc) 

sudo make install

sudo ldconfig (알파벳 L 소문자)

 

이제 다시 아까 파일을 100을 2048로 바꾼 것을 원상태로 돌려줍니다. 아래 명령어로 파일을 열어 2048을 100으로 수정하여 저장하고 빠져 나옵니다. 그리고 마찬 가지로 재실행 해줍니다.

 

sudo nano /etc/dphys-swapfile

sudo systemctl restart dphys-swapfile

 

이제 모든 설치를 완료했습니다. 그럼 잘 설치 되었는지 버전을 확인해 보겠습니다.

 

python3 를 실행시키고 >> 프롬프트에서 다음 명령어를 입력합니다.

 

>>
>>import cv2
>>cv2.__version__

 

저는 python3 에서 import cv2 할 때 모듈을 찾을 수 없다고 에러가 나와 python 으로 실행해서 했더니 잘 나옵니다. 아래 화면을 참고하세요.  긴 시간 고생하셨습니다. 참고 링크에 나와 있는 포스트가 원본입니다. 아주 감사합니다. 즐거운 개발 되세요.

 

python 으로 실행

 

 

에효~ 힘들다. 이젠 놀러 나가자. ^^

 

 

참고

라즈베리파이 opencv 4.5.1버전 실패없이 한번에 설치하기 

 

 

반응형