PEMBUATAN WEB SERVICE SEBAGAI LAYANAN PENDETEKSI KONTEN PORNOGRAFI PADA CITRA DIGITAL DENGAN METODE IMAGE ZONING Oleh: Lourensius Bisma (5210100155) Dosen Pembimbing: Dr.Eng. Febriliyan Samopa, S.Kom., M.Kom. Radityo Prasetianto Wibowo, S.Kom, M.Kom.
Atribut Cara kerja Bentuk Inputan Output Keterangan Mendeteksi citra yang tersimpan dalam sebuah server dalam jaringan internet Web Service Url citra Porn => jika citra memiliki konten pornografi Not Porn => jika citra tidak memiliki konten pornografi Pesan error => jika url tidak valid atau terjadi kesalahan dalam proses Gambaran Umum Sistem
Metode Fitur Diselesaikan dengan Analisis Warna Skin count Kode Perhitungan Skin Count Pemilihan Fitur Skin percentage Kode Perhitungan Skin Percentage Analisis Tekstur Contrast Kode Perhitungan Contrast Correlation Homogeneity Energy Kode Perhitungan Correlation Kode Perhitungan Homogeneity Kode Perhitungan Energy Analisis Bentuk 7 Hu Moment Kode Perhitungan 7 Hu Moment
cb = 128 0.169R 0.332G + 0.500B; cr = 128 + 0.500R 0.419G 0.081B; if cb < 80 and cb > 120 and cr < 133 and cr > 173: set pixel to not skin; Metode Penyelesaian Skin Detection
Ilustrasi Image Zoning pada zona 3
Ilustrasi Image Zoning seluruh zona (cont)
1. Menelusuri semua pixel dalam citra 2. Jika ditemukan pixel kulit maka dilakukan penelusuran ke seluruh arah (8 arah mata angin) untuk mengetahui area mana saja yang termasuk ke dalam pixel kulit tersebut 3. Jika pixel kulit tidak ditemukan lagi maka seluruh area yang telah ditelusuri tersebut dihapus dan jumlah kulit (skin count) ditambah dengan 1 (satu) 4. Melanjutkan penelusuran sampai semua pixel selesai diselidiki dengan tahap ke (2) dan (3) Konsep Skin Count
1. Menelusuri seluruh pixel pada citra 2. Jika pixel termasuk ke dalam pixel kulit maka persentase kulit (skin percentage) ditambah dengan 1 (satu) 3. Melanjutkan penelusuran sampai semua pixel selesai diselidiki dengan tahap ke (2) 4. Membagi skin percentage dengan luas dari citra (panjang x lebar) Konsep Skin Percentage
1. Citra harus dalam konversi grayscale 2. Mencari jumlah variasi warna pixel pada citra yang diinisialisasikan dengan nama N 3. Mengkonversi nilai warna pixel menjadi nilai integer 4. Membuat matrix N x N dan mengisi nilai pada setiap cell dengan nilai 0 (nol) 5. Menelusuri setiap pasangan pixel pada citra dalam 8 arah mata angin 6. Menambahkan 1 (satu) pada cell dengan koordinat (x,y) dengan x adalah nilai integer pada pasangan pixel pertama dan y adalah yang kedua Konsep Gray Level Co- Occurences Matrix (GLCM)
Arah 0 o adalah ke kanan, 45 o ke kanan bawah, dan seterusnya mengikuti arah jarum jam Langkah pertama adalah membuat GLCM pada setiap arah Langkah terakhir adalah menjumlahkan setiap GLCM dari setiap arah sehingga didapatkan GLCM dari setiap arah Metode GLCM dengan arah 0, 45, 90, 135, 180, 225, 270, dan 315
Citra Jumlah variasi warna yang terbentuk adalah 4 (putih, abu-abu, coklat, dan kuning) Warna putih diberikan nilai 0 Warna abu-abu diberikan nilai 1 Warna coklat diberikan warna 2 Warna kuning diberikan nilai 3 Dibentuk matriks 4 x 4 dengan nilai dari setiap cell adalah 0 Ilutrasi GLCM dengan arah 0 o
Matrix pada cell (0,0) bertambah 1 Matrix pada cell (0,2) bertambah 1 Matrix pada cell (3,3) bertambah 1 Ilutrasi GLCM dengan arah 0 o (cont)
Hasil Ilustrasi GLCM dengan arah 0 o (cont)
Menggunakan GLCM sebagai input Terdiri dari contrast, correlation, homogeneity, dan energy Nilai baris didefinisikan sebagai i Nilai kolom didefinisikan dengan j P(i,j) adalah nilai GLCM pada baris ke-i dan kolom ke-j Texture Analysis
Texture Analysis (cont)
Hu Moment hanya mengidentifikasi nilai 0 dan 1 Maka pixel kulit akan diberikan nilai 1 dan pixel nonkulit akan diberikan nilai 0 Pasangan pq yang dibutuhkan adalah 20, 02, 11, 12, 21, 30, 03 Langkah pertama adalah mencari nilai centroid yaitu i dan j Kemudian dimasukkan ke dalam rumus-rumus sebagai berikut: Konsep Hu Moment
φ 1 = n 20 + n 02 φ 2 = (n 20 n 02 ) 2 +4n 11 2 φ 3 = (n 30 3n 12 ) 2 +(3n 21 n 03 ) 2 φ 4 = (n 30 + n 12 ) 2 +(n 21 + n 03 ) 2 φ 5 = n 30 3n 12 n 30 + n 12 [(n 30 + n 12 ) 2 3 n 21 + n 03 2 ] + (3n 21 n 03 )(n 21 + n 03 [3 n 30 + n 12 2 n 21 + n 03 2 ]) φ 6 = n 20 n 02 [(n 30 + n 12 ) 2 n 21 + n 03 2 ] + 4n 11 (n 30 + n 12 )(n 21 + n 03 ) φ 7 = 3n 21 n 03 n 30 + n 12 [(n 30 + n 12 ) 2 3 n 21 + n 03 2 ] (n 30 3n 12 )(n 21 + n 03 )[3 n 30 + n 12 2 n 21 + n 03 2 ]) 7 Hu Moment
Jenis data Jumlah data Total Porno Tidak porno Training 1000 1000 2000 Testing 547 551 1098 Total 1547 1551 3098 Pengumpulan Data / Citra
Tujuan pembuatan aplikasi berbasis desktop adalah untuk mengumpulkan fitur dari training data Kumpulan nilai dari fitur ini kemudian diproses hingga membentuk model yang digunakan oleh LibSVM untuk memprediksi Desain Aplikasi Pembuatan Model Berbasis Desktop
Perolehan inputan berupa direktori dari gambar yang akan diekstrak Inisiasi semua citra yang terdapat pada direktori dan membuat file baru yang akan diisi oleh fitur hasil ekstraksi Inisiasi citra yang akan diproses Application Workflow
Inisiasi citra Pengubahan resolusi menjadi 256 x 256 pixel Skin detection Ekstraksi fitur skin count dan skin percentage Konversi citra ke grayscale Application Workflow (cont)
Pembentukan GLCM Ekstraksi fitur contrast, correlation, homogeneity, dan energy Ekstraksi 7 Hu Moment Pembentukan file training.txt Application Workflow (cont)
Validasi inputan url Ekstraksi 13 fitur Komputasi SVM Web Service Workflow
Perolehan nilai 13 fitur Perolehan file range dan training.txt.scale.model Scaling terhadap nilai fitur Hasil prediksi sistem Workflow Komputasi SVM
Web Service build web WEB-INF classes range Training.txt.scale. model code Server Web Service Deployment
deployment Network Client Serv er «executionenvironment» PornImageDetectionWS wsdl Jaringan (LAN, WAN, Internet) «executionenvironment» Client Application Soap Code Deployment Diagram (Jaringan)
Spesifikasi Detail Spesifikasi Komputer Processor Intel Core i5 2450M @ 2.50 GHz personal RAM 2048 MB Sistem Operasi Windows 7 Ultimate Library Komputasi SVM LibSVM Perangkat Lunak Infrastruktur Jaringan Face detection Jon s Java Image Library Java Development Kit jdk 1.7 (JDK) Editor Netbeans 7.4 Java Web Service Server GlassFish 4.0 Jenis Koneksi Konfigurasi Proxy Bandwidth Proxy berautentikasi proxy.its.ac.id:8080 100 MBps Lingkungan Implementasi
Kode Citra Citra Hasil Skin Detection Pengujian Kode Skin Detection
Kode Citra Citra Hasil Skin Detection Pengujian Kode Untuk Mengkonversi Citra Menjadi Grayscale
Kode Citra Citra Hasil Skin Detection Pengujian Kode Image Zoning
Pembuatan File training.txt dan File range
Pembuatan File training.txt.scale dan File training.txt.scale.model
Agar terbentuk model yang paling optimal untuk melakukan prediksi maka pemilihan kombinasi nilai fitur dilakukan. Hal ini dilakukan dengan menggunakan algoritma Grid Search dengan bantuan file grid.py dari LibSVM Pemrosesan grid.py menghasilkan nilai C = 128.0 dan γ = 2.0 Pemilihan Parameter SVM
Informasi Isi Keterangan Link wsdl Method http://<nama domain>/pornima gedetectionws/p ornimagedetectio nwsservice?wsd l checkimagestring ([parameter]) Link ini perlu diinputkan dapat menggunakan fungsi SOAP [parameter] diganti dengan variabel bertipe array dengan isi sesuai dengan parameter yang didefinisikan Parameter imageurl Adalah parameter yang berfungsi untuk menunjukkan url dari citra yang akan diuji Parameter Penggunaan Web Service
Pengujian Citra Non Pornografi dengan Hasil Benar
Pengujian Citra Non Pornografi dengan Hasil Benar (cont)
Pengujian Citra Pornografi dengan Hasil Benar
Pengujian Citra Pornografi dengan Hasil Benar (cont)
Pengujian Citra Non Pornogafi dengan Hasil Salah
Pengujian Citra Pornogafi dengan Hasil Salah
Terprediksi BENAR Terprediksi SALAH Analisis bentuk berhasil dalam kasus ini karena citra yang terprediksi benar 100% areanya memiliki pixel kulit Namun analisis bentuk ternyata masih menganggap adanya retakan termasuk ke dalam citra yang memiliki konten pornografi Analisis Keberhasilan dan Kegagalan Sistem dalam Memprediksi
Terprediksi SALAH Analisis warna dan bentuk masih menganggap adanya mode wajah penuh sebagai citra yang memiliki konten pornorgafi Analisis Keberhasilan dan Kegagalan Sistem dalam Memprediksi
Terprediksi SALAH Terprediksi BENAR Sistem belum mampu mendeteksi adanya konten pornorgafi dengan skala kecil pada citra Analisis Keberhasilan dan Kegagalan Sistem dalam Memprediksi (cont)
Prediksi Porno Tidak porno Total Aktual Porno 512 35 547 Tidak porno 171 380 551 Total 683 415 1098 Analisis ROC
Variabel Nilai Accuracy 0.812 Sensitivity 0.749 Specificity 0.916 FPR 0.084 FNR 0.251 PPV 0.936 NPV 0.689 Analisis ROC (cont)
Menggunakan library bernama Jon s Java Image Library (JJIL) Jika citra terdeteksi memiliki konten pornografi maka diterapkan face detection Jika area wajah ditemukan dan persentasenya terhadap luas keseluruhan citra lebih dari 50% maka citra tidak memiliki konten pornografi Penerapan face detection untuk Optimasi Performa
Contoh penerapan face detection
Variabel Nilai Accuracy 0.878 Sensitivity 0.838 Specificity 0.928 FPR 0.072 FNR 0.162 PPV 0.936 NPV 0.820 Analisis ROC Setelah Penerapan face detection
No Resolusi Size (KB) User Sample Avg (ms) Err (%) 1 320 x 400 88.5 1 1 1368 0.00 2 320 x 400 88.5 10 100 9202 0.00 3 320 x 400 88.5 30 300 26881 0.00 4 320 x 400 88.5 50 500 30482 20.00 No Resolusi Size (KB) User Sample Avg (ms) Err (%) 1 1960 x 1307 276 5 150 9391 0.00 2 1960 x 1307 276 30 30 30479 0.00 3 1960 x 1307 276 30 30 30479 0.00 4 1960 x 1307 276 30 150 36849 30.67 Analisis Performa Web Service
Analisis Performa Web Service (cont)
Didapatkan 2000 training data yang terdiri dari 1000 citra yang memiliki konten pornografi dan 100 citra yang tidak memiliki konten pornografi. Untuk testing, didapatkan 1098 citra yang terdiri dari 547 citra yang memiliki konten pornografi dan 551 citra yang tidak memiliki konten pornografi. Metode image zoning dengan fitur skin count, skin percentage, contrast, correlation, energy, homogeneity, dan 7 Hu Moment dengan algoritma pembelajaran (classifier) Support Vector Machine (SVM) dapat digunakan untuk mendeteksi adanya konten pornografi pada citra dengan baik. Terbukti dengan tingkat akurasi sebesar 0.812, sensitivity sebesar 0.749, specificity sebesar 0.916, FPR sebesar 0.084, FNR sebesar 0.251, PPV sebesar 0.936, dan NPV sebesar 0.689. Kesimpulan
Penerapan face detection mampu meningkatkan performa web service dalam mendeteksi konten pornografi pada citra dengan hasil akhir accuracy sebesar 0.876, sensitivity sebesar 0.838, specificity sebesar 0.928, FPR sebesar 0.072, FNR sebesar 0.162, PPV sebesar 0.936, dan NPV sebesar 0.820. Performa web service akan bagus diimplementasikan pada max heap 512 MB jika jumlah user kurang dari 50 dan dengan jumlah sample sebanyak 500 buah untuk resolusi sedang. Sedangkan untuk resolusi tinggi, performa web service akan bagus diimplementasikan dengan jumlah user kurang dari 30 buah dan sample sebanyak150 buah. Kesimpulan (cont)
Manusia terdiri dari berbagai macam anggota tubuh, seperti kepala, tangan, badan, kaki, dan lain sebagainya. Biasanya pendekatan pornografi mengarah kepada bagian vital manusia. Untuk itu, sebaiknya metode pendeteksian konten pornografi pada citra seharusnya adalah metode yang mampu untuk mendeteksi adanya bagian vital tersebut pada citra. Pembuatan sistem mandiri yang mampu untuk melakukan pembaruan secara berkala terhadap database citra. Adanya studi khusus yang mampu untuk mengetahui algoritma pembelajaran dan library yang paling efektif dan efisien untuk diterapkan pada sistem pendeteksi konten pornografi pada citra. Saran
LIVE DEMO