This work involves generating 3D models from a sequence of 8 images in a highly automated, uncalibrated and unskilled manner. The aim being that anyone can generate 3D models, without the need for expensive equipment or time consuming, costly labour.
An object is placed on a turntable ( a bit of stiff card with a drawing pin in the middle! ) and images are captured at approximately 45 degree angles with a standard video camera :
These images are then segmented to give the silhouettes. With the help of a coloured background simple hue based k-means can be used:
The segmented images are then used to have a first try at calibrating the camera by doing a multi-dimensional optimisation based on fitting the silhouette of a virtual sphere to the segmented image sequence. Because the silhouette of a virtual sphere is being fitted to the segmented images an accurate calibration cannot be imediately obtained. However, once a ball park calibration is obtained a volumetric intersection, based on the image silhouettes, can be carried out to give a 3D representation of the original object. This model can then be used, instead of the sphere, to improve the calibration of the camera. The recalibration/model generation cycle is repeated and after around 5 iterations the process converges. The result obtained when using the duck images above :
Above is an 18 frame animation of duck created from a NURBS tesselated to a 40x40 mesh, click here to see a textured version of duck.
Above are two heads generated using this technique, the original image set being created by spinning the subject on a swivel chair, click here to see a textured version of the head on the left. Click here to view a snap shot of a virtual world created in java 3D. These models have also been imported into Alias Wavefront via the .obj format, click here to see several models rendered in alias.