Ultralytics YOLO27:

Esportazione di Ultralytics YOLO in NCNN#

La distribuzione di modelli di visione artificiale su dispositivi con potenza di calcolo limitata, come sistemi mobili o embedded, richiede un'attenta selezione del formato. L'utilizzo di un formato ottimizzato garantisce che anche i dispositivi con risorse limitate possano gestire in modo efficiente attività avanzate di visione artificiale.

L'esportazione nel formato NCNN consente di ottimizzare i tuoi modelli Ultralytics YOLO26 per applicazioni leggere basate su dispositivi. Questa guida illustra come convertire i tuoi modelli nel formato NCNN per migliorare le prestazioni su dispositivi mobili ed embedded.

Perché esportare in NCNN?#

NCNN high-performance neural network inference framework

Il framework NCNN, sviluppato da Tencent, è un framework di calcolo per l'inferenza di reti neurali ad alte prestazioni, ottimizzato specificamente per le piattaforme mobili, inclusi 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 l'elevata velocità di elaborazione sulle CPU mobili e consente una rapida distribuzione dei modelli di deep learning sulle piattaforme mobili, rendendolo una scelta eccellente per la creazione di applicazioni basate sull'AI.

Caratteristiche principali dei modelli NCNN#

I modelli NCNN offrono diverse caratteristiche fondamentali che consentono il [machine learning](https://ultralytics-translation-0.invalid sul dispositivo, aiutando gli sviluppatori a distribuire modelli su dispositivi mobili, embedded ed edge:

  • Efficienza e alte prestazioni: i modelli NCNN sono leggeri e ottimizzati per dispositivi mobili ed embedded come Raspberry Pi, con risorse limitate, mantenendo al contempo un'elevata accuratezza nelle attività di visione artificiale.

  • Quantizzazione: NCNN supporta la quantizzazione, una tecnica che riduce la precisione dei pesi e delle attivazioni del modello per migliorare le prestazioni e ridurre l'occupazione di memoria.

  • Compatibilità: i modelli NCNN sono compatibili con i più diffusi framework di deep learning, tra cui TensorFlow, Caffe e ONNX, consentendo agli sviluppatori di sfruttare modelli e flussi di lavoro esistenti.

  • Facilità d'uso: NCNN offre strumenti intuitivi per convertire i modelli tra diversi formati, garantendo una perfetta interoperabilità tra ambienti di sviluppo differenti.

  • Accelerazione GPU Vulkan: NCNN supporta Vulkan per l'inferenza accelerata dalla GPU su più produttori, tra cui AMD, Intel e altre GPU non-NVIDIA, consentendo una distribuzione ad alte prestazioni su una gamma più ampia di hardware.

Opzioni di distribuzione con NCNN#

I modelli NCNN sono compatibili con diverse piattaforme di distribuzione:

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

  • Sistemi embedded e dispositivi IoT: ideali per dispositivi con risorse limitate come Raspberry Pi e NVIDIA Jetson. Se l'inferenza standard su un Raspberry Pi con la Guida Ultralytics non è sufficiente, NCNN può offrire miglioramenti significativi delle prestazioni.

  • Distribuzione su desktop e server: supporta la distribuzione su Linux, Windows e macOS per flussi di lavoro di sviluppo, addestramento e valutazione.

Accelerazione GPU Vulkan#

NCNN supporta l'accelerazione GPU tramite Vulkan, consentendo un'inferenza ad alte prestazioni su un'ampia gamma di GPU, tra cui AMD, Intel e altre schede grafiche non-NVIDIA. Ciò è particolarmente utile per:

  • Supporto GPU multi-produttore: a differenza di CUDA, che è limitato alle GPU NVIDIA, Vulkan funziona con GPU di diversi produttori.
  • Sistemi multi-GPU: seleziona uno specifico dispositivo Vulkan nei sistemi con più GPU utilizzando device="vulkan:0", device="vulkan:1", ecc.
  • Distribuzioni edge e desktop: sfrutta l'accelerazione GPU sui dispositivi in cui CUDA non è disponibile.

Per utilizzare l'accelerazione Vulkan, specifica il dispositivo Vulkan durante l'esecuzione dell'inferenza:

Inferenza Vulkan
from ultralytics import YOLO

# Load the exported NCNN model
ncnn_model = YOLO("./yolo26n_ncnn_model")

# Run inference with Vulkan GPU acceleration (first Vulkan device)
results = ncnn_model("https://ultralytics.com/images/bus.jpg", device="vulkan:0")

# Use second Vulkan device in multi-GPU systems
results = ncnn_model("https://ultralytics.com/images/bus.jpg", device="vulkan:1")
Requisiti Vulkan

Assicurati di aver installato i driver Vulkan per la tua GPU. La maggior parte dei driver per GPU moderni include il supporto Vulkan per impostazione predefinita. Puoi verificare la disponibilità di Vulkan utilizzando strumenti come vulkaninfo su Linux o Vulkan SDK su Windows.

Attività supportate#

L'esportazione NCNN supporta tutte e sette le attività di Ultralytics. La segmentazione semantica e la stima della profondità sono disponibili solo con YOLO26, l'unica famiglia che include queste head.

AttivitàYOLOv8YOLO11YOLO26
Rilevamento
Segmentazione
Semantica
Profondità
Classificazione
Posa
OBB

Esportazione in NCNN: conversione del tuo modello YOLO26#

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

Installazione#

Per installare i pacchetti richiesti, esegui:

Installazione
# Install the required package for YOLO26
pip install ultralytics

Per istruzioni dettagliate e best practice, consulta la guida all'installazione di Ultralytics. Se riscontri difficoltà, consulta la nostra guida ai problemi comuni per trovare una soluzione.

Utilizzo#

Tutti i modelli Ultralytics YOLO26 sono progettati per supportare l'esportazione senza configurazioni aggiuntive, semplificando l'integrazione nel flusso di distribuzione che preferisci. Puoi consultare l'elenco completo dei formati di esportazione supportati e delle opzioni di configurazione per scegliere la configurazione migliore per la tua applicazione.

Il formato NCNN supporta le modalità Export, Predict e Validate. Esporta il tuo modello, quindi carica il modello esportato per eseguire l'inferenza o convalidarne l'accuratezza.

Esportazione
from ultralytics import YOLO

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

# Export the model to NCNN format
model.export(format="ncnn")  # creates 'yolo26n_ncnn_model'
Predizione
from ultralytics import YOLO

# Load the exported NCNN model
model = YOLO("./yolo26n_ncnn_model")

# Run inference
results = model("https://ultralytics.com/images/bus.jpg")
Valida
from ultralytics import YOLO

# Load the exported NCNN model
model = YOLO("./yolo26n_ncnn_model")

# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")

Argomenti di esportazione#

ArgomentoTipoPredefinitoDescrizione
formatstr'ncnn'Formato di destinazione del modello esportato, che definisce la compatibilità con diversi ambienti di distribuzione.
imgszint o tuple640Dimensione desiderata dell'immagine per l'input del modello. Può essere un numero intero per immagini quadrate o una tupla (height, width) per dimensioni specifiche.
quantizeint o strNonePrecisione della quantizzazione: 16 (FP16) dimezza i pesi esportati; 32/non impostato esporta pesi FP32, che il runtime CPU di NCNN calcola comunque in FP16 per impostazione predefinita quando l'hardware lo supporta. Sostituisce il flag deprecato half.
batchint1Specifica la dimensione del batch di inferenza del modello esportato o il numero massimo di immagini che il modello esportato elaborerà simultaneamente in modalità predict.
devicestrNoneSpecifica il dispositivo per l'esportazione: GPU (device=0), CPU (device=cpu), MPS per Apple silicon (device=mps).

Per ulteriori dettagli sul processo di esportazione, visita la pagina della documentazione Ultralytics sull'esportazione.

Distribuzione dei modelli YOLO26 NCNN esportati#

Dopo aver esportato i tuoi modelli Ultralytics YOLO26 nel formato NCNN, puoi distribuirli utilizzando il metodo YOLO("yolo26n_ncnn_model/"), come mostrato nell'esempio di utilizzo precedente. Per istruzioni di distribuzione specifiche per piattaforma, consulta le seguenti risorse:

  • Android: crea e integra modelli NCNN per il rilevamento degli oggetti nelle applicazioni Android.

  • macOS: distribuisci modelli NCNN su sistemi macOS.

  • Linux: distribuisci modelli NCNN su dispositivi Linux, inclusi Raspberry Pi e sistemi embedded simili.

  • Windows x64: distribuisci modelli NCNN su Windows x64 utilizzando Visual Studio.

Questa guida ha illustrato l'esportazione dei modelli Ultralytics YOLO26 nel formato NCNN per migliorare efficienza e velocità sui dispositivi con risorse limitate.

Per ulteriori dettagli, consulta la documentazione ufficiale di NCNN. Per altre opzioni di esportazione, visita la nostra pagina della guida alle integrazioni.

FAQ#

  • Per esportare il tuo modello Ultralytics YOLO26 nel formato NCNN:

    • Python: utilizza il metodo export della classe YOLO.

      from ultralytics import YOLO
      
      # Load a YOLO26 model
      model = YOLO("yolo26n.pt")
      
      # Export to NCNN format
      model.export(format="ncnn")  # creates 'yolo26n_ncnn_model'
    • CLI: utilizza il comando yolo export.

      yolo export model=yolo26n.pt format=ncnn # creates 'yolo26n_ncnn_model'

    Per informazioni dettagliate sulle opzioni di esportazione, consulta la documentazione Export.

  • L'esportazione dei tuoi modelli Ultralytics YOLO26 in NCNN offre diversi vantaggi:

    • Efficienza: i modelli NCNN sono ottimizzati per 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.
    • Ampia compatibilità: puoi distribuire modelli NCNN su più piattaforme, tra cui Android, iOS, Linux e macOS.
    • Accelerazione GPU Vulkan: sfrutta l'accelerazione GPU su GPU AMD, Intel e altre GPU non-NVIDIA tramite Vulkan per un'inferenza più rapida.

    Per ulteriori dettagli, consulta la sezione Perché esportare in NCNN?.

  • NCNN, sviluppato da Tencent, è ottimizzato specificamente per le piattaforme mobili. Tra i principali motivi per utilizzare NCNN:

    • Alte prestazioni: progettato per un'elaborazione efficiente e rapida sulle CPU mobili.
    • Multipiattaforma: compatibile con framework diffusi come TensorFlow e ONNX, semplificando la conversione e la distribuzione dei modelli su piattaforme diverse.
    • Supporto della community: il supporto attivo della community garantisce miglioramenti e aggiornamenti continui.

    Per ulteriori informazioni, consulta la sezione Caratteristiche principali dei modelli NCNN.

  • NCNN è versatile e supporta diverse piattaforme:

    • Mobile: Android, iOS.
    • Sistemi embedded e dispositivi IoT: dispositivi come Raspberry Pi e NVIDIA Jetson.
    • Desktop e server: Linux, Windows e macOS.

    Per migliorare le prestazioni su Raspberry Pi, valuta l'utilizzo del formato NCNN come descritto nella nostra Guida a Raspberry Pi.

  • Per distribuire i tuoi modelli YOLO26 su Android:

    1. Compila per Android: segui la guida Build di NCNN per Android.
    2. Integra con la tua app: utilizza NCNN Android SDK per integrare il modello esportato nella tua applicazione e ottenere un'inferenza efficiente sul dispositivo.

    Per istruzioni dettagliate, consulta Distribuzione dei modelli YOLO26 NCNN esportati.

    Per guide e casi d'uso più avanzati, visita la guida alla distribuzione di Ultralytics.

  • NCNN supporta Vulkan per l'accelerazione GPU su GPU AMD, Intel e altre GPU non-NVIDIA. Per utilizzare Vulkan:

    from ultralytics import YOLO
    
    # Load NCNN model and run with Vulkan GPU
    model = YOLO("yolo26n_ncnn_model")
    results = model("image.jpg", device="vulkan:0")  # Use first Vulkan device

    Per i sistemi multi-GPU, specifica l'indice del dispositivo (ad esempio, vulkan:1 per la seconda GPU). Assicurati che i driver Vulkan siano installati per la tua GPU. Consulta la sezione Accelerazione GPU Vulkan per ulteriori dettagli.

Commenti