BAB 3 ANALISIS DAN PERANCANGAN Pada bab ini, akan diuraikan perancangan program, mulai dari perancangan algoritma sampai rancangan tampilan. Selain itu akan disajikan juga skema flowchart yang menjelaskan jalannya program. 3.1. Perancangan Program Perancangan program aplikasi ini dilakukan dengan menerapkan Lucas- Kanade Method pada konsep Motion Analysis dalam Optical Flow. Dengan hasil Analisis dan Optical Flow tersebut, akan diperoleh posisi relatif pergerakan setiap titik terhadap bidang gambar semula. Kemudian, dengan menggunakan hasil dari pengenalan tersebut, akan dijadikan sebagai input untuk aplikasi Augmented Reality. Pada aplikasi Augmented Reality, sebuah objek tiga dimensi akan di-render pada marker yang telah dibuat, dan akan bergerak. Secara terperinci, perancangan dan aplikasi dibagi menjadi beberapa bagian, yaitu sebagai berikut: 3.1.1 Menentukan Optical Flow Proses ini dimulai dengan mengakses kamera pada komputer (Plug-and-play webcam, embedded webcam, dan sebagainya), kemudian melakukan kalibrasi singkat, dan menangkap inputan berupa gambar live yang terhampar di hadapan kamera. Pada tahap akses, user dapat memilih color compression, output size, dan frame rate yang diinginkan.
27 Kamera dan program akan menerima gambar dari video stream kamera. Hasil gambar dari input video stream ini akan dikonversikan menjadi gambar biner. Kemudian, program akan mencari pola frame pada marker. Setelah menemukan pola frame segi empat pada marker, program akan melakukan kalkulasi posisi kamera relatif terhadap marker. Apabila terjadi pergerakan marker terhadap kamera, maka kamera akan menerima setiap perubahan posisi setiap 'titik koordinat' pada marker sebagai input stream. Program kemudian akan menggunakan data perubahan-perubahan koordinat ini untuk menentukan estimasi Optical Flow, yakni pola pergerakan sesungguhnya yang terjadi pada objek yang diamati (dalam kasus ini, marker). Proses estimasi Optical Flow ini terjadi secara real-time dan terus-menerus, karena input dari kamera pun bersifat live stream input. Dengan demikian, segala jenis pergerakan pada marker akan dideteksi, dan marker akan tetap dikenali, meskipun digerakkan dalam ruang tangkap penglihatan kamera. 3.1.2 Object Rendering Proses inilah yang benar-benar menjadi ciri khas dari Augmented Reality, yakni 'menempatkan' objek tiga-dimensi sintetis pada lingkungan dunia nyata yang tertangkap oleh kamera. Setelah pola marker dikenali dan cocok dengan pola yang telah diregistrasi dalam memori, program akan memposisikan sebuah objek tiga dimensi, yang juga telah diregistrasikan sebelumnya, tepat pada marker. Objek tiga dimensi tersebut 'digambarkan' seolah menempel, atau merupakan 'bagian' dari marker.
28 Dari hasil kalkulasi dan estimasi pada Optical Flow, maka setiap terjadi pergerakan, program akan menerima hasil kalkulasi tersebut sebagai 'input', yakni perubahan posisi marker relatif terhadap kamera, dan terhadap posisi awal atau posisi sebelumnya. Untuk setiap perubahan posisi ini, program akan melakukan penggambaran objek tiga dimensi secara live, sesuai posisi baru marker. Dengan kata lain, segala perubahan pada posisi dan orientasi marker akan dikenali oleh program, dan objek tiga dimensi akan digambar ulang secara tepat di atas marker, mengikuti posisi dan orientasi baru tersebut. 3.2. Skema (Flow-chart) program Meskipun seolah terbagi menjadi dua bagian, pada kenyataan sesungguhnya, kedua proses di atas terjadi nyaris bersamaan secara live. Karena itulah, diperlukan resource yang sangat besar untuk melakukan semua tugas program tersebut. Tentu saja, karena terjadi secara live dan terus-menerus selama program masih berjalan, maka kedua proses di atas dilakukan secara iteratif, sampai terjadi kasus dimana iterasi terpaksa dihentikan sementara. Contoh kasus ini adalah: a. Marker tidak lagi dikenali karena keterbatasan hardware dan batasan-batasan lain yang mungkin terjadi, seperti pencahayaan, ukuran, jarak, dan lain sebagainya. b. Marker tidak lagi terdeteksi oleh kamera, baik itu karena marker tidak terlihat sebagian maupun seluruhnya.
29 c. Resource komputer yang terpakai terlalu besar, sehingga pada titik tertentu mengalami kelambatan, maupun penghentian sesaat karena proses kalkulasi yang mejadi lambat. Start Camera Callibration Grab Live Stream Input Search for Marker F Marker Found / Visible? Calculate Optical Flow Determine Marker Position Render Object on Marker T Marker Moves? F End Gambar 3.1 Flowchart program
30 3.3. Perancangan Tampilan Layar Program aplikasi ini tidak membutuhkan tampilan layar yang terlalu kompleks, cukup dengan tampilan sederhana saja. Pada tahap awal program, akan ditampilkan sebuah window yang memperlihatkan properti kamera yang dideteksi oleh sistem, dan pilihan mode kamera yang akan digunakan untuk menangkap input. Selain itu, di background akan ada layar hitam console yang memperlihatkan log, sebagai wrapper dari program. Layar Console asdasdasdasdasd Layar properti kamera Gambar 3.2 Rancangan tampilan layar awal
31 Property Sheet OK Cancel Apply Gambar 3.3 Rancangan tampilan properti Setelah properti diatur, maka program akan membaca file-file, data dan setting yang dilakukan. Kemudian, log pembacaan tersebut akan ditampilkan pada layar log (console). Setelah semua file setting berhasil di-load, layar output akan ditampilkan. Layar console akan tetap dalam keadaan terbuka, dan memperlihatkan statistika proses yang sedang berlangsung seperti frame rate dan status program saat itu. Untuk tampilan hasil output program, juga digunakan tampilan yang sederhana, yakni window standar yang menampilkan hasil yang tertangkap oleh kamera.
32 Layar Console Layar output kamera Gambar 3.4 Rancangan tampilan output