Vai al contenuto

Come esportare in NCNN da YOLOv8 per una distribuzione senza problemi

L'implementazione di modelli di computer vision su dispositivi con potenza di calcolo limitata, come i sistemi mobili o embedded, può essere complicata. Devi assicurarti di utilizzare un formato ottimizzato per ottenere prestazioni ottimali. In questo modo, anche i dispositivi con una potenza di elaborazione limitata possono gestire bene le attività di computer vision avanzate.

La funzione di esportazione in formato NCNN ti permette di ottimizzare i tuoi Ultralytics YOLOv8 modelli per applicazioni leggere basate su dispositivi. In questa guida ti spiegheremo come convertire i tuoi modelli nel formato NCNN , in modo da facilitare le prestazioni dei tuoi modelli su vari dispositivi mobili ed embedded.

Perché dovresti esportare su NCNN?

NCNN panoramica

Il framework NCNN sviluppato da Tencent, è un framework per l'inferenza di reti neurali ad alte prestazioni ottimizzato specificamente per le piattaforme mobili, tra cui telefoni cellulari, dispositivi embedded e dispositivi IoT. NCNN è compatibile con un'ampia gamma di piattaforme, tra cui Linux, Android, iOS e macOS.

NCNN è noto per la sua velocità di elaborazione sulle CPU mobili e consente una rapida distribuzione dei modelli di deep learning sulle piattaforme mobili. In questo modo è più facile costruire app intelligenti, mettendo la potenza dell'intelligenza artificiale a portata di mano.

Caratteristiche principali dei modelli NCNN

NCNN offre un'ampia gamma di funzionalità chiave che consentono l'apprendimento automatico on-device, aiutando gli sviluppatori a eseguire i loro modelli su dispositivi mobili, embedded ed edge:

  • Efficienti e ad alte prestazioni: i modelli di NCNN sono realizzati per essere efficienti e leggeri, ottimizzati per essere eseguiti su dispositivi mobili ed embedded come Raspberry Pi con risorse limitate. Inoltre, sono in grado di raggiungere prestazioni elevate con un'alta precisione in vari compiti basati sulla computer vision.

  • Quantizzazione: i modelli di NCNN spesso supportano la quantizzazione, una tecnica che riduce la precisione dei pesi e delle attivazioni del modello. Questo porta a un ulteriore miglioramento delle prestazioni e riduce l'ingombro della memoria.

  • Compatibilità: i modelli di NCNN sono compatibili con i più diffusi framework di deep learning come TensorFlow, Caffe e ONNX. Questa compatibilità consente agli sviluppatori di utilizzare facilmente i modelli e i flussi di lavoro esistenti.

  • Facile da usare: i modelli di NCNN sono progettati per essere facilmente integrati in varie applicazioni, grazie alla loro compatibilità con i più diffusi framework di deep learning. Inoltre, NCNN offre strumenti di facile utilizzo per convertire i modelli tra diversi formati, garantendo un'interoperabilità senza problemi in tutto il panorama dello sviluppo.

Opzioni di distribuzione con NCNN

Prima di vedere il codice per esportare i modelli YOLOv8 nel formato NCNN , cerchiamo di capire come vengono normalmente utilizzati i modelli NCNN .

NCNN I modelli, progettati per garantire efficienza e prestazioni, sono compatibili con un'ampia gamma di piattaforme di distribuzione:

  • Distribuzione mobile: Ottimizzato specificamente per Android e iOS, consente una perfetta integrazione nelle applicazioni mobili per un'inferenza efficiente sul dispositivo.

  • Sistemi embedded e dispositivi IoT: Se trovi che l'esecuzione dell'inferenza su un Raspberry Pi con la guidaUltralytics non sia abbastanza veloce, il passaggio a un modello esportato da NCNN potrebbe aiutarti a velocizzare le cose. NCNN è ottimo per dispositivi come Raspberry Pi e NVIDIA Jetson, soprattutto in situazioni in cui hai bisogno di un'elaborazione rapida direttamente sul dispositivo.

  • Distribuzione su desktop e server: È in grado di essere distribuito in ambienti desktop e server su Linux, Windows e macOS, supportando lo sviluppo, la formazione e la valutazione con capacità di calcolo superiori.

Esportazione in NCNN: Conversione del modello YOLOv8

Puoi ampliare la compatibilità dei modelli e la flessibilità di distribuzione convertendo i modelli YOLOv8 nel formato NCNN .

Installazione

Per installare i pacchetti necessari, esegui:

Installazione

# Install the required package for YOLOv8
pip install ultralytics

Per istruzioni dettagliate e buone pratiche relative al processo di installazione, consulta la nostra Guida all'installazione diUltralytics . Durante l'installazione dei pacchetti necessari per YOLOv8, se dovessi incontrare delle difficoltà, consulta la nostra guida ai problemi comuni per trovare soluzioni e suggerimenti.

Utilizzo

Prima di immergerti nelle istruzioni d'uso, è importante notare che tutti i modelli diUltralytics YOLOv8 sono disponibili per l'esportazione, ma qui puoi assicurarti che il modello che hai scelto supporti la funzionalità di esportazione.

Utilizzo

from ultralytics import YOLO

# Load the YOLOv8 model
model = YOLO('yolov8n.pt')

# Export the model to NCNN format
model.export(format='ncnn') # creates '/yolov8n_ncnn_model'

# Load the exported NCNN model
ncnn_model = YOLO('./yolov8n_ncnn_model')

# Run inference
results = ncnn_model('https://ultralytics.com/images/bus.jpg')
# Export a YOLOv8n PyTorch model to NCNN format
yolo export model=yolov8n.pt format=ncnn  # creates '/yolov8n_ncnn_model'

# Run inference with the exported model
yolo predict model='./yolov8n_ncnn_model' source='https://ultralytics.com/images/bus.jpg'

Per maggiori dettagli sulle opzioni di esportazione supportate, visita la pagina di documentazione diUltralytics sulle opzioni di distribuzione.

Distribuzione dei modelli esportati di YOLOv8 NCNN

Dopo aver esportato con successo i tuoi modelli Ultralytics YOLOv8 nel formato NCNN , ora puoi distribuirli. Il primo passo principale e consigliato per eseguire un modello NCNN è quello di utilizzare il metodo YOLO("./model_ncnn_model"), come indicato nel precedente frammento di codice. Tuttavia, per istruzioni approfondite su come distribuire i tuoi modelli NCNN in varie altre impostazioni, dai un'occhiata alle seguenti risorse:

  • Android: Questo blog spiega come utilizzare i modelli di NCNN per svolgere attività come il rilevamento degli oggetti nelle applicazioni Android.

  • macOS: Capire come utilizzare i modelli di NCNN per eseguire attività con macOS.

  • Linux: Esplora questa pagina per scoprire come distribuire i modelli NCNN su dispositivi a risorse limitate come Raspberry Pi e altri dispositivi simili.

  • Windows x64 con VS2017: Esplora questo blog per scoprire come distribuire i modelli NCNN su Windows x64 utilizzando Visual Studio Community 2017.

Sommario

In questa guida abbiamo analizzato l'esportazione dei modelli Ultralytics YOLOv8 nel formato NCNN . Questa fase di conversione è fondamentale per migliorare l'efficienza e la velocità dei modelli YOLOv8 , rendendoli più efficaci e adatti ad ambienti informatici con risorse limitate.

Per istruzioni dettagliate sull'uso, consulta la documentazione ufficiale di NCNN .

Inoltre, se sei interessato ad esplorare altre opzioni di integrazione per Ultralytics YOLOv8 , visita la nostra pagina di guida all'integrazione per ulteriori approfondimenti e informazioni.



Creato 2024-03-01, Aggiornato 2024-03-03
Autori: glenn-jocher (1), abirami-vina (1)

Commenti