Perkembangan teknologi komunikasi dan informasi memiliki dampak positif dan negatif. Salah satu dampak negatifnya adalah penyebaran gambar-gambar yang tidak pantas tanpa terkendali sehingga dapat diakses oleh pengguna di bawah umur. Dengan memanfaatkan pengolahan citra digital dan jaringan saraf tiruan mengenali dan mendeteksi sebuah citra yang memiliki nilai pornografi atau tidak. Pada pengolahan citra digunakan metode deteksi tepi (edge detection) dengan operator sobel, pendeteksian ini menggunakan pendekatan dua objek setengah lingkaran dan lingkaran didalamnya yang memiliki jarak berdekatan yang kemudian diubah dalam bentuk vektor untuk diolah menggunakan Jaringan Saraf Tiruan dengan algoritma LVQ(Learning Vector Quantization) untuk mengenali pola tersebut. Penelitian ini dilakukan dengan menggunakan software Matlab 7.1 yang memiliki toolbox Image Processing dan Neural Network. Dalam Paper ini menerangkan langkah awal dari pengenalan dan peneteksian pornografi dari pola yang terbentuk hasil deteksi tepi. Penelitian ini masih dapat dikembangkan dengan berbagai metode lain ataupun menggabungkan beberapa metode untuk pengoptimasian hasil deteksi. Pendeteksian pornografi dapat diaplikasikan lebih lanjut dalam pemfilteran pada proses upload citra ke server atau dapat digunakan pada aplikasi desktop untuk pencegahan citra pornografi masuk dalam komputer yang digunakan.
Source Code Matlab untuk Pelatihan:
data = [A1 A2 A3 A4 A5 A6 A7 A8 A9 B1 B2];
Target = [1 1 1 2 2 2 3 3 3 3 3];% 1:Porno, 2:porno/mendekati porno, 3:bukan porno
T = ind2vec(Target);
kelas=size(full(T),1);%mencari jumlah kelas
neuron=7;%jumlah neuron
%bentuk jaringan LVQ
jst=newlvq([min max],neuron,(1/kelas)*ones(1,kelas));
%Pengaturan Nilai epoch, Nilai hasil(goal) yang diinginkan
jst.trainParam.epochs =1000; %nilai epoch maksimal yang di inginkan
jst.trainParam.goal =1e-4; %nilai hasil akhir yang diinginkan
%Pembelajaran
jst=train(jst,data,T);
%Nilai bobot dan bias
BobotAkhir_Input =jst.IW{1,1};
BobotAkhir_Bias_Input =jst.b{1,1};
BobotAkhir_Lapisan =jst.LW{2,1};
BobotAkhir_Bias_Lapisan =jst.b{2,1};
grid;
NB: Data A1 A2 dan sterusnya adalah data yang akan dikenali berupa matrix vector kolom (matrix 1*5000).
Sorce Code Matlab Untuk Processing dan Pendeteksian:
%=======================================%
% Program ini untuk mendeteksi pornografi %
% dengan Jaringan Saraf Tiruan menggunakan %
% metode Learning Vector Quantization(LVQ) %
% %
% Deteksi PornoGrafi, Oleh Rifqi Imanto %
%======================================%
clc
echo off
data=double(0);
porn=double(0);
datavec=double(0);
loop=0;
gambar = imread('D:\PROJECT\MatLAB\imageprocessing\2.jpg');%Ambil Gambar
gambar = rgb2gray(gambar);%ubah gambar ke grayscale
%'deteksi tepi tipe sobel'
tepi = edge(gambar,'sobel',0.08);
u_tepi=size(tepi);%mencari ukuran matrix(gambar)
%menentukan luas matrix untuk wadah gambar
bag=u_tepi(1)/int16(50);
kur=(bag*50)-u_tepi(1);
if kur < 0 pjgX=(bag+1)*50; else pjgX=bag*50; end bag1=u_tepi(2)/int16(100); kur1=(bag1*100)-u_tepi(2); if kur1 < 0 pjgY=(bag1+1)*100; else pjgY=bag1*100; end datagam(1:pjgX,1:pjgY)=0; %ciptakan matrix wadah yang bisa dibagi dengan 50*100 datagam(1:u_tepi(1),1:u_tepi(2))=tepi(1:u_tepi(1),1:u_tepi(2));%masukkan gambar ke matrix wadah %------- %cari dalam gambar dengan frame100*50 tepibawmax=(pjgX/50); tepikanmax=(pjgY/100); batbaw=1; for vert = 1:tepibawmax batbaw_ak=batbaw+49; batkan=1; for horz = 1:tepikanmax batkan_ak=batkan+99; data=datagam(batbaw:batbaw_ak,batkan:batkan_ak); %'ubah 'data' matrix m*n(100*50) jadi 1 kolom' i=0; for m = 1:50 for n = 1:100 i=i+1; datavec(i,1) = data(m,n); end end %-------------------------------------------- %'Pengujian dengan JST LVQ' hasil=sim(jst,datavec); hasil=vec2ind(hasil); if hasil==1 | hasil==2 porn=porn+1; end %------------------------- loop=loop+1; batkan=batkan+100; end batbaw=batbaw+50; end
Sumber: http://www.rifqi.web.ugm.ac.id/tulisan/deteksi-pornografi.php