Anagramas visuais: ilusões de ótica multiângulo criadas com modelos de difusão
(dangeng.github.io)- Geração zero-shot, com modelos de difusão pré-treinados, de ilusões de ótica multiângulo em que uma única imagem parece ser outro objeto após transformações como rotação, espelhamento ou inversão de cores
- O método estima o ruído em cada ponto de vista transformado, aplica a transformação inversa para alinhar os sistemas de coordenadas e avança para a próxima etapa de difusão usando o ruído médio
- As transformações suportadas são amplas: rotação, espelhamento, inversão de cores, inclinação, rearranjo de quebra-cabeça, permutação aleatória de patches e até três ou mais pontos de vista
- A função de transformação precisa ser reversível; para estar alinhada à suposição de ruído do modelo de difusão, também requer linearidade e consistência estatística do ruído normal padrão
- Permutações de pixels que satisfazem a condição de matriz ortogonal e inversões de cores se ajustam às condições teóricas e são fáceis de usar, mas quanto mais pontos de vista, mais difícil é obter uma boa ilusão
Imagens cuja identidade muda quando transformadas
- Visual Anagrams gera ilusões de ótica multiângulo em que uma única imagem parece mudar de aparência ou identidade ao passar por uma transformação específica
- É uma abordagem zero-shot que usa modelos de difusão prontos, sem treinamento adicional
- Exemplos de transformações incluem:
- Rearranjo de quebra-cabeça: ao dividir e reorganizar as peças, a imagem passa a parecer outra coisa, funcionando como um quebra-cabeça com múltiplas soluções
- Espelhamento e rotação de 180 graus: a aparência muda quando a imagem é espelhada ou girada em 180 graus
- Rotação de 90 graus: a imagem é reconhecida como outra coisa quando girada em 90 graus
- Inversão de cores: a imagem muda quando as cores são invertidas
- Inclinação e “inner circle rotations”: incluídas como outros exemplos de transformação
- Permutação aleatória de patches: reorganiza patches; ao aumentar até (64 \times 64) patches, a qualidade cai, mas ainda produz resultados reconhecíveis
- Também é possível criar ilusões com três pontos de vista, não apenas dois, mas obter bons resultados é mais difícil
- Ilusões com quatro pontos de vista foram muito difíceis de fazer funcionar, e foi encontrado apenas um resultado razoável em cerca de metade dos pontos de vista
Procedimento de geração e condições teóricas
- A ideia central é combinar em um só os ruídos estimados pelo modelo de difusão em vários pontos de vista transformados
- Estima-se o ruído em cada ponto de vista (v_i)
- Aplica-se a transformação inversa (v_i^{-1}) às estimativas para alinhá-las no mesmo sistema de coordenadas
- Calcula-se a média das estimativas de ruído alinhadas
- A etapa de difusão é executada usando a estimativa média de ruído
- Nem toda função de ponto de vista se adapta a esse método; primeiro, (v_i) precisa ser reversível
- O modelo de difusão trata os dados com ruído (\mathbf{x}_t) como uma soma ponderada do sinal puro (\mathbf{x}_0) e do ruído (\epsilon)
- Para que a transformação (v) preserve a relação ponderada entre sinal e ruído, ela precisa ser uma transformação linear
- Uma transformação linear é representada por uma matriz (\mathbf{A})
- O modelo de difusão é treinado sob a suposição de que o ruído vem de uma distribuição normal padrão independente e identicamente distribuída
- O ruído transformado também deve satisfazer (\mathbf{A}\epsilon \sim \mathcal{N}(0, I))
- Em uma transformação linear, isso é equivalente a (\mathbf{A}) ser uma matriz ortogonal
- Portanto, uma condição suficiente para que uma transformação funcione nesse método é que ela seja uma transformação ortogonal
- A maioria das transformações ortogonais arbitrárias não tem significado visual em imagens, mas matrizes de permutação são um subconjunto das matrizes ortogonais e podem ser interpretadas como rearranjos de pixels
- Rotação, espelhamento, inclinação, inner rotations, rearranjo de quebra-cabeça e permutação de patches podem ser vistos como rearranjos específicos de pixels
- A inversão de cores não é uma permutação, mas corresponde a uma transformação que muda o sinal dos valores dos pixels, portanto é uma transformação ortogonal
Artigos e materiais para execução
- Paper: PDF do artigo da CVPR 2024
- arXiv: página no arXiv
- Code: código do Visual Anagrams
- Colab: Colab para execução
- Diffusion Illusions: gera ilusões multiângulo e outros efeitos visuais com score distillation sampling
- Illusion-Diffusion Colab: Colab de Matthew Tancik com uma ideia semelhante; Visual Anagrams traz melhorias em qualidade das ilusões, variedade de transformações e análise teórica
- Factorized Diffusion: trabalho posterior ao Visual Anagrams que gera vários tipos de ilusões híbridas
- Images that Sound: gera espectrogramas que parecem imagens usando uma técnica semelhante
1 comentários
Comentários do Hacker News
Gostei muito da inversão homem/mulher
Fico imaginando quantas permutações legíveis daria para criar dentro de uma única imagem se essa mesma técnica fosse ampliada. Não entendo muito de matemática, mas será que funciona porque aplicar duas transformações ortogonais em sequência ainda resulta em uma transformação ortogonal?
Tive uma ideia parecida no começo do ano passado e também brinquei um pouco com um método em tabuleiro de xadrez
Aqui há um gato feito de 9 imagens de gatos no estilo de pintores famosos: https://twitter.com/marekgibney/status/1521500594577584141
Talvez seja preciso semicerrar um pouco os olhos para ver. Fiz algumas e, por algum motivo, perdi o interesse
O exemplo de inversão de cores homem/mulher foi o mais impressionante para mim. Com rotação, dá para girar mentalmente e enxergar o outro ponto de vista, mas inverter cores na cabeça é muito difícil
https://dangeng.github.io/visual_anagrams/static/videos/grid...
Já a rotação é realmente surpreendente. É perfeitamente visível que os pixels não mudam. Quando você gira fisicamente a tela, a imagem “muda”. É difícil pensar em um exemplo melhor para mostrar que imagens de modelos de difusão não são apenas ecos de imagens existentes. Claro que há um pouco disso, mas essencialmente é uma solução para o problema de “encontrar um conjunto de pixels que corresponda à descrição {prompt}”. Aqui, trata-se de encontrar “pixels que correspondam a {A} nesta orientação e a {B} naquela orientação”
Esta técnica e seus resultados são separados das imagens “em espiral” do ControlNet que ficaram famosas alguns meses atrás: https://arstechnica.com/information-technology/2023/09/dream...
Em termos de código, ela é baseada no DeepFloyd-IF, mas não é tão fácil de executar quanto variantes do Stable Diffusion
O ecossistema em torno do Stable Diffusion é realmente enorme como um todo
Dá para comprar quebra-cabeças físicos como os mostrados aqui?
Cada um dos exemplos aqui dá uma sensação de “é... bem, talvez... até certo ponto”
pinguim/girafa provavelmente é o melhor, e a velha/vestido quase não parece nenhuma das duas coisas
O pinguim/girafa é muito próximo deste: https://www.pinterest.com/pin/giraffepenguin--13398215764267...
O outro foi inspirado diretamente neste aqui, ou é parecido; o prompt “young lady” parece ter levado o modelo a escolher um vestido. E é impossível fazer com que os olhos e a orelha, a boca e a gargantilha sejam completamente idênticos de forma fotorrealista: https://www.reddit.com/r/RedditDayOf/comments/35cjn5/the_cla...
O pato/coelho que se rearranja ficaria muito legal em um quebra-cabeça deslizante. Haveria duas soluções válidas
Se você pensar nas bordas como nós de um grafo direcionado conectado por saliências e encaixes, os pares possíveis ficam conectados. Uma troca é um cluster de dois pares, e uma conexão adicional é uma cadeia de quatro elementos com as duas pontas abertas. Se essa conexão se estender para mais pares, pode surgir um cluster maior de saliências e encaixes idênticos. Pela natureza do grafo, provavelmente a maioria acabaria assim. Para entender o motivo, veja o paradoxo dos prisioneiros [0]
Então a maioria das saliências passaria a encaixar na maioria dos encaixes, tornando o quebra-cabeça muito mais difícil de resolver.
[0] O excelente vídeo de Matt Parker https://www.youtube.com/watch?v=a1DUUnhk3uE também é bom, mas recomendo ainda mais a discussão posterior com Derek, do Veritasium
Seria legal criar imagens desse tipo que pareçam coisas diferentes sob iluminação vermelha/azul
A explosão de criatividade trazida pela IA generativa é realmente impressionante