26
Rekontruksi Rekontruksi Citra 3 Citra 3 Dimensi Dimensi menggunakan menggunakan Voxel Voxel Coloring Coloring Oleh : Umar Maksum 2204 109 659 Dosen Pembimbing : Ahmad Zaini, ST, M.T. Dr. I Ketut Eddy Purnama.ST.,MT

RekontruksiRekontruksiCitra 3 Citra 3 DimensiDimensi ...Library OpenGL dan OpenCV Realisasi Program Proses pembuatan aplikasi dilakukan dengan microsoft Visual C++ dengan ... menggunakan

Embed Size (px)

Citation preview

Page 1: RekontruksiRekontruksiCitra 3 Citra 3 DimensiDimensi ...Library OpenGL dan OpenCV Realisasi Program Proses pembuatan aplikasi dilakukan dengan microsoft Visual C++ dengan ... menggunakan

RekontruksiRekontruksi Citra 3 Citra 3 DimensiDimensimenggunakanmenggunakan VoxelVoxel ColoringColoring

Oleh :Umar Maksum 2204 109 659

Dosen Pembimbing :Ahmad Zaini, ST, M.T.Dr. I Ketut Eddy Purnama.ST.,MT

Page 2: RekontruksiRekontruksiCitra 3 Citra 3 DimensiDimensi ...Library OpenGL dan OpenCV Realisasi Program Proses pembuatan aplikasi dilakukan dengan microsoft Visual C++ dengan ... menggunakan

LatarLatar BelakangBelakang

� 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.

� Proses ini memerlukan waktu yang cukup lama. Oleh karena itu diperlukan suatu prototype yang dapat menscanning bentuk benda dan dapat 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 kemudian dikembangkan oleh oleh Seitz dan Dyer.

� Metode Voxel coloring ini dapat menghasilkan obyek 3D yang bersifat sesuai dengan citra input-nya (photorealistic) dan dapat mengatasi masalah penutupan obyek (occlusion) yang terjadi pada proses rekonstruksi. Dengan adanya prototype ini dapat memudahkan untuk menggambar benda 3D.

Page 3: RekontruksiRekontruksiCitra 3 Citra 3 DimensiDimensi ...Library OpenGL dan OpenCV Realisasi Program Proses pembuatan aplikasi dilakukan dengan microsoft Visual C++ dengan ... menggunakan

TujuanTujuan

� Tujuan yang hendak dicapai dalam tugas akhir ini adalah merancang dan mengimplementasikan rekontruksi objek 3D dengan metode VC (Voxel Coloring) 3D dengan metode VC (Voxel Coloring) sehingga didapatkan objek sesuai bentuk aslinya.

Page 4: RekontruksiRekontruksiCitra 3 Citra 3 DimensiDimensi ...Library OpenGL dan OpenCV Realisasi Program Proses pembuatan aplikasi dilakukan dengan microsoft Visual C++ dengan ... menggunakan

BatasanBatasan MasalahMasalah

� Pengambilan gambar secara manual dengan memutar objek dari berbagai sudut.

� Untuk pengambilan gambar digunakan � Untuk pengambilan gambar digunakan kamera web yang telah terkalibrasi.

� Pengujian dilakukan pada objek yang sederhana.

Page 5: RekontruksiRekontruksiCitra 3 Citra 3 DimensiDimensi ...Library OpenGL dan OpenCV Realisasi Program Proses pembuatan aplikasi dilakukan dengan microsoft Visual C++ dengan ... menggunakan

MetodologiMetodologi

� Studi iteratur.

� Pada tahap ini akan dipelajari secara mendalam hal-hal sebagai berikut:

� Ebook tentang VC (Voxel Coloring)

� Microsoft Visual C++

� Library OpenGL dan OpenCV

� Realisasi Program� Realisasi Program

� Proses pembuatan aplikasi dilakukan dengan microsoft Visual C++ dengan library OpenGl dan OpenCV.

� Pengujian dan percobaan

� Sebelum menjadi aplikasi yang siap pakai, terlebih dahulu harus dilakukan pengujian, dalam hal ini pengambian gambar pada objek-objek sederhana seperti kardus dan meguji hsil rekontruksi objek 3 dimensi.

� Penulisan buku tugas akhir

� Menyusun laporan yang menunjukkan hasil yang diperoleh dalam tugas akhir.

Page 6: RekontruksiRekontruksiCitra 3 Citra 3 DimensiDimensi ...Library OpenGL dan OpenCV Realisasi Program Proses pembuatan aplikasi dilakukan dengan microsoft Visual C++ dengan ... menggunakan

KalibrasiKalibrasi KameraKamera

� Kalibrasi kamera adalah salah satu langkah yang harus dilakukan dalam proses rekonstruksi 3D. dimana proses ini diperlukan untuk mendapatkan informasi metrik dari gambar 2D.

� Metode yang akan digunakan untuk melakukan proses rekonstruksi gambar 3D ini dikembangkan oleh Zhang rekonstruksi gambar 3D ini dikembangkan oleh Zhang [4]. Metode ini merupakan kombinasi dari Photogrammetric Calibration dan Self Calibration, karena menggunakan informasi metrik 2D dan menghasilkan informasi yang meliputi parameter intrinsik dan ekstrinsik yang akan digunakan dalam proses penghitungan letak benda dalam ruang 3D.

Page 7: RekontruksiRekontruksiCitra 3 Citra 3 DimensiDimensi ...Library OpenGL dan OpenCV Realisasi Program Proses pembuatan aplikasi dilakukan dengan microsoft Visual C++ dengan ... menggunakan

ProyeksiProyeksi GambarGambarHubungan antara koordinat 3 dimensi dengan image coordinat dapat dijabarkan sbb:

Gambar 1 hubungan antara world coordinat dan image coordinat

Page 8: RekontruksiRekontruksiCitra 3 Citra 3 DimensiDimensi ...Library OpenGL dan OpenCV Realisasi Program Proses pembuatan aplikasi dilakukan dengan microsoft Visual C++ dengan ... menggunakan

DefinisiDefinisi VoxelVoxel

� Voxel melambangkan sebuah nilai diskrit dari ruang 3D, seperti pixel yang merupakan satuan terkecil dari gambar 2D, istilah voxel digunakan untuk melambangkan satuan terkecil yang ada pada gambar 3D.

� Voxel Coloring (VC) adalah sebuah metode rekonstruksi gambar 3D dari beberapa gambar 2D yang dikemukakan gambar 3D dari beberapa gambar 2D yang dikemukakan oleh Slabaugh[1] dan merupakan pengembangan dari metode Voxel Coloring [2].VC menghasilkan rekonstruksi gambar 3D dengan menggunakan teori tentang visibility yang tepat dan penempatan kamera yang berubah-ubah.

Page 9: RekontruksiRekontruksiCitra 3 Citra 3 DimensiDimensi ...Library OpenGL dan OpenCV Realisasi Program Proses pembuatan aplikasi dilakukan dengan microsoft Visual C++ dengan ... menggunakan

VoxelVoxel Coloring Coloring (VC)(VC)

� Voxel Coloring adalah sebuah algoritma untuk merekonstruksi bentuk3D dari sejumlah masukan citra yang dikemukakan oleh Seitz danDyer [1]

� Langkah awal metode ini ialah mendiskritkan obyek yang akandimodelkan menjadi sekumpulan voksel, yang akhirnya membentuksuatu ruang yang disebut ruang voksel (voxel space). Kemudiandilakukan pengecekan secara berurutan terhadap ruang vokseldilakukan pengecekan secara berurutan terhadap ruang vokseldimulai dari posisi yang terdekat dengan kamera hingga posisi yangterjauh.

� Pengecekan ini dilakukan untuk mengidentifikasi voksel mana yangmempunyai warna yang unik dan konsisten. Sebuah voksel dianggapkonsisten jika hasil proyeksi dari voksel tersebut ke citra inputmenghasilkan warna yang sama untuk semua citra dimana vokseltersebut terlihat.

Page 10: RekontruksiRekontruksiCitra 3 Citra 3 DimensiDimensi ...Library OpenGL dan OpenCV Realisasi Program Proses pembuatan aplikasi dilakukan dengan microsoft Visual C++ dengan ... menggunakan

Color ConsistencyColor Consistency

� Dalam memproses sebuah voxel perlu dilakukan pengecekan bahwa voxel tersebut terlihat pada gambar dan merupakan bagian dari objek, pengecekan apakah suatu voxel terlihat pada gambar atau tidak.

� Proses diakukan dengan menghitung standard deviasi dari kumpulan warna pixel hasil proyeksi V kemudian dibandingkan dengan nilai threshold maka dapat dianggap bahwa proyeksi V menunjuk pada threshold maka dapat dianggap bahwa proyeksi V menunjuk pada obyek yangs sama

Gambar 2 Proses colour consistency check

Page 11: RekontruksiRekontruksiCitra 3 Citra 3 DimensiDimensi ...Library OpenGL dan OpenCV Realisasi Program Proses pembuatan aplikasi dilakukan dengan microsoft Visual C++ dengan ... menggunakan

PerencanaanPerencanaan SistemSistem

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 � 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.

Page 12: RekontruksiRekontruksiCitra 3 Citra 3 DimensiDimensi ...Library OpenGL dan OpenCV Realisasi Program Proses pembuatan aplikasi dilakukan dengan microsoft Visual C++ dengan ... menggunakan

Flowchart Flowchart SistemSistem PerangkatPerangkat LunakLunak

Gambar 4 Flowchart rekontruksi 3 Dimensi

Page 13: RekontruksiRekontruksiCitra 3 Citra 3 DimensiDimensi ...Library OpenGL dan OpenCV Realisasi Program Proses pembuatan aplikasi dilakukan dengan microsoft Visual C++ dengan ... menggunakan

PerangkatPerangkat PendukungPendukung

� Perangkat lunak dibangun dengan visual C++ dengan beberapalibrary yang open source yaitu openCV dan openGL.Berjalan padasystem operasi Microsoft Windows XP SP2.Berikut spesifikasiperangkat keras sistem yang digunakan:

� Tabel 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

Page 14: RekontruksiRekontruksiCitra 3 Citra 3 DimensiDimensi ...Library OpenGL dan OpenCV Realisasi Program Proses pembuatan aplikasi dilakukan dengan microsoft Visual C++ dengan ... menggunakan

AAlgoritmalgoritma VoxelVoxel ColoringColoringCreate empty voxel space and partition it into

layersFor every voxel layer L dopixelsDoneInLayer ← ∅for every voxel V in layer L do

pixels ← ∅for all images I do

pixels←pixels∪selectUnmarked(projectVoxel(V,I))end forconsistent ← consistencyCheck(pixels)

Gambar 5 Algoritma Voxel Coloring

consistent ← consistencyCheck(pixels)if pixels ≠ ∅ and consistent and not

containsBackgroundPixel(pixels) thencolorVoxel(V,mean(pixels))

pixelsDoneInLayer ← ∪ pixelsElsecarveVoxel(V)

end ifend formark(pixelsDoneInLayer)end for

Page 15: RekontruksiRekontruksiCitra 3 Citra 3 DimensiDimensi ...Library OpenGL dan OpenCV Realisasi Program Proses pembuatan aplikasi dilakukan dengan microsoft Visual C++ dengan ... menggunakan

PengujianPengujian

Prosedur pengujiannya adalah:

� 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, � Melakukan capture objek dari 8 posisi sudut mulai dari sudut 0 , 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.

Gambar 6 Pengujian kalibrasi

Page 16: RekontruksiRekontruksiCitra 3 Citra 3 DimensiDimensi ...Library OpenGL dan OpenCV Realisasi Program Proses pembuatan aplikasi dilakukan dengan microsoft Visual C++ dengan ... menggunakan

PengujianPengujian Capture Capture ObjekObjek

Gambar 7 Proses pengujian capture object

Gambar 4.5 Bangun Kubus

Gambar 4.5 Bangun Prisma

Page 17: RekontruksiRekontruksiCitra 3 Citra 3 DimensiDimensi ...Library OpenGL dan OpenCV Realisasi Program Proses pembuatan aplikasi dilakukan dengan microsoft Visual C++ dengan ... menggunakan

PengujianPengujian SegmentasiSegmentasi

Gambar 4.7 Hasil Segmentasi KubusGambar 4.7 Hasil Segmentasi Kubus

Gambar 4.7 Hasil Segmentasi Prisma

Page 18: RekontruksiRekontruksiCitra 3 Citra 3 DimensiDimensi ...Library OpenGL dan OpenCV Realisasi Program Proses pembuatan aplikasi dilakukan dengan microsoft Visual C++ dengan ... menggunakan

PengujianPengujian HasilHasil RekontruksiRekontruksi 3 3 DimensiDimensi (1)(1)

Gambar 4.9 Hasil Rekontruksi Prisma dengan voxel volume Gambar 4.9 Hasil Rekontruksi Prisma dengan voxel volume space (50X50X50)

� Data voxel:

Voxel volume Space = 50 X 50 X 50

Banyak voxel = 2914 voxel

Waktu rekontruksi = 19,687 detik

Page 19: RekontruksiRekontruksiCitra 3 Citra 3 DimensiDimensi ...Library OpenGL dan OpenCV Realisasi Program Proses pembuatan aplikasi dilakukan dengan microsoft Visual C++ dengan ... menggunakan

PengujianPengujian HasilHasil RekontruksiRekontruksi 3 3 DimensiDimensi (2)(2)

Gambar 4.10 Hasil Rekontruksi Prisma dengan voxel Gambar 4.10 Hasil Rekontruksi Prisma dengan voxel volume space (100X100X100)

� Data voxel:

Voxel volume Space = 100 X 100 X100

Banyak voxel = 10437 voxel

Waktu rekontruksi = 79,953 detik

Page 20: RekontruksiRekontruksiCitra 3 Citra 3 DimensiDimensi ...Library OpenGL dan OpenCV Realisasi Program Proses pembuatan aplikasi dilakukan dengan microsoft Visual C++ dengan ... menggunakan

PengujianPengujian HasilHasil RekontruksiRekontruksi 3 3 DimensiDimensi (3)(3)

Gambar 4.11 Hasil Rekontruksi Prisma dengan voxel Gambar 4.11 Hasil Rekontruksi Prisma dengan voxel volume space (150X150X150)

� Data voxel:

Voxel volume Space = 150 X 150 X 150

Banyak voxel = 21349 voxel

waktu rekontruksi = 215,859 detik

Page 21: RekontruksiRekontruksiCitra 3 Citra 3 DimensiDimensi ...Library OpenGL dan OpenCV Realisasi Program Proses pembuatan aplikasi dilakukan dengan microsoft Visual C++ dengan ... menggunakan

PengujianPengujian HasilHasil RekontruksiRekontruksi 3 3 DimensiDimensi (4)(4)

Gambar 4.12 Hasil Rekontruksi Kubus dengan voxel volume space (50X50X50)volume space (50X50X50)

� Data voxel:

Voxel volume Space = 50 X 50 X 50

Banyak voxel = 4841 voxel

Waktu rekontruksi = 21,844 detik

Page 22: RekontruksiRekontruksiCitra 3 Citra 3 DimensiDimensi ...Library OpenGL dan OpenCV Realisasi Program Proses pembuatan aplikasi dilakukan dengan microsoft Visual C++ dengan ... menggunakan

PengujianPengujian HasilHasil RekontruksiRekontruksi 3 3 DimensiDimensi (5)(5)

Gambar 4.13 Hasil Rekontruksi Kubus dengan voxel Gambar 4.13 Hasil Rekontruksi Kubus dengan voxel volume space (100X100X100)

� Data voxel:

Voxel volume Space = 100 X 100 X 100

Banyak voxel = 15675 voxel

Waktu rekontruksi = 74,297 detik

Page 23: RekontruksiRekontruksiCitra 3 Citra 3 DimensiDimensi ...Library OpenGL dan OpenCV Realisasi Program Proses pembuatan aplikasi dilakukan dengan microsoft Visual C++ dengan ... menggunakan

PengujianPengujian HasilHasil RekontruksiRekontruksi 3 3 DimensiDimensi (6)(6)

Gambar 4.14 Hasil Rekontruksi Kubus dengan voxel Gambar 4.14 Hasil Rekontruksi Kubus dengan voxel volume space (150X150X150)

� Data voxel:

Voxel volume Space = 150 X 150 X 150

Banyak voxel = 30471 voxel

Waktu rekontruksi = 208,11detik

Page 24: RekontruksiRekontruksiCitra 3 Citra 3 DimensiDimensi ...Library OpenGL dan OpenCV Realisasi Program Proses pembuatan aplikasi dilakukan dengan microsoft Visual C++ dengan ... menggunakan

TabelTabel HasilHasil PercobaanPercobaan

No VoxelVolume Space

Jumlah Voksel

Waktu Rekontruksi (dt)

1 50 X 50 X 50 4841 21,844

2 100 X 100 X 100 15675 74,297

3 150 X 150 X 150 30471 208,11

Tabel 1 Percobaan Kubus

3 150 X 150 X 150 30471 208,11

No Voxel Volume Space

Jumlah Voksel

Waktu Rekontruksi (dt)

1 50 X 50 X 50 2914 19,6872 100 X 100 X 100 10437 79,9533 150 X 150 X 150 21349 215,859

Tabel 2 Percobaan Prisma

Page 25: RekontruksiRekontruksiCitra 3 Citra 3 DimensiDimensi ...Library OpenGL dan OpenCV Realisasi Program Proses pembuatan aplikasi dilakukan dengan microsoft Visual C++ dengan ... menggunakan

KesimpulanKesimpulan

A. Kesimpulan

� Pada percobaan bangun Kubus dan Prisma bahwa semakin besar volume voxel space-nya maka semakin banyak jumlah voxel-nya dan semakin besarwaktu yang dibutuhkan untuk melakukan rekontruksi.

� Pada Kubus untuk volume voxel space (150X150X150) jumlah voxel-nya30471 voxel, time reconstruction 208,11 detik. Untuk Prisma dengan volume voxel space (150X150X150) jumlah voxel-nya 21349 voxel, time voxel space (150X150X150) jumlah voxel-nya 21349 voxel, time reconstruction-nya 215,859 detik.

� Hasil rekontruksi 3D dengan volume voxel space (50X50X50) lebih kasarkarena jumlah voksel lebih sedikit, sehingga untuk menghasilkan citra yang lebih halus maka volume space-nya lebih besar.

B. Saran

� Guna menunjang pengujian aplikasi ini, maka dukungan hardware harusmemadai. Saat ini, replika hardware belum bisa meberikan hasil maksimaldalam pengujian.

� Pengambilan gambar yang lebih banyak, agar rekontruksinya dapat sesuaiseperti bentuk aslinya.

Page 26: RekontruksiRekontruksiCitra 3 Citra 3 DimensiDimensi ...Library OpenGL dan OpenCV Realisasi Program Proses pembuatan aplikasi dilakukan dengan microsoft Visual C++ dengan ... menggunakan

ReferensiReferensi

[1] Gregory G. Slabaugh. Novel Volumentric Scene Reconstuction Methods for New View Synthesis. USA: Georgia Institute of Technology, 2002

[2] Steven M. Seitz dan Charles R. Dyer, Photorealistic Scene Reconstruction by Voxel Coloring, Proc. Computer Vision and Pattern Recognition Conf, pp.1067-1073, 1997

[3] Rudy Adipranata, Hwang-Kyu Yang and Tae-Soo Yun. Implementation of Photorealistic 3D Object Reconstruction Using Voxel Coloring. 19th Conference Photorealistic 3D Object Reconstruction Using Voxel Coloring. 19th Conference of Korean Information Processing Society, pp. 527-530, 2003

[4] Zhang, Zhengyou. Flexible Camera Calibration by Viewing aPlane from Unknown Orientation. In International Conf. on Computer Vision, 1999

[5] Open CV Documentation by Intel Research. <http://sourceforge.net/projects/opencv/>, akses : 3 Desember 2009

[6] http://en.wikipedia.org/wiki/Voxel, 2009