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.
Nota

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 3Raspberry Pi 4Raspberry Pi 5
CPUBroadcom BCM2837, SoC Cortex-A53 64BitBroadcom BCM2711, SoC Cortex-A72 64BitBroadcom BCM2712, SoC Cortex-A76 64Bit
Frequenza massima CPU1.4GHz1.8GHz2.4GHz
GPUVideocore IVVideocore VIVideoCore VII
Frequenza massima GPU400Mhz500Mhz800Mhz
Memoria1GB LPDDR2 SDRAM1GB, 2GB, 4GB, 8GB LPDDR4-3200 SDRAM4GB, 8GB LPDDR4X-4267 SDRAM
PCIeN/DN/DInterfaccia 1xPCIe 2.0
Consumo energetico massimo2.5A@5V3A@5V5A@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 $t

Una 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.

  1. 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
  2. Installa il pacchetto pip ultralytics con le dipendenze opzionali

    pip install ultralytics[export]
  3. 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.

Esempio
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")
Suggerimento

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.

YOLO26 benchmarks on RPi 5
Benchmarked with Ultralytics 8.4.14
Prestazioni
ModellomAP50-95(B)Tempo di inferenza (ms/im)
YOLO26n40.1128.42
YOLO26s47.8352.84
YOLO26m52.5993.78
YOLO26l54.41259.46
YOLO26x56.92636.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.

YOLO26 benchmarks on RPi 5
Benchmarked with Ultralytics 8.4.1

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.

Prestazioni
FormatoStatoDimensioni su disco (MB)mAP50-95(B)Tempo di inferenza (ms/im)
PyTorch5.30.4798302.15
TorchScript9.80.4764357.58
ONNX9.50.4764130.33
OpenVINO9.60.481870.74
TF SavedModel24.60.4764213.58
TF GraphDef9.50.4764213.5
TF Lite9.90.4764251.41
MNN9.40.478490.89
NCNN9.40.480567.69
ExecuTorch9.40.4764148.36

Benchmark effettuato con Ultralytics 8.4.1

Nota

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:

Esempio
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.

Suggerimento
Nota

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-hello
Suggerimento

Inferenza con fotocamera

Esistono 2 metodi per utilizzare la Raspberry Pi Camera per eseguire l'inferenza sui modelli YOLO26.

Utilizzo

Possiamo usare picamera2, preinstallato con Raspberry Pi OS, per accedere alla fotocamera ed eseguire l'inferenza sui modelli YOLO26.

Esempio
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()
Suggerimento

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.

  1. 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.

  2. 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.

  3. 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-upgrade

    b. Apri per modificare il file di configurazione

    sudo nano /boot/firmware/config.txt

    c. Aggiungi le seguenti righe in fondo

    arm_freq=3000
    gpu_freq=1000
    force_turbo=1

    d. 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:

  1. Aggiorna l'elenco dei pacchetti e installa pip:
    sudo apt update
    sudo apt install python3-pip -y
    pip install -U pip
  2. Installa il pacchetto Ultralytics con le dipendenze opzionali:
    pip install ultralytics[export]
  3. 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:

Esempio
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:

  1. 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()
  2. Utilizzando uno stream TCP:

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

Per istruzioni di configurazione dettagliate, visita la sezione Inferenza con fotocamera.

Commenti