Controllo verde
Link copiato negli appunti

Utilizzare Ultralytics YOLO11 per eseguire inferenze in batch

Scopri la differenza tra l'inferenza in tempo reale e l'inferenza in batch quando usi Ultralytics YOLO11 per varie applicazioni di computer vision.

Se hai visto un'auto a guida autonoma in azione, hai assistito a un'inferenza AI in tempo reale. Un'auto a guida autonoma di solito utilizza telecamere, sensori e IA per elaborare l'ambiente circostante e prendere decisioni quasi istantanee. Tuttavia, quando non sono necessarie risposte rapide, l'inferenza in tempo reale può richiedere molte risorse.

Un'opzione migliore in questi casi è l'inferenza batch. Invece di elaborare continuamente i dati in tempo reale, un'inferenza batch può gestire grandi serie di dati a intervalli programmati. Questo approccio aiuta a risparmiare risorse, a ridurre il consumo energetico e ad abbattere i costi dell'infrastruttura.

Ad esempio, nelle applicazioni di computer vision, modelli come Ultralytics YOLO11 possono essere utilizzati per attività in tempo reale come il rilevamento di oggetti e la segmentazione di istanze. Tuttavia, l'elaborazione di grandi volumi di dati visivi in tempo reale può essere impegnativa. 

Figura 1. Un esempio di segmentazione di oggetti in un'immagine utilizzando YOLO11.

Con il batch inferencing, YOLO11 può essere eseguito sui dati visivi in batch, riducendo la pressione sul sistema e migliorando l'efficienza senza sacrificare le prestazioni. In questo modo è più facile implementare le soluzioni Vision AI su scala senza sovraccaricare l'hardware o aumentare i costi.

In questo articolo esploreremo il batch inferencing, i suoi vantaggi e come il batch inferencing con YOLO11 può essere applicato alle applicazioni di computer vision. Iniziamo!

Uno sguardo al batch inferencing nella computer vision

Si può pensare al batch inferencing come a un grande compito da affrontare tutto in una volta, invece di gestirlo pezzo per pezzo quando arriva. Invece di elaborare costantemente i dati in tempo reale, il batch inferencing ti permette di elaborare grandi gruppi di dati a intervalli prestabiliti. Questo approccio è molto più efficiente quando non sono necessarie risposte immediate, aiutando a risparmiare sulle risorse informatiche, a ridurre il consumo di energia e a tagliare i costi.

Quando si parla di computer vision, ci sono alcune applicazioni in cui la bassa latenza è fondamentale. Per bassa latenza si intende il minimo ritardo tra la ricezione di un input (come un'immagine o un fotogramma video) e la risposta del sistema. Ad esempio, nel monitoraggio della sicurezza in tempo reale, anche piccoli ritardi possono comportare rischi per la sicurezza.

Tuttavia, in molti altri scenari di computer vision, la bassa latenza non è così critica. È qui che l'inferenza batch brilla, quando il sistema non ha bisogno di reagire istantaneamente. Il batch inferencing funziona alimentando i dati visivi a un modello di computer vision in gruppi o batch, consentendo al sistema di elaborare grandi insiemi di dati in una sola volta piuttosto che in modo continuo in tempo reale.

Capire come funziona il batch inferencing

Ecco un'analisi più approfondita delle fasi di inferenza batch:

  • Raccolta dei dati: I dati visivi vengono raccolti per un certo periodo di tempo. Possono essere filmati di sicurezza, immagini di prodotti o dati dei clienti, a seconda dell'applicazione.
  • Preparazione dei lotti: I dati raccolti vengono poi raggruppati in lotti. Durante questa fase, i dati vengono formattati come richiesto dal modello. Ad esempio, le immagini possono essere ridimensionate, normalizzate o convertite nel formato appropriato per l'elaborazione del modello.
  • Previsione: Una volta preparati i dati, l'intero lotto viene inserito nel modello (come YOLO11), che elabora l'intero lotto in una sola volta. Questo permette al modello di fare previsioni per tutti i dati del lotto contemporaneamente, rendendo il processo più efficiente rispetto alla gestione di ogni singolo punto di dati.

Quando usare l'inferenza batch?

Ora che abbiamo spiegato cos'è l'inferenza batch e come si differenzia dall'inferenza in tempo reale, diamo un'occhiata più da vicino a quando usarla.

Il batch inferencing è ideale per analizzare i dati storici. Supponiamo che tu abbia i filmati di sorveglianza di una stazione della metropolitana dell'ultimo mese e che tu stia cercando di identificare degli schemi specifici, come il numero di persone che entrano ed escono in diversi momenti della giornata. 

Invece di elaborare ogni fotogramma in tempo reale, il batch inferencing ti permette di elaborare l'intero mese di filmati in lotti, identificando eventi o tendenze chiave senza la necessità di ottenere risultati immediati. In questo modo, puoi analizzare grandi volumi di dati in modo più efficiente e ottenere informazioni su modelli a lungo termine, senza sovraccaricare il sistema o richiedere un monitoraggio costante.

L'inferenza batch è una soluzione ottimale anche quando le risorse del sistema sono limitate. Eseguendo l'inferenza in orari non di punta (ad esempio durante la notte), puoi risparmiare sui costi di calcolo e garantire che il sistema non venga sovraccaricato durante i picchi di utilizzo. Si tratta quindi di un approccio efficiente e conveniente per le aziende o i progetti che hanno bisogno di elaborare grandi insiemi di dati, ma che non richiedono un'analisi in tempo reale.

Inferenza in batch con Ultralytics YOLO11

Il pacchettoUltralytics Python supporta l'inferenza batch per modelli come YOLO11. Con YOLO11, puoi facilmente eseguire l'inferenza batch specificando l'argomento "batch", che determina il numero di immagini o fotogrammi video elaborati contemporaneamente. 

Durante il processo di inferenza batch, le previsioni vengono generate simultaneamente per tutte le immagini del batch. Per impostazione predefinita, la dimensione del batch è impostata a 1, ma puoi regolarla con il numero che preferisci. 

Ad esempio, se la dimensione del lotto è impostata su 5, YOLO11 elaborerà cinque immagini o fotogrammi video alla volta e genererà previsioni per tutti e cinque in una volta sola. Lotti più grandi in genere portano a tempi di inferenza più rapidi, poiché l'elaborazione di più immagini in un lotto è più efficiente rispetto alla loro gestione individuale.

Applicazioni di computer vision abilitate dal batch inferencing

Esploriamo quindi alcuni casi d'uso della computer vision nel mondo reale per l'inferenza batch.

Migliorare la diagnostica e la ricerca in campo sanitario

Nella ricerca medica, lavorare con grandi quantità di dati visivi è molto comune. In questo caso, il batch inferencing può aiutare gli scienziati ad analizzare più facilmente i dati in campi come la chimica, la biologia e la genetica. Invece di analizzarne uno alla volta, i dati vengono elaborati in batch, risparmiando tempo e fatica.

Ad esempio, nelle strutture mediche, il batch inferencing può essere particolarmente utile per analizzare grandi serie di immagini mediche come risonanze magnetiche o TAC. Gli ospedali possono raccogliere queste scansioni durante il giorno ed elaborarle in batch durante la notte. 

Questo approccio consente agli ospedali di utilizzare meglio l'hardware e il personale, di ridurre i costi operativi e di garantire che tutte le scansioni vengano esaminate in modo coerente e uniforme. È inoltre vantaggioso per i grandi progetti di ricerca e gli studi a lungo termine, dove è necessario gestire grandi quantità di dati.

Figura 2. Rilevamento di una scansione medica con YOLO11.

Migliorare i veicoli autonomi con le simulazioni

Le auto a guida autonoma utilizzano tecnologie AI come la computer vision per elaborare il mondo circostante. Con l'aiuto di modelli avanzati come YOLO11, i sistemi di bordo dell'auto sono in grado di riconoscere gli altri veicoli, le linee di corsia, i segnali stradali e le persone in strada. Sebbene l'inferenza in tempo reale sia fondamentale sulla strada, la tecnologia di guida autonoma si basa molto sull'inferenza in batch dietro le quinte. 

Figura 3. YOLO11 è in grado di rilevare facilmente i pedoni sulla strada.

Dopo che l'auto ha completato un viaggio, i dati raccolti, come le ore di riprese delle telecamere, le letture dei sensori e le scansioni LIDAR, possono essere elaborati in seguito in grandi lotti. In questo modo gli ingegneri possono aggiornare i modelli di intelligenza artificiale dell'auto, aumentare la sicurezza del sistema e migliorare la capacità di gestire le varie condizioni di guida.

L'inferenza batch viene utilizzata anche nelle simulazioni di guida autonoma per testare come reagirebbero le auto a guida autonoma in diverse situazioni, come navigare in incroci trafficati o rispondere a movimenti imprevedibili di pedoni. Questo approccio fa risparmiare tempo, riduce i costi ed evita i rischi associati alla sperimentazione di ogni scenario nella vita reale.

Analisi dei dati di vendita al dettaglio guidata dall'inferenza batch

Allo stesso modo, per i negozi al dettaglio, l'inferenza in batch con modelli di computer vision come YOLO11 può migliorare significativamente l'efficienza operativa. Ad esempio, i sistemi di telecamere nei negozi possono catturare migliaia di immagini nel corso della giornata, che possono poi essere elaborate in lotti durante la notte. 

Questo permette ai negozi di analizzare ciò che accade nel negozio, come il comportamento dei clienti, i modelli di traffico e le interazioni con i prodotti, senza la necessità di un'elaborazione in tempo reale, che può essere impegnativa per i negozi più piccoli. 

Un altro esempio interessante è l'utilizzo del batch inferencing per generare mappe di calore, che visualizzano le aree di maggiore e minore attività dei clienti all'interno del negozio. Analizzando queste mappe di calore, i retailer possono identificare le aree che attirano il maggior numero di clienti e le zone del negozio che necessitano di maggiore attenzione o di ottimizzazione del posizionamento dei prodotti. Questi dati possono aiutare i rivenditori a prendere decisioni migliori sulla disposizione dei negozi, sul posizionamento dei prodotti e persino sulle strategie promozionali per migliorare l'esperienza dei clienti e le vendite.

Figura 4. Le heatmap possono aiutare i rivenditori a identificare le aree più frequentate dei negozi.

Pro e contro dell'inferenza batch

Ecco alcuni dei principali vantaggi che il batch inferencing può apportare a diversi settori:

  • Facilità di integrazione: L'inferenza batch può essere facilmente integrata nei flussi di lavoro esistenti, in particolare per i settori come la vendita al dettaglio, la sicurezza o la sanità, dove è necessario elaborare grandi volumi di dati in blocco.
  • Gestione dei dati più semplice: Quando si lavora con grandi quantità di dati, l'inferenza batch può semplificare la gestione dei dati poiché questi vengono raggruppati in parti gestibili. In questo modo è più facile tenere traccia, rivedere e organizzare i dati nel tempo.
  • Riduzione del carico di rete: Quando i dati vengono elaborati in batch, la quantità di dati trasferiti in ogni momento può essere ridotta al minimo, riducendo il carico sulle risorse di rete nei sistemi basati su cloud o negli ambienti di elaborazione distribuiti.

Sebbene i vantaggi dell'utilizzo dell'inferenza batch siano molti, ci sono anche alcune limitazioni da considerare. Ecco alcuni fattori da tenere a mente:

  • Requisiti di archiviazione: L'archiviazione di grandi insiemi di dati per l'elaborazione in batch può aumentare significativamente i costi di archiviazione, in particolare con immagini ad alta risoluzione, video o grandi volumi di dati.
  • Potenziale di arretrati: Se i dati si accumulano rapidamente o se grandi lotti non vengono elaborati in tempo, si può creare un arretrato. Questo può portare a ritardi nel fornire approfondimenti e nell'elaborare nuovi dati in modo tempestivo.
  • Picchi di risorse: I batch di grandi dimensioni, soprattutto quelli che coinvolgono immagini ad alta risoluzione, possono causare picchi di utilizzo della memoria o del calcolo. Se non vengono gestiti correttamente, questi picchi possono sovraccaricare i sistemi, causando rallentamenti o crash.

Punti di forza

Il batch inferencing è un modo efficiente per elaborare grandi volumi di dati visivi che non richiedono risultati immediati. Invece di analizzare ogni immagine in tempo reale, le elabora in batch a orari prestabiliti, ad esempio durante la notte. 

Questo metodo è conveniente, riduce il carico computazionale e fornisce comunque risultati accurati. Dall'aiutare i negozi a gestire l'inventario all'assistere i medici nell'analisi delle scansioni mediche e a migliorare le tecnologie delle auto a guida autonoma, il batch inferencing rende la computer vision più accessibile, economica e pratica per le applicazioni del mondo reale.

Sei pronto a tuffarti nell'intelligenza artificiale? Esplora il nostro repository GitHub, entra in contatto con la nostra community e controlla le nostre opzioni di licenza per iniziare il tuo viaggio nella 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.

Logo di LinkedInLogo di TwitterLogo di FacebookSimbolo di copia-link

Leggi tutto in questa categoria

Costruiamo insieme il futuro
di AI!

Inizia il tuo viaggio nel futuro dell'apprendimento automatico