Real-time Inference
Esplora la potenza dell'inferenza in tempo reale per previsioni AI istantanee. Scopri come Ultralytics YOLO26 offre 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 in tempo reale 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 al proprio ambiente con velocità e agilità. Questa capacità è il cuore delle moderne applicazioni di Artificial Intelligence (AI), consentendo ai dispositivi di percepire, interpretare e agire sui dati nel giro di pochi millisecondi.
L'importanza della bassa latenza#
La principale metrica per valutare le prestazioni in tempo reale è la latenza di inferenza. Questa misura il ritardo temporale tra il momento in cui i dati vengono immessi nel modello, come un fotogramma da una videocamera, e il momento in cui il modello produce un output, come un bounding box o un'etichetta di classificazione. Affinché un'applicazione sia considerata "in tempo reale", la latenza deve essere sufficientemente bassa da corrispondere alla velocità del flusso di dati in arrivo.
Ad esempio, nelle attività di comprensione video eseguite a 30 fotogrammi al secondo (FPS), il sistema ha un rigoroso budget di tempo di circa 33 millisecondi per elaborare ciascun fotogramma. Se l'inferenza richiede più tempo, il sistema introduce un ritardo, potenzialmente portando a fotogrammi persi o risposte ritardate. Il raggiungimento di questo obiettivo richiede spesso un'accelerazione hardware tramite GPU o dispositivi Edge AI 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 implichino la generazione di previsioni, i loro obiettivi e le loro architetture differiscono in modo significativo:
- Inferenza in tempo reale: Dà la 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à la priorità a un elevato throughput. Raccoglie un grande volume di dati ed li elabora tutti in una volta. Questo è adatto per attività non urgenti, come la generazione di report di inventario notturni o l'analisi di tendenze storiche di big data.
Applicazioni nel mondo reale#
La capacità di prendere decisioni in una frazione di secondo ha trasformato vari settori, consentendo l'automazione in ambienti dinamici.
- Smart Manufacturing: Nell'AI nel settore manifatturiero, le telecamere posizionate sopra i nastri trasportatori utilizzano l'inferenza in tempo reale per eseguire il controllo qualità automatizzato. Un modello di object detection è in grado di identificare istantaneamente difetti o oggetti estranei nei prodotti che si muovono ad alta velocità. Se viene rilevata un'anomalia, il sistema attiva un braccio robotico per rimuovere immediatamente l'articolo, assicurando che solo merci di alta qualità raggiungano l'imballaggio.
- Sorveglianza e sicurezza: I moderni sistemi di sicurezza si affidano alla computer vision per monitorare i perimetri. Invece di limitarsi a registrare i filmati, queste telecamere eseguono il rilevamento di persone o il riconoscimento facciale in tempo reale per avvisare il personale di sicurezza di accessi non autorizzati nel momento stesso in cui si verificano.
- Robotica: Nel campo dell'AI nella robotica, i robot utilizzano la stimazione della posa per navigare in spazi fisici complessi. Un robot da magazzino deve inferire continuamente la posizione di ostacoli e lavoratori umani per pianificare il proprio percorso in modo sicuro ed efficiente.
Ottimizzazione e distribuzione#
La distribuzione di modelli per applicazioni in tempo reale richiede spesso un'ottimizzazione per garantire che vengano eseguiti in modo 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 GPU NVIDIA, OpenVINO per CPU Intel o TFLite per la distribuzione su dispositivi mobili.
Esempio di codice#
Il seguente snippet Python dimostra come eseguire l'inferenza in tempo reale su un feed di webcam utilizzando la libreria ultralytics. Utilizza il modello Nano YOLO26, progettato specificamente per prestazioni ad alta velocità su 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")





