Ângulo de Anderson
Edição do Espaço Latente de um GAN com ‘Blobs’

Nova pesquisa da UC Berkeley e da Adobe (ADBE ) oferece uma maneira de editar diretamente o conteúdo hiperreal que pode ser criado por uma Rede Adversária Generativa (GAN), mas que normalmente não pode ser controlado, animado ou manipulado livremente de uma maneira longamente familiar aos usuários do Photoshop e práticos de CGI.
Intitulada BlobGAN, o método envolve criar uma grade de ‘blobs’ – construtos matemáticos que mapeiam diretamente o conteúdo dentro do espaço latente do GAN.
Ao mover os blobs, você pode mover os ‘objetos’ em uma representação de cena, de uma maneira intuitiva que está mais próxima dos métodos de CGI e CAD do que muitas das tentativas atuais de mapear e controlar o espaço latente do GAN:

Manipulação de cena com BlobGAN: à medida que os ‘blobs’ são movidos pelo usuário, a disposição de objetos latentes e estilos no GAN são alterados correspondentemente. Para mais exemplos, veja o vídeo acompanhante, incorporado no final deste artigo, ou em https://www.youtube.com/watch?v=KpUv82VsU5k
Como os blobs correspondem a ‘objetos’ na cena mapeada no espaço latente do GAN, todos os objetos são desentrelaçados a priori, tornando possível alterá-los individualmente:

Os objetos podem ser redimensionados, diminuídos, clonados e removidos, entre outras operações.
Como qualquer objeto em software de edição de fotos (ou até mesmo de edição de texto), um blob pode ser duplicado e subsequentemente manipulado:

Os blobs podem ser duplicados na interface, e suas representações latentes correspondentes também serão ‘copiadas e coladas’. Fonte: https://dave.ml/blobgan/#results
BlobGAN também pode analisar imagens novas e selecionadas pelo usuário em seu espaço latente:

Com o BlobGAN, você não precisa incorporar imagens que deseja manipular diretamente nos dados de treinamento e então procurar seus códigos latentes, mas pode inserir imagens selecionadas a vontade e manipulá-las. Fonte: https://dave.ml/blobgan/#results
Mais resultados podem ser vistos aqui, e no vídeo acompanhante no YouTube (incorporado no final deste artigo). Há também um demo interativo do Colab aqui*, e um repositório do GitHub aqui**.
Esse tipo de instrumentalidade e escopo pode parecer ingênuo na era pós-Photoshop, e pacotes de software paramétricos como o Cinema4D e o Blender permitem que os usuários criem e personalizem mundos 3D há décadas; mas representa uma abordagem promissora para domesticar as excentricidades e a natureza arcana do espaço latente em uma Rede Adversária Generativa, por meio do uso de entidades proxy que são mapeadas para códigos latentes.
Os autores afirmam:
‘Em um conjunto de dados desafiador de cenas internas, o BlobGAN supera o Style-GAN2 em qualidade de imagem medida pelo FID.’
O artigo é intitulado BlobGAN: Representações de Cena Desentrelaçadas Espacialmente, e é escrito por dois pesquisadores da UC Berkeley, juntamente com três da Adobe Research.
Intermediário
O BlobGAN traz um novo paradigma para a síntese de imagens do GAN. As abordagens anteriores para lidar com entidades discretas no espaço latente, o novo artigo observa, foram ou ‘de cima para baixo’ ou ‘de baixo para cima’.
Um método de cima para baixo em um GAN ou classificador de imagens trata imagens de cenas como classes, como ‘quarto’, ‘igreja’, ‘rosto’, etc. Esse tipo de par de texto/imagem alimenta uma nova geração de frameworks de síntese de imagens multimodais, como o recente DALL-E 2 da OpenAI.
Abordagens de baixo para cima, em vez disso, mapeiam cada pixel em uma imagem em uma classe, rótulo ou categoria. Essas abordagens usam técnicas diversas, embora a segmentação semântica seja uma corrente de pesquisa popular.
Os autores comentam:
‘Ambos os caminhos parecem insatisfatórios porque nenhum pode fornecer maneiras fáceis de raciocinar sobre partes da cena como entidades. As partes da cena são ou embutidas em um único vetor latente entrelaçado (de cima para baixo), ou precisam ser agrupadas a partir de rótulos de pixel individuais (de baixo para cima).’
Em vez disso, o BlobGAN oferece uma representação intermediária não supervisionada, ou uma estrutura de proxy para modelos gerativos.

A rede de layout mapeia entidades ‘blob’ locais (e controláveis) para códigos latentes. Os círculos coloridos no centro compõem um ‘mapa de blob’. Fonte: https://arxiv.org/pdf/2205.02837.pdf
Os blobs gaussianos (ou seja, baseados em ruído) são ordenados por profundidade e representam um gargalo na arquitetura que atribui um mapeamento a cada entidade, resolvendo o maior obstáculo para a manipulação de conteúdo do GAN: a desentrelaçação (também um problema para arquiteturas baseadas em autoencoders). O mapa de blob resultante é usado para manipular o decodificador do BlobGAN.
Os autores observam com alguma surpresa que o sistema aprende a decompor cenas em layouts e entidades por meio de um discriminador fora da prateleira que não usa rótulos explícitos.
Arquitetura e Dados
As entidades no mapa de blob são convertidas em imagens por meio de uma rede revisada derivada do StyleGAN2, em uma abordagem que toma inspiração em pesquisas anteriores da NVIDIA (NVDA ).

Um derivado revisado do StyleGAN 2 da NVIDIA Research. Alguns dos princípios deste trabalho foram adotados ou adaptados para o BlobGAN. Fonte: https://arxiv.org/pdf/1912.04958.pdf
O StyleGAN 2 é modificado no BlobGAN para aceitar entrada do mapa de blob em vez de um único vetor global, como é usual.

Uma série de manipulações tornadas possíveis pelo BlobGAN, incluindo a ‘autocompletar’ de uma cena de quarto vazia, e o redimensionamento e relocação dos elementos no quarto.
Por analogia, em vez de trazer um vasto e complexo prédio (o espaço latente) à existência de uma vez, e então ter que explorar seus infindáveis caminhos, o BlobGAN envia os blocos de componentes no início, e sempre sabe onde eles estão. Essa desentrelaçação de conteúdo e localização é a principal inovação do trabalho.
* Não funcional no momento da escrita
** Código ainda não publicado no momento da escrita
Publicado pela primeira vez em 8 de maio de 2022.












