BAB III PERANCANGAN SISTEM 3.1 Definisi Masalah Dewasa ini

advertisement
BAB III
PERANCANGAN SISTEM
3.1 Definisi Masalah
Dewasa ini keberadaan robot sebagai mesin yang menggantikan manusia dalam
melakukan berbagai pekerjaan semakin diperlukan. Oleh karena itu robot dituntut untuk
semakin cerdas, seperti dapat mendeteksi keadaan di sekitar, misalnya : dapat mengukur
jarak suatu objek, dapat mengenali suatu objek dan sebagainya. Computer vision adalah
sebuah sistem yang dikembangkan untuk dapat memberikan informasi dari suatu
gambar, informasi yang dapat diberikan dapat berupa posisi objek dalam gambar
tersebut terhadap latar belakang (background) dan media pengambil gambar (kamera /
webcam), ataupun jarak antar objek dalam gambar dengan media pengambil gambar,
dan lain sebagainya. Pengukuran jarak menjadi penting dalam dunia robotika karena
merupakan dasar untuk sebuah robot agar dapat mendeteksi adanya objek di sekitarnya.
Oleh karena itu perlu dilakukan usaha untuk melakukan penelitian seberapa jauh
implementasi dapat dilakukan. Salah satu metode yang digunakan untuk mendapatkan
informasi jarak ini adalah perbandingan dua gambar dari gambar stereo (stereo image)
yang didapatkan dari penglihatan stereo (stereo vision). Stereo vision yang dirancang
menggunakan 2 buah webcam.
3.2 Perancangan Umum Sistem Stereo Vision
Gambar 3.1 Sistem secara menyeluruh
Gambar diatas adalah merupakan ilustrasi rancangan system “Stereo Eyes for Distance
Measurement” secara keseluruhan.
Perancangan sistem dilakukan di area terbuka (outdoor) agar objek mendapatkan
pencahayaan yang merata, sehingga mempermudah proses segmentasi. Kemudian,
untuk mendapatkan gambar stereo (stereo image), digunakan dua buah webcam yang
diletakkan terpisah dengan jarak 70cm dan sudut webcam menghadap ke objek adalah
sebesar 60o.
Adapun rumus untuk menentukan posisi kedua buah webcam seperti jarak antar
webcam dan sudut webcam yang baik sehingga dapat menghindari terjadinya out of
frame, yang berarti webcam tidak dapat menangkap gambar objek karena berada diluar
area cakupan webcam.
Gambar 3.2 Aturan segitiga
dimana :
Zobj = Jarak antara titik tengah kedua webcam dengan objek
β 1,2 : Sudut yang dibentuk antara garis kamera-objek dengan garis antar kamera
NB : ^ dibaca “dan”
Jarak antar webcam yang dipakai adalah 70cm (dalam hal ini b = 70cm), dan b1 = 70cm
/ 2 = 35cm. Kemudian jarak objek terhadap titik tengah antar kedua webcam diambil
yang terdekat adalah 50cm (yang ditentukan berdasarkan perkiraan aplikasi). Oleh
karena itu sudut yang baik untuk webcam agar tidak terjadi out of frame adalah :
tan β1 = 50cm / 35cm = 1,45287
β1 = 55,007979 ≈ 55o
Namun, pada kenyataan dilapangan sudut untuk webcam yang dipakai berkisar antara
55o – 60o (toleransi sebesar 5o) dikarenakan pengaturan posisi sudut webcam yang
masih dilakukan secara manual.
Setelah proses peletakan objek dan pengaturan posisi kedua webcam sudah selesai,
maka dilakukan kalibrasi secara manual untuk melihat apakah kedua buah webcam
melihat objek pada ketinggian yang sama. Dilakukan dengan mengaktifkan kedua buah
webcam menggunakan software Webcam XP yang dapat menampilkan hasil view dari
kedua buah webcam, kemudian digunakan pengamatan visual untuk mengukur
ketinggian dari objek yang di view oleh kedua buah webcam, apakah sudah sama atau
belum. Salah satu view dari webcam dijadikan sebagai acuan (misalnya view dari
webcam kiri), setelah itu dilihat apakah view dari webcam kanan sudah memperlihatkan
objek dengan ketinggian yang sama dengan objek yang di lihat pada webcam bagian
kiri, jika belum maka webcam kanan akan digeser hingga mendapatkan ketinggian
objek yang sama dengan webcam bagian kiri.
Sebagai ilustrasi :
Gambar 3.3 Kalibrasi dari kamera kiri
Gambar 3.4 Kalibrasi dari kamera kanan
x1, x2, dan y diusahakan sama antara gambar dari webcam kiri dan gambar dari
webcam kanan.
Setelah kalibrasi manual selesai dilakukan, maka webcam akan menangkap gambar dari
objek, dan kemudian disimpan kedalam Personal Computer untuk dilakukan
pengolahan gambar seperti perbaikan gambar (image enhancement), segmentation dan
cropping untuk mengekstrak informasi (dalam hal ini objek) dari latar belakang
(background) agar dapat diproses / dianalisa lebih lanjut.
Berikut adalah diagram alir dari perancangan umum sistem “Stereo Eyes for Distance
Measurement” :
Diagram 3.1 Diagram alir sistem secara keseluruhan
Sistem di dalam skripsi ini diawali dengan pengambilan gambar (image capturing) dari
sebuah objek dengan dua buah webcam dan kemudian dilakukan proses pengolahan
pada kedua gambar tersebut (image processing) untuk mengekstrak informasi yang
ingin di analisa (dalam hal ini adalah objek). Setelah itu di lanjutkan dengan proses
mencari korelasi antara kedua gambar tersebut (image correlation) untuk mengetahui
apakah kedua gambar objek yang ditangkap oleh kedua webcam adalah objek yang
sama. Jika objek tersebut adalah objek yang sama, maka proses dilanjutkan ke proses
pengukuran jarak (distance measurement), sedangkan jika kedua objek bukan objek
yang sama, maka pengukuran jarak tidak akan dilakukan.
Berikut adalah diagram alir proses pengambilan gambar :
Diagram 3.2 Diagram alir proses pengambilan gambar
Adapun proses pengambilan gambar yang diawali dengan inisialisasi program Webcam
XP agar kedua webcam dapat terhubung ke Personal Computer. Kemudian dilanjutkan
dengan peletakan objek pada jarak yang ditentukan, setelah didalam view dari webcam
sudah terdapat gambar objek (dimana tidak terjadi out of frame), maka dilanjutkan
dengan kalibrasi yang mengandalkan pengamatan visual.
3.3 Perancangan Sistem Pengolahan Gambar
Adapun diagram alir sistem pengolahan gambar secara umum, seperti berikut :
Diagram 3.3 Diagram alir proses pengolahan gambar secara umum
Proses segmentasi yang bertujuan untuk mengekstrak informasi yang ingin dianalisa
lebih lanjut (dalam hal ini objek) juga mempunyai beberapa tahap didalamnya, seperti
yang dapat dilihat pada diagram alir dibawah ini :
Diagram 3.4 Diagram alir proses image segmentation
Pada proses segmentasi diawali dengan proses grayscaling, yaitu proses
perubahan nilai pixel dari warna (RGB) 24 bit menjadi gray-level 8 bit. Grayscaling
dilakukan untuk mempermudah pengolahan gambar karena intensitas warna yang perlu
diproses hanya ada dua, yaitu hitam dan putih. Pada dasarnya proses grayscaling
dilakukan dengan meratakan nilai pixel dari 3 nilai RGB menjadi 1 nilai. Untuk
memperoleh hasil yang lebih baik, nilai pixel tidak langsung dibagi menjadi 3
melainkan terdapat presentasi dari masing-masing nilai. Salah satu presentasi yang
sering digunakan adalah 29,9% dari warna merak (Red), 58,7% dari warna hijau
(Green), dan 11,4% dari warna biru (Blue). Nilai pixel didapat dari jumlah presentasi 3
nilai tersebut.
Contoh dari proses grayscaling adalah sebagai berikut :
Gambar 3.5 Gambar RGB (Original)
Gambar 3.6 Gambar setelah proses Grayscaling
Setelah gambar diubah menjadi hitam putih (grayscale), dilanjutkan dengan proses
median filtering untuk menghilangkan derau (noise) yang ada pada gambar. Median
filtering bekerja dengan mengevaluasi tingkat brightness dari suatu pixel dan
menentukan pixel mana yang tingkat kecerahannya adalah nilai median (nilai tengah)
dari semua pixel. Nilai median ditentukan dari menempatkan brightness (kecerahan)
pixel pada urutan yang bertingkat dan memilih nilai tengah, sehingga angka yang
didapat dari brightness pixel yang ada menjadi kurang dari dan lebih dari nilai tengah
yang didapat.
Proses edge detection dilakukan setelah proses median filtering, edge detection
merupakan salah satu bagian dari proses segmentasi yang bertujuan untuk mengekstrak
fitur objek yang diperlukan untuk keperluan analisa. Dasar untuk melakukan edge
detection adalah mencari titik-titik pixel dalam gambar yang memiliki perubahan
luminasi yang besar, misalnya dari warna hitam menjadi putih, atau sebaliknya untuk
gambar yang berformat grayscale. Ada beberapa operator yang umumnya dapat
digunakan untuk melakukan edge detection, antara lain : Robert, Prewitt dan Sobel.
Namun pada perancangan sistem untuk edge detection pada skripsi ini menggunakan
operator Sobel. Biarpun pada kenyataannya operator Sobel memerlukan proses
perhitungan yang lebih lama dibandingkan operator lain. Akan tetapi, jika dalam proses
digunakan kernel berukuran besar, maka akan memperhalus gambar input sehingga
nantinya akan mereduksi noise.
Berikut adalah contoh proses edge detection yang dapat dilihat pada gambar dibawah
ini:
Gambar 3.7 Gambar original pada proses edge detection
Gambar 3.8 Gambar hasil dari proses edge detection
Operator sobel di sini hanya digunakan untuk mendeteksi tepi yang terdapat pada
gambar, namun masih belum dapat mengekstrak objek yang ada di dalam gambar
sepenuhnya, sehingga dilakukan calculated components untuk melihat komponenkomponen mana yang merupakan objek yang ingin diekstrak.
Algoritma untuk melakukan calculated components adalah diasumsikan yang menjadi
objek adalah yang mempunyai jumlah pixel hitam terbanyak pertama dan kedua,
algoritma ini tidak akan bekerja baik jika noise yang ada terlalu besar sehingga nantinya
algoritma tersebut akan memilih noise tersebut sebagai objek karena mempunyai jumlah
pixel hitam yang banyak (yang melebihi jumlah pixel hitam dari objek).
Berikut terdapat ilustrasi algoritma calculated component yang dijelaskan melalui
gambar-gambar pada halaman berikutnya :
Gambar 3.9 (a) Gambar grayscale pada contoh proses calculated component yang tidak
memiliki noise
Gambar 3.10 (b) Gambar hasil segmentasi pada contoh proses calculated component
yang tidak memiliki noise
Gambar 3.11 (c) Gambar hasil calculated component yang tidak memiliki noise
Pada gambar diatas, proses segmentasi yang dihasilkan dari gambar grayscale, masih
terdapat noise. Namun noise yang ada sedikit sehingga dengan algoritma calculated
component yang mencari jumlah pixel terbanyak pertama dan kedua, akhirnya di
dapatkan objek yang diinginkan. Lain halnya pada ilustrasi di bawah, dimana noise
yang ada setelah proses segmentasi memiliki jumlah pixel yang banyak, sehingga noise
tersebutlah yang dianggap sebagai objek.
Gambar 3.12 (a) Gambar grayscale pada contoh proses calculated component yang
memiliki noise
Gambar 3.13 (b) Gambar hasil segmentasi pada contoh proses calculated component
yang memiliki noise
Gambar 3.14 (c) Gambar hasil Calculated Component yang memiliki noise
Dari kedua ilustrasi yang sudah diperlihatkan di atas, dapat disimpulkan bahwa proses
pengolahan gambar yang bertujuan untuk menghilangkan noise menjadi sangat penting.
Image cropping dilakukan untuk memotong gambar yang hanya terdiri dari objek yang
telah diketahui dan benar-benar memisahkannya dengan latar belakang.
Berikut adalah contoh proses segmentasi dari gambar yang berformat grayscale hingga
proses image cropping:
Gambar 3.15 (a) Gambar grayscale pada proses image cropping
Gambar 3.16 (b) Gambar hasil edge detection pada proses image cropping
Gambar 3.17 (c) Gambar hasil segmentation pada proses image cropping
Gambar 3.18 (d) Gambar hasil image cropping
Proses pengolahan gambar dilakukan pada kedua buah gambar yang ditangkap oleh
webcam (gambar dari webcam kiri dan gambar dari webcam kanan). Sehingga pada
akhir proses pengolahan gambar didapatkan 2 buah gambar baru yang benar-benar
merupakan objek yang ingin dianalisa lebih lanjut (dalam hal ini gambar kubus).
Sebelum melangkah ke proses pengukuran jarak, dilakukan image matching untuk
mencari kesamaan (korespondensi) antara kedua gambar objek yang dihasilkan pada
proses pengolahan gambar, hal ini dilakukan untuk memastikan apakah webcam kanan
dan webcam kiri melihat pada objek yang sama. Metode untuk mencari kesamaan
tersebut dilakukan dengan teknik korelasi (cross correlation). Algoritma dari cross
correlation adalah melakukan scanning gambar secara vertical maupun horizontal, dan
kemudian mengalikan pixel-pixel yang berhubungan. Pixel-pixel yang sama akan
menghasilkan nilai korelasi yang tinggi dimana hal ini akan menunjukkan apakah dua
buah gambar yang di- cross correlation kan adalah menunjuk pada objek yang sama.
Jika hasil korelasi menunjukkan nilai diatas atau sama dengan 0,5, berarti kedua objek
merupakan objek yang sama, maka akan dilanjutkan pada proses pengukuran jarak
(distance measurement). Namun sebaliknya, jika hasil korelasi menunjukkan nilai
dibawah 0,5, kedua objek bukanlah merupakan objek yang sama, maka proses
pengukuran jarak tidak akan di lakukan.
Adapun diagram alir dari cross correlation adalah sebagai berikut :
Diagram 3.5 Diagram alir proses korelasi gambar
3.4 Proses pengukuran jarak
Proses pengukuran jarak akan dilakukan jika pada proses cross correlation disimpulkan
objek yang di tangkap oleh kedua webcam adalah objek yang sama.
Proses pengukuran jarak dapat dilakukan dengan 2 cara, yaitu :
- Triangulation (Aturan Segitiga)
- Curve Fitting (Pencocokan Kurva)
3.4.1 Triangulation
Metode pengukuran jarak dengan menggunakan Triangulation
dapat dilakukan karena posisi kedua buah webcam terhadap objek
membentuk segitiga.
Metode triangulation memiliki kelebihan sebagai berikut :
-
Menghitung disparity (kedalaman) dari suatu benda.
-
Karena dapat menghitung disparity, maka 3D reconstruction
dari objek dapat dilakukan.
Disamping kelebihan dari triangulation, adapun kelemahan dari metode
triangulation ini adalah sangat tergantung dengan ketepatan peletakan
kamera, parameter intrinsik seperti jarak fokus dari lensa kamera. Dan
mengingat keterbatasan dari system yang dimiliki dimana parameter
intrinsik dari webcam yang dipakai tidak dapat diubah (sudah tetap) dan
peletakan webcam yang masih dilakukan secara manual. Maka metode
triangulation menjadi kurang handal / tepat untuk pengukuran jarak pada
skripsi ini. Oleh karena itu, perlu digunakan cara lain yaitu curve fitting.
3.4.2 Curve Fitting
Pengukuran jarak dengan metode curve fitting menggunakan pendekatan
Look-Up Table (database). Yang artinya adalah untuk mengukur jarak
suatu objek, diperlukan database yang berisi jumlah pixel hitam dari
objek tersebut pada beberapa jarak tertentu (sample). Setelah data-data
tersebut didapat, maka dilakukan pencocokan kurva (curve fitting) untuk
mencari persamaan garis yang memenuhi titik-titik atau data-data
tersebut.
Sebagai contoh :
Objek yang berada dekat dengan webcam (sebagai contoh pada jarak 50
cm dari webcam) mempunyai jumlah pixel hitam yang besar / banyak.
Sedangkan objek yang berada jauh dari webcam (sebagai contoh pada
jarak 110 cm dari webcam) mempunyai jumlah pixel yang lebih rendah /
sedikit.
Gambar 3.19 Gambar objek yang dekat (50 cm) dengan webcam
Gambar 3.20 Gambar objek yang jauh (110 cm) dari webcam
Dengan curve fitting, dapat dicari persamaan yang menghubungkan
antara jumlah pixel terhadap jarak. Sebagaimana jika objek yang dekat
ditandai dengan jumlah pixel hitam yang banyak, sedangkan objek yang
jauh ditandai dengan jumlah pixel yang kecil / sedikit. Dan dengan
semakin menurunnya jumlah pixel dari objek maka dapat di ketahui
bahwa objek semakin jauh dari webcam.
Untuk cara pengukuran jarak setelah database dibuat adalah dengan
memasukkan jumlah pixel hitam dari suatu objek yang berada pada jarak
tertentu (bebas), dan kemudian memasukkan nilai jumlah pixel hitam
tersebut ke dalam persamaan garis / kurva yang telah didapatkan pada
pembuatan database sebelumnya.
Metode curve fitting mempunyai beberapa kelebihan seperti : algoritma
yang lebih sederhana karena hanya menggunakan database untuk
mencocokkan jumlah pixel hitam dan didapatkan hasil jarak objek,
pengaruh peletakan webcam tidak sesensitif pada metode triangulation,
dan penentuan parameter intrinsik dari webcam seperti titik fokus tidak
diperlukan.
Namun, disamping kelebihannya curve fitting juga mempunyai
kelemahan yaitu : sangat sensitif terhadap noise, karena jumlah pixel
(dalam hal ini pixel hitam) yang diukur / dijadikan database, maka
perbedaan jumlah pixel yang dikarenakan oleh noise akan sangat
berpengaruh pada proses pengukuran. Potensi kelemahan lainnya adalah
pengaruh
pencahayaan.
Pencahayaan
yang
tidak
menyebabkan perbedaan jumlah pixel yang didapat.
merata
akan
Download