Processor

【라즈베리파이4】 Trixie OpenCV 4.10.0 빌드 및 설치

작성자 임베디드코리아 작성일25-12-28 16:00 조회101회 댓글0건
< Trixie OpenCV 4.8.1 빌드 및 설치 >

■ 라즈베리파이 스펙
  - 라즈베리파이4 이상
  - RAM 4GB 이상
  - PWM PAN
  - Device Mart PD-Adaptor

■ 라즈베라파이 OS : Trixie

1. 저장소 정보를 최신으로 맞추어 준다.

  1) 시스템 업데이트
      $ sudo apt update
  2) 시스템 업그레이드.
      $ sudo apt upgrade
  3) 필요없는 패키지 제거
    $ sudo apt autoremove

2. 기존 설치된 버전 제거
  1) 기존에 OpenCV를 설치한 적이 있는지 확인 (아래의 경우는 설치된 적이 없는경우)
      $ pkg-config --modversion opencv
Package opencv was not found in the pkg-config search path.
Perhaps you should add the directory containing `opencv.pc'
to the PKG_CONFIG_PATH environment variable
Package 'opencv', required by 'virtual:world', not found

  2) 설치된 경우에는 설치된 버전이 표시된다.
      특정버전이 표시된 경우 아래의 명령을 통해서 기존에 설치된 opencv를 제거해주어야 한다.
      $ sudo apt-get purge  libopencv* python-opencv
      $ sudo apt-get autoremove
      $ sudo find /usr/local/ -name "*opencv*" -exec rm  {} \;

3. 관련 패키지 설치
    1) Opencv가 한번도 설치되지 않은경우를 제외하고 패키지를 삭제했다면
      다시한번 시스템을 업데이트와 업그레이드를 한다.
      $ sudo apt update
      $ sudo apt upgrade

    2) 컴파일러 및 유틸리티등 빌드 및 향후 사용하게될 유틸리티와 라이브러리를 한번에 설치한다.
        - 관련 패키지에서 최근 라즈베리파이 OS에서 변경사항이 있다.
        - 2개의 패키지가 변경되었으므로, 관련하여 패키지를 수정한다.
          --> 대상 패키지는 libtbb2, libdc1394-22-dev이며
              각각 libtbbmalloc2와 libdc1394-dev로 변경한다.
$ sudo apt install build-essential cmake git unzip pkg-config
$ sudo apt install libjpeg-dev libtiff5-dev libpng-dev libavcodec-dev libavformat-dev
$ sudo apt install libswscale-dev libxvidcore-dev libx264-dev
$ sudo apt install libxine2-dev libv4l-dev v4l-utils libgstreamer1.0-dev
$ sudo apt install gstreamer1.0-gtk3 libgstreamer-plugins-base1.0-dev gstreamer1.0-plugins-good
$ sudo apt install gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-gl libgtk-3-dev
$ sudo apt install libgtk2.0-dev libcanberra-gtk* gfortran libeigen3-dev
$ sudo apt install python3-dev python3-numpy python3-pip
$ sudo apt install libtbbmalloc2 libtbb-dev libdc1394-dev
$ sudo apt install libopenblas-dev libblas-dev liblapack-dev  libhdf5-dev
$ sudo apt install libprotobuf-dev libgoogle-glog-dev libgflags-dev
$ sudo apt install protobuf-compiler libfreetype6-dev libharfbuzz-dev
// libatlas-base-dev은 bookworm에서는 이상없으나 Trixie 에서는 libatlas3-base로 한다.
$ sudo apt-get install libatlas-base-dev
$ sudo apt-get install libatlas3-base
 
 ★ 패키지 설치 화면에서 y를 눌러 패키지 설치를 진행한다.

3. OpenCV 빌드와 설치

  1) 작업디렉터리 생성
      $ cd ~
      $ mkdir -p WORK/opencv
      $ cd WORK/opencv

    2) OpenCV 및 확장패키지 소스 다운로드
      $ w get -O opencv-4.10.0.zip https://github.com/opencv/opencv/archive/4.10.0.zip
      $ w get -O opencv_contrib-4.10.0.zip https://github.com/opencv/opencv_contrib/archive/4.10.0.zip

    3) 압축해제
        - 각각 압축파일을 풀어준다.
        - sync 명령어는 시스템 버퍼에 있는 데이터를 디스크에 저장하는 명령어이다.
        $ unzip opencv-4.10.0.zip
        $ sync
        $ unzip opencv_contrib-4.10.1.zip
        $ sync

    4) 빌드디렉터리 생성 - 빌드를 진행할 디렉터리를 만들어 주고 이동한다.
        $ cd  opencv-4.10.0
        $ mkdir build
        $ cd build

      5) 빌드 설정 -  cmake를 이용하여 빌드 환경을 설정한다.
$ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_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=OFF -D WITH_QT=OFF -D WITH_GTK=ON –D WITH_FREETYPE=ON -D WITH_OPENGL=ON -D OPENCV_ENABLE_NONFREE=ON -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-4.10.0/modules -D WITH_V4L=ON -D WITH_FFMPEG=ON -D WITH_XINE=ON -D ENABLE_PRECOMPILED_HEADERS=OFF -D BUILD_NEW_PYTHON_SUPPORT=ON -D OPENCV_GENERATE_PKGCONFIG=ON -D PYTHON3_PACKAGES_PATH=/usr/lib/python3/dist-packages ../

 
      ★ 모두 한줄입니다.
--  Java:
    --    ant:                          NO
    --    Java:                          NO
    --    JNI:                            NO
    --    Java wrappers:          NO
    --    Java tests:                  NO
--
--  Install to:                    /usr/local
-- -----------------------------------------------------------------
--
-- Configuring done
-- Generating done
-- Build files have been written to: /home/pi4/WORKSPACEs/OpenCV/opencv-4.8.1/build

  6) 빌드하기
      $ time  make  -j4            또는    $ time make -j$(nproc)
        - time는 작업시간이 나옴, -j4는 쿼드코어

        real    96m33.227s <---- 빌드에 소비된 시간은 96분33초 정도이다.

      * 빌드 진행시 CPU 점유율 100%, 온도 최대 67도까지 상승..
        --> 팬이 엄청 회전하는 데도 저전압 메시지 발생되도 계속 진행
   
  7) 설치 및 ld등록
      ① 빌드가 완료되면 시스템에 설치한다.
          $ sudo make install
      ② 등록
          $ sudo ldconfig

--< 카메라 예제 >-----------------------------------------
 $ sudo vi /boot/firmware/config.txt
camera_auto_detect=0    <---- 설정 확인
$ vi RasPIcamera.py
import cv2

capture = cv2.VideoCapture(0)
capture.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
capture.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)

while cv2.waitKey(33) < 0:
    ret, frame = capture.read()
    cv2.imshow("Video Frame", frame)

capture.release()
cv2.destroyAllWindows()

---------------------------------------------------------------------
import cv2

# Open the default camera device (0 is usually the default webcam)
capture = cv2.VideoCapture(0)

if not capture.isOpened():
    print("Cannot open the camera.")
    exit()

while True:
    # Read frame by frame
    ret, frame = capture.read()

    if not ret:
        print("Unable to receive frame.")
        break

    # Display the read frames in the 'Camera Feed' window
    cv2.imshow('Camera Feed', frame)

    # Press 'q' key to exit
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# Release the camera capture object and close all windows
capture.release()
cv2.destroyAllWindows()