Scopri come esportare i modelli Ultralytics YOLO utilizzando l'integrazione TensorRT per ottenere prestazioni AI più rapide ed efficienti sulle GPU NVIDIA per le applicazioni in tempo reale.
Considera che un'auto a guida autonoma si muove in una strada trafficata con solo 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 sbanda nella sua corsia. In queste situazioni, la velocità e le risposte in tempo reale sono fondamentali.
È qui che l'intelligenza artificiale (AI), in particolare la computer vision, una branca dell'AI che aiuta le macchine a interpretare i dati visivi, gioca un ruolo fondamentale. Affinché le soluzioni di computer vision funzionino in modo affidabile negli ambienti reali, spesso devono elaborare rapidamente le informazioni, gestire più compiti contemporaneamente e utilizzare la memoria in modo efficiente.
Un modo per ottenere questo risultato è l'accelerazione hardware, che utilizza dispositivi specializzati come le unità di elaborazione grafica (GPU) per eseguire i modelli più velocemente. Le GPU NVIDIA sono particolarmente note per questi compiti, grazie alla loro capacità di offrire una bassa latenza e un elevato throughput.
Tuttavia, l'esecuzione di un modello su una GPU così com'è non sempre garantisce prestazioni ottimali. I modelli di intelligenza artificiale richiedono in genere un'ottimizzazione per sfruttare appieno le capacità dei dispositivi hardware. Per ottenere le massime prestazioni con un hardware specifico, dobbiamo compilare il modello in modo che utilizzi il set di istruzioni specifico dell'hardware.
Ad esempio, TensorRT è un formato di esportazione e una libreria di ottimizzazione sviluppata da NVIDIA per migliorare le prestazioni su macchine di fascia alta. Utilizza tecniche avanzate per ridurre in modo significativo il tempo di inferenza, pur mantenendo l'accuratezza.
In questo articolo esploreremo l'integrazione diTensorRT supportata da Ultralytics e ti spiegheremo come esportare il tuo modello YOLO11 per una distribuzione più rapida ed efficiente su hardware NVIDIA . Iniziamo!
TensorRT è un toolkit sviluppato da NVIDIA per aiutare i modelli di intelligenza artificiale a girare in modo più rapido ed efficiente sulle GPU NVIDIA . È stato progettato per le applicazioni del mondo reale in cui la velocità e le prestazioni sono davvero importanti, come le auto a guida autonoma e il controllo di qualità nel settore manifatturiero e farmaceutico.
TensorRT include strumenti come compilatori e ottimizzatori di modelli che possono lavorare dietro le quinte per assicurarsi che i tuoi modelli funzionino con una bassa latenza e possano gestire un throughput più elevato.
L'integrazione di TensorRT supportata da Ultralytics funziona ottimizzando il modello YOLO in modo che venga eseguito in modo più efficiente sulle GPU utilizzando metodi come la riduzione della precisione. Ciò si riferisce all'utilizzo di formati a bit più bassi, come quelli a virgola mobile a 16 bit (FP16) o interi a 8 bit (INT8), per rappresentare i dati del modello, il che riduce l'utilizzo della memoria e velocizza il calcolo con un impatto minimo sulla precisione.
Inoltre, gli strati di rete neurale compatibili vengono fusi in modelli TensorRT ottimizzati per ridurre l'utilizzo della memoria, con il risultato di un'inferenza più veloce ed efficiente.
Prima di parlare di come esportare YOLO11 utilizzando l'integrazione con TensorRT , diamo un'occhiata ad alcune caratteristiche chiave del formato del modello TensorRT :
Esportare modelliUltralytics YOLO come Ultralytics YOLO11 nel formato dei modelli TensorRT è facile. Vediamo i passaggi necessari.
Per iniziare, puoi installare il pacchettoUltralytics Python utilizzando un gestore di pacchetti come "pip". Questo può essere fatto eseguendo il comando "pip install ultralytics" nel prompt dei comandi o nel terminale.
Dopo aver installato con successo il pacchetto Ultralytics Python , puoi addestrare, testare, mettere a punto, esportare e distribuire modelli per diverse attività di computer vision, come il rilevamento di oggetti, la classificazione e la segmentazione di istanze. Se durante l'installazione del pacchetto dovessi incontrare delle difficoltà, puoi consultare la guida ai problemi comuni per trovare soluzioni e suggerimenti.
Per il prossimo passo, avrai bisogno di un dispositivo NVIDIA . Usa il frammento di codice qui sotto per caricare ed esportare YOLOv11 nel formato del modello TensorRT . Carica una variante nano pre-addestrata del modello YOLO11 (yolo11n.pt) e la esporta come file del motore TensorRT (yolo11n.engine), rendendola pronta per la distribuzione sui dispositivi NVIDIA .
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
model.export(format="engine")
Dopo aver convertito il tuo modello in formato TensorRT , puoi distribuirlo per varie applicazioni.
L'esempio seguente mostra come caricare il modello YOLO11 esportato (yolo11n.engine) ed eseguire un'inferenza con esso. L'inferenza consiste nell'utilizzare il modello addestrato per fare previsioni su nuovi dati. In questo caso, utilizzeremo l'immagine 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, nella cartella runs/detect/predict verrà salvata la seguente immagine di output.
Il pacchetto Ultralytics Python supporta diverse integrazioni che permettono di esportare i modelli YOLO in diversi formati come TorchScript, CoreML, ONNX e TensorRT. Quindi, quando dovresti scegliere di utilizzare l'integrazione con TensorRT ?
Ecco alcuni fattori che differenziano il formato del modello TensorRT da altre opzioni di integrazione dell'esportazione:
I modelli Ultralytics YOLO esportati nel formato TensorRT possono essere utilizzati in un'ampia gamma di scenari reali. Questi modelli ottimizzati sono particolarmente utili quando le prestazioni dell'intelligenza artificiale sono rapide ed efficienti. Vediamo alcuni esempi interessanti di come possono essere utilizzati.
Un'ampia gamma di attività nei negozi al dettaglio, come la scansione dei codici a barre, la pesatura dei prodotti o l'imballaggio degli articoli, sono ancora gestite manualmente dal personale. Tuttavia, affidarsi esclusivamente ai dipendenti può rallentare le operazioni e causare la frustrazione dei clienti, soprattutto alla cassa. Le lunghe file sono scomode sia per gli acquirenti che per i proprietari dei negozi. I banchi self checkout intelligenti sono un'ottima soluzione a questo problema.
Questi sportelli utilizzano la computer vision e le GPU per accelerare il processo, contribuendo a ridurre i tempi di attesa. La computer vision consente a questi sistemi di vedere e comprendere l'ambiente circostante attraverso attività come il rilevamento degli oggetti. Modelli avanzati come YOLO11, se ottimizzati con strumenti come TensorRT, possono essere eseguiti molto più velocemente su dispositivi GPU .
Questi modelli esportati sono adatti alle configurazioni di smart retail che utilizzano dispositivi hardware compatti ma potenti come NVIDIA Jetson Nano, progettato specificamente per le applicazioni di intelligenza artificiale.
Un modello di computer vision come YOLO11 può essere addestrato su misura per rilevare i prodotti difettosi nell'industria manifatturiera. Una volta addestrato, il modello può essere esportato nel formato TensorRT per essere utilizzato in strutture dotate di sistemi di intelligenza artificiale ad alte prestazioni.
Mentre i prodotti si muovono lungo i nastri trasportatori, le telecamere catturano le immagini e il modello YOLO11 , eseguito in formato TensorRT , le analizza in tempo reale per individuare i difetti. Questa configurazione consente alle aziende di individuare i problemi in modo rapido e preciso, riducendo gli errori e migliorando l'efficienza.
Allo stesso modo, industrie come quella farmaceutica utilizzano questi tipi di sistemi per identificare i difetti nelle confezioni mediche. In effetti, il mercato globale dei sistemi intelligenti di rilevamento dei difetti è destinato a crescere fino a 5 miliardi di dollari entro il 2026.
Sebbene l'integrazione di TensorRT offra molti vantaggi, come una maggiore velocità di inferenza e una latenza ridotta, ecco alcune limitazioni da tenere a mente:
L'esportazione dei modelli Ultralytics YOLO nel formato TensorRT li rende molto più veloci ed efficienti, rendendoli ideali per attività in tempo reale come il rilevamento di difetti nelle fabbriche, l'alimentazione di sistemi di cassa intelligenti o il monitoraggio di aree urbane trafficate.
Questa ottimizzazione aiuta i modelli a funzionare meglio sulle GPU NVIDIA , accelerando le previsioni e riducendo l'utilizzo di memoria e di energia. Anche se ci sono alcune limitazioni, l'aumento delle prestazioni rende l'integrazione di TensorRT un'ottima scelta per chi costruisce sistemi di computer vision ad alta velocità su hardware NVIDIA .
Vuoi saperne di più sull'intelligenza artificiale? Esplora il nostro repository GitHub, entra in contatto con la nostra comunità e scopri le nostre opzioni di licenza per avviare il tuo progetto di computer vision. Scopri di più su innovazioni come l'IA nel settore manifatturiero e la computer vision nel settore della logistica sulle nostre pagine dedicate alle soluzioni.
Inizia il tuo viaggio nel futuro dell'apprendimento automatico