Um gato apareceu na dimensão do espelho
(substack.com/lcamtuf)- À 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 comimgaussfilt(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
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
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
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
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
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