Fusão dos jogadores do Benfica, Porto e Sporting

No último post fizemos uma análise ao enviesamento das capas dos jornais desportivos portugueses. Hoje exploramos algo um pouco mais divertido, e aplicamos uma técnica de geração de caras aos jogadores de Benfica, Porto e Sporting.

Quem sabe se não geramos as próximas estrelas da Liga NOS?

Combinação da cara de Pizzi (jogador do Benfica) com a cara de Bruno Fernandes (jogador do Sporting)
Pizzi Fernandes, a próxima estrela da liga NOS?
Video que demonstra a transformação da cara de Pizzi (jogador do Benfica) na cara de Bruno Fernandes (jogador do Sporting)
Transformação de Pizzi em Bruno Fernandes

Plantel do Benfica

Comecamos por resolver a principal lacuna do plantel do Benfica. Falamos da posição de lateral direito. Seria André Grimaldo a solução ideal para este lugar?

Combinação da cara de André Almeida com a cara de Grimaldo (jogadores do Benfica)
André Grimaldo, o lateral direito que o Benfica precisa?
Video que demonstra a transformação da cara de André Almeida na cara de Grimaldo (jogadores do Benfica)
Transformação de André Almeida em Grimaldo

Já na frente de ataque, Bruno Lage conseguiu relançar a carreira de Adel Taarabt. Apesar das boas exibições recentes, uma combinação com Pizzi seria um jogador ainda melhor.

Combinação da cara de Taarabt com a cara de Pizzi (jogadores do Benfica)
Adel Pizzi
Video que demonstra a transformação da cara de Seferovic na cara de Vinicius (jogadores do Benfica)
Transformação de Taarabt em Pizzi

Plantel do Porto

À semelhança com o Benfica, o plantel do Porto também apresenta alguma falta de qualidade no lado direito do sector defensivo. Estou convicto que juntando a velocidade de Wilson Manafa com a técnica de Alex Telles teríamos um verdadeiro craque.

Combinação da cara de Manafa com a cara de Alex Telles (jogadores do Porto)
Wilson Telles, juntar velocidade com técnica
Video que demonstra a transformação da cara de Manafa na cara de Alex Telles (jogadores do Porto)
Transformação de Manafa em Alex Telles

Já na frente de ataque, talvez uma combinação entre os jogadores do Porto Fábio Silva e Zé Luis trouxesse os golos que o Porto tanto precisa.

Combinação da cara de Fábio Silva com a cara de Zé Luis (jogadores do Porto)
Fábio Luis, o próximo avançado do Porto
Video que demonstra a transformação da cara de Fábio Silva na cara de Zé Luis (jogadores do Porto)
Transformação de Fábio Silva em Zé Luis

Plantel do Sporting

O jogador mais valioso do Sporting é sem dúvida Bruno Fernandes. No entanto, uma mistura com Wendel seria seguramente uma boa adição para o meio campo.

Combinação da cara de Wendel com a cara de Bruno Fernandes (jogadores do Sporting)
Wendel Fernandes
Video que demonstra a transformação da cara de Wendel na cara de Bruno Fernandes (jogadores do Sporting)
Transformação de Wendel em Bruno Fernandes

As novas contratações do Sporting para época 19/20 não têm propriamente deslumbrado. Talvez uma combinação de Jese com Bolasie se tornasse um reforço interessante.

Combinação da cara de Jese com a cara de Bolasie (jogadores do Sporting)
Jese Bolasie
Video que demonstra a transformação da cara de Jese na cara de Bolasie (jogadores do Sporting)
Transformação de Jese em Bolasie

Combinação dos plantéis de Benfica, Porto e Sporting

Num caso extremo, podíamos mesmo combinar todos os jogadores do Benfica, Porto e Sporting, criando assim uma super equipa em todas as posições…


Como são geradas as fusões das caras

Estas fusões das caras dos jogadores do Benfica, Porto e Sporting foram criadas usando um modelo chamado StyleGAN.

StyleGAN

As GANs (Generative Adversarial Networks) são modelos eficazes para a geração de imagens sintéticas de alta qualidade. Estes modelos são normalmente compostos por dois componentes:

  • Gerador: rede neuronal que gera imagens (sintéticas)
  • Discriminador: rede neuronal que dada uma imagem, tenta classificá-la como sendo real ou sintética (criada pelo gerador).

Estas redes neuronais são treinadas em conjunto de modo a que:

  • O gerador gere imagens o mais realistas possível, capazes de enganar o discriminador
  • O discriminador consiga distinguir o melhor possível quais as imagens reais (provenientes de um conjunto de imagens de treino fornecidas à partida), e quais as imagens sintéticas

As StyleGANs são uma extensão deste modelo, com alguns truques para melhorar a performance do gerador. A Figura 15 descreve a arquitectura proposta para o gerador da StyleGAN. Essencialmente, o gerador é composto por 2 redes neuronais: mapping network e synthesis network.

Descreve a arquitectura do gerador da StyleGAN. O ruído Gaussiano corresponde a um espaço latente, e é passado à mapping network. O resultado da mapping network é um vector com múltiplas camadas, correspondendo a um novo espaço latente w. Este espaço latente inclui propriedades da cara, como o penteado, cor dos olhos, etc... Este espaço latente w é depois passado à synthesis network a qual gera uma cara
Arquitectura do gerador da StyleGAN

A mapping network é treinada para mapear ruído Gaussiano (espaço latente $z$) num outro espaço latente $w$ com múltiplas camadas, onde cada camada representa uma propriedade das imagens a serem geradas. No caso das caras, estas propriedades poderão ser o formato da cara, o penteado, cor dos olhos, etc…

Em conjunto com uma camada constante aprendida à priori, este espaço latente $w$ é depois usado pela synthesis network para gerar uma imagem sintética. Esta arquitectura permite a StyleGAN gerar caras aleatórias.

StyleGAN Encoder

Portanto, o modelo StyleGAN por si só permite-nos gerar caras aleatórias a partir de um ruído Gaussiano. No entanto, nós não queremos gerar caras aleatórias—queremos gerar caras parecidas com as fotos dos jogadores do Porto, Benfica e Sporting. Isto é possível através de uma técnica chamada StyleGAN Encoder.

Na prática, o StyleGAN Encoder aprende o inverso da synthesis network—dada uma imagem tenta construir o espaço latente $w$ associado.

Descreve a arquitectura do StyleGAN Encoder.
Arquitectura do StyleGAN Encoder

O processo começa com uma estimativa do espaço latente associado $\hat{w}$. A estimativa inicial pode ser escolhida aleatoriamente (apesar de existirem métodos mais inteligentes para esta escolha). Este espaço latente estimado pode ser passado pela synthesis network, gerando uma imagem. A imagem gerada será provavelmente muito diferente da imagem real. Esta diferença é medida através de uma função de custo, a qual nos indica correcções à nossa estimativa do espaço latente.

Este processo é depois repetido com a nova estimativa do espaço latente. Em princípio, a nova imagem gerada será ligeiramente melhor do que a anterior, levando a um erro de reconstrução menor, e menos correcções a fazer.

Continuamos a repetir este processo até estarmos satisfeitos com o erro de reconstrução, e guardamos o melhor espaço latente que encontrámos. Esta arquitectura permite encontrar o espaço latente $w$ associado com uma dada cara.

Combinações de espaços latentes

Dada uma foto da cara de cada jogador, já conseguimos gerar o espaço latente $w$ associado. Agora podemos passar à parte mais divertida—misturar as caras.

Voltemos ao exemplo do Pizzi e do Bruno Fernandes. Primeiro, geramos os espaços latentes respectivos: $w_{\mathrm{pizzi}}$ e $w_{\mathrm{bruno}}$. Depois podemos explorar combinações convexas destes espaços latentes:

$$ w_{\mathrm{mistura}} = \theta w_{\mathrm{pizzi}} + (1 - \theta) w_{\mathrm{bruno}},$$ com $\theta \in [0, 1]$. Quando $\theta$ está mais próximo de 0, a cara misturada é mais parecida com o Pizzi. Em sentido inverso, quando $\theta$ está mais próximo de 1, a cara misturada é mais parecida com o Bruno Fernandes. A galeria em baixo mostra combinações diferentes.


Mais Posts

<< Fenómeno "Joacine" no Twitter
>> O Preço Certo