About Global Documents
Global Documents provides you with documents from around the globe on a variety of topics for your enjoyment.
Global Documents utilizes edocr for all its document needs due to edocr's wonderful content features. Thousands of professionals and businesses around the globe publish marketing, sales, operations, customer service and financial documents making it easier for prospects and customers to find content.
PROYEK AKHIR
SISTEM PENGAMAN PINTU DENGAN MENGENALI
CIRI-CIRI WAJAH SESEORANG
TITO ROOSENO
NRP. 7104 030 057
Dosen Pembimbing:
ERU PUSPITA, ST, M.Kom
NIP. 132 127 285
RONNY SUSETYOKO, S.Si, M.Si
NIP. 132 127 287
JURUSAN TEKNIK ELEKTRONIKA
POLITEKNIK ELEKTRONIKA NEGERI SURABAYA
SURABAYA
2007
PROYEK AKHIR
SISTEM PENGAMAN PINTU DENGAN MENGENALI
CIRI – CIRI WAJAH SESEORANG
TITO ROOSENO
NRP. 7104030057
Dosen Pembimbing:
ERU PUSPITA, ST, M.Kom
NIP. 132.127.285
RONNY SUSETYOKO, S.Si, M.Si
NIP. 132.127.287
JURUSAN TEKNIK ELEKTRONIKA
POLITEKNIK ELEKTRONIKA NEGERI SURABAYA
SURABAYA
2007
SISTEM PENGAMAN PINTU DENGAN MENGENALI
CIRI – CIRI WAJAH SESEORANG
Oleh:
TITO ROOSENO
7104.030.057
Proyek Akhir diajukan sebagai salah satu syarat untuk memperoleh
Gelar Ahli Madya (S.Amd)
di
Politeknik Elektronika Negeri Surabaya
Institut Teknologi Sepuluh Nopember Surabaya
Disetujui oleh
Tim Penguji:
Dosen Pembimbing :
1.
1.
Ir. Wahjoe Tjatur S, M.T
Eru Puspita, ST, M.Kom
NIP. 131.964.945
NIP. 132.127.285
2.
2.
Reesa Akbar, S.T
Ronny Susetyoko, S.Si, M.Si
NIP. 132.297.802
NIP. 132.127.287
3.
Firman Arifin, S.T
NIP. 132.296.743
Surabaya, Agustus 2007
Mengetahui,
Ketua Jurusan Teknik Elektronika
M. Syafruddin, ST, MEng
NIP. 131.884.954
Abstrak
Pembuatan algoritma pengamatan ciri – ciri
fisik
seseorang telah direalisasikan oleh “Ibnu Sutarwo” pada tahun
2005. Meskipun memiliki kelebihan dapat mengetahui berat
badan, tinggi badan, warna kulit, bentuk wajah, warna rambut
seseorang tapi pada proyek tersebut hanya berupa mengamati
saja tanpa bisa membedakan ciri – ciri fisik orang satu dengan
orang lainnya.
Pada proyek akhir ini, akan dibahas mengenai algoritma
pengenalan ciri – ciri wajah yang dapat membedakan wajah
seseorang dengan orang lain. Gambar yang ditangkap kamera
digital akan diproses oleh computer menggunakan” image
processing program”. Metode yang digunakan untuk
menghitung perbedaan
ciri wajah
seseorang adalah
menggunakan Euclidean Distance. Hasil dari Euclidean
Distance menentukan beda kelas antara database dengan data
pixel dari objek yang kemudian digunakan untuk menjalankan
motor pada maket rumah dengan komunkasi parallel.
Prosentase error pada proyek akhir ini adalah 75%.
Kata kunci : Pengolahan Citra, Euclidean Distance
ii
Abstract
The making of the algorithm to observe person physical
appearance has been realized by “Ibnu Sutarwo” in 2005.
Although it has benefit to determine someone’s weight,
complexion, facial shape, and hair color, however, that project
is only observing without distinguishing
the physical
appearance of one and another.
In this final project, the discussion will be about algorithm
used for determining the facial characteristics that can be
differentiated from another person. An image that is captured
by digital camera will be processed by computer by using
“image processing program”. The method used for calculating
the difference of someone’s facial characteristics in this project
is Euclidean Distance. The result of Euclidean Distance used
for determining the different level between database and pixel
data from the object that next will use to operate the motor in
house machete with parallel communication.
Error percentage of this final project is 75%.
Keywords : Image Processing, Euclidean Distance
iii
KATA PENGANTAR
Dengan mengucapkan Alhamdulillah, akhirnya penulis bisa
menyelesaikan laporan proyek akhir ini dengan sebaik-baiknya,
adapun judul proyek akhir yang telah dibuat adalah:
SISTEM PENGAMAN PINTU DENGAN MENGENALI
CIRI – CIRI WAJAH SESEORANG
Proyek akhir ini sendiri dimaksudkan sebagai salah satu syarat
kelulusan dalam menempuh pendidikan di Politeknik Elektronika
Negeri Surabaya-ITS.
Semoga dengan adanya buku ini dapat membantu para pembaca
dan mahasiswa dalam menambah ilmu pengetahuannya dibidang
teknik elektronika khususnya dalam bidang pengolahan citra
Penyusun sepenuhnya menyadari bahwa laporan proyek akhir
ini jauh dari sempurna. Kami mohon maaf bila dalam penulisan
proyek akhir ini banyak terdapat kesalahan dan kekurangan.
Penyusun berharap laporan proyek akhir ini dapat berguna bagi
penyusun sendiri khususnya dan juga pembaca pada umumnya serta
terakhir semoga laporan proyek akhir ini bisa menjadi acuan atau
referensi untuk kemajuan ilmu pengetahuan khususnya di bidang
teknik elektronika baik dimasa sekarang maupun di masa yang akan
dating
Amin.
Surabaya, Agustus 2007
Penyusun
iv
UCAPAN TERIMA KASIH
Ucapan terima kasih dan rasa syukur yang tak terhingga,
penulis persembahkan kepada ALLAH SWT semata karena atas
Rahmat dan Hidayah-NYA, maka proyek akhir ini dapat kami
selesaikan. Pada kesempatan ini, penulis juga ingin sampaikan
kepada semua pihak yang telah membantu dalam penyelesaian
proyek akhir ini secara khusus kami ucapkan banyak – banyak
terima kasih kepada
1. Bapak dan Ibu tercinta dan adikku, Adityo Roosdiono
yang telah memberi nasehat, dorongan, semangat dan
senantiasa mendo’akan dalam tiap langkahku. Semoga
Allah selalu melindungi mereka semua. Amien...
2. Bapak Titon Dutono selaku direktur PENS-ITS.
3. Bapak Moh. Syafruddin, ST, M.Eng selaku Kepala
Jurusan Teknik Elektronika.
4. Bapak Eru Puspita, ST, M.Kom dan Bapak Ronny
Susetyoko, S.Si, M.Si selaku dosen pembimbing yang
telah banyak memberikan arahan dengan penuh kesabaran
untuk menyelesaikan tugas akhir ini.
5. Seluruh Bapak dan Ibu dosen yang telah membimbing
kami selama belajar di kampus.
6. Teman dekat terbaikku, Ika Triyana, terima kasih atas
waktu, tenaga dan dukungan dalam menyelesaikan Tugas
Akhir ini.
7. Teman – teman penghuni tetap maupun penghuni nomaden
“the most crowded LAB ever” yang sulit untuk
disebutkan satu – persatu. “Keep on Rock, Guys”
8. Teman –teman angkatan 2004 terutama member “EB’ 04
Community”
9. P4500TO, thanx sudah mau ikutan capek muter – muter
bareng penulis selama lebih dari 3 tahun ini.
Semoga Allah selalu membalas seluruh kebaikan mereka yang
telah membantu saya dan semoga Allah selalu membimbing
mereka dalam setiap langkah meniti jalan yang diridhoi-NYA
Amii….n.
v
DAFTAR ISI
LEMBAR PENGESAHAN......................................................i
ABSTRAK .............................................................................. ii
ABSTRACT ........................................................................... iii
KATA PENGANTAR............................................................ iv
UCAPAN TERIMA KASIH ................................................... v
DAFTAR ISI .......................................................................... vi
DAFTAR GAMBAR............................................................viii
DAFTAR TABEL .................................................................. ix
BAB I. PENDAHULUAN ..................................................... 1
1.1 LATAR BELAKANG....................................................... 1
1.2 TUJUAN ........................................................................... 1
1.3 PERMASALAHAN .......................................................... 1
1.4 PERUMUSAN MASALAH.............................................. 2
1.5 BATASAN MASALAH ................................................... 2
1.6 METODOLOGI ................................................................ 2
1.7 SISTEMATIKA PENULISAN ......................................... 3
BAB II. TEORI PENUNJANG ............................................ 5
2.1 PENDAHULUAN.......................................................... 5
2.2 PENGOLAHAN CITRA................................................ 5
2.2.1 Dasar – Dasar Image, Pixel dan Video........................... 5
2.2.2 Interface Video dari Kamera .......................................... 5
2.2.3 Pemrograman API menggunakan VFW ......................... 6
2.2.4 Biner ............................................................................... 7
2.2.5 RGB 24........................................................................... 7
2.2.6 Penskalaan ...................................................................... 8
2.2.7 Segmentasi Warna .......................................................... 9
2.2.8 Gray Scale .................................................................... 10
2.2.9 Cropping....................................................................... 12
2.3 MICROSOFT VISUAL BASIC 6.0 ............................. 12
2.3.1 Tampilan Dasar Visual Basic 6.0 ................................. 13
2.3.2 ToolBar......................................................................... 14
2.3.3 Form Window............................................................... 14
2.3.4 ToolBox........................................................................ 14
2.3.5 Project Explorer............................................................ 18
vi
2.3.6 Jendela Properties......................................................... 18
2.3.7 Form Layout Window .................................................. 19
2.3.8 Jendela Code................................................................. 19
2.3.9 Kontrol Program........................................................... 20
2.4 KOMUNIKASI PARALLEL....................................... 21
BAB III. PERENCANAAN DAN PEMBUATAN ALAT 25
3.1 PERANGKAT KERAS................................................ 25
3.1.1 Rangkaian Driver Motor DC ........................................ 25
3.1.2 Maket Rumah ............................................................... 27
3.2 PERANGKAT LUNAK............................................... 27
3.2.1 Penskalaan .................................................................... 28
3.2.2 Segmentasi Warna Kulit ............................................... 29
3.2.3 Gray Scale .................................................................... 30
3.2.4 Cropping....................................................................... 30
3.2.5 Kuantisasi ..................................................................... 31
3.2.6 Euclidean Distance ....................................................... 32
BAB IV. PENGUJIAN DAN ANALISA............................ 33
4.1 PENGUJIAN PADA KAMERA DIGITAL.................... 33
4.2 PENGUJIAN PENGAMBILAN DATA ......................... 34
4.3 PENGUJIAN PERANGKAT LUNAK ........................... 35
4.4 PENGUJIAN RANGKAIAN DRIVER MOTOR........... 39
BAB V. PENUTUP .............................................................. 41
5.1 KESIMPULAN ............................................................... 41
5.2 SARAN ........................................................................... 41
BAB VI. DAFTAR PUSTAKA........................................... 42
LAMPIRAN
vii
DAFTAR GAMBAR
Gambar 2.1 Diagram Blok Video Capture ........................... 6
Gambar 2.2 Blok Diagram Sistem Buffer Windows API..... 7
Gambar 2.3 Image 200 x 80 di–skala 1:5 dan 1:8 ................ 8
Gambar 2.4 Gray scale resultan dalam bidang 3D.............. 11
Gambar 2.5 Kotak dialog New............................................ 13
Gambar 2.6 Tampilan Dasar Visual Basic .......................... 13
Gambar 2.7 ToolBar standard Vusial Basic........................ 14
Gambar 2.8 Jendela Form .................................................. 14
Gambar 2.9 ToolBox Control ............................................ 15
Gambar 2.10 Jendela Project Explorer................................. 18
Gambar 2.11 Jendela Properties........................................... 18
Gambar 2.12 Form Layout Windows................................... 19
Gambar 2.13 Jendela Code .................................................. 19
Gambar 2.14 Parallel Port .................................................... 21
Gambar 2.15 Pin – Pin Parallel Port .................................... 21
Gambar 2.16 Program deklarasi parallel port ..................... 23
Gambar 3.1 Blok Diagram Sistem ..................................... 25
Gambar 3.2 Konfigurasi Pin Optocoupler.......................... 26
Gambar 3.3 Rangkaian motor DC...................................... 26
Gambar 3.4 Maket Rumah ................................................. 27
Gambar 3.5 Flowchart Sistem............................................ 27
Gambar 3.6 Program Penskalaan ....................................... 28
Gambar 3.7 Program Cropping .......................................... 30
Gambar 3.8 Program Tambahan Pada Proses Cropping .... 30
Gambar 3.9 Program Kuantisasi ........................................ 31
Gambar 4.1 Hasil Pengujian .............................................. 34
Gambar 4.2 Hasil Pengujian .............................................. 35
Gambar 4.3 Hasil Pengujian .............................................. 36
Gambar 4.4 Rangkaian Pengujian...................................... 39
viii
DAFTAR TABEL
Tabel 2.1 Alamat Status Port Parallel ................................... 23
Tabel 4.1 Hasil Pengujian ..................................................... 37
Tabel 4.2 Hasil Pengujian ..................................................... 37
Tabel 4.3 Hasil Pengujian ..................................................... 38
Tabel 4.4 Hasil Pengujian ..................................................... 38
ix
BAB I
PENDAHULUAN
1.1
Latar Belakang
Pembuatan algoritma pengenalan ciri – ciri fisik seseorang
telah direalisasikan oleh “Ibnu Sutarwo” pada tahun 2005.
Meskipun memiliki kelebihan dapat mengetahui berat badan,
tinggi badan, warna kulit, bentuk wajah, warna rambut
seseorang tapi pada proyek tersebut hanya berupa mengenali
saja tanpa bisa membedakan ciri – ciri fisik orang satu dengan
orang lainnya.
Pada proyek akhir ini, akan dibahas mengenai algoritma
pengenalan ciri – ciri wajah yang dapat membedakan wajah
seseorang dengan orang lain seseorang.gambar yang ditangkap
kamera digital akan diproses oleh computer menggunakan”
image processing program”. Metode yang digunakan untuk
menghitung perbedaan
seseorang adalah menggunakan
Euclidean Distance.
Untuk perangkat lunak image processing menggunakan
software Microsoft Visual Basic 6.0 karena memiliki bahasa
yang lebih sederhana dan lebih mudah mengaplikasikannya.
Perangkat keras yang digunakan adalah sebuah maket
rumah dengan pintu otomatis menggunakan motor DC.
Komunikasi antara PC dengan motor DC menggunakan
komunikasi parallel.
1.2
Tujuan
Tujuan dari Proyek Akhir ini adalah membuat sebuah
sistem yang dapat mengidentifikasi ciri – ciri wajah seseorang
melalui pengolahan citra dengan menggunakan bahasa
pemrograman visual basic yang kemudian dapat mengambil
keputusan dan melakukan aksi, dalam hal ini membuka pintu
atau tidak membuka pintu.
1.3
Permasalahan
Dalam perancangan alat identifikasi, dalam hal ini kamera
untuk mengambil gambar, diperlukan suatu cara bagaimana
suatu gambar yang ditangkap oleh kamera dapat diolah oleh
1
2
komputer. Dari pengolahan tersebut, data yang diperoleh
kemudian dijadikan acuan untuk melakukan suatu tindakan.
Dalam proyek akhir ini, perangkat lunak diharapkan untuk
dapat mengidentifikasi ciri – ciri wajah seseorang dan tindakan
selanjutnya yang diambil adalah untuk membuka atau tidak
membuka pintu.
1.4
Perumusan Masalah
Bentuk permasalahan yang dihadapi dalam proyek akhir ini
adalah sebagai berikut :
1. Mengambil sebuah frame objek gambar yang sedang
bergerak.
2. Mendeteksi keberadaan objek dan membedakan antara
objek dengan background.
3. Mengambil data pixel dari suatu objek gambar ke
dalam database.
4. Membandingkan data yang baru masuk dengan data
yang telah ada pada database dan melakukan sebuah
aksi yang berhubungan dengan kecocokan data.
1.5
Batasan Masalah
Pada pengerjaan Proyek Akhir ini digunakan batasan –
batasan sebagai berikut :
1. Warna background objek gambar adalah biru.
2. Objek gambar yang diambil hanya 1 manusia.
3. Pencahayaan harus cukup.
4. Warna baju yang dipakai objek tidak serupa atau
menyerupai dengan warna kulit manusia.
5. Anggota tubuh yang diambil pada frame objek hanya
wajah.
1.6
Metodologi
Dalam pengerjaan Proyek Akhir ini diperlukan suatu
metode dan langkah – langkah untuk mendapatkan hasil yang
maksimal. Langkah – langkah tersebut adalah sebagai berikut :
1. Studi Literatur
Pada tahap ini pekerjaan yang dilakukan adalah studi
tentang Visual Basic 6.0 sebagai program dasar
3
pengerjaan image processing, interfacing komunikasi
parallel dan rangkaian driver motor.
2. Perancangan Hardware dan Software
Pada tahap ini pekerjaan yang dilakukan adalah
merancang software untuk identifikasi ciri – ciri wajah
seseorang dan merancang hardware maket rumah dan
rangkaian driver motor.
3. Pembuatan Hardware dan Software
Pada tahap ini pekerjaan yang dilakukan adalah
pembuatan hardware maupun software sesuai dengan
perancangan.
4.
Integrasi dan Pengujian Sistem
Pada tahap ini pekerjaan yang dilakukan adalah
menghubungkan antara perangkat keras dan perangkat
lunak dan kemudian dilakukan pengujian alat untuk
mengetahui apakah tujuan yang diharapkan telah
tercapai dan data yang diambil dapat dijadikan bahan
analisa.
5. Evaluasi dan Analisa
Pada tahap ini pekerjaan yang dilakukan adalah
menganalisa system dari data yang telah diambil dan
dijadikan hasil evaluasi dan diambil kesimpulan.
6. Penulisan Laporan
Penulisan laporan dilakukan sesuai dengan data yang
diperoleh pada pengerjaan proyek akhir.
1.7
Sistematika Penulisan
Sistematika penulisan dapat dijelaskan sebagai berikut :
BAB I. PENDAHULUAN
Bab ini membahas tentang uraian latar belakang, tujuan,
permasalahan, perumusan masalah, batasan masalah,
metodologi, dan sistematika penulisan.
4
BAB II. TEORI PENUNJANG
Bab ini menulis beberapa teori dasar penunjang dalam
proses perencanaan dan pembuatan yang digunakan
sebagai landasan atau acuan dalam penyelesaian dan
pembuatan ProyekAkhir ini.
BAB III. PERENCANAAN DAN PEMBUATAN ALAT
Bab ini menjelaskan tentang perencanaan serta realisasi
program, dimana mencakup blok system dan flowchart dari
perencanaan system secara lengkap beserta penjelasan cara
kerja dari system.
BAB IV. PENGUJIAN DAN ANALISA
Bab
ini mencantumkan
hasil
pengujian
setelah
dikoneksikan antara perangkat keras dan perangkat lunak
serta menjelaskan hasil analisa dari data yang telah
diambil.
BAB V. PENUTUP
Bab ini berisi kesimpulan berdasarkan analisa pada bab
sebelumnya dan
saran untuk pengembangan dan
penyempurnaan alat.
BAB II
TEORI PENUNJANG
2.1
PENDAHULUAN
Perkembangan dunia Image processing saat ini sangat pesat
sekali sehingga banyak diaplikasikan dalam berbagai bidang
teknologi diantaranya bidang kesehatan, entertainment, militer,
IPTEK, industry, robotika dan lain sebagainya.
Image merupakan informasi yang secara umum tersimpan
dalam bentuk pemetaan bit – bit, tau lebih dikenal sebagai
bitmap, setiap bit membentuk satu titik informasi yang dikenal
sebagai pixel. Atau dengan kata lain, satu pixel merupakan satu
titik image yang terdiri dari satu atau beberapa bit informasi.
Satuan dari pixel biasanya dinyatakan dengan posis x, posisi y
dan nilai dari pixel tersebut (warna atau gray). Dalam satu
bidang gambar, sepenuhnya terdiri dari pixel – pixel.
Video adalah susunan dari beberapa gambar yang
ditampilkan secara bergantian dan sangat cepat, sehingga
membentuk suatu pergerakan yang halus. Biasanya gambar
yang disusun berasal dari gambar dalam bentuk image (bukan
grafik). Pengertian Video biasanya mengacu pada proses atau
teknologi dari sistem gambar bergerak.
2.2
PENGOLAHAN CITRA
2.2.1
Dasar-dasar image, pixel dan video
Satu satuan informasi terkecil dalam suatu layar monitor,
televisi atau peraga lainnya yang menggambarkan atau
membentuk suatu bayangan (image) disebut sebagai pixel. Pixel
berasal dari kata picture element, yaitu bagian-bagian terkecil
dari suatu gambar. Pixel dapat juga disebut sebagai titik gambar
karena dalam dunia digital, gambar dibentuk dari titik-titik.
2.2.2
Interface video dari kamera
Sebelum dilakukan pembacaan data video dari kamera, ada
beberapa perangkat yang harus dipenuhi, mulai dari device
kamera, saluran sinyal/data video, video grabber, driver video
capture, pemrograman API dan aplikasi.
5
6
Gambar 2.1 Diagram Blok Video Capture
2.2.3
Pemrograman API menggunakan VFW (avicap32.dll)
Windows pertama kali mengeluarkan teknologi video
capture dalam bentuk API (Application Programming Interface)
yang dikenal dengan VFW (Video for Window). Versi pertama
yang dikeluarkan adalah 16 bit tersimpan dalam file library
”avicap.dll”. Kemudian diperbaharui dalam versi 32 bit yang
tersimpan dalam ”avicap32.dll”.
Teknologi VFW
ini
sangat mudah, baik dalam
algoritmanya atau prosedur pemrograman maupun dalam
pemrogramannya. Hal
ini memungkinkan VFW dapat
diimplementasikan
menggunakan
berbagai
bahasa
pemrograman, asalkan dapat melakukan pemanggilan fungsi
API. Berikut ini langkah-langkah yang harus dilakukan untuk
menggunakan VFW:
1. Apakah ada kamera yang terpasang, dengan cara
membaca semua driver kamera yang terpasang. Driver
kamera diberi nomor 0 sampai seterusnya. Setiap
nomor driver dibaca jenis dari kameranya, dan jika ada
penjelasannya, maka ada driver yang terpasang.
Pencarian akan
terus dilakukan
sampai
tidak
ditemukan lagi driver terpasang.
2. Memilih, driver nomor berapa yang akan digunakan.
3. Membuka jendela untuk menampilkan “preview” dari
kamera.
4. Menghubungi driver dan menyambungkannya dengan
jendela preview.
5. Melakukan beberapa pengaturan.
7
Sebelum dilakukan pembacaan data image, terlebih dulu
dipersiapkan buffer untuk penyimpanan data image. Pada
contoh program berikut ini akan diperlihatkan deklarasi header
dari buffer API untuk video dan deklarasi data video untuk
ukuran 320 x 240 dengan format RGB24.
Apabila program berjalan dengan benar, maka setiap video
capture berhasil menangkap satu gambar (satu frame), maka
data frame akan disimpan pada suatu buffer yang terdapat pada
API vidcap. Setelah itu, API vidcap akan mengirimkan sinyal
trigger yang akan mengaktifkan event OnFrame. Jika pada
program Inisialisasi disertakan setting OnFrame event callback,
maka program secara otomatis akan loncat ke rutin yang telah
ditunjuk, misalkan pada suatu subroutine OnFrameEvent.
Gambar 2.2 Blok Diagram Sistem Buffer Windows API
2.2.4
Biner
Disebut biner karena hanya memiliki dua kemungkinan, 0
atau 1, ada atau tidak. Image atau video dalam bentuk biner
banyak digunakan khususnya untuk masalah - masalah yang
berhubungan dengan deteksi obyek yang sederhana. Misalkan
untuk mencari ada atau tidak garis petunjuk dalam suatu robot
line tracer. Penggunaan pixel biner ini dimaksudkan untuk
menyederhanakan proses dengan hanya memperhatikan ada
atau tidak. Selain itu, penggunaan biner juga memperkecil data
baik saat dikirimkan atau saat disimpan, termasuk juga saat
diproses.
2.2.5
RGB 24
Format RGB banyak digunakan dalam menyatakan pixel
dalam sistem digital. Hal ini sehubungan dengan kemudahan
pernyataan warna dalam bentuk komponen warna primer R, G
dan B.
8
Format RGB 24 memiliki jumlah kedalaman warna
mencapai 16 juta warna, karena itu sering juga dikenal dengan
true color, karena dengan warna sejumlah itu hampir dapat
menyamai pewarnaan yang ada secara alami.
Saat ini format RGB24 banyak digunakan dalam sistem
pengkodean warna pada device kamera. Sedangkan untuk
device monitor barangkali yang paling banyak saat ini adalah
RGB32, namun RGB24 masih banyak juga yang digunakan.
Format :
RRRRRRRRGGGGGGGGBBBBBBBB = RRGGBBH [000000H,FFFFFFH]
Contoh:
Merah Jenuh
: FF0000H
Kuning Muda
: FFFF80H
Biru Muda
: 8080FFH
Berikut ini dijelaskan metode – metode pada pengolahan citra
yang digunakan pada pengerjaan proyek akhir ini :
2.2.6
Penskalaan
Dengan memperkecil ukuran image asli akan dapat
mempercepat proses perhitungan secara keseluruhan. Namun
cara ini juga dapat menurunkan kinerja dari sistem, dimana
suatu image yang semula memiliki jumlah pixel yang besar
akan memiliki bentuk yang detil, dengan dilakukan penskalaan
akan didapatkan bentuk gambar yang kurang detil.
Gambar 2.3 Image 200 x 80 di–skala 1:5 dan 1:8
Pemilihan faktor penskalaan yang sesuai akan
mempercepat operasi kerja tanpa mengurangi kinerja
sistem. Contoh pada gambar sebelumnya, jika dilakukan
penskalaan 1:8, ternyata image aslinya cukup buruk, namun
dengan faktor 1:5 didapatkan hasil yang lebih baik, dan
9
kecepatan yang didapatkan kurang 5 x 5 = 25 (kecepatan
keseluruhan sistem sangat dipengaruhi oleh proses-proses yang
lain) kali jika dibandingkan dengan pemrosesan image aslinya.
Untuk menentukan sebenarnya berapa nilai yang terbaik
adalah berdasarkan kebutuhan, antara kecepatan dan ketelitian.
Jika menginginkan ketelitian, maka harus ditentukan
penskalaan yang sedemikian rupa sehingga hasil image yang
diamati secara visual masih terlihat dengan baik, ini biasanya
tergantung dari ukuran image dan detil dari bentuk image
tersebut.
Sebagai contoh, pada gambar sebelumnya memiliki ukuran
200 x 80 pixel, sebut saja ukuran dari obyek sebesar itu. Jika
dilakukan penskalaan 1:5, artinya akan didapatkan obyek
dengan ukuran 40 x 16 pixel, dan jika dilakukan penskalaan 1:8
akan didapatkan obyek dengan ukuran 25 x 10. Jika bentuk dari
obyek cukup kompleks (seperti tulisan pada contoh tersebut),
ukuran dari obyek yang sesuai sekitar 10 sampai 20 pixel
(ambil saja 16 pixel), sedangkan jika suatu obyek bentuknya
sangat kasar (lingkaran, kotak dan sebagainya, di sini hanya
dipentingkan keberadaannya saja, bukan bentuknya), ukuran
yang sesuai adalah 5 sampai 15 pixel (ambil saja 8 atau 10
pixel).
2.2.7
Segmentasi Warna
Jika suatu obyek dapat diketahui berdasarkan ciri warnanya
saja, maka dapat digunakan metode segmentasi warna. Metode
ini secara umum digunakan untuk memisahkan suatu warna
terhadap warna lainnya. Inti dari segmentasi warna adalah
membaca warna pixel demi pixel atau daerah demi daerah dan
membandingkannya dengan warna yang dikehendaki. Pada
tahapan membandingkan ini, dapat menggunakan berbagai cara
yang ada, mulai dari berbasis matematis sederhana, statistik
ataupun kecerdasan buatan.
Jika obyek yang akan dideteksi dipastikan hanya berjumlah
satu, artinya dalam penangka pan image nantinya kemungkinan
hanya ada satu obyek yang akan muncul, maka proses
deteksinya menjadi sederhana. Inipun masih bisa dibedakan
antara obyek yang posisinya tertentu dan obyek yang posisinya
tidak tentu.
10
Jika obyek posisinya sudah tentu pada kamera, maka
proses deteksi dilakukan cukup dengan mengamati daerah
tersebut, tanpa menghiraukan daerah lainnya. Contoh dalam
aplikasi mengamati obyek yang berjalan pada suatu bab
berjalan (conveyor), maka lintasan dari obyek sudah tertentu.
Dengan memastikan obyek akan melintas pada titik tertentu,
maka proses deteksi dapat dipusatkan pada titik tersebut.
Jika obyek ternyata menempati posisi yang tidak tentu,
maka harus dilakukan proses pencarian. Proses pencarian dapat
dilakukan dengan dua cara, melakukan scanning di seluruh
daerah image, atau langsung menentukan titik tengah (titik
berat) dari obyek yang ada di layar.
Pencarian berdasarkan scanning memiliki kelebihan
tersendiri, yaitu lebih cepat (kalau obyek yang dicari dekat
dengan titik awal) dan mudah tetapi tidak akurat. Artinya untuk
memastikan apakah pada suatu daerah benar-benar ada obyek
harus dilakukan pemeriksaan yang lebih mendalam pada
daerah-daerah tertentu yang dideteksi. Hal ini tentu saja
menyebabkan proses menjadi lambat. Kelebihan lain dari
proses scanning adalah metode klasifikasi atau identifikasi dari
proses deteksi dapat beragam, artinya dapat menggunakan
berbagai metode.
2.2.8
Gray scale
Gray scale dan biner sebenarnya memiliki kemiripan,
hanya saja kalau biner hanya memiliki 2 kemungkinan nilai,
tetapi gray scale memiliki lebih banyak kemungkinan nilai,
misalkan 4, 16 atau 256 kemungkinan. Gray scale banyak
digunakan jika adanya perbedaan intensitas antara satu pixel
dengan pixel lainnya sangat dipentingkan. Hal ini terutama jika
obyek yang diamati memiliki perbedaan intensitas yang cukup
kecil dengan berbagai tingkat kecerahan. Jika digunakan pixel
biner, maka kemungkinan perbedaan - perbedaan tersebut akan
hilang hanya menjadi hitam atau putih.
Pengubahan dari format warna ke gray level
banyak dilakukan dengan tujuan penyederhanaan format
warna, dimana dalam penggunaannya tidak diperlukan atau
dipentingkan informasi warna yang ada, tetapi hanya perbedaan
intensitas dari image. Selain itu, pengolahan image dalam
11
bentuk gray scale memiliki kemudahan dibandingkan dengan
format warna. Ada tiga macam pengubahan yang dapat
dilakukan, tergantung dari bagaimana cara pandang dari format
warna terhadap gray scale.
Gray scale dapat dipandang sebagai nilai kecerahan dari
suatu image, dimana nilai kecerahan dapat disesuaikan dengan
kemampuan mata untuk melihat suatu warna. Ini biasanya
diterapkan pada dunia video visual, dimana yang menjadi
Subyek adalah mata manusia.
Gray = Intensitas = Y = 0,3R + 0,59G + 0,11B
Atau
Gray = Intensitas = Y = 0,299R + 0,587G + 0,114B
Gray scale dapat dipandang sebagai nilai rata-rata dari
ketiga komponen warna R, G dan B. Nilai ini didapatkan untuk
suatu pengolahan nilai R, G dan B secara sederhana, dimana
nilai R, G dan B dianggap sebagai data.
Gray scale dapat dipandang sebagai bidang dengan dimensi
tiga dimana sumbu-sumbunya merupakan nilai R, G dan B.
Nilai gray scale merupakan titik yang berada dalam bidang
tersebut.
Gambar 2.4 Gray scale merupakan nilai resultan
dalam bidang 3D
12
2.2.9
Cropping
Cara deteksi suatu image yang paling umum digunakan
adalah cara scaling, scanning dan cropping. Cara ini
mengharuskan program untuk mencari pixel demi pixel, area
demi area, ukuran demi ukuran dari seluruh bagian image. Jika
suatu obyek berhasil ditemukan, bagian image yang bertepatan
dengan obyek tersebut akan dipotong untuk diproses pada
bagian berikutnya. Kelebihan dari cara ini,
• Posisi dari obyek dapat bebas
• Jumlah dari obyek dapat lebih dari satu
• Ukuran dari obyek dapat bebas
• Dapat menggunakan berbagai metode klasifikasi, dimana
hasil crop obyek yang ditemukan dengan mudah diproses
pada classifier yang dikehendaki.
2.3
MICROSOFT VISUAL BASIC 6.0
Visual basic merupakan salah satu bahasa pemrograman
yang berorientasi pada obyek (OOP). Salah satu kehandalan
visual basic adalah pembuatan aplikasi Graphical User Interface
(GUI). Didalam premrograman visual basic kita tidak perlu
bersusah payah lagi memikirkan desain untuk tampilan mewah
bagi suatu tampilan program lengkap dengan berbgai icon dan
menu. Kita hanya cukup berorientasi pada struktur dan logika
dari program utamanya. Untuk pembuatan tampilan user
interfacenya tersebut relatif mudah dilakukan karena kita hanya
perlu meletakkan obyek-obyek grafis ke form yang telah
disediakan, setelah itu kita hanya perlu mengatur property dan
obyek-obyek tersebut menurut kreatifitas kita sendiri.
Visual Basic (sering disebut VB) selain disebut sebagai
sebuah bahasa pemrograman, juga sering disebut sebagai sarana
untuk menghasilkan program-program aplikasi berbasis
Windows. Beberapa kemampuan atau manfaat dari Visual
Basic diantaranya seperti :
1. Membuat program aplikasi berbasis Windows.
2. Membuat obyek-obyek pembantu program seperti
control ActiveX, file help, aplikasi internet, dan
sebagainya.
13
3. Menguji program (debugging) dan menghasilkan
program akhir berakhiran EXE yang bersifat
executable, atau dapat langsung dijalankan.
Gambar 2.5 Kotak dialog New
2.3.1 Tampilan Dasar Visual Basic 6.0
Untuk tahap awal penggunaan visual basic, sebaiknya
diatur agar tampilan mirip atau sama dengan gambar 2.4, yaitu
menampilkan tampilan ToolBox, ToolBar, Properties dan Form
Layout. Jika salah satu komponen tersebut tidak muncul
dilayar, Anda dapat memunculkannya dengan memilih menu
View lalu klik komponen yang akan ditampilkan.
Gambar 2.6 Tampilan Dasar Visual Basic
14
2.3.2 ToolBar
ToolBar adalah tombol-tombol yang mewakili suatu
perintah tertentu dari Visual Basic. Setiap tombol tersebut dapat
langsung diklik untuk melakukan perintah tertentu. Tombol
tombol dan perintah perintah yang sering digunakan dalam
Visual Basic
Gambar 2.7 ToolBar standard Vusial Basic
2.3.3
Form Window
Form Window atau jendela form adalah daerah kerja utama
dimana kita akan membuat aplikasi-aplikasi Visual Basic. Pada
form ini kita akan meletakkan berbagai macam objek alternatif
seperti misalnya teks, gambar,
tombol-tombol perintah,
scrollbar, dan sebagainya. Jendela form ini pada awalnya
terlihat kecil tetapi ukurannya dapat diubah - ubah.
Gambar 2.8 Jendela Form
2.3.4 ToolBox
ToolBox adalah sebuah kotak piranti yang mengandung
semua kotak atau kontrol yang dibutuhkan untuk membentuk
15
suatu program aplikasi. Kontrol adalah suatu objek yang akan
menjadi interface penghubung antara program aplikasi dan
penggunanya, dan kesemuanya harus diletakkan dalam jendela
form. Apabila pertamakali menjalankan Visual Basic, maka
ToolBox akan ditampilkan disebelah kiri layar dan berisi objek
- objek standart yang akan muncul setiap kita menjalankan
Visual Basic. Objek kontrol ini terdapat pada semua versi dari
Visual Basic 6.0.
Gambar 2.9 ToolBox Control
•
Icon Select
Icon ini digunakan untuk mengubah petunjuk mouse
menjadi normal. Sehingga penunjuk mouse dapat digunakan
untuk memilih pilihan menu lainnya.
•
Icon Label
Icon ini digunakan untuk menampilkan text tetapi
pengguna hanya dapat merubahnya melalui kode pemrograman
pada saat run time.
16
•
Icon PictureBox
Icon ini digunakan untuk meletakkan obyek gambar ke
dialog, sehingga pengguna dapat menampilkan gambar dalam
dialog.
•
Icon CommandButton
Icon ini digunakan untuk menentukan aksi apa yang akan
dilakukan sesuai dengan program yang dibuat oleh
pengguna.
•
Icon TextBox
Icon ini digunakan untuk mendapatkan masukan data dari
keyboard, disamping itu kotak edit dapat digunakan untuk
menampilkan keluaran atau hasil data, baik secara satu baris
atau beberapa baris tampilan.
•
Icon CheckBox
Icon ini digunakan bila terdapat beberapa pilihan
masukkan data dan dapat dipilih semuanya.
•
Icon OptionButton
Icon ini digunakan bila terdapat beberapa pilihan tetapi
hanya satu pilihan saja yang harus dipilih.
•
Icon Combo Box
Icon ini digunakan bila ada item pilihan tetapi hanya satu
saja yang dapat dipilih, item pilihan dapat diganti, ditambah,
atau dihapus. Pilihan yang
tidak dipergunakan dapat
disembunyikan sehingga
item yang dipilih saja yang
ditampilkan.
•
Icon List Box
Icon ini fungsinya hampir sama dengan Combo Box.
17
•
Icon Horizontal Scroll Bar
Icon ini digunakan untuk membuat obyek scroll secara
mendatar, obyek ini biasanya digabung dengan Edit Box,
Combo Box atau List Box sedangkan disini digunakan secara
terpisah.
•
Icon Vertical Scroll Bar
Icon ini digunakan untuk membuat obyek scroll secara
vertikal, obyek ini biasanya digabung dengan Edit Box, Combo
Box atau List Box sedangkan disini digunakan secara terpisah.
•
Icon Frame
Icon ini digunakan untuk memisahkan kontrol sesuai
dengan fungsinya.
•
Icon Line
Icon ini digunakan untuk membuat garis vertikal,
horizontal atau diagonal.
•
Icon Shape
Icon ini digunakan untuk membuat gambar berbentuk
segiempat, lingkaran, oval atau semacamnya.
•
Icon MS Chart
Icon ini digunakan untuk membuat grafik dengan
berbagai macam bentuk grafik dari satu dimesi sampai tiga
dimensi, mewarnai grafik, menghubungkan data grid dengan
grafik, dan sebagainya.
2.3.5 Project Explorer
Jendela Project Explorer adalah jendela yang mengandung
semua file di dalam apikasi Visual Basic disebut dengan istilah
18
project (proyek), dan setiap proyek bisa mengandung lebih dari
satu file. Pada Project Explorer ditampilkan semua file yang
terdapat pada aplikasi (proyek), misalnya form, modul, class,
dan sebagainya.
Gambar 2.10 Jendela Project Explorer
2.3.6
Jendela Properties
Jendela Properties adalah jendela yang mengandung semua
informasi mengenai objek, misalnya seperti nama, warna,
ukuran, posisi, dan sebagainya. Setiap objek sebagian besar
memiki properties yang sama, tetapi ada pula yang berbeda -
beda. Melalui jendela properties ini dapat diatur bentuk dan
karakteristik dari setiap objek. Bagian paling atas dari jendela
Properties ini terdapat kotak yang dapat menunjukkan nama
objek yang sedang aktif, sedangkan propertinya ditampilkan
dibagian bawah dari jendela properties tersebut.
Gambar 2.11 Jendela Properties
2.3.7 Form Layout Windows
Form
Layout Windows
adalah
jendela
yang
menggambarkan posisi dari setiap form yang ditampilkan pada
19
layar monitor. Posisi form pada Form Layout Windows inilah
yang merupakan petunjuk dimana aplikasi yang dibuat akan
ditampilkan pada layar monitor akan dijalankan. Pada menu
yang muncul, dapat ditentukan pilihan sebagai berikut :
Gambar 2.12 Form Layout Windows
2.3.8
Jendela Code
Jendela Code adalah salah satu jendela yang penting di
dalam Visual Basic, jendela ini berisi kode - kode program yang
merupakan instruksi - instruksi untuk aplikasi Visual Basic.
Setiap objek pada Visual Basic dapat diberi tambahan kode -
kode program untuk melakukan tugas-tugas tertentu, misalnya
menutup aplikasi, membatalkan perintah, dan sebagainya
Gambar 2.13 Jendela Code
20
2.3.9
Kontrol Program
•
If…Then
Dengan pernyataan ini kita dapat melakukan tes suatu
kondisi tertentu dan kemudian menentukan suatu tindakan
jika kondisi tersebut terpenuhi.
•
If…Then…Else
Pernyataan ini hampir sama dengan If…Then hanya saja,
suatu kondisi tidak terpenuhi, maka alur program akan
mengeksekusi pernyataan yang lain.
• Select Case
Pada dasarnya perintah
ini sama dengan perintah
If…Then…Else, yaitu akan mengeksekusi blok pernyataan
dari beberapa pilihan blok pernyataan. Hanya penulisannya
lebih ringkas dan lebih mudah dimengerti.
• Do…Loop
Perintah Do…Loop digunakan untuk perulangan suatu blok
pernyataan sampai terpenuhinya syarat kondisi yang
ditetapkan
• For…Next
Perintah ini sama dengan melakukan perulangan seperti
perintah Do…Loop, tetapi dengan perintah Do…Next
dapat ditentukan nilai awal dan nilai akhir perulangan serta
nilai kenaikannya.
• Go to
Perintah Go To digunakan untuk melakukan percabangan
ke suatu baris label sehingga kode - kode yang dilewatinya
tidak akan dieksekusi.
• Exit
Perintah ini digunakan untuk keluar secara langsung dari
blok For…Next, Do..Loop, Sub Procedure atau Function
Procedure.
21
2.4
KOMUNIKASI PARALLEL
Port parallel menyediakan metode yang mudah untuk
menghubungkan PC dengan peralatan elektronik. Port parallel
merupakan port data di computer untuk menstransmisi 8 bit
data dalam sekali clock. Paralel port adalah port yang paling
banyak digunakan dalam interfacing dengan berbagai macam
peralatan eksternal. Secara umum paralel port terdiri dari 4 jalur
kontrol, 5 jalur status dan 8 jalur data. Hubungan pengkabelan
yang umum digunakan yaitu konektor tipe DB25. Konektor
DB25 merupakan konektor yang paling banyak dijumpai pada
paralel port PC sedangkan konektor centronic dijumpai pada
printer.
Gambar 2. 14 Parallel Port
Gambar 2. 15 Pin – Pin Parallel Port
22
Paralel port yang telah distandarisasi dibawah standard
IEEE 1284, pertama diperkenalkan pada tahun 1994. Standard
tersebut didefinisikan dalam 5 mode operasi, yaitu:
1. Mode kompabilitas (Compability Mode)
2. Mode 4 bit (Nibble Mode)
3. Mode 8 bit (Byte Mode)
4. Mode parallel port lanjutan (Enhanced Paralel Port)
5. Mode kapabilitas diperluas (Extended Capability Port)
Register yang ada pada DB25 terdiri dari 3 jenis, antara
lain :
1. Register Data
2. Register Control
3. Register Status
Untuk dapat menggunakan port parallel, kita harus
mengetahui alamatnya. Alamat LPT1 biasanya adalah 888
(378h) dan LPT2 biasanya 632 (278h). Setelah kita mengetahui
alamat dari port parallel, maka kita dapat menentukan alamat
data port, control port, dan status port. Alamat data port adalah
alamat dari port parallel tersebut, alamat status port adalah hasil
penaikan 1 angka dari data port, dan alamat control port adalah
hasil penaikan 2 angka dari data port. Untuk lebih jelasnya lihat
tabel di bawah ini:
Tabel 2.1 Alamat Status Port Parallel
Dari penjelasan di atas sekarang kita dapat membuat
sebuah aplikasi yang dapat mengakses parallel port. Perlu
diketahui bahwa visual basic tidak mempunyai kemampuan
untuk mengakses hardware, untuk itu kita membutuhkan file dll
yang dapat di download dari internet yang mampu berjalan
hanya pada sistem operasi windows 95 / 98 / Me, selain itu anda
23
tidak dapat menggunakan file inpout32.dll. Sebelum kita
menggunakan fungsi-fungsi yang ada dalam file DLL ini,
terlebih dahulu harus dideklarasikan ke dalam visual basic.
Pendeklarasian pada module sebagai berikut:
Gambar 2.16 Program deklarasi parallel port pada module Visual
Basic
Ada dua fungsi yang dideklarasikan yaitu Inp dan Out,
fungsi Inp berguna untuk membaca nilai yang terdapat pada
alamat port yang diinginkan, sedangkan fungsi Out digunakan
untuk mengeluarkan nilai sebesar yang diinginkan pada port
yang diinginkan. Anda dapat menggunakan baik satu atau ke-
dua fungsi di atas secara bersamaan. Berikutnya anda dapat
memanggil fungsi di atas dengan format:
Out (alamat port, nilai)
Variabel = Inp (alamat port)
24
Halaman ini sengaja dikosongkan……
BAB III
PERENCANAAN DAN PEMBUATAN PERANGKAT KERAS
DAN PERANGKAT LUNAK
Sebelum sistem tersebut dibuat terlebih dahulu direncanakan
sistematika pembuatan sistem itu sendiri agar diperoleh hasil yang
maksimal. Dengan mengacu dasar teori yang telah dibuat
sebelumnya kita bisa pilah perencanaan dan pembuatan menjadi
untuk perangkat keras dan perangkat lunak.
3.1
PERANGKAT KERAS
Pengerjaan perangkat keras meliputi pembuatan maket
rumah dengan pintu otomatis, rangkaian driver motor DC,
rangkaian optocoupler sebagai penerima data dari parallel port,
komunikasi parallel port dan perencanaan sistem secara
keseluruhan. Adapun blok diagram sistem yang harus dibuat
terlihat pada Gambar 3.1.
Gambar 3. 1 Blok Diagram Sistem
Cara kerjanya adalah, webcam menangkap objek yang
terus bergerak (video capture) datanya diolah oleh PC
menggunakan program Visual Basic. Hasil data yang telah
diolah oleh VB lalu dikirimkan ke motor pada maket rumah
dengan menggunakan komunikasi parallel.
3.1.1
Rangkaian Driver Motor DC
Driver motor dapat bekerja jika mendapat trigger dari
parallel port. Data yang didapat dari parallel port menjadi input
bagi optocoupler 4N25. Jika optocoupler mendapat pulsa 5Volt
maka optocoupler akan aktif, begitu pula sebaliknya. Jika
pulsanya 0Volt maka optocoupler tidak akan aktif.
25
26
Gambar 3.2 Konfigurasi Pin Optocoupler
Output dari optocoupler masuk ke rangkaian driver motor.
Jika optocoupler aktif maka rangkaian driver juga aktif dan
memutar motor. Begitu juga sebaliknya. Untuk menghindarkan
agar motor tidak keluar dari jalur pintu maka dipasang sebuah
limit switch yang dipasang NC (normally closed). Rangkaian
yang tersebut diatas merupakan rangkaian untuk membuka
pintu.
Rangkaian untuk menutup pintu menggunakan switch, jika
switch ditekan maka pintu akan menutup dan memutar motor ke
arah yang berlawanan. Berikut ini rangkaian driver motor DC:
Gambar 3.3 Rangkaian Motor DC
27
3.1.2 Maket Rumah
Maket rumah digunakan sebagai simulasi pintu otomatis
sekaligus sebagai hasil output data yang dikeluarkan dari PC.
Hasil dari bentuk maket yang dibuat terlihat pada Gambar 3.4.
(a)
(b)
Gambar 3.4 (a) Maket rumah tampak atas
(b) Maket rumah tampak depan
3.2
PERANGKAT LUNAK
Pengerjaan perangkat lunak difokuskan pada pengerjaan
program untuk identifikasi ciri – ciri wajah seseorang yang
kemudian memutuskan aksi dengan mengirim data melalui
parallel port. Adapun flowchart dari perangkat lunak dapat kita
lihat pada Gambar 3.5.
Gambar 3.5 Flowchart Sistem
28
Gambaran umum dari flowchart diatas dapat dibagi
menjadi banyak bagian yaitu:
1. Penskalaan
2. Segmentasi Warna Kulit
3. Gray Scale
4. Cropping
5. Kuantisasi
6. Verifikasi Menggunakan Euclidean Distance
7. Komunikasi Parallel
3.2.1
Penskalaan
Penskalaan berfungsi untuk mempercepat proses kerja
program. Pada pengerjaan proyek akhir ini menggunakan skala
1:2 sehingga gambar menjadi seperempat dari ukuran aslinya.
Berikut adalah listing program penskalaan :
Gambar 3.6 Program Penskalaan
For y = 0 To 239 Step Faktor
For x = 0 To 319 Step Faktor
R = 0
G = 0
b = 0
For yy = 0 To Faktor - 1
For xx = 0 To Faktor - 1
R = R + vIn(x + xx, y + yy).R
G = G + vIn(x + xx, y + yy).G
b = b + vIn(x + xx, y + yy).b
Next
Next
R = R / (Faktor * Faktor)
G = G / (Faktor * Faktor)
b = b / (Faktor * Faktor)
xx = x / Faktor
yy = y / Faktor
vOut(xx, yy).R = R
vOut(xx, yy).G = G
vOut(xx, yy).b = b
Next
Next
29
3.2.2
Segmentasi Warna Kulit
Segmentasi digunakan untuk membedakan warna kulit
dengan warna background. Pada batasan masalah ditentukan
bahwa warna background adalah biru sehingga untuk dapat
menentukan posisi wajah maka kita harus membuang warna
biru dan mengambil warna kulit yang telah kita asumsikan.
Rumus yang digunakan untuk menentukan warna kulit adalah :
( R – G ) < 128
&
R + G > B * 2
Dari rumus tersebut didapat bahwa warna kulit yang kita
asumsikan adalah warna oranye dan coklat. Warna kulit yang
terdeteksi tetap pada warna aslinya yang kemudian dijadikan
gray sedangkan warna yang tidak terdeteksi sebagai kulit
dijadikan warna hitam.
3.2.3
Gray Scale
Setelah kita bisa membedakan warna kulit dengan
background maka kita tidak menghiraukan lagi informasi data
warna. Oleh karena itulah warna yang ada dijadikan gray scale
dengan tujuan penyederhanaan format warna.
Metode yang dipakai untuk menjadikan warnaasli menjadi
gray scale adalah mengambil nilai R, G, B dan mengambil nilai
rata – rata dari nilai tersebut. Rumusnya adalah:
3.2.4
Cropping
Cropping digunakan untuk mendeteksi wajah seseorang,
karena yang digunakan adalah video capture maka objek yang
seharusnya diem tidak sepenuhnya diam dan kemungkinan akan
bergerak oleh karena itu digunakan cropping karena posisiobjek
dapat bebas, dan ukurannya dapat bebas serta hasil crop objek
yang ditemukan dapat dengan mudah diproses.
Listing programnya adalah sebagai berikut :
30
Gambar 3.7 Program Cropping
For y = 0 To 119
For x = 0 To 159
If vOut(x, y).R > 50 Then
If x > Xmax Then Xmax = x
If x < Xmin Then Xmin = x
If y > Ymax Then Ymax = y
If y < Ymin Then Ymin = y
End If
Next
Next
Listing program diatas merupakan program untuk membuat
cropping, untuk memperjelas objek yang dicropping maka
digunakan suatu kotak yang yang bisa berubah besarnya
mengikuti luasan objek. Listing programnya adalah sebagai
berikut :
Gambar 3.8 Program Tambahan Pada Proses Cropping
For x = Xmin To Xmax
vOut(x, Ymin).R = 255
vOut(x, Ymin).G = 255
vOut(x, Ymin).b = 255
vOut(x, Ymax).R = 255
vOut(x, Ymax).G = 255
vOut(x, Ymax).b = 255
Next
For y = Ymin To Ymax
vOut(Xmin, y).R = 255
vOut(Xmin, y).G = 255
vOut(Xmin, y).b = 255
vOut(Xmax, y).R = 255
vOut(Xmax, y).G = 255
vOut(Xmax, y).b = 255
Next
31
3.2.5
Kuantisasi
Kuantisasi pada proyek akhir ini digunakan untuk
menjadikan objek gambar menjadi ukuran 16 x 16. Hal ini
dimaksudkan agar data yang dibandingkan menjadi lebih sedikit
sehingga prosesnya menjadi lebih cepat dan lebih real time.
Berikut ini adalah listing programnya:
Gambar 3.9 Program Kuantisasi
For j = 0 To 15
For i = 0 To 15
VQ(i, j) = 0
Next
Next
For y = Ymin To Ymax
For x = Xmin To Xmax
i = (x - Xmin) * 15 / (Xmax - Xmin)
j = (y - Ymin) * 15 / (Ymax - Ymin)
VQ(i, j) = VQ(i, j) + vOut(x, y).R
Next
Next
s = (16 * 16) / (Xmax - Xmin + 1) / (Ymax - Ymin + 1)
If s > 1 Then Exit Sub
For j = 0 To 15
For i = 0 To 15
VQ(i, j) = VQ(i, j) * s
Next
Next
For y = 0 To 239
For x = 0 To 239
w = VQ(x \ 15, y \ 15)
If w > 255 Then w = 255
vOut(x, y).R = w
vOut(x, y).G = w
vOut(x, y).b = w
Next
Next
32
3.2.6
Euclidean Distance
Euclidean Distance merupakan suatu metode statistika
yang digunakan untuk mengelompokkan data dengan jarak
tertentu terhadap mean data tersebut sehingga diperoleh suatu
penyebaran data yang memiliki pola terhadap nilai mean.
Berikut ini adalah rumus dari euclidean distance:
Keterangan:
• D = distance
• Xi = nilai data input
• Yi = nilai data referensi
Pada pemrosesan citra, nilai yang dicari jarakperbedaannya
adalah antara data input dan referensinya. Analisa distance ini
juga dapat menentukan jarak diskriminan terhadap data input
dan referensi, sehingga dapat mengetahui termasuk dalam
kelompok mana data input itu berada, sehingga dapat diambil
kesimpulan pada proses analisanya.
Analisa ini dapat digunakan untuk melakukan pengenalan
pola dan melakukan identifikasi terhadap suatu benda. Data
referensi dapat berupa sekumpulan data yang telah tersimpan
dalam database dan data input dapat merupakan data input yang
masuk secara real time.
BAB IV
PENGUJIAN DAN ANALISA
Setelah menyelesaikan perencanaan dan pembuatan alat,
selanjutnya untuk mengetahui serta meyakinkan bahwa seluruh
sistem perancangan perangkat telah bekerja dengan baik, sehingga
dilakukan beberapa pengujian pada setiap tahap. Pengujian ini
meliputi beberapa tahap, yaitu:
1. Pengujian pada kamera digital ( webcam )
2. Pengujian pengambilan data
3. Pengujian perangkat lunak
4. Pengujian rangkaian driver motor
4.1
PENGUJIAN PADA KAMERA DIGITAL (WEBCAM)
4.1.1
Tujuan
Tujuan dari pengujian kamera digital adalah untuk
mengetahui apakah webcam yang kita gunakan dapat bekerja
sesuai yang kita harapkan dan VB dapat menerima gambar yang
ditangkap oleh kamera.
4.1.2
Peralatan
• Kamera digital (webcam)
• Personal Computer
• Objek gambar
4.1.3
Prosedur
•
Install driver kamera
• Buat program di VB sehingga dapat menerima gambar
yang ditangkap oleh kamera
• Running program di VB
• Mengamati hasil dan dianalisa
33
34
4.1.4
Hasil
Gambar 4.1 Hasil Pengujian
4.1.5
Analisa
Setelah program di-run maka picture box pada VB dapat
menerima gambar yang ditangkap oleh kamera. Hal ini
membuktikan bahwa kamera dapat bekerja dengan baik.
4.2
PENGUJIAN PENGAMBILAN DATA
4.2.1
Tujuan
Tujuan dari pengujian ini adalah data yang diambil
disimpan pada database dan dijadikan sebagai data referensi
sebagai pembanding dengan data yang akan diambil nanti saat
pengujian.
4.2.2
Peralatan
• Kamera Digital (webcam)
• Personal Computer
• Objek Gambar
4.2.3
Prosedur
• Buat program di VB yang sudah kita koneksikan
dengan database
• Ambil data objek
35
4.2.4
Hasil
Gambar 4.2 Hasil Pengujian
4.2.5
Analisa
Setelah program di-run dan kita tekan command button
untuk menyimpan data maka secara otomatis data tersebut akan
tersimpan pada database yang sudah kita koneksikan.
4.3
PENGUJIAN PERANGKAT LUNAK
4.3.1
Tujuan
Tujuan dari pengujian ini adalah data yang diambil
disimpan pada database dibandingkan dengan data pada objek
yang baru.
4.3.2
Peralatan
• Kamera Digital (webcam)
• Personal Computer
• Objek Gambar
4.3.3
Prosedur
• Buat program di VB yang sudah kita koneksikan
dengan database dan telah disediakan program untuk
dilakukan identifikasi
• Bandingkan database dengan data member
• Bandingkan database dengan data selain member
36
4.3.4
Hasil Pengujian Dengan Data Pada Member
Gambar 4.3 Hasil Pengujian
Dari pengujian diatas diharapkan bahwa gambar yang
ditangkap oleh kamera dapat dikenali sebagai member dan
dapat mengenali pula nama member tersebut dengan benar.
Tabel 4.1 merupakan tabel pengujian hasil terhadap
member no 1. Sedangkan Tabel 4.2 merupakan tabel pengujian
hasil terhadap member no 2. Hasil yang didapat kemudian
dihitung untuk mengetahui persentase keberhasilan dan dapat
kita ambil sebagai analisa.
37
Tabel 4.1 Hasil Pengujian
No
Benar
Tidak
1
-
ν
2
-
ν
3
ν
-
4
-
ν
5
ν
-
6
-
ν
7
ν
-
8
-
ν
9
ν
-
10
ν
-
Tabel 4.2 Hasil Pengujian
No
Benar
Tidak
1
-
ν
2
-
ν
3
-
ν
4
-
ν
5
ν
-
6
-
ν
7
ν
-
8
ν
-
9
ν
-
10
ν
-
4.3.5 Analisa
Dari tabel diatas dapat kita dapatkan hasil pengecekan satu
objek dengan 20 kali tes. Tingkat keberhasilan dalam
menentukan target adalah 50%. Perangkat lunak diatas dapat
mengenali bahwa objek yang ditangkap oleh kamera
merupakan data yang sesuai pada member, akan tetapi objek
yang ditangkap tidak dapat dikenali dengan nama yang benar.
38
4.3.6 Hasil Pengujian Dengan Data Selain Member
Dari pengujian diatas diharapkan bahwa gambar yang
ditangkap oleh kamera tidak dikenali sebagai member. Data
hasil pengujian dapat dilihat pada tabel berikut.
Tabel 4.3 merupakan tabel pengujian hasil terhadap obyek
no 1. Sedangkan Tabel 4.4 merupakan tabel pengujian hasil
terhadap obyek no 2. Hasil yang didapat kemudian dihitung
untuk mengetahui persentase keberhasilan dan dapat kita ambil
sebagai analisa.
Tabel 4.3 Hasil Pengujian
No
Benar
Tidak
1
-
ν
2
-
ν
3
ν
-
4
-
ν
5
ν
-
6
ν
-
7
ν
-
8
ν
-
9
ν
-
10
ν
-
Tabel 4.4 Hasil Pengujian
1
ν
-
2
ν
-
3
ν
-
4
ν
-
5
ν
-
6
ν
-
7
-
ν
8
ν
-
9
ν
-
10
ν
-
39
4.3.6
Analisa
Dari table diatas dapat kita dapatkan hasil pengecekan satu
objek dengan 20 kali tes. Tingkat keberhasilan dalam
menentukan target adalah 80%.
4.4
PENGUJIAN RANGKAIAN DRIVER MOTOR
4.4.1
Tujuan
Tujuan dari pengujian ini adalah mengetahui rangkaian
motor dapat bekerja dengan benar apabila diberi tegangan
berupa pulsa.
4.4.2
Peralatan
• Rangkaian Driver Motor
• Rangkaian Optocoupler
4.4.3
Prosedur
• Buat rangkaian driver motor DC 6V
• Buat rangkaian yang bisa menerima data dari parallel
4.4.4
Gambar Rangkaian
Gambar 4.4 Rangkaian Pengujian Motor DC
40
4.4.5
Analisa
Input dari optocoupler diberi tegangan 5Volt sebagai
pengganti logic 1 dari PC, Output optocoupler menjadi input
untuk rangkaian driver. Karena kaki basis terkena trigger maka
motor memutar. Jika input dari optocoupler diberi tegangan
0Volt sebagai pengganti dari logic 0 dari PC, Karena basis tidak
terkena trigger maka motor juga tidak akan bergerak.
BAB V
PENUTUP
Dari semua uraian dan pembahasan di atas, pada bab terakhir
ini kita akan mecoba menjelaskan tentang kesimpulan dan saran atas
terciptanya proyek akhir ini.
5.1
KESIMPULAN
Beberapa hal yang diamati sejak perencanaan sampai
evaluasi dapat diambil kesimpulan sebagai berikut :
•
Jika data pada database dibandingkan dengan objek pada
member maka dari 20 kali pengujian, didapat tingkat
keberhasilan pada proyek akhir ini adalah 50%.
•
Jika data pada database dibandingkan dengan objek selain
member maka dari 20 kali pengujian, didapat tingkat
keberhasilan pada proyek akhir ini adalah 80%.
• Kecepatan rata – rata frame per second pada proyek akhir
ini adalah 6,94 fps.
5.2
SARAN
Dalam pengerjaan proyek akhir ini tentu saja tidak selalu
sempurna untuk
itulah diambil beberapa saran demi
kesempurnaan proyek akhir ini di masa mendatang :
• Diharapkan proses kerja
lebih
cepat
dan
tidak
membandingkan semua nilai pixel yang ada tetapi nilai
pixel di tempat yang benar – benar merupakan ciri dari
wajah seseorang.
• Penggunaan beberapa metode yang berbeda pada
pengolahan citra akan didapatkan salah satu metode yang
paling presisi.
•
Jenis pola sampel yang lebih banyak dan variatif, sehingga
akan lebih banyak data yang dapat dijadikan sebagai
pembelajaran.
41
BAB VI
DAFTAR PUSTAKA
[1]
Ibnu Sutarwo, “Perangkat Lunak Sebagai Identifikasi
Ciri – Ciri Fisik Seseorang Melalui Kamera”, Tugas
Akhir, Jurusan Teknik ElektronikaPENS-ITS, 2005
[2]
Agung Prasetyo Harseno, “Aplikasi Webcam Untuk
Menangkap Objek Warna Merah Pada Robot Banteng
Dalam Permainan Matador”, Tugas Akhir, Jurusan
Teknik Elektronika PENS-ITS, 2006.
[3]
Achmad Basuki, Jozua F. Palandi, Fatchurrochman,
”Pengolahan Citra Digital Menggunakan Visual
Basic”, Graha Ilmu, 2005.
[4]
Bima Sena Bayu Dewantara, SST, “Materi Image
Prosesing
dan Aplikasinya”,
Pelatihan
Image
Prosesing, Surabaya, 2006
[5]
Linda G Shapira, George C. Stockman, “Computer
Vision”, PrenticeHall, 2001.
42
LAMPIRAN
LISTING PROGRAM VISUAL BASIC 6.0
Sub ProsesImage()
Penskalaan 2
Segmentasi
Cropping
Kuantisasi
End Sub
Public Sub Penskalaan(Faktor As Byte)
Dim xx As Integer
Dim yy As Integer
Dim R As Integer
Dim G As Integer
Dim b As Integer
Dim x As Integer
Dim y As Integer
For y = 0 To 239 Step Faktor
For x = 0 To 319 Step Faktor
R = 0
G = 0
b = 0
For yy = 0 To Faktor - 1
For xx = 0 To Faktor - 1
R = R + vIn(x + xx, y + yy).R
G = G + vIn(x + xx, y + yy).G
b = b + vIn(x + xx, y + yy).b
Next
Next
R = R / (Faktor * Faktor)
G = G / (Faktor * Faktor)
b = b / (Faktor * Faktor)
xx = x / Faktor
yy = y / Faktor
vOut(xx, yy).R = R
vOut(xx, yy).G = G
vOut(xx, yy).b = b
Next
Next
End Sub
Sub Segmentasi()
Dim y As Integer
Dim x As Integer
Dim R As Integer
Dim G As Integer
Dim b As Integer
Dim w As Integer
Dim xx As Integer
Dim yy As Integer
For y = 0 To 119
For x = 0 To 159
R = vOut(x, y).R
G = vOut(x, y).G
b = vOut(x, y).b
w = (R + G + b) \ 3
If (R + G) > b * 2 And Abs(R - G) < 128 Then
'If R > 95 And G > 40 And B > 20 And R > B And R >
G And Abs(R - G) > 15 Then
vOut(x, y).R = w
vOut(x, y).G = w
vOut(x, y).b = w
Else
vOut(x, y).R = 0
vOut(x, y).G = 0
vOut(x, y).b = 0
End If
Next
Next
End Sub
Sub Cropping()
Dim x As Integer
Dim y As Integer
Xmin = 1000
Xmax = 0
Ymin = 1000
Ymax = 0
For y = 0 To 119
For x = 0 To 159
If vOut(x, y).R > 50 Then
If x > Xmax Then Xmax = x
If x < Xmin Then Xmin = x
If y > Ymax Then Ymax = y
If y < Ymin Then Ymin = y
End If
Next
Next
'KOTAK
For x = Xmin To Xmax
vOut(x, Ymin).R = 255
vOut(x, Ymin).G = 255
vOut(x, Ymin).b = 255
vOut(x, Ymax).R = 255
vOut(x, Ymax).G = 255
vOut(x, Ymax).b = 255
Next
For y = Ymin To Ymax
vOut(Xmin, y).R = 255
vOut(Xmin, y).G = 255
vOut(Xmin, y).b = 255
vOut(Xmax, y).R = 255
vOut(Xmax, y).G = 255
vOut(Xmax, y).b = 255
Next
End Sub
Sub Kuantisasi()
Dim i As Integer
Dim j As Integer
Dim x As Integer
Dim y As Integer
Dim R As Integer
Dim G As Integer
Dim b As Integer
Dim s As Single
For j = 0 To 15
For i = 0 To 15
VQ(i, j) = 0
Next
Next
For y = Ymin To Ymax
For x = Xmin To Xmax
i = (x - Xmin) * 15 / (Xmax - Xmin)
j = (y - Ymin) * 15 / (Ymax - Ymin)
VQ(i, j) = VQ(i, j) + vOut(x, y).R
Next
Next
s = (16 * 16) / (Xmax - Xmin + 1) / (Ymax - Ymin + 1)
If s > 1 Then Exit Sub
For j = 0 To 15
For i = 0 To 15
VQ(i, j) = VQ(i, j) * s
Next
Next
Dim w As Integer
For y = 0 To 239
For x = 0 To 239
w = VQ(x \ 15, y \ 15)
If w > 255 Then w = 255
vOut(x, y).R = w
vOut(x, y).G = w
vOut(x, y).b = w
Next
Next
End Sub
Public Declare Function inp Lib "inpout32.dll" _
Alias "Inp32" (ByVal portaddress As Integer) As Integer
Public Declare Sub out Lib "inpout32.dll" _
Alias "Out32" (ByVal portaddress As Integer, ByVal value As
Integer)
Option Explicit
Dim i As Integer
Dim j As Integer
Dim data As Integer
Dim nm As String
Dim no As Integer
Dim nama As String
Dim hehe As Long
Dim d As Long
Dim banding As Integer
Dim lama As Integer
Dim waktu As Integer
Dim R(0 To 15, 0 To 15) As Integer
Private Sub Check1_Click()
VideoOut = (Check1.value = 1)
End Sub
Private Sub Command1_Click()
nm = Text2.Text
no = Text1.Text
For j = 0 To 15
For i = 0 To 15
Form1.Text1.Text = no
Form1.Text2.Text = nm
Form1.Text3.Text = i
Form1.Text4.Text = j
data = VQ(i, j)
Form1.Text5.Text = data
Adodc1.Recordset.AddNew
Next
Next
End Sub
Private Sub Form_Load()
out &H378, 2
If Not PilihKamera(pVideo.hWnd, 0) Then
MsgBox "Kamera tidak ditemukan"
mnuKeluar_Click
Else
Timer1.Interval = 1000
Timer1.Enabled = True
End If
Adodc1.Recordset.AddNew
lama = 5
Timer2.Interval = lama * 1000
Timer2.Enabled = True
End Sub
Private Sub mnuKeluar_Click()
Adodc1.Refresh
TutupKamera
Unload Me
End Sub
Private Sub Timer1_Timer()
Kecepatan = Format((Val(Kecepatan) + fps) / 2, "#0.0#")
fps = 0
End Sub
Private Sub Timer2_Timer()
Timer2.Enabled = False
Adodc1.Refresh
While Not Adodc1.Recordset.EOF
no = Adodc1.Recordset!no
nama = Adodc1.Recordset!nama
d = 0
For j = 0 To 15
For i = 0 To 15
R(i, j) = Adodc1.Recordset!data
Adodc1.Recordset.MoveNext
Next
Next
For j = 0 To 15
For i = 0 To 15
d = d + ((VQ(i, j) - R(i, j)) ^ 2)
Next
Next
If d < 150000 Then
Text6.Text = nama
out &H378, 0
waktu = 5
Timer3.Interval = waktu * 1000
Timer3.Enabled = True
Else
Text6.Text = "unknown"
End If
Picture1.Print no, nama, d
Wend
Timer2.Enabled = True
End Sub
Private Sub Timer3_Timer()
Timer3.Enabled = False
out &H378, 2
End Sub
BIODATA
Nama
: Tito Rooseno
Tempat, tanggal lahir
: Surabaya,3 Agustus 1986
Alamat
: Menanggal Indah IV / 7 Surabaya
Telepon
: (031) 8282667 / 08179696710
Hobi
: Sepakbola
Motto : Kerjakanlah apa yang kamu bisa sekarang,
jangan pernah menunda pekerjaan
Riwayat Pendidikan
:
• SDN Penganjuran V Banyuwangi
1992 – 1998
• SMPN 1 Banyuwangi
1998 – 2001
• SMAN 1 Glagah, Banyuwangi
2001 – 2004
• PENS - ITS Surabaya
2004 - 2007
Penulis telah mengikuti Seminar Proyek Akhir pada tanggal 25
Juli 2007, sebagai salah satu persyaratan untuk memperoleh Gelar Ahli
Madya (A.Md).