augmented reality menggunakan library nyartoolkit dan bahasa c

advertisement
AUGMENTED REALITY MENGGUNAKAN
LIBRARY NYARTOOLKIT DAN BAHASA C#
Rachman Yulianto*
Teknik Informatika, Sekolah Tinggi Ilmu Komputer PGRI, Banyuwangi, Indonesia1*
[email protected]
nyata menggunakan bantuan webcam. Gambar yang
ditangkap kemudian diolah dan ditampilkan ke layar
monitor.
Abstrak — Pada era globalisasi ini, teknologi
telah berkembang dengan sangat pesat. Salah satu
contohnya yaitu Augmented Reality yang dapat
diaplikasikan pada berbagai hal. Augmented
Reality adalah kompbinasi antara objek virtual
dengan objek nyata pada dunia nyata secara
langsung. Objek virtual dapat menggunakan objek
2D, objek 3D, suara, dan lainnya.
Augmented Reality merupakan suatu teknologi yang
menambahkan objek virtual ke dalam lingkungan nyata
secara real time sehingga batas diantara keduanya
menjadi sangat tipis (Azuma, 2013). Objek virtual yang
ditambahkan adalah objek 3D yang terintegrasi ke
dunia nyata (real world). AR merupakan kebalikan dari
Virtual Reality (VR), dimana virtual reality menjadikan
pengguna tergabung dalam sebuah lingkungan virtual
secara menyeluruh. Sebaliknya, AR memungkinkan
pengguna untuk melihat lingkungan nyata dengan
objek virtual yang ditambahkan atau tergabung dengan
lingkungan nyata. Tidak seperti VR yang sepenuhnya
menggantikan lingkungan nyata, AR sekedar
menambahkan atau melengkapi lingkungan nyata
(Angga, 2011).
Penelitian
ini
mendiskusikan
mengenai
implementasi Augmented Reality menggunakan
library dan marker. Metode yang digunakan adalah
marker based tracking. Marker berwarna hitam dan
putih dengan bingkai hitam dan background putih
dan pola khusus ditengahnya. Marker dicetak pada
kertas lalu objek virtual 3D akan tampil ketika
marker diarahkan dan terdeteksi pada webcam.
Konteks dari study ini menggunakan framework
AR berbasis open source, yaitu NyarToolkit yang
diimplementasikan kedalam bahasa C#. Hasil dari
penelitian ini sebagai acuan dan dapat diterapkan
untuk aplikasi selanjutnya.
Dengan semakin berkembangnya penggunaan library
yang telah tersedia untuk membangun AR, maka perlu
adanya penelitian pada library NyarToolkit dengan
penggunaan bahasa C#.
Kata Kunci — 3D Object, Augmented Reality, C#,
NyarToolkit.
Rumusan masalah pada penelitian ini adalah
bagaimana pemanfaatan metode dalam library pada
penerapan Augmented Reality serta bagaimana
kemampuan, kehandalan, serta implementasi pada
bahasa pemrograman pada library dalam penerapan
Augmented Reality.
1. Pendahuluan
Dengan kemajuan teknologi yang sangat pesat
belakangan ini banyak manusia yang semakin
dimanjakan dengan kemudahan dan inovasi yang
ditawarkan banyak inovator didunia. Para penggiat
teknologi berlomba-lomba menampilkan inovasi dan
kreasi teknologi terbaru Mulai dari hardware yang
dulunya hanya sebuah Komputer Desktop berukuran
sangat besar hingga semakin mengecil yang
berbanding terbalik dengan kompabilitas yang sudah
sangat jauh meninggalkan pendahulunya.
Ruang lingkup pembahasan antara lain library yang
digunakan dalam penelitian ini adalah NyarToolkit,
bahasa Pemrograman yang digunakan pada
NyarToolkit adalah C#, objek yang digunakan adalah
objek 3D, marker berpola digunakan untuk me-render
objek 3D, marker yang digunakan adalah marker Hiro,
Kanji, dan 1 marker custom, dan penelitian ini bersifat
pemanfaatan dan kemampuan library yang ada dalam
teknologi Augmented Reality.
Dan pada software, terutama pada teknologi computer
vision yang merupakan cabang dari kecerdasan
buatan atau artificial intelligence pun berkembang
sangat cepat. Dengan memanfaatkan komputer, dapat
dibuat sangat banyak produk-produk berbasiskan
teknologi. Salah satunya yaitu teknologi Augmented
Reality (AR). Secara harfiah, apabila diterjemahkan
kedalam bahasa Indonesia, Augmented Reality terdiri
dari dua kata yaitu “Augmented” yang berarti
penambahan atau peningkatan, dan “Reality” yang
berarti realitas atau kenyataan. Jadi pengertian
umumnya yaitu realita yang ditambahkan atau realita
tertambah (kato, 2000). Augmented Reality merupakan
teknologi dari cabang computer vision yang bertujuan
untuk menggabungkan citra sintetis ke dalam dunia
Tujuan
penelitian
ini
adalah
membuktikan
perbandingan dan pemanfaatan metode library dalam
penerapan Augmented Reality serta dapat mengetahui
kemampuan, kehandalan, serta implementasi pada
bahasa pemrograman pada library dalam penerapan
Augmented Reality.
2. Teori Penunjang
2.1. Bahasa Pemrograman C#
C# (dibaca C Sharp) merupakan suatu bahasa
pemrograman yang dibuat oleh Microsoft yang
digunakan oleh banyak developer .NET untuk
75
mengembangkan aplikasi dengan platform .NET.
Bahasa ini merupakan bahasa yang berorientasi
Object Oriented Programming, dan memiliki inti,
banyak kemiripan seperti bahasa C++, Java, dan VB.
Faktanya, C# mengkombinasikan kekuatan dan
efisiansi dari C++, sederhana dan kemudahan desain
layaknya Java, dan bahasa yang sangat simpel seperti
VB.
seperti kesehatan, militer, industri manufaktur,
Augmented Reality juga telah diaplikasikan dalam
perangkat-perangkat yang digunakan orang banyak,
seperti pada telepon genggam.
Azuma dalam karya ilmiahnya berjudul A survey of
Augmented Reality (2007) menjelaskan bahwa
Augmented
Reality
adalah
teknologi
yang
menggabungkan obyek-obyek maya yang ada dan
dihasilkan (generated) oleh komputer dengan bendabenda yang ada di dunia nyata sekitar kita, dan dalam
waktu yang nyata.
Seperti halnya bahasa pemrograman yang lain, C#
bisa digunakan untuk membangun berbagai macam
jenis aplikasi, seperti aplikasi berbasis windows
(desktop) dan aplikasi berbasis web serta aplikasi
berbasis web services. C# menghilangkan beberapa
hal yang bersifat kompleks yang terdapat dalam
beberapa macam bahasa pemrograman seperti Java
dan C++, termasuk diantaranya mengilangkan macro,
templates, multiple inheritance dan virtual base
classes.
2.3. NyarToolKit
NyARToolKit merupakan turunan langsung dari
ARToolkit yang ditulis secara eksklusif di Java.
Kemampuan NyarToolkit memang dibawah ARToolkit,
tapi kemampuannya tidak diragukan dan bersifat
independen. Seperti aslinya, NyARToolKit adalah
library fungsi interpretasi visual dan integrasi data VR
ke dalam lingkungan fisik, termasuk fungsi real-time
kamera visi, 3D rendering obyek virtual, dan
mengintegrasikan keduanya ke dalam aliran output.
(Davison, 2013).
Kunci dari bahasa pemrograman yang bersifat Object
Oriented adalah encapsulation, inheritance, dan
polymorphism. Encapsulation, dimana semua fungsi
ditempatkan dalam satu paket (single package).
Inheritance, adalah suatu cara yang terstruktur dari
suatu kode-kode pemrograman dan fungsi untuk
menjadi sebuat program baru dan berbentuk suatu
paket. Sedangkan polymorphism, adalah kemampuan
untuk mengadaptasi apa yang diperlukan untuk
dikerjakan. Sifat-sifat tersebut di atas, telah di miliki
oleh C# sehingga bahasa C# merupakan bahasa yang
bersifat Object Oriented.
Penggunaan nama NyarToolkit memang terdengar
aneh. Itu dikarenakan diciptakan oleh seorang pria
Jepang yang dikenal sebagai Nyatla pada tahun 2008,
sehingga Ny harus ditambahkan ke nama toolkit.
Meskipun berbasis java, akan tetapi perkembangan
kemampuan NyarToolkit sehingga dapat berjalan pada
bahasa C# dan sistem operasi Android.
Fitur-fitur yang terdapat pada NyarToolkit antara lain:
a. Sebuah kerangka sederhana untuk membuat
real-time aplikasi Augmented Reality
b. Hamparan 3D obyek virtual pada penanda nyata
(Magic Symbol)
c. Sebuah platform perpustakaan multi video
dengan rangkaian:
 Beberapa sumber input (USB, Firewire, kartu
capture)
 Beberapa Format (RGB/YUV420P, YUV)
 Pelacakan kamera pendukung
 Inisialisasi GUI Interface
d. Pelacakan penanda yang cepat (real-time
planner detection)
e. Library grafis yang simple
Dengan dukungan penuh dari Microsoft yang akan
mengeluarkan produk-produk utamanya dengan
dukungan Framework .NET, maka masa depan
bahasa C# sebagai salah satu bahasa pemrograman
yang ada di dalam lingkungan Framework .NET akan
lebih baik.
2.2. Augmented Reality
Augmented
Reality
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. Tidak seperti
realitas maya yang sepenuhnya menggantikan
kenyataan, namun Augmented Reality hanya
menambahkan atau melengkapi kenyataan. (Kato,
2000).
2.4. Marker
Tahap pertama dalam membangun AR adalah dengan
mengenal marker. Marker adalah sebuah gambar
berpola khusus yang sudah dikenali oleh template
library AR. Selanjutnya marker akan dibaca dan
dikenali oleh kamera lalu dicocokkan dengan template
ARToolkit, setelah itu baru kamera akan me-render
objek 3D diatas marker (Angga, 2011). Marker standar
yang sering digunakan oleh para pemula adalah
marker Hiro dan marker Kanji. Marker ini digunakan
pada library ARToolkit.
Selain menambahkan benda maya dalam lingkungan
nyata,
Augmented
Reality
juga
berpotensi
menghilangkan benda-benda yang sudah ada.
Menambah
sebuah
lapisan
gambar
maya
dimungkinkan
untuk
menghilangkan
atau
menyembunyikan lingkungan nyata dari pandangan
pengguna. Misalnya, untuk menyembunyikan sebuah
meja dalam lingkungan nyata, perlu digambarkan
lapisan representasi tembok dan lantai kosong yang
diletakkan di atas gambar meja nyata, sehingga
menutupi meja nyata dari pandangan pengguna.
Pada umumnya, marker yang biasa dikenali hanya
marker dengan pola berbentuk kotak dengan bingkai
hitam didalamnya. Tetapi banyak pengembang AR
yang sudah bisa membuat marker tanpa bingkai hitam
Augmented Reality dapat diaplikasikan untuk semua
indera, termasuk pendengaran, sentuhan, dan
penciuman. Selain digunakan dalam bidang-bidang
76
(custom marker) ataupun tanpa marker sama sekali
(markerless).
bingkai hitam dengan pola yang berada di bagian
tengah bingkai, akan tetapi dalam perkembangannya,
marker tidak harus hitam putih. Dalam persegi tersebut
dapat dimasukkan simbol, gambar ataupun pola yang
akan digunakan sebagai penanda (marker). Marker
memiliki beberapa ketentuan yaitu harus persegi dan
marker memiliki bentuk yang tetap (umumnya hitam
atau putih) dan biasanya berada dengan latar
belakang warna yang kontras (biasanya kebalikan dari
perbatasan warna). Ketebalan batas marker adalah
25% dari panjang sebuah penanda tepi. Tetapi ada
pula marker custom yang berbeda ukuran bingkai,
ataupun marker berwarna
3. Perancangan System Program
3.1 Metode Penelitian
Langkah-langkah dalam menyelesaikan penelitian ini
di perlihatkan pada gambar 1. Prinsip pengerjaannya
menggunakan metode waterfall yaitu pengerjaan dari
atas ke bawah secara berurutan.
Studi Literatur Membangun Augmented Reality
Menggunakan Penanda (Marker)
Analisa dan Desain Algoritma
Membangun Augmented Reality Dengan Menggunakan
Marker
Mengintegrasikan objek Virtual 3D Diatas Marker
Gambar 2 : Ukuran Marker
3.3 Marker Based Tracking
Metode marker yang digunakan pada augmented
reality ini menggunakan metode marker based
tracking. Komputer akan mengenali posisi dan
orientasi marker lalu menciptakan objek virtual 3D.
Uji Coba Dan Evaluasi Pada Library NyarToolkit
Kesimpulan Dan Penulisan laporan
Gambar 1 : Langkah-Langkah Penelitian
Studi literatur adalah mempelajari teori-teori yang perlu
di pahami untuk mendukung kelancaran penelitian ini.
Berikut adalah teori-teori yang pendukung yang
dimaksud :
a.
Mempelajari tentang library NyarToolkit.
b.
Mempelajari tentang rancangan bahasa
pemrograman yang digunakan.
Rancangan algoritma pada penelitian ini bisa dilihat
pada sub bab selanjutnya. Pengenalan pola marker
dengan aplikasi yang dibuat.
Intergrasi antara objek virtual 3D dengan marker ketika
marker tertangkap oleh kamera dan dikenali, sehingga
pada layar akan terlihat objek 3D sesuai marker yang
ditampilkan. Uji coba dan evaluasi diperlukan untuk
melihat tingkat keberhasilan dari metode library yang
digunakan, yaitu NyarToolkit.
Kesimpulan terhadap aplikasi yang dibuat dan
penulisan
laporan
dilakukan
untuk
mendokumentasikan semua kegiatan-kegiatan dan
temuan-temuan selama pelaksanaan penelitian.
3.2 Marker
Marker merupakan ilustrasi hitam dan putih berbentuk
persegi dengan batas hitam tebal dan latar belakang
putih. Secara default, marker memang menggunakan
Gambar 3 : Desain Activity Diagram Marker Based Tracking
Marker akan terekam melalui kamera real time.
Kemudian marker digunakan untuk mengenali objek
77
yang akan ditambahkan. Objek yang ditambahkan
akan diproses menggunakan komputer dan webcam
yang kemudian ditampilkan dalam layar maupun
peralatan display khusus melalui pengenalan sebuah
marker (penanda). Selanjutnya ARMedia akan
menampilkan objek yang akan degenerate secara
otomatis dan real time. Untuk lebih jelasnya dapat
dilihat pada gambar 3.
Penjelasan dari alur diatas yaitu setelah image yang
direkam oleh webcam adalah marker dengan bingkai
hitam, selanjutnya adalah menghitung posisi dan
orientasi marker. Selanjutnya adalah menemukan
posisi dan orientasi dari marker 3D. Posisi dan
orientasi marker tersebut secara relatif akan akan
dihitung. Komputer akan mengenali posisi dan
orientasi marker dan menciptakan dunia virtual 3D
yaitu titik (0,0,0) dan 3 sumbu yaitu X, Y, dan Z.
Gambar 5 : Desain Activity Diagram NyarToolKit
Gambar 4 : Sistem Koordinat Marker
Penjelasan alur diagram diatas yaitu membuka video
stream dari kamera. Kemudian menangkap image
marker yang diarahkan di depan kamera. Selanjutnya
aplikasi akan melakukan identifikasi, posisi, dan
orientasi marker. Proses selanjutnya yaitu pencocokan
pola marker dengan marker yang disimpan pada
aplikasi. Ketika cocok, terapkan posisi dan orientasi
marker yang selanjutnya me-render objek 3D pada
video frame. hasil akhirnya yaitu menampilkan objek
3D tersebut pada layar.
Setelah posisi dan orientasi dihitung, maka image
marker yang terdapat ditengah bingkai hitam marker
akan disesuaikan dengan image yang tersimpan
dalam memory. Setelah marker terdeteksi, langkah
selanjutnya adalah mendeteksi pattern yang terdapat
di dalam bingkai. Kamera akan merekam pattern yang
terdapat di dalam marker. Jika benar, maka pattern
teridentifikasi sebagai penanda untuk menampilkan
objek virtual. Hal selanjutnya yang akan dilakukan
adalah menghitung posisi dan orientasi dari objek
virtual. Kemudian objek virtual 3D tersebut akan
ditranformasikan ke atas marker.
4. Uji Coba Dan Pembahasan
4.1 Skenario Uji Coba
Uji Coba dilakukan dengan menggunakan Laptop Dell
Dengan spesifikasi processor Intel Core 2 Duo T8100
2.10GHz, kapasitas memory 2 Gb, resolusi monitor
yang digunakan 1280x800 piksel. Perangkat lunak
pendukung komputer adalah Windows 8. Perangkat
keras kamera menggunakan Laptop Integrated
Webcam ver. 1.4.1.1011 dan WebCam Vista/Live!
Cam Chat VF0330 1.12.1.0. Penggunaan NyarToolKit
C# menggunakan library NyARToolkitCS-4.1.1,
DirectShowLib-2005, dan DirectX, serta aplikasi Visual
Studio C# 2012.
3.4 NyarToolKit
NyarToolkit merupakan turunan langsung dari
ARToolkit dengan pengembangan menggunakan
bahasa pemrograman C# dan Java. Tetapi
implementasinya tetap berbasiskan ARToolKit dengan
penggunaan marker sebagai media untuk me-render
objek 3D. dan cara kerjanya pun sama dengan
ARToolKit.
Pola marker yang digunakan adalah marker Hiro,
marker Kanji, dan marker Ples. Pattern-pattern dari
ketiga marker ini akan dipergunakan dalam acuan
menampilkan objek 3D pada aplikasi-aplikasi AR yang
akan dibahas pada bab selanjutnya.
78
Gambar 6 : Marker Hiro, Marker Kanji, Dan Marker Ples
Skenario uji coba yaitu Buka aplikasi NyarToolKit C#,
kemudian Cek driver kamera tersedia atau tidak. Jika
tersedia, maka tampilkan gambar yang tertangkap oleh
kamera. Hadapkan marker-marker yang telah dicetak
didepan kamera. Saat marker dikenali, maka objek 3D
akan tampil pada tiap-tiap marker tersebut.
Gambar 9 : Penyimpanan Data Marker
4.2 Pelaksanaan Dan Evaluasi Uji Coba
Sesuai skenario diatas, maka proses awal adalah
Pemasangan library DirectShowLib-2005, Directx,
NyarToolkitCS, dan NyarToolkitCSUtil pada ARMarker.
Pendeteksian driver kamera ketika aplikasi pertama
kali dijalankan. Lalu tampilan aplikasi ARMarker saat
berjalan, marker tertangkap pada kamera dan
menampilkan objek 3D.
Gambar 10 : Inisialisasi Kamera SimpleVRML
Hasil uji coba untuk menampilkan objek 3D pada layar
ketika marker-marker tertangkap pada kamera dengan
kondisi cahaya stabil dan marker berdiri tegak lurus
didepan kamera pada aplikasi-aplikasi yang telah
dijalankan terlihat pada Tabel 1. Sedangkan hasil uji
coba untuk menampilkan objek 3D pada layar ketika
marker tertangkap pada kamera dengan kondisi sudut
marker yang berbeda secara horizontal pada aplikasiaplikasi yang telah dijalankan terlihat pada Tabel 2.
Yang terakhir adalah hasil uji coba untuk menampilkan
objek 3D pada layar dengan kondisi pencahayaan
yang berbeda-beda pada aplikasi-aplikasi yang telah
dijalankan terlihat pada Tabel 3.
Gambar 7 : Pengaturan Kamera
Tabel 1 : Objek 3D
Uji Coba
ARMarker
Gambar 8 : Deteksi Marker
Objek 3D / Jarak (cm) *
15
20
25
30
1
1
1
1
1
1
1
1
1
1
1
1
Marker
Hiro
Kanji
Ples
Tabel 2 : Sudut Marker Terhadap Objek 3D
Uji Coba
ARMarker
79
Marker
Hiro
Kanji
Ples
30
1
1
1
Sudut (Derajat) *
50
70
80
1
1
1
1
1
1
1
1
2
90
4
4
4
Tabel 3 : Objek 3D Terhadap Ruangan Dan Cahaya
Kondisi Ruangan
Cahaya
Ruangan
Terang
Tertutup
Redup
Tertutup
Gelap
Tertutup
Terang
Terbuka
Mendung
Terbuka
Gelap
Terbuka
*Ket :
1.
2.
3.
4.
Aplikasi
SimpleVRML
1
1
4
1
1
4
[2].
Azuma, Ronald T, “A Survey of Augmented reality”,
http://www.cs.unc.edu/~azuma/ARpresence.pdf (diakses
2 November 2013).
[3].
Andriyadi, Angga, “Augmented Reality With ARToolkit”,
Augmented Reality Team, 2011.
[4].
Prof. Dr. Butz, A, “Interaction Technique For AR, LMU
Munchen - Medieninformatik, 2006
.
[5].
Muncul Stabil.
Muncul Tidak Stabil.
Jarang Muncul.
Tidak Muncul.
4.3 Analisa Hasil Dan Kelemahan
Dari uji coba menampilkan objek 3D dengan
penggunaan 3 marker dapat dilihat bahwa aplikasi
pada ARMarker stabil dalam menampilkan objek 3D
dalam tiap-tiap jarak antara kamera dengan marker.
Dan uji coba pengukuran sudut marker Hiro terhadap
penampakan objek 3D pada layar dapat dilihat bahwa
aplikasi ARMarker mempunyai hasil yang bagus
bahkan pada sudut sempit 80 derajat terhadap
kamera. Yang terakhir uji coba pengukuran kondisi
cahaya yang berbeda pada ruang yang berbeda pada
marker Hiro dengan kondisi marker tegak lurus
didepan kamera pada jarak terbaik, didapat hasil
bahwa aplikasi ARMarker dapat membaca marker
dengan baik.
4 Kesimpulan
Dari hasil penelitian yang dilakukan pada library yang
digunakan untuk membangun aplikasi Augmented
Reality didapatkan bahwa library tersebut mampu
membangun suatu aplikasi untuk menampilkan objek
3D pada marker yang dikenali yang tertangkap pada
kamera.
Pada hasil implementasi menggunakan NyarToolkit
yang menggunakan bahasa pemrograman C#,
hasilnya memang sebaik dengan penggunaan
ArToolKit, walaupun masih dibawah kemampuan
ArToolKit. Akan tetapi library masih belum mendukung
kemampuan Multi Marker sehingga hanya 1 marker
yang terbaca walau diletakkan beberapa marker
didepan kamera.
5 Future Work
Dari semua hasil uji coba dan implementasi ini
diharapkan dapat digunakan sebagai acuan dalam
membangun aplikasi Augmented Reality yang
selanjutnya yang dapat digunakan dalam kehidupan
sehari-hari. Library yang telah diteliti dapat diolah
kembali lebih baik lagi sesuai kebutuhan yang hendak
digunakan. Pada implementasi library NyarToolKit C#,
perlu adanya penelitian dalam membangun multi
marker sehingga marker-marker yang diletakkan di
depan kamera dapat menampilkan objek 3D semua.
Daftar Pustaka
[1]. Nugroho, Adi, “Algoritma Dan Struktur Data Dengan
C#”, Penerbit Andi, 2009.
80
Kato, H, “Inside ARToolkit”, Hiroshima City University,
2000.
[6].
Kato, H., dan Billinghurst, M., “Marker Tracking and
HMD Calibration for a Video-based Augmented Reality
Conferencing System”,Proceedings of 2nd Int.
Workshop on Augmented Reality, 85-94, 1999.
[7].
Putra, Darma(2010), “Pengolahan Citra Digital”, Andi
Offset, 2010
[8].
Scheinerman, M, “Exploring Augmented
Haverford College Computer Science, 2009
Reality”,
Download