Distribuisci i modelli Ultralytics YOLO usando l’integrazione ExecuTorch
Scopri come esportare i modelli Ultralytics YOLO, come Ultralytics YOLO11, nel formato ExecuTorch per una distribuzione efficiente e nativa di PyTorch su dispositivi edge e mobili.
Abirami Vina11 min di lettura
Alcune applicazioni di visione artificiale, come l'ispezione automatizzata della qualità, i droni autonomi o i sistemi di sicurezza intelligenti, funzionano al meglio 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, ovvero su telecamere, droni o sistemi integrati, invece di inviarli al cloud.
Questo approccio, noto come IA edge, consente ai modelli di eseguire l'inferenza direttamente sul dispositivo che acquisisce i dati. Elaborando le informazioni localmente invece di affidarsi a server remoti, i sistemi possono ridurre la latenza, migliorare la privacy dei dati e aumentare l'affidabilità, anche in ambienti con connettività Internet limitata o assente.
Per esempio, una telecamera industriale che ispeziona migliaia di prodotti al minuto o un drone che naviga in ambienti complessi non può permettersi i ritardi dovuti all'elaborazione nel cloud. Eseguire Ultralytics YOLO11 direttamente sul dispositivo consente di effettuare l'inferenza immediatamente e in locale.
Per semplificare e rendere più efficiente l'esecuzione dei modelli Ultralytics YOLO all'edge, la nuova integrazione ExecuTorch, supportata da Ultralytics, offre un modo semplificato per esportare e distribuire i modelli direttamente su dispositivi mobili e integrati. ExecuTorch fa parte dell'ecosistema PyTorch Edge e offre una soluzione completa per eseguire modelli IA direttamente su hardware mobile ed edge, inclusi telefoni, dispositivi indossabili, schede integrate e microcontrollori.
Questa integrazione semplifica il passaggio di un modello Ultralytics YOLO, come YOLO11, dall'addestramento alla distribuzione sui dispositivi edge. Combinando le capacità di visione di YOLO11 con il runtime leggero e la pipeline di esportazione di PyTorch di ExecuTorch, gli utenti possono distribuire modelli che funzionano in modo efficiente sull'hardware edge, mantenendo l'accuratezza e le prestazioni dell'inferenza basata su PyTorch.
In questo articolo approfondiremo il funzionamento dell'integrazione con ExecuTorch, i motivi per cui è adatta alle applicazioni di IA edge e come iniziare a distribuire i modelli Ultralytics YOLO con ExecuTorch.
Che cos'è ExecuTorch?#
In genere, quando addestri un modello in PyTorch, il modello viene eseguito su server potenti 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.
È proprio 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, integrate ed edge. Estende le capacità di PyTorch oltre il cloud, permettendo ai modelli IA di funzionare direttamente sui dispositivi locali.
Portare l'inferenza PyTorch all'edge#
Alla base, ExecuTorch offre un runtime C++ leggero che consente ai modelli PyTorch di essere eseguiti direttamente sul dispositivo. ExecuTorch usa il formato di modello PyTorch ExecuTorch (.pte), un formato di esportazione ottimizzato per caricamenti più rapidi, un ingombro di memoria ridotto e una maggiore portabilità.
Supporta XNNPACK come backend predefinito per un'inferenza efficiente sull'unità di elaborazione centrale (CPU) e garantisce la compatibilità con 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, integrati ed edge specializzati. ExecuTorch si integra anche con la pipeline di esportazione PyTorch e supporta funzionalità avanzate come la quantizzazione e la gestione delle forme dinamiche, per migliorare le prestazioni e l'adattabilità nei diversi ambienti di distribuzione.
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. La gestione delle forme dinamiche consente invece ai modelli di elaborare in modo efficiente input di dimensioni variabili. Entrambe le funzionalità sono fondamentali per eseguire modelli IA su dispositivi edge con risorse limitate.

Fig. 1. Panoramica del funzionamento di ExecuTorch (Fonte)
Un livello unificato per l'hardware edge#
Oltre a fornire un runtime, ExecuTorch funge anche da livello di astrazione unificato per più backend hardware. In parole semplici, 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).
Dopo l'esportazione di un modello, ExecuTorch può essere configurato per usare il backend più adatto a un determinato dispositivo. Gli sviluppatori possono distribuire i modelli in modo efficiente su hardware eterogeneo senza scrivere codice personalizzato specifico per ogni dispositivo né gestire flussi di conversione separati.
Grazie al design modulare e portabile e alla stretta integrazione con PyTorch, ExecuTorch è un'ottima soluzione per distribuire modelli di visione artificiale come Ultralytics YOLO11 su sistemi mobili ed embedded. Colma il divario tra addestramento e distribuzione nel mondo reale, rendendo l'IA edge più veloce, efficiente e semplice da implementare.
Funzionalità principali di ExecuTorch#
Prima di vedere come esportare i modelli Ultralytics YOLO nel formato ExecuTorch, scopriamo cosa rende ExecuTorch una soluzione affidabile per distribuire l'IA all'edge.
Ecco una panoramica di alcune delle sue funzionalità principali:
- Supporto alla quantizzazione: ExecuTorch supporta la quantizzazione dei modelli, una tecnica che converte valori ad alta precisione in valori a precisione inferiore per ridurre le dimensioni del modello e velocizzare l'inferenza. Questo permette ai modelli di funzionare più rapidamente e usare meno memoria sui dispositivi edge, mantenendo un livello di precisione pressoché invariato. Al momento, l'esportazione Ultralytics genera modelli FP32 per il backend XNNPACK.
- Uso efficiente della memoria: Uno dei principali vantaggi di ExecuTorch è la gestione della memoria. Invece di affidarsi all'allocazione dinamica della memoria, che può introdurre latenza e un maggiore consumo energetico, ExecuTorch usa la pianificazione anticipata della memoria (AOT). Durante l'esportazione, analizza il grafo del modello e calcola in anticipo la quantità di memoria necessaria per ogni operazione. In questo modo, il runtime può eseguire i modelli con un piano di memoria statico, garantendo prestazioni prevedibili ed evitando rallentamenti o arresti anomali sui dispositivi con RAM o capacità di elaborazione limitate.
- Metadati del modello integrati: Quando si esporta un modello usando l'integrazione supportata da Ultralytics, ogni modello include un file YAML con metadati importanti, come le dimensioni dell'immagine di input, i nomi delle classi e i parametri di configurazione. Questo file aggiuntivo semplifica l'integrazione dei modelli in diverse applicazioni e ne assicura un comportamento coerente sulle varie piattaforme edge.
Come esportare i modelli Ultralytics YOLO nel formato ExecuTorch#
Ora che sappiamo meglio cosa offre ExecuTorch, vediamo come esportare i modelli Ultralytics YOLO nel formato ExecuTorch.
Passaggio 1: installa il pacchetto Python di Ultralytics#
Per iniziare, devi installare il pacchetto Python Ultralytics usando pip, un programma di 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, come in "!pip install ultralytics". Una volta installato, il pacchetto Ultralytics ti 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 più comuni offrono procedure dettagliate per la risoluzione dei problemi e buone pratiche per aiutarti a iniziare senza difficoltà.
Passaggio 2: esportazione di Ultralytics YOLO11#
Dopo aver installato il pacchetto Ultralytics, puoi caricare una variante del modello YOLO11 ed esportarla nel formato ExecuTorch. Per esempio, puoi usare un modello preaddestrato come «yolo11n.pt» ed esportarlo chiamando la funzione di esportazione con il formato impostato su «executorch».
Verrà creata una directory denominata “yolo11n_executorch_model”, che include il file del modello ottimizzato (.pte) e un file YAML separato con metadati contenenti dettagli 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: eseguire inferenze dopo l'esportazione del modello#
Dopo l'esportazione, il modello è pronto per essere distribuito su dispositivi edge e mobili usando il runtime ExecuTorch. Il file del modello .pte esportato può essere caricato nell'applicazione per eseguire inferenze in tempo reale direttamente sul dispositivo, senza bisogno di una connessione al cloud.
Per esempio, il frammento di codice qui sotto mostra come caricare il modello esportato ed eseguire un'inferenza. L'inferenza consiste semplicemente nell'usare un modello addestrato per fare 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 di oggetti con un modello Ultralytics YOLO11 esportato nel formato ExecuTorch.
Vantaggi dell'integrazione ExecuTorch#
Esplorando le diverse opzioni di esportazione supportate da Ultralytics, potresti chiederti cosa renda unica l'integrazione ExecuTorch. La differenza principale sta nel modo in cui combina prestazioni, semplicità e flessibilità, semplificando la distribuzione di potenti modelli IA direttamente su dispositivi mobili ed edge.
Ecco alcuni dei principali vantaggi dell'integrazione ExecuTorch:
- Opzioni di distribuzione flessibili: I modelli ExecuTorch possono essere distribuiti su applicazioni mobili, sistemi integrati, dispositivi IoT (Internet delle cose) e hardware specializzato per l'IA edge. Questa flessibilità consente agli sviluppatori di creare soluzioni IA scalabili e affidabili su piattaforme e ambienti diversi.
- Prestazioni dimostrate 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 controparti PyTorch, con un'accuratezza pressoché identica.
- API di integrazione flessibili: ExecuTorch offre API C++, Kotlin e Objective-C per iOS, Android e Linux integrato, consentendo agli sviluppatori di integrare i modelli YOLO direttamente nelle app native.
- Supporto per l'accelerazione hardware: ExecuTorch supporta diversi backend di accelerazione hardware, tra cui Vulkan e Metal per le GPU mobili, con integrazioni opzionali 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 solo su CPU.
Applicazioni reali di Ultralytics YOLO11 e dell'esportazione ExecuTorch#
Di recente, Ultralytics è stata riconosciuta come caso di successo PyTorch ExecuTorch, a conferma del nostro supporto iniziale all'inferenza direttamente sul dispositivo e dei contributi continui all'ecosistema PyTorch. Questo riconoscimento riflette l'obiettivo condiviso di rendere l'IA ad alte prestazioni più accessibile sulle piattaforme mobili ed edge.
Dal cloud all'edge: come ExecuTorch e Ultralytics YOLO11 danno vita all'IA basata sulla visione#
In pratica, questo significa poter eseguire in modo efficiente soluzioni di IA basate sulla visione nel mondo reale, dagli smartphone ai sistemi integrati. Per 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. Esempio di utilizzo di Ultralytics YOLO11 per analizzare una linea di assemblaggio industriale. (Fonte)
Anziché inviare immagini o dati dei sensori al cloud per l'elaborazione, con i conseguenti ritardi e la dipendenza dalla connessione Internet, l'integrazione ExecuTorch consente di eseguire i modelli Ultralytics YOLO11 direttamente sull'hardware locale. In questo modo, le fabbriche possono rilevare immediatamente i problemi di qualità, ridurre i tempi di inattività e proteggere la privacy dei dati, anche con risorse di calcolo limitate.
Ecco alcuni altri esempi di applicazione dell'integrazione ExecuTorch e dei modelli Ultralytics YOLO:
- Città intelligenti: Eseguendo localmente i modelli Ultralytics YOLO11 con ExecuTorch, le città possono prendere decisioni più rapide e basate sui dati, dal rilevamento degli ingorghi all'individuazione dei pericoli, migliorando la mobilità e la sicurezza complessive.
- Vendita al dettaglio e magazzini: Con l'inferenza direttamente sul dispositivo, i rivenditori possono automatizzare il monitoraggio degli scaffali, tracciare l'inventario e ispezionare rapidamente e in sicurezza i pacchi, senza dipendere da connessioni al cloud.
- Robotica e droni: I modelli Ultralytics YOLO11 ottimizzati per l'edge consentono a robot e droni di riconoscere oggetti, orientarsi negli ambienti e prendere decisioni in tempo reale, anche senza accesso a Internet.

Fig. 4. Rilevamento e conteggio delle auto nel traffico con YOLO11 (Fonte)
Punti chiave#
Esportare i modelli Ultralytics YOLO nel formato ExecuTorch semplifica la distribuzione dei modelli di visione artificiale su numerosi dispositivi, tra cui smartphone, tablet e sistemi integrati come Raspberry Pi. È così possibile eseguire inferenze ottimizzate direttamente sul dispositivo senza dipendere dalla connettività al 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 crescente adozione dell'IA visiva, queste integrazioni semplificano la distribuzione di sistemi intelligenti progettati per funzionare in modo efficiente in condizioni reali.
Ti interessa l'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 IA basata sulla visione. Scopri le innovazioni, come l'IA nel commercio al dettaglio e la visione artificiale nella logistica, visitando le nostre pagine dedicate alle soluzioni.
Scritto da
Commenti
Fai una domanda, condividi i tuoi risultati o aiuta qualcun altro.










