Esegui il deployment dei modelli Ultralytics YOLO usando l'integrazione ExecuTorch
Esplora come esportare i modelli Ultralytics YOLO come Ultralytics YOLO11 nel formato ExecuTorch per un deployment efficiente e nativo per PyTorch su dispositivi edge e mobile.

Alcune applicazioni di computer vision, come l'ispezione automatizzata della qualità, i droni autonomi o i sistemi di sicurezza intelligenti, funzionano meglio quando i modelli Ultralytics YOLO, come Ultralytics YOLO11, vengono eseguiti vicino al sensore che cattura le immagini. In altre parole, questi modelli devono elaborare i dati direttamente nel punto in cui vengono generati, su fotocamere, droni o sistemi integrati, anziché inviarli al cloud.
Questo approccio, noto come edge AI, consente ai modelli di eseguire l'inferenza direttamente sul dispositivo in cui vengono catturati i dati. Elaborando le informazioni localmente anziché affidarsi a server remoti, i sistemi possono ottenere una latenza inferiore, una maggiore privacy dei dati e una migliore affidabilità, anche in ambienti con connettività internet limitata o assente.
Ad esempio, una fotocamera di produzione che ispeziona migliaia di prodotti ogni minuto, o un drone che naviga in ambienti complessi, non possono permettersi i ritardi derivanti dall'elaborazione nel cloud. Eseguire YOLO11 direttamente sul dispositivo consente un'inferenza istantanea, direttamente on-device.
Per rendere l'esecuzione dei modelli Ultralytics YOLO sull'edge più facile ed efficiente, la nuova integrazione ExecuTorch supportata da Ultralytics fornisce un modo semplificato per esportare e distribuire i modelli direttamente su dispositivi mobili ed embedded. ExecuTorch fa parte dell'ecosistema PyTorch Edge e fornisce una soluzione end-to-end per eseguire modelli AI direttamente su hardware mobile ed edge, inclusi telefoni, dispositivi indossabili, schede embedded e microcontrollori.
Questa integrazione rende semplice portare un modello Ultralytics YOLO, come YOLO11, dall'addestramento alla distribuzione su dispositivi edge. Combinando le funzionalità di visione di YOLO11 con il runtime leggero di ExecuTorch e la pipeline di esportazione di PyTorch, puoi distribuire modelli che funzionano in modo efficiente sull'hardware edge, preservando l'accuratezza e le prestazioni dell'inferenza basata su PyTorch.
In questo articolo, esamineremo più da vicino come funziona l'integrazione ExecuTorch, perché è un'ottima soluzione per le applicazioni di edge AI e come puoi iniziare a distribuire i modelli Ultralytics YOLO con ExecuTorch. Cominciamo!
Link to this sectionCos'è ExecuTorch?#
In genere, quando addestri un modello in PyTorch, questo viene eseguito su potenti server o unità di elaborazione grafica (GPU) nel cloud. Tuttavia, distribuire lo stesso modello su un dispositivo mobile o embedded, come uno smartphone, un drone o un microcontrollore, richiede una soluzione specializzata in grado di gestire potenza di calcolo, memoria e connettività limitate.
Questo è esattamente ciò che ExecuTorch mette in campo. ExecuTorch è una soluzione end-to-end sviluppata come parte dell'ecosistema PyTorch Edge che consente un'efficiente inferenza on-device su piattaforme mobile, embedded ed edge. Estende le capacità di PyTorch oltre il cloud, consentendo ai modelli AI di essere eseguiti direttamente sui dispositivi locali.
Link to this sectionPortare l'inferenza PyTorch sull'edge#
Fondamentalmente, ExecuTorch fornisce un runtime C++ leggero che consente ai modelli PyTorch di essere eseguiti direttamente sul dispositivo. ExecuTorch utilizza il formato di modello PyTorch ExecuTorch (.pte), un'esportazione ottimizzata progettata per un caricamento più rapido, un ingombro di memoria ridotto e una maggiore portabilità.
Supporta XNNPACK come backend predefinito per un'efficiente inferenza su Central Processing Unit (CPU) ed estende la compatibilità a un'ampia gamma di backend hardware, inclusi CoreML, Metal, Vulkan, Qualcomm, MediaTek, Arm EthosU, OpenVINO e altri.
Questi backend consentono un'accelerazione ottimizzata su dispositivi mobile, embedded ed edge specializzati. ExecuTorch si integra anche con la pipeline di esportazione di PyTorch, fornendo supporto per funzionalità avanzate come la quantizzazione e la gestione dinamica delle forme per migliorare le prestazioni e l'adattabilità in diversi ambienti di distribuzione.
La quantizzazione riduce le dimensioni del modello e aumenta la velocità di inferenza convertendo i valori ad alta precisione (come i float a 32 bit) in valori a precisione inferiore, mentre la gestione dinamica delle forme viene utilizzata per consentire ai modelli di elaborare in modo efficiente dimensioni di input variabili. Entrambe le funzionalità sono cruciali per l'esecuzione di modelli AI su dispositivi edge con risorse limitate.

Fig 1. Uno sguardo a come funziona ExecuTorch (Fonte)
Link to this sectionUn livello unificato per l'hardware edge#
Oltre al suo runtime, ExecuTorch funge anche da livello di astrazione unificato per molteplici backend hardware. In poche parole, astrae i dettagli specifici dell'hardware e gestisce il modo in cui i modelli interagiscono con le diverse unità di elaborazione, incluse CPU, GPU e Neural Processing Units (NPU).
Una volta esportato un modello, ExecuTorch può essere configurato per indirizzare il backend più adatto per un determinato dispositivo. Gli sviluppatori possono distribuire i modelli in modo efficiente su diversi hardware senza scrivere codice personalizzato specifico per il dispositivo o mantenere flussi di conversione separati.
Grazie al suo design modulare e portatile e alla perfetta integrazione con PyTorch, ExecuTorch è un'ottima opzione per distribuire modelli di computer vision come Ultralytics YOLO11 su sistemi mobile ed embedded. Colma il divario tra l'addestramento del modello e la distribuzione nel mondo reale, rendendo l'edge AI più veloce, più efficiente e più facile da implementare.
Link to this sectionCaratteristiche principali di ExecuTorch#
Prima di vedere come esportare i modelli Ultralytics YOLO nel formato ExecuTorch, esploriamo cosa rende ExecuTorch un'opzione affidabile per distribuire l'IA sull'edge.
Ecco una panoramica di alcune delle sue caratteristiche principali:
- Supporto alla quantizzazione: ExecuTorch supporta la quantizzazione del modello, una tecnica che converte i valori ad alta precisione in valori a precisione inferiore per ridurre le dimensioni del modello e velocizzare l'inferenza. Questo aiuta i modelli a funzionare più velocemente e a utilizzare meno memoria sui dispositivi edge, mantenendo quasi lo stesso livello di accuratezza.
- Uso efficiente della memoria: Uno dei maggiori vantaggi di ExecuTorch è il modo in cui gestisce la memoria. Invece di fare affidamento sull'allocazione dinamica della memoria, che può introdurre latenza e sovraccarico energetico, ExecuTorch utilizza la pianificazione della memoria Ahead-of-Time (AOT). Durante l'esportazione, analizza il grafico del modello e precalcola quanta memoria è necessaria per ogni operazione. Ciò consente al runtime di eseguire i modelli utilizzando un piano di memoria statico, garantendo prestazioni prevedibili e prevenendo rallentamenti o crash su dispositivi con RAM o capacità di elaborazione limitate.
- Metadati del modello integrati: Quando esporti utilizzando l'integrazione supportata da Ultralytics, ogni modello include un file YAML che contiene metadati importanti come la dimensione dell'immagine di input, i nomi delle classi e i parametri di configurazione. Questo file aggiuntivo semplifica l'integrazione del modello in varie applicazioni e garantisce un comportamento coerente su diverse piattaforme edge.
Link to this sectionCome esportare i modelli Ultralytics YOLO nel formato ExecuTorch#
Ora che comprendiamo meglio cosa offre ExecuTorch, vediamo come esportare i modelli Ultralytics YOLO nel formato ExecuTorch.
Link to this sectionPassaggio 1: Installa il pacchetto Python di Ultralytics#
Per iniziare, dovrai installare il pacchetto Python Ultralytics utilizzando pip, che è un gestore di pacchetti. Puoi farlo eseguendo “pip install ultralytics” nel tuo terminale o prompt dei comandi.
Se stai lavorando in un ambiente Jupyter Notebook o Google Colab, aggiungi semplicemente un punto esclamativo prima del comando, come "!pip install ultralytics". Una volta installato, il pacchetto Ultralytics fornisce tutti gli strumenti necessari per addestrare, testare ed esportare modelli di computer vision, incluso Ultralytics YOLO11.
Se riscontri problemi durante l'installazione o l'esportazione del modello, la documentazione ufficiale di Ultralytics e la guida ai problemi comuni contengono passaggi dettagliati per la risoluzione dei problemi e le migliori pratiche per aiutarti a iniziare senza intoppi.
Link to this sectionPassaggio 2: Esportazione di Ultralytics YOLO11#
Dopo aver installato il pacchetto Ultralytics, puoi caricare una variante del modello YOLO11 ed esportarla nel formato ExecuTorch. Ad esempio, puoi utilizzare un modello pre-addestrato come “yolo11n.pt” ed esportarlo chiamando la funzione di esportazione con il formato impostato su “executorch”.
Questo crea una directory denominata “yolo11n_executorch_model”, che include il file del modello ottimizzato (.pte) e un file YAML di metadati separato contenente dettagli importanti come la dimensione dell'immagine e i nomi delle classi.
Ecco il codice per esportare il tuo modello:
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
model.export(format="executorch")Link to this sectionPassaggio 3: Esecuzione delle inferenze dopo aver esportato il modello#
Una volta esportato, il modello è pronto per essere distribuito su dispositivi edge e mobile utilizzando il runtime ExecuTorch. Il file del modello .pte esportato può essere caricato nella tua applicazione per eseguire l'inferenza in tempo reale sul dispositivo senza bisogno di una connessione cloud.
Ad esempio, il frammento di codice seguente mostra come caricare il modello esportato ed eseguire l'inferenza. L'inferenza significa semplicemente utilizzare un modello addestrato per fare previsioni su nuovi dati. Qui, il modello viene testato su un'immagine di un autobus presa da un URL pubblico.
executorch_model = YOLO("yolo11n_executorch_model")
results = executorch_model.predict("https://ultralytics.com/images/bus.jpg", save=True)Dopo aver eseguito il codice, troverai l'immagine di output con gli oggetti rilevati salvata nella cartella “runs/detect/predict”.

Fig 2. Rilevamento di oggetti utilizzando un modello YOLO11 esportato nel formato ExecuTorch.
Link to this sectionVantaggi dell'utilizzo dell'integrazione ExecuTorch#
Mentre esplori le diverse opzioni di esportazione supportate da Ultralytics, potresti chiederti cosa rende unica l'integrazione ExecuTorch. La differenza principale è quanto bene combina prestazioni, semplicità e flessibilità, rendendo facile distribuire potenti modelli AI direttamente su dispositivi mobile ed edge.
Ecco una panoramica di alcuni dei principali vantaggi dell'utilizzo dell'integrazione ExecuTorch:
- Opzioni di distribuzione flessibili: I modelli ExecuTorch possono essere distribuiti su applicazioni mobile, sistemi embedded, dispositivi IoT (Internet of Things) e hardware AI edge specializzato. Questa flessibilità consente agli sviluppatori di costruire soluzioni AI scalabili che funzionano in modo coerente su diverse piattaforme e ambienti.
- Prestazioni comprovate dai benchmark: I test su dispositivi come il Raspberry Pi 5 mostrano che i modelli YOLO11 esportati nel formato ExecuTorch funzionano circa 2 volte più velocemente delle loro controparti PyTorch, con un'accuratezza quasi identica.
- API di integrazione flessibili: ExecuTorch fornisce API C++, Kotlin e Objective-C per iOS, Android ed embedded Linux, consentendo agli sviluppatori di integrare i modelli YOLO direttamente nelle app native.
- Supporto all'accelerazione hardware: ExecuTorch supporta molteplici backend di accelerazione hardware, inclusi Vulkan e Metal per GPU mobile, con integrazione opzionale per OpenCL e altre API specifiche del fornitore. Può anche sfruttare acceleratori dedicati come NPU e DSP per ottenere notevoli aumenti di velocità rispetto all'inferenza basata solo su CPU.
Link to this sectionApplicazioni nel mondo reale di YOLO11 e dell'esportazione ExecuTorch#
Recentemente, Ultralytics è stata riconosciuta come una storia di successo di PyTorch ExecuTorch, evidenziando il nostro supporto tempestivo per l'inferenza on-device e i continui contributi all'ecosistema PyTorch. Questo riconoscimento riflette un obiettivo condiviso: rendere l'IA ad alte prestazioni più accessibile sulle piattaforme mobile ed edge.
Link to this sectionDal cloud all'edge: come ExecuTorch e YOLO11 portano in vita la vision AI#
In pratica, questo si traduce in soluzioni di vision AI reali che funzionano in modo efficiente su tutto, dagli smartphone ai sistemi embedded. Ad esempio, nella produzione, i dispositivi edge svolgono un ruolo cruciale nel monitoraggio delle linee di produzione e nel rilevamento dei difetti in tempo reale.

Fig 3. Un esempio di utilizzo di YOLO11 per analizzare una linea di assemblaggio di produzione. (Fonte)
Invece di inviare immagini o dati di sensori al cloud per l'elaborazione, il che può introdurre ritardi e dipendere dalla connettività internet, l'integrazione ExecuTorch consente ai modelli YOLO11 di essere eseguiti direttamente sull'hardware locale. Ciò significa che le fabbriche possono rilevare problemi di qualità all'istante, ridurre i tempi di inattività e mantenere la privacy dei dati, operando al contempo con risorse di calcolo limitate.
Ecco alcuni altri esempi di come l'integrazione ExecuTorch e i modelli Ultralytics YOLO possono essere applicati:
- Smart city: Eseguendo i modelli YOLO11 localmente con ExecuTorch, le città possono prendere decisioni più rapide basate sui dati, dal rilevamento degli ingorghi stradali all'identificazione dei pericoli, migliorando la mobilità e la sicurezza complessive.
- Retail e magazzinaggio: Con l'inferenza on-device, i rivenditori possono automatizzare il monitoraggio degli scaffali, tracciare l'inventario e ispezionare i pacchi in modo rapido e sicuro senza dipendere dalle connessioni cloud.
- Robotica e droni: I modelli YOLO11 ottimizzati per l'edge consentono a robot e droni di riconoscere oggetti, navigare negli ambienti e prendere decisioni in tempo reale anche senza accesso a internet.

Fig 4. Rilevamento e conteggio di auto nel traffico utilizzando YOLO11 (Fonte)
Link to this sectionPunti chiave#
Esportare i modelli Ultralytics YOLO nel formato ExecuTorch rende facile distribuire modelli di computer vision su molti dispositivi, inclusi smartphone, tablet e sistemi embedded come il Raspberry Pi. Ciò significa che è possibile eseguire un'inferenza ottimizzata sul dispositivo senza fare affidamento sulla connettività cloud, migliorando velocità, privacy e affidabilità.
Oltre a ExecuTorch, Ultralytics supporta un'ampia gamma di integrazioni, tra cui TensorRT, OpenVINO, CoreML e altre, offrendo agli sviluppatori la flessibilità di eseguire i propri modelli su diverse piattaforme. Con la crescita dell'adozione della vision AI, queste integrazioni semplificano la distribuzione di sistemi intelligenti costruiti per funzionare in modo efficiente in condizioni reali.
Curioso dell'IA? Dai un'occhiata al nostro repository GitHub, unisciti alla nostra community ed esplora le nostre opzioni di licenza per dare il via al tuo progetto di vision AI. Scopri di più su innovazioni come l'IA nel retail e la computer vision nella logistica visitando le nostre pagine dedicate alle soluzioni.






