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 pulsante delle moderne applicazioni di Artificial Intelligence (AI), permettendo ai dispositivi di percepire, interpretare e agire sui dati nel giro di pochi millisecondi.
Link to this sectionL'importanza della bassa latenza#
La metrica principale per valutare le prestazioni in tempo reale è la latenza di inferenza. Questa misura il ritardo temporale tra il momento in cui i dati vengono inseriti nel modello, come un fotogramma da una videocamera, e il momento in cui il modello produce un output, come una 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 ingresso.
Ad esempio, nelle attività di video understanding che vengono eseguite a 30 frame al secondo (FPS), il sistema ha un budget temporale rigoroso di circa 33 millisecondi per elaborare ogni fotogramma. Se l'inferenza richiede più tempo, il sistema introduce dei ritardi, portando potenzialmente alla perdita di fotogrammi o a risposte posticipate. Ottenere questo risultato spesso richiede l'accelerazione hardware utilizzando GPU o dispositivi specializzati di Edge AI come il NVIDIA Jetson.
Link to this sectionInferenza in tempo reale vs. inferenza batch#
È utile distinguere i flussi di lavoro in tempo reale dall'elaborazione batch. Sebbene entrambi comportino 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 lotti molto piccoli) non appena arrivano. Ciò è 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'alto throughput. Raccoglie un grande volume di dati e li elabora tutti in una volta. Ciò è adatto per attività non urgenti, come la generazione di report notturni sull'inventario o l'analisi di tendenze storiche di big data.
Link to this sectionApplicazioni nel mondo reale#
La capacità di prendere decisioni in una frazione di secondo ha trasformato vari settori, consentendo l'automazione in ambienti dinamici.
- Produzione intelligente: 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 può 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 prodotti di alta qualità raggiungano il confezionamento.
- 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 rilevamento di persone o 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 pose estimation per navigare in spazi fisici complessi. Un robot da magazzino deve dedurre continuamente la posizione di ostacoli e lavoratori umani per pianificare il suo percorso in modo sicuro ed efficiente.
Link to this sectionOttimizzazione 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.
Link to this sectionEsempio di codice#
The following Python snippet demonstrates how to run real-time inference on a webcam feed using the ultralytics library. It uses the YOLO26 Nano model, which is engineered specifically for high-speed performance on edge devices.
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")





