Esportazione Rockchip RKNN per i modelli Ultralytics YOLO26#
Quando distribuisci modelli di computer vision su dispositivi embedded, in particolare quelli alimentati da processori Rockchip, avere un formato di modello compatibile è essenziale. Esportare i modelli Ultralytics YOLO26 nel formato RKNN garantisce prestazioni ottimizzate e compatibilità con l'hardware di Rockchip. Questa guida ti accompagnerà nella conversione dei tuoi modelli YOLO26 nel formato RKNN, incluse le esportazioni in virgola mobile e quantizzate INT8, consentendo una distribuzione efficiente sulle piattaforme Rockchip.
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, RK2118, RV1126B, RV1103, RV1106, RV1103B e RV1106B. Le destinazioni solo INT8 come RV1103 e RV1106 richiedono quantize=8.
Cos'è Rockchip?#
Rinomata per offrire soluzioni versatili ed efficienti dal punto di vista energetico, Rockchip progetta System-on-Chip (SoC) avanzati che alimentano un'ampia gamma di elettronica di consumo, applicazioni industriali e tecnologie AI. Grazie a un'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 edge AI. Aziende come Radxa, ASUS, Pine64, Orange Pi, Odroid, Khadas e Banana Pi offrono una varietà di prodotti basati su SoC Rockchip, estendendo ulteriormente la loro portata e il loro impatto in diversi mercati.
RKNN Toolkit#
Il RKNN Toolkit è un insieme di strumenti e librerie forniti da Rockchip per facilitare la distribuzione 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 la distribuzione sulle piattaforme Rockchip:
- Ottimizzati per NPU: i modelli RKNN sono ottimizzati specificamente per l'esecuzione sulle NPU di Rockchip, garantendo massime prestazioni ed efficienza.
- Bassa latenza: il formato RKNN minimizza 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 specifiche piattaforme Rockchip, 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.
Installazione del sistema operativo sull'hardware Rockchip#
Il primo passo dopo aver messo le mani su un dispositivo basato su Rockchip è installare 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.
Attività supportate#
L'esportazione RKNN supporta tutti e sette i task di Ultralytics. La segmentazione semantica e la stima della profondità sono disponibili solo con YOLO26, l'unica famiglia che include quelle teste.
Esportazione in RKNN: conversione del tuo modello YOLO26#
Esporta un modello Ultralytics YOLO26 in formato RKNN ed esegui l'inferenza con il modello esportato.
Assicurati di utilizzare un PC Linux basato su x86 per esportare il modello in RKNN, poiché l'esportazione su dispositivi basati su Rockchip (ARM64) non è supportata.
Installazione#
Per installare i pacchetti richiesti, esegui:
# Install the required package for YOLO26
pip install ultralyticsPer istruzioni dettagliate e migliori pratiche relative al processo di installazione, consulta la nostra Guida all'installazione di Ultralytics. Se riscontri difficoltà durante l'installazione dei pacchetti richiesti per YOLO26, consulta la nostra Guida ai problemi comuni per soluzioni e suggerimenti.
Utilizzo#
L'esportazione FP16 è supportata per tutti i task. L'esportazione INT8 è attualmente supportata solo per i modelli di rilevamento, con il supporto per altri task in arrivo in futuro.
Il formato RKNN supporta le modalità Export, Predict e Validate. L'inferenza e la validazione vengono eseguite sull'hardware NPU di Rockchip. Esporta il tuo modello, quindi carica il modello esportato per eseguire l'inferenza o validarne la precisione. Per impostazione predefinita, l'esportazione RKNN utilizza il percorso di compilazione in virgola mobile (quantize=16) per le destinazioni Rockchip compatibili con FP16. Usa quantize=8 per compilare un modello RKNN quantizzato INT8 con i dati di calibrazione. L'esportazione RKNN non espone una modalità FP32 separata; il valore predefinito FP16 non richiede FP32.
from ultralytics import YOLO
# Load a YOLO26 model (replace with any supported task model)
model = YOLO("yolo26n-obb.pt")
# Export the model to RKNN format
model.export(format="rknn", name="rk3588") # creates '/yolo26n-obb_rknn_model'
# Export an INT8-quantized RKNN model with calibration data
model.export(format="rknn", name="rk3588", quantize=8, data="dota8.yaml")from ultralytics import YOLO
# Load the exported RKNN model
model = YOLO("./yolo26n-obb_rknn_model")
# Run inference
results = model("https://ultralytics.com/images/boats.jpg")from ultralytics import YOLO
# Load the exported RKNN model
model = YOLO("./yolo26n-obb_rknn_model")
# Validate accuracy on the DOTA8 dataset
metrics = model.val(data="dota8.yaml")Argomenti di esportazione#
| Argomento | Tipo | Predefinito | Descrizione |
|---|---|---|---|
format | str | 'rknn' | Formato di destinazione per il modello esportato, che definisce la compatibilità con gli ambienti di distribuzione Rockchip. |
imgsz | int o 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 dell'inferenza in batch del modello esportato o il numero massimo di immagini che il modello esportato elaborerà contemporaneamente in modalità predict. |
name | str | 'rk3588' | Specifica la destinazione Rockchip. rk3588, rk3576, rk3566, rk3568, rk3562, rk2118 e rv1126b supportano FP16 (quantize=16 o non impostato) e INT8 (quantize=8); rv1103, rv1106, rv1103b e rv1106b sono solo INT8 (quantize=8 o non impostato). |
quantize | int o str | None | Precisione di quantizzazione: non impostato o 16 compila FP16 per le destinazioni compatibili con FP16; se non impostato, abilita automaticamente INT8 per le destinazioni solo INT8; 8 compila INT8. L'esportazione RKNN non ha una modalità FP32 separata. Sostituisce i flag deprecati half/int8. |
simplify | bool | True | Semplifica il grafico ONNX intermedio con onnxslim. |
opset | int | None | Specifica la versione dell'opset ONNX per il grafo ONNX intermedio. Se non impostata, il valore predefinito è 19 e i valori superiori a 19 vengono ridotti a 19. |
data | str | None | YAML del dataset utilizzato per la calibrazione INT8; la classificazione richiede invece una cartella del dataset o il nome di un dataset incorporato. Se viene omesso con quantize=8, Ultralytics seleziona il dataset di calibrazione predefinito per il task del modello. |
fraction | float, int o list | 1.0 | Sottoinsieme di calibrazione come rapporto, conteggio di immagini o rapporti/conteggi [train, val]; un elenco limita train o val, mentre test rimane completo. |
device | str | None | Specifica il dispositivo per l'esportazione: GPU (device=0), CPU (device=cpu). |
Assicurati di utilizzare una macchina Linux x86 durante l'esportazione in RKNN.
Per ulteriori dettagli sul processo di esportazione, visita la pagina della documentazione di Ultralytics sull'esportazione.
Distribuzione dei modelli RKNN YOLO26 esportati#
Una volta esportati con successo i tuoi modelli Ultralytics YOLO26 in formato RKNN, il passo successivo è distribuire questi modelli su dispositivi basati su Rockchip.
Installazione#
Per installare i pacchetti richiesti, esegui:
# Install the required package for YOLO26
pip install ultralyticsUna volta installato, esegui l'inferenza e la validazione sul tuo dispositivo Rockchip esattamente come mostrato nella sezione Utilizzo sopra: il file _rknn_model esportato si carica direttamente con YOLO(...).
Se riscontri un messaggio di log che indica che la versione del runtime RKNN non corrisponde alla versione del toolkit RKNN e l'inferenza fallisce, sostituisci /usr/lib/librknnrt.so con il file librknnrt.so ufficiale.

Applicazioni nel mondo reale#
I dispositivi alimentati da Rockchip con modelli RKNN YOLO26 possono essere utilizzati in varie applicazioni:
- Sorveglianza intelligente: distribuisci sistemi di rilevamento oggetti efficienti per il monitoraggio della sicurezza con un basso consumo energetico.
- Automazione industriale: implementa il controllo qualità e il rilevamento dei difetti direttamente sui dispositivi embedded.
- Analisi retail: traccia il comportamento dei clienti e la gestione dell'inventario in tempo reale senza dipendenza dal cloud.
- Agricoltura intelligente: monitora la salute delle colture e rileva i parassiti usando la computer vision in agricoltura.
- Robotica autonoma: abilita la navigazione basata sulla visione e il rilevamento degli ostacoli su piattaforme con risorse limitate.
Benchmark#
I benchmark di YOLO26 seguenti sono stati eseguiti dal team di Ultralytics su Radxa Rock 5B basato su Rockchip RK3588 con il formato di modello rknn, misurando velocità e precisione.
| Modello | Formato | Precision | Stato | Dimensione (MB) | mAP50-95(B) | Tempo di inferenza (ms/im) |
|---|---|---|---|---|---|---|
| YOLO26n | rknn | FP16 | ✅ | 7.2 | 0.477 | 58.5 |
| YOLO26n | rknn | INT8 | ✅ | 4.1 | 0.463 | 41.2 |
| YOLO26s | rknn | FP16 | ✅ | 21.0 | 0.569 | 93.8 |
| YOLO26s | rknn | INT8 | ✅ | 12.0 | 0.554 | 61.9 |
| YOLO26m | rknn | FP16 | ✅ | 43.0 | 0.608 | 226.3 |
| YOLO26m | rknn | INT8 | ✅ | 22.0 | 0.603 | 122.0 |
| YOLO26l | rknn | FP16 | ✅ | 53.0 | 0.628 | 264.7 |
| YOLO26l | rknn | INT8 | ✅ | 28.0 | 0.617 | 145.3 |
| YOLO26x | rknn | FP16 | ✅ | 113.0 | 0.664 | 655.4 |
| YOLO26x | rknn | INT8 | ✅ | 58.0 | 0.649 | 287.4 |
Testato con ultralytics 8.4.60
La convalida per i benchmark sopra riportati è stata effettuata utilizzando il dataset COCO128. Il tempo di inferenza non include la pre/post-elaborazione.
Riepilogo#
In questa guida, hai imparato come esportare i modelli Ultralytics YOLO26 in formato RKNN per migliorarne la distribuzione sulle piattaforme Rockchip. Ti sono stati inoltre presentati RKNN Toolkit e i vantaggi specifici dell'utilizzo dei modelli RKNN per le applicazioni edge AI.
La combinazione di Ultralytics YOLO26 e della tecnologia NPU di Rockchip offre 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 IA visiva con un consumo energetico minimo e prestazioni elevate.
Per ulteriori dettagli sull'utilizzo, visita la documentazione ufficiale di RKNN.
Inoltre, se desideri saperne di più su altre integrazioni di Ultralytics YOLO26, visita la nostra pagina della guida all'integrazione. Lì troverai molte risorse e approfondimenti utili.
FAQ#
Puoi facilmente esportare il tuo modello Ultralytics YOLO nel formato RKNN utilizzando il metodo
export()nel pacchetto Python di 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 l'argomentoname, comerk3588,rk3566o altri. Questo processo genera un modello RKNN ottimizzato pronto per la distribuzione sul tuo dispositivo Rockchip, sfruttando la sua Unità di Elaborazione Neurale (NPU) per un'inferenza accelerata.Esempiofrom ultralytics import YOLO # Load your YOLO model model = YOLO("yolo26n.pt") # Export to RKNN format for a specific Rockchip platform model.export(format="rknn", name="rk3588")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 superiori e in una latenza ridotta rispetto all'esecuzione di formati di modello generici come ONNX o LiteRT sullo stesso hardware. L'utilizzo di modelli RKNN consente un uso più efficiente delle risorse del dispositivo, portando a un minor consumo energetico e a migliori prestazioni complessive, un aspetto fondamentale per le applicazioni in tempo reale sui dispositivi edge. Convertendo i tuoi modelli Ultralytics YOLO in RKNN, puoi ottenere prestazioni ottimali su dispositivi dotati di SoC Rockchip come RK3588, RK3566 e altri.
I modelli RKNN sono specificamente ottimizzati per le piattaforme Rockchip e le loro NPU integrate. Sebbene tu possa tecnicamente eseguire un modello RKNN su altre piattaforme utilizzando l'emulazione software, non trarrai vantaggio dall'accelerazione hardware fornita dai dispositivi Rockchip. Per prestazioni ottimali su altre piattaforme, è consigliabile esportare i tuoi modelli Ultralytics YOLO in formati specificamente progettati per tali piattaforme, come TensorRT per GPU NVIDIA o Edge TPU per i dispositivi Coral di Google. Ultralytics supporta l'esportazione verso un'ampia gamma di formati, garantendo la compatibilità con vari acceleratori hardware.
L'esportazione di Ultralytics YOLO nel formato RKNN supporta le piattaforme Rockchip con build RKNN in virgola mobile, tra cui RK3588, RK3576, RK3566, RK3568, RK3562, RK2118 e RV1126B. Supporta anche l'esportazione RKNN quantizzata INT8 con
quantize=8, che è richiesta per le destinazioni solo INT8 come RV1103, RV1106, RV1103B e RV1106B. Queste piattaforme si trovano comunemente nei dispositivi di produttori come Radxa, ASUS, Pine64, Orange Pi, Odroid, Khadas e Banana Pi, consentendoti di distribuire i tuoi modelli RKNN ottimizzati su una gamma di dispositivi alimentati da Rockchip, dai computer a scheda singola ai sistemi industriali.I modelli RKNN generalmente offrono prestazioni migliori rispetto ad altri formati come ONNX o LiteRT sui dispositivi Rockchip grazie alla loro ottimizzazione per le NPU di Rockchip. Ad esempio, i benchmark sul Radxa Rock 5B (RK3588) mostrano che YOLO26n in formato RKNN raggiunge un tempo di inferenza di 58,5 ms/immagine in FP16 e 41,2 ms/immagine in INT8, significativamente più veloce rispetto ad altri formati. Questo vantaggio in termini di prestazioni è coerente con varie dimensioni dei modelli YOLO26, 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 applicazioni in tempo reale su dispositivi edge basati su Rockchip.