Pengenalan Tata Surya Berbasis Augmented Reality Menggunakan Metode Hough Transform

(1)

SKRIPSI

Diajukan untuk Menempuh Ujian Akhir Sarjana Program Strata Satu Jurusan Teknik Informatika

Fakultas Teknik dan Ilmu Komputer Universitas Komputer Indonesia

SUNARYA

10106487

PROGRAM STUDI S1

JURUSAN TEKNIK INFORMATIKA

FAKULTAS TEKNIK DAN ILMU KOMPUTER

UNIVERSITAS KOMPUTER INDONESIA

2011


(2)

i

Oleh

SUNARYA 10106487

Augmented Reality (AR), adalah teknologi yang menggabungkan benda maya dua dimensi dan tiga dimensi ke dalam sebuah lingkungan nyata tiga dimensi lalau memproyeksikan benda-benda maya tersebut dalam waktu nyata . Penelitian ini akan memasukan teknologi AR kedalam sebuah magicbook pengenalan tata surya. Pengenalan tata surya berbasis AR ini memerlukan video streaming yang diambil dari kamera sebagai sumber masukan, kemudian aplikasi ini akan melacak dan mendeteksi marker (penanda) dengan menggunakan sistem tracking, setelah marker

dideteksi, model tata surya 3D digambar diatas marker seolah-olah model tersebut nyata. Untuk membuat model tata surya ini, model harus dibuat terlebih dahulu dengan menggunakan perangkat lunak untuk membuat objek 3D, dalam kasus ini menggunakan 3D MAX 9 kemudian diubah formatnya menjadi format yang didukung oleh aplikasi ini. Pada proses pengubahan format ini terjadi berbagai macam masalah yang menyebabkan model yang ditampilkan berbeda dengan model asli atau bahkan gagal ditampikan. Pengujian dilakukan dengan menggunakan dua webcam Micro Pack 5 MP, menggunakan 11 jenis marker . Dari hasil pengujian, aplikasi ini berjalan dengan baik ketika resolusi 640x480 dengan jarak 25 cm. Itu merupakan resolusi standard, setiap webcam mempunyai standar resolusi yang berbeda-beda.


(3)

i

USING AUGMENTED REALITY HOUGH TRANSFORM

BY

SUNARYA 10106487

Augmented Reality (AR), is a technology that combines two-dimensional virtual objects and three-dimensional into a real three-dimensional environment plainly projecting the virtual objects in real time. This research will include AR technology into an introduction magicbook solar system. Introduction of AR-based solar system requires a video stream taken from the camera as a source of input, then this application will track and detect the marker (marker) by using the tracking system, after the marker is detected, the 3D model of the solar system was drawn on the marker as if the real model . To create a model solar system, the model must be made in advance by using software to create 3D objects, in this case using 3D MAX 9 then be formatted into a format supported by this application. In the process of changing the format this happens, several kinds of problems that led to models that appear different from the original model or even the failure is shown. Tests carried out using two Micro Pack 5 MP webcam, using 11 types of markers. From the test results, this application work well when a resolution of 640x480 with a distance of 25 cm. That is the standard resolution, each has a standard webcam resolution is different.


(4)

iii

menyelesaikan tugas akhir ini yang berjudul: PENGENALAN TATA SURYA BERBASIS AUGMENTED REALITY MENGGUNAKAN METODE HOUGH TRANSFORM . Tidak lupa shalawat serta salam penulis panjatkan kepada Rasulullah Muhammad SAW, kepada sahabat, keluarganya dan tidak lupa kepada kita selaku pengikutnya sampai akhir jaman.

Adapun maksud dan tujuan penelitian tugas akhir ini yaitu untuk membangun sebuah aplikasi ARGerhana sebagai alat peraga pengenalan gerhana.

Penulis tidak akan dapat menyelesaikannya tanpa bantuan dan dorongan dari berbagai pihak. Dengan kerendahan hati dan penuh rasa hormat, penulis mengucapkan banyak terima kasih kepada:

1. Kedua Orang Tua, Saudara dan seluruh anggota Keluarga penulis yang telah banyak memberikan motivasi baik itu moril maupun materil.

2. Ibu Mira Kania Sabariah S,T, M.T, selaku Ketua Jurusan Teknik Informatika Universitas Komputer Indonesia.

3. Irfan Maliki S.T. selaku Pembimbing tugas akhir yang banyak memberikan ilmu, referensi dan masukannya untuk penulis.

4. Bapak Irawan Afrianto dan bapak Andri Heryandi selaku dosen penguji 1 dan penguji 3.


(5)

iv

7. Teman teman di dunia maya yang sering memberikan masukan terutama Paman Gie yang sudah mengajarkan teknologi AR.

8. Teman spesial yang sering sekali mengkritik dan memberikan semangat yang luarbiasa dan mengajarkan banyak hal, love you Amalia Khoerunnisa.

Penyusun menyadari bahwa Laporan penelitian tugas akhir ini masih jauh dari sempurna. Oleh karena itu penyusun sangat mengharapkan saran dan kritik dari para pembaca, agar pengengembangan untuk kedepannya bisa lebih baik lagi. Besar harapan penyusun agar laporan penelitian tugas akhir ini akan bermanfaat bagi para pembaca dan dunia pendidikan pada umumnya dan bagi penyusun sendiri khususnya.

Semoga skripsi ini dapat bermanfaat dan menjadi insfirasi buat semuanya. Amiin Yaa Raabbal’alamiin.

Bandung, Maret 2011


(6)

1 1.1 Latar Belakang Masalah

Augmented Reality (AR) adalah teknologi yang menggabungkan benda maya dua dimensi dan ataupun tiga dimensi ke dalam sebuah lingkungan nyata tiga dimensi lalu memproyeksikan benda-benda maya tersebut dalam waktu nyata (Wikipedia, 2010). AR merupakan inovasi dari computer graphics yang dapat menyajikan visualisasi dan animasi dari sebuah model objek. AR saat ini sedang berkembang pesat. Para peneliti memanfaatkan bidang ini sebagai salah satu cara baru untuk meningkatkan pembelajaran dan menambah pengetahuan.

AR telah banyak digunakan di dunia hiburan, pelatihan militer, medis, desain rekayasa, robotic dan telerobotik, manufaktur, pendidikan, dan lain-lain. Dalam perkembangannya teknologi AR tidak hanya menjadikan marker sebagai tempat untuk memunculkan objek 3D, tetapi sudah masuk ke dalam dunia mobile. Tetapi pada dasarnya teknologi AR masih menggunakan metode hough transform untuk mendeteksi objek geometri seperti garis dan titik.

Dalam tugas akhir ini akan dibuat objek virtual dari penomena tata surya yang disajikan dalam bentuk buku. ARTatasurya ini dibuat agar pengguna dapat berinteraksi langsung dengan objek yang dibuat dalam bentuk animasi 3D.

Atas dasar itulah diharapkan dengan adanya AR untuk simulasi tata surya ini dapat menciptakan sebuah alat atau metode baru dalam memahami secara kongkrit mengenai tata surya yang direpresentasikan melalui visual tiga dimensi


(7)

dengan melibatkan interaksi pengguna. ARTatasurya ini diharapkan dapat menjadi media pembelajaran bagi pengguna yang ingin mengetahui tentang tata surya.

1.2 Rumusan Masalah

Berdasakan latar belakang yang sudah diuraikan di atas, maka masalah yang akan dibahas disini adalah bagaimana membuat objek tiga dimensi secara virtual

yang dikemas dalam bentuk buku sehingga menjadi sebuah media atau alat peraga dalam memahami tata surya.

1.3 Maksud dan Tujuan

Maksud dari penulisan tugas akhir ini adalah untuk membuat desain peragaan tata surya.

Sedangkan tujuan dari penulisan skripsi ini adalah:

1. Untuk membuat simulasi tata surya 3D yang disajikan dalam bentuk buku. 2. Membuat tampilan antar muka agar memudahkan pengguna dalam

menggunakan ARTatasurya.

3. Untuk menguji jarak optimal antara marker ke kamera dalam menampilkan objek 3D.

1.4 Batasan Masalah / Ruang Lingkup

Karena luasnya masalah mengenai AR maka dalam penelitian ini akan dibatasi ruang lingkup kajiannya sebagai berikut:


(8)

1. Pemodelan ini disajikan dalam bentuk buku (magicbook) dan hanya mendeteksi marker segi empat. Di dalam magicbook ditampilkan objek planet-planet.

2. Program aplikasi yang digunakan dalam pembuatan alat peraga ini adalah: a. ARToolkit untuk menghadirkan model virtual kedalam dunia nyata. b. OpenGL untuk menghasilkan citra dari model.

c. 3ds max 9 untuk membuat model tiga dimensi. d. Adobe Photoshop CS3 untuk membuat marker . 3. Menggunakan bahasa pemrograman C++ Builder 6.

4. Pemodelan objek dengan menggunakan rational rose 2000. 5. Menggunakan metode hough transform.

1.5 Metode Penelitian

Metode yang digunakan dalam melakukan penelitian ini adalah metode yang bertujuan untuk mengumpulkan, menganalisis, dan menyajikan data atau fakta sehingga diperoleh suatu gambaran yang cukup jelas mengenai objek yang diteliti untuk menarik kesimpulan dan membuat rekomendasi. Teknik penelitian tersebut adalah sebagai berikut:

1.5.1 Teknik pengumpulan data a. Studi pustaka

Mencari referansi yang berkaitan dengan AR, mulai dari buku-buku, jurnal maupun artikel dan sumber-sumber lain di internet.


(9)

Motede ini dilakukan dengan melakukan dialog langsung dengan orang yang pernah membangun aplikasi berbasis AR.

1.5.2 Metode pengembangan perangkat lunak

Tahap pengembangan perangkat lunak menggunakan metode waterfall

yang terlahat pada Gambar 1.1.

Gambar 1.1 Metode waterfall

Langkah-langkah dalam pengembangan AR tata surya ini adalah sebagai berikut:

1. Tahap analisis

Tahap ini dimulai dengan merumuskan permasalahan mengenai topik penelitian, menentukan tujuan yang diharapkan, menentukan batasan masalah, hingga melakukan studi literatur sehubungan dengan topik yang diambil.

2. Perancangan

Analisis

Perancangan

Implementasi Pengujian


(10)

Pada tahap ini memberikan gambaran umum tentang sistem yang akan dikembangkan kepada pihak yang terlibat dalam pengembangan sistem. 3. Implementasi

Tahap ini merupakan sebuah konversi rancangan sistem kedalam kode bahasa pemrograman yang diinginkan.

4. Pengujian

Untuk memastikan bahwa seluruh kebutuhan perangkat lunak sudah terpenuhi sesudah pengujian sistem diberikan kepada pengguna.

5. Pemeliharaan

Pemeliharaan dilakukan untuk pengembangan implementasi sistem.

1.6 Sistematika Penulisan

Untuk memberikan gambaran secara umum tentang sistematika penulisan tugas akhir ini adalah sebagai berikut:

BAB I PENDAHULUAN

Menjelaskan tentang latar belakang permasalahan, mencoba merumuskan inti permasalahan yang dihadapi, menentukan maksud dan tujuan penelitian, yang kemudian diikuti dengan pembatasan masalah, metodologi penelitian serta sistematika penulisan.


(11)

BAB II TINJAUAN PUSTAKA

Membahas berbagai konsep dasar dan teori-teori mengenai yang berkaitan dengan topik penelitian yaitu tentang augmented reality dan hal-hal yang berguna dalam proses analisis permasalahan serta tinjauan terhadap penelitian-penelitian serupa yang telah pernah dilakukan sebelumnya.

BAB III ANALISIS DAN PERANCANGAN SISTEM

Bab ini berisi tentang analisis sistem, cara kerja sistem, analisis masukan dan keluaran dari metode penelitian untuk memperlihatkan keterkaitan antara objek yang diteliti serta model untuk analisisnya. Perancangan sistem menggunakan Object Oriented.

BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM

Bab ini berisi tentang implementasi yang bertujuan untuk memastikan bahwa ARTatasurya dapat berjalan secara efektif sesuai dengan yang diinginkan,kemudian dibahas juga mengenai spesifikasi software,

hardware dan brainware serta cara pengoperasian sistem yang telah dibuat serta hasil evaluasinya. Pengujian sistem hanya sebatas pada proses visualisasi objek 3 dimensi.

BAB V KESIMPULAN DAN SARAN

Bab ini berisi kesimpulan dari hasil penulisan tugas akhir ini dan saran untuk pengembangan penelitian lebih lanjut.


(12)

7 2.1 Sistem Visi Komputer

Sebelum menuju materi yang lebih dalam kita harus mengetahui hubungan antara komputer vision, grafika komputer, pengolahan citra dan pengenalan pola (pattern recognition) adalah suatu proses atau rangkaian pekerjaan yang bertujuan mengklasifikasikan data numerik dan simbol (Ahmad, 2005). Komputer Vision

atau Visi Komputer di definisikan sebagai ilmu pengetahuan yang mempelajari bagaimana komputer dapat mengenali objek yang diamati atau diobservasi (Nusantara, 2005). Komputer vision merupakan kombinasi antara pengolahan citra dan pengenalan pola.

2.1.1 Komputer Grafika

Komputer grafik melalui pemrograman grafik menghasilkan citra dari bentuk goemetri yang primitive seperti titik, garis lurus dan garis lengkung. Lingkaran dan bentuk-bentuk dasar geometri lainnya. Komputer grafik memainkan peranan penting dalam visualisasi dan virtual-reality. Sedangkan sistem visual bekerja sebaliknya, menduga bentuk geomentri primitive dan ciri lainnya yang merupakan penyederhanaan dari citra asal yang sifatnya lebih komples. Jadi komputer grafik memadukan unsur-unsur pembentuk citra untuk membentuk atau mensintesa citra sedangkan sistem visual mengerjakan hal


(13)

kebalikannya menjadi bentuk-bentuk yang lebih sederhana, agar dapat dinilai secara kuantitatif.

Pada jaman dahulu kala, ternyata manusia sudah mengunakan media gambar untuk saling berkomunikasi dengan manusia lainnya. Hal ini terbukti dengan ditemukannya peninggalan bersejarah berupa lukisan-lukisan bangsa aborigin yang tinggal di Australia yang terdapat di goa-goa dinding batu. Lukisan atau gambar-gambar tersebut mengilustrasikan tentang keharmonisan alam dan lingkungan bangsa aborigin.

Pada jaman modern setelah komputer ditemukan, komputer grafik tidak berkembang dengan pesat, hal itu disebabkan harga dari hardware komputer yang tidak terjangkau, sehingga pemakai komputer pada saat itu hanya terbatas pada kalangan militer saja. Tetapi pada waktu berikutnya harga hardware semakin terjangkau sehingga masyarakat umum dapat memakai komputer untuk kebutuhan sehari-hari, maka pemrograman grafik juga ikut berkembang. Perkembangan komputer grafik sangat terasa setelah berbagai bahasa tingkat tinggi seperti C dan

Pascal ditemukan, dengan bantuan compiler seperti ini maka masyarakat umum bisa berkreasi tanpa dibatasi untuk selalu menciptakan yang baru (Heriady, 2007).

2.1.2 Pengolahan Citra Digital

Image Processing atau pengolahan citra adalah bidang tersendiri yang sudah cukup berkembang sejak orang mengerti bahwa komputer tidak hanya dapat menangani data teks, tetapi juga data citra (Ahmad, 2005). Teknik-teknik


(14)

pengolahan citra bisaanya dgunakan untuk melakukan transformasi dari satau citra kepada citra yang lain, sementara tugas perbaikan informasi terletak pada manusia melalui penyusunan algoritmanya. Bidang ini meliputi penajaman citra, penonjolan fitur tertentu dari suatu citra, kompresi citra dan koreksi citra yang tidak forkus atau kabur. Sebaliknya, sistem visual menggunakan citra sebagai masukan tetapi menghasilkan keluaran jenis lain seperti representasi dari kontur obyek di dalam citra, atau menghasilkan gerakan dari suatu peralatan mekanis yang terintegrasi dengan sistem visual.


(15)

Berkat adanya mata sebagai indera penglihatan yang sangat penting dalam kehidupan sehari-hari, manusia dapat melakukan banyak hal dengan lebih mudah. Berbagai aktifitas seperti berjalan, mengambil sesuatu benda, menulis, apalagi membaca buku, menjadi sangat mudah dilakukan bila melibatkan fungsi mata. Peristiwa melihat yang begitu sederhana bagi kita dalam kehidupan sehari-hari ternyata melibatkan banyak proses dan aliran data yang besar. Dengan menggunakan sifat-sifat seperti halnya mata, maka hal di atas dapat diaplikasikan dalam perangkat keras pengolahan citra seperti Webcam, handycam, camera

digital, scanner dan lain-lain.

2.1.3 Sistem Visual

Sebagaimana layaknya mata dan otak, sistem visual buatan atau vision system (komputer vision) adalah suatu sistem yang mempunyai kemampuan untuk menganalisis objak secara visual, setelah data objek yang bersangkutan dimasukkan dalam bentuk citra (image). Secara umum tujuan dari sistem visual adalah untuk membuat model nyata dari sebuah citra. Citra yang dimaksud di sini adalah citra digital hasil konversi suatu objek menjadi citra melalui suatu sensor yang prosesnya disebut digisi. Dengan demikian citra lain seperti foto, gambar cetak, gambar sketsa, dan lain-lain yang berada pada media cetak seperti kertas atau media lainnya, setelah dikonversi ke dalam citra digital baru dapat diproses melalui poses digitasi.

Sebagai sistem visual mempunyai kemampuan untuk memperbaiki informasi yang berguna dari sebuah pemandangan (scene) hasil proyeksi dua


(16)

dimensi. Citra merupakan hasil proyeksi dua dimensi dari obyek atau benda tiga dimensi, sehingga informasi sesungguhnya ada bagian informasi yang hilang setelah benda diproyeksikan ke dalam citra. Untuk memperbaiki informasi diperlukan pengetahuan dan proyeksi geometri dari obyek dalam suatu pemandangan. Contoh yang mudah dipaparkan dalam hal ini misalnya jarak antara sensor (bisanya kamera) dengan obyek tertentu dalam sebuah citra tidak dapat diketahui langsung karena informasi kedalaman (depth) yang merupakan jarak itu sendiri hilang saat obyek dalam ruang (tiga dimensi) dikonversi menjadi citra dalam bidang dua dimensi. Dengan demikian bila ada dua atau lebih obyek yang bertumpukan dalam suatu bidang pandang, suatu obyek tidak dapat langsung diketahui apakah ia berada di depan atau di belakang obyek lainnya. Namun demikian persoalan ini dapat dijawab setelah dilakukan satu atau bebrapa proses pada citra tersebut dengan memanfaatkan informasi yang tersedia sehingga informasi yang hilang tadi didapatkan kembali.

Pengertian pengolahan citra (image processing) sedikit berbeda dengan pengertian mesin visual (machine vision), meskipun keduanya seolah-olah dapat dipergunakan dengan maksud yang sama. Terminologi pengolahan citra dipergunakan bila hasil pengolahan data yang berupa citra, adalah berbentuk citra yang lain, yang mengandung atau memperkuat informasi khusus pada citra hasil pengolahan sesuai dengan tujuan pengolahannya. Sedangkan terminologi mesin visual digunakan bila data hasil pengolahan citra langsung diterjemahkan dalam bentuk lain, mislanya grafik yang siap diinterpretasikan untuk tujuan tertentu, gerak peralatan atau bagian dari peralatan mekanis atau aksi lainnya yang berarti


(17)

bukan merupakan citra lagi. Dengan demikian jelaslah bahwa pengolahan citra merupakan bagian dari mesin visual, karena untuk menghasilkan keluaran selain citra, informasi dari citra yang ditangkap oleh kamera juga perlu diolah dan dipertajam pada bagian-bagian tertentu (Ahmad, 2005).

2.1.4 Sistem Koordinat 3D

Sistem koordinat tiga dimensi memiliki tiga sumbu yaitu x, y, z dan setiap sumbu memiliki nilai yang berbeda-beda, bagian dari koordinat yang bernilai negatif digambarkan dengan garis putus-putus, sedangkan bagian yang bernilai positif digambarkan dengan garis lurus berkesinambungan(tidak putus-putus).

Gambar 2.2 Sistem koordinat 3D 2.2 Opengl

OpenGL adalah suatu graphics library yang sebagian bersifat opensource, dapat dipakai pada banyak platform (window s, linux) dan dapat digunakan pada berbagai jenis compiler seperti C++ dan Delphi. File DLL yang diperlukan adalah


(18)

glu32.dll, glut32.dll dan opengl32.dll. file header yang diperlukan adalah gl.h, glaux.h, glu.h dan glut.h. Sedangkan file lib yang dibutuhkan adalah glaux.lib, glu32.lib, glut.lib, glut32.lib, dan opengl32.lib (Heriady, 2007). Berikut ini adalah table-tabel perintah dalam OpenGL:

Tabel 2.1 Fungsi OpenGL Fungsi / perintah dalam OpenGL Kegunaan

glPointSize(Glfloat Size); Menentukan besar titik glBegin(GL_POINTS) ... glEnd(); Menggambar titik glColor3f(...); Menentukan warna

glVertex3f( ...); Menentukan posisi sebuah titik

glTranslatef(...); Mengubah posisi titik pusat sumbu koordinat

glPushMatrix(); .. glPopMatrix()

Membuat baris kode diantaranya menjadi tidak berlaku untuk bagian luar.

glLineWidth(Glfloat Width); Menentukan lebar garis glBegin(GL_LINES); ... glEnd(); Menggamabar garis

glBegin(GL_LINE_STRIP); ... glEnd(); Menggambar garis terhubung glBegin(GL_LINE_LOOP); ... glEnd(); Menggambar garis terhubung glBegin(GL_TRIANGLES); ... glEnd(); Menggambar segitiga

glBegin(GL_TRIANGLE_STRIP); ...

glEnd(); Menggambar segitiga terhubung glBegin(GL_TRIANGLE_FAN); ...

glEnd(); Menggambarsegitiga terhubung

Setiap sistem operasi memiliki cara yang berbeda-beda dalam cara penginstalan OpenGL disini hanya akan membahas cara instal OpenGL dengan menggunakan sistem operasi Window XP. Agar OpenGL bisa digunakan dalam sistem operasi terutama window berikut adalah cara menginstal OpenGL:


(19)

2) Letakan glut.h di direktori include pada visual C (vc98/include/GL) 3) Letakan glut32.lib di direktori lib pada visual C (vc98/lib)

4) Letakan glut32.dll di direktori window s/system.

Pada opengl untuk memulai suatu pemrograman grafik amat sangatlah sederhana, pembaca hanya memerlukan empat fungsi yang telah disediakan oleh opengl (Ahmad, 2005), fngsi-fungsi tersebut adalah:

1. glutInitWindow size

fungsi ini untuk membuat window yang akan digunakan untuk

men-display objek-objek 3D, format dari fungsi ini adalah: void glutInitwindow size (init width, int height), width adalah lebar dari window yang akan dibuat (dalam

pixel). Sedangkan height adalah tinggi dari window (dalam pixel). 2. glutInit

fungsi untuk memberitahu MS VC++ bahwa opengl library dipakai pada program. Formatnya:

void glutInit(int *argcp, char **argv);

Argcp dan argv adalah parameter identik yang dipakai oleh fungsi main() pada C++, jadi pastikan bahwa parameter ini sama dengan parameter yang ada pada fungsi main() pada setiap program grafik 3D.

3. glutInitDisplayMode

Fungsi yang dipakai untuk menginisialisasi model dari tampilan (display mode), yang mempunyai format:

void glutInitDisplayMode(unsigned int mode); variable mode diisi dengan:


(20)

GLUT_DOUBE|GLUT_RGB|GLUT_DEPTH.

Pilihan untuk variable mode amat sangat bervariasi, tetapi pada buku ini semua program hanya akan menggunakan tiga kombinasi di atas. GLUT_DOUBLE berarti menggunakan buffer pada window sebesar dua kali. GLUT_RGB menggunakan Red Green Blue Alpha untuk pewarnaan. GLUT_DEPTH berarti menggunakan depth buffer agar objek 3D yang ditampilkan akan terlihat lebih nyata. Untuk mengkombinasikan variable mode yang dipakai gunakan garis vertikal (|).

4. GlutCreatewindow

Fungsi ini dipakai untuk membuat/meng-create window , mempunyai format sebagai berikut:

Int glutCreateWindow (char* name);

Name adalah nama dari window yang akan dibuat. Dengan memakai empat fungsi tersebut para pembaca telah berhasil melakukan inisialisasi pada opengl. Masih banyak lagi fungsi-fungsi yang disediakan oleh opengl, tetapi para pembaca cukup menggunakan empat fungsi tersebut saja. Berikut ini adalah sebagian dari isi fungsi main untuk menginisialisasi opengl.

Int main(int argc, char**argv) {

Int L_window =750, T_window =500;

…. ….


(21)

Printf inisialisasi Opengl \n);

glutIntitWindow size (L_window , T_window );

glutInit (&argc, argv);// parameter sama dengan yang di main glutinitdisplaymode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH); glutcreatewindow "Belajar Grafik 3D ;

…. ….

}

Untuk dapat menset tampilan opengl telah menyediakan fungsi gluPersvective yang mempunyai format:

Void gluPerspective(float fovy, float aspect, float znear, float zfar);

Fovy adalah sudut pandang terhadap sumbu Y, aspect adalah rasio perbandingan anatar lebar dan tinggi objek, zNear adalah titik dekat dan zFar adalah titik jauh (keduanya harus bernilai positif). Fungsi lain yang dipakai untuk mendukung fungsi gluPerspective adalah fungsi glMatrixMode, fungsi ini berguna untuk mengubah model matrix yang sedang aktif. Fungsi ini mempunyai format:

Void glMatrixmode(GLenum mode);

Untuk mengaktifkan matrix proyeksi (projection matrix) maka mode diisi dengan GL_PROJECTION, sedangkan utuk mengaktifkan matrix pandangan mode diisi dengan GL_MODELVIEW. Beriktu ini adalah penggalan program untuk setting

tampilan di layar monitor:

Int main (int argc, char**argv) {

…………

glMatrixmode (GL_PROJECTION);

//(float) L_window berarti merubah tipe data dari int ke float


(22)

glMatrixmode(GL_MODELVIEW);

……

}

Untuk dapat menampilkan objek 3D pada layar monitor hanya dibutuhkan fungsi glutDisplayFunct yang mempunyai format:

Void glutDisplayFunc(void (*func) (void));

Dengan format sperti itu maka para pembaca harus membuat suatu fungsi yang bertipe void agar dapat dipanggil oleh fungsi glutDisplayFunct, di dalam fungsi bertipe void tersebutlah objek 3D harus diletakan. Berikut ini adalah pengglaan program cara untuk mendisplay objek 3D:

Int main (int argc, char ** argv) { ……… glutDisplayFunct(glut_display_F); ………… } Void glut_display_F() {

Glclear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glLoadIdentitiy();

………….

//object 3D di letakan di sini

…………..

glutSwapBuffers(); }

Pada fungsi void_display_F() sebelum memulai untuk menampilkan objek 3D harus dilakukan pembersihan buffer (clearbuffer) lalu memanggil matrix identitiy/matrix identitas dan setelah itu buffer yang telah dibersihkan diisi dengan objek 3D yang hendak ditampilkan, untuk melakukan tiga tugas ini OpenGL menyediakan fungsi glClear, glLoadIdentitiy dan glutswapBuffers, yang masing-masing mempunyai format:


(23)

Void glclear(GLbitfield mask); Mask diisi dengan GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT.

GL_COLOR_BUFFER_BIT dipakai untuk membersihkan buffer yang dipakai untuk pewarnaan, sengakan GL_DEPTH_BUFFER_BIT dipakai untuk membersihkan buffer depth (ingat glutInitDisplayMode).

Void glLoadIdentitiy (void); Void glutSwapBuffers(void);

Setiap program grafik membutuhkan waktu tunda (delay) agar tampilan grafik yang dihasilkan dapat dimanipulasi sehingga sedap untuk dipandang oleh user

yang menggunakan program tersebut.

Waktu tunda adalah selang/jeda waktu yang ditentukan oleh programmer agar program yang dibuat terhenti sesaat, setelah selang/jeda waktu habis maka program akan berjalan kembali.

Dengan memanfaatkan waktu tunda maka tampilan grafik dapat dibuat animasi. OpenGL telah menyediakan fungsi untuk waktu tunda tetapi berapa lama waktu tunda yang dikehendaki harus disetting sendiri oleh programmer. Fungsi yang disediakan oleh OpenGL untuk waktu tunda adalah glutIdleFunc yang mempunyai format sebagai berikut:

Void glutIdleFunc(void (*func) (Void));

Sedangkan untuk setting berapa lama waktu yang dikehendaki dapat dipakai cara kuno tetapi efektif, yaitu seperti contoh dibawah ini:


(24)

Waktu_awal=timeGetTime(); Do

{

Waktu_sekarang = timeGetTime(); }

While ((wktu_sekarang – waktu_awal) <= waktu_selisih);

Berikut ini adalah penggalan dari program grafik 3D untuk setting waktu tunda: Int main(int argc, char **argv)

{ ………….. glutIdleFunct(glut_idle_F); ………. } Void glut-idle_F() { Waktu_awal=timeGetTime(); Do {

Waktu_sekarang = timeGetTime(); }

While ((wkatu_sekarang – waktu_awal) <= waktu_selisih);

……….

glutPostRedisplay(); }

Fungsi glutPostRedisplay berguna untuk menampilkan kembali objek 3D yang ada di fungsi glut_display_F. Format dari fungsi glutPostRedisplay adalah Void glutPostRedisplay(void);

2.3 Augmented Reality

Istilah Augmented reality (AR) tidak diterjemahkan karena belum ditemukan padanan kata yang sesuai, dalam glosarium pusat bahasa diknas,

reality=realitas, augment=augmen. Secara umum, AR adalah penggabungan antara obejek virtual dengan objek nyata (Wikipedia, 2009). Sebagai contoh, adalah saat stasiun televisi, menyiarkan pertandingan sepak bola, terdapat objek virtual, tentang skor pertandingan yang sedang berlangsung.


(25)

Menurut Ronald Azuma pada tahun 1997, AR adalah menggabungakan dunia nyata dan virtual, bersifat interaktif secara real time, dan merupakan animasai 3D. Paul Milgram dan Fumio Kishino pada tahun 1994, mendefinisikan

Milgram’s Reality-Virtuality Continuum. Mereka menggambarkan sebuah

kontinum yang membentang dari lingkungan nyata untuk untuk lingkungan

virtual murni. Mereka menyimpulkan bahwa ARlebih dekat ke lingkungan nyata dan augmented virtuality lebih dekat ke lingkungan virtual.

AR yang dalam bahasa Indonesia diterjemahkan sebagai realitas tertambah atau aplikasi realitas yang diperluas, adalah teknologi yang menggabungkan benda maya dua dimensi dan ataupun tiga dimensi ke dalam sebuah lingkungan nyata tiga dimensi lalu memproyeksikan benda-benda maya tersebut dalam waktu nyata (Wikipedia, 2009).

Dalam pembuatan AR ini menggunakan Webcam sebagai perangkat untuk menangkap citra. Sebelum citra diubah ke dalam bentuk digital maka proses manipulasi citra digital tidak bisa dilakukan. Citra digital (f(x,y))mempunyai dua unsur. Unsur yang pertama merupakan kekuatan sumber cahaya yang melingkupi pandangan kita terhadap objek (illumination). Unsur yang kedua merupakan besarnya cahaya yang direfleksikan oleh objek ke dalam pandangan mata kita atau disebut juga reflectance components. Kedua unsur tersebut dituliskan sebagai fungsi i(x,y) dan r(x,y).


(26)

2.3.1 Sejarah Augmented Reality

Sejarah tentang Augmented Reality (AR) dimulai dari tahun 1957-1962, ketika seorang penemu yang bernama Morton Heilig, seorang sinematografer, menciptakan dan mempatenkan sebuah simulator yang disebut Sensorama dengan

visual, getaran dan bau. Pada tahun 1966, Ivan Sutherland menemukan head-mounted display yang dia klaim adalah, jendela ke dunia virtual. Tahun 1975 seorang ilmuwan bernama Myron Krueger menemukan Videoplace yang memungkinkan pengguna dapat berinteraksi dengan objek virtual untuk pertama kalinya. Tahun 1989, Jaron Lanier, memeperkenalkan Virtual Reality dan menciptakan bisnis komersial pertama kali di dunia maya, Tahun 1992 mengembangkan AR untuk melakukan perbaikan pada pesawat boeing, dan pada tahun yang sama, LB Rosenberg mengembangkan salah satu fungsi sistem AR, yang disebut Virtual Fixtures, yang digunakan di Angkatan Udara AS Armstrong Labs, dan menunjukan manfaatnya pada manusia, dan pada tahun 1992 juga, Steven Feiner, Blair Maclntyre dan dorée Seligmann, memperkenalkan untuk pertama kalinya Major Paper untuk perkembangan Prototype AR. Pada tahun 1999, Hirokazu Kato, mengembangkan ArToolkit di HITLab dan didemonstrasikan di SIGGRAPH, pada tahun 2000, Bruce. H. Thomas, mengembangkan ARQuake, sebuah mobile games AR yang ditunjukan di international symposium on wearable komputers. Pada tahun 2008, witiude AR Travel Guide, memperkenalkan Android G1 telephone yang berteknologi AR, tahun 2009, Saqoosha memperkenalkan FLARToolkit yang merupakan perkembangan dari ArToolkit. FLARToolkit memungkinkan kita memasang


(27)

teknologi AR di sebuah website, karena output yang dihasikan FLARToolkit berbentuk Flash. Ditahun yang sama, wikitude Drive meluncurkan sistem navigasi berteknologi AR di platform android. Tahun 2010, Acrossair menggunakan teknologi AR pada I-Phone 3GS.

2.3.2 Augmented Reality dan Virtual Reality

Virtual reality, adalah teknologi tentang spectrum yang luas. Ada tiga definisi tentang virtual reality, yang pertama virtual reality adalah komputer yang menghasilkan output 3D dengan grafis yang tinggi. Definisi yang kedua adalah,

virtual reality adalah dunia 3D yang interaktif, karena seorang pengguna bisa berinteraktif dengan komputer secara real time. Definisi yang ketiga adalah,

virtual reality adalah dunia maya, yang penggunanya dapat memasuki dunia

virtual tersebut. Perbedaan dari AR dan virtual reality hanya dari cara kerja

immersiveness sistem. Virtual reality, mempunyai lingkungan virtual yang lebih dalam dari AR, karena virtual reality mengontrol alam bawah sadar indera manusia. Sebaliknya AR, menggabungkan antar objek nyata dan objek virtual. Miligram (Miligram and Kishino 1994; Miligram, Takemura et al. 1994) menjelaskan bagaimana hubungan antara AR dan virtual reality.


(28)

Pada gambar 2.3 terlihat bahwa dunia nyata dan dunia virtual berada di antara dua ujung wilayah yang disebut mix reality (AR). AR berada di dekat dunia nyata (real environment), dengan presepsi AR lebih cenderung ke dunia nyata. AR merupakan suatu istilah yang diciptakan oleh Miligram untuk mengidentifikasi sistem, yang sebagian besar sistemnya memasukan objek nyata ke dalam objek virtual.

2.3.3 Manfaat Teknologi AR

Bidang-bidang yang pernah menerapkan teknologi AR adalah:

1) Hiburan (entertainmen): Dunia hiburan membutuhkan AR sebagai penunjang efek-efek yang akan dihasilkan oleh hiburan tersebut. Sebagai contoh, ketika sesorang wartawan cuaca memperkirakan ramalan cuaca, dia berdiri di depan layar hijau atau biru, kemudian dengan teknologi AR, layar hijau atau biru tersebut berubah menjadi gambar animasi tentang cuaca tersebut, sehingga seolah-olah wartawan tersebut, masuk ke dalam animasi tersebut. Latihan Militer (Military Training): Militer telah menerapkan AR pada latihan tempur mereka. Sebagai contoh, militer menggunakan AR untuk membuat sebuah permainan perang, dimana prajurit akan masuk kedalam dunia game tersebut, dan seolah-olah seperti melakukan perang sesungguhnya

2) Enginering Design: Seorang engineering design membutuhkan AR untuk menampilkan hasil design mereka secara nyata terhadap klien. Dengan AR klien akan tahu, tentang spesifikasi yang lebih detail tentang desain mereka.


(29)

3) Robotics dan Telerobotics: Dalam bidang robotika, seorang operator robot, mengunakan pengendari pencitraan visual dalam mengendalikan robot itu. Jadi, penerapan AR dibutuhkan di dunia robot.

4) Consumer Design: Virtual reality telah digunakan dalam mempromosikan produk. Sebagai contoh, seorang pengembang menggunkan brosur virtual untuk memberikan informasi yang lengkap secara 3D, sehingga pelanggan dapat mengetahui secara jelas, produk yang ditawarkan.

5) Kedokteran (Medical): Teknologi pencitraan sangat dibutuhkan di dunia kedokteran, seperti misanya, untuk pengenalan operasi, pengenalan pembuatan vaksin virus, dll. Untuk itu, bidang kedokteran menerapkan AR pada visualisasi penelitian mereka.

2.4 ArToolkit

ArToolkit adalah software library, untuk membangun AR. Aplikasi ini adalah aplikasi yang melibatkan overlay pencitraan virtual ke dunia nyata. Untuk melakukan ini, ArToolkit menggunakan pelacakan video, untuk menghitung posisi kamera yang nyata dan mengorientasikan pola pada kertas Marker secara

realtime. Setelah posisi kamera yang asli telah diketahui, maka virtual camera

dapat diposisikan pada titik yang sama, dan objek 3D dapat digambarkan diatas

Marker. Jadi ArToolkit memecahkan masalah pada AR yaitu, sudut pandang pelacakan objek dan interaksi objek virtual.

ArToolkit merupakan software library yang dirancang untuk dapat dihubungkan ke dalam program aplikasi. ArToolit membutuhkan webcam yang


(30)

sudah terinstall di computer, selain itu juga dibutuhkan marker dan juga harus sudah terinstal DirectX minimal versi 9. Selain itu ada hal yang tidak kalah penting yaitu menyiapkan file glut (Graphic Library Utility Toolkit). Langkah-langkah dalam pengaturan file glut diantaranya adalah:

1) Download terlebih dahulu ArToolkit di: http://artoolkit.sourceforge.net/apidoc 2) Buat folder AR di drive C

3) Simpan ArToolkit-2.72-bin-win32.zip dan glut-3.7.6-bin zip ke folder AR. 4) Ekstrak ArToolkit-2.72.1-bin-win.zip ke drive C

5) Ekstrak glut-3.7.6-bin.zip pada folder AR.

6) Copy file glut32.dll dari folder glut-3.7.6-bin ke dalam folder C:\ArToolkit\bin.

7) Tambahkan folder GL di dalam C:\ArToolkit\include kemudian copy file

glut.h dari folder glut-3.7.6-bin ke folder C:\ArToolkit\include\GL. 8) Copy file glut32.lib dari folder glut-3.7.6-bin ke folder C:\ArToolkit\lib.

ArToolkit menggunakan teknik visi komputer untuk mengkalkulasi sudut pandang kamera nyate ke marker yang nyata. Ada lima langkah dalam proses kerja ArToolkit.

a. Kamera mencari marker, kemudian marker yang dideteksi diubah menjadi

binary, kemudian black frame atau bingkai hitam terdeteksi oleh kamera. b. Kamera menemukan posisi marker 3D dan dikalkulasikan dengan kamera


(31)

c. Kamera mengidentifikasi marker, apakah pola marker sesuai dengan

templatesmemory.

d. Transformasikan posisi marker. e. Objek 3D di render diatas marker.

Cara kerja ArToolkit dapat dilihat pada gambar 2.6 dibawa ini.

Gambar 2.4 ArToolkit sebagai pelacakan video

1) Kelebihan ArToolkit

a. ArToolkit dapat menempatkan objek 3D yang dihasilkan komputer sehingga seolah-olah sudut pandang berada pada dunia nyata.

b. ArToolkit bersifat opensources sehingga dalam pengembangannya dapat dilakukan dengan mudah.

c. Menggunakan bahasa tingkat tinggi yaitu bahasa C.

d. ArToolkit menggunakan teknik computer vision tracking dalam menghitung posisi kamera dan orientasi yang relatif terhadap marker. e. ArToolkit dapat berjalan dalam segala sistem operasi.


(32)

2) Kekurangan ArToolkit

a. Objek virtual akan muncul jika marker berada pada posisi yang dapat dilihat oleh kamera.

b. Objek virtual akan hilang apabila terhalang objek lain misalnya tangan. c. Masalah jangkauan dan masalah cahaya. Semakin kecil atau semakin jauh

marker terhadap kamera, maka semakin kecil kemungkinan marker dapat dideteksi oleh kamera.

d. Agar objek virtual dapat di deteksi dengan baik, marker yang dibuat sebaiknya terbuat dari bahan yang tidak memantulkan cahaya.

Ilustrasi sistem koordinat dalam ArToolkit ditunjukan pada gambar 2.5


(33)

2.5 Marker

Marker adalah pola yang dibuat dalam bentuk gambar yang telah dicetak dengan printer yang akan dikenali oleh kamera. Marker pada ArToolkit merupakan gambar yang terdiri atas border outline dan pattern image seperti terlihat pada gambar dibawah ini 2.5.

Gambar 2.6 Marker

Marker biasanya dengan warna hitam dan putih. Cara pembuatannya pun sederhana tetapi harus diperhatikan ketebalan Marker yang akan dibuat, ketebalan Marker jangan kurang dari 25 % dari panjang garis tepi agar pada saat proses deteksi Marker dapat lebih akurat. Nama Hiro yang ada pada gambar 2.5 merupakan sebuah pembeda saja. Sedangkan objek warna putih sebagai

background, yang nantinya akan digunakan sebagai tempat objek yang akan dirender.

Ciri-ciri yang umum digunakan untuk mengenali sata atau beberapa obyek di dalam citra adalah ukuran, posisi atau lokasi, dan orientasi atau sudut


(34)

kemiringan obyek terhadap garis acuan yang digunakan. Marker terdapat dua intensitas warna yaitu warna hitam dan putih atau sering disebut sebagai citra biner. Citra biner memisahkan daerah (region) dan latar belakang dengan tegas, walau pun potensi munculnya kekeliruan selalu ada. Kekeliruan di sini adalah kesalahan mengelompokan piksel ke dalam golongannya, apakah piksel milik suatu daerah dikelompokan sebagai latarbelakang atau sebaliknya. Kesalahan seperti ini sering disebut dengan noise. Warna putih pada Marker menunjukan warna sebuah objek, sedangkan warna hitam menunjukan latar belakang. Intensitas warna pada suatu objek memiliki warna yang lebih rendah (gelap), sedangkan latar belakang mempunyai intensitas yang lebih tinggi (terang). Namun pada kenyataannya dapat saja berlaku kebalikannya, yaitu objek mempunyai intensitas tinggi dan latar belakang mempunyai intensitas rendah. Kombinasi ini biasanya tergantung pada sifat latar belakang pada saat citra tidak tampil terang sekali (putih) atau gelap sekali (hitam), melainkan di antaranya dengan demikian suatu objek yang sama dapat tampil lebih terang atau lebih gelap daripada latar belakangnya dalam citra, tergantung pada gelap atau terangnya warna yang melatarbelakanginya. (Ahmad, 2005).


(35)

Ukuran Marker yang digunakan dapat mempengaruhi penangkapan pola Marker

oleh kamera. Semakin besar ukuran Marker semakin jauh jarak yang bisa ditangkap oleh kamera dalam mendeteksi Marker. Namun disinilah masalahnya, ketika Marker bergerak menjauhi kamera, jumlah pixel pada layar kamera menjadi lebih sedikit dan ini bias mengakibatkan pendeteksian tidak akurat.

2.6 Hough Transform

Hough Transform (HT) merupakan suatu teknik untuk menentukan lokasi suatu bentuk dalam citra. HT dicetuskan pertama kali oleh P.V.C. Hough (1962), dilihat dari potensinya sebagai salah satu algoritma dalam pemrosesan citra oleh Rosenfeld (1969), kemudian Duda (1972) mengimplementasikan deteksi garis. Sejak saat itulah HT mengalami perkembangan yang sangat pesat karena banyak keunggulan dan besarnya potensi untuk pembangunan lebih lanjut yang ditawarkan oleh algoritma ini.

HT dapat melakukan pemetaan terhadap titik-titik pada citra ke dalam parameter space. Berdasarkan suatu fungsi yang mendefinisikan bentuk yang ingin dideteksi. HT umumnya digunakan untuk melakukan ekstraski garis, lingkaran atau elips pada citra, namun dalam perkembanganya, HT juga telah dapat digunakan untuk melakukan ekstraksi bentuk-bentuk yang lebih kompleks.


(36)

Gambar 2.8 Hubungan gambar dan garis dalam transformasi

HT ditransformasikan dari sebuah titik (xi,yi) menjadi garis pada ruang koordinat –mc (Yeni, 2004).

Tabel 2.2 Transformasi persamaan garis x Y y=mx+c C= (-x)m + y 1 3 3=m.1+c C= -1m+3 2 2 2=m.2+c C= -2m+2 3 3 3=m.3+c C= -3m+3 4 0 0=m.4+c C= -4m+0

2.6.1 Kuantisasi Parameter

Kuantisasi parameter merupakan salah satu faktor yang penting dalam penerapan HT. Dalam proses kuantisasi, range parameter yang mungkin dipecah menjadi cell-cell, kemudian HT melakukan pemetaan dari piksel-piksel pada citra ke dalam cell-cell parameter tersebut. Besarnya resolusi untuk proses pemecahan y

x

(1,0)

(1,1) (2,1) (4,1)

(3,2)

a b

(1,0)  b= -a (1,1)  b= -a + 1

(4,1)  b = -4a + 1 (3,2)  b = -3a + 2


(37)

(misalkan untuk parameter-parameter p,q dan r yang merepsentasikan suatu objek pada parameter space) didefinisikan sebagai:

∆p = pi+1 – pi (2.1) ∆q = qj+1 – qj (2.2) ∆r = rk+1 – rk (2.3)

Dimana pi, qj dan rk menyatakan parameter-parameter untuk cell ke (i, j, k), serta ∆p, ∆q dan ∆r menyatakan resolusi dari cell-cell untuk parameter p, q dan r. Untuk memperoleh tingkat akurasi hasil deteksi yang paling tinggi, biasanya resolusi yang digunakan adalah:

∆p = ∆q = ∆r =1 (2.4)

Tetapi dengan mempertimbangkan ketersediaan memori dan biaya komputasi, dapat juga digunakan nilai resolusi yang lebih besar. Kuantisasi tidak hanya didapat diaplikasikan pada bidang parameter, tetapi juga pada bidang gambar. Dengan konsep yang sama, bidang gambar dapat dikuantisasi (down sampling) dengan:

∆x = xi+k – xi (2.5) ∆y = yj+k – yj (2.6)

Dimana xi dan yj menyatakan koordinat piksel pada gambar, dan k ≥ 1 menyatakan besar resolusi yang diinginkan. Dengan cara ini, jumlah piksel (atau ukuran input untuk sistem) dapat dikurangi sampai dengan 1/k2. Selain itu, down

sampling juga dapat meningkatkan toleransi terhadap noise yang terjadi karena adanya deviasi piksel pada citra input.


(38)

Gambar 2.9 Kuantisasi Paremeter

Dapat disimpulkan bahwa dalam proses kuantisasi, baik kuantisasi terhadap bidang paremeter maupun kuantisasi down sampling terhadap bidang gambar, perlu mempertimbangakan beberapa faktor, yaitu:

1) Bahwa parameter suatu objek dapat diestimasi secara lebih akurat.

2) Bahwa kuantisasi yang lebih besar/kasar terhadap bidang gambar dapat meningkatkan efisiensi waktu dan space.

3) Bahwa kuantisasi yang lebih besar/kasar dapat meningkatkan toleransi terhadap noise.

2.6.2 Pemakaian HT untuk Deteksi Garis

Pemakaian HT pertama kali diperkenalkan untuk melakukan deteksi garis. Suatu garis dapat dinyatakan dengan representasii polar sebagai:


(39)

Gambar 2.10 Representasi polar suatu garis dalam bidang gambar

Dari persamaan 2.7, dengan representasi polar gari dapat didefinisikan dalam 2 parameter, yaitu Ө yang menyatakan sudut antar garis dengan sumbu x positif dan p yang menyatakan jarak normal antara garis dengan titik pusat koordinat. Sehingga diperoleh algoritma HT untuk deteksi garis sebagai berikut:

1. Kuantisasi parameter space P[pmin,…..,pmax][ Өmin,….,Өmax]

2. Set semua elemen pada P [p][ Ө] menjadi 0

3. Untuk tiap titik (x,y) pada citra, lakukan langkah 4

4. Langkah 4 untuk (Ө= Өmin; Ө<=Өmax; Ө++), hitung nilai p: P = x cos(Ө) + y sin(Ө)

5. Jika p>= pmin && p <= pmax P[p][Ө] = P[p][Ө] + 1 //voting 6. Cari local maxima dari P [p][Ө]


(40)

Dari persamaan 2.7 tersebut, jika Ө dikuantisasi pada interval [0,π), maka akan diperoleh parameter yang unik untuk tiap garis. Kemudian dapat dilakukan kuantisasi terhadap nilai maksimum dan minimum untuk masing-masing parameter sebagai berikut:

0 ≤Ө < π

-0.5d ≤ p ≤ 0.5d dengan d=diagonal bidang gambar.

HT melakukan pemetaan terhadap titik pada bidang gambar ke bidang parameter. Sehingga dapat dilihat beberapa sifat yang menjelaskan hubungan diantara kedua bidang tersebut yaitu (Richard, 1971) :

1) Sebuah titik pada bidang gambar berkorespondensi dengan suatu kurva sinusoidal pada parameter space.

2) Sebuah titik pada parameter space berkorespondensi dengan suatu garis lurus pada bidang gambar.

3) Titik-titik yang berada pada garis yang sama pada baidang gambar, berkorespondensi dengan kurva-kurva yang melalui titik yang sama pada parameter space. Titik tersebut merupakan parameter dari garis yang bersangkutan pada bidang gambar (bidang x- y)

4) Titik-titik yang berada pada kurva yang sama pada paremeter space berkorespondensi dengan garis-garis yang melalui titik yang sama pada bidang gambar.


(41)

Gambar 2.11 Marker hasil penggunaan Hough Transform

Pada gambar 2.8 dapat terlihat adanya variable vote threshold. Vote threshold sendiri merupakan suatu nilai yang dipilih unuk memberikan batasan seberapa besar vote yang harus dikumpulkan oleh sepasang parameter dalam

array accumulator agar parameter tersebut dapat dianggap signifikan sebagai representasi suatu garis pada bidang gambar. Bisa dilihat perbedaannya, citra asli yang berwarna hitam berubah menjadi warna putih dan citra warna putih berubah menjadi hitam.

2.6.3 Kelebihan dan Kekurangan HT

Dari uraian diatas, maka dapat diperoleh keunggulan dan kekurangan algoritma HT, diantaranya:

Kelebihan:

1) HT dapat mendeteksi keberadaan objek yang memiliki pola tertentu misal,objek yang dapat direpresentasikan secara matematis dengan parametertertentu), walaupun tidak diketahui ukuran maupun posisinya. 2) HT relatif tidak terpengaruh oleh noise atau data hilang pada citra.


(42)

Kekurangan :

1) Kompleksitas dan ukuran accumulator array meningkat secara polynomial

sebanding dengan bertambahnya jumlah parameter yang merepresentasikanobjek yang ingin di deteksi.

2) Hasil deteksi sensitif terhadap kuantisasi bidang parameter dan bidang gambar.

3) Hasil deteksi sensitif terhadap pemilihan nilai vote threshold.

2.7 3DS Max

Dalam pembuatan AR ini kita menggunakan software Autodesk 3ds Max 9 32-bit. 3D Studio Max adalah software visualisasi (modeling dan animasi) tiga dimensi yang popular dan serbaguna. Hasil yang dibuat di 3D Studio Max sering digunakan di pertelevisian, media cetak, games, web dan lain-lain.


(43)

3DS MAX memberikan tiga kemungkinan untuk menetukan sistem koordinat sebuah titik dalam ruang, yaitu dengan memperhatikan terhadap sumbu-sumbu x, y, z dan sudut yang terjadi. Ketiga kemungkinan sistem koordinat itu ialah:

a) Koordinat Cartesian (rectangular coordinat).

Menentukan koordinat dengan menggunakan sumbu-sumbu x, y, z. yaitu (x), (y), (z). Penulisannya (0.5,0.9,0.0); (0.42,0.39,0.82)

b) Koordinat cylindrical

Cara ini mengabungkan antara jarak, sudut dan koordinat sumbu z yaitu: (jarak)< (sudut),(z) Penulisannya: (.03<60.95,0.0);(0.57<43,0.82)

c) Koordinat spherical

Cara ini menggabungkan antara jarak dan dua sudut, dan masing-masing besaran dipisahkan dengan tanda<, yaitu: (jarak)<(sudut)<(sudut), penulisannya: (1.03<60.95<0); (1<43<55).

2.8 Webcam

Webcam (singkatan dari web camera) adalah sebutan bagi kamera real-time (bermakna keadaan pada saat ini juga) yang gambarnya bisa diakses atau dilihat melalui World Wide Web, program instan messaging, atau aplikasi video call. Istilah Webcam merujuk pada tekologi secara umumnya, sehingga kata web

kadang-kadang diganti dengan kata lain yang mendeskripsikan pemandangan yang ditampilkan di kamera, misalnya StreetCam yang memperlihatkan pemandangan jalan. Ada juga Metrocam yang memperlihatkan pemandangan


(44)

panorama kota dan pedesaan, TraffiCam yang digunakan untuk memonitor keadaan jalan raya, cuaca dengan Weathercam, bahkan keadaan gunung berapi dengan VolcanoCam. Webcam atau web camera adalah sebuah kamera video digital kecil yang dihubungkan ke komputer melalui portUSB ataupun port COM (Wikipedia, WEB).

Gambar 2.13 Webcam

Pada awalnya, bentuk web camera terbatas pada bentuk-bentuk standar yang hanya terdiri dari lensa dan papan sirkuit serta casing yang bisa. Seiring dengan perkembangan teknologi, bentuk web camera pun sudah makin bervariasi dengan fitur-fitur yang makin canggih.

Salah satu bentuk web camera yang unik adalah bentuk boneka yang lucu,

web camera ini dapat disalah artikan hanya sebagai boneka dan bukan Webcam. Sebuah penemuan oleh Microsoft pada tahun 2004 menggambarkan kemajuan perkembangan teknologi web camera. i2i adalah sebuah sistem dua-kamera yang dengan sangat hati-hati mengikuti pergerakan individu. Kamera ini menggunakan perhitungan algoritma yang secara spesial dikembangkan untuk memfusikan apa yang setiap kamera lihat untuk membuat gambar „cyclopean’ stereo yang akurat. Kamera ini juga dapat menampilkan emoticon 3D yang melayang. Sistem i2i


(45)

dapat juga menghasilkan gambar background yang realistis sehingga pengguna dapat berpura-pura berada di tempat lain. Kemampuan sistem i2i ini, diantaranya yaitu kemampuan tracking (disebut smart framing) dan juga kemampuan smart focusing, dapat menambah pengalaman berkonferensi bagi pengguna.

Teknologi Webcam pada awalnya mendapat dukungan komersial dari industri pornografi. Industri ini membutuhkan gambar-gambar „live‟ dan meminta

pembuatan software yang mampu melakukannya tanpa web browserplugins. Hal ini melahirkan teknologi live streaming Webcam yang masih tetap ada hingga sekarang. Sekarang ini web camera yang ada di pasaran pada umumnya terbagi ke dalam dua tipe: web camera permanen (fixed) dan revolving web camera. Pada

web camera permanen terdapat pengapit untuk mengapit lensa standar di posisi yang diinginkan untuk menangkap gambar pengguna. Sedangkan pada revolving web camera terdapat landasan dan lensa standar dipasang di landasan tersebut sehingga dapat disesuaikan ke sudut pandang yang terbaik untuk menangkap gambar pengguna.

Penggunaan web camera mencakup video conferencing, internet dating, video messaging, home monitoring, images sharing, video interview, video phone-call, dan banyak hal lain. Kamera untuk video conference bisaanya berbentuk kamera kecil yang terhubung langsung dengan komputer. Kamera analog juga kadang-kadang digunakan, kamera ini terhubung dengan video capture card dan tersambung dengan internet (baik langsung maupun tidak langsung). Saat ini kamera untuk videoconference sudah makin maju, sudah ada web camera yang di dalamnya terdapat microphone maupun noise cancellation untuk memfokuskan


(46)

audio ke speaker yang terletak di depan kamera sehingga noise yang ada tidak mengganggu jalannya konferensi.

2.8.1 Tipe-Tipe Webcam

Slim1320 (True 1.3 Mega Pixels High Performance WebCam), Slim 2020AF (Mega Pixel Web Camera Auto Focus), Eye 312 (Simplify Instant Video and Chat), Eye 110 (Instant Video Messenger Webcam) serta i-Look 1321 (Advance 1.3 Mega Pixel Camera), dan lain-lain. Sekarang hampir semua kamera digital dan HP bisa dijadikan sebagai kamera web (Webcam). Dalam pembuatan ARtatasurya ini digunakan Webcam MicroPack 5 MP. Karena teknologi AR membutuhkan kualitas video yang bagus dalam mendeteksi Marker . (Wikipedia, WEB).

2.8.2 Cara Kerja Webcam

Sebuah web camera yang sederhana terdiri dari sebuah lensa standar, dipasang di sebuah papan sirkuit untuk menangkap sinyal gambar, casing (cover), termasuk casing depan dan casing samping untuk menutupi lensa standar dan memiliki sebuah lubang lensa di casing depan yang berguna untuk memasukkan gambar, kabel support, yang dibuat dari bahan yang fleksibel, salah satu ujungnya dihubungkan dengan papan sirkuit dan ujung satu lagi memiliki connector, kabel ini dikontrol untuk menyesuaikan ketinggian, arah dan sudut pandang web camera. Sebuah web camera bisaanya dilengkapi dengan software, software ini mengambil gambar-gambar dari kamera digital secara terus menerus ataupun


(47)

dalam interval waktu tertentu dan menyiarkannya melalui koneksi internet. Ada beberapa metode penyiaran, metode yang paling umum adalah software merubah gambar ke dalam bentuk file JPEG dan menguploadnya ke web server

menggunakan File Transfer Protocol (FTP) (Wikipedia, WEB).

Frame rate mengindikasikan jumlah gambar sebuah software dapat ambil dan transfer dalam satu detik. Untuk streaming video, dibutuhkan minimal 15

frame per second (fps) atau idealnya 30 fps. Untuk mendapatkan frame rate yang tinggi, dibutuhkan koneksi internet yang tinggi kecepatannya. Sebuah web camera

tidak harus selalu terhubung dengan komputer, ada web camera yang memiliki

software Webcam dan web server bulit-in, sehingga yang diperlukan hanyalah koneksi internet. Web camera seperti ini dinamakan “network camera”. Kita juga

bisa menghindari penggunaan kabel dengan menggunakan hubungan radio, koneksi Ethernet ataupun Wifi (Wikipedia, WEB).

2.9. Definisi UML (Unified Modeling Language)

Dalam penggambaran informasi-informasi secara grafis penulis menggunakan notasi UML (Unified Modeling Language) yang akan digambarkan dengan bantuan komputer melalui perangkat lunak Rational Rose 2000. Dengan pemodelan menggunakan UML ini diharapkan dapat melakukan:

1) Tinjauan umum dapat menggambarkan arsitektur sistem secara keseluruhan. 2) Penelaahan bagaimana objek-objek dalam sistem saling mengirimkan pesan


(48)

3) Menguji apakah sistem atau perangkat lunak sudah berfungsi seperti yang seharusnya.

4) Dokumentasi sistem atau perangkat lunak untuk keperluan-keperluan tertentu dimasa yang akan datang.

Setiap sistem yang kompleks seharusnya bisa dipandang dari sudut yang berbeda-beda sehingga kita bisa mendapatkan pemahaman secara menyeluruh. Untuk upaya tersebut UML menyediakan sembilan jenis diagram yang dapat dikelompokan berdasarkan sifatnya statis atau dinamis (Nugroho, 2005).

1. Diagram kelas. Bersifat statis, diagram ini memperlihatkan himpunan kelas, antarmuka, kolaborasi, serta aksi relasi. Diagram ini umumnya dijumpai pada pemodelan sistem berorientasi objek. Meskipun bersifat statis, namun sering pula diagram kelas memuat kelas-kelas aktif.

2. Diagram objek. Bersifat statis. Diagram ini memperlihatkan objek-objek serta relasi-relasi antarobjek. Diagram objek memperlihatkan instansiasi statis darisegala sesuatu yang dijumpai pada diagram kelas.

3. Use-case Diagram. Bersifat statis. Diagram ini memperlihatkan himpunan usecase dan actor-aktor ( suatu jenis khusus darikelas). Diagram ini terutama sangat penting untuk mengorganisasi dan memodelkan perilaku dari suatusistem yang dibutuhkan serta diharapkan pengguna.

4. Sequence diagram. Bersifat dinamis. Diagram urutan adalah diagram interaksi yang menekankan pada pengiriman pesan (message) dalam suatu waktu tertentu.


(49)

5. Collaboration Diagram. Bersifat dinamis. Diagram kolaborasi adalah diagram interaksi yang menekankan organisasi strutkural dari objek-objek yangmenerima serta mengirim pesan (message).

6. Statechart Diagram. Bersifat dinamis. diagram state ini memperlihatkan statestate pada sistem, memuat state, transisi, event, serta aktifitas. Diagram ini terutama penting untuk memperlihatkan sifat dinamis dari antarmuka (interface), kelas, kolaborasi dan terutama penting pada pemodelan sistem sistem yang reaktif.

7. Activity diagram. Bersifat dinamis. Diagram aktivitas ini adalah tipe khusus dari diagram state yang memperlihatkan aliran dari suatu aktifitas ke aktifitas lainnya dalam suatu sistem. Diagram ini terutama penting dalam pemodelan fungsi-fungsi dalam suatu sistem dan memberikan. Diagram ini terutama penting dalam pemodelan fungsi-fungsi dalam suatu sistem dan memberikan tekanan pada aliran kendali antar objek.

8. Component Diagram. Bersifat statis. Diagram komponen ini memperlihatkan organisasi serta kebergantungan sistem/perangkt lunak pada komponen komponen yang telah ada sebelumnya. Diagram ini berhubungan dengan diagram kelas dimana komponen secara tipikal dipetakan ke dalam satu atau lebih kelas-kelas, antarmuka (interface), serta kolaborasi-kolaborasi.

9. Deployment Diagram. bersifat statis. Diagram ini memperlihatkan konfigurasi saat aplikasi dijalankan (saat run-time). Diagram ini memuat simpul-simpul (node) beserta komponen-komponen yang ada di dalamnya. Deployment diagram berhubungan erat dengan diagram komponen dimana deployment


(50)

diagram memuat satu atau lebih komponen-komponen. Diagram ini sangat berguna saat aplikasi kita berlaku sebagai aplikasi yang dijalankan pada banyak mesin (distributed computing).

2.10 Tata Surya

Tata Suryaadalah kumpulan benda langit yang terdiri atas sebuah bintang yang disebut Matahari dan semua objek yang terikat oleh gaya gravitasinya. Objek-objek tersebut termasuk delapan buah planet yang sudah diketahui dengan orbit berbentuk elips, lima planet kerdil/katai, 173 satelit alami yang telah diidentifikasi, dan jutaan benda langit (meteor, asteroid, komet) lainnya. Tata Surya terbagi menjadi Matahari, empat planet bagian dalam, sabuk asteroid, empat planet bagian luar, dan di bagian terluar adalah Sabuk Kuiper dan piringan tersebar. Awan Oort diperkirakan terletak di daerah terjauh yang berjarak sekitar seribu kali di luar bagian yang terluar.

Berdasarkan jaraknya dari matahari, kedelapan planet Tata Surya ialah Merkurius (57,9 juta km), Venus (108 juta km), Bumi (150 juta km), Mars (228 juta km), Yupiter (779 juta km), Saturnus (1.430 juta km), Uranus (2.880 juta km), dan Neptunus (4.500 juta km). Sejak pertengahan 2008, ada lima objek angkasa yang diklasifikasikan sebagai planet kerdil. Orbit planet-planet kerdil, kecuali Ceres, berada lebih jauh dari Neptunus. Kelima planet kerdil tersebut ialah Ceres (415 juta km. di sabuk asteroid; dulunya diklasifikasikan sebagai planet kelima), Pluto (5.906 juta km.; dulunya diklasifikasikan sebagai planet


(51)

kesembilan), Haumea (6.450 juta km), Makemake (6.850 juta km), dan Eris (10.100 juta km).


(52)

47 3.1 Analisis Sistem

Analisis merupakan penguraian dari suatu sistem yang utuh ke dalam bagian-bagian komponen dengan maksud untuk mengidentifikasi dan mengevaluasi permasalahan, sehingga diperoleh solusi. Analisis merupakan tahapan yang paling penting, karena kesalahan dalam tahap ini akan menyebabkan kesalahan di tahap selanjutnya. Sistem yang dibuat merupakan program untuk medeteksi sebuah marker sekaligus menapilkan objek tiga dimensi yang telah dibuat dengan menggunakan software tiga dimensi (3D Max). Objek yang dibuat merupakan sebuah simulasi gerhana, seolah-olah pengguna berinteraksi langsung dengan objek virtual dalam dunia nyata yang disajikan dalam bentuk buku.

3.1.1 Analisis Kebutuhan Non Fungsional

Sistem yang dibangun ini memiliki spesifikasi sebagai berikut: 1) PC atau laptop dengan processor 2 GHz atau lebih

2) Random Access Memory (RAM) 1 GB 3) Harddisk dengan space 20 GB

4) VGA 256 MB 32 Byte

5) Webcam 30 fps 5 Mega Pixel 6) Printer Epson C90


(53)

3.1.2 Analisis Kebutuhan Fungsional

Perangkat lunak yang digunakan untuk simulasi ARTatasurya ini adalah sebagai berikut:

1) Microsoft window XP SP2

2) Autodesk 3D Studio Max 9

3) ArToolKit Software Library Versi 2.65 4) Adobe Photoshop CS3

5) OpenGL

6) Visual C++ Enterprise 2008

3.1.3 Analisis Sistem yang Sedang Berjalan

Dalam sebuah sistem dibutuhkan analisis masukan dan keluaran agar terjadi interaksi antara pengguna dan sistem. Langkah awal yang harus dilakukan adalah mendapatkan input video dari sebuah kamera. Video yang di streaming secara

real time ini akan diolah oleh sistem untuk dianalisa frame per frame. Analisis ini merupakan proses-proses yang terjadi dalam membuat simulasi tata surya.

3.2.1.1 Proses Pembuatan Objek

Objek yang dibuat menggunakan software 3D MAX 9. Objek-objek yang dibuat dalam ARTatasurya ini masih menggunakan standard primitive. Dalam proses pemodelan terdiri dari 4 langkah. Pertama, kita membuat objek 3D dengan menggunakan 3D MAX 9. Kedua mengeksport objek yang sudah kita buat ke


(54)

dalam ArToolkit. Ketiga, menambahkan file DAT ke dalam ArToolkit. Untuk lebih jelasnya dapat dilihat pada gambar 3.1 dibawah ini.

Gambar 3.1 Tahapan pemodelan 3.2.1.2Proses Edit data

a. Edit file wrl

Proses edit data yaitu menambahkan file dengan extensi .DAT dengan menggunakan text editor wordpad kedalam library ARTatasurya. File dat ini berfungsi untuk memanggil file wrl. Wrl ini sendiri merupakan objek yang dibuat dengan menggunakan 3D max. Kode yang ada di dalam bumi.dat.

bumi.WRL \\ memanggil file bumi.wrl

0.0 0.0 0.0 # Translation \\ untukmenggeser objek 90.0 1.0 0.0 0.0 # Rotation \\ untuk memutar objek 10.0 10.0 10.0 # Scale \\ untuk merubah jarak objek

File bumi.dat harus berada dalam satu folder dengan file bumi.wrl karena dua file

ini akan saling berhubungan, file bumi.dat akan memanggil objek bumi.wrl. Buat objek

Export Objek


(55)

b. Edit objek_data_vrml

File ini berfungsi sebagai tempat objek-objek yang akan di render pada marker . Cara edit file ini adalah dengan membukanya dengan WordPad atau bisa juga dengan menggunakan Notepad .

Gambar 3.2 Edit file objek_data_vrml

3.2.1.3Kalibrasi Kamera

Kalibrasi kamera adalah salah satu langkah yang harus dilakukan dalam proses rekonstruksi 3D, dimana proses ini diperlukan untuk mendapatkan informasi parameter kamera yang digunakan untuk melakukan transformasi dari 3D (world coordinate) menuju ke 2D (camera coordinate). Parameter kamera teridiri dari dua yaitu parameter intrinsik dan parameter ekstrinsik yang nantinya akan digunakan untuk melakukan perhitungan, sehingga dapat ditentukan letak dari suatu benda dalam ruang 3D. Parameter intrinsik terdiri dari 4 unsur yaitu:


(56)

a) Nilai focus kamera, yaitu jarak antara lensa kamera dengan bidang gambar. b) Titik pusat proyeksi, yaitu lokasi titik tengah gambar dalam pixel koordinat c) Ukuran pixel efektif.

d) Koefisien distorsi, yaitu koefisien tingkat kelengkungan lensa meliputi radial dan tangensial distorsi.

Sedangkan parameter ekstrinsik terdiri dari dua buah matriks, yaitu matriks translasi dan matriks rotasi.

R =

T =

Matrik rotasi merupakan gabungan dari rotasi terhadap sumbu x,y,z yang masing-masing berotasi pada sudut ϴ.

R =

R =

R =

Berikut sistem koordinat Marker :


(57)

Parameter pada persamaan diatas akan dipakai pada proses selanjutnya dalam cara kerja ArToolkit.

3.2.1.4Cara Kerja ArToolkit

ArToolkit menggunakan teknik visi komputer untuk mengkalkulasikan sudut pandang kamera nyata ke Marker yang nyata. Ada lima langkah, dalam proses kerja ArTookit.

1. mencari Marker , kemudian Marker yang dideteksi dirubah menjadi binary, kemudian black frame atau bingkai hitam terdeteksi oleh kamera.

2. kamera menemukan poisisi Marker 3D dan dikalkulasikan dengan kamera nyata.

3. kamera mengindentifikasi Marker , apakah pola Marker sesuai dengan

templates memory.

4. Dengan mentrasformasikan posisi Marker . 5. Objek 3D di render diatas Marker .


(58)

Sebelum kamera digunakan, kamera harus dikalibrasi terlebih dahulu. Kalibrasi kamera merupakan bagian yang sangat penting dalam proses pengambilan input

video. Hal ini disebabkan oleh distorsi pada lensa kamera yang tiap kamera berbeda karakteristiknya. Tujuan dari kalibrasi kamera adalah untuk menghitung tingkat distorsi dari sebuah lensa kamera yang digunakan agar image yang dihasilkan mendekati image ideal. Parameter ini nantinya digunakan dalam perhitungan pada proses Pose and Position Estimation agar model objek dapat ditampilkan tepat diatas marker .

Gambar 3.4 Image ideal dan distorsiimage

Video yang diterima selanjutnya akan mengalami proses binarisasi (gray-scale),

kemudian nilai threshold berada pada angka 0 – 225 dan secara default, thresholding bernilai 100. Fungsi dari proses ini adalah untuk membantu sistem agar dapat mengenali bentuk segi empat dan pola di marker pada video yang diterima. Nilai threshold dapat diubah dan disesuaikan dengan kondisi cahaya disekitar marker untuk tetap membuat marker terlihat sebagai segi empat, karena ketika cahaya disekitar marker berkurang ataupun berlebihan pada saat proses

thresholding, sistem tidak dapat mendeteksi marker .


(59)

Gambar 3.5 Marker hasil thresholding

Setelah video mengalami proses thresholding langkah selanjutnya adalah mendeteksi marker , dimana sistem akan mengenali bentuk dan pola yang ada pada marker . Sistem akan mencari bagian yang memiliki bentuk segi empat dan menandainya. Sistem juga akan menghilangkan area yang tidak berbentuk segi empat sehingga yang akan ditampilkan pada layar hanyalah area yang memiliki bentuk segi empat.

Corner detection digunakan untuk mendapatkan koordinat dari empat sisi dan empat titik sudut pada segi empat yang tersisa. Setelah proses ini selesai, dua garis parallel pada marker diproyeksikan sehigga persamaan garisnya pada koordinat layar kamera adalah sperti berikut: A1x + b1y + c1 = 0 a2x + b2y + c2=0 Parameter pada persamaan diatas akan disimpan dan dipakai pada proses selanjutnya.

Karena sudut dari lensa kamera tidak tegak lurus terhadap marker ketika mengambil video, sudut-sudut marker yang dibentuk oleh sisi-sisi segi empat 90o. Ini menyebabkan pola yang ada di dalam marker tidak dapat dikenali dengan baik.


(60)

Gambar 3.6 Sudut-sudut pada marker

Untuk mengubah sudut marker yang tidak 90o adalah dengan pattern normalization agar pola dapat dikenali dan dicocokan. Sebelum gambar dijadikan pola pada sebuah marker agar sistem dapat mengenali pola itu. Untuk meletakan objek 3D tepat diatas marker , sistem perlu mengetahui koordinat dari marker

dan kamera.

= =

= Tcm (2)


(61)

Matriks transformasi (Tcm) dari koordinat Marker ke koordinat kamera seperti yang terlihat pada gambar 3.8. untuk Marker yang sudah dikenali, nilai dari parameter a1,b1,c1 dan a2,b2,c2 didapatkan ketika proses contour extraction. Matrix proyeksi P pada persmaan 3 diperoleh ketika proses kalibrasi kamera. Dengan mengganti xc dan xy pada persamaan 3 untuk x dan y pada persamaan 1 didapat persamaan garis sperti persamaan 4.

P = . = P (3)

a1P11Xc + (a1P12 + b1P22) Yc + a1P13 + b1P23 + c1) Zc=0 a2P11Xc + (a2P12 + b12P22) Yc + (a2P13 + c2)Zc =0 (4)

Marker segi empat yang digunakan mempuanyai empat sisi dimana dua sisi adalah garis yang paralel. Vektor normal dari Marker adalah n yang dihasilkan dari perkalian cross vektor u1 dan u2. Pada kenyataannya, vektor u1 dan u2 seharusnya tegak lurus, hal ini disebabkan oleh sudut kamera ketika pengambilan gambar yang tidak tegak lurus dengan Marker . Vektor v1 dan v2 dibuat agar memiliki sudut 90 derajat dengan menggunakan nilai dari vektor u1 dan u2 untuk memperkecil kesalahan. Setelah v1 dan v2 tegak lurus, v3 dihasilkan dari perkalian cross v1 x v2. Nilai v1, v2 dan v3 adalah komponen Marker ke koordinat kamera seperti pada persamaan 2.

Seteleah komponen rotasi V3x3 pada matrix transformasi diketahui, komponen translasi W1, W2, W3 dapat diperoleh dengan menggunakan persamaan 2 dan 3. Setelah transformasi matrix didapat, langkah terakhir yang


(62)

dilakukan adalah menggambar objek virtual 3D pada frame video tepat diatas permukaan Marker dan hasilnya dapat dilihat pada output videonya.

a) Deteksi Marker

Deteksi Marker merupakan tahap dimana Marker akan di identifikasi oleh

webcam sebagai sasaran untuk penempatan objek yang akan dirender. Deteksi

Marker dengan menggunakan metode Hough Transform mendeteksi parameter-parameter geometri. Representasi garis dari Marker yang ditangkap kamera

webcam menggunakan (r = x cos(ϴ) + y sin(ϴ), r: jarak antar garis dalam kalibrasi kamera, ϴ: sudut antara garis normal dengan sumbu-x). Input merupakan nilai biner dari titik sudut (edge) yang menghubungkan antar garis dimana semua titik sudut tersebut ditentukan sebagai pixel. Hough Transform membutuhkan array

yang disebut accumulator array , array ini hanya mempunyai 1 nilai balik untuk setiap kombinasi parameter (r, ϴ) yang memungkinkan. Setiap garis dapat dibangun dengan menghubungkan antara titik sudut (edge) yang telah ditentukan sebagai pixel tadi, dan parameter-parameter yang terkait dengan r dan ϴ menentukan nilai increment dari accumulator array . Setelah semua garis-garis yang memungkinkan diproses, nilai array yang tinggi merepresentasikan sebuah garis (Marker border). Meskipun Hough Transform memiliki banyak noise dalam sebuah image dan belum mampu menemukan titik akhir dari sebuah garis. Marker

yang berhasil di deteksi akan ditandai dengan warna merah dan warna hijau. Itu menandakan projection atau sudut pandang dari webcam.


(63)

Gambar 3.8 Deteksi Marker

3.2.1.5Langkah Pengembangan ArToolkit

Untuk lebih detailnya ada beberapa langkah dalam pengembangan ArToolkit seprti terlihat pada tabel 3.1.

Tabel 3.1 Prinsip pengembangan augmented reality

Inisialisasi 1. Menginisialisasi video capture dan membaca file

marker dan parameter kamera. Loop 2. Mengambil video frame input

3. Mendeteksi pola marker dan pola gambar dalam kotak hitam pada setiap frame video.

4. Hitung transformasi kamera relative terhadap pola yang terdeteksi.

5. Menggambar objek virtual pada pola yang terdeteksi Penutup 6. Tutup video capture

Pada langkah ke dua sampai lima terjadi looping atau pengulangan sampai aplikasi tersebut berhenti, sementara langkah satu dan enam hanya dilakukan pada saat inisialisasi dan pada saat menutup aplikasi. Untuk pengembangan secara rinci


(64)

dalam pengembangan ArToolkit dapat dilihat dengan menggunakan Visual Studio 2008 atau versi sebelumnya dengan cara membuka file sumber yang ada dalam direktori ArToolkit/example/SimpleTest/. SimpleTest merupakan file yang ada dalam ArToolkit yang digunakan sebagai program test yang terdiri dari main rutin

dan beberapa rutin graphic utama. Pada table 3.1, langkah dua sampai dengan lima merupakan fungsi mainloop. Fungsi panggilan dank ode yang sesuai dengan langkah aplikasi ArToolkit dapat dilihat pada table 3.2.

Table 3.2 Fungsi panggilan dalam step ArToolkit

ArToolkit step Fungsi

1. Menginisialisasi aplikasi Init

2. Ambil sebuah frame video input arVideoGetImage (mainloop) 3. Mendeteksi penanda (marker ) arDetectMarker (mainloop) 4. Perhitungan kamera transformasi arGetTransMat (mainloop) 5. Menggambar objek virtual Draw (mainloop)

6. Tutup video capture Cleaneup

Fungsi utama dalam ArToolkit adalah main, init, mainloop, draw dan cleanup. a. Main

Apabila kita buka file simpletest.cpp maka akan terdapat routine. Kode init diatas digunakan untuk inisialisasi video capture, membaca file marker , parameter kamera dan setup graphic window (lihat langkah satu pada tabel 3.2). Kemudian fungsi arVideoCapStart akan menghidupkan kamera. Fungsi argMainLoop yang akan melakukan render secara terus menerus (looping). Definisi fungsi argmainloop ada dalam file gsub.c.


(65)

b. Init

Rutin ini dipanggil dalam main rutin dan digunakan untuk menginisalisasi video capture dan membaca parameter-parameter aplikasi ArToolkit. Untuk menginisialisasi video capture, langkah pertama membuka path video kemudian mencari ukuran video. Kemudian diperlukan parameter yang akan digunakan dalam aplikasi ArToolkit, diantaranya adalah pola yang akan digunakan dan karakteristik kamera yang digunakan. Parameter kamera dibaca dari file data/camera_para.dat yang merupakan parameter default. Parameter tersebut ditransofmasikan dengan ukuran gambar yang ditangkap kamera. kemudian aplikasi parameter kamera, dan tampilan parameter tersebut pada konsol. Kemudian baca definisi pola yang digunakan, dalam hal ini pola yang digunakan adalah Hiro dari file Data/patt.hiro. Patt_id merupakan id pola marker yang

diidentifikasi.

c. Mainloop

MainLoop merupakan rutin dimana banyak fungsi ArToolki yang di panggil dan merupakan langkah kedua sampai lima pada tabel 3.1. Langkah pertama untuk melakukan capture frame video menggunakan fungsi arVideogetImage. Frame video yang dicapture tersebut kemudian digambarkan pada layar. Kemudian fungsi arDetectmarker digunakan untuk mencari pola yang sesuai dalam frame video yang sudah dicapture. Pola tersebut berisi variable marker

_num dan marker _info yang merupakan pointer yang berisi informasi koordinat dan confidence value serta object_id setiap marker yang ditemukan. Sampai pada


(1)

persis, karena apabila memiliki kemiripan background maka satu marker akan menampilkan beberapa objek.

4.2.5 Pengujian Betha

Pengujian betha merupakan pengujian yang dilakukan untuk mendapatkan kesimpulan dari aplikasi yang telah dibuat dengan cara memberikan kuesioner kepada user secara langsung. Pertanyaan yang diajukan kepada penggunaterdiri dari 10 pertanyaan. Berdasarkan data hasil kuesioner maka dicari prosentase masing-masing jawaban dengan menggunakan rumus kuesioner:

Y=P/Q*100 Keterangan:

Y= nilai prosentase

P = Banyaknya jawaban responden dari setiap soal Q = Jumlah responden

1. Apakah Marker dapat terdeteksi dengan baik?

No Keterangan

Frekuensi jawaban Jumlah sampel

Presentase

A Sangat setuju 2 10 20%

B Setuju 6 10 60%

C Ragu-ragu 2 10 20%

D Tidak setuju 0 10 0

2. Apakah dalam mendeteksi marker membutuhkan waktu yang lama?

No Keterangan

Frekuensi jawaban Jumlah sampel

Presentase

A Sangat setuju 1 10 10%

B Setuju 9 10 90%

C Ragu-ragu 0 10 0


(2)

96

3. Apakah tampilan antar muka menarik?

No Keterangan

Frekuensi jawaban Jumlah sampel

Presentase

A Sangat setuju 0 10 0

B Setuju 3 10 30%

C Ragu-ragu 5 10 50%

D Tidak setuju 2 10 20%

4. Apakah objek dapat ditampilkan dengan baik?

No Keterangan

Frekuensi jawaban Jumlah sampel

Presentase

A Sangat setuju 1 10 10%

B Setuju 6 10 60%

C Ragu-ragu 3 10 30%

D Tidak setuju 0 10 0

5. Apakah user mendapatkan pengalaman baru tentang teknologi AR?

No Keterangan

Frekuensi jawaban Jumlah sampel

Presentase

A Sangat setuju 5 10 50%

B Setuju 5 10 50%

C Ragu-ragu 0 10 0

D Tidak setuju 0 10 0

4.2.6 Kesimpulan Pengujian Betha

Berdasarkan hasil kuesioner (pengujian betha) yang dilakukan maka dapat disimpulkan bahwa aplikasi ARTatasurya dalam mendeteksi dan menampilkan objek telah sesuai dengan prosedur yang diharapkan dan pengguna dapat memahami apa yang disampaikan melalui pemodelan objek 3 dimensi. Pengguna merasa tertarik dengan aplikasi ARTatasurya, karena kebanyakan pengguna belum mengetahui teknologi AR.


(3)

97 BAB V

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Berdasarkan hasil pengujian terhadap responden user , dapat ditarik

kesimpulan kelebihan dan kekurangan aplikasi Augmented Reality Tatasurya sebagai alat peraga dalam mengenal tatasurya adalah sebagai berikut:

Kelebihan ARTatasurya:

1. Lebih interaktif karena melibatkan pengguna untuk berinteraksi dengan sistem. 2. Lebih menarik karena menampilkan objek virtual kedalam dunia nyata.

3. Mendapat pengalaman baru, karena kebanyakan user baru mengenal teknologi AR.

Kekurangan ARTatasurya:

1. Objek yang ditampilkan terkadang saling tumpang tindih. 2. Cepat bosan walaupun objek terdapat simulasi tatasurya. 3. Perputaran objek terlalu cepat.


(4)

98 5.2 Saran

Saran yang diberikan user sebagian besar menyarankan untuk pengembangan lebih lanjut. Untuk pengembangan dapat menggunakan ARToolkitPlus yang memiliki


(5)

99

DAFTAR PUSTAKA

[1] Heriady, 2007, Pemrograman Grafik 3D Mengunakan C dan OpenGL :Graha Ilmu ,Yogyakarta.

[2] Ahmad, Usman, 2005, Pengolahan Citra Digital & Teknik Pemrogramannya, Graha Ilmu, Yogyakarta.

[3] Universitas Bina Nusantara, 2005, Pengenalan Sistem Visi Komputer, Computer Vision, Page 3-5.

[4] Hendratman, Hendi, 2007, The Magic Of 3D Studio Max, Informatika, Bandung.

[5] Nugroho, Adi, 2005, Rational Rose Untuk Pemodelan Berorientasi Objek, Informatika Bandung, Bandung.

[6] Richard, Duda, 1971, Use Of The Hough Transfomation To Detect Lines And Curves In Pictures, Page 4.

[7] Bimber Oliver and Ras Ramesh, 2005, Spatial Augmented Reality.

[8] Wolfgang Halh, 2009, Interactive Environments with Open-Source Software.

[9] Yeni, 2004, Hough Transform, page 1-2.

[10] http://id.wikipedia.org/wiki/Bumi [11] http://id.wikipedia.org/wiki/Tata surya [12] http://id.wikipedia.org/wiki/Webcam


(6)

RIWAYAT HIDUP

NIM : 10106487

Kelas : IF-10

Nama Lengkap : SUNARYA

Tempat / Tanggal Lahir : CIREBON, 02 Februari 1988

Agama : Islam

Jenis Kelamin : Laki laki

Alamat : Blok Cikawung RT/RW 04/03 Desa Panambangan,

Kec. Sedong, Kab. Cirebon.

No. Telp : -

PENDIDIKAN

1994 – 2000 : SDN Panambangan II

2000 – 2003 : SLTPN 2 BEBER

2003 – 2006 : SMA PERTIWI CILIMUS

2006 – sekarang : Program S1, Jurusan Teknik Informatika, Fakultas Teknik dan Ilmu Komputer,