Ângulo de Anderson

Um Codec de Vídeo Projetado para Análise de IA

mm
Adicione Unite.AI às suas fontes preferidas no Google

Embora o techno-thriller O Círculo (2017) seja mais um comentário sobre as implicações éticas das redes sociais do que as practicalidades da análise de vídeo externa, a câmera “SeeChange” improvavelmente pequena no centro da trama é o que realmente impulsiona o filme para a categoria de “ficção científica”.

O dispositivo de câmera/surveillance 'SeeChange' do techno-thriller 'O Círculo' (2017).

O dispositivo de câmera/surveillance ‘SeeChange’ do techno-thriller ‘O Círculo’ (2017).

Um dispositivo sem fio e livre, com cerca de o tamanho de uma grande bola de gude, não é a falta de painéis solares ou a ineficiência de obter energia de outras fontes ambientais (como ondas de rádio) que torna o SeeChange uma perspectiva improvável, mas o fato de que ele precisará comprimir vídeo 24 horas por dia, com qualquer carga escassa que ele possa manter.

Alimentar sensores baratos desse tipo é uma área fundamental de pesquisa em visão computacional (CV) e análise de vídeo, particularmente em ambientes não urbanos onde o sensor precisará extrair o máximo de desempenho de recursos de energia muito limitados (baterias, solar, etc.).

Em casos onde um dispositivo de IoT/CV desse tipo deve enviar conteúdo de imagem para um servidor central (freqüentemente por meio de redes de cobertura de células convencionais), as escolhas são difíceis: ou o dispositivo precisa executar algum tipo de rede neural leve localmente para enviar apenas segmentos otimizados de dados relevantes para processamento no servidor; ou ele precisa enviar vídeo “burro” para os recursos conectados à nuvem avaliarem.

Embora a ativação por movimento por meio de Sensores de Visão Inteligentes baseados em eventos (SVS) possa reduzir essa sobrecarga, essa ativação também custa energia.

Segurando o Poder

Além disso, mesmo com ativação infreqüente (ou seja, uma ovelha ocasionalmente entra em vista), o dispositivo não tem energia suficiente para enviar gigabytes de vídeo não comprimido; nem tem energia suficiente para executar constantemente códigos de compressão de vídeo populares como H.264/5, que esperam hardware que esteja conectado ou não muito longe da próxima sessão de carregamento.

Pipelines de análise de vídeo para três tarefas de visão computacional típicas. A arquitetura de codificação de vídeo precisa ser treinada para a tarefa em questão e, geralmente, para a rede neural que receberá os dados. Fonte: https://arxiv.org/pdf/2204.12534.pdf

Pipelines de análise de vídeo para três tarefas de visão computacional típicas. A arquitetura de codificação de vídeo precisa ser treinada para a tarefa em questão e, geralmente, para a rede neural que receberá os dados. Fonte: https://arxiv.org/pdf/2204.12534.pdf

Embora o codec H.264 amplamente difundido tenha um consumo de energia mais baixo do que seu sucessor H.265, ele tem eficiência de compressão pobre. Seu sucessor, H.265, tem melhor eficiência de compressão, mas maior consumo de energia. Enquanto o codec VP9 de código aberto do Google supera ambos em cada área, ele exige recursos de computação local mais altos, o que apresenta problemas adicionais em um sensor de IoT barato.

Quanto a analisar o fluxo localmente: ao tempo em que você executa mesmo a rede neural mais leve localmente para determinar quais quadros (ou áreas de um quadro) valem a pena enviar para o servidor, você já gastou a energia que teria economizado apenas enviando todos os quadros.

Extraindo representações mascaradas de gado com um sensor que provavelmente não estará conectado à grade. Ele gasta sua capacidade de energia limitada em segmentação semântica local com uma rede neural leve; enviando informações limitadas para um servidor para instruções adicionais (introduzindo latência); ou enviando dados 'burros' (desperdiçando energia em largura de banda)?

Extraindo representações mascaradas de gado com um sensor que provavelmente não estará conectado à grade. Ele gasta sua capacidade de energia limitada em segmentação semântica local com uma rede neural leve; enviando informações limitadas para um servidor para instruções adicionais (introduzindo latência); ou enviando dados ‘burros’ (desperdiçando energia em largura de banda)? Fonte: https://arxiv.org/pdf/1807.01972.pdf

É claro que projetos de visão computacional “no野” precisam de códigos de compressão de vídeo dedicados que sejam otimizados para os requisitos de redes neurais específicas em tarefas específicas e diversas, como segmentação semântica, detecção de pontos-chave (análise de movimento humano) e detecção de objetos, entre outros usos possíveis.

Se você pode obter o equilíbrio perfeito entre eficiência de compressão de vídeo e transmissão de dados mínima, você está um passo mais perto do SeeChange e da capacidade de implantar redes de sensores acessíveis em ambientes hostis.

AccMPEG

Uma nova pesquisa da Universidade de Chicago pode ter dado um passo mais perto de um codec desse tipo, na forma de AccMPEG – um quadro de codificação e transmissão de vídeo novo que opera com baixa latência, alta precisão para Redes Neurais Profundas (DNNs) no servidor, e que tem requisitos de computação local surpreendentemente baixos.

Arquitetura do AccMPEG.

Arquitetura do AccMPEG. Fonte: https://arxiv.org/pdf/2204.12534.pdf

O sistema é capaz de fazer economias sobre métodos anteriores, avaliando a extensão com que cada macrobloco de 16x16px é provável de afetar a precisão da DNN no servidor. Métodos anteriores geralmente tiveram que avaliar esse tipo de precisão com base em cada pixel de uma imagem ou realizar operações locais caras para avaliar quais regiões da imagem poderiam ser de maior interesse.

No AccMPEG, essa precisão é estimada em um módulo personalizado chamado AccGrad, que mede as maneiras pelas quais a qualidade de codificação do macrobloco é provável de ser pertinente para o caso de uso final, como uma DNN no servidor que está tentando contar pessoas, realizar estimação de esqueleto em movimento humano ou outras tarefas de visão computacional comuns.

À medida que um quadro de vídeo chega ao sistema, o AccMPEG inicialmente o processa por meio de um modelo de seleção de qualidade barato, intitulado AccModel. Quaisquer áreas que não sejam prováveis de contribuir para os cálculos úteis de uma DNN no servidor são essencialmente lastro e devem ser marcadas para codificação com a qualidade mais baixa possível, em contraste com regiões salientes, que devem ser enviadas com melhor qualidade.

Esse processo apresenta três desafios: o processo pode ser realizado rapidamente o suficiente para alcançar latência aceitável sem usar recursos de computação local que consomem energia? Uma relação ótima entre taxa de quadros e qualidade pode ser estabelecida? E um modelo pode ser treinado rapidamente para uma DNN no servidor individual?

Logística de Treinamento

Idealmente, um codec de visão computacional seria pré-treinado em sistemas conectados para os requisitos exatos de uma rede neural específica. O módulo AccGrad, no entanto, pode ser derivado diretamente de uma DNN com apenas duas propagações para a frente, com uma economia de dez vezes o overhead padrão.

O AccMPEG treina o AccGrad por apenas 15 épocas de três propagações cada através da DNN final, e pode potencialmente ser re-treinado “ao vivo” usando seu estado de modelo atual como um modelo, pelo menos para tarefas de CV semelhantes.

O AccModel usa o extrator de recursos pré-treinado MobileNet-SSD, comum em dispositivos de borda acessíveis. Com uma rotatividade de 12 GFLOPS, o modelo usa apenas um terço das abordagens ResNet18 típicas. Além da normalização de lote e ativação, a arquitetura consiste apenas em camadas convolucionais, e seu overhead de computação é proporcional ao tamanho do quadro.

O AccGrad remove a necessidade de inferência final da DNN, melhorando a logística de implantação.

O AccGrad remove a necessidade de inferência final da DNN, melhorando a logística de implantação.

Taxa de Quadros

A arquitetura funciona de forma ótima a 10fps, o que a tornaria adequada para fins como monitoramento agrícola, vigilância de degradação de edifícios, análise de tráfego de alta vista e inferência de esqueleto representativo em movimento humano; no entanto, cenários de movimento muito rápido, como tráfego de baixa vista (de carros ou pessoas), e outras situações em que taxas de quadros altas são benéficas, não são adequados para essa abordagem.

Parte da frugalidade do método está no pressuposto de que macroblocos adjacentes são prováveis de ter valor semelhante, até o ponto em que um macrobloco cai abaixo da precisão estimada. As áreas obtidas por essa abordagem são mais claramente delineadas e podem ser calculadas a uma velocidade maior.

Melhoria de Desempenho

Os pesquisadores testaram o sistema em uma placa Jetson Nano de $60 com um GPU Maxwell de 128 núcleos único, e vários outros equivalentes baratos. O OpenVINO foi usado para compensar alguns dos requisitos de energia dos DNNs locais muito esparsos para CPUs.

O AccModel em si foi originalmente treinado offline em um servidor com 8 GPUs GeForce RTX 2080S. Embora isso seja uma formidável matriz de poder de computação para uma construção inicial de modelo, a re-treinamento leve que o sistema torna possível, e a forma como um modelo pode ser ajustado para certos parâmetros de tolerância em diferentes DNNs que estão atacando tarefas semelhantes, significa que o AccMPEG pode fazer parte de um sistema que precisa de atendimento mínimo no野.

 

Publicado pela primeira vez em 1º de maio de 2022.

Escritor em aprendizado de máquina, especialista em síntese de imagem humana. Antigo chefe de conteúdo de pesquisa da Metaphysic.ai, até sua dissolução na Brahma.ai da DNEG.
Portfolio site: martinanderson.ai
Contato: martin@martinanderson.ai