Guida rapida: Raspberry Pi con Ultralytics YOLO26
Questa guida completa fornisce una procedura dettagliata per implementare Ultralytics YOLO26 su dispositivi Raspberry Pi. Inoltre, mostra i benchmark delle prestazioni per dimostrare le capacità di YOLO26 su questi piccoli e potenti dispositivi.
Watch: Raspberry Pi 5 updates and improvements.
Questa guida è stata testata con Raspberry Pi 4 e Raspberry Pi 5 con l'ultima versione di Raspberry Pi OS Bookworm (Debian 12). L'utilizzo di questa guida per dispositivi Raspberry Pi più vecchi, come Raspberry Pi 3, dovrebbe funzionare a patto che sia installato lo stesso Raspberry Pi OS Bookworm.
Cos'è Raspberry Pi?
Raspberry Pi è un computer a scheda singola piccolo ed economico. È diventato popolare per un'ampia gamma di progetti e applicazioni, dall'automazione domestica per hobbisti agli usi industriali. Le schede Raspberry Pi sono in grado di eseguire una varietà di sistemi operativi e offrono pin GPIO (General Purpose Input/Output) che consentono una facile integrazione con sensori, attuatori e altri componenti hardware. Sono disponibili in diversi modelli con specifiche variabili, ma condividono tutti la stessa filosofia di base: essere economici, compatti e versatili.
Confronto della serie Raspberry Pi
| Raspberry Pi 3 | Raspberry Pi 4 | Raspberry Pi 5 | |
|---|---|---|---|
| CPU | Broadcom BCM2837, SoC Cortex-A53 64Bit | Broadcom BCM2711, SoC Cortex-A72 64Bit | Broadcom BCM2712, SoC Cortex-A76 64Bit |
| Frequenza massima CPU | 1.4GHz | 1.8GHz | 2.4GHz |
| GPU | Videocore IV | Videocore VI | VideoCore VII |
| Frequenza massima GPU | 400Mhz | 500Mhz | 800Mhz |
| Memoria | 1GB LPDDR2 SDRAM | 1GB, 2GB, 4GB, 8GB LPDDR4-3200 SDRAM | 4GB, 8GB LPDDR4X-4267 SDRAM |
| PCIe | N/D | N/D | Interfaccia 1xPCIe 2.0 |
| Consumo energetico massimo | 2.5A@5V | 3A@5V | 5A@5V (PD abilitato) |
Cos'è Raspberry Pi OS?
Raspberry Pi OS (precedentemente noto come Raspbian) è un sistema operativo simile a Unix basato sulla distribuzione Debian GNU/Linux per la famiglia di computer compatti a scheda singola Raspberry Pi distribuiti dalla Raspberry Pi Foundation. Raspberry Pi OS è altamente ottimizzato per Raspberry Pi con CPU ARM e utilizza un ambiente desktop LXDE modificato con il window manager stacking Openbox. Raspberry Pi OS è in fase di sviluppo attivo, con un'enfasi sul miglioramento della stabilità e delle prestazioni del maggior numero possibile di pacchetti Debian su Raspberry Pi.
Flash di Raspberry Pi OS su Raspberry Pi
La prima cosa da fare dopo aver preso un Raspberry Pi è flashare una scheda micro-SD con Raspberry Pi OS, inserirla nel dispositivo e avviare il sistema operativo. Segui la documentazione introduttiva di Raspberry Pi per preparare il tuo dispositivo al primo utilizzo.
Configura Ultralytics
Ci sono due modi per configurare il pacchetto Ultralytics su Raspberry Pi per costruire il tuo prossimo progetto di Computer Vision. Puoi usarne uno qualsiasi.
Inizia con Docker
Il modo più veloce per iniziare con Ultralytics YOLO26 su Raspberry Pi è utilizzare l'immagine Docker pre-costruita per Raspberry Pi.
Esegui il comando sottostante per scaricare il container Docker e avviarlo su Raspberry Pi. Si basa sull'immagine Docker arm64v8/debian che contiene Debian 12 (Bookworm) in un ambiente Python3.
t=ultralytics/ultralytics:latest-arm64
sudo docker pull $t && sudo docker run -it --ipc=host $tUna volta fatto, passa alla sezione Usa NCNN su Raspberry Pi.
Inizia senza Docker
Installa il pacchetto Ultralytics
Qui installeremo il pacchetto Ultralytics su Raspberry Pi con le dipendenze opzionali, in modo da poter esportare i modelli PyTorch in altri formati.
-
Aggiorna l'elenco dei pacchetti, installa pip ed esegui l'upgrade all'ultima versione
sudo apt update sudo apt install python3-pip -y pip install -U pip -
Installa il pacchetto pip
ultralyticscon le dipendenze opzionalipip install ultralytics[export] -
Riavvia il dispositivo
sudo reboot
Usa NCNN su Raspberry Pi
Tra tutti i formati di esportazione dei modelli supportati da Ultralytics, NCNN offre le migliori prestazioni di inferenza quando si lavora con dispositivi Raspberry Pi perché NCNN è altamente ottimizzato per piattaforme mobili/embedded (come l'architettura ARM).
Converti il modello in NCNN ed esegui l'inferenza
Il modello YOLO26n in formato PyTorch viene convertito in NCNN per eseguire l'inferenza con il modello esportato.
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")Per maggiori dettagli sulle opzioni di esportazione supportate, visita la pagina della documentazione di Ultralytics sulle opzioni di distribuzione.
Miglioramenti delle prestazioni di YOLO26 rispetto a YOLO11
YOLO26 è progettato specificamente per l'esecuzione su dispositivi con limitazioni hardware come il Raspberry Pi 5. Rispetto a YOLO11n, YOLO26n ottiene un aumento di circa il 15% in FPS (6,79 → 7,79) offrendo al contempo un mAP più elevato (40,1 vs 39,5) con una dimensione di input di 640 utilizzando modelli esportati in ONNX su Raspberry Pi 5. La tabella e il grafico seguenti mostrano questo confronto.
| Modello | mAP50-95(B) | Tempo di inferenza (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 |
Benchmark effettuato con Ultralytics 8.4.14.
Benchmark di YOLO26 su Raspberry Pi 5
I benchmark di YOLO26 sono stati eseguiti dal team di Ultralytics su dieci diversi formati di modello misurando velocità e precisione: PyTorch, TorchScript, ONNX, OpenVINO, TF SavedModel, TF GraphDef, TF Lite, MNN, NCNN, ExecuTorch. I benchmark sono stati eseguiti su un Raspberry Pi 5 con precisione FP32 con una dimensione predefinita dell'immagine di input di 640.
Grafico di confronto
Abbiamo incluso solo i benchmark per i modelli YOLO26n e YOLO26s perché le altre dimensioni dei modelli sono troppo grandi per essere eseguite su Raspberry Pi e non offrono prestazioni decenti.
Tabella di confronto dettagliata
La tabella seguente rappresenta i risultati del benchmark per due diversi modelli (YOLO26n, YOLO26s) in dieci formati diversi (PyTorch, TorchScript, ONNX, OpenVINO, TF SavedModel, TF GraphDef, TF Lite, MNN, NCNN, ExecuTorch), in esecuzione su Raspberry Pi 5, fornendoci lo stato, la dimensione, la metrica mAP50-95(B) e il tempo di inferenza per ogni combinazione.
| Formato | Stato | Dimensioni su disco (MB) | mAP50-95(B) | Tempo di inferenza (ms/im) |
|---|---|---|---|---|
| PyTorch | ✅ | 5.3 | 0.4798 | 302.15 |
| TorchScript | ✅ | 9.8 | 0.4764 | 357.58 |
| ONNX | ✅ | 9.5 | 0.4764 | 130.33 |
| OpenVINO | ✅ | 9.6 | 0.4818 | 70.74 |
| TF SavedModel | ✅ | 24.6 | 0.4764 | 213.58 |
| TF GraphDef | ✅ | 9.5 | 0.4764 | 213.5 |
| TF Lite | ✅ | 9.9 | 0.4764 | 251.41 |
| MNN | ✅ | 9.4 | 0.4784 | 90.89 |
| NCNN | ✅ | 9.4 | 0.4805 | 67.69 |
| ExecuTorch | ✅ | 9.4 | 0.4764 | 148.36 |
Benchmark effettuato con Ultralytics 8.4.1
Il tempo di inferenza non include la pre/post-elaborazione.
Riproduci i nostri risultati
Per riprodurre i benchmark Ultralytics di cui sopra su tutti i formati di esportazione, esegui questo codice:
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)Nota che i risultati dei benchmark potrebbero variare in base all'esatta configurazione hardware e software del sistema, nonché al carico di lavoro corrente del sistema al momento dell'esecuzione dei benchmark. Per i risultati più affidabili, usa un dataset con un gran numero di immagini, ad esempio data='coco.yaml' (5000 immagini di convalida).
Usa la fotocamera di Raspberry Pi
Quando utilizzi Raspberry Pi per progetti di Computer Vision, può essere essenziale acquisire feed video in tempo reale per eseguire l'inferenza. Il connettore MIPI CSI integrato sul Raspberry Pi ti consente di collegare i moduli fotocamera ufficiali Raspberry PI. In questa guida, abbiamo utilizzato un Raspberry Pi Camera Module 3 per acquisire i feed video ed eseguire l'inferenza utilizzando i modelli YOLO26.
Scopri di più sui diversi moduli fotocamera offerti da Raspberry Pi e anche su come iniziare a utilizzare i moduli fotocamera Raspberry Pi.
Raspberry Pi 5 utilizza connettori CSI più piccoli rispetto al Raspberry Pi 4 (15 pin contro 22 pin), quindi avrai bisogno di un cavo adattatore da 15 pin a 22 pin per connetterti a una Raspberry Pi Camera.
Prova la fotocamera
Esegui il comando seguente dopo aver collegato la fotocamera al Raspberry Pi. Dovresti vedere un feed video in diretta dalla fotocamera per circa 5 secondi.
rpicam-helloScopri di più sull'utilizzo di rpicam-hello nella documentazione ufficiale di Raspberry Pi
Inferenza con fotocamera
Esistono 2 metodi per utilizzare la Raspberry Pi Camera per eseguire l'inferenza sui modelli YOLO26.
Possiamo usare picamera2, preinstallato con Raspberry Pi OS, per accedere alla fotocamera ed eseguire l'inferenza sui modelli 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()Consulta il nostro documento sulle Fonti di inferenza se desideri modificare il tipo di input di immagine/video
Best practice quando si utilizza Raspberry Pi
Ci sono alcune best practice da seguire per ottenere le massime prestazioni sui Raspberry Pi che eseguono YOLO26.
-
Utilizza un SSD
Quando utilizzi Raspberry Pi per un uso continuativo 24x7, si consiglia di utilizzare un SSD per il sistema, poiché una scheda SD non sarà in grado di resistere a scritture continue e potrebbe rompersi. Con il connettore PCIe integrato sul Raspberry Pi 5, ora puoi collegare SSD utilizzando un adattatore come la NVMe Base per Raspberry Pi 5.
-
Installa senza GUI
Quando installi Raspberry Pi OS, puoi scegliere di non installare l'ambiente desktop (Raspberry Pi OS Lite); questo può risparmiare un po' di RAM sul dispositivo, lasciando più spazio per l'elaborazione della computer vision.
-
Overclocca Raspberry Pi
Se desideri una spinta nelle prestazioni durante l'esecuzione dei modelli Ultralytics YOLO26 su Raspberry Pi 5, puoi overcloccare la CPU dalla sua frequenza base di 2,4GHz a 2,9GHz e la GPU da 800MHz a 1GHz. Se il sistema diventa instabile o si blocca, riduci i valori di overclock con incrementi di 100MHz. Assicurati che sia presente un raffreddamento adeguato, poiché l'overclock aumenta la generazione di calore e può portare al thermal throttling.
a. Aggiorna il software
sudo apt update && sudo apt dist-upgradeb. Apri per modificare il file di configurazione
sudo nano /boot/firmware/config.txtc. Aggiungi le seguenti righe in fondo
arm_freq=3000 gpu_freq=1000 force_turbo=1d. Salva ed esci premendo CTRL + X, poi Y, e premi INVIO
e. Riavvia il Raspberry Pi
Prossimi passaggi
Hai configurato correttamente YOLO sul tuo Raspberry Pi. Per ulteriori approfondimenti e supporto, visita i Documenti Ultralytics YOLO26 e la Kashmir World Foundation.
Riconoscimenti e citazioni
Questa guida è stata creata inizialmente da Daan Eeltink per la Kashmir World Foundation, un'organizzazione dedicata all'uso di YOLO per la conservazione delle specie in via di estinzione. Riconosciamo il loro lavoro pionieristico e il focus educativo nel campo delle tecnologie di object detection.
Per maggiori informazioni sulle attività della Kashmir World Foundation, puoi visitare il loro sito web.
FAQ
Come posso configurare Ultralytics YOLO26 su un Raspberry Pi senza utilizzare Docker?
Per configurare Ultralytics YOLO26 su un Raspberry Pi senza Docker, segui questi passaggi:
- Aggiorna l'elenco dei pacchetti e installa
pip:sudo apt update sudo apt install python3-pip -y pip install -U pip - Installa il pacchetto Ultralytics con le dipendenze opzionali:
pip install ultralytics[export] - Riavvia il dispositivo per applicare le modifiche:
sudo reboot
Per istruzioni dettagliate, fai riferimento alla sezione Avvio senza Docker.
Perché dovrei utilizzare il formato NCNN di Ultralytics YOLO26 su Raspberry Pi per attività di IA?
Il formato NCNN di Ultralytics YOLO26 è altamente ottimizzato per piattaforme mobili ed embedded, rendendolo ideale per eseguire attività di IA su dispositivi Raspberry Pi. NCNN massimizza le prestazioni di inferenza sfruttando l'architettura ARM, fornendo un'elaborazione più rapida ed efficiente rispetto ad altri formati. Per maggiori dettagli sulle opzioni di esportazione supportate, visita la pagina della documentazione di Ultralytics sulle opzioni di distribuzione.
Come posso convertire un modello YOLO26 in formato NCNN per l'uso su Raspberry Pi?
Puoi convertire un modello PyTorch YOLO26 in formato NCNN utilizzando i comandi Python o CLI:
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")Per maggiori dettagli, vedi la sezione Utilizzare NCNN su Raspberry Pi.
Quali sono le differenze hardware tra Raspberry Pi 4 e Raspberry Pi 5 rilevanti per l'esecuzione di YOLO26?
Le differenze chiave includono:
- CPU: Raspberry Pi 4 utilizza Broadcom BCM2711, SoC Cortex-A72 a 64 bit, mentre Raspberry Pi 5 utilizza Broadcom BCM2712, SoC Cortex-A76 a 64 bit.
- Frequenza CPU massima: Raspberry Pi 4 ha una frequenza massima di 1,8GHz, mentre Raspberry Pi 5 raggiunge 2,4GHz.
- Memoria: Raspberry Pi 4 offre fino a 8GB di LPDDR4-3200 SDRAM, mentre Raspberry Pi 5 presenta LPDDR4X-4267 SDRAM, disponibile nelle varianti da 4GB e 8GB.
Questi miglioramenti contribuiscono a migliori benchmark di prestazioni per i modelli YOLO26 su Raspberry Pi 5 rispetto al Raspberry Pi 4. Fai riferimento alla tabella Confronto serie Raspberry Pi per maggiori dettagli.
Come posso configurare un Raspberry Pi Camera Module per funzionare con Ultralytics YOLO26?
Esistono due metodi per configurare una Raspberry Pi Camera per l'inferenza YOLO26:
-
Utilizzando
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() -
Utilizzando uno stream TCP:
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")
Per istruzioni di configurazione dettagliate, visita la sezione Inferenza con fotocamera.