Title: Shape From Silhouette
1Shape From Silhouette
- Chris Boehnen
- Fall 2003
- 3D Photography
2Outline
- How/Why does it Work?
- Limitations
- Advantages
- My Implementation
- Results
- Conclusions
3How SFS Works
- SFS Extracts the Silhouette from an object and
using the known camera orientation and multiple
images. Using this it is able to carve away
sections of space which the object could not
exist in. - The remaining sections of space are a visual hull
of what the object is.
4How SFS Works
5How SFS Works
6Limitations
- This means SFS is not able to capture concavities
in a surface with respect to the current view
Top View of Object
Camera View
Top View of Object
Camera View
Area is red is mis-calculated due to Concavity
from camera view
7Limitations
- Silhouette extractions is commonly done using a
background of fixed color which means that the
object being scanned can not contain that color.
If the background color is black, and the eyes
and mouth of the smiley face is black, the
algorithm assumes the eyes are holes leading
through to the background
8Advantages
- Low Cost hardware, only a camera and a turn table
- While typically fairly low resolution, models can
be texture mapped nicely to help compensate - Captures watertight models of the entire object
9My Implementation
- In order to simplify the calibration process, the
camera and turn table must be level. This
ensures that the axis of rotation represents the
same line in the 2D Image for every image taken - Intrinsic properties of the camera are calibrated
out using Bouguets Matlab code. - SFS is then calibrated automatically based on a
few input factors determined solely from the
images themselves
10Calibrating the Axis of Rotation
- Since we wanted to be able to calibrate based
solely on the input images, finding the axis of
rotation is difficult. However, with our
constraints we only need to know where it lies in
the image plane because it will then lie in the
same location for everything.
11My Implementation
- Images are captured using a turntable and a
Cannon Powershot G2 Digital Camera. Acquisition
of the sequences of images is automatic and uses
a piece of software written specifically for this
purpose.
12Calibration Procedure, Matlab Code
- 1. Locate the corners in the calibration
images. - 2. Execute the calibration program to obtain
intrinsic parameters. - Code Calculates Focal Length in Pixels, and the
Principal Point which are used later - 3. Apply intrinsic parameters to each input
images and resave them once they have been
rectified.
13Calibration Procedure, Matlab Code
- Extreme corners of the checkerboard pattern are
located and clicked on. - Program automatically detects and extracts each
corner of the checker board pattern.
14Calibration Procedure Matlab, Code
- Program computes intrinsic/extrinsic parameters
of the camera. - Parameters are then used to remove distortion of
each input image.
15My Implementation
- The images are then separated into background and
object and re-saved so they can be viewed. The
images could be manually modified at this stage
if a color of the object matched the background
color to eliminate the eyes on the smiley face
etc. Small holes less than 10 pixels are filled
automatically
16Top View of Projection Process
Image Plane
Principal Point
Focal Length
Volume to Be Carved Origin
Focal Point (Cos F, Sin F)
Axis of Rotation Line
17Top View of Projection Process
Each valid voxel is projected onto the image
plane. Then, it is determined if its location
on the image plane is an object or background
location
18Implementation
- This method is repeated for each image. Only
valid voxels are projected because invalid ones
can already be thrown away. By not worrying
about voxels already marked invalid the process
runs significantly faster.
19Converting Volumetric data to Polygonal data
- What we now have is volumetric data, but are
interested in the surface data. So, what we do
is only draw polygons on points on the outside
surface. - So you loop over each valid voxel. And if the
voxel to the left of it is invalid, you draw the
left hand side of it, and repeat for each side
20Demo and Results Time