28 BAB 3
METODE PERANCANGAN 3.1 Evaluasi Metode dan Algoritma Stereo Vision
Evaluasi terhadap beberapa metode dan algoritma yang ada untuk memperoleh informasi kedalaman berdasarkan stereo vision.
3.1.1 Metode Curve Fitting (Salim, Suriani, Andianto, 2009)
Metode ini menggunakan pendekatan look-up table untuk memperoleh informasi kedalaman. Dengan kata lain diperlukan sebuah database yang menyimpan sekumpulan informasi mengenai hubungan antara kedalaman dan jumlah pixel tertentu dari objek. Database diperoleh dengan melakukan proses sampling pada jarak-jarak tertentu dan menghitung jumlah pixel yang ada. Setelah database terbentuk, maka dilakukan curve
fitting untuk memperoleh sebuah kurva atau persamaan matematika yang
paling tepat untuk menggambarkan sekumpulan data yang ada. Hal ini mungkin untuk diterapkan karena jumlah pixel objek akan semakin berkurang seiring bertambahnya nilai kedalaman.
Peneliti lebih memilih menggunakan metode curve fitting dibandingkan dengan triangulation dengan pertimbangan sistem kamera yang digunakan masih berupa dua buah kamera yang disusun dalam geometri
stereo vision secara manual, sehingga extrinsic parameter dari sistem stereo vision ini tidak dapat dijaga pada nilai yang tetap.
Persamaan yang digunakan untuk melakukan curve fitting adalah fungsi exponential, power law dan polynomial 4th. Dari hasil percobaan diperoleh bahwa curve fitting dengan polynomial 4th menghasilkan error yang lebih kecil dibandingkan dengan persamaan curve fitting yang lain.
Dalam menentukan jumlah pixel, ada beberapa proses yang dilakukan seperti pendeteksian tepi, region growing dan region splitting and
merging untuk melakukan segmentasi antara objek dengan lingkungan.
Jumlah pixel yang dikalkulasi adalah pixel yang terdapat pada objek yang diperoleh berdasarkan hasil segementasi ini. Sebelum melakukan proses estimasi kedalaman, dilakukan proses korelasi untuk menentukan apakah kamera kiri dan kanan melihat objek yang sama atau tidak. Jika nilai hasil korelasi cukup tinggi atau kedua kamera melihat objek yang sama, maka akan dilanjutkan dengan proses estimasi kedalaman objek.
Kelebihan dari metode ini adalah memiliki tingkat keakurasian yang cukup tinggi, dan performanya tidak terpengaruh oleh parameter dan posisi kamera yang digunakan. Namun metode ini, hanya dapat digunakan untuk mendeteksi dan mengestimasi kedalaman objek yang telah terdapat didalam database yang dimiliki. Selain itu tingkat noise dari pencahayaan juga sangat mempengaruhi hasil deteksi karena dapat mempengaruhi jumlah pixel yang dijadikan acuan untuk memperoleh informasi kedalaman.
Menurut penulis, metode ini dapat diaplikasikan dengan menggunakan satu buah kamera saja, tidak perlu menggunakan dua buah kamera yaitu
stereo vision system. Karena informasi kedalaman hanya bergantung
pada jumlah pixel dari objek yang terdeteksi dan data dari database yang dimiliki.
3.1.2 Metode Geometrical Derivations (Mrovlje, Vrancic, 2008)
Melalui metode yang dikembangkan oleh Jernej Mrovlje dan Damir Vrancic, maka informasi kedalaman objek dapat diperoleh dengan menggunakan persamaan yang diturunkan berdasarkan pada geometri dari stereo vision sebagai beikut ini:
Gambar 3.2 Geometri Satu Kamera (Sumber: Mrovlje, Vrancic, 2008)
Pada metode ini, persamaan yang digunakan untuk menghitung kedalaman objek diturunkan dari geometri pada gambar diatas, dengan menggunakan persamaan trigonometri. Proses penurunannya adalah:
2 1 2 1 2 1 tan tan tan tan ϕ ϕ ϕ ϕ + = + = + = B D D D B B B (1) = − = 2 tan tan 2 2 tan tan 2 0 2 0 2 0 1 0 1 ϕϕ ϕϕ x x x x (2)
Dari persamaan (1) dan (2) diperoleh:
(
xL xD)
Bx D − = 2 tan 2 0 0 ϕdengan,
D = kedalaman objek dari kamera B = baseline, jarak antar dua kamera
0
ϕ = horizontal angle of view
(
x1−x2) (
= xL −xD)
= disparity0
x = resolusi gambar
Dengan menggunakan metode ini, setiap kesalahan satu pixel dari hasil deteksi posisi objek pada kamera kanan akan menghasilkan error dalam perhitungan kedalaman objek sebesar:
( )
∆ϕ = ∆ tan 2 B D D dengan, D ∆ = error kedalaman ϕ∆ = besarnya angle of view dari satu pixel
0 0 x ϕ ϕ = ∆
Dari persamaan error deteksi kedalaman ( D∆ ) ini, terlihat bahwa keakurasian deteksi dengan menggunakan metode ini bergantung pada beberapa variabel yaitu, field of view dari kamera, baseline dan resolusi gambar yang digunakan.
Proses pendeteksian objek pada metode ini dilakukan secara manual, pengguna memilih objek yang berada pada gambar dari kamera kiri dan
dan dengan menggunakan metode korelasi atau area akan ditemukan objek serupa pada gambar dari kamera kanan. Fungsi atau kriteria yang digunakan untuk mengecek kesamaan antar window adalah rata-rata dari selisih setiap pixel dalam window. Window dengan nilai rata-rata selisih terkecil adalah window yang paling mirip dengan window dari pixel acuan.
Metode ini lebih baik dibandingkan dengan metode yang pertama, karena proses deteksi tidak bergantung pada kondisi objek, melainkan geometri dari kamera. Namun tingkat keakurasian pendeteksian kedalamannya bergantung pada variabel yang cukup banyak. Selain itu pendeteksian objeknya masih dilakukan secara manual.
3.1.3 Metode 3D Reconstruction (Nedevschi et al, 2004)
Metode yang dikembangkan oleh Sergiu Nedevschi et al ini memiliki pendekatan yang berbeda dengan metode yang telah disebutkan sebelumnya. Dalam metode ini, dilakukan rekonstruksi 3D secara menyeluruh untuk mendeteksi dan mengestimasi posisi objek. Titik-titik 3D hasil rekonstruksi akan dikelompokkan menjadi objek berdasarkan tingkat kepadatannya. Titik 3D yang terlalu jauh atau terlalu tinggi juga dieliminasi dan sisanya berada dalam suatu ruang yang dinamakan SOI (Space of Interest). Asumsi lain yang diaplikasikan adalah tidak ada objek yang berada diatas objek lainnya. Dengan demikian proses
hasil rekonstruksi dilihat dari atas. Daerah dengan kepadatan titik 3D yang tinggi merepresentasikan dan menyatakan posisi dari objek.
Sebelum melakukan pengelompokkan, pada metode ini dilakukan proses kompresi terlebih dahulu, karena titik – titik 3D semakin jarang seiring dengan bertambahnya kedalaman. Persamaan kompresi yang digunakan adalah: k Z f Z Scale Z Scale X col Z Z row f k . 1 . ) ( ) ( . log min 1 = = = + dengan, Z = kedalaman
f = kamera focal length
k = konstanta yang memenuhi kondisi
• Tidak membagi sebuah objek menjadi beberapa objek
• Tidak menggabungkan beberapa objek menjadi satu objek
Dalam melakukan rekonstruksi untuk memperoleh titik 3D, ada beberapa batasan yang digunakan, yaitu hanya tepi dari gambar kiri yang dicari pasangannya pada gambar kanan. Hal ini dilakukan untuk memperbaiki
response time dan mempermudah proses pencarian. Fungsi sum of absolute differences (SAD) digunakan untuk menentukan kemiripan
pixel. Pasangan pixel yang ambigu dieliminasi dan hanya pasangan pixel yang pasti saja yang direkonstruksi mejadi titik 3D. Teknik rekonstruksi yang digunakan adalah triangulation, yaitu dengan melakukan komputasi terhadap perpotongan dua buah sinar proyeksi dari titik 3D yang sama.
Oleh karena itu tingkat keakurasian deteksi akan bergantung pada keakurasian proses kalibrasi untuk mendapatkan intrinsic dan extrinsic parameter dari kamera.
Dengan menggunakan metode ini berbagai jenis objek dapat dideteksi secara otomatis dan diestimasi posisinya dengan batasan bahwa objek memiliki tingkat kepadatan titik 3D yang cukup tinggi. Menurut Sergiu Nedevschi et al, hasil dari metode ini dapat ditingkatkan dengan menggunakan fungsi korelasi yang lebih pintar, yang dapat membedakan pixel yang ambigu, bukan mengeliminasinya.
Metode ini yang selanjutnya akan digunakan sebagai acuan dalam perancangan stereo vision dalam Skripsi ini dengan pertimbangan proses deteksi objek dapat dilakukan secara otomatis berdasarkan tingkat kepadatan titik 3D dan posisi objek yang dapat diestimasikan terdiri dari dua nilai yaitu posisi pada sumbu X (horisontal) dan Z (kedalaman).
3.2 Rancangan Perangkat Keras
Berikut ini adalah rancangan dari perangkat keras yang digunakan untuk membangunn sistem pada skripsi ini.
3.2.1 Diagram Blok Sistem
Perangkat keras yang digunakan terdiri dari satu buah kamera stereo dan satu buah notebook.
3.2.2 Kamera Stereo
Kamera yang digunakan adalah minoru 3D webcam dengan baseline sebesar ±60mm dan dua buah kamera identik. Kamera digunakan untuk menghasilkan gambar input kiri dan kanan yang nantinya akan diproses lebih lanjut. Ukuran gambar yang diambil adalah 640x480.
Dari hasil kalibrasi, penulis menyimpulkan bahwa dalam skripsi ini tahap rektifikasi tidak perlu dilakukan. Beberapa pertimbangan yang mendasari hal ini adalah:
• Proses rektifikasi memerlukan waktu komputasi rata-rata 0.7s.
• Perbedaan sebelum dan sesudah rektifikasi tidak signifikan.
Berikut ini adalah matriks rotasi (R) dan translasi (T) sebelum dan sesudah rektifikasi:
om adalah vektor rotasi yang menyimpan informasi sumbu dan sudut rotasi kerangkan acuan kamera kanan terhadap kerangka acuan kamera kiri. om dan R dihubungkan menggunakan formula rodrigues.
Dari vektor om ini diperoleh bahwa sumbu rotasi dari minoru 3D webcam yang digunakan adalah [0.5388; -0.6240; -0.5660] dengan sudut rotasi sebesar 0.0080. Untuk nilai matriks translasi dinyatakan dalam satuan milimeter, perbedaan sebelum dan sesudah rektifikasi sebesar 0.0647mm dan 0.2269mm. Menurut penulis nilai ini dapat diabaikan jika dibandingkan dengan waktu komputasi yang diperlukan.
3.2.3 Notebook
Notebook digunakan untuk memproses gambar input yang diperoleh dari
minoru 3D webcam untuk memperoleh informasi mengenai jumlah objek dan posisi objek yang terdeteksi terhadap kamera. Spesifikasi notebook yang digunakan:
• Prosesor: Intel(R) Core(TM) i7-2620M CPU @ 2.70GHz
• RAM : 4,00 GB
3.3 Rancangan Peranti Lunak
Piranti lunak yang digunakan untuk mengolah gambar adalah MATLAB versi R2012a (7.14.0.739) 64-bit dan compiler c++ yang digunakan adalah Microsoft Visual Studio 2010.
3.3.1 Pengambilan Gambar
Pengambilan gambar dilakukan dengan menggunakan fungsi-fungsi yang telah disediakan oleh MATLAB, seperti membuat direktori untuk menyimpan gambar yang diambil, inisialisasi kamera dan pengambilan
snapshot gambar. Hal ini dilakukan karena program yang disertakan oleh
minoru 3D webcam tidak memiliki kemampuan untuk mengambil gambar kiri dan kanan secara terpisah.
Sebelum mengambil gambar, pastikan sumbu horisontal kamera sejajar dengan sumbu horisontal objek dan sudut pandang kamera sejajar dengan permukaan/alas dari model lingkungan yang telah dirancang. Hal ini dilakukan untuk mempermudah proses pengukuran jarak. Berikut ini adalah diagram alir dari program pengambilan gambar yang digunakan:
3.3.2 Program Utama
Gambar 3.6 Diagram Alir Program Utama
Program utama secara umum sama seperti proses pengolahan gambar pada sistem yang lain, yaitu terdiri dari image preprocessing dan image
processing. Dalam skripsi ini tahapan image preprocessing yang
digunakan adalah proses grayscaling, filtering, dan pendeteksian tepi. Untuk image processing atau pengolahan gambar terdiri dari proses
stereo matching, membangun disparity map, rekonstruksi 3D, kompresi
titik 3D hasil rekonstruksi, clustering dan estimasi posisi. Berikut ini adalah diagram alir yang menggambarkan tahapan dari image
preprocessing dan image processing yang digunakan pada sistem yang
Gambar 3.7 Diagram Alir Image Preprocessig
Gambar 3.8 Diagram Alir Image Processing
Proses grayscaling adalah sebuah proses untuk mengkonversikan gambar dari RGB menjadi grayscale, dengan tujuan untuk menyederhanakan proses komputasi dari 24 bit menjadi 8 bit. Contoh hasil proses
Gambar 3.9 Grayscaling (a) RGB; (b) Grayscale
Setelah proses grayscaling, proses selanjutnya adalah median filtering yang bertujuan untuk mengurangi noise yang ada pada gambar. Ukuran
window yang digunakan adalah 3x3. Dengan pertimbangan agar nilai
yang ada pada setiap pixel objek tidak berubah secara signifikan dan untuk menekan waktu komputasi dari proses ini. Berikut ini contoh gambar sebelum dan sesudah median filtering:
Gambar 3.10 Median Filtering; kiri, original; kanan hasil filter
Sebelum melakukan proses stereo matching, akan dilakukan proses pendeteksian tepi terlebih dahulu. Pada skripsi ini yang digunakan adalah
canny edge detector dengan pertimbangan metode ini memiliki tingkat
memiliki noise (Maini, Aggarwa, 2009) dan menghasilkan tepi yang kontinue dengan ketebalan satu pixel (Nadernejad, Sharifzadeh, Hassanpour, 2008).
Nilai parameter yang digunakan adalah
σ
, standar deviasi dari filter gaussian sebesar 2, high threshold, 0.2 dan low threshold, 0.08. Ketiga nilai parameter ini sangat memperngaruhi kinerja atau performa daricanny edge detector. Oleh karena itu, nilai parameter yang digunakan
perlu disesuaikan dengan kondisi lingkungan yang menjadi pusat perhatian. Berikut ini adalah contoh hasil proses pendeteksian tepi menggunakan canny edge detector:
Gambar 3.11 Canny Edge Detector
Tujuan dari proses ini adalah untuk mengurangi waktu komputasi
disparity map, karena jumlah pixel yang perlu dicari pasangannya
hanyalah pixel yang berupa tepi. Selain itu dengan melakukan proses pendeteksian tepi dapat membantu dalam melakukan segementasi antara objek dengan lingkungan.
3.3.3 Effecient LArge-scale Stereo (ELAS)
Untuk proses stereo matching dan pembuatan disparity map, penulis mengimplementasikan metode ELAS. Keunggulan dari metode ini adalah kecepatan proses matching pada gambar beresolusi tinggi dan memiliki kemampuan untuk mengurangi keambiguan dalam proses
matching hingga batasan tertentu (Geiger, Roser, Urtasun, 2010). Pixel
yang ambigu adalah pixel yang sulit ditemukan pasangannya, misal permukaan yang tidak bertekstur. Hal ini bisa tercapai karena metode ini menggunakan support point dan prior disparity dalam melakukan proses
stereo matching.
Support point, adalah pixel yang dapat dicari pasangan-nya dengan
mudah karena tekstur dan keunikannya. Berikut ini adalah contoh dari
support point pada pasangan gambar:
Proses stereo matching, untuk menentukan support point dilakukan dengan menggunakan metode korelasi dan kriteria yang diterapkan adalah jarak antar vektor yang terbentuk dengan menggabungkan respon filter sobel horisontal dan vertikal dari kedua window. Filter sobel yang digunakan menggunakan mask berukuran 3x3 dan window yang digunakan berukuran 5x5.
Ada beberapa kriteria tambahan yang diterapkan dalam menentukan
support point untuk menjamin bahwa pasangan pixel benar-benar tepat
(tidak terjadi false matching), yaitu left-right consistency,
pengeliminasian support point yang memiliki nilai disparity yang berbeda dari support point disekitarnya dan pengeliminasian support
point yang memiliki perbandingan nilai antara kandidat pixel terbaik
pertama dengan kandidat pixel terbaik keduanya melebihi suatu nilai
threshold.
Dengan menggunakan support point ini, maka akan dibentuk sebuah
mesh 2D menggunakan delaunay triangulation.
Kemudian, prior disparity diperoleh dengan mengkomputasikan
piecewise linear function pada 2D mesh yang terbentuk menggunakan delaunay triangulation pada langkah sebelumnya.
Gambar 3.14 Prior Disparity (Sumber: Geiger, Roser, Urtasun, 2010)
Langkah selanjutnya adalah stereo matching dengan menggunakan
probabilistic generative model.
Gambar 3.15 Probabilistic Generative Model (a) model grafik dan proses sampling; (b) gambar kiri; (c) rata-rata dari hasil sampling; (d) gambar kanan (Sumber: Geiger, Roser, Urtasun, 2010)
• Dengan mengetahui support point (sm) dan observasi dari gambar kiri o(ln), maka dapat diperoleh disparity dn.
• Dengan mengetahui observasi dari gambar kiri (l)
n
o dan disparity dn maka observasi pada gambar kanan ( r)
n
o dapat diketahui.
• Lakukan proses ini 100 kali untuk setiap pixel, kemudian komputasikan rata-rata dari hasil yang diperoleh untuk mendapatkan versi blur dari gambar kanan (sample mean).
Untuk mengestimasi disparity, ELAS menggunakan metode estimasi MAP (maximum a-posteriori):
(
d o o o S)
p d r N r l n n n argmax | , ,..., , ) ( ) ( 1 ) ( * =dengan, o1(r),...,oN(r) adalah semua observasi pada gambar kanan yang berada pada epipolar line dari on(l). Berikut ini contoh disparity map yang diperoleh dengan menggunakan ELAS:
Gambar 3.16 Disparity Map; setelah proses canny edge detector
3.3.4 Rekonstruksi 3D
Setelah memperoleh informasi disparity, maka proses rekonstruksi 3D sudah dapat dilakukan. Untuk memperoleh informasi nilai X dan Y,
dilakukan proses backprojection dari gambar 2D ke kerangkan acuan dunia dengan menggunakan persamaan:
1] y [x K ] z y [xw w w T = -1 im im T , dengan
Informasi kedalaman atau jarak dari objek ke kamera (depth), nilai Z, diperoleh melalui: disparity T f z x w =
Karena nilai disparity yang diperoleh dari ELAS tidak dapat digunakan secara langsung dalam persamaan ini karena tidak memiliki satuan dan mengingat nilai baseline (Tx) antara satu sistem stereo vision dengan sistem stereo vision yang lain tidak pasti sama, maka persamaan diatas dapat ditransformasikan menjadi bentuk yang lebih umum yaitu:
disparity b a
zw = +
Kemudian, nilai dari a dan b akan ditentukan dengan menggunakan metode least square dengan input 3 pasang nilai depth dan disparity. Pada proses rekonstruksi 3D dilakukan subsampling, dengan step sebesar dua. Hal ini dilakukan dengan tujuan untuk mengurangi waktu komputasi dari proses clustering. Berikut ini contoh hasil rekonstruksi 3D:
(a)
(b)
(c) (d)
Gambar 3.17 Rekonstruksi 3D (a) original; dilihat dari (b) bidang XOZ; (c) bidang XOY; (d) bidang ZOY
Yang perlu diperhatikan adalah titik 3D hasil rekonstruksi pada bidang XOZ, karena dalam perancangan sistem ini tidak ada objek yang berada diatas atau dibawah objek yang lain dan objek berada tepat diatas permukaan/alas dari lingkungan.
Setelah melakukan rekonstruksi 3D, sistem akan melakukan kompresi terhadap hasil rekonstruksi tersebut dengan tujuan untuk memampatkan titik 3D yang terbentuk. Hal ini dilakukan karena semakin jauh titik-titik 3D, maka posisinya akan semakin menyebar (Nedevschi, 2004). Persamaan kompresi yang digunakan adalah:
Gambar 3.18 Fungsi Kompresi
Gambar 3.19 Hasil Kompresi (XOZ); (a) sebelum; (b) sesudah
Gambar 3.21 Hasil Kompresi (ZOY); (a) sebelum; (b) sesudah
3.3.5 DBSCAN
Setelah proses kompresi titik-titik 3D, langkah selanjutnya adalah mengelompokkan titik-titik tersebut menjadi objek, yaitu proses
clustering. Proses ini dilakukan menggunakan algoritma DBSCAN
dengan input berupa data set yang menyimpan informasi nilai X dan Z dari hasil kompresi, serta suatu threshold yang menentukan jumlah minimum titik 3D yang diperlukan untuk membentuk suatu kluster. Nilai threshold yang digunakan pada skripsi ini adalah 20. Berikut ini adalah contoh hasil dari proses DBSCAN:
Gambar 3.22 DBSCAN
Sebuah kluster akan dinyatakan sebagai objek jika jumlah titik dalam kluster tersebut lebih besar dari suatu nilai threshold. Pada skripsi ini nilai threshold yang digunakan adalah 875. Posisi objek yang terdeteksi dinyatakan dalam bidang XOZ, seperti pada gambar berikut ini:
Gambar 3.23 Posisi Objek
X- menunjukkan objek berada di sebelah kiri kamera dan X+menunjukkan objek berada di sebelah kanan kamera, Z menunjukkan jarak tegak lurus objek ke kamera. Nilai Z merupakan nilai rata-rata dari nilai Z semua titik dari sebuah kluster dan X merupakan nilai X terkecil dan X terbesar dari nilai X semua titik dari sebuah kluster
3.4 Rancangan Pengumpulan Data
Untuk melakukan pengetesan terhadap performa sistem, penulis mengumpulkan data dari beberapa kondisi lingkungan yang sudah diatur, yaitu:
• Latar lingkungan menggunakan papan yang tidak bertekstur, dengan tujuan untuk memisahkan objek dari lingkungan.
• Objek yang digunakan berupa dua buah kardus berukuran 39 x 22.5 x 27 (cm) dan satu buah kardus berukuran 42 x 42x 42 (cm).
• Jumlah objek dalam suatu kondisi: 1-2 buah.
• Gambar diambil dalam 3 rentang tingkat pencahayaan yang berbeda, yaitu 6-47 lux, 158-245 lux, 1666-1805 lux.
• Posisi X dan/atau Z dari objek pada setiap kondisi dibuat berbeda (dalam 1 tingkat pencahayaan yang sama).
Proses pengukuran jarak dan intensitas cahaya yang dilakukan pada skripsi ini dapat dilihat pada gambar berikut ini: