Esportazione Rockchip RKNN per modelli Ultralytics YOLO11
Quando si distribuiscono modelli di computer vision su dispositivi embedded, specialmente quelli alimentati da processori Rockchip, è essenziale disporre di un formato di modello compatibile. L'esportazione di modelli Ultralytics YOLO11 in formato RKNN garantisce prestazioni ottimizzate e compatibilità con l'hardware di Rockchip. Questa guida ti guiderà attraverso la conversione dei tuoi modelli YOLO11 in formato RKNN, consentendo un'implementazione efficiente sulle piattaforme Rockchip.
Nota
Questa guida è stata testata con Radxa Rock 5B basato su Rockchip RK3588 e Radxa Zero 3W basato su Rockchip RK3566. Si prevede che funzioni su altri dispositivi basati su Rockchip che supportano rknn-toolkit2 come RK3576, RK3568, RK3562, RV1103, RV1106, RV1103B, RV1106B e RK2118.
Cos'è Rockchip?
Rinomata per la fornitura di soluzioni versatili ed efficienti dal punto di vista energetico, Rockchip progetta System-on-Chips (SoC) avanzati che alimentano una vasta gamma di elettronica di consumo, applicazioni industriali e tecnologie di IA. Con architettura basata su ARM, unità di elaborazione neurale (NPU) integrate e supporto multimediale ad alta risoluzione, i SoC Rockchip consentono prestazioni all'avanguardia per dispositivi come tablet, smart TV, sistemi IoT e applicazioni di edge AI. Aziende come Radxa, ASUS, Pine64, Orange Pi, Odroid, Khadas e Banana Pi offrono una varietà di prodotti basati su SoC Rockchip, estendendone ulteriormente la portata e l'impatto in diversi mercati.
RKNN Toolkit
L'RKNN Toolkit è un insieme di strumenti e librerie forniti da Rockchip per facilitare l'implementazione di modelli di deep learning sulle loro piattaforme hardware. RKNN, o Rockchip Neural Network, è il formato proprietario utilizzato da questi strumenti. I modelli RKNN sono progettati per sfruttare appieno l'accelerazione hardware fornita dalla NPU (Neural Processing Unit) di Rockchip, garantendo prestazioni elevate nelle attività di IA su dispositivi come RK3588, RK3566, RV1103, RV1106 e altri sistemi basati su Rockchip.
Caratteristiche principali dei modelli RKNN
I modelli RKNN offrono diversi vantaggi per il deployment su piattaforme Rockchip:
- Ottimizzato per NPU: I modelli RKNN sono specificamente ottimizzati per essere eseguiti sulle NPU di Rockchip, garantendo massime prestazioni ed efficienza.
- Bassa latenza: il formato RKNN riduce al minimo la latenza di inferenza, che è fondamentale per le applicazioni in tempo reale sui dispositivi edge.
- Personalizzazione specifica per la piattaforma: I modelli RKNN possono essere adattati a piattaforme Rockchip specifiche, consentendo un migliore utilizzo delle risorse hardware.
- Efficienza energetica: Sfruttando l'hardware NPU dedicato, i modelli RKNN consumano meno energia rispetto all'elaborazione basata su CPU o GPU, prolungando la durata della batteria per i dispositivi portatili.
Flash OS su hardware Rockchip
Il primo passo dopo aver messo le mani su un dispositivo basato su Rockchip è flashare un sistema operativo in modo che l'hardware possa avviarsi in un ambiente funzionante. In questa guida indicheremo le guide introduttive dei due dispositivi che abbiamo testato, ovvero Radxa Rock 5B e Radxa Zero 3W.
Esporta in RKNN: Conversione del tuo modello YOLO11
Esporta un modello Ultralytics YOLO11 in formato RKNN ed esegui l'inferenza con il modello esportato.
Nota
Assicurati di utilizzare un PC Linux basato su X86 per esportare il modello in RKNN perché l'esportazione su dispositivi basati su Rockchip (ARM64) non è supportata.
Installazione
Per installare i pacchetti richiesti, esegui:
Installazione
# Install the required package for YOLO11
pip install ultralytics
Per istruzioni dettagliate e best practice relative al processo di installazione, consulta la nostra guida all'installazione di Ultralytics. Durante l'installazione dei pacchetti richiesti per YOLO11, in caso di difficoltà, consulta la nostra guida ai problemi comuni per soluzioni e suggerimenti.
Utilizzo
Nota
L'esportazione è attualmente supportata solo per i modelli di rilevamento. In futuro sarà disponibile un maggiore supporto per i modelli.
Utilizzo
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to RKNN format
# 'name' can be one of rk3588, rk3576, rk3566, rk3568, rk3562, rv1103, rv1106, rv1103b, rv1106b, rk2118
model.export(format="rknn", name="rk3588") # creates '/yolo11n_rknn_model'
# Export a YOLO11n PyTorch model to RKNN format
# 'name' can be one of rk3588, rk3576, rk3566, rk3568, rk3562, rv1103, rv1106, rv1103b, rv1106b, rk2118
yolo export model=yolo11n.pt format=rknn name=rk3588 # creates '/yolo11n_rknn_model'
Argomenti di esportazione
Argomento | Tipo | Predefinito | Descrizione |
---|---|---|---|
format |
str |
'rknn' |
Formato di destinazione per il modello esportato, che definisce la compatibilità con vari ambienti di distribuzione. |
imgsz |
int oppure tuple |
640 |
Dimensione dell'immagine desiderata per l'input del modello. Può essere un numero intero per immagini quadrate o una tupla (height, width) per dimensioni specifiche. |
batch |
int |
1 |
Specifica la dimensione del batch di inferenza del modello di esportazione o il numero massimo di immagini che il modello esportato elaborerà contemporaneamente in modalità predict . |
name |
str |
'rk3588' |
Specifica il modello Rockchip (rk3588, rk3576, rk3566, rk3568, rk3562, rv1103, rv1106, rv1103b, rv1106b, rk2118) |
device |
str |
None |
Specifica il dispositivo per l'esportazione: GPU (device=0 ), CPU (device=cpu ). |
Suggerimento
Assicurati di utilizzare una macchina x86 Linux quando esporti in RKNN.
Per maggiori dettagli sul processo di esportazione, visita la pagina della documentazione di Ultralytics sull'esportazione.
Distribuzione di modelli RKNN YOLO11 esportati
Una volta esportati con successo i tuoi modelli Ultralytics YOLO11 in formato RKNN, il passo successivo è distribuire questi modelli su dispositivi basati su Rockchip.
Installazione
Per installare i pacchetti richiesti, esegui:
Installazione
# Install the required package for YOLO11
pip install ultralytics
Utilizzo
Utilizzo
from ultralytics import YOLO
# Load the exported RKNN model
rknn_model = YOLO("./yolo11n_rknn_model")
# Run inference
results = rknn_model("https://ultralytics.com/images/bus.jpg")
# Run inference with the exported model
yolo predict model='./yolo11n_rknn_model' source='https://ultralytics.com/images/bus.jpg'
Nota
Se riscontri un messaggio di log che indica che la versione di runtime di RKNN non corrisponde alla versione di RKNN Toolkit e l'inferenza fallisce, sostituisci /usr/lib/librknnrt.so
con l'ufficiale file librknnrt.so.
Applicazioni nel mondo reale
I dispositivi basati su Rockchip con modelli YOLO11 RKNN possono essere utilizzati in varie applicazioni:
- Smart Surveillance: Implementare sistemi efficienti di rilevamento degli oggetti per il monitoraggio della sicurezza con un basso consumo energetico.
- Automazione industriale: Implementa il controllo qualità e il rilevamento dei difetti direttamente su dispositivi embedded.
- Retail Analytics: Traccia il comportamento dei clienti e la gestione dell'inventario in tempo reale senza dipendenza dal cloud.
- Agricoltura intelligente: Monitorare la salute delle colture e rilevare i parassiti utilizzando la computer vision in agricoltura.
- Robotica Autonoma: Abilita la navigazione basata sulla visione e il rilevamento di ostacoli su piattaforme con risorse limitate.
Benchmark
I benchmark di YOLO11 riportati di seguito sono stati eseguiti dal team di Ultralytics su Radxa Rock 5B basato su Rockchip RK3588 con rknn
misurando velocità e precisione.
Prestazioni
Modello | Formato | Stato | Dimensione (MB) | mAP50-95(B) | Tempo di inferenza (ms/im) |
---|---|---|---|---|---|
YOLO11n | rknn |
✅ | 7.4 | 0.505 | 71.5 |
YOLO11s | rknn |
✅ | 20.7 | 0.578 | 98.9 |
YOLO11m | rknn |
✅ | 41.9 | 0.629 | 235.3 |
YOLO11l | rknn |
✅ | 53.3 | 0.633 | 282.0 |
YOLO11x | rknn |
✅ | 114.6 | 0.687 | 679.2 |
Valutato con ultralytics 8.3.152
Nota
La convalida per i benchmark di cui sopra è stata eseguita utilizzando il dataset COCO128. Il tempo di inferenza non include il pre/post-processing.
Riepilogo
In questa guida, hai imparato come esportare i modelli Ultralytics YOLO11 in formato RKNN per migliorare la loro implementazione su piattaforme Rockchip. Sei stato anche introdotto a RKNN Toolkit e ai vantaggi specifici dell'utilizzo di modelli RKNN per applicazioni edge AI.
La combinazione di Ultralytics YOLO11 e della tecnologia NPU di Rockchip fornisce una soluzione efficiente per l'esecuzione di attività avanzate di computer vision su dispositivi embedded. Questo approccio consente il rilevamento di oggetti in tempo reale e altre applicazioni di intelligenza artificiale visiva con un consumo energetico minimo e prestazioni elevate.
Per ulteriori dettagli sull'utilizzo, visitare la documentazione ufficiale di RKNN.
Inoltre, se desideri saperne di più su altre integrazioni di Ultralytics YOLO11, visita la nostra pagina della guida all'integrazione. Lì troverai molte risorse e approfondimenti utili.
FAQ
Come posso esportare il mio modello Ultralytics YOLO in formato RKNN?
Puoi esportare facilmente il tuo modello Ultralytics YOLO in formato RKNN usando il export()
method nel pacchetto python Ultralytics o tramite l'interfaccia a riga di comando (CLI). Assicurati di utilizzare un PC Linux basato su x86 per il processo di esportazione, poiché i dispositivi ARM64 come Rockchip non sono supportati per questa operazione. Puoi specificare la piattaforma Rockchip di destinazione utilizzando il name
argomento, come rk3588
, rk3566
, o altri. Questo processo genera un modello RKNN ottimizzato pronto per essere implementato sul tuo dispositivo Rockchip, sfruttando la sua Neural Processing Unit (NPU) per un'inferenza accelerata.
Esempio
from ultralytics import YOLO
# Load your YOLO model
model = YOLO("yolo11n.pt")
# Export to RKNN format for a specific Rockchip platform
model.export(format="rknn", name="rk3588")
yolo export model=yolo11n.pt format=rknn name=rk3588
Quali sono i vantaggi dell'utilizzo dei modelli RKNN sui dispositivi Rockchip?
I modelli RKNN sono progettati specificamente per sfruttare le capacità di accelerazione hardware delle NPU (Neural Processing Units) di Rockchip. Questa ottimizzazione si traduce in velocità di inferenza significativamente più elevate e latenza ridotta rispetto all'esecuzione di formati di modello generici come ONNX o TensorFlow Lite sullo stesso hardware. L'utilizzo di modelli RKNN consente un uso più efficiente delle risorse del dispositivo, con conseguente minor consumo energetico e migliori prestazioni complessive, particolarmente importanti per le applicazioni in tempo reale sui dispositivi edge. Convertendo i tuoi modelli Ultralytics YOLO in RKNN, puoi ottenere prestazioni ottimali sui dispositivi alimentati da SoC Rockchip come RK3588, RK3566 e altri.
Posso distribuire modelli RKNN su dispositivi di altri produttori come NVIDIA o Google?
I modelli RKNN sono ottimizzati specificamente per le piattaforme Rockchip e le loro NPU integrate. Sebbene sia tecnicamente possibile eseguire un modello RKNN su altre piattaforme utilizzando l'emulazione software, non beneficerai dell'accelerazione hardware fornita dai dispositivi Rockchip. Per prestazioni ottimali su altre piattaforme, si consiglia di esportare i tuoi modelli Ultralytics YOLO in formati specificamente progettati per tali piattaforme, come TensorRT per GPU NVIDIA o TensorFlow Lite per Google Edge TPU. Ultralytics supporta l'esportazione in un'ampia gamma di formati, garantendo la compatibilità con vari acceleratori hardware.
Quali piattaforme Rockchip sono supportate per il deployment del modello RKNN?
L'esportazione Ultralytics YOLO in formato RKNN supporta un'ampia gamma di piattaforme Rockchip, tra cui le popolari RK3588, RK3576, RK3566, RK3568, RK3562, RV1103, RV1106, RV1103B, RV1106B e RK2118. Queste piattaforme si trovano comunemente in dispositivi di produttori come Radxa, ASUS, Pine64, Orange Pi, Odroid, Khadas e Banana Pi. Questo ampio supporto garantisce la possibilità di implementare i tuoi modelli RKNN ottimizzati su vari dispositivi basati su Rockchip, dai computer a scheda singola ai sistemi industriali, sfruttando appieno le loro capacità di accelerazione AI per migliorare le prestazioni nelle tue applicazioni di computer vision.
Come si confrontano le prestazioni dei modelli RKNN con altri formati sui dispositivi Rockchip?
I modelli RKNN generalmente superano altri formati come ONNX o TensorFlow Lite sui dispositivi Rockchip grazie alla loro ottimizzazione per le NPU di Rockchip. Ad esempio, i benchmark su Radxa Rock 5B (RK3588) mostrano che YOLO11n in formato RKNN raggiunge un tempo di inferenza di 99,5 ms/immagine, significativamente più veloce rispetto ad altri formati. Questo vantaggio in termini di prestazioni è coerente tra le varie dimensioni del modello YOLO11, come dimostrato nella sezione dei benchmark. Sfruttando l'hardware NPU dedicato, i modelli RKNN riducono al minimo la latenza e massimizzano il throughput, rendendoli ideali per le applicazioni in tempo reale sui dispositivi edge basati su Rockchip.