Optical Flow – Typical Use-Cases
Optical Flow benefits use-cases such as
- Object tracking for intelligent video analytics
- Video frame interpolation, e extrapolação
- Estimativa de profundidade do estéreo
- Reconhecimento da ação do vídeo
Rastreamento de objetos para análise inteligente de vídeo
Até alguns anos atrás, a análise inteligente de vídeos (IVA) exigia visualização física e análise manual dos vídeos capturados. Com rápidos desenvolvimentos em visão computacional e técnicas de aprendizagem profunda, a maioria dessas análises é agora automatizada. Identificar os objetos/pessoas/veículos de interesse a partir de imagens de câmeras de segurança e rastreá-los através dos quadros de vídeo pode ser alcançado usando algoritmos de visão computacional. As GPUs são uma escolha natural de plataforma para executar essas aplicações devido à alta complexidade computacional e aos requisitos de paralelismo. O método mais comum é detectar e identificar os objetos/pessoas/veículos de interesse em cada quadro de vídeo e executar um algoritmo para correlacionar os objetos em quadros sucessivos para rastrear seus movimentos. Este método, embora preciso, sofre de requisitos de complexidade computacional extremamente elevados, uma vez que a detecção/identificação do objeto é uma operação computacionalmente intensiva (tipicamente usando inferência de rede neural).
O motor de fluxo óptico de hardware alivia significativamente os requisitos de complexidade computacional, ajudando no rastreamento de objetos. Por exemplo, assim que um objeto é detectado/identificado pelo detector, ele pode ser rastreado em quadros de vídeo sucessivos por um algoritmo baseado no fluxo óptico de hardware da GPU. Isso elimina a necessidade de executar o algoritmo de detecção em cada quadro, resultando em uma redução maciça da complexidade computacional. O detector agora pode executar cada Kth frame sem comprometer a precisão (K > 1, normalmente K = 4). Isso deixa os núcleos CUDA da GPU livres para executar inferências em canais adicionais ou outras tarefas computacionalmente intensivas.
Optical Flow SDK 2.0 inclui uma biblioteca de rastreadores de objetos baseada em fluxo óptico, juntamente com o código fonte e a API pronta para uso. Em nossos experimentos, o rastreador de objetos baseado em fluxo óptico mostrou reduzir a utilização da GPU em até 80%, comparado a alguns dos algoritmos mais populares sem comprometer a precisão do rastreamento.
Interpolação e Extrapolação de Quadros de Vídeo
O fluxo óptico também pode ser usado muito efetivamente para interpolar ou extrapolar os quadros de vídeo em tempo real. Isso pode ser útil para melhorar a fluidez da reprodução do vídeo, gerar vídeos em câmera lenta ou reduzir a latência aparente na experiência VR, como usado pela Oculus (detalhes)
A funcionalidade de fluxo óptico nas GPUs Turing e Ampere acelera esses casos de uso, descarregando a computação vetorial de fluxo intensivo para um mecanismo de hardware dedicado no silício da GPU, liberando assim os ciclos da GPU e da CPU para outras tarefas. Esta funcionalidade em hardware é independente dos núcleos CUDA.
FAQ
A: Depois de baixar o SDK, consulte o “ReadMe.txt” que lista a versão mínima necessária do driver de exibição. Você precisa instalar os drivers certos ou então o SDK falhará ao iniciar e esta é a primeira coisa que você deve verificar caso haja uma falha de inicialização.
R: A aplicação cliente deve consultar as capacidades usando a API de capacidade antes de habilitar qualquer recurso.
R: Recomendamos vivamente a todos os desenvolvedores de aplicações que passem pelos guias de programação em detalhe antes de escrever qualquer aplicação. Em particular, para algumas dicas sobre esta questão, por favor, passe pela seguinte seção na documentação:
- “Guidelines for Efficient Usage of NVOF API” no Guia de Programação NVOF API, incluído no SDK de Fluxo Óptico SDK
A: O SDK de Fluxo Óptico SDK fornece amostras especificamente projetadas para dar o melhor desempenho. Você pode medir a performance usando qualquer uma das amostras.
A: NVOF API expõe APIs que permitem aos usuários consultar as versões máximas de API suportadas pelo driver subjacente. Dependendo da versão máxima da API suportada pelo driver, a aplicação pode iniciar o código em tempo de execução compilado com a API apropriada.
A: Por favor, consulte a nota da aplicação NVOFA incluída na documentação do SDK para ter uma idéia sobre a performance. A performance depende de muitos fatores, alguns dos quais incluem: GPU em uso e sua velocidade de clock, configurações usadas (por exemplo, predefinição, tamanho da grade e recursos como ROI), largura de banda de memória disponível, projeto do aplicativo.
>
Suporte
>
Nossa comunidade de fóruns é onde os Desenvolvedores podem fazer perguntas, compartilhar experiências e participar de discussões com a NVIDIA e outros especialistas na área.
Cheque os fóruns aqui.
>
Recursos adicionais
- NVIDIA Video Codec SDK
- DeepStream SDK for Intelligent Video Analytics
- Deep Learning Software
- GitHub – NVIDIA Optical flow in OpenCV
- GTC 2020 Session – NVIDIA Video Technologies: Codec de Vídeo e fluxo óptico SDK
- Sessão GTC 2020 – Usando o Codec de Vídeo SDK e fluxo óptico SDK em GPUs NVIDIA Efetivamente
- NVIDIA DevBlog – 5 de dezembro de 2019 – Acelere o OpenCV: Algoritmos de fluxo óptico com GPUs NVIDIA Turing
- NVIDIA Developer News – Agosto 23, 2019 – Pesquisadores no VideoGorillas usam IA para remasterizar conteúdo arquivado com resolução 4K e acima de
- blog Oculus Developer – Maio 23, 2019 – ASW e Passthrough+ com fluxo óptico NVIDIA
- NVIDIA DevBlog – 13 de Fevereiro de 2019 – Uma introdução ao fluxo óptico NVIDIA SDK