Come esportare in NCNN da YOLO11 per un'implementazione fluida
L'implementazione di modelli di computer vision su dispositivi con potenza di calcolo limitata, come sistemi mobili o embedded, può essere complessa. È necessario assicurarsi di utilizzare un formato ottimizzato per prestazioni ottimali. Questo assicura che anche i dispositivi con potenza di elaborazione limitata possano gestire bene attività avanzate di computer vision.
La funzionalità di esportazione nel formato NCNN consente di ottimizzare i modelli Ultralytics YOLO11 per applicazioni leggere basate su dispositivi. In questa guida, ti accompagneremo attraverso il processo di conversione dei tuoi modelli nel formato NCNN, semplificando le prestazioni dei tuoi modelli su vari dispositivi mobili ed embedded.
Perché dovresti esportare in NCNN?
Il framework NCNN, sviluppato da Tencent, è un framework di calcolo di inferenza di reti neurali ad alte prestazioni ottimizzato specificamente per piattaforme mobili, inclusi telefoni cellulari, dispositivi embedded e dispositivi IoT. NCNN è compatibile con una vasta gamma di piattaforme, tra cui Linux, Android, iOS e macOS.
NCNN è noto per la sua velocità di elaborazione rapida sulle CPU mobili e consente una rapida implementazione di modelli di deep learning su piattaforme mobili. Ciò semplifica la creazione di app intelligenti, mettendo la potenza dell'IA a portata di mano.
Caratteristiche principali dei modelli NCNN
I modelli NCNN offrono una vasta gamma di funzionalità chiave che consentono il machine learning on-device, aiutando gli sviluppatori a eseguire i propri modelli su dispositivi mobili, embedded ed edge:
-
Efficiente e ad Alte Prestazioni: i modelli NCNN sono realizzati per essere efficienti e leggeri, ottimizzati per l'esecuzione su dispositivi mobili ed embedded come Raspberry Pi con risorse limitate. Possono anche ottenere prestazioni elevate con elevata precisione su varie attività basate sulla computer vision.
-
Quantizzazione: i modelli NCNN spesso supportano la quantizzazione, che è una tecnica che riduce la precisione dei pesi e delle attivazioni del modello. Ciò porta a ulteriori miglioramenti delle prestazioni e riduce l'impronta di memoria.
-
Compatibilità: i modelli NCNN sono compatibili con framework di deep learning popolari come TensorFlow, Caffe e ONNX. Questa compatibilità consente agli sviluppatori di utilizzare facilmente modelli e flussi di lavoro esistenti.
-
Facile da Usare: i modelli NCNN sono progettati per una facile integrazione in varie applicazioni, grazie alla loro compatibilità con i framework di deep learning più diffusi. Inoltre, NCNN offre strumenti intuitivi per la conversione di modelli tra diversi formati, garantendo una agevole interoperabilità nel panorama dello sviluppo.
Opzioni di implementazione con NCNN
Prima di esaminare il codice per l'esportazione di modelli YOLO11 nel formato NCNN, cerchiamo di capire come vengono normalmente utilizzati i modelli NCNN.
I modelli NCNN, progettati per efficienza e prestazioni, sono compatibili con una varietà di piattaforme di implementazione:
-
Implementazione Mobile: Ottimizzato specificamente per Android e iOS, consentendo una perfetta integrazione nelle applicazioni mobili per un'inferenza efficiente sul dispositivo.
-
Sistemi Embedded e Dispositivi IoT: Se ritieni che l'esecuzione dell'inferenza su un Raspberry Pi con la Guida Ultralytics non sia abbastanza veloce, passare a un modello esportato NCNN potrebbe aiutare ad accelerare le cose. NCNN è ottimo per dispositivi come Raspberry Pi e NVIDIA Jetson, soprattutto in situazioni in cui è necessaria un'elaborazione rapida direttamente sul dispositivo.
-
Implementazione Desktop e Server: In grado di essere implementato in ambienti desktop e server su Linux, Windows e macOS, supportando sviluppo, formazione e valutazione con capacità di calcolo più elevate.
Esporta in NCNN: Conversione del tuo modello YOLO11
Puoi espandere la compatibilità del modello e la flessibilità di implementazione convertendo i modelli YOLO11 nel formato NCNN.
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
Tutti i modelli Ultralytics YOLO11 sono progettati per supportare l'export out-of-the-box, rendendo facile la loro integrazione nel tuo flusso di lavoro di deployment preferito. Puoi visualizzare l'elenco completo dei formati di export supportati e le opzioni di configurazione per scegliere la configurazione migliore per la tua applicazione.
Utilizzo
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to NCNN format
model.export(format="ncnn") # creates '/yolo11n_ncnn_model'
# Load the exported NCNN model
ncnn_model = YOLO("./yolo11n_ncnn_model")
# Run inference
results = ncnn_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to NCNN format
yolo export model=yolo11n.pt format=ncnn # creates '/yolo11n_ncnn_model'
# Run inference with the exported model
yolo predict model='./yolo11n_ncnn_model' source='https://ultralytics.com/images/bus.jpg'
Argomenti di esportazione
Argomento | Tipo | Predefinito | Descrizione |
---|---|---|---|
format |
str |
'ncnn' |
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. |
half |
bool |
False |
Abilita la quantizzazione FP16 (mezza precisione), riducendo le dimensioni del modello e potenzialmente accelerando l'inferenza su hardware supportato. |
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 . |
device |
str |
None |
Specifica il dispositivo per l'esportazione: GPU (device=0 ), CPU (device=cpu ), MPS per Apple silicon (device=mps ). |
Per maggiori dettagli sul processo di esportazione, visita la pagina della documentazione di Ultralytics sull'esportazione.
Distribuzione di modelli YOLO11 NCNN esportati
Dopo aver esportato con successo i tuoi modelli Ultralytics YOLO11 in formato NCNN, ora puoi distribuirli. Il primo passo principale e raccomandato per l'esecuzione di un modello NCNN è utilizzare il metodo YOLO("yolo11n_ncnn_model/"), come indicato nel precedente snippet di codice di utilizzo. Tuttavia, per istruzioni approfondite sulla distribuzione dei tuoi modelli NCNN in varie altre impostazioni, dai un'occhiata alle seguenti risorse:
-
Android: Questo blog spiega come utilizzare i modelli NCNN per eseguire attività come il rilevamento di oggetti tramite applicazioni Android.
-
macOS: Comprendi come utilizzare i modelli NCNN per eseguire attività tramite macOS.
-
Linux: Esplora questa pagina per imparare come implementare i modelli NCNN su dispositivi con risorse limitate come Raspberry Pi e altri dispositivi simili.
-
Windows x64 utilizzando VS2017: Esplora questo blog per imparare come implementare i modelli NCNN su Windows x64 utilizzando Visual Studio Community 2017.
Riepilogo
In questa guida, abbiamo esaminato l'esportazione di modelli Ultralytics YOLO11 nel formato NCNN. Questo passaggio di conversione è fondamentale per migliorare l'efficienza e la velocità dei modelli YOLO11, rendendoli più efficaci e adatti per ambienti di calcolo con risorse limitate.
Per istruzioni dettagliate sull'utilizzo, fare riferimento alla documentazione ufficiale di NCNN.
Inoltre, se sei interessato a esplorare altre opzioni di integrazione per Ultralytics YOLO11, assicurati di visitare la nostra pagina della guida all'integrazione per ulteriori approfondimenti e informazioni.
FAQ
Come posso esportare i modelli Ultralytics YOLO11 in formato NCNN?
Per esportare il tuo modello Ultralytics YOLO11 nel formato NCNN, segui questi passaggi:
-
Python: Utilizza la
export
funzione dalla classe YOLO.from ultralytics import YOLO # Load the YOLO11 model model = YOLO("yolo11n.pt") # Export to NCNN format model.export(format="ncnn") # creates '/yolo11n_ncnn_model'
-
CLI: Utilizza la
yolo
comando con l'argomentoexport
.yolo export model=yolo11n.pt format=ncnn # creates '/yolo11n_ncnn_model'
Per opzioni di esportazione dettagliate, consulta la pagina Esportazione nella documentazione.
Quali sono i vantaggi dell'esportazione di modelli YOLO11 in NCNN?
L'esportazione dei tuoi modelli Ultralytics YOLO11 in NCNN offre diversi vantaggi:
- Efficienza: i modelli NCNN sono ottimizzati per dispositivi mobili e embedded, garantendo prestazioni elevate anche con risorse computazionali limitate.
- Quantizzazione: NCNN supporta tecniche come la quantizzazione che migliorano la velocità del modello e riducono l'utilizzo della memoria.
- Ampia compatibilità: puoi distribuire modelli NCNN su più piattaforme, tra cui Android, iOS, Linux e macOS.
Per maggiori dettagli, consulta la sezione Esportazione in NCNN nella documentazione.
Perché dovrei usare NCNN per le mie applicazioni di IA mobile?
NCNN, sviluppato da Tencent, è specificamente ottimizzato per piattaforme mobili. I motivi principali per utilizzare NCNN includono:
- Alte prestazioni: progettato per un'elaborazione efficiente e veloce su CPU mobili.
- Multipiattaforma: compatibile con framework popolari come TensorFlow e ONNX, semplificando la conversione e la distribuzione di modelli su diverse piattaforme.
- Supporto della community: il supporto attivo della community garantisce miglioramenti e aggiornamenti continui.
Per saperne di più, visita la panoramica di NCNN nella documentazione.
Quali piattaforme sono supportate per la distribuzione di modelli NCNN?
NCNN è versatile e supporta varie piattaforme:
- Mobile: Android, iOS.
- Sistemi embedded e dispositivi IoT: dispositivi come Raspberry Pi e NVIDIA Jetson.
- Desktop e server: Linux, Windows e macOS.
Se l'esecuzione di modelli su un Raspberry Pi non è abbastanza veloce, la conversione al formato NCNN potrebbe accelerare le cose, come descritto nella nostra Guida per Raspberry Pi.
Come posso distribuire modelli Ultralytics YOLO11 NCNN su Android?
Per distribuire i tuoi modelli YOLO11 su Android:
- Compila per Android: segui la guida NCNN Build for Android.
- Integra con la tua app: utilizza l'SDK Android NCNN per integrare il modello esportato nella tua applicazione per un'inferenza efficiente sul dispositivo.
Per istruzioni dettagliate, consulta la nostra guida sulla Distribuzione di modelli NCNN YOLO11.
Per guide più avanzate e casi d'uso, visita la pagina della documentazione di Ultralytics.