Vai al contenuto

Rockchip RKNN Export per i modelli Ultralytics YOLO11

Quando si distribuiscono modelli di computer vision su dispositivi embedded, in particolare quelli alimentati da processori Rockchip, è essenziale disporre di un formato di modello compatibile. L'esportazione dei Ultralytics YOLO11 in formato RKNN garantisce prestazioni ottimizzate e compatibilità con l'hardware Rockchip. Questa guida vi guiderà nella conversione dei modelli YOLO11 in formato RKNN, consentendo una distribuzione efficiente sulle piattaforme Rockchip.

RKNN

Nota

Questa guida è stata testata con Radxa Rock 5B, basato su Rockchip RK3588 e Radxa Zero 3W, basato su Rockchip RK3566. Dovrebbe funzionare anche con altri dispositivi basati su Rockchip che supportano rknn-toolkit2, come RK3576, RK3568, RK3562, RV1103, RV1106, RV1103B, RV1106B e RK2118.

Che cos'è il Rockchip?

Rinomata per la fornitura di 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 all'architettura basata su ARM, alle unità di elaborazione neurale (NPU) integrate e al supporto multimediale ad alta risoluzione, i SoC Rockchip consentono di ottenere prestazioni all'avanguardia per dispositivi come tablet, smart TV, sistemi IoT e applicazioni AI edge. Aziende come Radxa, ASUS, Pine64, Orange Pi, Odroid, Khadas e Banana Pi offrono una varietà di prodotti basati sui SoC Rockchip, estendendo ulteriormente la loro portata e il loro impatto su diversi mercati.

Toolkit RKNN

Il Toolkit RKNN è un insieme di strumenti e librerie forniti da Rockchip per facilitare l'implementazione di modelli di deep learning sulle proprie 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 Rockchip.

Caratteristiche principali dei modelli RKNN

I modelli RKNN offrono diversi vantaggi per l'implementazione su piattaforme Rockchip:

  • Ottimizzato per NPU: I modelli RKNN sono specificamente ottimizzati per l'esecuzione sulle NPU Rockchip, assicurando il massimo delle prestazioni e dell'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 della piattaforma: I modelli RKNN possono essere adattati a specifiche piattaforme Rockchip, consentendo un migliore utilizzo delle risorse hardware.

Sistema operativo flash su hardware Rockchip

Il primo passo da compiere dopo aver messo le mani su un dispositivo basato su Rockchip è quello di flashare un sistema operativo in modo che l'hardware possa avviarsi in un ambiente funzionante. In questa guida vi illustreremo le guide all'avvio dei due dispositivi che abbiamo testato: Radxa Rock 5B e Radxa Zero 3W.

Esportazione in RKNN: Conversione del modello YOLO11

Esportare un modello Ultralytics YOLO11 in formato RKNN ed eseguire l'inferenza con il modello esportato.

Nota

Assicurarsi 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, eseguire:

Installazione

# Install the required package for YOLO11
pip install ultralytics

Per istruzioni dettagliate e buone pratiche relative al processo di installazione, consultare la nostra Guida all'installazione diUltralytics . Durante l'installazione dei pacchetti necessari per YOLO11, se si incontrano difficoltà, consultare la nostra guida ai problemi comuni per trovare soluzioni e suggerimenti.

Utilizzo

Nota

L'esportazione è attualmente supportata solo per i modelli di rilevamento. In futuro saranno supportati altri 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 o tuple 640 Dimensione desiderata dell'immagine per l'input del modello. Può essere un numero intero per le immagini quadrate o una tupla (height, width) per le dimensioni specifiche.
batch int 1 Specifica la dimensione dell'inferenza batch del modello di esportazione o il numero massimo di immagini che il modello esportato elaborerà contemporaneamente in predict modalità.
name str rk3588 Specifica il modello di Rockchip (rk3588, rk3576, rk3566, rk3568, rk3562, rv1103, rv1106, rv1103b, rv1106b, rk2118).

Per maggiori dettagli sul processo di esportazione, visitare la pagina di documentazioneUltralytics sull'esportazione.

Distribuzione dei modelli RKNN esportati YOLO11

Una volta esportati con successo i modelli Ultralytics YOLO11 in formato RKNN, il passo successivo è la distribuzione di questi modelli sui dispositivi basati su Rockchip.

Installazione

Per installare i pacchetti richiesti, eseguire:

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 si riscontra un messaggio di log che indica che la versione del runtime RKNN non corrisponde alla versione di RKNN Toolkit e l'inferenza non riesce, sostituire /usr/lib/librknnrt.so con il servizio ufficiale file librknnrt.so.

Schermata di esportazione RKNN

Parametri di riferimento

YOLO11 I benchmark riportati di seguito sono stati eseguiti dal team di Ultralytics su Radxa Rock 5B basato su Rockchip RK3588 con rknn formato modello che misura velocità e precisione.

Modello Formato Stato Dimensione (MB) mAP50-95(B) Tempo di inferenza (ms/im)
YOLO11n rknn 7.4 0.61 99.5
YOLO11s rknn 20.7 0.741 122.3
YOLO11m rknn 41.9 0.764 298.0
YOLO11l rknn 53.3 0.72 319.6
YOLO11x rknn 114.6 0.828 632.1

Nota

La validazione per il benchmark di cui sopra è stata effettuata utilizzando il dataset coco8.

Sintesi

In questa guida avete appreso come esportare i modelli Ultralytics YOLO11 in formato RKNN per migliorarne la distribuzione sulle piattaforme Rockchip. È stato inoltre presentato il Toolkit RKNN e i vantaggi specifici dell'uso dei modelli RKNN per le applicazioni di intelligenza artificiale.

Per ulteriori dettagli sull'uso, visitate la documentazione ufficiale di RKNN.

Inoltre, se desiderate saperne di più su altre integrazioni di Ultralytics YOLO11 , visitate la nostra pagina della guida alle integrazioni. Troverete molte risorse e approfondimenti utili.

FAQ

Come si esporta il modello Ultralytics YOLO in formato RKNN?

È possibile esportare facilmente il modello Ultralytics YOLO in formato RKNN utilizzando il file export() nel pacchetto Ultralytics Python o tramite l'interfaccia a riga di comando (CLI). Assicuratevi 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. È possibile specificare la piattaforma Rockchip di destinazione utilizzando il comando name come ad esempio rk3588, rk3566o altri. Questo processo genera un modello RKNN ottimizzato, pronto per essere implementato sul 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 unità di elaborazione neurale (NPU) di Rockchip. Questa ottimizzazione si traduce in una velocità di inferenza significativamente maggiore e in una latenza ridotta rispetto all'esecuzione di formati di modelli generici come ONNX o TensorFlow Lite sullo stesso hardware. L'uso dei modelli RKNN consente un uso più efficiente delle risorse del dispositivo, con conseguente riduzione del consumo energetico e migliori prestazioni complessive, particolarmente importanti per le applicazioni in tempo reale sui dispositivi edge. Convertendo i modelli Ultralytics YOLO in RKNN, è possibile ottenere prestazioni ottimali su dispositivi dotati di SoC Rockchip come RK3588, RK3566 e altri.

È possibile distribuire i 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 si beneficerà dell'accelerazione hardware fornita dai dispositivi Rockchip. Per ottenere prestazioni ottimali su altre piattaforme, si consiglia di esportare i modelli Ultralytics YOLO in formati specificamente progettati per tali piattaforme, come TensorRT per le GPU NVIDIA o TensorFlow Lite per Google's 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 l'implementazione del modello RKNN?

L'esportazione di 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 sono comunemente presenti nei dispositivi di produttori come Radxa, ASUS, Pine64, Orange Pi, Odroid, Khadas e Banana Pi. Questo ampio supporto garantisce la possibilità di distribuire i modelli RKNN ottimizzati su vari dispositivi Rockchip, dai computer single-board ai sistemi industriali, sfruttando appieno le capacità di accelerazione dell'intelligenza artificiale per migliorare le prestazioni delle applicazioni di computer vision.

Come si comportano i modelli RKNN rispetto ad 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 Rockchip. Ad esempio, i benchmark sul Radxa Rock 5B (RK3588) mostrano che YOLO11n in formato RKNN raggiunge un tempo di inferenza di 99,5 ms/immagine, significativamente più veloce di altri formati. Questo vantaggio prestazionale è coerente con 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.

📅C reato 20 giorni fa ✏️ Aggiornato 4 giorni fa

Commenti