Esportazione Ultralytics YOLO 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 compiti avanzati di visione artificiale.
L'esportazione in formato NCNN consente di ottimizzare i tuoi modelli Ultralytics YOLO26 per applicazioni leggere basate su dispositivi. Questa guida illustra come convertire i tuoi modelli in formato NCNN per prestazioni migliorate su dispositivi mobili ed embedded.
Perché 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 su CPU mobili e consente la rapida distribuzione di modelli di deep learning su piattaforme mobili, rendendolo una scelta eccellente per la creazione di applicazioni basate sull'intelligenza artificiale.
Caratteristiche principali dei modelli NCNN
I modelli NCNN offrono diverse caratteristiche chiave che abilitano il machine learning on-device, aiutando gli sviluppatori a distribuire modelli su dispositivi mobili, embedded ed edge:
Efficiente e ad alte prestazioni: I modelli NCNN sono leggeri e ottimizzati per dispositivi mobili ed embedded come Raspberry Pi con risorse limitate, pur mantenendo un'elevata accuratezza nei compiti 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'ingombro della memoria.
Compatibilità: I modelli NCNN sono compatibili con i più diffusi framework di deep learning, inclusi TensorFlow, Caffe e ONNX, consentendo agli sviluppatori di sfruttare modelli e flussi di lavoro esistenti.
Facilità d'uso: NCNN fornisce strumenti user-friendly per la conversione dei modelli tra formati, garantendo una fluida interoperabilità tra diversi ambienti di sviluppo.
Accelerazione GPU Vulkan: NCNN supporta Vulkan per l'inferenza accelerata da GPU su più fornitori, inclusi AMD, Intel e altre GPU non-NVIDIA, consentendo una distribuzione ad alte prestazioni su una più ampia gamma di hardware.
Opzioni di implementazione con NCNN
I modelli NCNN sono compatibili con una varietà di piattaforme di distribuzione:
Distribuzione Mobile: Ottimizzato per Android e iOS, consentendo un'integrazione senza soluzione di continuità nelle applicazioni mobili per un'inferenza on-device efficiente.
Sistemi Embedded e Dispositivi IoT: Ideale per dispositivi con risorse limitate come Raspberry Pi e NVIDIA Jetson. Se l'inferenza standard su un Raspberry Pi con la Guida Ultralytics è insufficiente, NCNN può fornire miglioramenti significativi delle prestazioni.
Distribuzione Desktop e Server: Supporta la distribuzione su Linux, Windows e macOS per flussi di lavoro di sviluppo, training e valutazione.
Accelerazione GPU Vulkan
NCNN supporta l'accelerazione GPU tramite Vulkan, consentendo un'inferenza ad alte prestazioni su un'ampia gamma di GPU, incluse schede grafiche AMD, Intel e altre non-NVIDIA. Questo è particolarmente utile per:
- Supporto GPU Multi-Vendor: A differenza di CUDA, che è limitato alle GPU NVIDIA, Vulkan funziona su più fornitori di GPU.
- Sistemi Multi-GPU: Selezionare un dispositivo Vulkan specifico in sistemi con più GPU utilizzando
device="vulkan:0",device="vulkan:1", ecc. - Distribuzioni Edge e Desktop: Sfrutta l'accelerazione GPU su dispositivi dove CUDA non è disponibile.
Per utilizzare l'accelerazione Vulkan, specificare 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")
# Run inference with Vulkan GPU acceleration
yolo predict model='./yolo26n_ncnn_model' source='https://ultralytics.com/images/bus.jpg' device=vulkan:0
Requisiti Vulkan
Assicurati di avere i driver Vulkan installati per la tua GPU. La maggior parte dei driver GPU moderni include il supporto Vulkan per impostazione predefinita. Puoi verificare la disponibilità di Vulkan utilizzando strumenti come vulkaninfo su Linux o il Vulkan SDK su Windows.
Esportazione in NCNN: Conversione del tuo modello YOLO26
È possibile espandere la compatibilità del modello e la flessibilità di deployment convertendo i modelli YOLO26 in 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 le soluzioni.
Utilizzo
Tutti i modelli Ultralytics YOLO26 sono progettati per supportare l'esportazione out-of-the-box, rendendo facile integrarli nel flusso di lavoro di deployment preferito. È possibile visualizzare l'elenco completo dei formati di esportazione e delle opzioni di configurazione supportati per scegliere la configurazione migliore per la propria applicazione.
Utilizzo
from ultralytics import YOLO
# Load the YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to NCNN format
model.export(format="ncnn") # creates '/yolo26n_ncnn_model'
# Load the exported NCNN model
ncnn_model = YOLO("./yolo26n_ncnn_model")
# Run inference
results = ncnn_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO26n PyTorch model to NCNN format
yolo export model=yolo26n.pt format=ncnn # creates '/yolo26n_ncnn_model'
# Run inference with the exported model
yolo predict model='./yolo26n_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.
Deploying Exported YOLO26 NCNN Models
Dopo aver esportato i tuoi modelli Ultralytics YOLO26 in formato NCNN, puoi deployarli utilizzando il YOLO("yolo26n_ncnn_model/") metodo come mostrato nell'esempio di utilizzo sopra. Per istruzioni di distribuzione specifiche per piattaforma, consulta le seguenti risorse:
Android: Crea e integra modelli NCNN per il rilevamento di oggetti nelle applicazioni Android.
macOS: Distribuisci modelli NCNN sui 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.
Riepilogo
Questa guida ha trattato l'esportazione dei modelli Ultralytics YOLO26 in formato NCNN per una maggiore efficienza e velocità su dispositivi con risorse limitate.
Per ulteriori dettagli, fare riferimento alla documentazione ufficiale NCNN. Per altre opzioni di esportazione, visita la nostra pagina della guida all'integrazione.
FAQ
Come si esportano i modelli Ultralytics YOLO26 in formato NCNN?
Per esportare il tuo modello Ultralytics YOLO26 in formato NCNN:
Python: Utilizza la
exportmetodo dalla classe YOLO.from ultralytics import YOLO # Load the YOLO26 model model = YOLO("yolo26n.pt") # Export to NCNN format model.export(format="ncnn") # creates '/yolo26n_ncnn_model'CLI: Utilizza la
yolo exportcomando.yolo export model=yolo26n.pt format=ncnn # creates '/yolo26n_ncnn_model'
Per opzioni di esportazione dettagliate, consulta la documentazione Export.
Quali sono i vantaggi dell'esportazione dei modelli YOLO26 in NCNN?
L'esportazione dei tuoi modelli Ultralytics YOLO26 in NCNN offre numerosi 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.
- Accelerazione GPU Vulkan: Sfrutta l'accelerazione GPU su GPU AMD, Intel e altre non-NVIDIA tramite Vulkan per un'inferenza più rapida.
Per maggiori dettagli, consulta la sezione Perché esportare in NCNN?.
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 maggiori informazioni, consulta la sezione Caratteristiche principali dei modelli NCNN.
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.
Per prestazioni migliorate su Raspberry Pi, considera l'utilizzo del formato NCNN come dettagliato nella nostra Guida Raspberry Pi.
Come posso deployare i modelli Ultralytics YOLO26 NCNN su Android?
Per deployare i tuoi modelli YOLO26 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 Deploying Exported YOLO26 NCNN Models.
Per guide e casi d'uso più avanzati, visita la guida alla distribuzione di Ultralytics.
Come si utilizza l'accelerazione GPU Vulkan con i modelli NCNN?
NCNN supporta Vulkan per l'accelerazione GPU su GPU AMD, Intel e altre 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 sistemi multi-GPU, specificare l'indice del dispositivo (ad esempio, vulkan:1 per la seconda GPU). Assicurarsi che i driver Vulkan siano installati per la propria GPU. Vedere la Accelerazione GPU Vulkan sezione per maggiori dettagli.