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

Alcune applicazioni di visione artificiale, come l'ispezione automatizzata della qualità, i droni autonomi o i sistemi di sicurezza intelligenti, offrono prestazioni ottimali quando i modelli Ultralytics YOLO, come Ultralytics YOLO11, vengono eseguiti vicino al sensore che acquisisce le immagini. In altre parole, questi modelli devono elaborare i dati direttamente nel luogo in cui vengono generati, su telecamere, droni o sistemi embedded, invece di inviarli al cloud.
Questo approccio, noto come AI edge, consente ai modelli di eseguire l'inferenza direttamente sul dispositivo in cui vengono acquisiti i dati. Elaborando le informazioni localmente invece di affidarsi a server remoti, i sistemi possono ottenere una latenza inferiore, una maggiore privacy dei dati e una maggiore affidabilità, anche in ambienti con connettività Internet limitata o assente.
Ad esempio, una telecamera di produzione che ispeziona migliaia di prodotti al minuto o un drone che naviga in ambienti complessi non può permettersi i ritardi causati dall'elaborazione nel cloud. Eseguire Ultralytics YOLO11 direttamente sul dispositivo consente di effettuare l'inferenza istantaneamente e direttamente sul dispositivo.
Per rendere l'esecuzione dei modelli Ultralytics YOLO sull'edge più semplice ed efficiente, la nuova integrazione ExecuTorch supportata da Ultralytics offre un metodo ottimizzato per esportare e implementare i modelli direttamente su dispositivi mobili ed embedded. ExecuTorch fa parte dell'ecosistema PyTorch Edge e offre una soluzione end-to-end per eseguire modelli di AI direttamente su hardware mobile ed edge, inclusi telefoni, dispositivi indossabili, schede embedded e microcontrollori.
Questa integrazione semplifica il passaggio di un modello Ultralytics YOLO, come YOLO11, dall'addestramento all'implementazione sui dispositivi edge. Combinando le capacità di visione di YOLO11 con il runtime leggero e la pipeline di esportazione PyTorch di ExecuTorch, puoi implementare modelli che funzionano in modo efficiente sull'hardware edge, preservando al contempo l'accuratezza e le prestazioni dell'inferenza basata su PyTorch.
In questo articolo analizzeremo più da vicino il funzionamento dell'integrazione ExecuTorch, i motivi per cui è adatta alle applicazioni di AI edge e come puoi iniziare a implementare i modelli Ultralytics YOLO con ExecuTorch. Iniziamo!
Che cos'è ExecuTorch?#
In genere, quando addestri un modello in PyTorch, questo viene eseguito su server potenti o su unità di elaborazione grafica (GPUs) nel cloud. Tuttavia, implementare 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.
È esattamente ciò che offre ExecuTorch. ExecuTorch è una soluzione end-to-end sviluppata nell'ambito dell'ecosistema PyTorch Edge che consente un'inferenza efficiente direttamente sul dispositivo su piattaforme mobili, embedded ed edge. Estende le funzionalità di PyTorch oltre il cloud, consentendo ai modelli di AI di funzionare direttamente sui dispositivi locali.
Portare l'inferenza PyTorch sull'edge#
Alla base, ExecuTorch offre un runtime C++ leggero che consente l'esecuzione dei modelli PyTorch direttamente sul dispositivo. ExecuTorch utilizza il formato modello PyTorch ExecuTorch (.pte), un formato di esportazione ottimizzato progettato per un caricamento più rapido, un ingombro di memoria ridotto e una maggiore portabilità.
Supporta XNNPACK come backend predefinito per un'inferenza efficiente sull'unità centrale di elaborazione (CPU) ed estende la compatibilità a un'ampia gamma di backend hardware, tra cui CoreML, Metal, Vulkan, Qualcomm, MediaTek, Arm EthosU, OpenVINO e altri.
Questi backend consentono un'accelerazione ottimizzata su dispositivi mobili, embedded e edge specializzati. ExecuTorch si integra inoltre con la pipeline di esportazione PyTorch, offrendo supporto per funzionalità avanzate come la quantizzazione e la gestione delle forme dinamiche, per migliorare le prestazioni e l'adattabilità nei diversi ambienti di implementazione.
La quantizzazione riduce le dimensioni del modello e aumenta la velocità di inferenza convertendo valori ad alta precisione, come i numeri in virgola mobile a 32 bit, in valori a precisione inferiore, mentre la gestione delle forme dinamiche consente ai modelli di elaborare in modo efficiente input di dimensioni variabili. Entrambe le funzionalità sono fondamentali per eseguire modelli di AI su dispositivi edge con risorse limitate.

Fig. 1. Panoramica del funzionamento di ExecuTorch (Fonte)
Un livello unificato per l'hardware edge#
Oltre al runtime, ExecuTorch funge anche da livello di astrazione unificato per più backend hardware. In poche parole, astrae i dettagli specifici dell'hardware e gestisce il modo in cui i modelli interagiscono con diverse unità di elaborazione, tra cui CPU, GPU e unità di elaborazione neurale (NPU).
Una volta esportato un modello, ExecuTorch può essere configurato per utilizzare il backend più adatto a un determinato dispositivo. Puoi implementare i modelli in modo efficiente su hardware diversi senza scrivere codice personalizzato specifico per il dispositivo o gestire workflow di conversione separati.
Grazie al design modulare e portatile e alla perfetta integrazione con PyTorch, ExecuTorch è un'ottima soluzione per implementare modelli di visione artificiale come Ultralytics YOLO11 su sistemi mobili ed embedded. Colma il divario tra l'addestramento dei modelli e l'implementazione nel mondo reale, rendendo l'AI edge più veloce, efficiente e semplice da implementare.
Funzionalità principali di ExecuTorch#
Prima di vedere come esportare i modelli Ultralytics YOLO nel formato ExecuTorch, analizziamo ciò che rende ExecuTorch una soluzione affidabile per implementare l'AI sull'edge.
Ecco una panoramica di alcune delle sue funzionalità principali:
- Supporto alla quantizzazione: ExecuTorch supporta la quantizzazione dei modelli, una tecnica che converte i valori ad alta precisione in valori a precisione inferiore per ridurre le dimensioni del modello e accelerare l'inferenza. Questo consente ai modelli di funzionare più velocemente e utilizzare meno memoria sui dispositivi edge, mantenendo quasi lo stesso livello di accuratezza.
- Utilizzo efficiente della memoria: Uno dei principali vantaggi di ExecuTorch è il modo in cui gestisce la memoria. Invece di affidarsi all'allocazione dinamica della memoria, che può introdurre latenza e un sovraccarico energetico, ExecuTorch utilizza la pianificazione della memoria tramite compilazione anticipata (AOT). Durante l'esportazione, analizza il grafo del modello e calcola in anticipo la quantità di memoria necessaria per ogni operazione. Questo consente al runtime di eseguire i modelli utilizzando un piano di memoria statico, garantendo prestazioni prevedibili e prevenendo rallentamenti o arresti anomali sui dispositivi con RAM o capacità di elaborazione limitate.
- Metadati del modello integrati: Durante l'esportazione tramite l'integrazione supportata da Ultralytics, ogni modello include un file YAML contenente metadati importanti, come le dimensioni 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.
Come esportare i modelli Ultralytics YOLO nel formato ExecuTorch#
Ora che abbiamo una conoscenza più approfondita di ciò che offre ExecuTorch, vediamo come esportare i modelli Ultralytics YOLO nel formato ExecuTorch.
Passaggio 1: installa il pacchetto Ultralytics per Python#
Per iniziare, devi installare il pacchetto Python Ultralytics utilizzando pip, un programma per l'installazione dei pacchetti. Puoi farlo eseguendo “pip install ultralytics” nel terminale o nel prompt dei comandi.
Se lavori in un ambiente Jupyter Notebook o Google Colab, aggiungi semplicemente un punto esclamativo prima del comando, ad esempio "!pip install ultralytics". Una volta installato, il pacchetto Ultralytics fornisce tutti gli strumenti necessari per addestrare, testare ed esportare modelli di visione artificiale, 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 offrono procedure dettagliate per la risoluzione dei problemi e best practice per aiutarti a iniziare senza difficoltà.
Passaggio 2: esporta Ultralytics YOLO11#
Dopo aver installato il pacchetto Ultralytics, puoi caricare una variante del modello YOLO11 ed esportarlo nel formato ExecuTorch. Ad esempio, puoi utilizzare un modello preaddestrato come “yolo11n.pt” ed esportarlo chiamando la funzione di esportazione con il formato impostato su “executorch”.
Viene così creata una directory denominata “yolo11n_executorch_model”, che include il file del modello ottimizzato (.pte) e un file YAML separato con i metadati contenente informazioni importanti, come le dimensioni dell'immagine e i nomi delle classi.
Ecco il codice per esportare il modello:
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
model.export(format="executorch")Passaggio 3: esecuzione delle inferenze dopo l'esportazione del modello#
Una volta esportato, il modello è pronto per essere implementato su dispositivi edge e mobili utilizzando il runtime ExecuTorch. Il file del modello .pte esportato può essere caricato nella tua applicazione per eseguire inferenze in tempo reale direttamente sul dispositivo, senza bisogno di una connessione al cloud.
Ad esempio, il frammento di codice seguente mostra come caricare il modello esportato ed eseguire l'inferenza. L'inferenza consiste semplicemente nell'utilizzare un modello addestrato per effettuare previsioni su nuovi dati. In questo caso, il modello viene testato su un'immagine di un autobus acquisita 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 degli oggetti utilizzando un modello Ultralytics YOLO11 esportato nel formato ExecuTorch.
Vantaggi dell'utilizzo dell'integrazione ExecuTorch#
Mentre esplori le diverse opzioni di esportazione supportate da Ultralytics, potresti chiederti cosa renda unica l'integrazione ExecuTorch. La differenza principale sta nella capacità di combinare prestazioni, semplicità e flessibilità, semplificando l'implementazione di potenti modelli di AI direttamente su dispositivi mobili ed edge.
Ecco alcuni dei principali vantaggi dell'utilizzo dell'integrazione ExecuTorch:
- Opzioni di implementazione flessibili: I modelli ExecuTorch possono essere implementati in applicazioni mobili, sistemi embedded, dispositivi IoT (Internet delle cose) e hardware edge specializzato per l'AI. Questa flessibilità consente agli sviluppatori di creare soluzioni di AI scalabili che offrono prestazioni uniformi su piattaforme e ambienti diversi.
- Prestazioni comprovate dai benchmark: I test su dispositivi come Raspberry Pi 5 mostrano che i modelli Ultralytics 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 offre API C++, Kotlin e Objective-C per iOS, Android e Linux embedded, consentendo agli sviluppatori di integrare i modelli YOLO direttamente nelle app native.
- Supporto all'accelerazione hardware: ExecuTorch supporta diversi backend per l'accelerazione hardware, tra cui Vulkan e Metal per le GPU mobili, con integrazione opzionale per OpenCL e altre API specifiche dei fornitori. Può inoltre sfruttare acceleratori dedicati come NPU e DSP per ottenere notevoli aumenti di velocità rispetto all'inferenza eseguita esclusivamente sulla CPU.
Applicazioni nel mondo reale di Ultralytics YOLO11 e dell'esportazione ExecuTorch#
Recentemente, Ultralytics è stata riconosciuta come storia di successo di PyTorch ExecuTorch, evidenziando il nostro supporto iniziale all'inferenza direttamente sul dispositivo e i nostri contributi continui all'ecosistema PyTorch. Questo riconoscimento riflette l'obiettivo condiviso di rendere l'AI ad alte prestazioni più accessibile sulle piattaforme mobili ed edge.
Dal cloud all'edge: come ExecuTorch e Ultralytics YOLO11 danno vita all'AI per la visione#
Nella pratica, questo si traduce in soluzioni di AI per la visione del mondo reale che funzionano in modo efficiente su qualsiasi dispositivo, dagli smartphone ai sistemi embedded. Ad esempio, nella produzione, i dispositivi edge svolgono un ruolo fondamentale nel monitoraggio delle linee di produzione e nel rilevamento dei difetti in tempo reale.

Fig. 3. Un esempio di utilizzo di Ultralytics YOLO11 per analizzare una catena di montaggio. (Fonte)
Invece di inviare immagini o dati dei sensori al cloud per l'elaborazione, introducendo così possibili ritardi e dipendendo dalla connettività Internet, l'integrazione ExecuTorch consente ai modelli Ultralytics YOLO11 di funzionare direttamente sull'hardware locale. Ciò significa che le fabbriche possono rilevare istantaneamente i problemi di qualità, ridurre i tempi di inattività e mantenere la privacy dei dati, operando al contempo con risorse di calcolo limitate.
Ecco altri esempi di come applicare l'integrazione ExecuTorch e i modelli Ultralytics YOLO:
- Città intelligenti: Eseguendo localmente i modelli Ultralytics YOLO11 con ExecuTorch, le città possono prendere decisioni più rapide basate sui dati, dal rilevamento degli ingorghi all'identificazione dei pericoli, migliorando la mobilità e la sicurezza complessive.
- Vendita al dettaglio e magazzinaggio: Con l'inferenza direttamente sul dispositivo, i rivenditori possono automatizzare il monitoraggio degli scaffali, tenere traccia dell'inventario e ispezionare rapidamente e in sicurezza i pacchi senza affidarsi alle connessioni cloud.
- Robotica e droni: I modelli Ultralytics 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 delle automobili nel traffico utilizzando YOLO11 (Fonte)
Punti chiave#
Esportare i modelli Ultralytics YOLO nel formato ExecuTorch semplifica l'implementazione dei modelli di visione artificiale su numerosi dispositivi, inclusi smartphone, tablet e sistemi embedded come Raspberry Pi. Ciò consente di eseguire inferenze ottimizzate direttamente sul dispositivo senza dipendere dalla 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à necessaria per eseguire i propri modelli su diverse piattaforme. Con la diffusione dell'AI per la visione, queste integrazioni semplificano l'implementazione di sistemi intelligenti progettati per funzionare in modo efficiente in condizioni reali.
Ti interessa l'AI? Dai un'occhiata al nostro repository GitHub, entra a far parte della nostra community ed esplora le nostre opzioni di licenza per dare il via al tuo progetto di AI per la visione. Scopri di più su innovazioni come l'AI nel commercio al dettaglio e la visione artificiale nella logistica visitando le nostre pagine dedicate alle soluzioni.









