콘텐츠로 건너뛰기

빠른 시작 가이드: Ultralytics YOLO11과 함께하는 Raspberry Pi

이 종합 가이드는 Raspberry Pi 장치에 Ultralytics YOLO11을 배포하기 위한 자세한 안내를 제공합니다. 또한 YOLO11의 성능을 이러한 작고 강력한 장치에서 보여주는 성능 벤치마크를 소개합니다.



참고: Raspberry Pi 5 업데이트 및 개선 사항.

참고

이 가이드는 최신 Raspberry Pi OS Bookworm(Debian 12)을 실행하는 Raspberry Pi 4 및 Raspberry Pi 5에서 테스트되었습니다. Raspberry Pi 3과 같은 구형 Raspberry Pi 장치에 동일한 Raspberry Pi OS Bookworm이 설치되어 있다면 이 가이드를 사용하는 것이 예상대로 작동합니다.

Raspberry Pi란 무엇인가?

라즈베리 파이는 작고 저렴한 싱글 보드 컴퓨터입니다. 취미로 하는 홈 자동화부터 산업 용도에 이르기까지 광범위한 프로젝트와 애플리케이션에 널리 사용되고 있습니다. 라즈베리 파이 보드는 다양한 운영 체제를 실행할 수 있으며, 센서, 액추에이터 및 기타 하드웨어 구성 요소와 쉽게 통합할 수 있는 GPIO(General Purpose Input/Output) 핀을 제공합니다. 다양한 사양의 여러 모델로 출시되지만, 저렴한 비용, 소형 크기 및 다용성이라는 기본적인 설계 철학을 공유합니다.

Raspberry Pi 시리즈 비교

라즈베리 파이 3 라즈베리 파이 4 라즈베리 파이 5
CPU Broadcom BCM2837, Cortex-A53 64Bit SoC Broadcom BCM2711, Cortex-A72 64Bit SoC Broadcom BCM2712, Cortex-A76 64Bit SoC
CPU 최대 주파수 1.4GHz 1.8GHz 2.4GHz
GPU Videocore IV Videocore VI VideoCore VII
GPU 최대 주파수 400Mhz 500Mhz 800Mhz
메모리 1GB LPDDR2 SDRAM 1GB, 2GB, 4GB, 8GB LPDDR4-3200 SDRAM 4GB, 8GB LPDDR4X-4267 SDRAM
PCIe N/A N/A 1xPCIe 2.0 인터페이스
최대 전력 소모 2.5A@5V 3A@5V 5A@5V (PD 지원)

Raspberry Pi OS란 무엇인가?

Raspberry Pi OS(이전 명칭: Raspbian)는 Raspberry Pi 재단에서 배포하는 소형 싱글 보드 컴퓨터 Raspberry Pi 제품군을 위한 Debian GNU/Linux 배포판 기반의 Unix 계열 운영 체제입니다. Raspberry Pi OS는 ARM CPU를 사용하는 Raspberry Pi에 고도로 최적화되어 있으며 Openbox 스태킹 창 관리자가 포함된 수정된 LXDE 데스크톱 환경을 사용합니다. Raspberry Pi OS는 Raspberry Pi에서 가능한 한 많은 Debian 패키지의 안정성과 성능을 개선하는 데 중점을 두고 활발히 개발되고 있습니다.

Raspberry Pi에 Raspberry Pi OS 설치하기

Raspberry Pi를 처음 사용한 후 가장 먼저 할 일은 Raspberry Pi OS로 micro-SD 카드를 플래싱하고 장치에 삽입하여 OS로 부팅하는 것입니다. 자세한 내용은 Raspberry Pi의 시작하기 설명서를 참조하여 장치를 처음 사용하기 위한 준비를 하십시오.

Ultralytics 설정

다음 컴퓨터 비전 프로젝트를 구축하기 위해 Raspberry Pi에 Ultralytics 패키지를 설정하는 방법은 두 가지가 있습니다. 둘 중 하나를 사용할 수 있습니다.

Docker로 시작하기

Raspberry Pi에서 Ultralytics YOLO11을 시작하는 가장 빠른 방법은 Raspberry Pi용으로 미리 빌드된 Docker 이미지를 사용하여 실행하는 것입니다.

아래 명령을 실행하여 Docker 컨테이너를 가져오고 Raspberry Pi에서 실행합니다. 이는 Python3 환경에서 Debian 12(Bookworm)를 포함하는 arm64v8/debian Docker 이미지를 기반으로 합니다.

t=ultralytics/ultralytics:latest-arm64
sudo docker pull $t && sudo docker run -it --ipc=host $t

이 작업이 완료되면 Raspberry Pi에서 NCNN 사용 섹션으로 건너뜁니다.

Docker 없이 시작하기

Ultralytics 패키지 설치

여기서는 PyTorch 모델을 다른 다양한 형식으로 내보낼 수 있도록 선택적 종속성과 함께 Raspberry Pi에 Ultralytics 패키지를 설치합니다.

  1. 패키지 목록을 업데이트하고, pip를 설치하고, 최신 버전으로 업그레이드합니다.

    sudo apt update
    sudo apt install python3-pip -y
    pip install -U pip
    
  2. 설치 ultralytics 선택적 종속성이 있는 pip 패키지

    pip install ultralytics[export]
    
  3. 장치를 재부팅합니다.

    sudo reboot
    

Raspberry Pi에서 NCNN 사용하기

Ultralytics에서 지원하는 모든 모델 내보내기 형식 중에서 NCNN은 NCNN이 모바일/임베디드 플랫폼(예: ARM 아키텍처)에 고도로 최적화되어 있기 때문에 Raspberry Pi 장치로 작업할 때 최고의 추론 성능을 제공합니다.

모델을 NCNN으로 변환하고 추론 실행하기

PyTorch 형식의 YOLO11n 모델은 내보낸 모델로 추론을 실행하기 위해 NCNN으로 변환됩니다.

예시

from ultralytics import YOLO

# Load a YOLO11n PyTorch model
model = YOLO("yolo11n.pt")

# Export the model to NCNN format
model.export(format="ncnn")  # creates 'yolo11n_ncnn_model'

# Load the exported NCNN model
ncnn_model = YOLO("yolo11n_ncnn_model")

# Run inference
results = ncnn_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to NCNN format
yolo export model=yolo11n.pt format=ncnn # creates 'yolo11n_ncnn_model'

# Run inference with the exported model
yolo predict model='yolo11n_ncnn_model' source='https://ultralytics.com/images/bus.jpg'

지원되는 내보내기 옵션에 대한 자세한 내용은 배포 옵션에 대한 Ultralytics 설명서 페이지를 참조하십시오.

Raspberry Pi 5 YOLO11 벤치마크

Ultralytics 팀은 속도와 정확도를 측정하기 위해 PyTorch, TorchScript, ONNX, OpenVINO, TF SavedModel, TF GraphDef, TF Lite, PaddlePaddle, MNN, NCNN의 10가지 모델 형식에 대해 YOLO11 벤치마크를 실행했습니다. 벤치마크는 기본 입력 이미지 크기 640에서 FP32 정밀도로 Raspberry Pi 5에서 실행되었습니다.

비교 차트

다른 모델 크기는 Raspberry Pi에서 실행하기에 너무 크고 적절한 성능을 제공하지 않으므로 YOLO11n 및 YOLO11s 모델에 대한 벤치마크만 포함했습니다.

RPi 5의 YOLO11 벤치마크
Ultralytics 8.3.152로 벤치마크됨

자세한 비교 표

아래 표는 Raspberry Pi 5에서 실행되는 10가지 형식(PyTorch, TorchScript, ONNX, OpenVINO, TF SavedModel, TF GraphDef, TF Lite, PaddlePaddle, MNN, NCNN)에서 2가지 모델(YOLO11n, YOLO11s)에 대한 벤치마크 결과를 나타내며, 각 조합에 대한 상태, 크기, mAP50-95(B) 메트릭 및 추론 시간을 제공합니다.

성능

형식 상태 디스크 크기(MB) mAP50-95(B) 추론 시간 (ms/im)
PyTorch 5.4 0.5101 387.63
TorchScript 10.5 0.5077 457.84
ONNX 10.2 0.5077 191.09
OpenVINO 10.4 0.5058 84.76
TF SavedModel 25.9 0.5077 306.94
TF GraphDef 10.3 0.5077 309.82
TF Lite 10.3 0.5077 425.77
PaddlePaddle 20.5 0.5077 463.93
MNN 10.1 0.5059 114.97
NCNN 10.2 0.5031 94.03
형식 상태 디스크 크기(MB) mAP50-95(B) 추론 시간 (ms/im)
PyTorch 18.4 0.5791 962.69
TorchScript 36.5 0.5782 1181.94
ONNX 36.3 0.5782 449.85
OpenVINO 36.4 0.5810 181.53
TF SavedModel 91.0 0.5782 660.62
TF GraphDef 36.4 0.5782 669.23
TF Lite 36.3 0.5782 1093.41
PaddlePaddle 72.6 0.5782 1140.61
MNN 36.2 0.5805 274.63
NCNN 36.2 0.5784 224.20

Ultralytics 8.3.152로 벤치마크됨

참고

추론 시간은 전/후 처리 시간을 포함하지 않습니다.

결과 재현하기

위의 Ultralytics 벤치마크를 모든 내보내기 형식에서 재현하려면 다음 코드를 실행하십시오.

예시

from ultralytics import YOLO

# Load a YOLO11n PyTorch model
model = YOLO("yolo11n.pt")

# Benchmark YOLO11n speed and accuracy on the COCO128 dataset for all all export formats
results = model.benchmark(data="coco128.yaml", imgsz=640)
# Benchmark YOLO11n speed and accuracy on the COCO128 dataset for all all export formats
yolo benchmark model=yolo11n.pt data=coco128.yaml imgsz=640

벤치마킹 결과는 시스템의 정확한 하드웨어 및 소프트웨어 구성과 벤치마크가 실행될 당시 시스템의 현재 워크로드에 따라 다를 수 있습니다. 가장 신뢰할 수 있는 결과를 얻으려면 많은 수의 이미지가 포함된 데이터 세트를 사용하십시오. 예: data='coco.yaml' (5000개의 검증 이미지).

Raspberry Pi 카메라 사용하기

컴퓨터 비전 프로젝트에 Raspberry Pi를 사용하는 경우 추론을 수행하기 위해 실시간 비디오 피드를 캡처하는 것이 필수적일 수 있습니다. Raspberry Pi의 온보드 MIPI CSI 커넥터를 사용하면 공식 Raspberry PI 카메라 모듈을 연결할 수 있습니다. 이 가이드에서는 Raspberry Pi Camera Module 3을 사용하여 비디오 피드를 캡처하고 YOLO11 모델을 사용하여 추론을 수행했습니다.

참고

Raspberry Pi 5는 Raspberry Pi 4(15핀 대 22핀)보다 작은 CSI 커넥터를 사용하므로 Raspberry Pi 카메라에 연결하려면 15핀-22핀 어댑터 케이블이 필요합니다.

카메라 테스트

카메라를 Raspberry Pi에 연결한 후 다음 명령을 실행합니다. 카메라에서 약 5초 동안 실시간 비디오 피드가 표시됩니다.

rpicam-hello

카메라를 이용한 추론

Raspberry Pi 카메라를 사용하여 YOLO11 모델을 추론하는 방법에는 2가지가 있습니다.

사용법

다음을 사용하여 picamera2 Raspberry Pi OS와 함께 사전 설치되어 제공되는 카메라에 액세스하고 YOLO11 모델을 추론할 수 있습니다.

예시

import cv2
from picamera2 import Picamera2

from ultralytics import YOLO

# Initialize the Picamera2
picam2 = Picamera2()
picam2.preview_configuration.main.size = (1280, 720)
picam2.preview_configuration.main.format = "RGB888"
picam2.preview_configuration.align()
picam2.configure("preview")
picam2.start()

# Load the YOLO11 model
model = YOLO("yolo11n.pt")

while True:
    # Capture frame-by-frame
    frame = picam2.capture_array()

    # Run YOLO11 inference on the frame
    results = model(frame)

    # Visualize the results on the frame
    annotated_frame = results[0].plot()

    # Display the resulting frame
    cv2.imshow("Camera", annotated_frame)

    # Break the loop if 'q' is pressed
    if cv2.waitKey(1) == ord("q"):
        break

# Release resources and close windows
cv2.destroyAllWindows()

연결된 카메라에서 TCP 스트림을 시작해야 합니다. rpicam-vid 이 스트림 URL을 나중에 추론 시 입력으로 사용할 수 있도록 다음 명령을 실행하여 TCP 스트림을 시작합니다.

rpicam-vid -n -t 0 --inline --listen -o tcp://127.0.0.1:8888

자세히 알아보기 rpicam-vid 공식 Raspberry Pi 설명서의 사용법

예시

from ultralytics import YOLO

# Load a YOLO11n PyTorch model
model = YOLO("yolo11n.pt")

# Run inference
results = model("tcp://127.0.0.1:8888")
yolo predict model=yolo11n.pt source="tcp://127.0.0.1:8888"

이미지/비디오 입력 유형을 변경하려면 추론 소스에 대한 문서를 확인하십시오.

Raspberry Pi 사용 시 모범 사례

YOLO11을 실행하는 Raspberry Pi에서 최대 성능을 구현하기 위해 따라야 할 몇 가지 모범 사례가 있습니다.

  1. SSD 사용

    Raspberry Pi를 24시간 연중무휴로 계속 사용하는 경우 SD 카드는 지속적인 쓰기를 견딜 수 없어 손상될 수 있으므로 시스템에 SSD를 사용하는 것이 좋습니다. Raspberry Pi 5의 온보드 PCIe 커넥터를 사용하면 NVMe Base for Raspberry Pi 5와 같은 어댑터를 사용하여 SSD를 연결할 수 있습니다.

  2. GUI 없이 플래싱

    Raspberry Pi OS를 플래싱할 때 데스크톱 환경(Raspberry Pi OS Lite)을 설치하지 않도록 선택할 수 있으며, 이렇게 하면 장치에서 RAM을 약간 절약하여 컴퓨터 비전 처리를 위한 공간을 더 확보할 수 있습니다.

  3. 라즈베리 파이 오버클럭

    Raspberry Pi 5에서 Ultralytics YOLO11 모델을 실행하는 동안 성능을 약간 향상시키려면 CPU를 기본 2.4GHz에서 2.9GHz로, GPU를 800MHz에서 1GHz로 오버클럭할 수 있습니다. 시스템이 불안정해지거나 충돌이 발생하면 오버클럭 값을 100MHz 단위로 줄이십시오. 오버클럭은 열 발생을 증가시키고 열 스로틀링으로 이어질 수 있으므로 적절한 냉각 장치가 마련되어 있는지 확인하십시오.

    a. 소프트웨어 업그레이드

    sudo apt update && sudo apt dist-upgrade
    

    b. 구성 파일을 열어 편집합니다.

    sudo nano /boot/firmware/config.txt
    

    c. 다음 줄을 맨 아래에 추가합니다.

    arm_freq=3000
    gpu_freq=1000
    force_turbo=1
    

    d. CTRL + X를 누른 다음 Y를 눌러 저장하고 종료한 다음 ENTER를 누릅니다.

    e. Raspberry Pi를 재부팅합니다.

다음 단계

Raspberry Pi에서 YOLO 설정을 완료하신 것을 축하드립니다! 추가 학습 및 지원은 Ultralytics YOLO11 문서Kashmir World Foundation을 방문하십시오.

감사의 말씀 및 인용

이 가이드는 원래 Daan Eeltink가 멸종 위기에 처한 종의 보존을 위해 YOLO를 사용하는 데 전념하는 단체인 Kashmir World Foundation을 위해 만들었습니다. 우리는 객체 감지 기술 분야에서 그들의 선구적인 업적과 교육적 초점에 감사를 표합니다.

Kashmir World Foundation의 활동에 대한 자세한 내용은 웹사이트를 방문하십시오.

FAQ

Docker를 사용하지 않고 Raspberry Pi에서 Ultralytics YOLO11을 설정하는 방법은 무엇입니까?

Docker 없이 Raspberry Pi에 Ultralytics YOLO11을 설정하려면 다음 단계를 따르십시오.

  1. 패키지 목록을 업데이트하고 설치합니다. pip:
    sudo apt update
    sudo apt install python3-pip -y
    pip install -U pip
    
  2. 선택적 종속성과 함께 Ultralytics 패키지를 설치합니다.
    pip install ultralytics[export]
    
  3. 장치를 재부팅하여 변경 사항을 적용합니다.
    sudo reboot
    

자세한 내용은 Docker 없이 시작하기 섹션을 참조하십시오.

AI 작업을 위해 Raspberry Pi에서 Ultralytics YOLO11의 NCNN 형식을 사용해야 하는 이유는 무엇입니까?

Ultralytics YOLO11의 NCNN 형식은 모바일 및 임베디드 플랫폼에 매우 최적화되어 있어 Raspberry Pi 장치에서 AI 작업을 실행하는 데 이상적입니다. NCNN은 ARM 아키텍처를 활용하여 추론 성능을 극대화하여 다른 형식에 비해 더 빠르고 효율적인 처리를 제공합니다. 지원되는 내보내기 옵션에 대한 자세한 내용은 배포 옵션에 대한 Ultralytics 문서 페이지를 참조하십시오.

Raspberry Pi에서 사용하기 위해 YOLO11 모델을 NCNN 형식으로 어떻게 변환할 수 있습니까?

Python 또는 CLI 명령을 사용하여 PyTorch YOLO11 모델을 NCNN 형식으로 변환할 수 있습니다.

예시

from ultralytics import YOLO

# Load a YOLO11n PyTorch model
model = YOLO("yolo11n.pt")

# Export the model to NCNN format
model.export(format="ncnn")  # creates 'yolo11n_ncnn_model'

# Load the exported NCNN model
ncnn_model = YOLO("yolo11n_ncnn_model")

# Run inference
results = ncnn_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to NCNN format
yolo export model=yolo11n.pt format=ncnn # creates 'yolo11n_ncnn_model'

# Run inference with the exported model
yolo predict model='yolo11n_ncnn_model' source='https://ultralytics.com/images/bus.jpg'

자세한 내용은 Raspberry Pi에서 NCNN 사용 섹션을 참조하십시오.

YOLO11 실행과 관련하여 Raspberry Pi 4와 Raspberry Pi 5 간의 하드웨어 차이점은 무엇입니까?

주요 차이점은 다음과 같습니다.

  • CPU: Raspberry Pi 4는 Broadcom BCM2711, Cortex-A72 64비트 SoC를 사용하는 반면 Raspberry Pi 5는 Broadcom BCM2712, Cortex-A76 64비트 SoC를 사용합니다.
  • 최대 CPU 주파수: Raspberry Pi 4의 최대 주파수는 1.8GHz인 반면 Raspberry Pi 5는 2.4GHz에 도달합니다.
  • 메모리: Raspberry Pi 4는 최대 8GB의 LPDDR4-3200 SDRAM을 제공하는 반면 Raspberry Pi 5는 4GB 및 8GB 변형으로 제공되는 LPDDR4X-4267 SDRAM을 특징으로 합니다.

이러한 개선 사항은 Raspberry Pi 4에 비해 Raspberry Pi 5에서 YOLO11 모델의 더 나은 성능 벤치마크에 기여합니다. 자세한 내용은 Raspberry Pi 시리즈 비교 표를 참조하십시오.

Ultralytics YOLO11과 연동되도록 Raspberry Pi 카메라 모듈을 설정하려면 어떻게 해야 합니까?

YOLO11 추론을 위해 Raspberry Pi 카메라를 설정하는 방법에는 두 가지가 있습니다.

  1. 사용: picamera2:

    import cv2
    from picamera2 import Picamera2
    
    from ultralytics import YOLO
    
    picam2 = Picamera2()
    picam2.preview_configuration.main.size = (1280, 720)
    picam2.preview_configuration.main.format = "RGB888"
    picam2.preview_configuration.align()
    picam2.configure("preview")
    picam2.start()
    
    model = YOLO("yolo11n.pt")
    
    while True:
        frame = picam2.capture_array()
        results = model(frame)
        annotated_frame = results[0].plot()
        cv2.imshow("Camera", annotated_frame)
    
        if cv2.waitKey(1) == ord("q"):
            break
    
    cv2.destroyAllWindows()
    
  2. TCP 스트림 사용:

    rpicam-vid -n -t 0 --inline --listen -o tcp://127.0.0.1:8888
    
    from ultralytics import YOLO
    
    model = YOLO("yolo11n.pt")
    results = model("tcp://127.0.0.1:8888")
    

자세한 설정 방법은 카메라를 이용한 추론 섹션을 참조하십시오.



📅 1년 전에 생성됨 ✏️ 2개월 전에 업데이트됨

댓글