Link to this sectionGuida rapida: Raspberry Pi con Ultralytics YOLO26#
Raspberry Pi è un computer piccolo ed economico che esegue Ultralytics YOLO26 per l'object detection in tempo reale all'edge: non serve alcuna GPU. Questa guida ti accompagna durante il deployment di YOLO26 su Raspberry Pi 4 e 5: installazione del sistema operativo, installazione di Ultralytics, esportazione in NCNN per l'inference più veloce su ARM ed esecuzione di predizioni su un flusso video in diretta. Include inoltre benchmark delle prestazioni su dieci formati di esportazione, così puoi scegliere il miglior compromesso tra velocità e accuracy per il tuo hardware.
Vai a configurazione di Ultralytics, esportazione in NCNN ed esecuzione dell'inference, benchmark o inference con videocamera.
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 meno recenti, come il Raspberry Pi 3, dovrebbe funzionare a patto che sia installato lo stesso Raspberry Pi OS Bookworm.
Link to this sectionCos'è il 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 design di base: essere a basso costo, compatti e versatili.
Link to this sectionConfronto 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 |
| Assorbimento massimo di potenza | 2.5A@5V | 3A@5V | 5A@5V (PD abilitato) |
Link to this sectionCos'è il 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 a scheda singola compatti 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 gestore di finestre 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.
Link to this sectionFlashare Raspberry Pi OS su Raspberry Pi#
La prima cosa da fare dopo aver ottenuto un Raspberry Pi è flashare una scheda micro-SD con Raspberry Pi OS, inserirla nel dispositivo ed eseguire il boot del sistema operativo. Segui la documentazione introduttiva di Raspberry Pi per preparare il tuo dispositivo al primo utilizzo.
Link to this sectionConfigura Ultralytics#
Puoi configurare il pacchetto Ultralytics su Raspberry Pi in due modi per il tuo prossimo progetto di Computer Vision:
Link to this sectionInizia con Docker#
Il modo più veloce per iniziare con Ultralytics YOLO26 su Raspberry Pi è utilizzare un'immagine Docker predefinita per Raspberry Pi.
Esegui il comando sottostante per scaricare il container Docker ed eseguirlo su Raspberry Pi. Si basa sull'immagine Docker arm64v8/ubuntu, che esegue Ubuntu 24.04 in un ambiente Python3.
t=ultralytics/ultralytics:latest-arm64
sudo docker pull $t && sudo docker run -it --ipc=host $tL'immagine Docker include già Ultralytics, quindi puoi passare direttamente all'esportazione del modello in NCNN.
Link to this sectionInizia senza Docker#
Link to this sectionInstalla il pacchetto Ultralytics#
Qui installeremo il pacchetto Ultralytics su Raspberry Pi con le dipendenze opzionali, così da poter esportare i modelli PyTorch in altri formati.
-
Aggiorna l'elenco dei pacchetti, installa pip ed esegui l'aggiornamento all'ultima versione
sudo apt update sudo apt install python3-pip -y pip install -U pip -
Installa il pacchetto pip
ultralyticscon dipendenze opzionalipip install ultralytics[export] -
Riavvia il dispositivo
sudo reboot
Link to this sectionUsa NCNN su Raspberry Pi#
Tra tutti i formati di esportazione dei modelli supportati da Ultralytics, NCNN offre le migliori prestazioni di inference sui dispositivi Raspberry Pi perché è altamente ottimizzato per piattaforme mobile/embedded come l'architettura ARM. Converti il tuo modello YOLO26n PyTorch in NCNN, quindi esegui l'inference 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, consulta la guida alle opzioni di deployment del modello.
Link to this sectionMiglioramenti delle prestazioni di YOLO26 rispetto a YOLO11#
YOLO26 è progettato specificamente per essere eseguito su dispositivi con vincoli 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 contro 39.5) a una dimensione di input di 640 con 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.
Link to this sectionBenchmark 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 accuracy: PyTorch, TorchScript, ONNX, OpenVINO, TF SavedModel, TF GraphDef, TF Lite, MNN, NCNN, ExecuTorch. I benchmark sono stati eseguiti su un Raspberry Pi 5 a precision FP32 con una dimensione dell'immagine di input predefinita di 640.
Link to this sectionTabella 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.
Link to this sectionTabella di confronto dettagliata#
La tabella sottostante rappresenta i risultati del benchmark per due diversi modelli (YOLO26n, YOLO26s) su dieci diversi formati (PyTorch, TorchScript, ONNX, OpenVINO, TF SavedModel, TF GraphDef, TF Lite, MNN, NCNN, ExecuTorch), in esecuzione su un Raspberry Pi 5, fornendoci stato, dimensione, metrica mAP50-95(B) e tempo di inferenza per ogni combinazione.
| Formato | Stato | Dimensione 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 inference non include pre/post-processing.
Link to this sectionRiproduci i nostri risultati#
Per riprodurre i benchmark di 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)Tieni presente che i risultati del benchmarking possono variare in base all'esatta configurazione hardware e software di un sistema, così come al carico di lavoro corrente del sistema al momento dell'esecuzione dei benchmark. Per risultati più affidabili, utilizza un dataset con un gran numero di immagini, ad esempio data='coco.yaml' (5000 immagini di validazione).
Link to this sectionUsa la fotocamera Raspberry Pi#
Quando utilizzi il 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 con i moduli fotocamera Raspberry Pi.
Il 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 collegarlo a una fotocamera Raspberry Pi.
Link to this sectionProva la fotocamera#
Esegui il seguente comando 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 sulla documentazione ufficiale di Raspberry Pi
Link to this sectionInferenza con fotocamera#
Esistono due metodi per utilizzare la Raspberry Pi Camera per eseguire l'inference 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()Controlla il nostro documento sulle Sorgenti di Inference se vuoi cambiare il tipo di input immagine/video
Link to this sectionBest practice durante l'utilizzo di Raspberry Pi#
Ci sono alcune best practice da seguire per ottenere le massime prestazioni su Raspberry Pi che eseguono YOLO26.
-
Usa un SSD
Quando utilizzi Raspberry Pi per un uso continuativo 24x7, si consiglia di utilizzare un SSD per il sistema perché una scheda SD non è in grado di sopportare scritture continue e potrebbe rompersi. Con il connettore PCIe integrato su 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) e questo può risparmiare un po' di RAM sul dispositivo, lasciando più spazio per l'elaborazione della visione artificiale.
-
Overclock del Raspberry Pi
Se vuoi un piccolo incremento di prestazioni durante l'esecuzione dei modelli Ultralytics YOLO26 su Raspberry Pi 5, puoi effettuare l'overclock della CPU dalla base di 2.4GHz a 2.9GHz e della 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 il file di configurazione per modificarlo
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
Link to this sectionPassaggi successivi#
Hai configurato correttamente YOLO26 sul tuo Raspberry Pi. Per andare oltre, esplora la modalità Predict per ulteriori opzioni di inference, la modalità Export per ulteriori formati di deployment, o la guida NVIDIA Jetson se hai bisogno di più potenza di calcolo all'edge. Per la documentazione completa, visita la documentazione di Ultralytics YOLO26.
Link to this sectionRingraziamenti e citazioni#
Questa guida è stata inizialmente creata 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 l'attenzione educativa nel campo delle tecnologie di rilevamento degli oggetti.
Per ulteriori informazioni sulle attività della Kashmir World Foundation, puoi visitare il loro sito web.
Link to this sectionFAQ#
Link to this sectionCome configuro Ultralytics YOLO26 su un Raspberry Pi senza usare 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.
Link to this sectionPerché dovrei usare il formato NCNN di Ultralytics YOLO26 su Raspberry Pi per attività di IA?#
Il formato NCNN di Ultralytics YOLO26 è altamente ottimizzato per piattaforme mobile ed embedded, rendendolo ideale per eseguire attività di AI su dispositivi Raspberry Pi. NCNN massimizza le prestazioni di inference sfruttando l'architettura ARM, offrendo un'elaborazione più rapida ed efficiente rispetto ad altri formati. Per maggiori dettagli sui formati di esportazione supportati, consulta le opzioni di esportazione del modello.
Link to this sectionCome posso convertire un modello YOLO26 nel formato NCNN per l'utilizzo su Raspberry Pi?#
Puoi convertire un modello PyTorch YOLO26 nel 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 Usa NCNN su Raspberry Pi.
Link to this sectionQuali 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 SDRAM LPDDR4-3200, mentre Raspberry Pi 5 presenta SDRAM LPDDR4X-4267, disponibile nelle varianti da 4GB e 8GB.
Questi miglioramenti contribuiscono a migliori benchmark delle prestazioni per i modelli YOLO26 su Raspberry Pi 5 rispetto a Raspberry Pi 4. Fai riferimento alla tabella Confronto Serie Raspberry Pi per maggiori dettagli.
Link to this sectionCome posso configurare un modulo fotocamera Raspberry Pi per funzionare con Ultralytics YOLO26?#
Esistono due metodi per configurare una fotocamera Raspberry Pi per l'inferenza YOLO26:
-
Utilizzo di
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() -
Utilizzo di 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.