3D PHOTOGRAPHY
The Head
by
Dragos A. Harabor
Main Steps:
- Calibration
- Coordinates Recovery
- Triangulation
This Year's Approach:
- Alignment
- Volume Carving and Marching Cubes
Last Year's Approach:
- Mesh Creation
- Unshading Mesh (?)
- Mesh Zippering
CALIBRATION:
- used checker board pattern on a flat plane
- things to try in the future:
- use a pattern on two planes that form a well known
angle (90 deg. for example)
- why? might help get better results, make sure that
we do not run into problems like the plane is not a plane, the angles are
not preserved, etc.
- problems:
- quality of the equipment:
- the projected pattern/stripes flicker
- higher resolution camera means more details
- precision in determining the corners of the squares
- least squares might end up in local minimum
- overall rating: GOOD
COORDINATES RECOVERY:
- in the camera frame of refrence:
- can look only at the boundaries from the finest stripes
image or use all the boundaries => more points
- tried both; conclusion:
- get more points, which is good
- get more noise, which is BAD; solution:
- have an editor to eliminate the noise
- intermediate solution (i.e., get points only from
let's say half of the images)? maybe.
- in the projector frame of reference:
- use GREY CODE
- add 0.5 => big source of confusion; do NOT do it
in the future, or at least be consistent; yes, I understand why 0.5 is
added!
- a lot of noise:
- why? mislabeled points.
- solution: point editor.
- estimated number of points (for my statue): 33,000
pts. per view; that's a lot in terms of processing time!
- overall rating: VERY GOOD, provided good data
to start with.
- images
TRIANGULATION:
- just pure math; make sure you get the right formulas
- do NOT use for loops in Matlab and it will
be fast even at 30,000 pts.
- noise again; solution:
- you are actually right: noise editor.
- images
ALIGNMENT:
- tricky!
- 3dpalign still needs work, especially when it comes
to sliding views
- do not use too many views, but only the necessary
ones => it will pay off at the next step
- be prepared to spend a lot of time => go for seconds
(second set of data I mean...)
- overall rating: OK
- images
VOLUME CARVING and MARCHING CUBES:
- the most interesting part of the project; why?
- find about all the previous failures and mistakes:
- right resolution?
- probably 1024x1024x1024 => get a lot more details
- 256x256x256 requires 32Mb disk space and some procesing
time
- going up to 1024x1024x1024 multiplies the above with
a factor of 64
- play with the parameters: smoothing factor, isosurface
value, gaussian distribution
- software rating: EXCELLENT
- images; do not look very
well because of the tiny errors in calibration and alignment.
MESH:
- fill in the holes, by looking at the neighbors: 4
valid points seems to be the right number (for me!)
- smoothing is very important: for all the points average
the value of the point and its valid neighbors
- generate triangles using the shortest diagonal
- apply texture
- get a big VRML file
- uses DECAL model which is not very realistic
- images
UNSHADING THE MESH:
- advantages:
- decrease the size of the file by 20%
- use MODULATE model, which is more realistic
- use a new orthogonal texture map that needs to be
generated in advance, accounting for Lambert's cosine law
- it really works!
- images
GENERAL COMMENTS ABOUT THE METHOD:
- it seems to work if the data to start with is good
enough
- what's "good enough"?
- accurate data => high quality projector and camera
- careful points recovery
- very good alignment
- marching cubes at high resolution (1024)
- processing time: 1 day if you are lucky!
- disk space: a lot is still not enough
- IDEAS:
- try it with a color camera
- maybe we should use a different calibration method
(see above)
- alignment:
- make it more sensitive to sliding
- user interface:
- should be able to align two or more views and then
lock them
- parameter for the number of times to run the global
alignment step
- should be able to translate a view, not only rotate
it
ABOUT THE CLASS:
- enjoyable class because:
- EXCELLENT class
- extra topics, beyond the necessary information for
the lab work
