Esportazione CoreML per modelli YOLO26
Distribuire modelli di visione artificiale su dispositivi Apple come iPhone e Mac richiede un formato che garantisca prestazioni fluide.
Watch: How to Export Ultralytics YOLO26 to CoreML for 2x Fast Inference on Apple Devices 🚀
Il formato di esportazione CoreML ti consente di ottimizzare i tuoi modelli Ultralytics YOLO26 per un efficiente rilevamento di oggetti nelle applicazioni iOS e macOS. In questa guida, ti mostreremo i passaggi per convertire i tuoi modelli nel formato CoreML, facilitando le prestazioni dei tuoi modelli sui dispositivi Apple.
CoreML
CoreML è il framework fondamentale di machine learning di Apple basato su Accelerate, BNNS e Metal Performance Shaders. Fornisce un formato di modello di machine learning che si integra perfettamente nelle applicazioni iOS e supporta attività come l'analisi delle immagini, l'elaborazione del linguaggio naturale, la conversione da audio a testo e l'analisi dei suoni.
Le applicazioni possono sfruttare Core ML senza la necessità di una connessione di rete o di chiamate API perché il framework Core ML funziona utilizzando il calcolo on-device. Ciò significa che l'inferenza del modello può essere eseguita localmente sul dispositivo dell'utente.
Caratteristiche principali dei modelli CoreML
Il framework CoreML di Apple offre funzionalità robuste per il machine learning on-device. Ecco le caratteristiche principali che rendono CoreML uno strumento potente per gli sviluppatori:
- Supporto completo per i modelli: Converte ed esegue modelli da framework popolari come TensorFlow, PyTorch, scikit-learn, XGBoost e LibSVM.
-
Machine Learning on-device: Garantisce la privacy dei dati e un'elaborazione rapida eseguendo i modelli direttamente sul dispositivo dell'utente, eliminando la necessità di connettività di rete.
-
Prestazioni e ottimizzazione: Utilizza CPU, GPU e Neural Engine del dispositivo per prestazioni ottimali con un consumo minimo di energia e memoria. Offre strumenti per la compressione e l'ottimizzazione del modello mantenendo l'accuratezza.
-
Facilità di integrazione: Fornisce un formato unificato per vari tipi di modelli e un'API intuitiva per un'integrazione fluida nelle app. Supporta attività specifiche di dominio attraverso framework come Vision e Natural Language.
-
Funzionalità avanzate: Include funzionalità di addestramento on-device per esperienze personalizzate, previsioni asincrone per esperienze ML interattive e strumenti di ispezione e validazione del modello.
Opzioni di distribuzione CoreML
Prima di esaminare il codice per l'esportazione dei modelli YOLO26 nel formato CoreML, comprendiamo dove vengono solitamente utilizzati i modelli CoreML.
CoreML offre varie opzioni di distribuzione per i modelli di machine learning, tra cui:
-
Distribuzione on-device: Questo metodo integra direttamente i modelli CoreML nella tua app iOS. È particolarmente vantaggioso per garantire bassa latenza, maggiore privacy (poiché i dati rimangono sul dispositivo) e funzionalità offline. Questo approccio, tuttavia, può essere limitato dalle capacità hardware del dispositivo, specialmente per modelli più grandi e complessi, e può essere eseguito nei seguenti due modi:
-
Modelli incorporati: Questi modelli sono inclusi nel bundle dell'app e sono immediatamente accessibili. Sono ideali per modelli piccoli che non richiedono aggiornamenti frequenti.
-
Modelli scaricati: Questi modelli vengono recuperati da un server quando necessario. Questo approccio è adatto a modelli più grandi o a quelli che necessitano di aggiornamenti regolari. Aiuta a mantenere ridotte le dimensioni del bundle dell'app.
-
-
Distribuzione basata su cloud: I modelli CoreML sono ospitati su server e a cui l'app iOS accede tramite richieste API. Questa opzione scalabile e flessibile consente facili aggiornamenti del modello senza revisioni dell'app. È ideale per modelli complessi o app su larga scala che richiedono aggiornamenti regolari. Tuttavia, richiede una connessione Internet e può sollevare problemi di latenza e sicurezza.
Esportazione di modelli YOLO26 in CoreML
L'esportazione di YOLO26 in CoreML consente prestazioni di machine learning on-device ottimizzate all'interno dell'ecosistema Apple, offrendo vantaggi in termini di efficienza, sicurezza e integrazione fluida con le piattaforme iOS, macOS, watchOS e tvOS.
Installazione
Per installare il pacchetto richiesto, esegui:
# Install the required package for YOLO26
pip install ultralyticsPer istruzioni dettagliate e best practice relative al processo di installazione, consulta la nostra guida all'installazione di YOLO26. Se riscontri difficoltà durante l'installazione dei pacchetti richiesti per YOLO26, consulta la nostra guida ai problemi comuni per soluzioni e suggerimenti.
Utilizzo
Prima di immergerti nelle istruzioni per l'uso, assicurati di dare un'occhiata alla gamma di modelli YOLO26 offerti da Ultralytics. Questo ti aiuterà a scegliere il modello più adatto alle esigenze del tuo progetto.
from ultralytics import YOLO
# Load the YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to CoreML format
model.export(format="coreml") # creates 'yolo26n.mlpackage'
# Load the exported CoreML model
coreml_model = YOLO("yolo26n.mlpackage")
# Run inference
results = coreml_model("https://ultralytics.com/images/bus.jpg")Argomenti di esportazione
| Argomento | Tipo | Predefinito | Descrizione |
|---|---|---|---|
format | str | 'coreml' | Formato di destinazione per il modello esportato, che definisce la compatibilità con vari ambienti di distribuzione. |
imgsz | int o 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. |
dynamic | bool | False | Consente dimensioni di input dinamiche, migliorando la flessibilità nella gestione di dimensioni variabili delle immagini. |
half | bool | False | Abilita la quantizzazione FP16 (precisione dimezzata), riducendo le dimensioni del modello e potenzialmente velocizzando l'inferenza sull'hardware supportato. |
int8 | bool | False | Attiva la quantizzazione INT8, comprimendo ulteriormente il modello e velocizzando l'inferenza con una perdita minima di accuratezza, principalmente per i dispositivi edge. |
nms | bool | False | Aggiunge la Non-Maximum Suppression (NMS), essenziale per un post-elaborazione del rilevamento accurato ed efficiente. |
batch | int | 1 | Specifica la dimensione dell'inferenza batch del modello di esportazione o il numero massimo di immagini che il modello esportato elaborerà simultaneamente in modalità predict. |
device | str | None | Specifica il dispositivo per l'esportazione: GPU (device=0), CPU (device=cpu), MPS per Apple silicon (device=mps). |
Assicurati di utilizzare una macchina macOS o x86 Linux durante l'esportazione in CoreML.
Per ulteriori dettagli sul processo di esportazione, visita la pagina della documentazione di Ultralytics sull'esportazione.
Distribuzione di modelli YOLO26 CoreML esportati
Dopo aver esportato con successo i tuoi modelli Ultralytics YOLO26 in CoreML, la fase successiva fondamentale è distribuire questi modelli in modo efficace. Per una guida dettagliata sulla distribuzione dei modelli CoreML in vari ambienti, consulta queste risorse:
-
CoreML Tools: Questa guida include istruzioni ed esempi per convertire modelli da TensorFlow, PyTorch e altre librerie in Core ML.
-
ML and Vision: Una raccolta di video completi che coprono vari aspetti dell'utilizzo e dell'implementazione dei modelli CoreML.
-
Integrazione di un modello Core ML nella tua app: Una guida completa sull'integrazione di un modello CoreML in un'applicazione iOS, che dettaglia i passaggi dalla preparazione del modello alla sua implementazione nell'app per varie funzionalità.
Riepilogo
In questa guida abbiamo esaminato come esportare i modelli Ultralytics YOLO26 nel formato CoreML. Seguendo i passaggi descritti in questa guida, puoi garantire la massima compatibilità e prestazioni durante l'esportazione dei modelli YOLO26 in CoreML.
Per ulteriori dettagli sull'utilizzo, visita la documentazione ufficiale di CoreML.
Inoltre, se desideri saperne di più sulle altre integrazioni di Ultralytics YOLO26, visita la nostra pagina delle guide all'integrazione. Troverai molte risorse e approfondimenti preziosi lì.
FAQ
Come esporto i modelli YOLO26 nel formato CoreML?
Per esportare i tuoi modelli Ultralytics YOLO26 nel formato CoreML, dovrai innanzitutto assicurarti di avere installato il pacchetto ultralytics. Puoi installarlo utilizzando:
pip install ultralyticsSuccessivamente, puoi esportare il modello utilizzando i seguenti comandi Python o CLI:
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
model.export(format="coreml")Per ulteriori dettagli, fai riferimento alla sezione Esportazione di modelli YOLO26 in CoreML della nostra documentazione.
Quali sono i vantaggi dell'utilizzo di CoreML per la distribuzione dei modelli YOLO26?
CoreML offre numerosi vantaggi per la distribuzione dei modelli Ultralytics YOLO26 sui dispositivi Apple:
- Elaborazione on-device: Abilita l'inferenza locale del modello sui dispositivi, garantendo la privacy dei dati e riducendo al minimo la latenza.
- Ottimizzazione delle prestazioni: Sfrutta il pieno potenziale di CPU, GPU e Neural Engine del dispositivo, ottimizzando sia la velocità che l'efficienza.
- Facilità di integrazione: Offre un'esperienza di integrazione fluida con gli ecosistemi Apple, inclusi iOS, macOS, watchOS e tvOS.
- Versatilità: Supporta un'ampia gamma di attività di machine learning come analisi delle immagini, elaborazione audio ed elaborazione del linguaggio naturale utilizzando il framework CoreML.
Per maggiori dettagli sull'integrazione del tuo modello CoreML in un'app iOS, consulta la guida su Integrazione di un modello Core ML nella tua app.
Quali sono le opzioni di distribuzione per i modelli YOLO26 esportati in CoreML?
Una volta esportato il tuo modello YOLO26 nel formato CoreML, hai molteplici opzioni di distribuzione:
-
Distribuzione on-device: Integra direttamente i modelli CoreML nella tua app per una maggiore privacy e funzionalità offline. Questo può essere fatto come:
- Modelli incorporati: Inclusi nel bundle dell'app, accessibili immediatamente.
- Modelli scaricati: Recuperati da un server quando necessario, mantenendo le dimensioni del bundle dell'app più piccole.
-
Distribuzione basata su cloud: Ospita i modelli CoreML su server e accedi ad essi tramite richieste API. Questo approccio supporta aggiornamenti più semplici e può gestire modelli più complessi.
Per una guida dettagliata sulla distribuzione dei modelli CoreML, fai riferimento a Opzioni di distribuzione CoreML.
In che modo CoreML garantisce prestazioni ottimizzate per i modelli YOLO26?
CoreML garantisce prestazioni ottimizzate per i modelli Ultralytics YOLO26 utilizzando varie tecniche di ottimizzazione:
- Accelerazione hardware: Utilizza CPU, GPU e Neural Engine del dispositivo per un calcolo efficiente.
- Compressione del modello: Fornisce strumenti per comprimere i modelli al fine di ridurne l'impronta senza compromettere l'accuratezza.
- Inferenza adattiva: Regola l'inferenza in base alle capacità del dispositivo per mantenere un equilibrio tra velocità e prestazioni.
Per ulteriori informazioni sull'ottimizzazione delle prestazioni, visita la documentazione ufficiale di CoreML.
Posso eseguire l'inferenza direttamente con il modello CoreML esportato?
Sì, puoi eseguire l'inferenza direttamente utilizzando il modello CoreML esportato. Di seguito sono riportati i comandi per Python e CLI:
from ultralytics import YOLO
coreml_model = YOLO("yolo26n.mlpackage")
results = coreml_model("https://ultralytics.com/images/bus.jpg")Per ulteriori informazioni, fai riferimento alla sezione Utilizzo della guida all'esportazione CoreML.