2 points par GN⁺ 2024-05-15 | 1 commentaires | Partager sur WhatsApp
  • À première vue, il s’agit d’une photo de femme, mais lorsqu’on applique une DCT à l’image, un chat caché apparaît dans le domaine fréquentiel
  • Les domaines temporel/spatial et le domaine fréquentiel sont reliés par une transformation réversible, si bien qu’une même image peut être interprétée de différentes manières
  • En composant à faible opacité un motif de « bruit » obtenu en transformant une photo de chat par DCT, l’image d’origine est conservée tandis que la forme du chat subsiste dans le résultat de la transformation
  • Dans l’image composite, les informations du chat restent présentes même après redimensionnement, mais elles se répètent comme des tuiles lorsqu’on agrandit l’image et sont rognées lorsqu’on la réduit
  • Si l’on baisse la qualité JPEG, les composantes haute fréquence sont particulièrement fortement quantifiées, ce qui permet de constater visuellement à quel point la compression avec perte jette beaucoup d’informations

Expérience de « dimension miroir » créée avec la DCT

  • Le domaine fréquentiel est une manière d’interpréter les signaux du quotidien en les transformant en amplitudes de leurs formes d’onde constitutives
    • La base la plus courante est celle des ondes sinusoïdales de fréquence croissante
    • D’autres formes d’onde peuvent aussi servir à créer des domaines fréquentiels alternatifs
  • Cette transformation possède deux propriétés
    • La réversibilité, qui permet de revenir aux données d’origine dans le domaine temporel ou spatial
    • La symétrie entrée-sortie, qui effectue la transformation dans les deux sens avec la même opération mathématique
  • En compression, cette distinction est importante
    • Après avoir transformé une image dans le domaine fréquentiel, on peut réduire la précision des composantes haute fréquence ou les supprimer, tout en obtenant une image qui semble perceptuellement similaire
    • Cela réduit d’autant la quantité de données à transmettre ou à stocker

Le processus pour cacher un chat dans le domaine fréquentiel

  • On commence par transformer une photo de chat en représentation fréquentielle avec la transformée en cosinus discrète (DCT)
  • On compose ensuite, avec une faible opacité, le motif de « bruit de chat » du domaine fréquentiel par-dessus la photo de femme de l’exemple précédent
    • L’opération de composition entraîne une perte
    • Le résultat attendu était que la photo de femme se décompose en un bruit relativement uniforme dans la DCT, tandis que le bruit de chat inséré se regroupe à nouveau sous forme d’image de chat
  • En pratique, lorsqu’on applique la DCT à l’image composite, la silhouette du chat apparaît
  • Une image composite et un exemple MATLAB permettent de le vérifier directement
    • woman-with-cat.png
    • On calcule la DCT avec dct2(woman) et on affiche le résultat adouci avec imgaussfilt(cat, 1)
  • Le chat subsiste même après redimensionnement
    • Si l’on agrandit l’image, elle se répète comme un carrelage
    • Si l’on réduit l’image, elle est rognée
  • Si l’on baisse le réglage de qualité JPEG, les informations du chat sont dégradées
    • À qualité JPEG élevée, l’image paraît plutôt correcte
    • À basse qualité, le quadrant inférieur droit, qui correspond aux composantes haute fréquence, est fortement quantifié
  • Cette visualisation montre que l’algorithme JPEG détruit beaucoup d’informations d’une manière que nous ne remarquons pas facilement
  • Il existe des précédents, comme des messages cachés dans des spectrogrammes audio ou des discussions sur l’ajout de stéganographie textuelle aux coefficients DCT de JPEG
    • L’accent n’est pas mis sur l’utilité pratique ou la nouveauté totale de cette technique, mais sur la façon intéressante dont le domaine fréquentiel et le domaine temporel se combinent
  • En bonus, une vidéo montre la dégradation d’un chat « autonome » dans le domaine fréquentiel selon les réglages de qualité JPEG : https://vimeo.com/940487310/8a929a5eb5

1 commentaires

 
GN⁺ 2024-05-15
Commentaires Hacker News
  • Dans la plupart des photos comportant un sujet reconnaissable, comme ici, l’énergie spectrale se concentre autour de l’origine, c’est-à-dire près du coin supérieur gauche

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

    La DCT de l’image de la femme suit le même principe. À l’inverse, le sujet d’une photo se trouve généralement plutôt au centre du cadre. Ainsi, dans l’image composite, les données du domaine spatial et celles du domaine fréquentiel interfèrent moins entre elles, et l’expression du chat est préservée lors de la transformation inverse

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

    Le même principe s’applique en sens inverse du côté de l’image de la femme

    • Cela ne vaut que pour la DCT. Dans une transformée de Fourier 2D d’une image, les données se concentrent généralement près du centre de l’image
  • J’aimerais vérifier si je comprends bien le processus ainsi : a) on prend une photo de femme et une photo de chat, b) on transforme le chat dans le domaine fréquentiel avec une DCT, c) on superpose le chat en domaine fréquentiel à l’image visuelle de la femme, d) si l’on applique une DCT à l’image composite, le chat réapparaît
    Plus précisément, on obtient une combinaison du chat visuel et de la femme dans le domaine fréquentiel, mais l’idée semble être que le chat visuel ressort davantage

  • D’après ce dont je me souviens d’un vieux projet étudiant, cette technique est à la base du tatouage numérique robuste, applicable à n’importe quel signal, image ou audio

    L’usage principal est de détecter du contenu protégé par copyright même après que le signal a été fortement transformé. Par exemple un film rippé ou filmé au caméscope, ou du contenu fourni en JPEG-2000

    Si quelqu’un dans l’industrie du cinéma peut donner plus de détails techniques, je serais curieux de les entendre

    • J’ai testé autrefois un système de watermarking : il résistait très bien à toutes sortes de bruit et de redimensionnements, mais échouait dès que l’image était tournée de seulement 1 %
      Je crois que c’était Digimarc, et je me demande si l’algorithme était basé sur la transformée de Fourier
  • C’est un très bon exemple de la dualité temps-fréquence de la transformée de Fourier, ici sous la forme d’une dualité espace-fréquence
    Les mathématiques de la transformée de Fourier ne se soucient pas du « sens » dans lequel on transforme ; ainsi, des fonctions qui se ressemblent en temps/fréquence auront aussi des transformées de Fourier similaires dans l’espace fréquence/temps

    Dans ce cas, si l’on insère le tracé fréquentiel du chat dans le tracé spatial de la femme, le chat apparaît dans la transformée de Fourier de l’image de la femme, et l’inverse vaut aussi

  • Une application de stéganographie vraiment cool et intéressante
    Si vous voulez cacher des images illégales dans une image ordinaire, il suffit de les transformer dans le domaine fréquentiel et de les superposer à une autre image. Tant que le destinataire sait comment inverser l’opération, cela peut devenir un moyen discret de transmettre des images difficile à détecter

    • Ce serait difficile à détecter si l’autre partie ne sait pas quoi chercher, mais facile si elle le sait

      Si l’image cachée était combinée avec un masque jetable, ne devrait-elle pas être impossible à distinguer du bruit ? Dans les images à compression avec perte, un certain bruit est naturellement attendu. Je me demande si quelqu’un l’a déjà fait ; et à moins qu’on nous le dise, on ne le saura probablement jamais

  • Aphex Twin et d’autres ont utilisé un truc amusant similaire pour faire apparaître un visage étrange dans le spectrogramme audio d’un morceau : https://news.ycombinator.com/item?id=8509105

    • MetaSynth existe depuis la fin des années 90 et convertit entre les échantillons temporels de l’audio et des images en domaine fréquentiel, en les combinant avec des filtres d’image façon Photoshop

      https://uisoftware.com/metasynth/

  • L’article devient de mieux en mieux jusqu’à la fin

    J’ai du mal à croire que je réalise seulement maintenant qu’on peut utiliser le domaine fréquentiel pour la compression d’image. Une fois qu’on le voit, c’est tellement évident. Est-ce que la plupart des algorithmes de compression d’image fonctionnent comme ça ? En supprimant simplement les parties les plus faibles dans le domaine fréquentiel ?

    • Oui. MP3, Ogg-Vorbis et JPEG fonctionnent tous de cette façon
      Le choix des poids pour décider quelles fréquences conserver repose probablement sur des modèles psychoacoustiques, mais en gros, cela revient littéralement à jeter l’information des hautes fréquences

    • La DCT est aussi souvent utilisée comme sous-étape dans des algorithmes de compression d’image ou de vidéo plus complexes
      Par exemple, on commence par identifier les zones d’une image contenant beaucoup de détails, on leur applique une DCT en conservant davantage de spectre, puis on fait de même ailleurs en conservant plus ou moins de spectre. Le paramètre de quantification que vous avez peut-être vu dans les algorithmes de compression vidéo influence justement ce comportement

    • En général, on ne supprime pas complètement les hautes fréquences ; on les encode avec moins de bits

    • Les images ne sont pas à bande limitée au sens strict, donc on ne peut pas les représenter parfaitement uniquement dans le domaine fréquentiel
      On fait donc un compromis en les découpant en petits blocs et en mélangeant domaine fréquentiel et prédicteurs du domaine spatial pour l’encodage. Mais l’idée générale est plutôt correcte

      La plupart des problèmes viennent des contours nets. Pour les représenter, il faudrait une infinité de fréquences ; si l’on en retire une partie, on obtient du flou ou des artefacts de ringing

      Une autre raison est qu’un signal à bande limitée se répète indéfiniment, alors que les images réelles ne le font pas. Ce qui se trouve à gauche d’une photo ne permet pas forcément de prédire ce qui se trouve à droite

    • Il y a davantage de facteurs. Il ne s’agit pas seulement de jeter des fréquences : le fait de pouvoir encoder plus efficacement des données à faible variance est aussi important
      Les informations de haute fréquence ne sont pas seulement du bruit ; en général, leur amplitude est aussi plus faible

  • JPEG 2000 est encore plus bizarre. Il utilise une transformée en ondelettes
    Si vous coupez un fichier JPEG 2000 au milieu, vous pouvez récupérer une image de résolution plus basse. En dessous d’une certaine longueur de fichier, les informations de couleur disparaissent et l’image devient en niveaux de gris

    • En quoi est-ce bizarre ? Ça ressemble à une fonctionnalité
  • Si le chat avait été plus concentré en haut à gauche, je pense que cette démo aurait moins bien fonctionné
    Dans une DCT, cela produit beaucoup de composantes basse fréquence de forte amplitude ; si le chat était près du coin supérieur gauche, ces composantes le recouvriraient

    • Le fait que JPEG jette beaucoup de données sans que nous nous en rendions compte n’est pas vraiment une découverte ; c’est plutôt l’objectif explicite de cet algorithme de compression dès le départ
  • Dans la représentation quantique de la position et de la fréquence, c’est-à-dire de la position et de la quantité de mouvement si l’on tient compte de hbar, on ne peut pas entasser ainsi deux fonctions différentes en une seule
    Car même des fonctions qui ne diffèrent que par une phase dépendant de la position correspondent à des états quantiques différents