YOLO Vision 2026:

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.

Rockchip RKNN export for NPU deployment

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

CompitoYOLOv8YOLO11YOLO26
Detect
Segment
Semantic
Depth
Classify
Pose
OBB

Esportazione in RKNN: conversione del tuo modello YOLO26#

Esporta un modello Ultralytics YOLO26 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, poiché l'esportazione su dispositivi basati su Rockchip (ARM64) non è supportata.

Installazione#

Per installare i pacchetti richiesti, esegui:

Installazione
# Install the required package for YOLO26
pip install ultralytics

Per 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#

Nota

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.

Esportazione
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")
Previsione
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")
Convalida
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#

ArgomentoTipoPredefinitoDescrizione
formatstr'rknn'Formato di destinazione per il modello esportato, che definisce la compatibilità con gli ambienti di distribuzione Rockchip.
imgszint o tuple640Dimensione dell'immagine desiderata per l'input del modello. Può essere un numero intero per immagini quadrate o una tupla (height, width) per dimensioni specifiche.
batchint1Specifica la dimensione dell'inferenza in batch del modello esportato o il numero massimo di immagini che il modello esportato elaborerà contemporaneamente in modalità predict.
namestr'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).
quantizeint o strNonePrecisione 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.
simplifyboolTrueSemplifica il grafico ONNX intermedio con onnxslim.
opsetintNoneSpecifica 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.
datastrNoneYAML 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.
fractionfloat, int o list1.0Sottoinsieme di calibrazione come rapporto, conteggio di immagini o rapporti/conteggi [train, val]; un elenco limita train o val, mentre test rimane completo.
devicestrNoneSpecifica il dispositivo per l'esportazione: GPU (device=0), CPU (device=cpu).
Suggerimento

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:

Installazione
# Install the required package for YOLO26
pip install ultralytics

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

Nota

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.

Screenshot dell'esportazione RKNN

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.

Performance
ModelloFormatoPrecisionStatoDimensione (MB)mAP50-95(B)Tempo di inferenza (ms/im)
YOLO26nrknnFP167.20.47758.5
YOLO26nrknnINT84.10.46341.2
YOLO26srknnFP1621.00.56993.8
YOLO26srknnINT812.00.55461.9
YOLO26mrknnFP1643.00.608226.3
YOLO26mrknnINT822.00.603122.0
YOLO26lrknnFP1653.00.628264.7
YOLO26lrknnINT828.00.617145.3
YOLO26xrknnFP16113.00.664655.4
YOLO26xrknnINT858.00.649287.4

Testato con ultralytics 8.4.60

Nota

La convalida per i benchmark sopra riportati è stata effettuata utilizzando il dataset COCO128. Il tempo di inferenza non include la pre/post-elaborazione.

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'argomento name, come rk3588, rk3566 o 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.

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

Commenti