About the Voxel Coloring Framework
During my Bachelor project Computer Science I developed a practical
setup for Voxel Coloring. I had to implement Voxel Coloring (again) as there
were no open-source implementations available. My implementation of Voxel Coloring
is released under the Academic Free License, and can be used freely as long
as you make a reference to my Bachelor
thesis and this website (that is basically what the license says).
What is Voxel Coloring?
Using Voxel Coloring (or space carving) is an algorithm which
will turn a number of photos of an object with known camera positions into a
3D voxel reconstruction.
Tweety is copyrighted and trademarked by Warner
A step-by-step guide is part of an assignment
developed for a Machine vision course. This assignment describes all steps needed
to perform a 3D reconstruction using Matlab and the Voxel Coloring Framework.
Together with the assignment comes special version of the framework and some
extra utility scripts for camera calibration.
Current version is 1.0 (18-11-2004)
This site is not finished yet, but the VCF package is. This package
is very usable in a Computer Vision course as part of a Matlab practical assignment
(students can experiment with their own consistency check). If you do not want
to reimplement parts yourself, then you can download the normal
distribution as this contains all files also found in the assignment.
What is available right now (as version 1.0):
- OpenGL Voxel Viewer to view reconstructions
- Voxel Coloring C++ implementation to be used in conjunction with
- Matlab consistency check: the C++ implementation can use a Matlab
consistency check with user code (suffering a severe performance penalty though).
- The rose dataset from my project with camera calibration included.
It is ready to use with the above implementation.
- Matlab scripts to perform a reconstruction
- Extra calibration scripts to be used in conjunction with Bouguets
- DisplayMode utility: change screen resolution from the command-line
- PLY viewer: (beta) this can be used to view reconstructions on other
platforms than Windows. There are Matlab scripts to convert between the VCF
native format and .PLY.
You can get more information on the download
What exists, but will/might become available later:
- Image Acquisition function. Right now, our Matlab code for this is not included
as it is part of the assignment (it defeats the point of the assignment if
we include it).
- Reprojecting reconstructions to input image viewpoints, so you can compare
your reconstructions to the input (needs to be easier to use before it can
be released and uses too much memory)
- Phidget servo engine control from
Matlab (will be contributed to the Phidget website as image acquisition will
not be part of VCF, and needs to be tested with latest drivers instead of
- Corner detection filter from my AI project
What does not exist, but would be nice:
Can't open Count database for writing.
- Hierarchical voxel coloring
- Upgrade corner detection filter so it is usable for automatic extrinsic
- Stand-alone reconstruction, instead of depending on Matlab? This is very
possible as all major code is in C++ and C++ code supports .RAW image loading.
Primary 'problem' would be to load all input with error detection on the same
level as the Matlab scripts do.