BAB III PROSEDUR DAN METODOLOGI 3.1 Analisis 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 mengenali suatu objek, dapat mengukur jarak suatu objek dan dapat memodelkan objek ke dalam bentuk 3D. Computer vision adalah sebuah sistem yang dikembangkan untuk dapat memberikan informasi dari suatu citra, informasi yang dapat diberikan dapat berupa posisi objek dalam citra tersebut terhadap latar belakang (background) dan media pengambil citra (kamera), ataupun jarak antar objek dalam citra dengan media pengambil citra, dan lain sebagainya. Pengukuran jarak menjadi penting dalam dunia robotika karena merupakan dasar untuk sebuah robot agar dapat mendeteksi adanya objek di sekitarnya bahkan mengetahui bentuk dari objek yang dilihat dengan mengetahui kedalamannya. Oleh karena itu perlu dilakukan usaha untuk melakukan penelitian seberapa jauh implementasi dapat dilakukan. Salah satu metode yang digunakan untuk mendapatkan informasi tentang kedalaman objek ini adalah perbandingan dua citra dari citra stereo (stereo image) yang didapatkan dari penglihatan stereo (stereo vision).
43
44 3.2 Prosedur Stereo Vision Berikut adalah langkah-langkah yang akan dilakukan pada stereo vision :
START PROCESS
GRAYSCALE
CORRESPONDENCE
DISPARITY
DEPTH
PLOT 3D
END PROCESS Gambar 3.1 Langkah-langkah dalam stereo vision Pada start process dimana melakukan pengambilan citra stereo yang dapat digunakan untuk proses selanjutnya. Pengambilan citra stereo tidak dapat sembarangan
45 maka dapat menggunakan konsep Triangulation oleh karena itu untuk memudahkannya dengan mengambil citra dari sisi kiri dan kanan dengan menggunakan kamera tanpa rektifikasi (tanpa kemiringan) dengan mengukur jarak antar kamera pada saat pengambilan citra objek kiri dan citra objek kanan, agar posisi citra yang didapatkan sesuai yang digunakan dalam eksperimen ini.
Gambar 3.2 Proses pengambilan citra
Gambar 3.3 Hasil pengambilan citra 3.3 Grayscale Pada saat memasukkan citra kiri dan citra kanan akan mengalami proses grayscale yaitu proses perubahan nilai pixel dari warna (RGB) 24 bit menjadi gray-level
46 8 bit. Grayscaling dilakukan untuk mempermudah pengolahan citra karena intensitas warna yang perlu diproses hanya dari batasan antara warna hitam dan warna putih. Pada dasarnya proses grayscaling dilakukan dengan meratakan nilai pixel dari 3 nilai RGB. 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 merah (Red), 58,7% dari warna hijau (Green), dan 11,4% dari warna biru (Blue). Nilai pixel didapat dari presentasi 3 nilai tersebut.
Gambar 3.4 Citra RGB Original
Gambar 3.5 Citra Grayscale 3.4 Correspondence Setelah kita menentukan citra atau objek yang stereo, berupa citra kiri dan citra kanan maka proses selanjutnya adalah coresspondence untuk mencari titik-titik yang berkorespodensi dari kedua citra tersebut. Untuk pencarian titik-titik korespondensi
47 dilakukan dengan menentukan satu titik dalam citra sisi kiri, yang kemudian akan membentuk suatu epipole line. Di sepanjang epipole line tersebut maka dapat dikatakan titik di citra kanan berkorespodensi dengan titik di citra kiri. Metodologi corespondance yang dilakukan dengan cara yang umum, antara lain : 1. Melakukan image processing pada 2 image stereo dimana terdapat grayscaling kemudian mencari edge detection untuk menentukan garis-garis yang membentuk image tersebut. 2. Setelah didapatkan garis-garis tersebut, maka dilakukan korespondensi dimana dilakukan berdasarkan titik-titik sudut dan titik-titik yang khas saja. 3. Didapatkan titik korespondensi antara image kiri dan image kanan. Tetapi metodologi correspondace yang digunakan dalam eksperimen ini, dengan cara: 1. Menggunakan 2 citra stereo hanya dengan grayscale terlebih dahulu secara langsung. 2. Menentukan titik tertentu dari citra kiri lalu melakukan perhitungan SSD dan Cross-Corelations untuk menemukan titik yg berkorespondensi pada titik kanan.
Gambar 3.6 Citra pencarian titik korespodensi
48 Proses correspondance ini dilakukan delapan kali sesuai dengan kriteria eight point algorithm untuk memperoleh delapan titik-titik, maka akan diubah ke dalam fungsi fundamental matrix menjadi matrix yang selanjutnya akan digunakan untuk perhitungan epipolar. 3.4.1 Epipole Line Setelah menentukan titik korespondensi dari citra kiri dan citra kanan, program menghitung Fundamental Matrix. Kemudian menemukan parameter epipole line, dari koordinat titik pada citra kiri dan Fundamental Matrix. Dengan menarik garis pada di citra kanan seperti yang ditunjukkan citra. Karena benarbenar memilih 8 titik korespondensi, maka dihitung Fundamental Matrix, hanyalah perkiraan, dan dengan demikian mengalami kesalahan. Namun dibandingkan dengan kesederhanaan dan kecepatan, 8 titik algoritma masih merupakan salah satu algoritma terbaik yang digunakan untuk memperkirakan geometri epipolar. Metodologi epipole geometry dengan 8 point algorithm, antara lain: 1. Membaca objek kiri dan kanan Ini merupakan bagian untuk menentukan korespondensi dimana harus memiliki citra yang paralel antara citra kiri dan citra kanan agar dapat dilakukan eksperimen. 2. Memilih 8 titik yang sesuai dari citra kiri lalu program akan menemukan titik yang sesuai pada citra sebelah kanan dan seterusnya sampai 8 kali (correspondance).
49 8 titik korespondensi digunakan untuk menghitung persamaan Fundamental Matrix. 3. Membangun sistem matriks A dengan persamaan xx'f1 + xy'f2 + xf3 + yx'f4 + yy'f5 + yf6 + x'f7 + y'f8 + f9 = 0 Matriks A digunakan sebagai landasan untuk melakukan perhitungan Fundamental Matrix yang nantinya akan berguna untuk menentukan disparity map. 4. Menganalisis AAT matriks (8'9), dengan menggunakan Singular Value Decomposition (SVD). Untuk mengembalikan nilai AAT = UDVT. SVD merupakan metodologi yang digunakan karena SVD penting dan sering dijumpai pada setiap komputasi aljbar linear, sehingga menggunakan ini untuk mempermudah mencari nilai matriks. 5. Kolom U (8'8) adalah AAT dan eigenvectors dari kolom D (9'9) adalah eigenvectors dari AAT. Sementara D adalah (8 '9) matriks diagonal, mengandung nilai-nilai tunggal r diagonal, yang mewakili akar kuadrat dari nol eigenvalue dari kedua AAT dan ATA. 6. Memecahkan sistem (AAT) F = 0. Solusinya adalah komponenkomponen dari V kolom yang berkorespondensi dengan least singular value (eigenvalue) dari AAT.
50 7. Setelah Fundamental Matrix F, untuk masalah stabilitas, kita menghitung singular value decomposition dengan rumus F = UDVT. 8. Menetapkan singular value terkecil dalam diagonal D setara dengan 0 jika D adalah corrected matrix. 9. Perkiraan yang benar dari F adalah FP dengan rumus FP = UD'VT. 10. Menggunakan
FP
corrected
fundamental
matrix
untuk
menghitung dan menarik garis epipolar. 11. Membaca titik pl dari citra kiri pl = (x, y, 1). Kemudian mengalikan dengan FP Fundamental Matrix akan memberikan parameter untuk epipolar line di sebelah kanan citra: (a, b, c) = FP pl 12. Persamaan epipolar line :
13. Epipolar menarik garis di sebelah kanan citra, dengan menggunakan persamaan di atas. Hal ini dilakukan hanya dengan substitusi langsung.
51
Gambar 3.7 Epipole line 3.5 Disparity Proses yang dilakukan selanjutnya setelah mendapatkan titik korespondensi dari citra sisi kiri dan sisi kanan adalah untuk menentukan disparity. Untuk membangun suatu disparity map diperlukan informasi tentang disparity setiap titik dari citra agar didapatkan disparity map secara menyeluruh. Dan disparity map juga dapat dibentuk dengan hanya menggunakan beberapa titik saja, walaupun hasilnya tidak akan sebaik apabila semua titik informasi didapatkan. Dalam skripsi ini untuk menentukan disparity setiap titik digunakan SSD (sum of squared difference). SSD digunakan karena tidak akan terjadi bias jika ada daerah atau wilayah yang sangat kecil dan sangat besar nilai intensitasnya.
Gambar 3.8 Citra pembentukan disparity map
52 Dari hasil disparity map yang didapatkan, semakin cerah warnanya berarti posisi objek tersebut berada di paling depan sedangkan semakin hitam warnanya maka posisi objek berada paling belakang, dan terbukti bahwa dengan disparity map maka dapat ditentukan nilai kedalaman suatu objek.
3.6 Depth Dalam
menentukan
kedalaman
(depth)
objek
sebelumnya
dilakukan
pengkalibrasian kamera, dimana pengkalibrasian kamera ini digunakan untuk menyesuaikan kedalaman yang sebenarnya dengan kedalaman yang diperoleh dengan program. Mencari depth (z) dilakukan dengan cara menggunakan perhitungan triangulation dengan mentukan nilai f (focus length = nilai fokus yang ada pada kamera), T (baseline = jarak antar kamera), dan nilai disparity dari tiap titik yang berkorespondensi.
Gambar 3.9 Perhitungan depth dengan triangulation
53 Dengan menggunakan metode triangulation memiliki kelebihan sebagai berikut : - Menghitung depth dari suatu benda. - Karena dapat menghitung depth maka 3D object reconstruction dapat dilakukan. Metode triangulation memiliki kelebihan tetapi metode ini juga memiliki kelemahan. Adapun kelemahan dari metode triangulation adalah sangat tergantung dengan ketepatan peletakan kamera, karena parameter instrinsik seperti fokus lensa kamera dan mengingat keterbatasan dari sistem. Semakin banyak ditemukannya titik yang berkorespondensi maka kemungkinan titik tersebut dapat digunakan untuk mencari nilai depth, dan jika banyak nilai depth yang diperoleh maka dapat dilakukan reconstruction image 3D yang merupakan hasil akhir dari proses ini.