Casa > C > Como A Aprendizagem De Máquinas É Utilizada Na Produção De Vídeos 'Deepfake'?

Como a aprendizagem de máquinas é utilizada na produção de vídeos 'deepfake'?

Eu não trabalho especificamente em Computer Vision para rostos e modelagem 3D, então posso perder as questões mais finas, mas os princípios básicos são bem simples. Geralmente é um pipeline bastante longo que envolve um par de coisas,

Detecção e Rastreio de Caras: O computador tem de saber onde está a cara, e desenhar uma caixa à sua volta, dada uma imagem. Isto pode ser feito treinando uma rede de detecção de objetos (como Faster R-CNN) ou usando métodos tradicionais como ViolaJones Face Detector [1, 2].

Face Landmark Detection: O próximo passo é detectar os pontos de referência das faces detectadas (tanto na imagem de origem como na imagem receptora). Os pontos de referência são pontos-chave que nos dizem onde estão características faciais importantes como nariz, queixo, etc. Estes pontos-chave podem ser extraídos usando OpenCV/dlib etc. Também, podemos então focar no rosto e segmentar o fundo, cabelos que não fazem parte do rosto, etc. Isso é chamado de segmentação facial e a máscara segmentada determina se um pixel deve ser transformado em primeiro lugar ou não.

main-qimg-10fcb28b0856423d044a439ed31e16c1

Face Alignment: Normalmente aprendemos um modelo 3D da face receptora que será transformada usando os pontos de referência da face e os pixels da face de origem. A maneira tradicional de fazer isso é encaixando o modelo 3d na face receptora e aprendendo uma transformação que pode essencialmente mudar cada pixel da face receptora para se parecer com a face de origem usando uma combinação de objetivos (por exemplo, a transformação deve assegurar que os pontos de referência se alinhem o máximo possível, a iluminação da face deve permanecer constante, etc.). Este é geralmente um processo computacionalmente intensivo.

Recentemente esta transformação e alinhamento foi aprendida diretamente usando CNNs (um tipo de rede neural). Eles fazem isso formulando o problema como um problema de transferência de estilo (considerando, a pose e expressão da face receptora como o conteúdo, e a identidade da fonte como o estilo). Isto é similar ao trabalho que faz suas imagens parecerem uma pintura "Van Gogh" (como no aplicativo Prisma). Não há uma modelagem 3D explícita que esteja envolvida [3]. Este método deve ser similar ao que o aplicativo DeepFakes está usando. A rede neural toma tanto a fonte quanto a imagem alvo como input e minimiza dois objetivos simultaneamente para aprender a transformação,

(a) Perda de conteúdo: Minimiza a diferença nas representações neurais de ambas as imagens obtidas em cada camada da rede. A representação neural é essencialmente a saída da rede neural obtida em uma única camada.

(b) Perda de estilo: As informações locais precisam ser preservadas o máximo possível enquanto se transforma a face da fonte para o receptor. Primeiro extraia pequenas manchas de ambas as imagens. Para cada patch extraído da fonte, encontramos o melhor patch entre os patches extraídos do receptor e minimizamos a distância entre eles.

main-qimg-1a360ff7e2c9e63b08e3bd55a992bb9c

Agora, este papel específico também deseja preservar a iluminação e adiciona outro termo de perda chamado perda de luz para tornar as coisas mais bonitas. Outras coisas que podem fazer com que a troca de visual seja melhor é não tratar cada frame independentemente e usar algumas restrições para tornar a transformação mais suave quando executada sobre todos eles, o aplicativo DeepFakes atual não parece fazer isso (não tenho certeza).

Existem muitas pessoas que têm seguido esse estilo de trabalho de modelagem de rostos para Computer Vision. Eu posso lembrar especialmente do Ira Kemelmacher-Shlizerman. Deve-se notar que eu não estou endossando este uso da tecnologia de face-swap.

[1] The Inner Workings Of Snapchat's Faceswap Technology
[2] How Snapchat's filters work
[3] Fast Face-swap Using Convolutional Neural Networks, ICCV, 2017 (Imagens são emprestadas de lá.)

De Binnie

Alguém pode me ajudar a entender como um Quadro é melhor do que um GTX para edição de vídeo e AutoCAD? :: A placa NVIDIA Jetson Tegra X2 suporta a adição de uma placa gráfica discreta através do slot PCIe?