Ultralytics YOLO27:

빠른 시작 가이드: Ultralytics YOLO26을 사용하는 Raspberry Pi#

Raspberry PiUltralytics YOLO26을 실행하여 GPU 없이 엣지에서 실시간 객체 감지를 수행할 수 있는 작고 경제적인 컴퓨터입니다. 이 가이드에서는 Raspberry Pi 4 및 5에 YOLO26을 배포하는 방법을 안내합니다. OS 플래싱, Ultralytics 설치, ARM에서 가장 빠른 추론을 위한 NCNN 내보내기, 라이브 카메라 피드에서 예측 실행 과정을 다룹니다. 또한 8가지 내보내기 형식에 대한 성능 벤치마크를 포함하므로 하드웨어에 가장 적합한 속도와 정확도 간 절충점을 선택할 수 있습니다.

Ultralytics 설정, NCNN으로 내보내기 및 추론 실행, 벤치마크 또는 카메라 추론으로 이동합니다.



Watch: Raspberry Pi 5 updates and improvements.
참고

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

Raspberry Pi란 무엇인가요?#

Raspberry Pi는 작고 경제적인 단일 보드 컴퓨터입니다. 취미용 홈 자동화부터 산업 분야까지 다양한 프로젝트와 애플리케이션에서 널리 사용되고 있습니다. Raspberry Pi 보드는 다양한 운영 체제를 실행할 수 있으며, 센서, 액추에이터 및 기타 하드웨어 구성 요소를 쉽게 통합할 수 있는 GPIO(범용 입출력) 핀을 제공합니다. 사양이 서로 다른 여러 모델로 제공되지만, 모두 저비용·소형·다목적이라는 동일한 기본 설계 철학을 공유합니다.

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
PCIe해당 없음해당 없음1xPCIe 2.0 인터페이스
최대 전력 소비2.5A@5V3A@5V5A@5V (PD 활성화)

Raspberry Pi OS란 무엇인가요?#

Raspberry Pi OS(이전 명칭 Raspbian)는 Raspberry Pi Foundation이 배포하는 소형 단일 보드 컴퓨터 제품군 Raspberry Pi용 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 설정#

다음 컴퓨터 비전 프로젝트를 위해 Raspberry Pi에서 Ultralytics 패키지를 두 가지 방법으로 설정할 수 있습니다.

Docker로 시작하기#

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

아래 명령을 실행하여 Docker 컨테이너를 가져오고 Raspberry Pi에서 실행합니다. 이 이미지는 Python3 환경에서 Ubuntu 24.04를 실행하는 arm64v8/ubuntu Docker 이미지를 기반으로 합니다.

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

Docker 이미지에 이미 Ultralytics가 포함되어 있으므로 바로 모델을 NCNN으로 내보내기로 진행할 수 있습니다.

Docker 없이 시작하기#

Ultralytics 패키지 설치#

여기에서는 Raspberry Pi에 Ultralytics 패키지를 설치합니다. NCNN과 같은 형식의 내보내기 종속성은 PyTorch 모델을 처음 내보낼 때 자동으로 설치되므로 여기서는 기본 패키지만 필요합니다.

  1. 패키지 목록을 업데이트하고 pip를 설치한 후 최신 버전으로 업그레이드하기

    sudo apt update
    sudo apt install python3-pip -y
    pip install -U pip
  2. ultralytics pip 패키지 설치

    pip install ultralytics
  3. 디바이스 재부팅

    sudo reboot

Raspberry Pi에서 NCNN 사용하기#

Ultralytics가 지원하는 모든 모델 내보내기 형식 중에서 NCNN은 ARM 아키텍처와 같은 모바일/임베디드 플랫폼에 고도로 최적화되어 있으므로 Raspberry Pi 장치에서 가장 뛰어난 추론 성능을 제공합니다. YOLO26n PyTorch 모델을 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")

지원되는 내보내기 옵션에 대한 자세한 내용은 모델 배포 옵션 가이드를 참조하세요.

YOLO11 대비 YOLO26의 성능 향상#

YOLO26은 Raspberry Pi 5와 같이 하드웨어 제약이 있는 장치에서 실행되도록 특별히 설계되었습니다. Raspberry Pi 5에서 ONNX로 내보낸 모델을 사용하고 입력 크기 640으로 테스트한 결과, YOLO11n과 비교하여 YOLO26n은 더 높은 mAP(40.1 대 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 팀이 8가지 모델 형식(PyTorch, TorchScript, ONNX, OpenVINO, MNN, NCNN, ExecuTorch, LiteRT)에 대해 속도와 정확도를 측정하여 Raspberry Pi 5에서 실행했습니다. 벤치마크는 기본 입력 이미지 크기 640, FP32 정밀도로 Raspberry Pi 5에서 수행되었습니다.

비교 차트#

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

YOLO26 benchmarks on RPi 5
Benchmarked with Ultralytics 8.4.108

상세 비교 표#

아래 표는 Raspberry Pi 5에서 실행한 두 모델(YOLO26n, YOLO26s)의 8가지 형식(PyTorch, TorchScript, ONNX, OpenVINO, MNN, NCNN, ExecuTorch, LiteRT)에 대한 벤치마크 결과를 보여주며, 각 조합의 상태, 크기, mAP50-95(B) 지표 및 추론 시간을 제공합니다.

성능
형식상태디스크 크기(MB)mAP50-95(B)추론 시간 (ms/im)
PyTorch5.30.4760299.09
TorchScript9.80.4734353.20
ONNX9.50.4734125.99
OpenVINO9.60.4734104.55
MNN9.40.474991.87
NCNN9.40.478467.03
ExecuTorch9.40.4772144.83
LiteRT9.80.4730123.30

Ultralytics 8.4.108로 벤치마크를 수행했습니다.

참고

추론 시간에는 전처리 및 후처리가 포함되지 않습니다.

결과 재현#

위의 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'(val 이미지 5000개))을 사용하세요.

LiteRT 내보내기는 외부 장치에서 실행됩니다

litert-converter에는 aarch64 Linux wheel이 포함되어 있지 않으므로 format=litert 내보내기는 Linux x86_64 및 macOS에서만 지원되며 Raspberry Pi 자체에서는 지원되지 않습니다. Linux x86_64 시스템 또는 Mac에서 .tflite 모델을 내보낸 후 Raspberry Pi로 복사하고 Pi에서 추론을 실행하세요.

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 Camera에 연결하려면 15핀-22핀 어댑터 케이블이 필요합니다.

카메라 테스트하기#

카메라를 Raspberry Pi에 연결한 후 다음 명령을 실행하세요. 약 5초 동안 카메라의 라이브 비디오 피드가 표시됩니다.

rpicam-hello

카메라를 사용한 추론#

Raspberry Pi Camera로 YOLO26 모델에서 추론을 실행하는 방법은 두 가지입니다.

Raspberry Pi 카메라로 추론 실행하기

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()

이미지/비디오 입력 유형을 변경하려면 추론 소스 문서를 확인하세요.

Raspberry Pi 사용 시 모범 사례#

YOLO26을 실행하는 Raspberry Pi에서 성능을 극대화하려면 몇 가지 모범 사례를 따라야 합니다.

  1. SSD 사용하기

    Raspberry Pi를 24x7 연속으로 사용할 때는 SD 카드가 지속적인 쓰기를 견디지 못해 손상될 수 있으므로 시스템에 SSD를 사용하는 것이 좋습니다. Raspberry Pi 5에 내장된 PCIe 커넥터를 사용하면 Raspberry Pi 5용 NVMe Base와 같은 어댑터로 SSD를 연결할 수 있습니다.

  2. GUI 없이 플래시하기

    Raspberry Pi OS를 플래시할 때 데스크톱 환경(Raspberry Pi OS Lite)을 설치하지 않도록 선택할 수 있습니다. 이렇게 하면 장치의 RAM을 일부 절약하여 컴퓨터 비전 처리에 더 많은 공간을 사용할 수 있습니다.

  3. Raspberry Pi 오버클러킹

    Raspberry Pi 5에서 Ultralytics YOLO26 모델을 실행할 때 성능을 약간 높이고 싶다면, CPU를 기본 2.4GHz에서 3.0GHz로, 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에서 YOLO26을 성공적으로 설정했습니다. 더 알아보려면 추가 추론 옵션을 제공하는 Predict 모드, 추가 배포 형식을 제공하는 Export 모드 또는 엣지에서 더 많은 연산 성능이 필요한 경우 NVIDIA Jetson 가이드를 살펴보세요. 전체 문서는 Ultralytics YOLO26 Docs에서 확인할 수 있습니다.

감사의 말 및 인용#

이 가이드는 멸종 위기종 보전을 위해 YOLO를 활용하는 단체인 Kashmir World Foundation의 Daan Eeltink이 처음 작성했습니다. 객체 감지 기술 분야에서 이들의 선구적인 활동과 교육적 노력을 인정하고 감사드립니다.

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

FAQ#

  • 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
    3. 변경 사항을 적용하려면 장치를 재부팅합니다:
      sudo reboot

    자세한 지침은 Docker 없이 시작하기 섹션을 참조합니다.

  • Ultralytics YOLO26의 NCNN 형식은 모바일 및 임베디드 플랫폼에 고도로 최적화되어 있어 Raspberry Pi 장치에서 AI 작업을 실행하는 데 적합합니다. NCNN은 ARM 아키텍처를 활용하여 추론 성능을 극대화하고 다른 형식보다 빠르고 효율적인 처리를 제공합니다. 지원되는 export 형식에 대한 자세한 내용은 모델 export 옵션을 참조합니다.

  • 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")

    자세한 내용은 Raspberry Pi에서 NCNN 사용하기 섹션을 참조합니다.

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

    • 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 5에서 YOLO26 모델의 성능 벤치마크가 Raspberry Pi 4보다 향상됩니다. 자세한 내용은 Raspberry Pi 시리즈 비교 표를 참조합니다.

  • YOLO26 추론을 위해 Raspberry Pi Camera를 설정하는 방법은 두 가지입니다:

    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 Stream 사용:

      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")

    자세한 설정 지침은 카메라를 사용한 추론 섹션을 참조합니다.

댓글