A necessidade

Enquanto nos preparávamos para a primeira entrega exclusivamente online do Microsoft Build, começamos a fazer uma série de vídeos curtos, os Innovation Bites. Assim como muitos profissionais de marketing no momento atual, nos vimos nos debatendo com as limitações do que cada palestrante poderia criar em suas casas e a nossa visão do que desejávamos criar.

A ideia

Nos inspiramos nas abordagens de matting de imagem de fundo do Adobe Research e da Universidade de Washington (UW). Queríamos elaborar algo em cima dessas ideias com nosso sensor Azure Kinect para criar uma maneira fácil pela qual todos pudessem usar a tela verde para gravar de casa.

A solução

Desenvolvemos uma experiência de front-end simples para os palestrantes gravarem a si mesmos usando até 2 sensores Azure Kinect ao mesmo tempo, além de slides, e um back-end que usa as abordagens da UW e do Adobe Research e adiciona os recursos de profundidade do sensor Azure Kinect para melhorar a precisão do matting de imagem de fundo e automatizar o carregamento dos arquivos para otimizar a produção de conteúdo.

Detalhes técnicos do Virtual Stage

Este projeto consiste em 2 elementos diferentes:

1. Aplicativo front-end

O apresentador usa o aplicativo para gravar a si mesmo. Ele pode gravar 3 arquivos de vídeo em uma única gravação: até dois vídeos de sensores Azure Kinect e um arquivo separado para os slides do apresentador com áudio, para facilitar a pós-produção.

Com o aplicativo, o apresentador pode analisar várias gravações e ficar com as melhores antes de enviar para o processo de back-end para gerar a tela verde virtual.

Também incluímos no aplicativo front-end um assistente fácil de usar que permite ao usuário gravar o fundo sem ele, para resolver o primeiro plano e o valor de alfa do processo de matting. Isso torna o processo mais fácil, assim a equipe de pós-produção consegue garantir os melhores resultados possíveis em um cenário de colaboração remota.

2. Processo de console back-end

Depois que o usuário fornece os arquivos de vídeo, precisamos criar a tela verde virtual para podermos editar no software que escolhemos. O resultado desse processo é o vídeo só com o apresentador (o restante é uma tela virtual verde).

Esse processo aproveita a abordagem da equipe da Universidade de Washington; adicionamos melhorias para podermos usar a gravação em profundidade do sensor Azure Kinect e remover o fundo com mais precisão.

Um dos principais desafios que tentamos resolver em nossa implementação é que o conjunto de dados usado para treinamento (conjunto de dados Adobe Composition-1k) só tinha imagens de meio corpo, e queríamos captar imagens dos apresentadores de corpo inteiro. Essa limitação não só significa que as pernas não são processadas corretamente pelo modelo por causa da falta de dados de treinamento, mas também que a saída da rede neural é uma caixa delimitadora quadrada – perfeita para imagens somente de meio corpo, mas não ideal para corpo inteiro.

Para resolver o problema da caixa delimitadora, dividimos a imagem em duas. Ainda assim, isso não resolveu a falta de precisão para reconhecer as pernas. E foi nesse ponto que os recursos do Azure Kinect ajudaram.

A abordagem da UW propõe 2 etapas: a primeira, extrair o fundo com base no aprendizado supervisionado; e a segunda, refinar a saída de um modo não supervisionado via GAN. A primeira etapa é feita por uma rede profunda que estima o primeiro plano e o alfa da entrada composta da imagem original, da foto de fundo e de uma segmentação calculada automaticamente por software da pessoa no quadro.

Combinando essa abordagem com a API do Azure Kinect, podemos substituir a segmentação calculada automaticamente por software da pessoa no quadro pela silhueta mais precisa capturada com nosso sensor. Assim, o que podemos inserir nesse primeiro modelo são as informações do sensor (o infravermelho e a silhueta, além do vídeo sem processamento) e o fundo sem o palestrante (capturado do aplicativo front-end pelo usuário), o que nos dá uma estimativa mais precisa do primeiro plano e do alfa como saída. Também refinamos uma GAN não supervisionada para melhorar ainda mais os resultados.

Como você pode usar este projeto para seus próprios eventos/vídeos?

  • Do ponto de vista do palestrante/criador de conteúdo, você precisará de 1 ou 2 sensores Azure Kinect (além dos requisitos aplicáveis de hardware/software listados).
  • Acesse o GitHub, onde você encontrará o código-fonte do aplicativo front-end e do servidor, bem como o manual do usuário do aplicativo.
  • Continuaremos a atualizar este projeto para fornecer modelos ARM a fim de implantar facilmente o back-end no Azure e melhorar os comentários e a documentação.

Recursos:

Projetos relacionados ao Virtual Stage

Procure mais projetos

Explore as possibilidades da IA

Concretize a inteligência artificial em seus negócios hoje mesmo.