Esportazione CoreML per modelli YOLO11
Il deployment di modelli di computer vision su dispositivi Apple come iPhone e Mac richiede un formato che garantisca prestazioni ottimali.
Guarda: Come esportare Ultralytics YOLO11 in CoreML per un'inferenza 2x più veloce sui dispositivi Apple 🚀
Il formato di esportazione CoreML consente di ottimizzare i modelli Ultralytics YOLO11 per un'efficiente object detection nelle applicazioni iOS e macOS. In questa guida, ti accompagneremo attraverso i passaggi per convertire i tuoi modelli nel formato CoreML, semplificando le prestazioni dei tuoi modelli sui dispositivi Apple.
CoreML
CoreML è il framework di machine learning fondamentale di Apple che si basa 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 audio-testo e l'analisi del suono.
Le applicazioni possono sfruttare Core ML senza la necessità di una connessione di rete o chiamate API perché il framework Core ML funziona utilizzando l'elaborazione 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 dei modelli: converte ed esegue modelli da framework diffusi come TensorFlow, PyTorch, scikit-learn, XGBoost e LibSVM.
-
Machine Learning On-device: garantisce la privacy dei dati e l'elaborazione rapida eseguendo i modelli direttamente sul dispositivo dell'utente, eliminando la necessità di connettività di rete.
-
Prestazioni e ottimizzazione: utilizza la CPU, la GPU e il 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 la precisione.
-
Facilità di integrazione: fornisce un formato unificato per vari tipi di modelli e un'API intuitiva per una perfetta integrazione nelle app. Supporta attività specifiche del dominio tramite framework come Vision e Natural Language.
-
Funzionalità avanzate: include funzionalità di training on-device per esperienze personalizzate, previsioni asincrone per esperienze ML interattive e strumenti di ispezione e convalida dei modelli.
Opzioni di deployment di CoreML
Prima di esaminare il codice per l'esportazione di modelli YOLO11 nel formato CoreML, cerchiamo di capire dove vengono solitamente utilizzati i modelli CoreML.
CoreML offre varie opzioni di deployment per i modelli di machine learning, tra cui:
-
Deployment 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, potrebbe essere limitato dalle capacità hardware del dispositivo, soprattutto per i modelli più grandi e complessi. Il deployment on-device può essere eseguito nei due modi seguenti.
-
Modelli integrati: 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 secondo necessità. Questo approccio è adatto per modelli più grandi o che necessitano di aggiornamenti regolari. Aiuta a mantenere più piccola la dimensione del bundle dell'app.
-
-
Distribuzione basata su cloud: i modelli CoreML sono ospitati su server e accessibili dall'app iOS 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ò comportare problemi di latenza e sicurezza.
Esportazione di modelli YOLO11 in CoreML
L'esportazione di YOLO11 in CoreML consente prestazioni di machine learning ottimizzate sul dispositivo all'interno dell'ecosistema Apple, offrendo vantaggi in termini di efficienza, sicurezza e integrazione perfetta con le piattaforme iOS, macOS, watchOS e tvOS.
Installazione
Per installare il pacchetto richiesto, esegui:
Installazione
# Install the required package for YOLO11
pip install ultralytics
Per istruzioni dettagliate e best practice relative al processo di installazione, consulta la nostra guida all'installazione di YOLO11. Durante l'installazione dei pacchetti richiesti per YOLO11, in caso di difficoltà, consulta la nostra guida ai problemi comuni per soluzioni e suggerimenti.
Utilizzo
Prima di immergerti nelle istruzioni per l'uso, assicurati di controllare la gamma di modelli YOLO11 offerti da Ultralytics. Questo ti aiuterà a scegliere il modello più appropriato per le esigenze del tuo progetto.
Utilizzo
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to CoreML format
model.export(format="coreml") # creates 'yolo11n.mlpackage'
# Load the exported CoreML model
coreml_model = YOLO("yolo11n.mlpackage")
# Run inference
results = coreml_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to CoreML format
yolo export model=yolo11n.pt format=coreml # creates 'yolo11n.mlpackage''
# Run inference with the exported model
yolo predict model=yolo11n.mlpackage source='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 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. |
int8 |
bool |
False |
Attiva la quantizzazione INT8, comprimendo ulteriormente il modello e accelerando l'inferenza con una perdita di accuratezza minima, principalmente per i dispositivi edge. |
nms |
bool |
False |
Aggiunge la Non-Maximum Suppression (NMS), essenziale per una post-elaborazione del rilevamento accurata ed efficiente. |
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 ). |
Suggerimento
Assicurati di utilizzare una macchina macOS o x86 Linux quando esporti in CoreML.
Per maggiori dettagli sul processo di esportazione, visita la pagina della documentazione di Ultralytics sull'esportazione.
Deployment di modelli YOLO11 CoreML esportati
Dopo aver esportato correttamente i tuoi modelli Ultralytics YOLO11 in CoreML, la fase critica successiva è la distribuzione efficace di questi modelli. Per una guida dettagliata sulla distribuzione di modelli CoreML in vari ambienti, consulta queste risorse:
-
Strumenti CoreML: questa guida include istruzioni ed esempi per convertire modelli da TensorFlow, PyTorch e altre librerie in Core ML.
-
ML e Visione: una raccolta di video completi che trattano vari aspetti dell'utilizzo e dell'implementazione di 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 descrive in dettaglio i passaggi dalla preparazione del modello all'implementazione nell'app per varie funzionalità.
Riepilogo
In questa guida, abbiamo esaminato come esportare i modelli Ultralytics YOLO11 in formato CoreML. Seguendo i passaggi descritti in questa guida, puoi garantire la massima compatibilità e prestazioni durante l'esportazione di modelli YOLO11 in CoreML.
Per ulteriori dettagli sull'utilizzo, visitare la documentazione ufficiale di CoreML.
Inoltre, se desideri saperne di più su altre integrazioni di Ultralytics YOLO11, visita la nostra pagina della guida all'integrazione. Lì troverai molte risorse e approfondimenti utili.
FAQ
Come posso esportare i modelli YOLO11 in formato CoreML?
Per esportare il tuo Ultralytics YOLO11 modelli in formato CoreML, dovrai prima assicurarti di avere il ultralytics
pacchetto installato. Puoi installarlo usando:
Installazione
pip install ultralytics
Successivamente, puoi esportare il modello utilizzando i seguenti comandi Python o CLI:
Utilizzo
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
model.export(format="coreml")
yolo export model=yolo11n.pt format=coreml
Per ulteriori dettagli, fare riferimento alla sezione Esportazione di modelli YOLO11 in CoreML della nostra documentazione.
Quali sono i vantaggi dell'utilizzo di CoreML per il deployment di modelli YOLO11?
CoreML offre numerosi vantaggi per la distribuzione di modelli Ultralytics YOLO11 su dispositivi Apple:
- Elaborazione sul dispositivo: consente l'inferenza del modello locale sui dispositivi, garantendo la privacy dei dati e riducendo al minimo la latenza.
- Ottimizzazione delle prestazioni: sfrutta appieno il potenziale della CPU, della GPU e del Neural Engine del dispositivo, ottimizzando sia la velocità che l'efficienza.
- Facilità di integrazione: offre un'esperienza di integrazione perfetta con gli ecosistemi Apple, inclusi iOS, macOS, watchOS e tvOS.
- Versatilità: supporta una vasta gamma di attività di machine learning come l'analisi delle immagini, l'elaborazione audio e l'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 deployment per i modelli YOLO11 esportati in CoreML?
Dopo aver esportato il tuo modello YOLO11 in formato CoreML, hai diverse opzioni di implementazione:
-
Implementazione sul dispositivo: 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 secondo necessità, mantenendo ridotte le dimensioni del bundle dell'app.
-
Distribuzione Basata su Cloud: Ospita i modelli CoreML su server e accedi tramite richieste API. Questo approccio supporta aggiornamenti più semplici e può gestire modelli più complessi.
Per una guida dettagliata sulla distribuzione di modelli CoreML, fare riferimento a Opzioni di Distribuzione CoreML.
In che modo CoreML garantisce prestazioni ottimizzate per i modelli YOLO11?
CoreML garantisce prestazioni ottimizzate per i modelli Ultralytics YOLO11 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 per ridurre il loro footprint 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, visitare la documentazione ufficiale di CoreML.
Posso eseguire l'inferenza direttamente con il modello CoreML esportato?
Sì, è possibile eseguire l'inferenza direttamente utilizzando il modello CoreML esportato. Di seguito sono riportati i comandi per python e CLI:
Esecuzione dell'Inferenza
from ultralytics import YOLO
coreml_model = YOLO("yolo11n.mlpackage")
results = coreml_model("https://ultralytics.com/images/bus.jpg")
yolo predict model=yolo11n.mlpackage source='https://ultralytics.com/images/bus.jpg'
Per ulteriori informazioni, fare riferimento alla sezione Utilizzo della guida all'esportazione di CoreML.