Esportazione Rockchip RKNN per modelli Ultralytics YOLO26

Quando si distribuiscono modelli di computer vision su dispositivi embedded, specialmente 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 Rockchip. Questa guida ti accompagnerà nella conversione dei tuoi modelli YOLO26 nel formato RKNN, 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 e RV1126B. Le destinazioni che supportano solo l'inferenza INT8 (RV1103, RV1106, RV1103B, RV1106B) non sono ancora supportate perché l'esportazione RKNN di Ultralytics produce attualmente solo modelli FP16.

Cos'è Rockchip?

Rinomato per fornire soluzioni versatili ed efficienti dal punto di vista energetico, Rockchip progetta System-on-Chips (SoC) avanzati che alimentano un'ampia gamma di elettronica di consumo, applicazioni industriali e tecnologie AI. Grazie all'architettura basata su ARM, alle unità di elaborazione neurale (NPU) integrate e al supporto multimediale ad alta risoluzione, i SoC Rockchip offrono 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 sui SoC Rockchip, estendendone ulteriormente la portata e l'impatto su diversi mercati.

Toolkit RKNN

Il Toolkit RKNN è 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 AI 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 su piattaforme Rockchip:

  • Ottimizzato per NPU: I modelli RKNN sono specificamente ottimizzati per l'esecuzione sulle NPU di Rockchip, garantendo le massime prestazioni ed efficienza.
  • Bassa latenza: Il formato RKNN riduce al minimo la latenza di inferenza, fondamentale per le applicazioni in tempo reale su dispositivi edge.
  • Personalizzazione specifica per 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, estendendo la durata della batteria per i dispositivi portatili.

Installazione del sistema operativo sull'hardware Rockchip

Il primo passo dopo aver ottenuto 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.

Esportazione in RKNN: conversione del tuo modello YOLO26

Esporta un modello Ultralytics YOLO26 nel 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 necessari, esegui:

!!! Tip "Installazione"

# Install the required package for YOLO26
pip install ultralytics

Per istruzioni dettagliate e best practice relative al processo di installazione, controlla la nostra guida all'installazione di Ultralytics. Se durante l'installazione dei pacchetti richiesti per YOLO26 riscontri difficoltà, consulta la nostra guida ai problemi comuni per soluzioni e suggerimenti.

Utilizzo

Nota

L'esportazione è attualmente supportata solo per i modelli di rilevamento. Il supporto per altri modelli arriverà in futuro.

Utilizzo
from ultralytics import YOLO

# Load the YOLO26 model
model = YOLO("yolo26n.pt")

# Export the model to RKNN format
# 'name' can be one of rk3588, rk3576, rk3566, rk3568, rk3562, rk2118, rv1126b (FP16). INT8-only targets rv1103, rv1106, rv1103b, rv1106b are not yet supported.
model.export(format="rknn", name="rk3588")  # creates '/yolo26n_rknn_model'

Argomenti di esportazione

ArgomentoTipoPredefinitoDescrizione
formatstr'rknn'Formato di destinazione per il modello esportato, che definisce la compatibilità con vari ambienti di distribuzione.
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 batch del modello di esportazione o il numero massimo di immagini che il modello esportato elaborerà simultaneamente in modalità predict.
namestr'rk3588'Specifica la destinazione Rockchip. Supporto FP16: rk3588, rk3576, rk3566, rk3568, rk3562, rk2118, rv1126b. Le destinazioni solo INT8 (rv1103, rv1106, rv1103b, rv1106b) non sono ancora supportate.
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 YOLO26 RKNN esportati

Una volta esportati con successo i tuoi modelli Ultralytics YOLO26 nel formato RKNN, il passo successivo è distribuire questi modelli su dispositivi basati su Rockchip.

Installazione

Per installare i pacchetti necessari, esegui:

!!! Tip "Installazione"

# Install the required package for YOLO26
pip install ultralytics

Utilizzo

Utilizzo
from ultralytics import YOLO

# Load the exported RKNN model
rknn_model = YOLO("./yolo26n_rknn_model")

# Run inference
results = rknn_model("https://ultralytics.com/images/bus.jpg")
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 esportazione RKNN

Applicazioni nel mondo reale

I dispositivi basati su Rockchip con modelli YOLO26 RKNN possono essere utilizzati in varie applicazioni:

  • Smart Surveillance: Distribuisci sistemi di rilevamento oggetti efficienti per il monitoraggio della sicurezza con basso consumo energetico.
  • Automazione industriale: Implementa il controllo qualità e il rilevamento dei difetti direttamente sui dispositivi embedded.
  • Analisi al dettaglio: 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 YOLO26 seguenti sono stati eseguiti dal team di Ultralytics su Radxa Rock 5B basato su Rockchip RK3588 con formato modello rknn, misurando velocità e accuratezza.

Prestazioni
ModelloFormatoStatoDimensioni (MB)mAP50-95(B)Tempo di inferenza (ms/im)
YOLO26nrknn7.10.47965.7
YOLO26srknn20.90.57199.2
YOLO26mrknn42.50.610235.3
YOLO26lrknn52.10.630280.5
YOLO26xrknn112.20.666669.1

Benchmarked con ultralytics 8.4.23

Nota

La convalida per i benchmark di cui sopra è 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 nel formato RKNN per migliorarne la distribuzione sulle piattaforme Rockchip. Ti sono stati anche presentati il Toolkit RKNN e i vantaggi specifici dell'utilizzo di modelli RKNN per applicazioni edge AI.

La combinazione di Ultralytics YOLO26 e la tecnologia NPU di Rockchip fornisce una soluzione efficiente per l'esecuzione di attività avanzate di computer vision su dispositivi embedded. Questo approccio abilita il rilevamento oggetti in tempo reale e altre applicazioni di visione AI con un consumo energetico minimo e prestazioni elevate.

Per ulteriori dettagli sull'utilizzo, visita la documentazione ufficiale 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

Come esporto il mio modello Ultralytics YOLO nel formato RKNN?

Puoi esportare facilmente il tuo modello Ultralytics YOLO nel formato RKNN usando 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 usando 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 Neural Processing Unit (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")

Quali sono i vantaggi dell'utilizzo di modelli RKNN su dispositivi Rockchip?

I modelli RKNN sono specificamente progettati per sfruttare le capacità di accelerazione hardware delle Neural Processing Unit (NPU) 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, portando a un minor consumo energetico e migliori prestazioni complessive, elementi critici per le applicazioni in tempo reale sui dispositivi edge. Convertendo i tuoi modelli Ultralytics YOLO in RKNN, puoi ottenere prestazioni ottimali su 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 specificamente ottimizzati per le piattaforme Rockchip e le loro NPU integrate. Sebbene tecnicamente tu possa 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, 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 Edge TPU di Google. Ultralytics supporta l'esportazione in un'ampia gamma di formati, garantendo la compatibilità con vari acceleratori hardware.

Quali piattaforme Rockchip sono supportate per la distribuzione di modelli RKNN?

L'esportazione di Ultralytics YOLO nel formato RKNN supporta attualmente le piattaforme Rockchip con inferenza FP16: RK3588, RK3576, RK3566, RK3568, RK3562, RK2118 e RV1126B. Le destinazioni solo INT8 (RV1103, RV1106, RV1103B, RV1106B) non sono ancora supportate perché le loro NPU richiedono una quantizzazione, che è nella roadmap. Queste piattaforme si trovano comunemente in dispositivi di produttori come Radxa, ASUS, Pine64, Orange Pi, Odroid, Khadas e Banana Pi, permettendoti di distribuire i tuoi modelli RKNN ottimizzati su una gamma di dispositivi basati su Rockchip, dai computer a scheda singola ai sistemi industriali.

Come si confrontano le prestazioni dei modelli RKNN con altri formati su 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 YOLO26n nel formato RKNN raggiunge un tempo di inferenza di 99,5 ms/immagine, significativamente più veloce di altri formati. Questo vantaggio prestazionale è coerente su varie dimensioni di modelli YOLO26, come dimostrato nella sezione 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