Yolo Vision Shenzhen
Shenzhen
Iscriviti ora

Implementare i modelli YOLO di Ultralytics utilizzando l'integrazione con ExecuTorch

Abirami Vina

5 minuti di lettura

4 novembre 2025

Scoprite 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.

Alcune applicazioni di computer vision, come l'ispezione automatica della qualità, i droni autonomi o i sistemi di sicurezza intelligenti, ottengono le migliori prestazioni quando i modelli Ultralytics YOLO, come Ultralytics YOLO11, funzionano vicino al sensore che cattura le immagini. In altre parole, questi modelli devono elaborare i dati direttamente dove vengono generati, su telecamere, droni o sistemi embedded, anziché inviarli al cloud. 

Questo approccio, noto come edge AI, consente ai modelli di eseguire inferenze direttamente sul dispositivo in cui vengono acquisiti i dati. Elaborando le informazioni a livello locale invece di affidarsi a server remoti, i sistemi possono ottenere una minore latenza, 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 possono permettersi i ritardi dell'elaborazione in cloud. L'esecuzione di YOLO11 direttamente sul dispositivo consente un'inferenza istantanea e on-device.

Per rendere più semplice ed efficiente l'esecuzione dei modelli Ultralytics YOLO sull'edge, la nuova integrazione ExecuTorch supportata da Ultralytics offre 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 l'esecuzione di modelli AI direttamente su hardware mobile ed edge, compresi telefoni, indossabili, schede embedded e microcontrollori.

Questa integrazione semplifica il passaggio di un modello Ultralytics YOLO, come YOLO11, dall'addestramento alla distribuzione su dispositivi edge. Combinando le capacità di visione di YOLO11 con il runtime leggero di ExecuTorch e la pipeline di esportazione di PyTorch, gli utenti possono distribuire modelli che funzionano in modo efficiente su hardware edge, preservando l'accuratezza e le prestazioni dell'inferenza basata su PyTorch.

In questo articolo vedremo più da vicino come funziona l'integrazione con ExecuTorch, perché è perfetta per le applicazioni di intelligenza artificiale e come potete iniziare a implementare i modelli YOLO di Ultralytics con ExecuTorch. Iniziamo!

Che cos'è ExecuTorch?

In genere, quando si addestra un modello in PyTorch, questo viene eseguito su potenti server o unità di elaborazione grafica (GPU) nel cloud. Tuttavia, la distribuzione dello stesso modello su un dispositivo mobile o incorporato, 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 offre. ExecuTorch è una soluzione end-to-end sviluppata nell'ambito dell'ecosistema PyTorch Edge che consente un'efficiente inferenza on-device su piattaforme mobili, embedded ed edge. Estende le capacità di PyTorch oltre il cloud, consentendo l'esecuzione di modelli di intelligenza artificiale direttamente sui dispositivi locali.

Portare l'inferenza di PyTorch ai margini

ExecuTorch fornisce un runtime C++ leggero che consente di eseguire i modelli PyTorch direttamente sul dispositivo. ExecuTorch utilizza il formato di modello PyTorch ExecuTorch (.pte), un'esportazione ottimizzata progettata per un caricamento più rapido, un minore ingombro di memoria e una migliore portabilità. 

Supporta XNNPACK come backend predefinito per un'inferenza efficiente dell'unità di elaborazione centrale (CPU) ed estende la compatibilità a un'ampia gamma di backend hardware, tra cui Core ML, Metal, Vulkan, Qualcomm, MediaTek, Arm EthosU, OpenVINO e altri. 

Questi backend consentono un'accelerazione ottimizzata su dispositivi mobili, embedded ed edge specializzati. ExecuTorch si integra anche con la pipeline di esportazione PyTorch, fornendo il 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 bassa precisione, mentre la gestione dinamica delle forme viene utilizzata per consentire ai modelli di elaborare in modo efficiente input di dimensioni variabili. Entrambe le caratteristiche sono fondamentali per l'esecuzione di modelli di intelligenza artificiale su dispositivi edge con risorse limitate.

Figura 1. Uno sguardo al funzionamento di ExecuTorch(Fonte)

Un livello unificato per l'hardware edge

Oltre al suo runtime, ExecuTorch funge anche da livello di astrazione unificato per più backend hardware. In poche parole, astrae dai dettagli specifici dell'hardware e gestisce l'interazione dei modelli con le diverse unità di elaborazione, tra cui CPU, GPU e unità di elaborazione neurale (NPU).

Una volta esportato un modello, ExecuTorch può essere configurato per indirizzare il backend più adatto a un determinato dispositivo. Gli sviluppatori possono distribuire i modelli in modo efficiente su hardware diversi senza dover scrivere codice personalizzato specifico per il dispositivo o mantenere flussi di lavoro 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 mobili ed embedded. Colma il divario tra l'addestramento del modello e l'implementazione nel mondo reale, rendendo l'IA di frontiera più veloce, più efficiente e più facile da implementare.

Caratteristiche principali di ExecuTorch

Prima di vedere come esportare i modelli Ultralytics YOLO nel formato ExecuTorch, analizziamo cosa rende ExecuTorch un'opzione affidabile per l'implementazione dell'IA in ambito edge.

Ecco un assaggio di alcune delle sue caratteristiche principali:

  • Supporto della quantizzazione: ExecuTorch supporta la quantizzazione del modello, una tecnica che converte i valori ad alta precisione in valori a bassa precisione per ridurre le dimensioni del modello e accelerare l'inferenza. In questo modo i modelli vengono eseguiti più velocemente e utilizzano meno memoria sui dispositivi edge, mantenendo quasi lo stesso livello di precisione.
  • Uso efficiente della memoria: Uno dei maggiori vantaggi di ExecuTorch è la gestione della memoria. Invece di affidarsi all'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 calcola in anticipo la quantità di 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 arresti anomali su dispositivi con RAM o capacità di elaborazione limitate.
  • Metadati del modello incorporati: Quando si esporta utilizzando l'integrazione supportata da Ultralytics, ogni modello include un file YAML che contiene 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 tra le diverse piattaforme edge.

Come esportare i modelli YOLO di Ultralytics in formato ExecuTorch

Ora che abbiamo capito meglio cosa offre ExecuTorch, vediamo come esportare i modelli YOLO di Ultralytics nel formato ExecuTorch.

Passaggio 1: Installa il pacchetto Python Ultralytics

Per iniziare, è necessario installare il pacchetto Ultralytics Python utilizzando pip, che è un programma di installazione di pacchetti. È possibile farlo eseguendo "pip install ultralytics" nel terminale o nel prompt dei comandi. 

Se si lavora in un ambiente Jupyter Notebook o Google Colab, è sufficiente aggiungere 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, compreso Ultralytics YOLO11.

Se si riscontrano problemi durante l'installazione o l'esportazione del modello, la documentazione ufficiale di Ultralytics e la guida ai problemi comuni contengono i passaggi dettagliati per la risoluzione dei problemi e le migliori pratiche per aiutarvi a funzionare senza problemi.

Passaggio 2: Esportazione di Ultralytics YOLO11

Dopo aver installato il pacchetto Ultralytics, è possibile caricare una variante del modello YOLO11 ed esportarla nel formato ExecuTorch. Ad esempio, è possibile utilizzare un modello pre-addestrato come "yolo11n.pt" ed esportarlo richiamando la funzione export con il formato impostato su "executorch". 

Viene creata una cartella denominata "yolo11n_executorch_model", che include il file del modello ottimizzato (.pte) e un file YAML di metadati separato, contenente 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")

Fase 3: esecuzione delle inferenze dopo l'esportazione del modello

Una volta esportato, il modello è pronto per essere distribuito su dispositivi edge e mobili utilizzando il runtime ExecuTorch. Il file del modello .pte esportato può essere caricato nell'applicazione per eseguire l'inferenza in tempo reale, sul dispositivo, senza bisogno di una connessione al cloud.

Ad esempio, lo snippet di codice qui sotto mostra come caricare il modello esportato ed eseguire l'inferenza. L'inferenza significa semplicemente usare un modello addestrato per fare previsioni su nuovi dati. In questo caso, 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 l'esecuzione del codice, l'immagine di output con gli oggetti rilevati viene salvata nella cartella "runs/detect/predict". 

Figura 2. Rilevamento di oggetti utilizzando un modello YOLO11 esportato in formato ExecuTorch.

Vantaggi dell'integrazione con ExecuTorch

Esplorando le diverse opzioni di esportazione supportate da Ultralytics, ci si potrebbe chiedere cosa renda unica l'integrazione con ExecuTorch. La differenza fondamentale è la combinazione di prestazioni, semplicità e flessibilità, che consente di distribuire con facilità potenti modelli di intelligenza artificiale direttamente sui dispositivi mobili ed edge.

Ecco alcuni dei principali vantaggi dell'integrazione con ExecuTorch:

  • Opzioni di implementazione flessibili: I modelli ExecuTorch possono essere distribuiti su applicazioni mobili, sistemi embedded, dispositivi IoT (Internet of Things) e hardware specializzato per l'intelligenza artificiale. Questa flessibilità consente agli sviluppatori di creare soluzioni di intelligenza artificiale scalabili che funzionano in modo coerente su piattaforme e ambienti diversi.
  • Prestazioni comprovate da benchmark: I test su dispositivi come il Raspberry Pi 5 dimostrano che i modelli YOLO11 esportati in formato ExecuTorch funzionano circa due volte più velocemente delle loro controparti PyTorch, con una precisione quasi identica.
  • API di integrazione flessibili: ExecuTorch fornisce API C++, Kotlin e Objective-C per iOS, Android e Linux embedded, consentendo agli sviluppatori di integrare i modelli YOLO direttamente nelle applicazioni native.
  • Supporto dell'accelerazione hardware: ExecuTorch supporta diversi backend di accelerazione hardware, tra cui Vulkan e Metal per le GPU mobili, con integrazione opzionale per OpenCL e altre API specifiche del produttore. Può anche sfruttare acceleratori dedicati come le NPU e i DSP per ottenere sostanziali incrementi di velocità rispetto all'inferenza basata sulla sola CPU.

Applicazioni reali di YOLO11 e dell'esportazione di ExecuTorch

Recentemente, Ultralytics è stata riconosciuta come una storia di successo di PyTorch ExecuTorch, evidenziando il nostro supporto iniziale per l'inferenza su dispositivo e i nostri contributi continui all'ecosistema PyTorch. Questo riconoscimento riflette l'obiettivo comune di rendere l'IA ad alte prestazioni più accessibile sulle piattaforme mobili ed edge.

Dal cloud all'edge: Come ExecuTorch e YOLO11 danno vita a Vision AI

In pratica, si tratta di soluzioni Vision AI che funzionano in modo efficiente su qualsiasi dispositivo, dagli smartphone ai sistemi embedded. Ad esempio, nel settore manifatturiero, i dispositivi edge svolgono un ruolo cruciale nel monitoraggio delle linee di produzione e nel rilevamento dei difetti in tempo reale.

Figura 3. Un esempio di utilizzo di YOLO11 per l'analisi di una catena di montaggio.(Fonte)

Invece di inviare le immagini o i dati dei sensori al cloud per l'elaborazione, che può introdurre ritardi e dipendere dalla connettività Internet, l'integrazione di ExecuTorch consente ai modelli YOLO11 di essere eseguiti 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, il tutto operando con risorse di calcolo limitate.

Ecco alcuni altri esempi di applicazione dell'integrazione di ExecuTorch e dei modelli YOLO di Ultralytics:

  • Città intelligenti: Eseguendo i modelli YOLO11 a livello locale con ExecuTorch, le città possono prendere decisioni più rapide e basate sui dati, dal rilevamento degli ingorghi all'identificazione dei pericoli, migliorando la mobilità e la sicurezza complessive.
  • Commercio al dettaglio e magazzini: Con l'inferenza on-device, i rivenditori possono automatizzare il monitoraggio degli scaffali, tracciare l'inventario e ispezionare le confezioni in modo rapido e sicuro senza dover ricorrere a connessioni cloud.
  • Robotica e droni: I modelli YOLO11 ottimizzati per i bordi consentono a robot e droni di riconoscere oggetti, navigare in ambienti e prendere decisioni in tempo reale anche senza accesso a Internet.

Figura 4. Rilevamento e conteggio delle auto nel traffico con YOLO11(Fonte)

Punti chiave

L'esportazione dei modelli Ultralytics YOLO nel formato ExecuTorch semplifica la distribuzione dei modelli di computer vision su molti dispositivi, tra cui smartphone, tablet e sistemi embedded come Raspberry Pi. Ciò significa che è possibile eseguire un'inferenza ottimizzata sul dispositivo senza dipendere dalla connettività cloud, migliorando la velocità, la privacy e l'affidabilità.

Oltre a ExecuTorch, Ultralytics supporta un'ampia gamma di integrazioni, tra cui TensorRT, OpenVINO, CoreML e altre ancora, offrendo agli sviluppatori la flessibilità di eseguire i propri modelli su più piattaforme. Con la crescita dell'adozione di Vision AI, queste integrazioni semplificano l'implementazione di sistemi intelligenti costruiti per funzionare in modo efficiente in condizioni reali.

Siete curiosi di conoscere l'intelligenza artificiale? Consultate il nostro repository GitHub, unitevi alla nostra comunità ed esplorate le nostre opzioni di licenza per dare il via al vostro progetto Vision AI. Per saperne di più su innovazioni come l'IA nella vendita al dettaglio e la computer vision nella logistica, visitate le nostre pagine dedicate alle soluzioni.

Costruiamo insieme il futuro
dell'AI!

Inizia il tuo viaggio con il futuro del machine learning

Inizia gratis
Link copiato negli appunti