Real-time Inference
Scopri la potenza dell’inferenza in tempo reale per ottenere previsioni IA istantanee. Impara come Ultralytics YOLO26 fornisca risultati a bassa latenza per dispositivi edge e robotica.
L'inferenza in tempo reale si riferisce al processo in cui un modello di machine learning (ML) addestrato accetta dati di input dal vivo e genera previsioni quasi istantaneamente. A differenza dell'elaborazione offline, in cui i dati vengono raccolti e analizzati in blocco in un secondo momento, l'inferenza in tempo reale avviene al volo, consentendo ai sistemi di reagire all'ambiente circostante con rapidità e agilità. Questa capacità è il cuore delle moderne applicazioni di intelligenza artificiale (AI) e consente ai dispositivi di percepire, interpretare e utilizzare i dati nel giro di millisecondi.
L'importanza della bassa latenza#
La metrica principale per valutare le prestazioni in tempo reale è la latenza di inferenza. Misura il ritardo tra il momento in cui i dati vengono inseriti nel modello, ad esempio un fotogramma acquisito da una videocamera, e quello in cui il modello produce un output, come un riquadro di delimitazione o un'etichetta di classificazione. Perché un'applicazione possa essere considerata "in tempo reale", la latenza deve essere sufficientemente bassa da tenere il passo con la velocità del flusso di dati in ingresso.
Ad esempio, nelle attività di comprensione video eseguite a 30 fotogrammi al secondo (FPS), il sistema dispone di una finestra temporale rigorosa di circa 33 millisecondi per elaborare ogni fotogramma. Se l'inferenza richiede più tempo, il sistema introduce ritardi, che possono causare la perdita di fotogrammi o risposte posticipate. Per raggiungere questo obiettivo sono spesso necessarie l'accelerazione hardware tramite GPU o dispositivi IA edge specializzati, come NVIDIA Jetson.
Inferenza in tempo reale vs. inferenza batch#
È utile distinguere i flussi di lavoro in tempo reale dall'elaborazione batch. Sebbene entrambi prevedano la generazione di previsioni, i loro obiettivi e le loro architetture differiscono significativamente:
- Inferenza in tempo reale: dà priorità alla bassa latenza. Elabora singoli punti dati (o batch molto piccoli) non appena arrivano. Questo è essenziale per applicazioni interattive come i veicoli autonomi, in cui un'auto deve rilevare istantaneamente un pedone per frenare in tempo.
- Inferenza batch: dà priorità all'elevata velocità di elaborazione. Raccoglie una grande quantità di dati e li elabora tutti insieme. È adatta per attività non urgenti, come la generazione di report notturni sull'inventario o l'analisi delle tendenze dei big data storici.
Applicazioni nel mondo reale#
La capacità di prendere decisioni in una frazione di secondo ha trasformato diversi settori, rendendo possibile l'automazione in ambienti dinamici.
- Produzione intelligente: nell'IA nella produzione, le videocamere posizionate sopra i nastri trasportatori utilizzano l'inferenza in tempo reale per eseguire il controllo qualità automatizzato. Un modello di rilevamento degli oggetti può identificare istantaneamente difetti o oggetti estranei nei prodotti che si muovono ad alta velocità. Se viene rilevata un'anomalia, il sistema attiva immediatamente un braccio robotico per rimuovere l'articolo, garantendo che solo prodotti di alta qualità raggiungano l'imballaggio.
- Sorveglianza e sicurezza: i moderni sistemi di sicurezza si affidano alla visione artificiale per monitorare i perimetri. Invece di limitarsi a registrare i filmati, queste videocamere eseguono il rilevamento delle persone o il riconoscimento facciale in tempo reale, per avvisare il personale di sicurezza non appena si verifica un accesso non autorizzato.
- Robotica: nel campo dell'IA nella robotica, i robot utilizzano la stima della posa per muoversi in spazi fisici complessi. Un robot da magazzino deve dedurre continuamente la posizione degli ostacoli e degli operatori umani per pianificare il proprio percorso in modo sicuro ed efficiente.
Ottimizzazione e deployment#
La distribuzione dei modelli per applicazioni in tempo reale richiede spesso un'ottimizzazione per garantire un'esecuzione efficiente sull'hardware di destinazione. Tecniche come la quantizzazione del modello riducono la precisione dei pesi del modello (ad esempio, da float32 a int8) per diminuire l'utilizzo della memoria e aumentare la velocità di inferenza, con un impatto minimo sull'accuratezza.
Gli sviluppatori possono utilizzare la Ultralytics Platform per semplificare questo processo. La piattaforma semplifica l'addestramento e consente agli utenti di esportare i modelli in formati ottimizzati come TensorRT per le GPU NVIDIA, OpenVINO per le CPU Intel o TFLite per la distribuzione su dispositivi mobili.
Esempio di codice#
Il seguente snippet Python mostra come eseguire l'inferenza in tempo reale su un flusso proveniente da una webcam utilizzando la libreria ultralytics. Utilizza il modello Nano YOLO26, progettato specificamente per offrire prestazioni ad alta velocità sui dispositivi edge.
from ultralytics import YOLO
# Load the YOLO26 Nano model, optimized for speed and real-time tasks
model = YOLO("yolo26n.pt")
# Run inference on the default webcam (source="0")
# 'stream=True' returns a generator for memory-efficient processing
# 'show=True' displays the video feed with bounding boxes in real-time
results = model.predict(source="0", stream=True, show=True)
# Iterate through the generator to process frames as they arrive
for result in results:
# Example: Print the number of objects detected in the current frame
print(f"Detected {len(result.boxes)} objects")








