Selasa, 30 Maret 2010

Penyisipan Watermark Pada Citra Digital Menggunakan Metode Singular Value Decomposition






Artikel ini membahas tentang penerapan teknik watermarking atau penyisipan tanda air (watermark) pada suatu citra digital. Watermark yang disisipkan berbentuk citra lain yang dimensinya lebih kecil ke dalam suatu citra inti yang dimensinya lebih besar. Watermark umumnya digunakan untuk kepentingan proteksi hak cipta dan otentikasi suatu citra digital. Misalkan pada dunia kedokteran, otentikasi citra medis dapat digunakan untuk membantu keakuratan diagnosis terhadap pasien. Menurut ranah cara kerjanya, watermark dapat dikelompokkan kedalam ranah spasial dan ranah frekuensi. Teknik yang dilakukan pada ranah spasial adalah menyisipkan data langsung dengan memodifikasi nilai piksel citra, sedangkan pada ranah frekuensi dengan memodifikasi nilai koefisien transformasinya. Pada artikel ini disajikan penggunaan metode singular value decomposition (SVD) yaitu metode yang menggunakan matriks sebagai alat bantu analisis numerik dengan penerapannya pada ranah spasial.

Kata Kunci: watermark, ranah spasial, singular value decomposition

1. Pendahuluan

Perkembangan teknologi digital memudahkan manusia untuk memodifikasi, menggandakan dan menyebarkan arsip multimedia digital. Salah satu bentuk arsip multimedia digital adalah citra digital. Selain memberikan nilai positif, kemudahan ini juga menimbulkan dampak negatif, yaitu jika modifikasi, penggandaan dan penyebaran citra digital dilakukan secara ilegal. Hal ini membuat otentikasi suatu citra digital diperlukan sebagai bukti kepemilikan. Salah satu metode yang membubuhkan tanda digital kedalam suatu citra digital untuk menandai kepemilikan citra digital tersebut adalah watermarking. Metode yang dilakukan adalah menyisipkan sebuah Watermark berupa citra digital ke dalam citra digital lain dengan tidak merubah hasil penampakan citra aslinya. Watermark tersebut dapat diekstraksi di kemudian hari untuk dilihat sebagai bukti kepemilikan atau pun keaslian citra.

2. Dasar Teori

2.1. Citra Digital dan Matriksnya

Sebuah citra didefinisikan sebagai fungsi dua dimensi, f(x,y) dimana x dan y adalah koordinat spasial. Amplitudo fungsi pada setiap pasangan titik (x,y) merupakan intensitas atau kecemerlangan citra pada titik tersebut (Gonzales, 2004). Gray level digunakan untuk menyebut intensitas dari citra monokrom atau satu warna. Citra berwarna dibentuk oleh kombinasi dari beberapa citra monokrom, misalnya RGB dibentuk oleh kombinasi tiga warna yaitu, merah, hijau dan biru. Karena itu banyak teknik pemrosesan citra monokrom dapat digunakan untuk citra berwarna dengan memproses tiga komponen citra tersebut secara terpisah.

Sebuah citra yang direkam oleh kamera merupakan citra analog. Untuk dapat diolah oleh komputer, citra analog tersebut harus dikonversi ke bentuk citra digital. Proses konversi nilai koordinat (x, y) disebut sampling, dan proses konversi nilai amplitudo f disebut quantisasi. Ketika x, y dan amplitude f semuanya bernilai diskrit, maka citra tersebut dapat dikatakan sebagai citra digital.

Citra digital dapat di kodekan dalam bentuk matriks dimana indeks baris dan kolomnya menyatakan suatu titik pada citra tersebut dan elemen matriksnya (yang disebut sebagai piksel) menyatakan tingkat keabuan pada titik tersebut. Pada gambar berikut ini ditampilkan contoh koordinat suatu piksel dari citra digital dengan x merepresentasikan baris dan y merepresentasikan kolom.

Gambar 1. Koordinat Piksel

Pada gambar diatas, piksel yang ditunjuk tanda panah berada pada koordinat (M, 4). Jika direpresentasikan dalam bentuk matriks dapat dilihat seperti pada persamaan berikut ini:

(1)

2.2. Watermarking

Watermarking merupakan suatu cara untuk penyembunyian atau penanaman data tertentu ke dalam suatu data digital lainnya, tetapi tidak diketahui kehadirannya oleh indera manusia dan mampu menghadapi proses-proses pengolahan sinyal digital sampai pada tahap tertentu (Supangkat, 2000).

Ada berbagai tujuan yang ingin dicapai dari penggunaan watemarking sebagai suatu teknik penyembunyian data pada data digital lain (bender, 1996), yaitu:

1. Tamper-proofing

Watemarking digunakan sebagai alat indikator yang menunjukkan apakah data digital yang asli telah mengalami perubahan dari aslinya (mengecek integritas data).

2. Feature location

Watemarking sebagai alat identifikasi isi dari data digital pada lokasi-lokasi tertentu, misalnya penamaan suatu objek tertentu dari beberapa objek yang ada pada suatu citra digital.

3. Annotation/caption

Watermark berisi keterangan tentang data digital itu sendiri, misalnya pada broadcast monitoring pada penayangan iklan di stasiun TV. Selain itu, Watermark juga dapat digunakan untuk mengirimkan pesan rahasia.

4. Copyright-Labeling

Watemarking digunakan sebagai metoda untuk menyembunyikan label hak cipta pada data digital atau sebagai bukti otentik kepemilikan atas dokumen digital tersebut.

Untuk memenuhi tujuan diatas, teknik watermarking harus memenuhi beberapa kriteria berikut (Liu, 2002):

1. Imperceptibility:

Antara citra asli dengan citra yang telah disisipi watermark, secara persepsi tidak dapat dibedakan oleh mata manusia. Watermark tidak mengalami interferensi dengan medianya.

2. Trustworthiness:

Menjamin tidak akan dapat di bangkitkan watermark yang sama dengan watermark asli dan menyediakan bukti terpercaya untuk melindungi hak kepemilikan.

3. Robustness:

Watermark tahan terhadap pengaruh modifikasi yang dilakukan kepada data tumpangannya. Modifikasi yang biasa dilakukan adalah pengubahan ukuran, kompresi, rotasi dan operasi pengolahan lainnya.

Terdapat banyak metoda watermarking yang sudah diteliti. Teknik watermarking pada citra digital dapat diklasifikasikan dalam dua kategori, yaitu teknik ranah spasial dan teknik ranah frekuensi (Lee, 1999). Pada watermarking untuk citra yang dilakukan pada ranah spasial, penyisipan dilakukan dengan sedikit mengubah nilai piksel-piksel tertentu. Sedangkan jika menggunakan ranah frekuensi, maka citra tersebut diubah dahulu ke dalam ranah transformasi (biasanya dengan DFT atau DCT) kemudian penyisipan data dilakukan dengan sedikit mengubah nilai koefisien tertentu yang dipilih.

2.3. Singular Value Decomposition

Singular Value Decomposition (SVD) adalah salah satu teknik dalam analisis numerik yang digunakan untuk “mendiagonalkan” matriks. Dalam sudut pandang pengolahan citra, singular value dari suatu citra memiliki stabilitas yang baik, dimana ketika ada sedikit gangguan diberikan pada citra tersebut, singular value tidak berubah secara signifikan (Liu, 2002). Keuntungan lain adalah ukuran matriks dari transformasi metode SVD tidak tetap dan dapat berupa persegi atau lingkaran. Kemudian singular value mengandung informasi properti persamaan linear citra (Chang, 2005).

Misalkan A adalah sebuah matriks tidak nol berukuran m x n, maka a dapat direpresentasikan sebagai sebuah perkalian berikut:

(2)

U pada persamaan diatas adalah matriks orthogonal berukuran m x m, V adalah matriks orthogonal berukuran m x n dan S adalah matriks diagonal tidak bujur sangkar berukuran n x m. Dapat dilihat pada persamaan berikut:

(3)

Dekomposisi diatas disebut sebagai singular value decomposition. nilai dari S disebut sebagai nilai-nilai singular dari A, kolom-kolom dari U yang merupakan vektor ortonormal disebut sebagai vektor-vektor singular kiri dari A dan kolom-kolom dari V disebut sebagai vektor singular kanan dari A. Jika A adalah sebuah citra maka S mempunyai nilai-nlai luminance dari lapisan-lapisan citra yang dihasilkan oleh vektor-vektor singular kiri dan kanan. Vektor-vektor singular kanan merepresentasikan detail-detail horisontal, sedangkan vektor-vektor singular kiri merepresentasikan detail-detail vertikal dari citra. Pengubahan sedikit pada nilai-nilai singular tidak mempengaruhi kualitas citra dan nilai-nilai singular tidak berubah banyak setelah citra diserang.

3. Pengembangan dan Metodologi

Pada artikel ini, penyisipan Watermark dilakukan pada ranah spasial. Secara umum Watermarking dibagi menjadi dua bagian, yaitu proses penyisipan dan proses ekstraksi atau deteksi (Mohanty 1999). Langkah-langkah yang dilakukan adalah sebagai berikut:

3.1. Tahap Penyisipan

Pada tahap penyisipan, langkah yang dilakukan adalah sebagai berikut:

1. Memilih citra yang akan digunakan sebagai citra pembawa watermark. Citra yang dipilih adalah citra grayscale dengan dimensi dua.

2. Memilih citra yang akan dijadikan watermark. Citra watermark dipilih citra biner dengan ukuran yang lebih kecil dari citra pembawa.

3. Menentukan algoritma yang digunakan untuk penyisipan.

4. Membuat matriks penampung citra dan melakukan penyesuaian untuk citra watermark karena besarnya tidak sama dengan citra pembawa.

Tahap penyisipan diatas dapat digambarkan sebagai berikut:

Gambar 2. Gambar Alur Penyisipan watermark

Algoritma yang digunakan adalah algoritma yang di usulkan oleh Ruizhen Liu dan Tieniu Tan. Yaitu dengan menjumlahkan secara langsung antara citra watermark pada intensitas tertentu dengan matriks diagonal hasil dekomposisi SVD dari citra pembawa. Penyesuaian harus dilakukan jika ukuran watermark tidak sama dengan ukuran matriks S. hal ini dapat dilakukan dengan meletakkan watermark pada suatu matriks nol berukuran sama dengan S pada posisi tertentu.

Algoritma yang diusulkan bertipe non-blind, artinya hasil proses penyisipan tidak hanya berupa citra yang mengandung watermark, tetapi juga ada informasi tambahan yang didapat dari hasil perhitungan SVD pada citra pembawa dan citra watermark. Informasi tambahan tersebut tidak disebar luaskan bersama citra yang sudah disisipi watermark, tapi untuk disimpan sendiri guna kepentingan ekstraksi selanjutnya. Algoritma penyisipan Liu tersebut terlihat seperti pada pseudocode berikut ini:

3.2. Tahap Ekstraksi

Pada tahap ekstraksi, langkah yang dilakukan adalah sebagai berikut:

1. Memilih citra yang sudah disisipi watermark.

2. Menyediakan parameter-parameter yang dibutuhkan dalam ekstraksi yaitu: citra asli, citra watermark, matriks S, V dan U serta intensitasnya. Parameter-parameter tersebut dihasilkan dalam proses penyisipan sebelumnya.

3. Melakukan ekstraksi.

4. Mengembalikan citra watermark yang ukurannya disesuaikan dengan citra pembawa.

Tahap ekstraksi diatas dapat digambarkan sebagai berikut:

Gambar 3. Gambar Alur Ekstraksi watermark

Algoritma ekstraksi Liu terlihat seperti pada pseudocode berikut ini:

4. Cara Pemakaian Software

Software simulasi yang dibuat dibagi menjadi dua bagian GUI, yaitu GUI untuk penyisipan dan GUI untuk ekstraksi. Untuk menjalankan aplikasi, dapat dilakukan langkah-langkah berikut:

1. Jalankan perangkat lunak MATLAB.

2. Atur current directory ke folder tempat modul M-File dan citra yang akan dianalisa disimpan.

3. Jalankan file svd_watermark.m. akan muncul jendela GUI berikut:

Gambar 4. Tampilan Awal Program Penyisipan

4. Untuk melakukan penyisipan perlu di load citra pembawa dan citra watermark. Pengguna dapat menekan tombol “Load Citra Inti” dan “Load Watermark”. Dapat dilihat pada gambar berikut:


Gambar 5. Program Mengambil Citra yang Diproses

5. Setelah didapat citra yang diproses, lakukan penyisipan dengan menekan tombol “Penyisipan”. Hasil citra yang sudah disisipi dapat dilihat pada GUI seperti berikut:

Gambar 6. Program Selesai menyisipkan watermark

6. Setelah selesai proses penyisipan, hasil citra yang sudah disisipi dapat disimpan untuk keperluan ekstraksi nantinya dengan menekan tombol “Simpan Citra”.

7. Untuk melakukan ekstraksi pengguna dapat menekan tombol “Ekstraksi”. GUI penyisipan akan tertutup dan GUI ekstraksi akan muncul. Atau dapat juga dengan menjalankan file svd_ekstrak.m. Dapat dilihat pada gambar berikut:

Gambar 7. Tampilan Awal Program Ekstraksi

8. Pada proses ekstraksi, yang harus di lakukan adalah mengambil citra yang dibutuhkan sesuai dengan Bab Metodologi dan Pengembangan. Citra yang dibutuhkan adalah citra yang sudah disisipi watermark, citra pembawa aslinya dan citra watermark asli. Pengguna dapat menekan tombol “Load Citra Terwatermark”, “Load Citra Asli” dan “Load Watermark”. Dapat dilihat seperti pada gambar berikut:

Gambar 8. Tampilan Program Sebelum Ekstraksi

9. Untuk melakukan ekstraksi watermark, pengguna dapat menekan tombol “Ekstrak Watermark”. Hasil citra watermark yang berhasil diekstraksi akan muncul pada kolom kosong dibawah kolom citra watermark. Dapat dilihat seperti pada gambar berikut ini:

Gambar 9. Tampilan Program Setelah Ekstraksi

10. Untuk mengecek korelasi antara citra yang sudah disisipi watermark dengan citra pembawa aslinya, pengguna dapat menekan tombol “Cek Korelasi”. Nilai korelasi akan timbul pada kolom informasi tambahan. Nilai korelasi untuk dua buah citra yang sama adalah 1. Semakin kecil, nilai korelasinya maka semakin jauh kesamaan dua citra tersebut. Dan terlihat semakin berbeda pada pandangan mata manusia.

5. Hasil Simulasi

Pada simulasi yang dilakukan di pilih beberapa citra sesuai pada Bab Metodologi dan Pengembangan. Citra-citra tersebut adalah:

Gambar 10. Citra berukuran 512 x 512

Pada citra diatas, yang sebelah kiri adalah citra Lena dan yang sebelah kanan adalah citra Zahra. Keduanya berukuran 512 x 512.

Gambar 11. Citra berukuran 150 x 150

Citra diatas adalah citra Dian Sastro dengan ukuran 150 x 150. Citra yang sebelah kiri diberi indeks 1 dan citra yang sebelah kanan diberi indeks 2. Citra watermark yang dipakai adalah citra persamaan differensial seperti pada gambar berikut:

Gambar 12. Citra Watermark

Simulasi dilakukan dengan nilai intensitas 0,3. Dari hasil simulasi didapatkan untuk citra Dian_2, citra yang disisipi watermark tidak terlihat berbeda dengan citra aslinya. Nilai korelasi antara keduanya adalah 0.998984 yang berarti tidak jauh berbeda. Citra watermark yang diekstraksi mengalami sedikit perubahan namun masih dapat dikenali sebagai watermark yang disisipi. Seperti terlihat pada gambar berikut:

Gambar 13. Citra Watermark Asli dengan Hasil Ekstraksi

Untuk citra Dian_1, citra yang disisipi watermark juga tidak terlihat berbeda dengan citra aslinya. Nilai korelasi antara keduanya adalah 0.999276 yang berarti juga tidak jauh berbeda. Citra watermark yang diekstraksi juga mengalami sedikit perubahan namun masih dapat dikenali sebagai watermark yang disisipi. Seperti terlihat pada gambar berikut:

Gambar 14. Citra Watermark Asli dengan Hasil Ekstraksi Lainnya

Untuk citra Lena dan citra Zahra hasil yang didapat juga tidak jauh berbeda dengan nilai korelasi masing-masing citra adalah 0.999949 dan 0.999953.

6. Kesimpulan

Dari hasil uji coba didapatkan bahwa modul program dapat berjalan dengan baik. Algoritma yang digunakan memberikan hasil yang baik dalam kualitas citra yang disisipkan dan memenuhi aspek imperceptibility dan robustness. Karena tipe watermarking yang digunakan adalah non-blind, sehingga ada informasi yang dihasilkan pada tahap penyisipan tetap digunakan untuk proses ekstraksi watermark. Terlihat juga dari beberapa percobaan, citra yang sudah disisipi watermark terlihat lebih terang daripada citra aslinya. Hal ini terjadi disebabkan operasi penjumlahan yang dilakukan pada proses penyisipan.

1 komentar:

MON" mengatakan...

boleh minta sourcodenya ga??
saya sedang membuat tugas akhir dengan topik watermarking svd juga., saya menggunakan bahasa pemrograman visual c# 2010..
saya ingin mengggunakannya untuk referensi..


thx b4..

Posting Komentar