Ultralytics YOLO27:

Schnellstartanleitung: Raspberry Pi mit Ultralytics YOLO26#

Raspberry Pi ist ein kleiner, kostengünstiger Computer, auf dem Ultralytics YOLO26 für die Objekterkennung in Echtzeit am Edge ausgeführt werden kann – ganz ohne GPU. Diese Anleitung führt dich durch die Bereitstellung von YOLO26 auf Raspberry Pi 4 und 5: Betriebssystem aufspielen, Ultralytics installieren, für die schnellste Inferenz auf ARM nach NCNN exportieren und Vorhersagen mit einem Live-Kamerastream ausführen. Außerdem enthält sie Leistungsbenchmarks für acht Exportformate, damit du den besten Kompromiss zwischen Geschwindigkeit und Genauigkeit für deine Hardware auswählen kannst.

Springe zu Ultralytics einrichten, nach NCNN exportieren und Inferenz ausführen, Benchmarks oder Kamerainferenz.



Watch: Raspberry Pi 5 updates and improvements.
Hinweis

Diese Anleitung wurde mit Raspberry Pi 4 und Raspberry Pi 5 getestet, auf denen das aktuelle Raspberry Pi OS Bookworm (Debian 12) ausgeführt wird. Die Verwendung dieser Anleitung mit älteren Raspberry-Pi-Geräten wie dem Raspberry Pi 3 sollte funktionieren, sofern dasselbe Raspberry Pi OS Bookworm installiert ist.

Was ist Raspberry Pi?#

Raspberry Pi ist ein kleiner, kostengünstiger Einplatinencomputer. Er ist für eine Vielzahl von Projekten und Anwendungen beliebt geworden – von der Heimautomatisierung für Hobbyanwender bis hin zu industriellen Einsatzzwecken. Raspberry-Pi-Boards können verschiedene Betriebssysteme ausführen und verfügen über GPIO-Pins (allgemeine Ein-/Ausgabe), die eine einfache Integration von Sensoren, Aktoren und anderen Hardwarekomponenten ermöglichen. Es gibt sie in unterschiedlichen Modellen mit verschiedenen Spezifikationen, aber allen gemeinsam ist das Grundprinzip eines kostengünstigen, kompakten und vielseitigen Geräts.

Vergleich der Raspberry-Pi-Serie#

Raspberry Pi 3Raspberry Pi 4Raspberry Pi 5
CPUBroadcom BCM2837, Cortex-A53 64Bit SoCBroadcom BCM2711, Cortex-A72 64Bit SoCBroadcom BCM2712, Cortex-A76 64Bit SoC
Maximale CPU-Frequenz1.4GHz1.8GHz2.4GHz
GPUVideocore IVVideocore VIVideoCore VII
Maximale GPU-Frequenz400Mhz500Mhz800Mhz
Speicher1 GB LPDDR2 SDRAM1 GB, 2 GB, 4 GB, 8 GB LPDDR4-3200 SDRAM4 GB, 8 GB LPDDR4X-4267 SDRAM
PCIeNicht verfügbarNicht verfügbar1× PCIe-2.0-Schnittstelle
Maximale Leistungsaufnahme2,5 A@5 V3 A@5 V5 A@5 V (PD aktiviert)

Was ist Raspberry Pi OS?#

Raspberry Pi OS (früher Raspbian) ist ein Unix-ähnliches Betriebssystem, das auf der Debian-GNU/Linux-Distribution für die von der Raspberry Pi Foundation vertriebene Familie kompakter Einplatinencomputer basiert. Raspberry Pi OS ist für den Raspberry Pi mit ARM-CPUs stark optimiert und verwendet eine angepasste LXDE-Desktopumgebung mit dem Stapelfenstermanager Openbox. Raspberry Pi OS wird aktiv weiterentwickelt, wobei der Schwerpunkt darauf liegt, die Stabilität und Leistung möglichst vieler Debian-Pakete auf dem Raspberry Pi zu verbessern.

Raspberry Pi OS auf den Raspberry Pi aufspielen#

Nachdem du einen Raspberry Pi erhalten hast, spielst du zunächst Raspberry Pi OS auf eine microSD-Karte auf, setzt sie in das Gerät ein und startest das Betriebssystem. Folge der ausführlichen Erste-Schritte-Dokumentation von Raspberry Pi, um dein Gerät für die erste Verwendung vorzubereiten.

Ultralytics einrichten#

Du kannst das Ultralytics-Paket auf dem Raspberry Pi auf zwei Arten für dein nächstes Computer-Vision-Projekt einrichten:

Mit Docker starten#

Am schnellsten startest du mit Ultralytics YOLO26 auf dem Raspberry Pi, indem du ein vorgefertigtes Docker-Image für Raspberry Pi ausführst.

Führe den folgenden Befehl aus, um den Docker-Container abzurufen und auf dem Raspberry Pi auszuführen. Er basiert auf dem arm64v8/ubuntu-Docker-Image, das Ubuntu 24.04 in einer Python3-Umgebung ausführt.

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

Das Docker-Image enthält Ultralytics bereits, sodass du direkt mit dem Export deines Modells nach NCNN fortfahren kannst.

Ohne Docker starten#

Ultralytics-Paket installieren#

Hier installieren wir das Ultralytics-Paket auf dem Raspberry Pi. Exportabhängigkeiten für Formate wie NCNN werden automatisch beim ersten Export eines PyTorch-Modells installiert, sodass hier nur das Basispaket benötigt wird.

  1. Paketliste aktualisieren, pip installieren und auf die neueste Version aktualisieren

    sudo apt update
    sudo apt install python3-pip -y
    pip install -U pip
  2. ultralytics-Paket mit pip installieren

    pip install ultralytics
  3. Gerät neu starten

    sudo reboot

NCNN auf dem Raspberry Pi verwenden#

Von allen von Ultralytics unterstützten Exportformaten bietet NCNN die beste Inferenzleistung auf Raspberry-Pi-Geräten, da es stark für mobile und eingebettete Plattformen wie die ARM-Architektur optimiert ist. Konvertiere dein YOLO26n-PyTorch-Modell nach NCNN und führe anschließend mit dem exportierten Modell eine Inferenz aus:

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

Weitere Informationen zu den unterstützten Exportoptionen findest du in der Anleitung zu den Optionen für die Modellbereitstellung.

Leistungsverbesserungen von YOLO26 gegenüber YOLO11#

YOLO26 wurde speziell für den Betrieb auf hardwarebeschränkten Geräten wie dem Raspberry Pi 5 entwickelt. Im Vergleich zu YOLO11n erreicht YOLO26n eine um etwa ~15 % höhere FPS-Rate (6.79 → 7.79) und liefert bei einer Eingabegröße von 640 mit ONNX-exportierten Modellen auf dem Raspberry Pi 5 zugleich einen höheren mAP-Wert (40.1 gegenüber 39.5). Die folgende Tabelle und das Diagramm zeigen diesen Vergleich.

YOLO26 benchmarks on RPi 5
Benchmarked with Ultralytics 8.4.14
Leistung
ModellmAP50-95(B)Inferenzzeit (ms/Bild)
YOLO26n40.1128.42
YOLO26s47.8352.84
YOLO26m52.5993.78
YOLO26l54.41259.46
YOLO26x56.92636.26

Benchmark mit Ultralytics 8.4.14.

YOLO26-Benchmarks auf dem Raspberry Pi 5#

Die YOLO26-Benchmarks wurden vom Ultralytics-Team mit acht verschiedenen Modellausgabeformaten durchgeführt, um Geschwindigkeit und Genauigkeit zu messen: PyTorch, TorchScript, ONNX, OpenVINO, MNN, NCNN, ExecuTorch und LiteRT. Die Benchmarks wurden auf einem Raspberry Pi 5 mit FP32-Genauigkeit und der standardmäßigen Eingabebildgröße 640 durchgeführt.

Vergleichsdiagramm#

Wir haben nur Benchmarks für die Modelle YOLO26n und YOLO26s aufgenommen, da die anderen Modellgrößen zu groß für die Ausführung auf Raspberry Pis sind und keine angemessene Leistung bieten.

YOLO26 benchmarks on RPi 5
Benchmarked with Ultralytics 8.4.108

Detaillierte Vergleichstabelle#

Die folgende Tabelle zeigt die Benchmark-Ergebnisse für zwei verschiedene Modelle (YOLO26n, YOLO26s) in acht verschiedenen Formaten (PyTorch, TorchScript, ONNX, OpenVINO, MNN, NCNN, ExecuTorch, LiteRT), die auf einem Raspberry Pi 5 ausgeführt wurden. Für jede Kombination werden Status, Größe, die mAP50-95(B)-Metrik und die Inferenzzeit angegeben.

Leistung
FormatStatusGröße auf der Festplatte (MB)mAP50-95(B)Inferenzzeit (ms/Bild)
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

Benchmark mit Ultralytics 8.4.108

Hinweis

Die Inferenzzeit umfasst keine Vor- und Nachverarbeitung.

Unsere Ergebnisse reproduzieren#

Um die oben genannten Ultralytics-Benchmarks für alle Exportformate zu reproduzieren, führe diesen Code aus:

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

Beachte, dass die Benchmark-Ergebnisse je nach exakter Hardware- und Softwarekonfiguration eines Systems sowie dessen aktueller Auslastung zum Zeitpunkt der Benchmarks variieren können. Für die zuverlässigsten Ergebnisse solltest du einen Datensatz mit einer großen Anzahl von Bildern verwenden, z. B. data='coco.yaml' (5000 Validierungsbilder).

LiteRT-Export wird außerhalb des Geräts ausgeführt

litert-converter enthält kein aarch64-Linux-Wheel, daher wird der Export nach format=litert nur unter Linux x86_64 und macOS unterstützt, nicht direkt auf dem Raspberry Pi. Exportiere das .tflite-Modell auf einem Linux-x86_64-Rechner oder einem Mac, kopiere es auf den Raspberry Pi und verwende den Pi für die Inferenz.

Raspberry-Pi-Kamera verwenden#

Bei Computer-Vision-Projekten mit Raspberry Pi kann es entscheidend sein, Videostreams in Echtzeit abzurufen, um Inferenz auszuführen. Der integrierte MIPI-CSI-Anschluss des Raspberry Pi ermöglicht den Anschluss offizieller Raspberry-Pi-Kameramodule. In dieser Anleitung verwenden wir ein Raspberry Pi Camera Module 3, um Videostreams abzurufen und mit YOLO26-Modellen Inferenz auszuführen.

Tipp
Hinweis

Der Raspberry Pi 5 verwendet kleinere CSI-Anschlüsse als der Raspberry Pi 4 (15-polig gegenüber 22-polig). Daher benötigst du ein Adapterkabel von 15 auf 22 Pole, um eine Raspberry Pi Camera anzuschließen.

Kamera testen#

Führe den folgenden Befehl aus, nachdem du die Kamera mit dem Raspberry Pi verbunden hast. Du solltest etwa 5 Sekunden lang einen Live-Videostream der Kamera sehen.

rpicam-hello
Tipp

Inferenz mit der Kamera#

Es gibt zwei Methoden, um die Raspberry Pi Camera für die Inferenz mit YOLO26-Modellen zu verwenden.

Inferenz mit der Raspberry-Pi-Kamera ausführen

Wir können picamera2 verwenden, das mit Raspberry Pi OS vorinstalliert wird, um auf die Kamera zuzugreifen und Inferenz mit YOLO26-Modellen auszuführen.

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

Sieh dir unsere Dokumentation zu Inferenzquellen an, wenn du den Typ der Bild-/Videoeingabe ändern möchtest.

Bewährte Vorgehensweisen bei der Verwendung von Raspberry Pi#

Für maximale Leistung auf Raspberry Pis, auf denen YOLO26 ausgeführt wird, solltest du einige bewährte Vorgehensweisen beachten.

  1. Eine SSD verwenden

    Bei einem kontinuierlichen 24/7-Betrieb des Raspberry Pi empfiehlt es sich, für das System eine SSD zu verwenden, da eine SD-Karte fortlaufende Schreibvorgänge nicht dauerhaft verkraftet und ausfallen kann. Über den integrierten PCIe-Anschluss des Raspberry Pi 5 kannst du jetzt SSDs mit einem Adapter wie der NVMe Base für Raspberry Pi 5 anschließen.

  2. Ohne grafische Oberfläche aufspielen

    Beim Aufspielen von Raspberry Pi OS kannst du auf die Installation der Desktopumgebung verzichten (Raspberry Pi OS Lite). Dadurch lässt sich etwas RAM auf dem Gerät einsparen, sodass mehr Speicher für die Computer-Vision-Verarbeitung zur Verfügung steht.

  3. Raspberry Pi übertakten

    Wenn du beim Ausführen von Ultralytics YOLO26-Modellen auf dem Raspberry Pi 5 einen kleinen Leistungsschub möchtest, kannst du die CPU von den standardmäßigen 2,4 GHz auf 3,0 GHz und die GPU von 800 MHz auf 1 GHz übertakten. Wenn das System instabil wird oder abstürzt, reduziere die Übertaktungswerte in Schritten von 100 MHz. Stelle sicher, dass eine ordnungsgemäße Kühlung vorhanden ist, da das Übertakten die Hitzeentwicklung erhöht und zu thermischem Drosseln führen kann.

    a. Software aktualisieren

    sudo apt update && sudo apt dist-upgrade

    b. Konfigurationsdatei zum Bearbeiten öffnen

    sudo nano /boot/firmware/config.txt

    c. Folgende Zeilen am Ende hinzufügen

    arm_freq=3000
    gpu_freq=1000
    force_turbo=1

    d. Durch Drücken von CTRL + X, anschließend Y und ENTER speichern und beenden

    e. Raspberry Pi neu starten

Nächste Schritte#

Du hast YOLO26 erfolgreich auf deinem Raspberry Pi eingerichtet. Für weitere Möglichkeiten kannst du den Vorhersagemodus für zusätzliche Inferenzoptionen, den Exportmodus für weitere Bereitstellungsformate oder die Anleitung zu NVIDIA Jetson erkunden, wenn du mehr Rechenleistung am Edge benötigst. Die vollständige Dokumentation findest du in der Ultralytics-YOLO26-Dokumentation.

Danksagungen und Quellenangaben#

Diese Anleitung wurde ursprünglich von Daan Eeltink für die Kashmir World Foundation erstellt, eine Organisation, die sich dem Einsatz von YOLO zum Schutz gefährdeter Arten widmet. Wir würdigen ihre Pionierarbeit und ihren Bildungsfokus im Bereich der Technologien zur Objekterkennung.

Weitere Informationen zu den Aktivitäten der Kashmir World Foundation findest du auf ihrer Website.

FAQ#

  • Führe die folgenden Schritte aus, um Ultralytics YOLO26 ohne Docker auf einem Raspberry Pi einzurichten:

    1. Paketliste aktualisieren und pip installieren:
      sudo apt update
      sudo apt install python3-pip -y
      pip install -U pip
    2. Ultralytics-Paket installieren:
      pip install ultralytics
    3. Starte das Gerät neu, um die Änderungen anzuwenden:
      sudo reboot

    Ausführliche Anweisungen findest du im Abschnitt Ohne Docker starten.

  • Das NCNN-Format von Ultralytics YOLO26 ist für mobile und eingebettete Plattformen stark optimiert und daher ideal für die Ausführung von KI-Aufgaben auf Raspberry Pi-Geräten. NCNN maximiert die Inferenzleistung durch die Nutzung der ARM-Architektur und ermöglicht im Vergleich zu anderen Formaten eine schnellere und effizientere Verarbeitung. Weitere Informationen zu den unterstützten Exportformaten findest du unter Modell-Exportoptionen.

  • Du kannst ein PyTorch-YOLO26-Modell entweder mit Python oder CLI-Befehlen in das NCNN-Format konvertieren:

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

    Weitere Informationen findest du im Abschnitt NCNN auf Raspberry Pi verwenden.

  • Zu den wichtigsten Unterschieden gehören:

    • CPU: Raspberry Pi 4 verwendet einen 64-Bit-SoC Broadcom BCM2711 mit Cortex-A72, während Raspberry Pi 5 einen 64-Bit-SoC Broadcom BCM2712 mit Cortex-A76 verwendet.
    • Maximale CPU-Frequenz: Raspberry Pi 4 erreicht eine maximale Frequenz von 1.8GHz, während Raspberry Pi 5 2.4GHz erreicht.
    • Arbeitsspeicher: Raspberry Pi 4 bietet bis zu 8GB LPDDR4-3200-SDRAM, während Raspberry Pi 5 mit LPDDR4X-4267-SDRAM ausgestattet ist, das in Varianten mit 4GB und 8GB verfügbar ist.

    Diese Verbesserungen tragen zu besseren Benchmark-Ergebnissen für YOLO26-Modelle auf Raspberry Pi 5 im Vergleich zu Raspberry Pi 4 bei. Weitere Informationen findest du in der Tabelle Vergleich der Raspberry-Pi-Serien.

  • Es gibt zwei Methoden, eine Raspberry Pi-Kamera für die YOLO26-Inferenz einzurichten:

    1. Mit 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. Mit einem 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")

    Ausführliche Anweisungen zur Einrichtung findest du im Abschnitt Inferenz mit Kamera.

Kommentare