퀵 스타트 가이드: Raspberry Pi와 Ultralytics YOLO26

본 종합 가이드는 Raspberry Pi 기기에서 Ultralytics YOLO26을 배포하기 위한 상세한 절차를 안내합니다. 또한, 작고 강력한 기기인 Raspberry Pi에서 YOLO26의 성능을 입증하는 벤치마크 결과를 제공합니다.



Watch: Raspberry Pi 5 updates and improvements.
참고

이 가이드는 최신 Raspberry Pi OS Bookworm (Debian 12)을 실행하는 Raspberry Pi 4 및 Raspberry Pi 5에서 테스트되었습니다. Raspberry Pi 3와 같은 이전 모델에서도 동일한 Raspberry Pi OS Bookworm이 설치되어 있다면 이 가이드를 사용하여 원활하게 작동할 것으로 예상됩니다.

Raspberry Pi란 무엇인가요?

Raspberry Pi는 작고 저렴한 싱글 보드 컴퓨터입니다. 취미용 홈 오토메이션부터 산업용 애플리케이션까지 다양한 프로젝트와 분야에서 널리 사용됩니다. Raspberry Pi 보드는 다양한 운영 체제를 실행할 수 있으며, 센서, 액추에이터 및 기타 하드웨어 구성 요소와 쉽게 통합할 수 있는 GPIO(General Purpose Input/Output) 핀을 제공합니다. 모델마다 사양은 다르지만, 저비용, 소형, 다목적이라는 기본적인 설계 철학을 모두 공유합니다.

Raspberry Pi 시리즈 비교

Raspberry Pi 3Raspberry Pi 4Raspberry Pi 5
CPUBroadcom BCM2837, Cortex-A53 64Bit SoCBroadcom BCM2711, Cortex-A72 64Bit SoCBroadcom BCM2712, Cortex-A76 64Bit SoC
CPU 최대 주파수1.4GHz1.8GHz2.4GHz
GPUVideocore IVVideocore VIVideoCore VII
GPU 최대 주파수400Mhz500Mhz800Mhz
메모리1GB LPDDR2 SDRAM1GB, 2GB, 4GB, 8GB LPDDR4-3200 SDRAM4GB, 8GB LPDDR4X-4267 SDRAM
PCIeN/AN/A1xPCIe 2.0 인터페이스
최대 소비 전력2.5A@5V3A@5V5A@5V (PD 지원)

Raspberry Pi OS란 무엇인가요?

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

Raspberry Pi OS를 Raspberry Pi에 플래싱하기

Raspberry Pi를 사용하기 위해 가장 먼저 할 일은 micro-SD 카드에 Raspberry Pi OS를 플래싱하고, 기기에 삽입한 뒤 OS로 부팅하는 것입니다. 기기를 처음 사용하기 위해 준비하려면 Raspberry Pi 제공 시작하기 문서의 상세 지침을 따르십시오.

Ultralytics 설정하기

다음 Computer Vision 프로젝트를 구축하기 위해 Raspberry Pi에 Ultralytics 패키지를 설정하는 방법은 두 가지가 있습니다. 둘 중 하나를 선택하여 진행할 수 있습니다.

Docker로 시작하기

Raspberry Pi에서 Ultralytics YOLO26을 가장 빠르게 시작하는 방법은 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은 ARM 아키텍처와 같은 모바일/임베디드 플랫폼에 매우 최적화되어 있으므로 Raspberry Pi 기기에서 작업할 때 최고의 추론 성능을 제공합니다.

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

PyTorch 형식의 YOLO26n 모델을 NCNN으로 변환하여 내보낸 모델로 추론을 실행합니다.

예시
from ultralytics import YOLO

# Load a YOLO26n PyTorch model
model = YOLO("yolo26n.pt")

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

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

# Run inference
results = ncnn_model("https://ultralytics.com/images/bus.jpg")

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

YOLO11 대비 YOLO26 성능 개선

YOLO26은 Raspberry Pi 5와 같은 하드웨어 제약이 있는 기기에서 실행되도록 특별히 설계되었습니다. YOLO11n과 비교했을 때, YOLO26n은 Raspberry Pi 5에서 ONNX로 내보낸 모델을 사용하여 640 입력 크기에서 더 높은 mAP(40.1 vs 39.5)를 제공함과 동시에 FPS가 약 15% 증가(6.79 → 7.79)했습니다. 아래 표와 차트는 이러한 비교 결과를 보여줍니다.

YOLO26 benchmarks on RPi 5
Benchmarked with Ultralytics 8.4.14
성능
모델mAP50-95(B)추론 시간 (ms/im)
YOLO26n40.1128.42
YOLO26s47.8352.84
YOLO26m52.5993.78
YOLO26l54.41259.46
YOLO26x56.92636.26

Ultralytics 8.4.14로 벤치마킹되었습니다.

Raspberry Pi 5 YOLO26 벤치마크

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

비교 차트

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

YOLO26 benchmarks on RPi 5
Benchmarked with Ultralytics 8.4.1

상세 비교 테이블

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

성능
형식상태디스크 크기 (MB)mAP50-95(B)추론 시간 (ms/im)
PyTorch5.30.4798302.15
TorchScript9.80.4764357.58
ONNX9.50.4764130.33
OpenVINO9.60.481870.74
TF SavedModel24.60.4764213.58
TF GraphDef9.50.4764213.5
TF Lite9.90.4764251.41
MNN9.40.478490.89
NCNN9.40.480567.69
ExecuTorch9.40.4764148.36

Ultralytics 8.4.1로 벤치마킹되었습니다.

참고

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

결과 재현하기

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

예시
from ultralytics import YOLO

# Load a YOLO26n PyTorch model
model = YOLO("yolo26n.pt")

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

벤치마크 결과는 시스템의 정확한 하드웨어 및 소프트웨어 구성과 벤치마크 실행 시점의 시스템 부하에 따라 달라질 수 있습니다. 가장 신뢰할 수 있는 결과를 얻으려면 data='coco.yaml'(5000개의 검증 이미지)과 같이 이미지 수가 많은 데이터셋을 사용하십시오.

Raspberry Pi 카메라 사용하기

Raspberry Pi를 컴퓨터 비전 프로젝트에 사용할 때, 실시간 비디오 피드를 가져와 추론을 수행하는 것이 중요할 수 있습니다. Raspberry Pi의 온보드 MIPI CSI 커넥터를 사용하면 공식 Raspberry Pi 카메라 모듈을 연결할 수 있습니다. 이 가이드에서는 Raspberry Pi Camera Module 3를 사용하여 비디오 피드를 가져오고 YOLO26 모델을 사용하여 추론을 수행했습니다.

참고

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

카메라 테스트

카메라를 Raspberry Pi에 연결한 후 다음 명령어를 실행하십시오. 약 5초 동안 카메라로부터 라이브 비디오 피드가 출력되는 것을 확인할 수 있습니다.

rpicam-hello

공식 Raspberry Pi 문서에서 rpicam-hello 사용법에 대해 자세히 알아보세요.

카메라를 이용한 추론

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

사용법

Raspberry Pi OS에 사전 설치된 picamera2를 사용하여 카메라에 액세스하고 YOLO26 모델에서 추론을 실행할 수 있습니다.

예시
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 YOLO26 model
model = YOLO("yolo26n.pt")

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

    # Run YOLO26 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()

이미지/비디오 입력 유형을 변경하려면 Inference Sources 문서를 확인하십시오.

Raspberry Pi 사용 시 모범 사례

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

  1. SSD 사용

    Raspberry Pi를 연중무휴로 계속 사용할 경우, 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 오버클럭

    Raspberry Pi 5에서 Ultralytics YOLO26 모델을 실행하는 동안 약간의 성능 향상을 원한다면, CPU를 기본 2.4GHz에서 2.9GHz로, GPU를 800MHz에서 1GHz로 오버클럭할 수 있습니다. 시스템이 불안정해지거나 충돌이 발생하면 오버클럭 값을 100MHz씩 낮추십시오. 오버클럭은 열 발생을 증가시켜 스로틀링(thermal throttling)을 유발할 수 있으므로 적절한 냉각 장치를 갖추십시오.

    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 YOLO26 DocsKashmir World Foundation을 방문하십시오.

감사의 말 및 인용

이 가이드는 멸종 위기 종 보존을 위한 YOLO 사용에 전념하는 조직인 Kashmir World Foundation을 위해 Daan Eeltink가 처음 작성했습니다. 우리는 객체 탐지 기술 분야에서 그들의 선구적인 작업과 교육적 노력을 높이 평가합니다.

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

FAQ

Docker를 사용하지 않고 Raspberry Pi에 Ultralytics YOLO26을 어떻게 설정하나요?

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

  1. 패키지 목록을 업데이트하고 pip를 설치하십시오:
    sudo apt update
    sudo apt install python3-pip -y
    pip install -U pip
  2. 선택적 의존성과 함께 Ultralytics 패키지를 설치하십시오:
    pip install ultralytics[export]
  3. 변경 사항을 적용하기 위해 장치를 재부팅하십시오:
    sudo reboot

자세한 지침은 Start without Docker 섹션을 참조하십시오.

Raspberry Pi의 AI 작업을 위해 Ultralytics YOLO26의 NCNN 형식을 사용해야 하는 이유는 무엇인가요?

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

Raspberry Pi에서 사용하기 위해 YOLO26 모델을 NCNN 형식으로 어떻게 변환할 수 있나요?

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

예시
from ultralytics import YOLO

# Load a YOLO26n PyTorch model
model = YOLO("yolo26n.pt")

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

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

# Run inference
results = ncnn_model("https://ultralytics.com/images/bus.jpg")

자세한 내용은 Use NCNN on Raspberry Pi 섹션을 참조하십시오.

YOLO26 실행과 관련하여 Raspberry Pi 4와 Raspberry Pi 5 간의 하드웨어 차이점은 무엇인가요?

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

  • CPU: Raspberry Pi 4는 Broadcom BCM2711, Cortex-A72 64-bit SoC를 사용하며, Raspberry Pi 5는 Broadcom BCM2712, Cortex-A76 64-bit 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에서 YOLO26 모델의 더 나은 성능 벤치마크에 기여합니다. 자세한 내용은 Raspberry Pi Series Comparison 표를 참조하십시오.

Ultralytics YOLO26에서 작동하도록 Raspberry Pi 카메라 모듈을 어떻게 설정하나요?

YOLO26 추론을 위해 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("yolo26n.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("yolo26n.pt")
    results = model("tcp://127.0.0.1:8888")

자세한 설정 지침은 Inference with Camera 섹션을 방문하십시오.

댓글