Rekontruksi Citra 3 Dimensi Menggunakan Voxel Coloring Umar maksum 1 Jurusan Teknik Elektro FTI Institut Teknologi Sepuluh November Email:
[email protected] Dosen Pembimbing: Ahmad Zaini, ST.,MT, Dr. I Ketut Eddy Purnama,ST.,MT Abstract Saat ini komputer grafis mengalami kemajuan yang luar biasa dalam pemodelan 3 dimensi, sehingga mendorong para peniliti untuk mengembangkan dan merancang berbagai teknik rekontruksi 3 dimensi. Rekontruksi 3 dimensi sangat membantu di dunia medis, pembuatan game dan animasi, karena akan cepat membantu dalam merekontruksi objek 3 dimensi daripada dikerjakan secara manual. Tetapi masih belum ada kamera ataupun scanner yang dapat mengambil image langsung secara 3D, sehingga banyak developer software yang mengembangkan aplikasi untuk membuat obyek 3D seperti 3D Max, Maya dan lain-lain. Namun apikasi tersebut masih memerlukan keahlian manusia untuk membuat obyek 3D yang menyerupai aslinya. Dalam tugas akhir ini dirancang aplikasi rekonstruksi citra 3 dimensi dengan menggunakan metode voxel coloring. Pengambilan citra dilakukan dengan menggunakan satu kamera web dan objek diputar dengan beberapa sudut untuk pengambilan citra. Metode ini dapat menghasilkan obyek 3D yang bersifat photorealistic dan dapat mengatasi masalah occlusion yang terjadi pada proses rekonstruksi. Hasil yang diperoleh dari percobaan untuk kubus dengan volume space (150 x 150 x 150) jumlah vokselnya 17899 voxel, waktu rekontruksi 227,797 detik. Untuk Prisma dengan volume space (150X150X150) jumlah vokselnya 21349 voxel, waktu rekontruksinya 215,859 detik. Untuk menghasilkan citra 3D yang lebih halus maka volume space-nya harus semakin besar. Keyword : occlusion, photorealistic, voxel coloring 1.
Proses ini memerlukan waktu yang cukup lama. Oleh karena itu diperlukan suatu prototype yang dapat menscanning bentuk benda dan dapat menggambar benda tersebut sesuai dengan aslinya. Oleh karena itu pada penelitian ini mencoba untuk membuat system rekontruksi citra 3 dimensi menggunakan Voxel Coloring. Metode Voxel Coloring (VC) yang dikemukakan oleh Slabaugh, dimana metode ini
Pendahuluan Mendapatkan bentuk citra objek 3D yang sesuai dengan bentuk objeknya merupakan hal yang komplek. Selama ini untuk mendapatkan gambar objek tiga dimensi dilakukan secara manual yaitu dengan melakukan pengukuran secara manual terhadap objek yang akan digambar dan kemudian menggambar objek tersebut secara manual.
1
kemudian dikembangkan oleh oleh Seitz dan Dyer. Metode Voxel coloring ini dapat menghasilkan obyek 3D yang bersifat sesuai dengan citra inputnya (photorealistic) dan dapat mengatasi masalah penutupan obyek (occlusion) yang terjadi pada proses rekonstruksi. Dengan adanya prototype ini dapat memudahkan untuk menggambar benda 3D.
sekumpulan citra, seperti ditunjukkan pada gambar 2.7. Dari hasil pewarnaan voksel tersebut diharapkan dapat merekonstruksi obyek sesuai dengan gambar input. Secara formal, ruang 3D scene (S) direpresentasikan sebagai sekumpulan voksel yang tidak tembus cahaya, dimana tiap voksel akan mencakup sebuah volume terbatas yang terpusat pada sebuah titik V∈S dan mempunyai isotropic radiance color(V,S). Asumsi yang digunakan adalah seluruh obyek tercakup dalam sebuah batasan yang diketahui yaitu finite bounding volume. Semua voksel yang terletak di dalam bounding volume disebut ruang voksel yang dilambangkan dengan simbol V. Sebuah citra I dispesifikasikan sebagai sekumpulan piksel dimana pikselpiksel tersebut terpusat pada titik p∈I dan mempunyai irradiance color(p,S)[5].
. 2. Dasar Teori 2.1 Voxel Coloring (VC) Voxel Coloring adalah sebuah algoritma untuk merekonstruksi bentuk 3D dari sejumlah masukan citra yang dikemukakan oleh Seitz dan Dyer [1]. Langkah awal metode ini ialah mendiskritkan obyek yang akan dimodelkan menjadi sekumpulan voksel, yang akhirnya membentuk suatu ruang yang disebut ruang voksel (voxel space). Kemudian dilakukan pengecekan secara berurutan terhadap ruang voksel dimulai dari posisi yang terdekat dengan kamera hingga posisi yang terjauh. Pengecekan ini dilakukan untuk mengidentifikasi voksel mana yang mempunyai warna yang unik dan konsisten. Sebuah voksel dianggap konsisten jika hasil proyeksi dari voksel tersebut ke citra input menghasilkan warna yang sama untuk semua citra dimana voksel tersebut terlihat.
Gambar 2.7 Voxel coloring [5] Sebuah piksel p∈I dan scene S, terdapat voksel V∈S yang terlihat pada I dan terproyeksikan ke p oleh V=S(p). Scene S dikatakan lengkap terhadap sekumpulan citra jika untuk setiap citra I dan setiap piksel
Masalah utama pada metode ini adalah bagaimana menandai sebuah voksel dengan warna pada volume tiga dimensi dan tetap mempunyai konsistensi terhadap
2
memerlukan sebuah titik harus terdapat di setiap scene yang konsisten. Sehingga sebagai hasilnya, invariant warna lebih umum daripada hard points. Gabungan dari invariant warna ini membentuk scene yang konsisten, sehingga permasalahan pewarnaan voksel dapat digambarkan sebagai permasalahan yang dapat diselesaikan dengan memecahkan masalah scene yang konsisten dan berhubungan dengan invariant warna. Tetapi untuk lebih mudahnya untuk menyelesaikan masalah tersebut dibutuhkan batasanbatasan lain [5].
p∈I terdapat sebuah voksel V∈S sehingga V=S(p). Sebuah scene yang lengkap disebut konsisten terhadap sekumpulan citra jika untuk setiap citra I dan setiap piksel p∈I, color(p,I)=color(S(p),S)[5]. 2.2 Invariant Warna Satu-satunya cara untuk mendapatkan informasi dari sebuah scene untuk memecahkan persoalan pewarnaan voksel adalah dengan menggunakan invariant, yaitu suatu sifat yang terdapat pada semua scene yang konsisten. Sebagai contoh dapat diperhatikan sekumpulan voxel yang terdapat di setiap scene yang konsisten. Laurentini telah mendefinisikan bagaimana cara untuk mendapatkan suatu invariants yang disebut hard points, dengan menggunakan perpotongan volume dari gambar silhouette. Dengan menggunakan hard points, informasi yang benar mengenai scene dapat dihasilkan, hanya saja, hard points ini jarang ditemukan, bahkan untuk beberapa gambar, tidak didapat hard points.
2.3 Batasan Ordinal Visibility Batasan ordinal visibility akan mengaktifkan identifikasi dari sekumpulan invariant warna sebagai titik batas dari ℵ, dimana ℵ adalah kumpulan semua scene yang konsisten. Diasumsikan P dan Q adalah titik scene dan I adalah citra dari kamera yang mempunyai pusat di C. P akan menutupi Q jika P terletak pada segmen garis
CQ . Kamera input
harus diletakkan pada posisi tertentu sehingga memenuhi batasan : sehingga untuk semua titik scene P dan Q, dan gambar input I, P menutupi Q pada I hanya jika || P || < || Q ||[5].
Untuk itu, masalah invariant yang digunakan di sini bukan invariant yang berupa bentuk seperti hard points, tetapi invariant yang berupa warna. Sebuah voksel disebut invariant warna terhadap sekumpulan gambar jika memenuhi dua kondisi yaitu : terdapat dalam sebuah scene yang konsisten terhadap gambar dan untuk setiap pasangan scene yang konsisten S dan S1, V∈S∩S1 termasuk color(V,S)=color(V,S1). Tidak seperti invariant bentuk, invariant warna tidak
Untuk memenuhi batasan ordinal visibility ini, maka penempatan kamera harus memenuhi konfigurasi seperti gambar di bawah ini dimana pada gambar 2.8a adalah posisi kamera jika obyek berupa benda solid, dan gambar 2.8b jika obyek berupa ruang.
3
(2.9) (3.0) (3.1)
(a) (b) Gambar 2.8 Posisi Kamera [5]
(3.2)
2.4 Color-Consistency Color-consistency diperlukan dalam proses rekontruksi citra 3D dari citra 2D. Color-consistency adalah proses untuk menentukan (evaluasi) apakah suatu bagian dari obyek pada citra 2D akan dimunculkan pada citra 3D. Dalam memproses sebuah voksel perlu dilakukan pengecekan bahwa voksel tersebut terlihat pada citra dan merupakan bagian dari objek, pengecekan apakah suatu voksel terlihat pada citra atau tidak , dapat dilihat dari hasil segmentasi citra . Apabila proyeksi V pada gambar mengenai bagian yang berwarna maka V tersebut adalah termasuk objek akan disimpan untuk selanjutnya dilakukan pengecekan warna.
(3.3)
(3.4)
(3.5)
(3.6) Gambar 2.9 dapat dilihat bahwa titik A adalah konsisten karena terlihat pada kamera 1 dan 2 dan menunjuk titik yang sama, sedangkan titik B tidak konsisten karena tidak menunjuk pada piksel yang sama.
Proses pengecekan selanjutnya adalah untuk melihat apakah V terproyeksi pada gambar dan menunjuk obyek yang sama. Proses dilakukan dengan menghitung standard deviasi dari kumpulan warna piksel hasil proyeksi V kemudian dibandingkan dengan nilai threshold maka dapat dianggap bahwa proyeksi V menunjuk pada obyek yang sama. Berikut ini rumus yang di gunakan untuk mencari standard deviasi.
Gambar 2.9 Color consistency check [2] 3. Perencanaan Sistem Pada bab ini menjelaskan desain dan implementasi sistem. Pada dasarnya sistem yang akan dibangun merupakan sebuah perangkat lunak untuk
4
merekontruksi dimensi.
gambar
menjadi
3
3.1 Desain Sistem Secara garis besar sistem perangkat lunak ini terdiri dari beberapa bagian utama.yaitu: • Input Proses input terdiri dari proses pengambilan citra chessboard pattern dan citra obyek dengan menggunakan kamera digital.Citra yang didapatkan akan digunakan sebagai input pada proses selanjutnya. • Segmentation Proses segmentation adalah proses untuk memisahkan obyek dengan lingkungan (latar belakang) sehingga memungkinkan sistem untuk mengenali obyek yang terdapat pada citra. • Camera Calibration Proses camera calibration berfungsi untuk mencari parameter intrinsik kamera dan mencari matrik ekstrinsik tiap citra berdasarkan koordinat dunia. • 3D Reconstruction 3D Reconstruction adalah proses utama dari perangkat lunak. yaitu proses rekonstruksi citra 3D dengan metode voxel coloring untuk mencari titik-tltik yang berkoresponden dengan citra 2D berdasarkan warna. Flowchart dan keseluruhan sistem kerja perangkat lunak rekonstruksi gambar 3D ini dapat dilihat pada Gambar 3.1.
Gambar 3.1. Flowchart rekontruksi 3 dimensi. 3.2 . Perangkat Pendukung Perangkat lunak dibangun dengan Mathlab 7.7 dan visual C++ dengan beberapa library yang open source yaitu openCV dan openGL. Berjalan pada system operasi Microsoft Windows XP SP2. Berikut spesifikasi perangkat keras sistem yang digunakan: Tabel 3.1 Perangkat pendukung No Deskripsi Spesifikasi 1 CPU Intel Core 2 Duo T7500 @2.2 GHz 2 Memory 2 GB 3 VGA Sys672 series 3 Graphics 128MB 4 Kamera Webcam 1.3 MP 3.3 Algoritma Pseudo Program Voxel Coloring Berikut ini alur pemrograman menggunakan algoritma voxel coloring.
5
Create empty voxel space and partition it into layers For every voxel layer L do pixelsDoneInLayer ← ∅ for every voxel V in layer L do pixels ← ∅ for all images I do
4. Pengujian Dalam melakukan pengujian, perlu dilakukan berbagai persiapan, baik itu persiapan perangkat keras maupun perangkat lunak yang dibutuhkan. Karena aplikasi ini berhubungan dengan prediksi suatu nilai, maka pengujian sistem ini pun berkaitan erat dengan pencarian, pemrosesan serta analisa data.Secara umum, hsi pegujian yang didapatkan bukan merupakan data yang betul-betul akurat, namun merupakan data prediksi
pixels←pixels∪selectUnmar ked(projectVoxel(V,I)) end for consistent ← consistencyCheck(pixels) if pixels ≠ ∅ and consistent and not containsBackgroundPixel(pi xels) then
4.1 Prosedur Pengujian Prosedur pengujiannya adalah: a.
colorVoxel(V,mean(pixels)) pixelsDoneInLayer ← ∪ pixels Else carveVoxel(V) end if end for mark(pixelsDoneInL ayer) end for
b.
Gambar 3.2. Algoritma Voxel Coloring[7].
c.
Penjelasan gambar 3.2 adalah pertama membuat voxel space dan dipartisi kedalam bentuk layer L. Hitung consistency piksel dengan membandingkan hasil dari SD (Standard Deviation) dengan nilai T (threshold), bila SD < T maka voksel consistent. Periksa consistency piksel pada setiap voxel V di masing – masing layer L . Jika consistent warnai voxel, jika tidak consistent lakukakan carved pada voksel. Kemudian dilakukan perulangan sampai semua voksel consistent.
d.
6
Melakukan kalibrasi kamera agar nilai-nilai parameter hasil kalibrasi benar-benar akurat sehingga hasil rekontruksi lebih baik. Kalibrasi menggunakan citra pattern papan catur yang di capture dari 8 sudut yaitu : 00, 450, 900, 1350, 1800, 2250, 2700 dan 3150. Melakukan capture objek dari 8 posisi sudut mulai dari sudut 00, 450, 900, 1350, 1800, 2250, 2700 dan 3150. Segmentasi 8 citra input untuk diketahui apakah segmentasi berhasil dengan baik. Rekontruksi citra 3D dengan menggunakan voxel coloring. Citra yang diuji berupa bangun kubus dan prisma. Dengan memberikan pengjian volume space mulai dari 50X50X50, 100X100X100 dan 150X150X150 dihasilkan data berupa jumlah voksel dan waktu rekontruksi.
4.2 Pengujian Objek 4.2.1 Objek Kubus Data citra diperoleh dari kamera webcam dengan format PNG. Objek pertama yang diuji adalah bangun kubus, tampak pada gambar 4.5. Objek kubus di capture dari 8 posisi sudut yaitu 00, 450, 900, 1350, 1800, 2250, 2700 dan 3150.
Posisi 00
Posisi 450
Posisi 00
Posisi 450
Posisi 900
Posisi 1350
Posisi 1800
Posisi 2250 Posisi 2700 Posisi 3150
Gambar 4.7 Hasil Segmentasi Kubus
Posisi 900 Posisi 1350
Posisi 1800 Posisi 2250 Posisi 2700 Posisi 3150 Posisi 00
Gambar 4.5 Bangun Kubus 4.2.2
Posisi 450
Posisi 900
Posisi 1350
Objek Prisma
Posisi 1800 Posisi 2250 Posisi 2700 Posisi 1350 Posisi 00
Posisi 450
Posisi 900 Posisi 1350
Gambar 4.8 Hasil Segmentasi Prisma Posisi 1800 Posisi 2250 Posisi 2700 Posisi 3150
Gambar 4.7 menunjukan hasil segmentasi dari input citra sebanyak 8 citra kubus yang menunjukkan masing-masing sudut pengambilan citra dari sudut 00 sampai 3150. Gambar 4.8 menunjukan hasil segmentasi dari input citra sebanyak 8 citra prisma yang menunjukkan masing-masing sudut pengambilan citra dari sudut 00 sampai 3150. Warna background diubah menjadi warna hitam.
Gambar 4.6 Bangun Prisma Objek selanjutnya yang diuji adalah bangun prisma, tampak pada gambar 4.6. Objek Prisma di capture dari 8 posisi sudut yaitu 00, 450, 900, 1350, 1800, 2250, 2700 dan 3150. Proses ini dilakukan dengan memutar objek dengan jarak antar sudut 450. 4.3 Segmentasi Hasil segmentasi dari objek kubus dan prisma seperti pada gambar 4.7 dan gambar 4.8.
7
Data voxel: Voxel volume Space = 150 X 150 X 150 Banyak voxel = 21349 voxel waktu rekontruksi = 215,859 detik b) Hasil rekontruksi Kubus
4.4 Rekontruksi a) Hasil Rekontruksi Prisma
Gambar 4.9 Hasil Rekontruksi Prisma dengan voxel volume space (50X50X50) Gambar 4.12 Hasil Rekontruksi Kubus dengan voxel volume space (50X50X50)
Data voxel: Voxel volume Space = 50 X 50 X 50 Banyak voxel = 2914 voxel Waktu rekontruksi = 19,687 detik
Data voxel: Voxel volume Space = 50 X 50 X 50 Banyak voxel = 2370 voxel Waktu rekontruksi = 17,016 detik
Gambar 4.10 Hasil Rekontruksi Prisma dengan voxel volume space (100X100X100)
Gambar 4.13 Hasil Rekontruksi Kubus dengan voxel volume space (100X100X100)
Data voxel: Voxel volume Space = 100 X 100 X100 Banyak voxel = 10437 voxel Waktu rekontruksi = 79,953 detik
Data voxel: Voxel volume Space = 100 X 100 X 100 Banyak voxel = 8776 voxel Waktu rekontruksi = 83,000 detik
Gambar 4.11 Hasil Rekontruksi Prisma dengan voxel volume space (150X150X150)
Gambar 4.14 Hasil Rekontruksi Kubus dengan voxel volume space (150X150X150)
8
Data voxel: Voxel volume Space = 150 X 150 X 150 Banyak voxel = 17899 voxel Waktu rekontruksi = 227,797detik Berikut ini Tabel dari hasil percobaan. Tabel 1 Percobaan Kubus No
VoxelVolume Space
Jumlah Voksel
1 2
50 X 50 X 50 100 X 100 X 100 150 X 150 X 150
2370 8776
Waktu Rekontruksi (dt) 17,016 83,000
17899
227,797
3
3.
5.2 Pengembangan Lebih Lanjut Untuk pengembangan lebih lanjut mengenai tugas akhir ini, penulis menyarankan :
Tabel 2 Percobaan Prisma No
Voxel Volume Space
Jumlah Voksel
1 2
50 X 50 X 50 100 X 100 X 100 150 X 150 X 150
2914 10437
Waktu Rekontruksi (dt) 19,687 79,953
21349
215,859
3
1.
2. 5. Kesimpulan 5.1 Kesimpulan Sebagai penutup beberapa hal yang dapat disimpulkan dari tugas ahir ini: 1.
2.
(150X150X150) jumlah voxel-nya 21349 voxel, time reconstruction-nya 215,859 detik. Hasil rekontruksi 3D dengan volume voxel space (50X50X50) lebih kasar karena jumlah voksel lebih sedikit, sehingga untuk menghasilkan citra yang lebih halus maka volume space-nya lebih besar.
6.
Pada percobaan bangun Kubus dan Prisma bahwa semakin besar volume voxel space-nya maka semakin banyak jumlah voxel-nya dan semakin besar waktu yang dibutuhkan untuk melakukan rekontruksi. Pada Kubus untuk volume voxel space (150X150X150) jumlah voxel-nya 17899 voxel, time reconstruction 27,797 detik. Untuk Prisma dengan volume voxel space
Guna menunjang pengujian aplikasi ini, maka dukungan hardware harus memadai. Saat ini, replika hardware belum bisa meberikan hasil maksimal dalam pengujian. Pengambilan gambar yang lebih banyak, agar rekontruksinya dapat sesuai seperti bentuk aslinya.
Referensi [1] Ahmad, Usman. Pengolahan Citra Digital dan Teknik Pemrogramannya. Penerbit Graha Ilmu,Yogyakarta, 2002 [2] Gregory G. Slabaugh. Novel Volumentric Scene Reconstuction Methods for New View Synthesis. USA: Georgia Institute of Technology, 2002 [3] Open CV Documentation by Intel Research.
9
pencv/>, akses : 3 Desember 2009
[9] Http://www.cert.or.id/~budi/cour ses/ec7010/2004/agusbrreport.pdf, Perbandingan 3 Metode Iris Scan, diakses terakhir tanggal 3 nopember 2008.
[4] Roger Y. Tsai. A Versatile Camera Calibration Technique for High-Accuracy 3D Machine Vision Metrology Using Off-theShelf TV Camera and Lenses. IEEE Journal of Robotics and Automation, Vol. RA-3, No. 4, August 198
[10] Http://en.wikipedia.org/wiki/Vox el, Voxel, diakses terakhir tanggal 3 nopember 2009.
[5] Steven M. Seitz dan Charles R. Dyer, Photorealistic Scene Reconstruction by Voxel Coloring, Proc. Computer Vision and Pattern Recognition Conf, pp.1067-1073, 1997
[11]www.techdigest.tv/Pinholecamera. Pinhole Camera, Diakses terakhir tanggal 2 Februari 2010. [12] http://id.wikipedia.org/wiki/Mata, Mata, Diakses terakhir tanggal 2 Februari 2010.
[6] Rudy Adipranata, HwangKyu Yang and Tae-Soo Yun. Implementation of Photorealistic 3D Object Reconstruction Using Voxel Coloring. 19th Conference of Korean Information Processing Society, pp. 527-530, 2003 [7] van de Sande, Koen Erik Adriaan. A Practical Setup for Voxel Coloring using off-theshelf Components.Universitiet Van Amsterdam, Amsterdam. 2004 [8] Zhang, Zhengyou. Flexible Camera Calibration by Viewing aPlane from Unknown Orientation. In International Conf. on Computer Vision, 1999
10