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

The NCNN framework, developed by Tencent, is a high-performance neural network inference computing framework optimized specifically for mobile platforms, including mobile phones, embedded devices, and IoT devices. NCNN is compatible with a wide range of platforms, including Linux, Android, iOS, and 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 esaminare il codice per l'esportazione YOLOv8 modelli al NCNN format, cerchiamo di capire come NCNN normalmente vengono utilizzati modelli.

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

  • Mobile Deployment: Specifically optimized for Android and iOS, allowing for seamless integration into mobile applications for efficient on-device inference.

  • Embedded Systems and IoT Devices: If you find that running inference on a Raspberry Pi with the Ultralytics Guide isn't fast enough, switching to an NCNN exported model could help speed things up. NCNN is great for devices like Raspberry Pi and NVIDIA Jetson, especially in situations where you need quick processing right on the device.

  • 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: This blog explains how to use NCNN models for performing tasks like object detection through Android applications.

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

DOMANDE FREQUENTI

Come posso esportare i modelli Ultralytics YOLOv8 nel formato NCNN ?

Per esportare il tuo modello Ultralytics YOLOv8 nel formato NCNN , segui i seguenti passaggi:

  • Python: Usa il tasto export della classe YOLO .

    from ultralytics import YOLO
    
    # Load the YOLOv8 model
    model = YOLO("yolov8n.pt")
    
    # Export to NCNN format
    model.export(format="ncnn")  # creates '/yolov8n_ncnn_model'
    
  • CLI: Usa il tasto yolo con il comando export argomento.

    yolo export model=yolov8n.pt format=ncnn  # creates '/yolov8n_ncnn_model'
    

Per informazioni dettagliate sulle opzioni di esportazione, consulta la pagina Esportazione della documentazione.

Quali sono i vantaggi dell'esportazione dei modelli YOLOv8 su NCNN?

Esportare i tuoi modelli Ultralytics YOLOv8 in NCNN offre diversi vantaggi:

  • Efficienza: i modelli di NCNN sono ottimizzati per i dispositivi mobili ed embedded, garantendo prestazioni elevate anche con risorse di calcolo limitate.
  • Quantizzazione: NCNN supporta tecniche come la quantizzazione che migliorano la velocità del modello e riducono l'utilizzo della memoria.
  • Broad Compatibility: You can deploy NCNN models on multiple platforms, including Android, iOS, Linux, and macOS.

Per maggiori dettagli, consulta la sezione Esportazione in NCNN nella documentazione.

Perché dovrei utilizzare NCNN per le mie applicazioni AI per dispositivi mobili?

NCNN, sviluppato da Tencent, è specificamente ottimizzato per le piattaforme mobili. I motivi principali per utilizzare NCNN sono:

  • Prestazioni elevate: Progettato per un'elaborazione efficiente e veloce sulle CPU mobili.
  • Cross-Platform: Compatibile con i framework più diffusi, come TensorFlow e ONNX, facilita la conversione e la distribuzione dei modelli su diverse piattaforme.
  • Supporto della comunità: Il supporto attivo della comunità garantisce miglioramenti e aggiornamenti continui.

Per saperne di più, visita la panoramica diNCNN nella documentazione.

Quali sono le piattaforme supportate per la distribuzione del modello NCNN ?

NCNN è versatile e supporta diverse piattaforme:

  • Mobile: Android, iOS.
  • Embedded Systems and IoT Devices: Devices like Raspberry Pi and NVIDIA Jetson.
  • Desktop e server: Linux, Windows e macOS.

Se l'esecuzione dei modelli su un Raspberry Pi non è abbastanza veloce, la conversione nel formato NCNN potrebbe accelerare le cose, come spiegato nella nostra Guida per Raspberry Pi.

Come posso distribuire i modelli Ultralytics YOLOv8 NCNN su Android?

Per distribuire i modelli di YOLOv8 su Android:

  1. Build for Android: Follow the NCNN Build for Android guide.
  2. Integrate with Your App: Use the NCNN Android SDK to integrate the exported model into your application for efficient on-device inference.

Per le istruzioni passo-passo, consulta la nostra guida sulla distribuzione dei modelli YOLOv8 NCNN .

Per guide e casi d'uso più avanzati, visita la pagina di documentazione di Ultralytics .



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

Commenti