Content uploaded by Hapnes Toba
Author content
All content in this area was uploaded by Hapnes Toba on Apr 10, 2015
Content may be subject to copyright.
PENGEMBANGAN BASISDATA PENYAKIT KULIT BERBASIS
COMPUTER VISION MELALUI DETEKSI TEPI
Hapnes Toba1, Antonius Hendrik2, Riskadewi3
1Program Studi D3 Teknik Informatika, 2,3Jurusan S1 Teknik Informatika
Fakultas Teknologi Informasi, Universitas Kristen Maranatha
Jl. Suria Sumantri No. 65, Bandung 40164
1hapnestoba@it.maranatha.edu, 2,3antonriska@live.com
Abstrak
Penglihatan manusia dapat melakukan hal-hal yang menakjubkan seperti mengenali objek, navigasi dalam
menghindari rintangan, ataupun mengenali mood di dalam sebuah adegan. Lain halnya dengan komputer yang
memerlukan sensor guna menerima persepsi dari lingkungan dan program komputer yang berfungsi sebagai
pemroses data dari sensor tersebut. Computer vision merupakan sebuah konsep yang memanfaatkan teknik-
teknik pemrosesan citra untuk membuat keputusan berdasarkan citra yang didapat dari sensor. Dalam penelitian
ini dikembangkan sebuah basisdata yang terintegrasi dengan kamera sebagai sensor untuk mengenali berbagai
penyakit kulit melalui deteksi tepi. Untuk mendeteksi tepi dari satu atau lebih objek, digunakan operator Canny,
Prewitt, Sobel, dan Roberts. Hasil deteksi tepi tersebut kemudian akan dicocokan dengan fitur-fitur yang
tersimpan dalam basisdata untuk menentukan penyakit kulit yang teridentifikasi. Perangkat lunak untuk deteksi
tepi diimplementasikan dengan Microsoft Visual Studio 2010 dan OpenCV 2.4. Hasil penelitian menunjukkan
bahwa untuk dapat mengenali penyakit kulit secara lebih baik diperlukan pengurangan noise dengan
menggunakan filter Gaussian dan pemecahan (split) citra warna ke dalam masing-masing saluran warna (merah,
hijau, dan biru) dengan ukuran 8 bit. Hasil evaluasi pencocokan citra dengan metode cross-correlation
menunjukkan bahwa operator Canny adalah operator yang paling memenuhi kriteria penandaan tepi, yaitu:
tingkat kesalahan yang rendah, lokasi yang benar, dan waktu respon yang minimum.
Kata kunci : pengolahan citra, computer vision, pengenalan obyek, deteksi tepi, penyakit kulit, OpenCV
1. Pendahuluan
Penglihatan manusia dapat melakukan hal-hal
yang menakjubkan seperti mengenali orang/objek,
navigasi dalam menghindari rintangan, ataupun
mengenali mood di dalam sebuah adegan. Lain
halnya dengan mesin, yang dalam konteks ini adalah
komputer. Untuk melakukan mimikri terhadap
penglihatan manusia, komputer memerlukan sensor
yang berfungsi layaknya mata pada manusia dan
program komputer yang berfungsi sebagai pemroses
data dari sensor. Computer vision merupakan ilmu
yang menggunakan image processing untuk
membuat keputusan berdasarkan citra yang didapat
dari sensor [5, 9, 10]. Dengan kata lain, computer
vision bertujuan untuk membangun sebuah mesin
pandai yang dapat “melihat”. Kerangka kerja umum
yang biasa dilakukan dalam computer vision adalah:
proses akuisisi citra, pra pemrosesan, ekstraksi fitur,
deteksi atau segmentasi citra, pemrosesan tingkat
tinggi, dan terakhir pengambilan keputusan.
Tahap akuisisi citra adalah tahap untuk
mendapatkan citra dari sensor. Tahap pra
pemrosesan adalah tahap pemrosesan awal terhadap
citra untuk memperbaiki kualitas citra, misalnya
pengurangan noise (informasi yang salah pada citra)
dan contrast enhancement (perbaikan kontras pada
citra). Tahap ektraksi fitur adalah tahap ekstraksi
fitur dari citra, misalnya titik, garis, dan tepi (edge).
Tahap deteksi/segmentasi adalah tahap mendeteksi
perbedaan kecerahan pada citra untuk mendapatkan
lokasi atau posisi dari suatu objek. Kemudian,
dilakukan pengenalan bentuk berdasarkan kriteria
dan deskripsi objek yang telah ditentukan
sebelumnya. Pemrosesan tingkat tinggi adalah tahap
pemrosesan terhadap sebagian kecil dari data,
misalnya sebagian dari titik dalam bagian citra
tertentu. Contoh pemrosesan tingkat tinggi adalah
image recognition (pengenalan citra) dan image
registration (registrasi citra). Pengambilan
keputusan adalah tahap dimana pengambilan
keputusan akhir dibutuhkan pada aplikasi tertentu,
misalnya pengambilan keputusan lulus/tidak lulus
pada aplikasi otomatisasi inspeksi (pass/fail on
automatic inspection applications) [5, 9, 10].
Terdapat beberapa penelitian computer vision
untuk mendeteksi penyakit kulit, misalnya untuk
mendeteksi penyakit dermatitis, eczema, dan
utricaria. Namun pada umumnya metode yang
digunakan adalah texture features yang merupakan
metode analisis tekstur berbasis statistik [2, 6].
Masih sedikit sekali penelitian yang memanfaatkan
deteksi tepi sebagai fitur pengenalan. Menurut
hipotesis kami, deteksi tepi dapat dimanfaatkan
untuk mengenali bagian kulit yang sehat dan tidak
setelah melalui pemrosesan citra. Dalam penelitian
ini ditekankan pada proses untuk menemukan
metode akuisisi citra yang baik sampai dengan
menghasilkan kumpulan fitur untuk memperoleh
operator deteksi tepi dengan performa terbaik
sehingga dapat dipakai untuk mengenali obyek.
Permasalahan yang akan ditelaah dalam
penelitian ini adalah sebagai berikut:
1. Prosedur apa saja yang perlu dilakukan untuk
mendapatkan citra digital yang dapat diolah
untuk computer vision?
2. Prosedur pra-pemrosesan apa saja yang harus
dilakukan pada citra digital?
3. Hal apa saja yang dapat menentukan performa
operator deteksi tepi?
4. Bagaimana membangun basis data citra untuk
penyakit kulit?
Kerangka kerja dalam penelitian ini dapat
dilihat Gambar 1. Proses dalam penelitian adalah:
mengambil citra dari webcam, pra-pemrosesan, dan
mendeteksi tepi dari citra. Mula-mula citra diambil
dari webcam. Kemudian akan dilakukan pra-
pemrosesan, yaitu pengurangan noise. Tahap
selanjutnya adalah proses deteksi tepi pada citra
tersebut dengan menggunakan operator Sobel,
Prewit, dan Roberts. Hasil dari masing-masing
operator akan dibandingkan untuk menentukan
operator mana yang paling memenuhi kriteria
penandaan tepi untuk mengenali penyakit kulit.
Setelah itu akan dibuat basis data citra yang
berisi jenis penyakit dan hasil deteksi tepi dengan
operator yang optimal. Basisdata citra berisi
sejumlah citra penyakit kulit yang diambil melalui
mesin pencari citra dari Google untuk 16 macam
penyakit kulit sebagaimana diberikan pada Gambar
1. Untuk setiap penyakit diambil 30 citra dengan
resolusi minimal 800x600 dot-per-inch (dpi).
2. Operator Deteksi Tepi dan Perangkat
Gradien dari sebuah fungsi citra adalah dasar
dari banyak operator deteksi tepi klasik. Pada
prakteknya, operator deteksi tepi hanya berbeda
pada tipe filter yang dipakai untuk mengestimasi
komponen gradien dan cara mengkombinasikan
komponen-komponen tersebut. Kekuatan dari titik-
titik tepi dan arah dari tepi dimuat pada fungsi
gradien dan dapat dengan mudah dihitung dari
komponen berarah.
2.1 Operator Prewitt dan Sobel
Operator Prewitt dan Sobel menggunakan filter
linear yang memperluas ketiga baris dan kolom yang
berdekatan untuk melawan sensitifitas noise dari
operator gradien sederhana (satu garis/kolom) [2, 7].
Operator Prewitt menggunakan filter pada
persamaan 1 untuk menghitung rata-rata komponen
gradien yang melewati sepanjang baris atau kolom
yang bertetangga. 茎Px melakukan penghalusan
(menggunakan filter kotak) terhadap tiga baris
sebelum menghitung gradien x, dan 茎Py melakukan
penghalusan terhadap tiga kolom sebelum
menghitung gradien y.
Filter untuk operator Sobel hampir identik,
tetapi bagian penghalusan menetapkan bobot yang
lebih tinggi untuk baris dan kolom yang berada di
tengah. Operator Sobel menggunakan filter pada
persamaan 2.
2.2 Operator Roberts
Operator Roberts merupakan filter yang paling
sederhana dan paling tua. Operator Roberts
menggunakan filter matriks berukuran 2x2 untuk
mengestimasikan arah gradien sepanjang diagonal
citra. Operator Roberts menggunakan filter pada
persamaan 3 [2, 7].
Gambar 1. Metodologi Penelitian dan Daftar Penyakit Kulit
(1)
(2)
(3)
Filter Roberts dapat merespons tepi diagonal
tetapi tidak memilih orientasi, kedua filter
menunjukkan hasil yang kuat, yang melingkupi
sudut dengan jangkauan yang luas. Kekuatan tepi
dihitung dengan mengukur panjang vektor 2D yang
dihasilkan, serupa dengan perhitungan gradien,
tetapi dengan komponennya dirotasikan 45o.
2.3 Operator Canny
Operator Canny adalah operator deteksi tepi
yang menggunakan algoritma banyak tahap (multi-
stage) untuk mendeteksi banyak tepi dari suatu citra.
Tahapan umum dalam algoritma Canny meliputi:
pengurangan noise, mencari intensitas gradien dari
citra, menerapkan non-maximum suppression, dan
menelusuri tepi pada citra dan menentukan ambang
histeresis (hysteresis thresholding) [2, 7].
2.4 OpenCV
OpenCV (Open Source Computer Vision)
adalah sebuah pustaka perangkat lunak computer
vision dan machine learning yang bersifat terbuka
[8]. OpenCV dirancang sebagai infrastruktur umum
untuk aplikasi computer vision dan untuk
mempercepat penggunaan persepsi mesin (machine
perception) dalam produk komersial. OpenCV
berlisensi BSD (Berkeley Software Distribution),
sehingga memudahkan bagi pelaku bisnis dan
akademisi untuk memanfaatkan dan mengubah
kode.
Pustaka OpenCV memiliki lebih dari 2.500
algoritma optimal, yang mencakup sekumpulan
algoritma computer vision dan pembelajaran mesin
bertipe klasik maupun terkini. Algoritma-algoritma
ini dapat digunakan untuk berbagai proses dalam
computer vision, seperti:
mendeteksi dan mengenali wajah;
mengidentifikasi objek;
mengklasifikasikan tindakan manusia dalam
video;
melacak gerakan kamera;
melacak obyek yang bergerak;
ekstrak model 3D dari obyek;
menghasilkan 3D point clouds dari kamera
stereo;
menggabungkan citra untuk menghasilkan citra
dengan resolusi tinggi dari seluruh adegan;
menemukan citra yang sama dari basisdata citra;
menghapus mata merah dari citra yang diambil
menggunakan lampu kilat;
mengikuti gerakan mata;
mengenali pemandangan dan membuat penanda
(marker) untuk melapisi (overlay) penanda
dengan augmented reality, dan lain-lain.
3. Perancangan Sistem
Perancangan, skenario dan pemodelan sistem
dapat dilihat pada diagram use case dan diagram
kelas pada Gambar 2(a) dan 2(b). Skenario
pemanfaatan sistem secara garis besar adalah
sebagai berikut:
3.1 Mengambil Citra
Fitur ini ditujukan untuk mengambil citra
melalui webcam yang difungsikan sebagai sensor,
layaknya mata pada manusia. Hasil citra di-capture
tersebut akan dapat disimpan dalam format jpeg dan
dapat dicocokkan dengan data penyakit pada
basisdata. Lebih jauh, fitur ini di masa depan
diharapkan dapat dijadikan juga sebagai cara untuk
mendapatkan citra, dan menggantikan peran citra
statis yang digunakan dalam penelitian kali ini.
3.2 Deteksi Tepi
Fitur ini ditujukan untuk melakukan deteksi
tepi berdasarkan masukan yang diterima melalui
webcam atau dari gambar statis. Kerangka kerja
computer vision secara lengkap dilakukan dalam
sub-sistem ini, yaitu pra-pemrosesan, pemilihan
filter deteksi tepi (bandingkan juga dengan
penjelasan pada bagian 2 di atas), penggabungan
kembali saluran warna dari hasil deteksi tepi, serta
menampilkan hasilnya.
Gambar 2. Skenario Sistem (a) dan Diagram Kelas (b)
Tabel 1. Contoh metadata penyakit kulit dalam basisdata
Disease
Name Age Gender History Site Leison Surface Color Itchiness
Eczema infant both family hair line, eyes region,
nose-cheek region, mouth
region, jaw region, neck
region, elbow flexture,
hand, knee, feet
scaly brown,
red itchy
Moles all both personal all, except nail flat, raised solid black,
blue,
brown,
red,
white
non-itchy
Shingles
(Herpes
Zoster)
all both personal hair line, eyes region,
nose-cheek region fluid filled crust itchy
3.3 Menyimpan ke Basisdata
Fitur ini ditujukan untuk melakukan pengayaan
data penyakit kulit di dalam basisdata. Pengguna
akan dapat menyimpan informasi sesuai hasil
operator deteksi tepi ditambah dengan metadata
(lihat juga penjelasan pada bagian 3.4) tentang
penyakit kulit yang dimaksudkan dalam citra.
Contoh tampilan deteksi tepi dan masukan metadata
dapat dilihat pada Lampiran A dan B.
3.4 Menambahkan Jenis Penyakit
Fitur ini ditujukan untuk mengisi metadata
penting terkait suatu penyakit kulit, yang akan
disimpan bersama dengan data citra yang diperoleh
pada bagian 3.3. Berbekal pada metadata ini, deteksi
penyakit kulit diharapkan akan lebih akurat dalam
operasional di masa mendatang, karena akan dapat
difungsikan sebagai tabel keputusan. Adapun contoh
metadata yang dimaksudkan untuk tiga penyakit
kulit dapat dilihat pada Tabel 1 [1, 4].
4. Eksperimen Performa
Eksperimen bertujuan menguji basis data citra
yang dihasilkan oleh masing-masing operator
deteksi tepi. Eksperimen dilakukan dengan
membandingkan hasil deteksi tepi citra dalam
basisdata citra dengan hasil deteksi tepi dari sample
citra. Citra yang dipakai untuk eksperimen beserta
jenis modifikasinya dapat dilihat pada Tabel 2.
Dalam eksperimen, modifikasi citra diasumsikan
sebagai noise yang berasal dari citra sesungguhnya
yang diambil dari kamera. Perbandingan dilakukan
dengan metode Cross-Correlation [3].
Cross-Correlation adalah ukuran kemiripan
dari dua buah gelombang (waveform) sebagai fungsi
time lag yang diaplikasikan pada salah satu
gelombang. Nama lain dari metode Cross-
Correlation adalah Sliding Dot Product atau Sliding
Inner Product.
Tabel 2. Hasil pengujian dengan Cross-Correlation pada basisdata untuk 10 penyakit kulit pada setiap operator
No. Nama Penyakit Modifikasi Citra Canny Prewitt Roberts Sobel
1. Acne = jerawat Monochromatic noise 95,13% 20,50% 16,34% 2,00%
2. Age or Liver Spots = bintik
karena usia Exposure 88,74% 23,50% 16,07% 2,04%
3. Athlete’s Foot = jamur pada
kaki Blur 85,64% 33,67% 25,13% 4,30%
4. Cold Sores (Fever Blisters) =
sariawan
Crop 87,02% 23,05% 16,39% 3,12%
5. Eczema = eksim Distort 77,03% 24,02% 16,48% 2,66%
6. Hives (Urticaria) = gatal-
gatal Gray scale 99,42% 24,35% 16,57% 3,75%
7. Melasma (Pregnancy Mask)
= guratan pada perut saat
mengandung
Invert color 84,48% 23,05% 17,73% 2,26%
8. Moles = tahi lalat Colored noise 74,19% 20,83% 15,23% 2,34%
9. Pityriasis Rosea/Rosacea =
kulit kemerahan Contrast increasing 87,87% 18,10% 14,54% 2,11%
10. Razor Bump = kerusakan
kulit karena mencukur Sharpen 79,20% 19,59% 16,00% 2,08%
Sebagai fungsi diskret, Cross-Correlation
didefinisikan dalam persamaan 4.
Dimana f dan g adalah fungsi yang bertipe real, yang
memiliki perbedaan hanya pada pergeseran
sepanjang sumbu x. Cross-Correlation dipakai untuk
mencari seberapa banyak g yang harus berpindah di
sepanjang sumbu x agar f dan g menjadi identik.
Rumus di atas pada dasarnya menggeser fungsi g
sepanjang sumbu x, kemudian menghitung nilai
integral untuk setiap operasi perkalian pada setiap
piksel. Jika terjadi kecocokan (match), nilai 血*訣
akan mencapai nilai maksimum, yaitu 100%.
5. Evaluasi Performa
Dari hasil pada Tabel 2, dihasilkan beberapa
pembelajaran sebagai berikut:
Sesuai dengan kompleksitas dan proses yang
ada, algoritma Canny menghasilkan kecocokan
yang paling tinggi, dan Sobel terendah.
Perbedaan nilai akurasi antar penyakit tidak
berbeda jauh untuk setiap operator. Hal ini
mengindikasikan bahwa karakteristik 'tepi' antar
penyakit tidak berbeda secara signifikan.
Karakteristik penyakit kulit dalam basisdata
didominasi oleh penyakit yang mementingkan
perubahan warna dibandingkan bentuk, seperti:
bintik-bintik kecil yang memiliki tepi sangat
mirip antara satu dengan lainnya, sehingga sulit
dideteksi dengan algoritma deteksi tepi dalam
satu tahap. Menurut analisis kami, inilah salah
satu alasan yang menyebabkan algoritma Canny
berhasil mendapatkan kecocokan lebih baik
dibanding algoritma lainnya.
Karakteristik umum dimiliki paling nyata pada
penyakit 'hives', hal ini ditunjukkan dengan
kenyataan bahwa dari 10 penyakit yang diuji
pada Tabel 2, ada 8 penyakit yang mengarah
pada 'hives', dan hanya 2 penyakit yang tepat
dideteksi, yaitu: 'age spot', dan 'hives'.
6. Kesimpulan dan Keberlanjutan
Kesimpulan yang dapat ditarik melalui
penelitian ini adalah sebagai berikut:
1. Penelitian ini telah menghasilkan sistem yang
bertujuan untuk menambahkan pengetahuan dan
pengolahan citra hasil deteksi tepi ke dalam
basisdata citra.
2. Sistem telah dapat mengintegrasikan perangkat
lunak dan keras (webcam) yang bersifat generik,
tidak bergantung pada jenis ataupun driver
tertentu.
3. Basisdata citra untuk penyakit kulit telah
berhasil dibangun dengan menggunakan sistem
basisdata MySQL. Basisdata ini berisi
pengetahuan (metadata) tentang penyakit kulit
dan pengolahan citra hasil deteksi tepi.
4. Prosedur pra-pemrosesan yang perlu dilakukan
pada pemrosesan citra digital adalah:
a. Pengurangan noise dengan menggunakan
filter Gaussian;
b. Pemecahan (split) citra warna ke dalam
setiap komponen warna (merah, hijau, dan
biru) masing-masing dengan ukuran 8 bit.
5. Hal-hal yang dapat menentukan performa
operator deteksi tepi adalah tingkat kekaburan
citra dan pengurangan noise.
6. Operator Canny adalah operator yang paling
memenuhi kriteria penandaan tepi, yaitu: tingkat
kesalahan yang rendah, lokasi yang benar, dan
respon minimum, serta memiliki tingkat
kecocokan paling baik.
Saran pengembangan untuk tahap penelitian
selanjutnya adalah:
1. Penggunaan kamera yang memiliki resolusi
yang lebih baik akan menghasilkan citra yang
memiliki ketajaman yang lebih baik.
2. Memperkaya fitur deteksi tepi dengan fitur-fitur
kekontrasan serta warna untuk jenis-jenis
penyakit yang lebih mengedepankan perubahan
warna dibandingkan bentuk ataupun tekstur,
seperti: age/liver spot, hives, razor bump, dan
rosacea, sehingga dapat memperbaiki performa
pencocokan.
3. Penggunaan metode pencocokan yang mampu
mendeteksi key point interest.
Daftar Pustaka:
[1] Ashton, R. & Leppard, B., 2004,
Differential
Diagnosis in Dermatology 3rd ed.
, Abington:
Radcliffe Publishing Ltd.
[2] Bin, L. & Mehdi, S.Y., 2012,
Comparison for
Image Edge Detection Algorithms,
IOSR
Journal of Computer Engineering.
[3] Bracewell, R., 1965,
Pentagram Notation for
Cross Correlation,
The Fourier Transform and
Its Applications, New York: McGraw-Hill.
[4] Buxton, P.K, 2003, ABC of Dermatology 4
th
ed., London: BMJ Publishing Group.
[5] Forsyth, D.A. & Ponce, J., 2011,
Computer
Vision: A Modern Approach 2nd ed.,
Pearson
Education, Ltd.
[6] Mittra, A.K. & Parekh, R., 2011,
Automated
Detection of Skin Diseases Using
Texture
Features
, International Journal of Engineering
Science and Technology.
[7] Munir, R., 2004, Pengolahan Citra Digital
,
Bandung: Penerbit Informatika.
[8] OpenCV, 2012,
Open Source Computer
Vision, http://opencv.org/, di
akses: November
2013.
[9] Shapiro, L.G. & Stockman, G.C., 2001
,
Computer Vision, Prentice Hall
[10]
Szeliski, R., 2011,
Computer Vision:
Algorithms and Applications, Springer.
(4)
Lampiran
A. Contoh tampilan dalam sistem untuk hasil deteksi tepi pada penyakit kulit 'acne'.
B. Contoh tampilan untuk masukan metadata penyakit kulit.