Schnellstartanleitung: Raspberry Pi mit Ultralytics YOLO26#
Raspberry Pi ist ein kleiner, erschwinglicher Computer, auf dem Ultralytics YOLO26 für Echtzeit-Objekterkennung am Edge ausgeführt wird – ganz ohne GPU. Diese Anleitung führt dich durch die Bereitstellung von YOLO26 auf Raspberry Pi 4 und 5: das Flashen des Betriebssystems, die Installation von Ultralytics, das Exportieren nach NCNN für die schnellste Inferenz auf ARM sowie das Ausführen von Vorhersagen auf einem Live-Kamerastream. Sie enthält außerdem Leistungsbenchmarks über acht Exportformate hinweg, damit du den besten Kompromiss aus Geschwindigkeit und Genauigkeit für deine Hardware auswählen kannst.
Springe zu Einrichtung von Ultralytics, Export nach NCNN und Ausführen der Inferenz, 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) läuft. Die Verwendung dieser Anleitung für ältere Raspberry Pi-Geräte wie den Raspberry Pi 3 sollte voraussichtlich funktionieren, solange dasselbe Raspberry Pi OS Bookworm installiert ist.
Was ist ein Raspberry Pi?#
Raspberry Pi ist ein kleiner, erschwinglicher Einplatinencomputer. Er ist für eine Vielzahl von Projekten und Anwendungen beliebt geworden, von der Heimautomatisierung für Bastler bis hin zu industriellen Einsatzzwecken. Raspberry Pi-Boards können verschiedene Betriebssysteme ausführen und bieten GPIO-Pins (General Purpose Input/Output), die eine einfache Integration mit Sensoren, Aktoren und anderen Hardwarekomponenten ermöglichen. Es gibt sie in verschiedenen Modellen mit unterschiedlichen Spezifikationen, aber sie alle teilen dieselbe grundlegende Designphilosophie: kostengünstig, kompakt und vielseitig.
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 |
| CPU Max-Frequenz | 1.4GHz | 1.8GHz | 2.4GHz |
| GPU | Videocore IV | Videocore VI | VideoCore VII |
| GPU Max-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 | N/A | N/A | 1x PCIe 2.0 Schnittstelle |
| Maximale Leistungsaufnahme | 2,5 A bei 5 V | 3 A bei 5 V | 5 A bei 5 V (PD aktiviert) |
Was ist Raspberry Pi OS?#
Raspberry Pi OS (früher bekannt als Raspbian) ist ein Unix-ähnliches Betriebssystem basierend auf der Debian GNU/Linux-Distribution für die Raspberry Pi-Familie kompakter Einplatinencomputer, die von der Raspberry Pi Foundation vertrieben werden. Raspberry Pi OS ist hochgradig für den Raspberry Pi mit ARM-CPUs optimiert und verwendet eine modifizierte LXDE-Desktop-Umgebung mit dem Openbox-Stacking-Fenstermanager. Raspberry Pi OS befindet sich in aktiver Entwicklung, mit dem Schwerpunkt, die Stabilität und Leistung so vieler Debian-Pakete wie möglich auf dem Raspberry Pi zu verbessern.
Raspberry Pi OS auf Raspberry Pi flashen#
Das Erste, was du tun musst, wenn du einen Raspberry Pi in den Händen hältst, ist, eine Mikro-SD-Karte mit Raspberry Pi OS zu flashen, sie in das Gerät einzustecken und das Betriebssystem zu starten. Folge der detaillierten 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 Wegen für dein nächstes Computer Vision-Projekt einrichten:
Mit Docker starten#
Der schnellste Weg, um mit Ultralytics YOLO26 auf dem Raspberry Pi zu starten, ist die Verwendung eines vorgefertigten Docker-Images für den Raspberry Pi.
Führe den folgenden Befehl aus, um den Docker-Container herunterzuladen und auf dem Raspberry Pi auszuführen. Dies basiert auf dem Docker-Image arm64v8/ubuntu, 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 zum Exportieren deines Modells nach NCNN übergehen kannst.
Ohne Docker starten#
Ultralytics-Paket installieren#
Hier installieren wir das Ultralytics-Paket auf dem Raspberry Pi mit optionalen Abhängigkeiten, damit wir die PyTorch-Modelle in andere Formate exportieren können.
-
Paketliste aktualisieren, pip installieren und auf die neueste Version aktualisieren
sudo apt update sudo apt install python3-pip -y pip install -U pip -
Installiere das
ultralytics-pip-Paket mit optionalen Abhängigkeitenpip install ultralytics[export] -
Gerät neu starten
sudo reboot
NCNN auf Raspberry Pi verwenden#
Von allen von Ultralytics unterstützten Modell-Exportformaten liefert NCNN die beste Inferenzleistung auf Raspberry Pi-Geräten, da es für mobile und eingebettete Plattformen wie die ARM-Architektur hochgradig optimiert ist. Konvertiere dein YOLO26n PyTorch-Modell nach NCNN und führe dann die Inferenz mit dem exportierten Modell 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 Details zu unterstützten Exportoptionen findest du im Leitfaden zu den Modellbereitstellungsoptionen.
YOLO26 Leistungsverbesserungen 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 Steigerung der FPS um ca. 15 % (6,79 → 7,79) und liefert gleichzeitig eine höhere mAP (40,1 vs 39,5) bei einer Eingabegröße von 640 mit ONNX-exportierten Modellen auf dem Raspberry Pi 5. Die Tabelle und das Diagramm unten zeigen diesen Vergleich.
| Modell | mAP50-95(B) | Inferenzzeit (ms/im) |
|---|---|---|
| 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 |
Getestet mit Ultralytics 8.4.14.
Raspberry Pi 5 YOLO26 Benchmarks#
YOLO26-Benchmarks wurden vom Ultralytics-Team für acht verschiedene Modellformate durchgeführt, bei denen Geschwindigkeit und Genauigkeit gemessen wurden: PyTorch, TorchScript, ONNX, OpenVINO, MNN, NCNN, ExecuTorch, LiteRT. Die Benchmarks wurden auf einem Raspberry Pi 5 bei FP32-Präzision mit einer Standard-Eingabebildgröße von 640 ausgeführt.
Vergleichsdiagramm#
Wir haben nur Benchmarks für YOLO26n- und YOLO26s-Modelle aufgenommen, da andere Modellgrößen zu groß sind, um auf den Raspberry Pis ausgeführt zu werden, und keine angemessene Leistung bieten.
Detaillierte Vergleichstabelle#
Die folgende Tabelle zeigt die Benchmark-Ergebnisse für zwei verschiedene Modelle (YOLO26n, YOLO26s) über acht verschiedene Formate (PyTorch, TorchScript, ONNX, OpenVINO, MNN, NCNN, ExecuTorch, LiteRT) auf einem Raspberry Pi 5. Sie gibt den Status, die Größe, die mAP50-95(B)-Metrik und die Inferenzzeit für jede Kombination an.
| Format | Status | Größe auf dem Datenträger (MB) | mAP50-95(B) | Inferenzzeit (ms/im) |
|---|---|---|---|---|
| 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 |
Gebenchmarkt mit Ultralytics 8.4.108
Die Inferenzzeit beinhaltet keine Vor- oder Nachverarbeitung.
Unsere Ergebnisse reproduzieren#
Um die obigen 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 Benchmarking-Ergebnisse je nach genauer Hardware- und Softwarekonfiguration eines Systems sowie der aktuellen Auslastung des Systems zum Zeitpunkt der Benchmark-Ausführung variieren können. Verwende für die zuverlässigsten Ergebnisse einen Datensatz mit einer großen Anzahl von Bildern, z. B. data='coco.yaml' (5000 Validierungsbilder).
litert-converter liefert kein aarch64 Linux-Wheel, daher wird der format=litert-Export nur unter Linux x86_64 und macOS unterstützt, nicht jedoch auf dem Raspberry Pi selbst. Exportiere das .tflite-Modell auf einem Linux x86_64-Computer oder einem Mac, kopiere es auf den Raspberry Pi und verwende den Pi für die Inferenz.
Raspberry Pi-Kamera verwenden#
Wenn du den Raspberry Pi für Computer Vision-Projekte verwendest, kann es unerlässlich sein, Echtzeit-Videostreams abzugreifen, um Inferenzen durchzuführen. Der integrierte MIPI-CSI-Anschluss des Raspberry Pi ermöglicht den Anschluss offizieller Raspberry Pi-Kameramodule. In diesem Leitfaden haben wir ein Raspberry Pi Camera Module 3 verwendet, um die Videostreams abzugreifen und Inferenzen mit YOLO26-Modellen durchzuführen.
Erfahre mehr über die verschiedenen von Raspberry Pi angebotenen Kameramodule und auch wie du mit den Raspberry Pi-Kameramodulen loslegst.
Der Raspberry Pi 5 verwendet kleinere CSI-Anschlüsse als der Raspberry Pi 4 (15-polig im Vergleich zu 22-polig), daher benötigst du ein 15-poliges auf 22-poliges Adapterkabel, um eine Verbindung zu einer Raspberry Pi-Kamera herzustellen.
Kamera testen#
Führe den folgenden Befehl aus, nachdem du die Kamera an den Raspberry Pi angeschlossen hast. Du solltest etwa 5 Sekunden lang einen Live-Video-Feed von der Kamera sehen.
rpicam-helloErfahre mehr über die Verwendung von [rpicam-hello] in der offiziellen Raspberry Pi-Dokumentation (https://ultralytics-translation-0.invalid)
Inferenz mit der Kamera#
Es gibt zwei Methoden, die Raspberry Pi Kamera zu verwenden, um eine Inferenz auf YOLO26-Modellen auszuführen.
Wir können picamera2 verwenden, das vorinstalliert mit Raspberry Pi OS geliefert wird, um auf die Kamera zuzugreifen und Inferenzen für YOLO26-Modelle 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 unser Dokument zu Inferenzquellen an, wenn du den Bild-/Video-Eingabetyp ändern möchtest
Bewährte Methoden für den Einsatz des Raspberry Pi#
Es gibt einige bewährte Methoden, die du befolgen solltest, um auf einem Raspberry Pi mit YOLO26 die maximale Leistung zu erzielen.
-
Verwende eine SSD
Wenn du den Raspberry Pi für den Dauereinsatz rund um die Uhr nutzt, wird empfohlen, eine SSD für das System zu verwenden, da eine SD-Karte kontinuierlichen Schreibvorgängen nicht standhalten kann und möglicherweise beschädigt wird. Mit dem integrierten PCIe-Anschluss des Raspberry Pi 5 kannst du jetzt SSDs über einen Adapter wie die NVMe Base für Raspberry Pi 5 anschließen.
-
Installation ohne GUI
Wenn du Raspberry Pi OS flashst, kannst du wählen, keine Desktop-Umgebung (Raspberry Pi OS Lite) zu installieren; dies spart etwas Arbeitsspeicher auf dem Gerät und lässt mehr Platz für Computer-Vision-Prozesse.
-
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 ihrer Basis-Taktfrequenz von 2,4 GHz auf 2,9 GHz und die GPU von 800 MHz auf 1 GHz übertakten. Wenn das System instabil wird oder abstürzt, reduziere die Übertaktungswerte in 100-MHz-Schritten. Sorge für eine ausreichende Kühlung, da Übertaktung die Wärmeentwicklung erhöht und zu thermischer Drosselung (Thermal Throttling) führen kann.
a. Software aktualisieren
sudo apt update && sudo apt dist-upgradeb. Konfigurationsdatei zum Bearbeiten öffnen
sudo nano /boot/firmware/config.txtc. Die folgenden Zeilen am Ende hinzufügen
arm_freq=3000 gpu_freq=1000 force_turbo=1d. Speichern und beenden durch Drücken von STRG + X, dann Y und anschließend EINGABE
e. Den Raspberry Pi neu starten
Nächste Schritte#
Du hast YOLO26 erfolgreich auf deinem Raspberry Pi eingerichtet. Erkunde für weitere Schritte den Vorhersagemodus für zusätzliche Inferenzoptionen, den Exportmodus für weitere Bereitstellungsformate oder den NVIDIA Jetson-Leitfaden, wenn du mehr Rechenleistung am Edge benötigst. Besuche für die vollständige Dokumentation die Ultralytics YOLO26-Dokumentation.
Danksagungen und Quellenangaben#
Dieser Leitfaden wurde ursprünglich von Daan Eeltink für die Kashmir World Foundation erstellt, eine Organisation, die sich dem Einsatz von YOLO für den Schutz gefährdeter Arten widmet. Wir würdigen ihre Pionierarbeit und ihren pädagogischen Fokus im Bereich der Objekterkennungstechnologien.
Weitere Informationen über die Aktivitäten der Kashmir World Foundation findest du auf deren Website.
FAQ#
Um Ultralytics YOLO26 ohne Docker auf einem Raspberry Pi einzurichten, folge diesen Schritten:
- Aktualisiere die Paketliste und installiere
pip:sudo apt update sudo apt install python3-pip -y pip install -U pip - Installiere das Ultralytics-Paket mit optionalen Abhängigkeiten:
pip install ultralytics[export] - Starte das Gerät neu, um die Änderungen anzuwenden:
sudo reboot
Detaillierte Anweisungen findest du im Abschnitt Ohne Docker starten.
- Aktualisiere die Paketliste und installiere
Das NCNN-Format von Ultralytics YOLO26 ist für mobile und eingebettete Plattformen hochgradig optimiert, wodurch es ideal für die Ausführung von KI-Aufgaben auf Raspberry Pi-Geräten ist. NCNN maximiert die Inferenzleistung durch die Nutzung der ARM-Architektur und bietet eine schnellere und effizientere Verarbeitung im Vergleich zu anderen Formaten. Weitere Details zu unterstützten Exportformaten findest du unter Modell-Exportoptionen.
Du kannst ein PyTorch YOLO26-Modell entweder über Python oder CLI-Befehle 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 Details findest du im Abschnitt NCNN auf dem Raspberry Pi verwenden.
Die Hauptunterschiede sind:
- CPU: Der Raspberry Pi 4 verwendet den Broadcom BCM2711, ein Cortex-A72 64-Bit SoC, während der Raspberry Pi 5 den Broadcom BCM2712, ein Cortex-A76 64-Bit SoC, nutzt.
- Maximale CPU-Frequenz: Der Raspberry Pi 4 hat eine maximale Frequenz von 1,8 GHz, während der Raspberry Pi 5 2,4 GHz erreicht.
- Speicher: Der Raspberry Pi 4 bietet bis zu 8 GB LPDDR4-3200 SDRAM, während der Raspberry Pi 5 über LPDDR4X-4267 SDRAM verfügt, erhältlich in 4-GB- und 8-GB-Varianten.
Diese Verbesserungen tragen im Vergleich zum Raspberry Pi 4 zu besseren Leistungsbenchmarks für YOLO26-Modelle auf dem Raspberry Pi 5 bei. Weitere Details findest du in der Tabelle Vergleich der Raspberry Pi-Serien.
Es gibt zwei Methoden, um eine Raspberry Pi-Kamera für die YOLO26-Inference einzurichten:
-
Verwendung von
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() -
Verwendung eines TCP-Streams:
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")
Detaillierte Einrichtungsanweisungen findest du im Abschnitt Inferenz mit der Kamera.
-