Vai al contenuto

CoreML Esportazione per i modelli di YOLOv8

L'implementazione di modelli di computer vision su dispositivi Apple come iPhone e Mac richiede un formato che garantisca prestazioni ottimali.

Il formato di esportazione CoreML ti permette di ottimizzare i tuoi Ultralytics YOLOv8 modelli per un rilevamento efficiente degli oggetti nelle applicazioni iOS e macOS. In questa guida ti illustreremo i passaggi per convertire i tuoi modelli nel formato CoreML , in modo da facilitare le prestazioni dei tuoi modelli sui dispositivi Apple.

CoreML

CoreML Panoramica

CoreML è il framework di apprendimento automatico fondamentale di Apple che si basa su Accelerate, BNNS e Metal Performance Shaders. Fornisce un formato di modello di apprendimento automatico 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 dover disporre 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 funzioni avanzate per l'apprendimento automatico sui dispositivi. Ecco le caratteristiche principali che rendono CoreML un potente strumento per gli sviluppatori:

  • Supporto completo per i modelli: Converte ed esegue modelli da framework popolari come TensorFlow, PyTorch, scikit-learn, XGBoost e LibSVM.

CoreML Modelli supportati

  • Machine Learning on-device: Garantisce la privacy dei dati e un'elaborazione rapida grazie all'esecuzione dei modelli direttamente sul dispositivo dell'utente, eliminando la necessità di connettersi alla rete.

  • Prestazioni e ottimizzazione: Utilizza la CPU, la GPU e il motore neurale del dispositivo per ottenere prestazioni ottimali con un utilizzo minimo di energia e memoria. Offre strumenti per la compressione e l'ottimizzazione dei modelli mantenendo la precisione.

  • Facilità di integrazione: Fornisce un formato unificato per vari tipi di modelli e un'API di facile utilizzo per una perfetta integrazione nelle applicazioni. Supporta attività specifiche del dominio attraverso framework come Vision e Natural Language.

  • Caratteristiche avanzate: Include funzionalità di formazione sul dispositivo per esperienze personalizzate, previsioni asincrone per esperienze di ML interattive e strumenti di ispezione e validazione dei modelli.

CoreML Opzioni di distribuzione

Prima di vedere il codice per esportare i modelli YOLOv8 nel formato CoreML , cerchiamo di capire dove vengono utilizzati di solito i modelli CoreML .

CoreML offre diverse opzioni di distribuzione per i modelli di apprendimento automatico, tra cui:

  • Distribuzione sul dispositivo: Questo metodo integra direttamente i modelli di CoreML nella tua app iOS. È particolarmente vantaggioso per garantire una bassa latenza, una maggiore privacy (poiché i dati rimangono sul dispositivo) e la funzionalità offline. Questo approccio, tuttavia, può essere limitato dalle capacità hardware del dispositivo, soprattutto per i modelli più grandi e complessi. La distribuzione sul dispositivo può essere eseguita in due modi.

    • Modelli incorporati: Questi modelli sono inclusi nel bundle dell'app e sono immediatamente accessibili. Sono ideali per i modelli di piccole dimensioni che non richiedono aggiornamenti frequenti.

    • Modelli scaricati: Questi modelli vengono prelevati da un server quando necessario. Questo approccio è adatto ai modelli più grandi o a quelli che necessitano di aggiornamenti regolari. Contribuisce a ridurre le dimensioni del bundle dell'applicazione.

  • Distribuzione basata sul cloud: i modelli di CoreML sono ospitati sui server e sono accessibili dall'app iOS tramite richieste API. Questa opzione scalabile e flessibile consente di aggiornare facilmente i modelli senza dover rivedere l'app. È ideale per modelli complessi o applicazioni su larga scala che richiedono aggiornamenti regolari. Tuttavia, richiede una connessione a internet e può comportare problemi di latenza e di sicurezza.

Esportare i modelli di YOLOv8 in CoreML

L'esportazione di YOLOv8 in CoreML consente di ottimizzare le prestazioni di apprendimento automatico sul dispositivo all'interno dell'ecosistema Apple, offrendo vantaggi in termini di efficienza, sicurezza e perfetta integrazione con le piattaforme iOS, macOS, watchOS e tvOS.

Installazione

Per installare il pacchetto richiesto, 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 diYOLOv8 . Durante l'installazione dei pacchetti necessari per YOLOv8, se dovessi incontrare delle difficoltà, consulta la nostra guida sui problemi comuni per trovare soluzioni e suggerimenti.

Utilizzo

Prima di immergerti nelle istruzioni per l'uso, assicurati di dare un'occhiata alla gamma di modelli diYOLOv8 offerti da Ultralytics. Questo ti aiuterà a scegliere il modello più adatto alle esigenze del tuo progetto.

Utilizzo

from ultralytics import YOLO

# Load the YOLOv8 model
model = YOLO('yolov8n.pt')

# Export the model to CoreML format
model.export(format='coreml')  # creates 'yolov8n.mlpackage'

# Load the exported CoreML model
coreml_model = YOLO('yolov8n.mlpackage')

# Run inference
results = coreml_model('https://ultralytics.com/images/bus.jpg')
# Export a YOLOv8n PyTorch model to CoreML format
yolo export model=yolov8n.pt format=coreml  # creates 'yolov8n.mlpackage''

# Run inference with the exported model
yolo predict model=yolov8n.mlpackage source='https://ultralytics.com/images/bus.jpg'

Per maggiori dettagli sul processo di esportazione, visita la pagina di documentazione diUltralytics sull'esportazione.

Distribuzione dei modelli esportati di YOLOv8 CoreML

Dopo aver esportato con successo i tuoi modelli Ultralytics YOLOv8 in CoreML, la fase successiva e critica consiste nel distribuire questi modelli in modo efficace. Per una guida dettagliata sulla distribuzione dei modelli CoreML in vari ambienti, consulta queste risorse:

  • CoreML Strumenti: Questa guida contiene istruzioni ed esempi per convertire i modelli da TensorFlow, PyTorch e altre librerie in Core ML.

  • ML e Visione: Una raccolta di video completi che coprono vari aspetti dell'uso e dell'implementazione dei modelli di CoreML .

  • Integrare un modello di ML centrale nella tua applicazione: Una guida completa sull'integrazione di un modello CoreML in un'applicazione iOS, che illustra i passaggi dalla preparazione del modello all'implementazione nell'app per diverse funzionalità.

Sommario

In questa guida abbiamo spiegato come esportare i modelli Ultralytics YOLOv8 in formato CoreML . Seguendo i passi indicati in questa guida, potrai garantire la massima compatibilità e le massime prestazioni nell'esportazione dei modelli YOLOv8 in CoreML.

Per ulteriori dettagli sull'utilizzo, visita la documentazione ufficiale di CoreML .

Inoltre, se vuoi saperne di più su altre integrazioni di Ultralytics YOLOv8 , visita la pagina della nostra guida alle integrazioni. Troverai molte risorse e approfondimenti preziosi.



Creato 2024-02-07, Aggiornato 2024-03-03
Autori: glenn-jocher (1), RizwanMunawar (1), abirami-vina (1)

Commenti