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.
Gambaran Umum Sistem
Atribut Keterangan
Cara kerja Mendeteksi citra yang tersimpan dalam sebuah server dalam jaringan internet
Bentuk Web Service
Inputan Url citra
Output “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
Pemilihan Fitur
Metode Fitur Diselesaikan dengan
Analisis Warna Skin count Kode Perhitungan Skin
Count
Skin percentage Kode Perhitungan Skin
Percentage
Analisis Tekstur Contrast Kode Perhitungan
Contrast
Correlation Kode Perhitungan
Correlation
Homogeneity Kode Perhitungan
Homogeneity
Energy Kode Perhitungan
Energy
Analisis Bentuk 7 Hu Moment Kode Perhitungan 7 Hu
Metode Penyelesaian
Skin
Detection
cb = 128 − 0.169𝑅 − 0.332𝐺 + 0.500𝐵; cr = 128 + 0.500𝑅 − 0.419𝐺 − 0.081𝐵; if cb < 80 and cb > 120 and cr < 133 and cr > 173: set pixel to not skin;Ilustrasi
Image Zoning
pada zona 3
Ilustrasi
Image Zoning
seluruh zona (cont)
Konsep
Skin Count
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 Percentage
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
Gray Level
Co-Occurences Matrix
(GLCM)
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
Metode GLCM dengan arah 0, 45,
90, 135, 180, 225, 270, dan 315
• Arah 0o adalah ke kanan, 45o 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
Ilutrasi GLCM dengan arah 0
o
• 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
(cont)
Matrix pada cell (0,0) bertambah 1 Matrix pada cell (0,2) bertambah 1
Ilustrasi GLCM dengan arah 0
o
(cont)
Texture Analysis
• Menggunakan GLCM sebagai input
• Terdiri dari contrast, correlation, homogeneity, dan energy
• Nilai baris didefinisikan sebagai i
• Nilai kolom didefinisikan dengan j
Konsep
Hu Moment
• Hu Moment hanya mengidentifikasi nilai 0 dan 1
• Maka pixel kulit akan diberikan nilai 1 dan pixel non-kulit 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:
7 Hu Moment
𝜑1 = 𝑛20 + 𝑛02 𝜑2 = (𝑛20 − 𝑛02)2+4𝑛 112 𝜑3 = (𝑛30 − 3𝑛12)2+(3𝑛 21 − 𝑛03)2 𝜑4 = (𝑛30 + 𝑛12)2+(𝑛21 + 𝑛03)2 𝜑5 = 𝑛30 − 3𝑛12 𝑛30 + 𝑛12 [(𝑛30 + 𝑛12)2 − 3 𝑛21 + 𝑛03 2] + (3𝑛21 − 𝑛03)(𝑛21 + 𝑛03[3 𝑛30 + 𝑛12 2 − 𝑛21 + 𝑛03 2]) 𝜑6 = 𝑛20 − 𝑛02 [(𝑛30 + 𝑛12)2 − 𝑛21 + 𝑛03 2] + 4𝑛11(𝑛30 + 𝑛12)(𝑛21 + 𝑛03) 𝜑7 = 3𝑛21 − 𝑛03 𝑛30 + 𝑛12 [(𝑛30 + 𝑛12)2 − 3 𝑛21 + 𝑛03 2] − (𝑛30 − 3𝑛12)(𝑛21 + 𝑛03)[3 𝑛30 + 𝑛12 2 − 𝑛21 + 𝑛03 2])Pengumpulan Data / Citra
Jenis data Jumlah data TotalPorno Tidak porno
Training 1000 1000 2000
Testing 547 551 1098
Desain Aplikasi
Pembuatan Model
Berbasis Desktop
• 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
Application Workflow
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
Application Workflow
(cont)
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
Web Service Workflow
Validasi inputan url
Ekstraksi 13 fitur
Workflow
Komputasi SVM
Perolehan nilai 13 fitur
Perolehan file range dan training.txt.scale.model
Scaling terhadap nilai fitur
Server Web Service Deployment
Web Service build code WEB-INFweb classes range Training.txt.scale. modelDeployment Diagram
(Jaringan)
deployment Netw ork
Serv er Client «executionEnvironment» Client Application Soap Code Jaringan (LAN, WAN,
Internet)
«executionEnvironment»
PornImageDetectionWS w sdl
Lingkungan
Implementasi
Spesifikasi Detail Spesifikasi Komputer
personal
Processor Intel Core i5 2450M @ 2.50 GHz RAM 2048 MB
Sistem Operasi Windows 7 Ultimate
Library Komputasi SVM LibSVM
Face detection Jon’s Java Image Library
Perangkat Lunak
Java Development Kit
(JDK) jdk 1.7
Editor Netbeans 7.4 Java Web Service Server GlassFish 4.0
Infrastruktur Jaringan
Jenis Koneksi Proxy berautentikasi Konfigurasi Proxy proxy.its.ac.id:8080 Bandwidth 100 MBps
Pengujian Kode
Skin
Detection
Pengujian Kode Untuk
Mengkonversi Citra Menjadi
Grayscale
Pengujian Kode
Image
Zoning
Pembuatan File
training.txt
Pembuatan File
training.txt.scale
dan File
Pemilihan Parameter SVM
• 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
Parameter Penggunaan
Web Service
Informasi Isi Keterangan Link wsdl http://<nama domain>/PornIma geDetectionWS/P ornImageDetectio nWSService?wsd l
Link ini perlu diinputkan dapat menggunakan fungsi SOAP
Method checkImageString
([parameter]) [parameter] diganti dengan variabel bertipe arraydengan isi sesuai dengan parameter yang
didefinisikan
Parameter imageURL Adalah parameter yang berfungsi untuk
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
Analisis Keberhasilan dan Kegagalan
Sistem dalam Memprediksi
• 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
• Analisis warna dan bentuk masih menganggap adanya mode wajah penuh sebagai citra yang memiliki konten pornorgafi
Analisis Keberhasilan dan Kegagalan
Sistem dalam Memprediksi (cont)
• Sistem belum mampu mendeteksi adanya konten pornorgafi dengan skala kecil pada citra
Analisis ROC
Prediksi
Total
Porno Tidak porno
Aktual Porno 512 35 547
Tidak porno 171 380 551
Analisis ROC (cont)
Variabel Nilai Accuracy 0.812 Sensitivity 0.749 Specificity 0.916 FPR 0.084 FNR 0.251 PPV 0.936 NPV 0.689Penerapan
face detection
untuk Optimasi Performa
• 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
Contoh penerapan
face
Analisis ROC Setelah
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 Performa
Web
Service
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
Kesimpulan
• 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 (cont)
• 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.
Saran
• 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