2 puan yazan GN⁺ 2024-05-15 | 1 yorum | WhatsApp'ta paylaş
  • İlk bakışta bir kadın fotoğrafı gibi görünse de, görüntüye DCT uygulandığında frekans alanına gizlenmiş kedi ortaya çıkıyor
  • Zaman/uzay alanı ile frekans alanı, tersine çevrilebilir bir dönüşümle bağlı; bu da aynı görüntünün farklı şekillerde yorumlanabilmesini sağlıyor
  • Kedi fotoğrafının DCT’ye çevrilmiş “gürültü” deseni düşük opaklıkla birleştirildiğinde, orijinal görüntü korunurken dönüşüm sonucunda kedi silueti kalıyor
  • Birleştirilmiş görüntü yeniden boyutlandırıldıktan sonra da kedi bilgisini koruyor; ancak büyütüldüğünde karo gibi tekrarlanıyor, küçültüldüğünde ise kırpılıyor
  • JPEG kalitesi düşürüldüğünde özellikle yüksek frekans bileşenleri güçlü biçimde kuantize ediliyor; böylece kayıplı sıkıştırmanın ne kadar bilgi attığı görsel olarak görülebiliyor

DCT ile yapılan “ayna boyutu” deneyi

  • Frekans alanı, gündelik bir sinyali onu oluşturan dalga biçimlerinin genliklerine çevirerek yorumlama yöntemidir
    • En yaygın temel, frekansı artan sinüs dalgalarıdır
    • Başka dalga biçimleri de alternatif frekans alanları oluşturmak için kullanılabilir
  • Bu dönüşümün iki özelliği vardır
    • Orijinal zaman alanı veya uzay alanı verisine geri dönülebilmesini sağlayan tersine çevrilebilirlik
    • Aynı matematiksel işlemle iki yönde de dönüşüm yapılabilmesini sağlayan girdi/çıktı simetrisi
  • Sıkıştırmada bu ayrım önemlidir
    • Görüntü frekans alanına çevrildikten sonra yüksek frekans bileşenlerinin hassasiyeti düşürülse ya da bunlar kaldırılmış olsa bile, ortaya çıkan görüntü algısal olarak benzer görünebilir
    • Böylece iletilecek veya saklanacak veri miktarı azalır

Kediyi frekans alanına gizleme süreci

  • Süreç, kedi fotoğrafını ayrık kosinüs dönüşümü (DCT) ile frekans alanı biçimine dönüştürerek başlıyor
  • Önceki örnekteki kadın fotoğrafının üzerine, frekans alanındaki “kedi gürültüsü” deseni düşük opaklıkla birleştiriliyor
    • Birleştirme işlemi kayıplı
    • Beklenen sonuç, kadın fotoğrafının DCT’de nispeten düzgün bir gürültüye ayrışması ve eklenen kedi gürültüsünün yeniden kedi görüntüsünde toplanmasıydı
  • Gerçekten de birleştirilmiş görüntüye DCT uygulandığında kedi silueti ortaya çıkıyor
  • Doğrudan incelenebilecek birleştirilmiş görüntü ve bir MATLAB örneği var
    • woman-with-cat.png
    • DCT, dct2(woman) ile hesaplanıyor ve imgaussfilt(cat, 1) ile yumuşatılmış sonuç gösteriliyor
  • Yeniden boyutlandırmadan sonra da kedi kalıyor
    • Büyütüldüğünde görüntü karo gibi tekrar ediyor
    • Küçültüldüğünde görüntü kırpılıyor
  • JPEG kalite ayarı düşürüldüğünde kedi bilgisi bozuluyor
    • Yüksek JPEG kalitesinde görüntü oldukça iyi görünüyor
    • Düşük kalitede, yüksek frekans bileşenlerine karşılık gelen sağ alt çeyrek ağır biçimde kuantize ediliyor
  • Bu görselleştirme, JPEG algoritmasının bizim kolay fark etmediğimiz şekillerde çok fazla bilgiyi yok ettiğini gösteriyor
  • Ses spektrogramına gizli mesaj yerleştirme ya da JPEG DCT katsayıları üzerine metin steganografisi bindirme gibi önceki örnekler de var
    • Odak noktası, bu tekniğin pratikliği ya da tamamen yeni olması değil; frekans alanı ile zaman alanının ilginç biçimde birleşmesi
  • Bonus olarak, farklı JPEG kalite ayarlarında “bağımsız” frekans alanı kedisinin bozulma videosu da var: https://vimeo.com/940487310/8a929a5eb5

1 yorum

 
GN⁺ 2024-05-15
Hacker News yorumları
  • Tanınabilir bir öznesi olan fotoğrafların çoğunda, burada olduğu gibi spektral enerji orijinde, yani sol üst köşenin çevresinde yoğunlaşır

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

    Kadın görüntüsünün DCT'si de böyledir. Buna karşılık fotoğrafın öznesi genelde karenin merkezine yakın konumlanır. Bu yüzden bileşik görüntüde uzamsal alan verisi ile frekans alanı verisi birbirine daha az müdahale eder ve ters dönüşüm yapıldığında kedinin ifadesi korunur

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

    Kadın görüntüsü tarafında da aynı ilke ters yönde geçerlidir

    • Bu yalnızca DCT için geçerlidir. Bir görüntünün 2 boyutlu Fourier dönüşümünde veriler genelde görüntünün merkezine yakın yoğunlaşır
  • Bu süreci şöyle anlamam doğru mu, kontrol etmek istiyorum: a) kadın fotoğrafı ve kedi fotoğrafı alınıyor, b) kedi DCT ile frekans alanına dönüştürülüyor, c) frekans alanındaki kedi kadının görsel görüntüsünün üzerine bindiriliyor, d) bileşik görüntüye DCT uygulayınca kedi yeniden ortaya çıkıyor
    Daha doğrusu görsel kedi ile frekans alanındaki kadının birleşimi ortaya çıkıyor, ama görsel kedinin daha belirgin olduğu kastediliyor gibi görünüyor

  • Çok eski bir öğrenci projesinde gördüğümü hatırladığım kadarıyla bu teknik, ister görüntü ister ses olsun her tür sinyale uygulanabilen sağlam dijital filigranlamanın temelini oluşturuyor

    Başlıca kullanım amacı, sinyal ciddi biçimde işlendikten sonra bile telifli materyali tespit etmektir. Örneğin riplenmiş ya da kamerayla kaydedilmiş filmler, JPEG-2000 olarak sunulan materyaller gibi durumlar

    Film sektöründen biri daha teknik ayrıntılar paylaşabilirse duymak isterim

    • Eskiden bir filigranlama sistemini test etmiştim; her türlü gürültüye ve yeniden boyutlandırmaya dayanıklıydı ama görüntüyü sadece %1 döndürünce başarısız oluyordu
      Sanırım Digimarc'tı; Fourier dönüşümü tabanlı bir algoritma olup olmadığını merak ediyorum
  • Fourier dönüşümünün zaman-frekans ikiliğini, burada ise uzay-frekans ikiliğini gösteren çok iyi bir örnek
    Fourier dönüşümünün matematiği, dönüşümü hangi “yönde” yaptığınızla ilgilenmediği için zaman/frekans alanında benzer görünen fonksiyonların frekans/zaman uzayında da benzer Fourier dönüşümleri olur

    Bu durumda kedinin frekans grafiğini kadının uzamsal grafiğine gömerseniz, kadın görüntüsünün Fourier dönüşümünde kedi belirir; tersi de geçerlidir

  • Steganografinin çok havalı ve ilginç bir uygulaması
    Yasa dışı görüntüleri sıradan bir görüntünün içinde saklamak istiyorsanız, frekans alanına dönüştürüp başka bir görüntüyle birleştirmeniz yeterli. Alıcı geri çevirme yöntemini bildiği sürece, tespit edilmesi zor olabilecek gizli bir görüntü aktarım yöntemi olur

    • Karşı taraf ne araması gerektiğini bilmiyorsa tespit etmek zor olur, ama biliyorsa kolay olacaktır

      Gizlenen görüntüyü tek kullanımlık ped ile birleştirirseniz gürültüden ayırt edilememesi gerekmez mi? Kayıplı sıkıştırılmış görüntülerde gürültü zaten doğal olarak beklenir. Birilerinin bunu daha önce yapıp yapmadığını merak ediyorum; söylemedikleri sürece muhtemelen asla bilemeyeceğiz

  • Aphex Twin ve başkaları benzer eğlenceli numaralar kullanarak bir parçanın ses spektrogramında tuhaf bir yüzün belirmesini sağlamıştı: https://news.ycombinator.com/item?id=8509105

    • MetaSynth 90'ların sonlarından beri var; sesin zaman alanı örnekleri ile frekans alanı görüntülerini dönüştürüp Photoshop tarzı görüntü filtreleriyle birleştiriyor

      https://uisoftware.com/metasynth/

  • Yazı sona doğru gittikçe daha da güzelleşiyor

    Frekans alanının görüntü sıkıştırmada kullanılabileceğini neden ancak şimdi fark ettiğime inanamıyorum. Görünce fazlasıyla bariz geliyor. Çoğu görüntü sıkıştırma algoritması bu şekilde mi çalışıyor? Frekans alanındaki daha zayıf kısımları basitçe silmek şeklinde mi?

    • Evet. MP3, Ogg-Vorbis ve JPEG'in hepsi bu şekilde çalışır
      Hangi frekansların tutulacağına dair ağırlıkları seçmek muhtemelen psikoakustik modellere dayanır, ama kabaca söylemek gerekirse yüksek mertebeli frekans bilgisini kelimenin tam anlamıyla atmak demektir

    • DCT, daha karmaşık görüntü veya video sıkıştırma algoritmalarının bir alt adımı olarak da sıkça kullanılır
      Örneğin önce görüntünün çok ayrıntı içeren bazı bölgeleri bulunur, bu bölgelere DCT uygulanıp spektrumun daha büyük kısmı tutulur; ardından diğer bölgelerde de aynı işlem yapılarak spektrumdan daha fazla ya da daha az kısmı tutulur. Video sıkıştırma algoritmalarında görmüş olabileceğiniz niceleme parametresi tam da bu davranışı etkiler

    • Genelde yüksek frekanslar tamamen silinmez; daha az bitle kodlanır

    • Görüntüler gerçek anlamda bant sınırlı değildir, bu yüzden yalnızca frekans alanıyla kusursuz biçimde temsil edilemezler
      Bu nedenle küçük bloklara bölünüp frekans alanı ile uzamsal alan öngörücüleri karıştırılarak kodlanan bir uzlaşma yapılır. Yine de ana fikir büyük ölçüde doğru

      Sorunların çoğu keskin kenarlardan kaynaklanır. Bu tür kenarları temsil etmek için sonsuz sayıda frekans gerekir; bazıları çıkarıldığında bulanıklık veya ringing artefaktları oluşur

      Bir başka neden de bant sınırlı sinyalin sonsuz biçimde tekrar etmesi, gerçek dünyadaki görüntülerin ise böyle olmamasıdır. Fotoğrafın sol tarafında olan şey, sağ tarafta ne olacağını mutlaka öngörmez

    • Daha fazla unsur var. Mesele yalnızca frekansları atmak değil; varyansı küçük verilerin daha verimli kodlanabilmesi de önemli
      Yüksek frekans bilgisinin yalnızca gürültü olması değil, genel olarak genliğinin de daha küçük olması söz konusu

  • JPEG 2000 daha da tuhaf. Wavelet dönüşümü kullanıyor
    Bir JPEG 2000 dosyasını ortasından kesseniz bile daha düşük çözünürlüklü bir görüntüyü geri kazanabilirsiniz. Belirli bir dosya uzunluğunun altına inildiğinde renk bilgisi kaybolur ve görüntü gri tonlamalı olur

    • Bunun nesi tuhaf? Bir özellik gibi görünüyor
  • Kedi sol üstte daha yoğun olsaydı bu demonun bu kadar iyi çalışmayacağını düşünüyorum
    DCT'de genliği büyük çok sayıda düşük frekans bileşeni oluşur; kedi sol üst köşeye yakın olsaydı bu bileşenler kedinin üzerini örterdi

    • JPEG'in bizim fark etmediğimiz çok miktarda veriyi attığı, bir keşiften ziyade zaten o sıkıştırma algoritmasının açık amacı sayılır
  • Konum ve frekansın kuantum mekaniğindeki gösteriminde, yani hbar dikkate alındığında konum ve momentum gösteriminde, bu şekilde iki farklı fonksiyonu tek bir fonksiyona tıkıştıramazsınız
    Çünkü yalnızca konuma bağlı fazı farklı olan fonksiyonlar bile farklı kuantum durumlarıdır