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.
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 3 | Raspberry Pi 4 | Raspberry Pi 5 | |
|---|---|---|---|
| CPU | Broadcom BCM2837, Cortex-A53 64Bit SoC | Broadcom BCM2711, Cortex-A72 64Bit SoC | Broadcom BCM2712, Cortex-A76 64Bit SoC |
| Maximale CPU-Frequenz | 1.4GHz | 1.8GHz | 2.4GHz |
| GPU | Videocore IV | Videocore VI | VideoCore VII |
| Maximale GPU-Frequenz | 400Mhz | 500Mhz | 800Mhz |
| Speicher | 1 GB LPDDR2 SDRAM | 1 GB, 2 GB, 4 GB, 8 GB LPDDR4-3200 SDRAM | 4 GB, 8 GB LPDDR4X-4267 SDRAM |
| PCIe | Nicht verfügbar | Nicht verfügbar | 1× PCIe-2.0-Schnittstelle |
| Maximale Leistungsaufnahme | 2,5 A@5 V | 3 A@5 V | 5 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 $tDas 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.
-
Paketliste aktualisieren, pip installieren und auf die neueste Version aktualisieren
sudo apt update sudo apt install python3-pip -y pip install -U pip -
ultralytics-Paket mit pip installierenpip install ultralytics -
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:
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 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.
| Modell | mAP50-95(B) | Inferenzzeit (ms/Bild) |
|---|---|---|
| YOLO26n | 40.1 | 128.42 |
| YOLO26s | 47.8 | 352.84 |
| YOLO26m | 52.5 | 993.78 |
| YOLO26l | 54.4 | 1259.46 |
| YOLO26x | 56.9 | 2636.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.
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.
| Format | Status | Größe auf der Festplatte (MB) | mAP50-95(B) | Inferenzzeit (ms/Bild) |
|---|---|---|---|---|
| PyTorch | ✅ | 5.3 | 0.4760 | 299.09 |
| TorchScript | ✅ | 9.8 | 0.4734 | 353.20 |
| ONNX | ✅ | 9.5 | 0.4734 | 125.99 |
| OpenVINO | ✅ | 9.6 | 0.4734 | 104.55 |
| MNN | ✅ | 9.4 | 0.4749 | 91.87 |
| NCNN | ✅ | 9.4 | 0.4784 | 67.03 |
| ExecuTorch | ✅ | 9.4 | 0.4772 | 144.83 |
| LiteRT | ✅ | 9.8 | 0.4730 | 123.30 |
Benchmark mit Ultralytics 8.4.108
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:
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-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.
Erfahre mehr über die verschiedenen von Raspberry Pi angebotenen Kameramodule und darüber, wie du mit den Raspberry-Pi-Kameramodulen beginnst.
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-helloWeitere Informationen zur Verwendung von rpicam-hello in der offiziellen Raspberry-Pi-Dokumentation
Inferenz mit der Kamera#
Es gibt zwei Methoden, um die Raspberry Pi Camera für die Inferenz mit YOLO26-Modellen zu verwenden.
Wir können picamera2 verwenden, das mit Raspberry Pi OS vorinstalliert wird, um auf die Kamera zuzugreifen und Inferenz mit YOLO26-Modellen auszuführen.
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()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.
-
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.
-
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.
-
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-upgradeb. Konfigurationsdatei zum Bearbeiten öffnen
sudo nano /boot/firmware/config.txtc. Folgende Zeilen am Ende hinzufügen
arm_freq=3000 gpu_freq=1000 force_turbo=1d. 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:
- Paketliste aktualisieren und
pipinstallieren:sudo apt update sudo apt install python3-pip -y pip install -U pip - Ultralytics-Paket installieren:
pip install ultralytics - Starte das Gerät neu, um die Änderungen anzuwenden:
sudo reboot
Ausführliche Anweisungen findest du im Abschnitt Ohne Docker starten.
- Paketliste aktualisieren und
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:
Beispielfrom 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:
-
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() -
Mit einem TCP-Stream:
rpicam-vid -n -t 0 --inline --listen -o tcp://127.0.0.1:8888from 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.
-