2 pontos por GN⁺ 2024-05-15 | 1 comentários | Compartilhar no WhatsApp
  • À primeira vista, parece uma foto de uma mulher, mas ao aplicar DCT à imagem, revela-se um gato escondido no domínio da frequência
  • Os domínios do tempo/espaço e o domínio da frequência estão ligados por transformações reversíveis, então a mesma imagem pode ser interpretada de maneiras diferentes
  • Ao compor, com baixa opacidade, um padrão de “ruído” obtido ao transformar a foto do gato com DCT, a imagem original é preservada enquanto o resultado da transformação mantém a forma do gato
  • A imagem composta mantém a informação do gato mesmo após redimensionamento, mas ao ampliar ela se repete como ladrilhos e ao reduzir é cortada
  • Se a qualidade do JPEG for reduzida, os componentes de alta frequência são quantizados com força, permitindo ver como a compressão com perdas descarta muita informação

Experimento de “dimensão do espelho” com DCT

  • O domínio da frequência é uma forma de interpretar sinais cotidianos convertendo-os nas amplitudes das formas de onda que os compõem
    • A base mais comum são as ondas senoidais com frequência crescente
    • Outras formas de onda também podem ser usadas para criar domínios de frequência alternativos
  • Essa transformação tem duas propriedades
    • Reversibilidade, pois é possível voltar aos dados originais do domínio do tempo ou do espaço
    • Simetria entre entrada e saída, em que a transformação nos dois sentidos é feita com a mesma operação matemática
  • Na compressão, essa distinção é importante
    • Depois de converter uma imagem para o domínio da frequência, é possível reduzir a precisão dos componentes de alta frequência ou removê-los, e ainda assim a imagem resultante pode parecer perceptualmente parecida
    • Isso reduz a quantidade de dados a transmitir ou armazenar

Como esconder o gato no domínio da frequência

  • O processo começa convertendo a foto do gato para uma representação no domínio da frequência com a transformada discreta do cosseno (DCT)
  • Em seguida, o padrão de “ruído de gato” do domínio da frequência é composto, com baixa opacidade, sobre a foto da mulher do exemplo anterior
    • O processo de composição envolve perdas
    • O resultado esperado era que a foto da mulher se decompusesse em um ruído relativamente uniforme na DCT, enquanto o ruído de gato inserido se reorganizasse novamente na imagem do gato
  • Na prática, ao aplicar DCT à imagem composta, a forma do gato aparece
  • Há uma imagem composta e um exemplo em MATLAB para verificar diretamente
    • woman-with-cat.png
    • Mostra o resultado de calcular a DCT com dct2(woman) e suavizar com imgaussfilt(cat, 1)
  • O gato continua presente mesmo após redimensionamento
    • Ao ampliar, a imagem se repete como um mosaico
    • Ao reduzir, a imagem é cortada
  • Se a configuração de qualidade do JPEG for reduzida, a informação do gato se degrada
    • Com qualidade JPEG alta, a imagem ainda parece bastante boa
    • Com qualidade baixa, o quadrante inferior direito correspondente aos componentes de alta frequência é fortemente quantizado
  • Essa visualização mostra que o algoritmo JPEG destrói muita informação de maneiras que normalmente quase não percebemos
  • Há precedentes, como mensagens escondidas em espectrogramas de áudio ou discussões sobre esteganografia de texto sobre coeficientes DCT de JPEG
    • Mais do que a utilidade prática ou a total novidade da técnica, o foco está em como o domínio da frequência e o domínio do tempo se combinam de forma interessante
  • Como bônus, há um vídeo mostrando a degradação de um gato de domínio da frequência “autônomo” em diferentes configurações de qualidade JPEG: https://vimeo.com/940487310/8a929a5eb5

1 comentários

 
GN⁺ 2024-05-15
Comentários no Hacker News
  • Na maioria das fotos com um objeto reconhecível, como aqui, a energia espectral fica concentrada na origem, isto é, ao redor do canto superior esquerdo

    https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_pr...

    O DCT da imagem da mulher é igual. Já o assunto da foto normalmente fica mais para o centro do quadro. Por isso, na imagem composta, os dados do domínio espacial e os dados do domínio da frequência interferem menos entre si, e a expressão do gato é preservada quando se aplica a transformada inversa

    https://substackcdn.com/image/fetch/w_1456,c_limit,f_webp,q_...

    Do lado da imagem da mulher, o mesmo princípio vale ao contrário

    • Isso se aplica apenas à DCT. Na transformada de Fourier 2D de uma imagem, os dados normalmente ficam concentrados perto do centro da imagem
  • Quero confirmar se entendi o processo assim: a) pega-se uma foto da mulher e uma foto do gato, b) transforma-se o gato para o domínio da frequência com DCT, c) compõe-se o gato no domínio da frequência por cima da imagem visual da mulher, d) ao aplicar DCT à imagem composta, o gato reaparece
    Mais precisamente, o resultado parece ser uma composição do gato visual com a mulher no domínio da frequência, mas a ideia é que o gato visual fica mais evidente

  • Pelo que lembro de um antigo projeto de estudantes, essa técnica é a base de marca d'água digital robusta, aplicável a qualquer sinal, seja imagem ou áudio

    O principal uso é detectar material protegido por direitos autorais mesmo depois de o sinal ter sido bastante processado. Por exemplo, filmes ripados ou filmados com câmera, ou material fornecido em JPEG-2000

    Se alguém da indústria cinematográfica puder dar mais detalhes técnicos, eu gostaria de ouvir

    • Testei um sistema de marca d'água tempos atrás; ele era resistente a todo tipo de ruído e redimensionamento, mas falhava se a imagem fosse girada em apenas 1%
      Acho que era da Digimarc, e fico curioso se o algoritmo era baseado em transformada de Fourier
  • É um ótimo exemplo da dualidade tempo-frequência da transformada de Fourier; aqui, dualidade espaço-frequência
    A matemática da transformada de Fourier não se importa com a “direção” em que você está transformando, então funções parecidas no tempo/frequência têm transformadas de Fourier parecidas no espaço frequência/tempo

    Neste caso, se você embute o gráfico de frequência do gato no gráfico espacial da mulher, o gato aparece na transformada de Fourier da imagem da mulher, e o inverso também vale

  • Uma aplicação muito legal e interessante de esteganografia
    Se você quiser esconder imagens ilegais dentro de uma imagem comum, basta transformá-las para o domínio da frequência e compô-las em outra imagem. Desde que o destinatário saiba como reverter, isso pode virar uma forma discreta de transmissão de imagens difícil de detectar

    • Seria difícil detectar se a outra pessoa não souber o que procurar, mas, se souber, deve ser fácil

      Se a imagem escondida fosse combinada com um one-time pad, ela não deveria ficar indistinguível de ruído? Ruído também é naturalmente esperado em imagens com compressão com perdas. Fico curioso se alguém já fez isso e, a menos que conte, provavelmente nunca saberemos

  • Aphex Twin e outros já usaram um truque divertido parecido para fazer um rosto estranho aparecer no espectrograma de áudio de uma faixa: https://news.ycombinator.com/item?id=8509105

    • O MetaSynth existe desde o fim dos anos 90 e transforma amostras no domínio do tempo do áudio e imagens no domínio da frequência, combinando isso com filtros de imagem ao estilo Photoshop

      https://uisoftware.com/metasynth/

  • O texto fica cada vez melhor até o fim

    É difícil acreditar que só agora percebi que o domínio da frequência pode ser usado para compressão de imagens. Depois de ver, parece óbvio demais. A maioria dos algoritmos de compressão de imagem funciona assim? Simplesmente apagando as partes mais fracas no domínio da frequência?

    • Sim. MP3, Ogg-Vorbis e JPEG funcionam todos desse jeito
      A escolha dos pesos para decidir quais frequências manter provavelmente se baseia em um modelo psicoacústico, mas, grosso modo, é literalmente descartar informações de frequências mais altas

    • A DCT também é frequentemente usada como uma subetapa em algoritmos mais complexos de compressão de imagem ou vídeo
      Por exemplo, primeiro se encontram regiões de uma imagem com muitos detalhes, aplica-se DCT a essas regiões e preserva-se mais do espectro; depois se faz o mesmo em outras regiões, preservando mais ou menos do espectro. O parâmetro de quantização que você deve ter visto em algoritmos de compressão de vídeo é justamente o que influencia esse comportamento

    • Normalmente, as altas frequências não são apagadas por completo; elas são codificadas com menos bits

    • Imagens não são limitadas em banda no sentido verdadeiro, então não podem ser representadas perfeitamente só pelo domínio da frequência
      Por isso, usa-se um compromisso: dividir em pequenos blocos e codificar misturando preditores do domínio da frequência e do domínio espacial. Ainda assim, a ideia central está mais ou menos certa

      A maior parte do problema vem de bordas nítidas. Para representar essas bordas, seriam necessárias infinitas frequências; quando algumas são removidas, surgem desfoque ou artefatos de ringing

      Outro motivo é que sinais limitados em banda se repetem infinitamente, mas imagens reais não são assim. O que está à esquerda de uma foto não necessariamente prevê o que estará à direita

    • Há mais elementos envolvidos. Não é só descartar frequências; também é importante que dados com baixa variância possam ser codificados de forma mais eficiente
      Não é apenas que a informação de alta frequência seja ruído; em geral, sua própria magnitude também é menor

  • JPEG 2000 é ainda mais estranho. Ele usa transformada wavelet
    Se você cortar um arquivo JPEG 2000 no meio, ainda consegue recuperar uma imagem de menor resolução. Abaixo de certo tamanho de arquivo, as informações de cor desaparecem e a imagem vira tons de cinza

    • Por que isso é estranho? Parece um recurso
  • Acho que esta demonstração não teria funcionado tão bem se o gato estivesse mais concentrado no canto superior esquerdo
    Na DCT, surgem muitos componentes de baixa frequência de grande magnitude; se o gato estivesse perto do canto superior esquerdo, esses componentes cobririam o gato

    • O fato de o JPEG descartar muitos dados sem que a gente perceba não é tanto uma descoberta, mas praticamente o objetivo declarado desse algoritmo de compressão desde o início
  • Na representação quântica de posição e frequência — ou seja, considerando hbar, de posição e momento — não é possível enfiar duas funções diferentes em uma só dessa maneira
    Isso porque funções que diferem apenas por uma fase dependente da posição também são estados quânticos diferentes