Kucing yang Muncul di Dimensi Cermin
(substack.com/lcamtuf)- Sekilas tampak seperti foto seorang perempuan, tetapi ketika DCT diterapkan pada gambar, kucing yang disembunyikan di ranah frekuensi akan muncul
- Ranah waktu·ruang dan ranah frekuensi terhubung oleh transformasi yang dapat dibalik, sehingga gambar yang sama dapat ditafsirkan dengan cara yang berbeda
- Jika pola “noise” hasil mengubah foto kucing ke DCT dikomposisikan dengan opasitas rendah, gambar asli tetap dipertahankan sementara bentuk kucing tertinggal pada hasil transformasi
- Gambar komposit masih menyimpan informasi kucing setelah diubah ukurannya, tetapi saat diperbesar ia berulang seperti ubin dan saat diperkecil ia terpotong
- Jika kualitas JPEG diturunkan, terutama komponen frekuensi tinggi akan dikuantisasi dengan kuat, sehingga kita bisa melihat langsung berapa banyak informasi yang dibuang oleh kompresi lossy
Eksperimen “dimensi cermin” dengan DCT
- Ranah frekuensi adalah cara menafsirkan sinyal sehari-hari dengan mengubahnya menjadi amplitudo gelombang penyusunnya
- Dasar yang paling umum adalah gelombang sinus dengan frekuensi yang meningkat
- Bentuk gelombang lain juga bisa digunakan untuk membuat ranah frekuensi alternatif
- Transformasi ini memiliki dua sifat
- Reversibilitas untuk kembali ke data asli di ranah waktu atau ranah ruang
- Simetri input-output yang memungkinkan transformasi dua arah dilakukan dengan operasi matematika yang sama
- Dalam kompresi, pembedaan ini penting
- Setelah gambar diubah ke ranah frekuensi, presisi komponen frekuensi tinggi bisa diturunkan atau dihapus, tetapi gambar hasilnya tetap dapat terlihat mirip secara perseptual
- Dengan begitu, data yang perlu dikirim atau disimpan menjadi lebih sedikit
Proses menyembunyikan kucing di ranah frekuensi
- Proses dimulai dengan mengubah foto kucing ke bentuk ranah frekuensi menggunakan discrete cosine transform (DCT)
- Lalu pola “noise kucing” dari ranah frekuensi dikomposisikan dengan opasitas rendah di atas foto perempuan dari contoh sebelumnya
- Proses komposit ini bersifat lossy
- Hasil yang diharapkan adalah foto perempuan terurai menjadi noise yang relatif seragam dalam DCT, sementara noise kucing yang disisipkan berkumpul kembali menjadi gambar kucing
- Pada praktiknya, ketika DCT diterapkan pada gambar komposit, bentuk kucing memang muncul
- Tersedia gambar komposit dan contoh MATLAB yang bisa diperiksa langsung
- woman-with-cat.png
- Menampilkan hasil perhitungan DCT dengan
dct2(woman)dan hasil yang telah dihaluskan denganimgaussfilt(cat, 1)
- Kucing tetap terlihat bahkan setelah ukuran gambar diubah
- Saat diperbesar, gambar berulang seperti ubin
- Saat diperkecil, gambar terpotong
- Jika pengaturan kualitas JPEG diturunkan, informasi kucing akan rusak
- Pada kualitas JPEG tinggi, gambar masih terlihat cukup baik
- Pada kualitas rendah, kuadran kanan bawah yang mewakili komponen frekuensi tinggi akan terkuantisasi parah
- Visualisasi ini menunjukkan bahwa algoritme JPEG menghancurkan banyak informasi dengan cara yang sering tidak mudah kita sadari
- Ada contoh terdahulu seperti pesan tersembunyi dalam spektrogram audio atau pembahasan tentang steganografi teks pada koefisien DCT JPEG
- Fokusnya bukan pada kepraktisan atau kebaruan mutlak teknik ini, melainkan pada bagaimana ranah frekuensi dan ranah waktu berpadu dengan cara yang menarik
- Sebagai bonus, ada video degradasi “kucing ranah frekuensi” versi mandiri untuk tiap pengaturan kualitas JPEG: https://vimeo.com/940487310/8a929a5eb5
1 komentar
Komentar Hacker News
Pada sebagian besar foto yang memiliki subjek yang dapat dikenali, seperti di sini, energi spektral terkonsentrasi di titik asal, yaitu di sekitar sudut kiri atas
https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_pr...
DCT pada gambar perempuan juga demikian. Sebaliknya, subjek foto biasanya ditempatkan di dekat tengah frame. Karena itu, pada gambar komposit, data domain spasial dan data domain frekuensi tidak terlalu saling mengganggu, dan ekspresi kucing tetap terjaga saat dilakukan transformasi balik
https://substackcdn.com/image/fetch/w_1456,c_limit,f_webp,q_...
Prinsip yang sama berlaku sebaliknya untuk sisi gambar perempuan
Saya ingin memastikan apakah tepat jika memahami prosesnya seperti ini: a) ambil foto perempuan dan foto kucing, b) ubah kucing ke domain frekuensi dengan DCT, c) kompositkan kucing dalam domain frekuensi di atas citra visual perempuan, d) jika gambar komposit itu di-DCT, kucing akan muncul lagi
Lebih tepatnya, hasilnya adalah komposit antara kucing visual dan perempuan di domain frekuensi, tetapi sepertinya maksudnya kucing visual lebih menonjol
Dari yang saya ingat melihat proyek mahasiswa lama, teknik ini adalah dasar watermarking digital yang tangguh yang bisa diterapkan pada sinyal apa pun, baik gambar maupun audio
Kegunaan utamanya adalah mendeteksi materi berhak cipta bahkan setelah sinyal diproses secara besar-besaran. Misalnya film yang di-rip atau direkam dengan camcorder, atau materi yang disediakan dalam JPEG-2000
Kalau ada orang dari industri film yang bisa memberi detail teknis lebih lanjut, saya ingin mendengarnya
Sepertinya itu Digimarc, dan saya penasaran apakah algoritmanya berbasis transformasi Fourier
Ini contoh yang sangat bagus dari dualitas waktu-frekuensi pada transformasi Fourier, atau dalam kasus ini dualitas ruang-frekuensi
Matematika transformasi Fourier tidak peduli pada “arah” transformasi, jadi fungsi yang tampak mirip di waktu/frekuensi juga memiliki transformasi Fourier yang mirip di ruang frekuensi/waktu
Dalam kasus ini, jika plot frekuensi kucing ditanamkan ke plot spasial perempuan, kucing akan muncul dalam transformasi Fourier gambar perempuan, dan sebaliknya juga berlaku
Aplikasi steganografi yang sangat keren dan menarik
Jika ingin menyembunyikan gambar ilegal di dalam gambar biasa, cukup ubah ke domain frekuensi lalu kompositkan ke gambar lain. Selama penerima tahu cara membaliknya, ini bisa menjadi cara pengiriman gambar terselubung yang sulit dideteksi
Akan sulit dideteksi jika pihak lain tidak tahu apa yang harus dicari, tetapi jika mereka tahu, mungkin mudah
Jika gambar tersembunyi digabungkan dengan one-time pad, bukankah seharusnya ia tidak bisa dibedakan dari noise? Pada gambar kompresi lossy, noise juga secara alami diharapkan. Saya penasaran apakah seseorang sudah pernah mencobanya, dan kecuali mereka memberi tahu, mungkin kita tidak akan pernah tahu
Aphex Twin dan lainnya pernah memakai trik serupa yang menarik, sehingga wajah aneh muncul di spektrogram audio sebuah track: https://news.ycombinator.com/item?id=8509105
MetaSynth sudah ada sejak akhir 90-an, dan mengubah sampel domain waktu audio serta gambar domain frekuensi, lalu menggabungkannya dengan filter gambar ala Photoshop
https://uisoftware.com/metasynth/
Artikelnya makin bagus sampai akhir
Sulit dipercaya saya baru sekarang menyadari bahwa domain frekuensi bisa dipakai untuk kompresi gambar. Setelah melihatnya, rasanya sangat jelas. Apakah sebagian besar algoritma kompresi gambar bekerja seperti ini? Dengan begitu saja menghapus bagian yang lebih lemah di domain frekuensi?
Benar. MP3, Ogg-Vorbis, dan JPEG semuanya bekerja seperti ini
Pemilihan bobot untuk frekuensi mana yang dipertahankan mungkin didasarkan pada model psikoakustik, tetapi secara kasar, itu benar-benar berarti membuang informasi frekuensi orde tinggi
DCT juga sering dipakai sebagai sublangkah dalam algoritma kompresi gambar atau video yang lebih kompleks
Misalnya, pertama-tama mencari area tertentu pada gambar yang memiliki banyak detail, menerapkan DCT pada area itu dan mempertahankan lebih banyak spektrum, lalu melakukan hal yang sama pada area lain sambil mempertahankan spektrum lebih banyak atau lebih sedikit. Parameter kuantisasi yang mungkin pernah Anda lihat di algoritma kompresi video memengaruhi perilaku ini
Biasanya frekuensi tinggi tidak dihapus sepenuhnya, melainkan dienkode dengan lebih sedikit bit
Gambar tidak benar-benar band-limited, jadi tidak bisa direpresentasikan sempurna hanya dengan domain frekuensi
Karena itu, komprominya adalah membaginya menjadi blok-blok kecil dan mengenkode dengan campuran domain frekuensi serta prediktor domain spasial. Namun intinya secara umum benar
Sebagian besar masalah berasal dari tepi yang tajam. Tepi seperti ini membutuhkan jumlah frekuensi tak terbatas untuk direpresentasikan, jadi jika sebagian dihilangkan, muncul blur atau artefak ringing
Alasan lainnya adalah sinyal band-limited berulang tanpa batas, sedangkan gambar nyata tidak demikian. Apa yang ada di sisi kiri foto tidak selalu memprediksi apa yang ada di sisi kanan
Ada lebih banyak faktor. Bukan sekadar membuang frekuensi; yang juga penting adalah data dengan varians kecil bisa dienkode dengan lebih efisien
Bukan hanya karena informasi frekuensi tinggi adalah noise, tetapi umumnya magnitudonya sendiri juga lebih kecil
JPEG 2000 lebih aneh lagi. Ini memakai transformasi wavelet
Jika file JPEG 2000 dipotong di tengah, Anda masih bisa memulihkan gambar dengan resolusi lebih rendah. Jika panjang file turun di bawah batas tertentu, informasi warna hilang dan gambar menjadi grayscale
Saya rasa demo ini tidak akan bekerja sebaik itu jika kucingnya lebih terkonsentrasi di kiri atas
Dalam DCT, banyak komponen frekuensi rendah bermagnitudo besar muncul, dan jika kucing berada di dekat kiri atas, komponen-komponen itu akan menutupi kucing
Dalam representasi mekanika kuantum atas posisi dan frekuensi, atau jika mempertimbangkan hbar, atas posisi dan momentum, kita tidak bisa menjejalkan dua fungsi berbeda ke dalam satu fungsi dengan cara seperti ini
Sebab fungsi yang hanya berbeda pada fase yang bergantung pada posisi pun merupakan keadaan kuantum yang berbeda