NVIDIA Optical Flow SDK

Optical Flow – Tipici casi d’uso

Optical Flow beneficia di casi d’uso quali

  • Tracciamento di oggetti per l’analisi video intelligente
  • Interpolazione di frame video, ed estrapolazione
  • Stima della profondità stereo
  • Riconoscimento delle azioni video

Tracciamento degli oggetti per l’analisi video intelligente

Fino a pochi anni fa, l’analisi video intelligente (IVA) richiedeva la visualizzazione fisica e l’analisi manuale dei video catturati. Con i rapidi sviluppi della computer vision e delle tecniche di deep learning, la maggior parte di queste analisi è ora automatizzata. L’identificazione degli oggetti/persone/veicoli di interesse dai filmati delle telecamere di sicurezza e il loro tracciamento attraverso i fotogrammi del video possono essere ottenuti usando algoritmi di computer vision. Le GPU sono una scelta naturale della piattaforma per l’esecuzione di queste applicazioni a causa dell’elevata complessità computazionale e dei requisiti di parallelismo. Il metodo più comune è quello di rilevare e identificare gli oggetti/persone/veicoli di interesse in ogni fotogramma video ed eseguire un algoritmo per correlare gli oggetti nei fotogrammi successivi per tracciare il loro movimento. Questo metodo, sebbene accurato, soffre di requisiti di complessità computazionale estremamente elevati, poiché il rilevamento/identificazione degli oggetti è un’operazione computazionalmente intensa (tipicamente utilizzando l’inferenza delle reti neurali).

Il motore di flusso ottico hardware allevia i requisiti di complessità computazionale in modo significativo aiutando il tracciamento degli oggetti. Per esempio, una volta che un oggetto viene rilevato/identificato dal rilevatore, può essere tracciato nei frame video successivi da un algoritmo basato sul flusso ottico hardware della GPU. Questo elimina la necessità di eseguire l’algoritmo di rilevamento ogni fotogramma, con una conseguente massiccia riduzione della complessità computazionale. Il rilevatore può ora essere eseguito ogni K° frame senza compromettere la precisione (K > 1, tipicamente K = 4). Questo lascia i core CUDA della GPU liberi di eseguire l’inferenza su canali aggiuntivi o altri compiti computazionalmente intensivi.

Optical Flow SDK 2.0 include una libreria di object tracker basata sul flusso ottico, insieme a codice sorgente e API pronte all’uso. Nei nostri esperimenti, l’object tracker basato sul flusso ottico ha dimostrato di ridurre l’utilizzo della GPU fino all’80%, rispetto ad alcuni degli algoritmi più popolari senza compromettere la precisione del tracking.


Interpolazione ed estrapolazione di frame video

Il flusso ottico può anche essere usato molto efficacemente per interpolare o estrapolare i frame video in tempo reale. Questo può essere utile per migliorare la fluidità della riproduzione video, generare video al rallentatore o ridurre la latenza apparente nell’esperienza VR, come usato da Oculus (dettagli)

La funzionalità Optical Flow nelle GPU Turing e Ampere accelera questi casi d’uso scaricando il calcolo intensivo del vettore di flusso a un motore hardware dedicato sul silicio della GPU, liberando così cicli di GPU e CPU per altri compiti. Questa funzionalità in hardware è indipendente dai core CUDA.

FAQ

R: Dopo aver scaricato l’SDK, fare riferimento al “ReadMe.txt” che elenca la versione minima richiesta dei driver di visualizzazione. Devi installare i driver giusti o altrimenti l’SDK non riuscirà ad avviarsi e questa è la prima cosa che dovresti controllare nel caso ci sia un errore di inizializzazione.

R: L’applicazione client dovrebbe interrogare le capacità usando l’API delle capacità prima di abilitare qualsiasi funzione.

R: Raccomandiamo vivamente a tutti gli sviluppatori di applicazioni di leggere in dettaglio le guide di programmazione prima di scrivere qualsiasi applicazione. In particolare, per alcuni suggerimenti su questa domanda, si prega di leggere la seguente sezione della documentazione:

  1. “Linee guida per un uso efficiente di NVOF API” in NVOF API Programming Guide, inclusa nell’Optical Flow SDK

R: L’Optical Flow SDK fornisce campioni specificamente progettati per fornire prestazioni ottimali. È possibile misurare le prestazioni utilizzando uno qualsiasi dei campioni.

A: NVOF API espone API che permettono agli utenti di interrogare le versioni massime di API supportate dal driver sottostante. A seconda della versione massima API supportata dal driver, l’applicazione può lanciare il codice a runtime compilato con l’API appropriata.

R: Si prega di fare riferimento alla nota applicativa NVOFA inclusa nella documentazione SDK per avere un’idea delle prestazioni. Le prestazioni dipendono da molti fattori, alcuni dei quali includono: GPU in uso e la sua velocità di clock, le impostazioni utilizzate (per esempio il preset, la dimensione della griglia e caratteristiche come il ROI), la larghezza di banda della memoria disponibile, il design dell’applicazione.

Supporto

La nostra comunità di forum è dove gli sviluppatori possono porre domande, condividere esperienze e partecipare a discussioni con NVIDIA e altri esperti del settore.
Guarda i forum qui.

Risorse aggiuntive

  • NVIDIA Video Codec SDK
  • DeepStream SDK for Intelligent Video Analytics
  • Deep Learning Software
  • GitHub – NVIDIA Optical flow in OpenCV
  • Sessione GTC 2020 – Tecnologie video NVIDIA: Codec video e SDK per il flusso ottico
  • Sessione GTC 2020 – Utilizzo efficace del codec video SDK e dell’SDK per il flusso ottico sulle GPU NVIDIA
  • NVIDIA DevBlog – 5 dicembre 2019 – Accelerare OpenCV: Optical Flow Algorithms with NVIDIA Turing GPUs
  • NVIDIA Developer News – 23 agosto 2019 – I ricercatori di VideoGorillas usano l’AI per rimasterizzare il contenuto archiviato alla risoluzione 4K e oltre
  • Oculus Developer blog – 23 maggio, 2019 – ASW e Passthrough+ con NVIDIA Optical Flow
  • NVIDIA DevBlog – 13 febbraio 2019 – Un’introduzione all’SDK NVIDIA Optical Flow

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.