Penyusun Tugas Akhir :
(NRP : 5106100060)
Dosen Pembimbing :
PENDAHULUAN DASAR TEORI
PERANCANGAN PERANGKAT LUNAK IMPLEMENTASI PERANGKAT LUNAK UJI COBA DAN EVALUASI
Seiring dengan berkembangnya
kemajuan teknologi hampir semua
game, animasi, dan iklan menggunakan teknologi berbasis 3D
Oleh karena itu diperlukan suatu
perangkat lunak yang mampu
menghasilkan obyek 3D dengan cepat dan mudah
Bagaimana melakukan kalibrasi kamera
tehadap beberapa gambar 2D
Bagaimana melakukan rekonstruksi
terhadap beberapa gambar 2D dengan menggunakan algoritma Generalized
Simulasi eksperimen dilakukan dengan
menggunakan
› MS Visual Studio 2005
› Library OpenCV
› Matlab
Data Pelatihan yang digunakan adalah
beberapa image terhadap sebuah obyek
Hasil dari pelatihan :
› jumlah voxel yang dihasilkan
› waktu yang dibutuhkan untuk melakukan
rekonstruksi dengan menggunakan beberapa
Threshold
Untuk mengembangkan perangkat
lunak yang dapat menghasilkan obyek 3D yang berasal dari kumpulan gambar 2D dengan menggunakan algoritma
Merupakan teknik penyusunan bentuk
tiga dimensi berdasarkan informasi – informasi yang telah didapatkan dari proses komputasi beberapa image
Reskonstruksi dibagi menjadi 2 macam,
yaitu menggunakan :
› Kalibrasi Kamera
Rekonstruksi terjadi bila terdapat suatu
obyek dengan beberapa posisi kamera yang berbeda dengan satu arah
Tujuan Kalibrasi Kamera : memperoleh
matriks intrinsik dan ekstrinsik
Yang digunakan untuk
mentransformasikan gambar dari image coordinates world coordinates
Parameter Intrinsik Kamera :
W : matriks intrinsic kamera
K : koefisien distorsi kamera (koefisien tingkat kelengkungan lensa , radial dan tangensial distorsi)
fx dan fy : nilai focus kamera (jarak lensa dan bidang gambar) Cx dan Cy : koordinat titik tengah (titik tengah gambar dalam
pixel)
k1 dan k2 : distorsi radial
Menggambarkan orientasi posisi dari
kamera terhadap sistem koordinat
sebenarnya dalam world coordinate
dengan :
R : matriks Rotasi
T : matriks Translasi
Rekonstruksi terjadi bila terdapat satu
obyek dengan satu posisi kamera dengan lebih dari satu cahaya
Image Based Rendering
menggunakan analisa warna dari gambar dua dimensi
Image Based Modelling
Keuntungan Image Based Rendering
adalah kemudahan dalam melakukan rekonstruksi suatu obyek yang bersifat photorealistic
Yaitu : obyek yang berasal dari obyek
Merupakan sebuah metode rekonstruksi
gambar tiga dimensi dari beberapa gambar dua dimensi
Menghasilkan bentuk 3D dengan
menggunakan teori visibility yang tepat dan penempatan kamera yang
“ mengasumsikan sebuah ruang padat 3 dimensi yang tersusun atas voxel yang masing – masing voxel akan dievaluasi apakah voxel tersebut merupakan
bagian obyek atau bukan, jika bukan
bagian dari obyek maka akan dilakukan pemahatan terhadap voxel tersebut “
Terdapat 2 macam Metode GVC :
GVC Item Buffer memori <<, proses >> GVC Layered Depth Image
(pengembangan dari GVC IB) memori >>, proses <<
initialize SVL
render SVL to LDIs for every voxel V
carved(V) = false copy SVL to CVSVL
while (CVSVL is not empty) { delete V from CVSVL
compute vis(V)
if(consist(vis(V)) = false) { Carved(V) = true
remove V from SVL
for every pixel P in projection of V into all images { if(V is head of LDI(P)
delete V from LDI(P) }
for every voxel N adjacent to V with N ∉ SVL{
N_is_visible = false
for every pixel P in projection of N to all images { add N to LDI(P)
if(N is head of LDI(P))
N_is_visible = true } add N to SVL
if(N_is_visible)
Consist (vis(v)) =
True, if < Threshold
Gambaran proses secara umum :
Find Position of Internal corners of the Chessboard
Refines Corner Location
Find Intrinsic and Ectrinsic Camera Parameters Using
Calibration Pattern
Find Extrinsic Camera Parameters for Particular
View
End Start
Dengan menggunakan persamaan
berikut maka didapat nilai X, Y, dan Z (world coordinates)
Struktur Data yang digunakan : Single
Linklist
› SVL (Surface Voxel List) : Voxel yang berada di permukaan obyek (nampak)
› CVSVL (Change Visiblity Surface Voxel List) : SVL yang akan dianalisis visibilitynya
› IVL (Inner Voxel List) : Voxel yang berada di dalam obyek (tidak nampak)
› LDI (Layered Depth Image) : SVL yang terproyeksikan ke Pixel P di setiap Voxel
Start
Generate IVL dan SVL
Generate CVSVL
Generate LDI
Start Initialize (U, V) Compute World Coordinates (X, Y, 3D)1 = (X, Y, 3D)2 and (Z, 3D) maximum No Yes IVL SVL End
Start Copy SVL to CVSVL
Initialize
Start Initialize SVL (U, V, 3D)1 = (U, V, 3D)2 LDI <= SVL No Yes
LDI11 ( Y ) LDI41 ( Y ) LDI31 ( Y ) LDI21 ( Y ) LDI12 ( XYZRGB ) LDI33 ( XYZRGB ) LDI32 ( XYZRGB ) LDI22 ( XYZRGB ) LDI13 ( XYZRGB )
LDI34 ( XYZRGB ) LDI35 ( XYZRGB )
LDI42 ( XYZRGB ) LDI43 ( XYZRGB )
Start Initialize 2D Coordinate
IVL <= 3D Projection
Projected to Same 3D Coordinate and have Z
Maximal
SVL <= IVL Projected to same U,V
then Sort LDI <= SVL For every Voxel CVSL <= SVL CVSVL != NULL End Delete Voxel V from CVSVL Compute Visibility Voxel V Less than Threshold Carving Voxel V Remove Voxel V from SVL
For every Pixel P in Projection of Voxel V
into All Images
Voxel V = Head LDI(V)
Insert (LDI(V).next) to
CVSVL
Delete LDI(V) from LDI
Iteration is Finished For every Voxel N
Adjacent to Voxel V, N ∉ SVL Visibible (N) =
FALSE
For every Pixel P in Projection of Voxel V
into All Images
Insert (N) to LDI Voxel N = Head LDI(N) Visible (N) = TRUE Iteration is Finished Insert (N) to SVL Visible (N) = TRUE Insert (N) to CVSVL No Yes No Yes No Yes No Yes No Yes Yes Yes No Yes Yes Yes No Yes No Yes No No
threshold Image = 6 Imag e= 5 Image = 4 Image = 3 Image = 2
25.00
50.00
75.00
Jumlah image = 6
Jumlah image = 5
σ ΣIVL ΣCVSVL ΣLDI ΣSVL Waktu
25.00 66672 0 422 2319 00 : 33 : 55 50.00 66694 0 457 2309 00 : 32 : 19 75.00 66695 0 470 2309 00 : 32 : 29 100.00 66695 0 470 2309 00 : 32 : 10
σ ΣIVL ΣCVSVL ΣLDI ΣSVL Waktu
25.00 63998 0 435 2231 00 : 26 : 11 50.00 64026 0 444 2217 00 : 25 : 36 75.00 64027 0 459 2217 00 : 25 : 24 100.00 64027 0 459 2217 00 : 25 : 24
Jumlah image = 4
Jumlah image = 3
σ ΣIVL ΣCVSVL ΣLDI ΣSVL Waktu
25.00 61793 0 447 2228 00 : 21 : 35 50.00 61818 0 473 2216 00 : 21 : 34 75.00 61819 0 490 2216 00 : 21 : 40 100.00 61819 0 490 2216 00 : 21 : 33
σ Σ IVL Σ CVSVL Σ LDI Σ SVL Waktu 25.00 63148 0 203 2266 00 : 20 : 27 50.00 63166 0 150 2256 00 : 18 : 33 75.00 63167 0 181 2256 00 : 18 : 36 100.00 63167 0 181 2256 00 : 18 : 32
Jumlah image = 2
σ ΣIVL ΣCVSVL ΣLDI ΣSVL Waktu
25.00 58319 0 66 2160 00 : 13 : 53 50.00 58319 0 66 2160 00 : 13 : 44 75.00 58319 0 66 2160 00 : 13 : 45 100.00 58319 0 66 2160 00 : 13 : 42
Metode generalized voxel coloring – layered depth
image dapat digunakan untuk melakukan
rekonstruksi tiga dimensi terhadap beberapa image Rekonstruksi tiga dimensi dengan menggunakan
GVC – LDI hanya bisa dilakukan dengan jumlah image dua dimensi lebih dari tiga
Semakin besar nilai threshold maka waktu yang
dibutuhkan untuk melakukan rekonstruksi cenderung lebih cepat
Semakin besar nilai threshold semakin kecil jumlah SVL yang dihasilkan
Hasil rekonstruksi tidak mengalami perubahan pada saat nilai threshold lebih besar atau sama dengan 50.00
Penambahan fungsi opmtimasi untuk
pemilihan threshold yang tepat terhadap setiap image yang akan direkonstruksi
Penggunaan library openGL lebih tepat
sehingga menghasilkan obyek yang lebih halus dan detail
Nilai minimum X Nilai maximum X Nilai minimum Y
Nilai maximum Y
Nilai minimum Z Nilai maximum Z
Merupakan library yang terdiri dari fungsi –
fungsi cmputer vision dan API ( Application Programming Interface ) untuk image
procesing high level maupun low level
Sebagai optimasi aplikasi realtime
mampu menciptakan aplikasi yang handal,
kuat di bidang digital vision dan
mempunyai kemampuan yang mirip dengan cara pengolahan visual pada manusia
CvMatMulAdd mengimplementasikan
operasi dot product pada matriks
cvMatMulAdd(intrinsic_matrix, ekstrinsic, 0, intrinsicKaliekstrinsic_matrix);
cvSolve menyelesaikan persamaan
matriks (invers matriks) B = A-1 ∙ C
cvSolve(intrinsicKaliekstrinsic_matrix, surface_matrix, surfaceVoxel_matrix,
cvFindChessBoardCorners
menemukan jumlah chessboard pada sebuah gambar
cvFindCornerSubPix mencari
keakuratan lokasi titik subpixel (radial saddle points) yang berdasarkan pada vektor titik tersebut
cvCalibrateCamera2 mencari
parameter intrinsik kamera
cvFindExtrinsicCameraParams2
mencari parameter ekstrinsik kamera
cvRodrigues2 mengubah matriks