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