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”,