Ottimizzare i modelli Ultralytics YOLO con l’integrazione TensorRT
Scopri come esportare i modelli Ultralytics YOLO usando l’integrazione TensorRT, per prestazioni AI più rapide ed efficienti sulle GPU NVIDIA nelle applicazioni in tempo reale.
Abirami Vina9 min di lettura
Immagina un'auto a guida autonoma che attraversa una strada trafficata e ha solo pochi millisecondi per rilevare un pedone che scende dal marciapiede. Allo stesso tempo, potrebbe dover riconoscere un segnale di stop parzialmente nascosto da un albero o reagire rapidamente a un veicolo vicino che invade la sua corsia. In situazioni simili, la velocità e le risposte in tempo reale sono fondamentali.
È qui che entra in gioco l'intelligenza artificiale (AI), in particolare la visione artificiale, un ramo dell'AI che aiuta le macchine a interpretare i dati visivi. Per funzionare in modo affidabile negli ambienti reali, le soluzioni di visione artificiale devono spesso elaborare rapidamente le informazioni, gestire più attività contemporaneamente e usare la memoria in modo efficiente.
Un modo per raggiungere questo obiettivo è l'accelerazione hardware, che sfrutta dispositivi specializzati come le unità di elaborazione grafica (GPU) per eseguire i modelli più rapidamente. Le GPU NVIDIA sono particolarmente note per queste attività, grazie alla capacità di offrire latenza ridotta e throughput elevato.
Tuttavia, eseguire un modello su una GPU così com'è non garantisce sempre prestazioni ottimali. In genere, i modelli di AI per la visione devono essere ottimizzati per sfruttare appieno le capacità dei dispositivi hardware. Per ottenere prestazioni massime con hardware specifico, dobbiamo compilare il modello in modo che usi l'insieme di istruzioni specifico per quell'hardware.
Ad esempio, TensorRT è un formato di esportazione e una libreria di ottimizzazione sviluppati da NVIDIA per migliorare le prestazioni sulle GPU NVIDIA. Usa tecniche avanzate per ridurre significativamente i tempi di inferenza mantenendo la precisione.

Fig. 1 NVIDIA TensorRT consente ai modelli di funzionare in modo ottimale su diversi dispositivi NVIDIA.
In questo articolo esploreremo l'integrazione di TensorRT supportata da Ultralytics e vedremo come esportare il modello YOLO11 per distribuirlo su hardware NVIDIA in modo più rapido ed efficiente. Iniziamo!
Panoramica di TensorRT#
TensorRT è un toolkit sviluppato da NVIDIA per aiutare i modelli di AI a funzionare più rapidamente e in modo più efficiente sulle GPU NVIDIA. È progettato per applicazioni reali in cui velocità e prestazioni sono davvero importanti, come le auto a guida autonoma e il controllo qualità nel settore manifatturiero e farmaceutico.
TensorRT include strumenti come compilatori e ottimizzatori di modelli che lavorano dietro le quinte per garantire che i modelli funzionino con una latenza ridotta e gestiscano un throughput più elevato.
L'integrazione TensorRT supportata da Ultralytics ottimizza il tuo modello YOLO per eseguirlo in modo più efficiente sulle GPU, usando metodi come la riduzione della precisione. Ciò significa usare formati con un numero inferiore di bit, come il formato in virgola mobile a 16 bit (FP16) o l'intero a 8 bit (INT8), per rappresentare i dati del modello, riducendo l'uso della memoria e accelerando i calcoli con un impatto minimo sulla precisione.
Inoltre, nei modelli TensorRT ottimizzati i layer compatibili della rete neurale vengono fusi per ridurre l'uso della memoria e ottenere inferenze più rapide ed efficienti.

Fig. 2. Uno sguardo alla tecnica di fusione dei layer di TensorRT.
Caratteristiche principali del formato di esportazione TensorRT#
Prima di vedere come esportare Ultralytics YOLO11 usando l'integrazione di TensorRT, esaminiamo alcune caratteristiche principali del formato dei modelli TensorRT:
- Integrazione semplice con i framework: TensorRT supporta l'integrazione diretta con framework di AI diffusi come PyTorch, Hugging Face e ONNX, offrendo prestazioni fino a 6 volte più rapide. Supporta anche MATLAB e consente di sviluppare motori di AI ad alta velocità su piattaforme come Jetson, NVIDIA DRIVE e i data center.
- Distribuzione scalabile con Triton: i modelli ottimizzati nel formato TensorRT possono essere distribuiti su larga scala con NVIDIA Triton Inference Server, che migliora l'efficienza grazie a funzionalità come il batching degli input, l'esecuzione simultanea dei modelli, il supporto agli ensemble di modelli e lo streaming audio/video in tempo reale.
- Flessibilità tra dispositivi: dai piccoli dispositivi edge ai server potenti, TensorRT funziona nell'intero ecosistema NVIDIA e supporta strumenti come DeepStream per i video, Riva per l'AI vocale e altri strumenti per la cybersicurezza, i sistemi di raccomandazione e altro ancora.
Come funziona l'integrazione di TensorRT?#
Esportare i modelli Ultralytics YOLO, come Ultralytics YOLO11, nel formato dei modelli TensorRT è semplice. Vediamo i passaggi necessari.
Per iniziare, puoi installare il pacchetto Python Ultralytics usando un gestore di pacchetti come pip. Puoi farlo eseguendo il comando pip install ultralytics nel prompt dei comandi o nel terminale.
Dopo aver installato correttamente il pacchetto Python di Ultralytics, puoi addestrare, testare, perfezionare, esportare e distribuire modelli per diverse attività di visione artificiale, come il rilevamento di oggetti, la classificazione e la segmentazione di istanze. Se riscontri problemi durante l'installazione del pacchetto, puoi consultare la guida ai problemi comuni per trovare soluzioni e suggerimenti.
Per il passaggio successivo ti serve un dispositivo NVIDIA. Usa lo snippet di codice qui sotto per caricare ed esportare YOLO11 nel formato dei modelli TensorRT. Lo snippet carica una variante nano preaddestrata del modello YOLO11 (yolo11n.pt) e la esporta come file engine TensorRT (yolo11n.engine), pronta per la distribuzione su dispositivi NVIDIA.
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
model.export(format="engine")Dopo aver convertito il modello nel formato TensorRT, puoi distribuirlo per diverse applicazioni.
L'esempio seguente mostra come caricare il modello YOLO11 esportato (yolo11n.engine) ed eseguire un'inferenza. L'inferenza consiste nell'usare il modello addestrato per fare previsioni su nuovi dati. In questo caso, useremo un'immagine di input di un cane per testare il modello.
tensorrt_model = YOLO("yolo11n.engine")
results = tensorrt_model("https://images.pexels.com/photos/1254140/pexels-photo-1254140.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2.jpg", save=True)Quando esegui questo codice, l'immagine di output seguente verrà salvata nella cartella runs/detect/predict.

Fig. 3. Risultato dell'esecuzione di un'inferenza con il modello Ultralytics YOLO11 esportato in formato TensorRT.
Quando sfruttare l'integrazione di TensorRT#
Il pacchetto Python di Ultralytics supporta diverse integrazioni che permettono di esportare i modelli YOLO in vari formati, come TorchScript, CoreML, ONNX e TensorRT. Quando conviene quindi scegliere l'integrazione di TensorRT?
Ecco alcuni fattori che distinguono il formato dei modelli TensorRT dalle altre opzioni di integrazione per l'esportazione:
- Dimensioni ridotte del modello: Esportare un modello YOLO nel formato TensorRT con precisione INT8 (
quantize=8) può ridurne notevolmente le dimensioni. La quantizzazione da FP32 a INT8 può ridurre le dimensioni del modello di 4 volte, consentendo download più rapidi, minori requisiti di archiviazione e un ingombro di memoria inferiore durante la distribuzione. - Consumo energetico inferiore: la quantizzazione INT8 non riduce soltanto le dimensioni del modello, ma anche il consumo energetico. Le operazioni a precisione ridotta dei modelli YOLO esportati in INT8 possono consumare meno energia rispetto ai modelli FP32, un vantaggio particolarmente importante per i dispositivi a batteria come droni, smartphone o dispositivi edge.
- Prestazioni più rapide: combinare l'architettura efficiente di YOLO con l'ottimizzazione INT8 di TensorRT può migliorare la velocità di inferenza.
Applicazioni di Ultralytics YOLO11 e del formato dei modelli TensorRT#
I modelli Ultralytics YOLO esportati in formato TensorRT possono essere distribuiti in un'ampia gamma di scenari reali. Questi modelli ottimizzati sono particolarmente utili quando servono prestazioni di AI rapide ed efficienti. Esaminiamo alcuni esempi interessanti del loro utilizzo.
Casse intelligenti nei negozi al dettaglio#
Nei negozi al dettaglio, molte attività, come leggere i codici a barre, pesare i prodotti o confezionare gli articoli, sono ancora svolte manualmente dal personale. Tuttavia, affidarsi esclusivamente ai dipendenti può rallentare le operazioni e causare frustrazione nei clienti, soprattutto alla cassa. Le code lunghe sono scomode sia per chi fa acquisti sia per i titolari dei negozi. Le casse automatiche intelligenti sono un'ottima soluzione a questo problema.
Queste casse usano la visione artificiale e le GPU per velocizzare il processo e ridurre i tempi di attesa. La visione artificiale consente a questi sistemi di percepire e comprendere l'ambiente attraverso attività come il rilevamento di oggetti. Modelli avanzati come Ultralytics YOLO11, ottimizzati con strumenti come TensorRT, possono funzionare molto più rapidamente sui dispositivi GPU.
Questi modelli esportati sono ideali per le configurazioni intelligenti del commercio al dettaglio che utilizzano dispositivi hardware compatti ma potenti come NVIDIA Jetson Nano, progettato appositamente per le applicazioni di AI edge.

Fig. 4. Esempio di cassa intelligente.
Rilevamento automatizzato dei difetti nel settore manifatturiero#
Un modello di visione artificiale come Ultralytics YOLO11 può essere addestrato su misura per rilevare prodotti difettosi nel settore manifatturiero. Una volta addestrato, il modello può essere esportato in formato TensorRT per essere distribuito in stabilimenti dotati di sistemi di AI ad alte prestazioni.
Quando i prodotti avanzano sui nastri trasportatori, le telecamere acquisiscono immagini e il modello Ultralytics YOLO11, eseguito in formato TensorRT, le analizza in tempo reale per individuare i difetti. Questa configurazione consente alle aziende di rilevare i problemi in modo rapido e accurato, riducendo gli errori e migliorando l'efficienza.
Allo stesso modo, settori come quello farmaceutico utilizzano questi tipi di sistemi per individuare difetti nelle confezioni dei medicinali. Il mercato globale dei sistemi intelligenti di rilevamento dei difetti dovrebbe raggiungere i 5 miliardi di dollari entro il 2026.

Fig. 5. Uso di YOLO per rilevare difetti nell'industria farmaceutica.
Aspetti da tenere a mente quando usi TensorRT#
Anche se l'integrazione TensorRT offre molti vantaggi, come inferenze più rapide e latenza ridotta, ecco alcuni limiti da tenere a mente:
- Lieve calo della precisione: Quando esporti il modello nel formato TensorRT, il modello esportato potrebbe essere meno preciso dell'originale. Le metriche delle prestazioni, come precisione, richiamo e capacità del modello di rilevare gli oggetti (punteggi mAP), potrebbero diminuire leggermente. Puoi ridurre questo effetto usando un dataset di calibrazione rappresentativo (l'argomento
data) durante la quantizzazione INT8. - Maggiore complessità del debugging: le ottimizzazioni eseguite da TensorRT possono rendere più difficile tracciare gli errori o comprendere i comportamenti imprevisti, soprattutto quando confronti i risultati con quelli del modello originale.
- Sensibilità alla dimensione del batch: i vantaggi prestazionali di TensorRT sono più evidenti con batch di dimensioni maggiori. Per le applicazioni che elaborano singole immagini o batch ridotti, i miglioramenti delle prestazioni potrebbero essere meno significativi.
Punti chiave#
Esportare i modelli Ultralytics YOLO nel formato TensorRT li rende notevolmente più veloci ed efficienti, ideali per attività in tempo reale come il rilevamento di difetti nelle fabbriche, l’alimentazione di sistemi di pagamento automatico intelligenti o il monitoraggio di aree urbane trafficate.
Questa ottimizzazione aiuta i modelli a funzionare meglio sulle GPU NVIDIA, velocizzando le previsioni e riducendo il consumo di memoria ed energia. Sebbene presenti alcune limitazioni, l’aumento delle prestazioni rende l’integrazione di TensorRT un’ottima scelta per chiunque sviluppi sistemi di visione artificiale ad alta velocità su hardware NVIDIA.
Vuoi saperne di più sull’AI? Esplora il nostro repository GitHub, entra in contatto con la nostra community e scopri le nostre opzioni di licenza per dare il via al tuo progetto di visione artificiale. Scopri di più sulle innovazioni, come l’AI nella produzione e la visione artificiale nella logistica, nelle nostre pagine dedicate alle soluzioni.
Scritto da
Commenti
Fai una domanda, condividi i tuoi risultati o aiuta qualcun altro.










