1 pontos por GN⁺ 2023-12-01 | 1 comentários | Compartilhar no WhatsApp
  • 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

 
GN⁺ 2023-12-01
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?

    • O exemplo homem/mulher também me chamou a atenção, e acho que devo ter visto umas dez vezes. Talvez porque pareça meio melancólico
    • O mosaico do pato e do coelho foi hilário
    • Se por “transformação ortogonal” aqui você quer dizer uma transformação/matriz linear ortogonal comum, então a resposta é sim
  • 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

    • Sinceramente, para meus olhos isso parece mais um cat-aclysm do que um gato. Talvez o modelo tenha ficado sobrecarregado por requisitos conflitantes, e nem as imagens individuais nem a imagem composta tenham ficado particularmente boas. Ainda assim, como você disse, um dia isso pode melhorar
    • Muito legal. Será que daria para fazer 3x3x3? Ou seja, em um 9x9, 81 gatos de 1 célula, 9 gatos de 9 células e 1 gato de 81 células
  • 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

    • Incrível. Deixo o link para quem tiver interesse. A página tem muitas imagens
      https://dangeng.github.io/visual_anagrams/static/videos/grid...
    • Para mim é o oposto. A inversão de cores não parece muito mais impressionante do que as animações de morphing que estavam na moda nos anos 1990. Entendo o quanto a inversão de cores é simples no nível dos dados de pixels, mas essa simplicidade não é visível a olho nu. Não parece muito diferente de um alpha blending sem relação nenhuma
      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”
    • Quando vejo o homem, se eu procurar consigo ver a mulher, mas estranhamente o contrário não acontece
  • 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

    • Ainda não examinei em detalhes, mas essa ideia não deveria poder ser usada também em outras redes de difusão? Talvez o código fornecido precise de modificações bem grandes. Claro, fiquem à vontade para me corrigir se eu estiver errado
    • Sempre achei estranho que essa ideia tenha surgido justamente com aquele modelo ControlNet. Combinar as mesmas imagens com vários outros modelos ControlNet também gera resultados ótimos e impactantes
      O ecossistema em torno do Stable Diffusion é realmente enorme como um todo
    • Não vi; por que era infame?
    • Será que você não queria dizer que, na verdade, é relacionado? As imagens “em espiral” originais do Ugleh são creditadas explicitamente na seção “Related Links”
  • Dá para comprar quebra-cabeças físicos como os mostrados aqui?

    • Você também pode fazer o seu. Só não sei quão bem isso encaixaria se o método acima fosse ampliado bastante https://www.createjigsawpuzzles.com/
    • Esta pesquisa usa DeepFloyd IF, cujo uso comercial é proibido. Para vender, seria preciso encontrar ou treinar outro gerador de imagens adequado
  • 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

    • Esses dois se baseiam em ambigramas já conhecidos
      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...
    • Hm, quando vi o pinguim/girafa pela primeira vez, pensei: “parece um pinguim de cabeça para baixo, mas onde está a girafa?”. Nos outros, entendi de imediato o que pretendiam mostrar
  • O pato/coelho que se rearranja ficaria muito legal em um quebra-cabeça deslizante. Haveria duas soluções válidas

    • Seria preciso verificar, mas se você puder trocar um par de “saliência e encaixe” por outro par, então os dois pares precisam ter a mesma forma e a mesma cor. Mas, se em vez de serem trocados eles se separarem e se conectarem a outras bordas, surgem conexões adicionais
      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
    • Com tantos elementos rearranjáveis assim, daria para criar muitas soluções “válidas” indistinguíveis sem a imagem, então seria mais arte do que quebra-cabeça
  • 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