Scopri la potenza dell'inferenza in tempo reale per previsioni AI istantanee. Scopri come Ultralytics fornisce risultati a bassa latenza per dispositivi edge e robotica.
L'inferenza in tempo reale si riferisce al processo in cui un modello di apprendimento automatico (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 loro ambiente con velocità e agilità. Questa capacità è il cuore pulsante delle moderne applicazioni di Intelligenza Artificiale (AI) , consentendo ai dispositivi di percepire, interpretare e agire sui dati in pochi millisecondi.
Il parametro principale per valutare le prestazioni in tempo reale è la latenza di inferenza. Questa misura il ritardo tra il momento in cui i dati vengono immessi nel modello, ad esempio un fotogramma da una videocamera, e il momento in cui il modello produce un output, come un riquadro di delimitazione o un'etichetta di classificazione. Affinché un'applicazione possa essere considerata "in tempo reale", la latenza deve essere sufficientemente bassa da corrispondere alla velocità del flusso di dati in entrata.
Ad esempio, nelle attività di comprensione video che funzionano a 30 fotogrammi al secondo (FPS), il sistema ha un tempo massimo di circa 33 millisecondi per elaborare ogni fotogramma. Se l'inferenza richiede più tempo, il sistema introduce un ritardo, che può portare alla perdita di fotogrammi o a risposte ritardate. Per ottenere questo risultato è spesso necessaria l'accelerazione hardware tramite GPU o dispositivi Edge AI specializzati come NVIDIA .
È 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 in modo significativo:
La capacità di prendere decisioni in una frazione di secondo ha trasformato vari settori industriali, consentendo l'automazione in ambienti dinamici.
L'implementazione di modelli per applicazioni in tempo reale richiede spesso un'ottimizzazione per garantire che funzionino 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 sulla precisione.
Gli sviluppatori possono utilizzare la Ultralytics per semplificare questo processo. La piattaforma semplifica la formazione e consente agli utenti di esportare i modelli in formati ottimizzati come TensorRT per NVIDIA , OpenVINO per Intel o TFLite per l'implementazione su dispositivi mobili.
Il seguente Python mostra come eseguire un'inferenza in tempo reale su un feed della webcam utilizzando il
ultralytics biblioteca. Utilizza il YOLO26 Modello Nano,
progettato specificamente per garantire 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")