3D from images, an overview
9th October 2013
Perspective and Stereo
We do perceive the environment three-
thanks to our stereo vision AND the
projection that occurs in our eyes..
Using the geometric laws of this two
we can build the 3D geometry of the scene
All starts here... a camera is defined by
- Focal Length
Given a point in 3D space, it is know the
projected point on
Given a point in the photo, it is possible
to trace back the
ray which originated the pixel
Two possible directions
- Assisted Modeling
- Automatic Stereo Matching
The underlying principles are the same... but
different kind of tools...
I'll cover the first, Matteo will take over later on
As usual, this distinction is becoming blurry...
...things does converge, after all
A very strange modeling tool.
Follows more the way a technical drawing is done on paper
(reporting/referencing) than the usual 3D modeling metaphore.
Easier for people with a technical drawing/sketching background.
Easier for people with no experience in 3D modeling.
Focused towards modeling of buildings
and mechanical entities...
Acquired by Google some years ago...
distributed now as a semi-free tool
Sketchup – the Luni Temple
An ideal tool for very regular buildings... like this
(regular does not equal new)
Sketchup Photo Match
Assited modeling from a SINGLE photo
Calibration: axis and vanishing points markup
Modeling: 3D drawing by axis/reference reporting
Partial calibration, with only a single photo, only the axis
can be recovered.
SketchUp can be used to model by reporting/referencing
Example 1 – Example 2
Perspective & stereo
Common reference points are marked on
From these correspondences it is
possible to calculate camera
position/parameters and 3D
location of the marked
Photogrammetry commercial tool
Points are marked on input images, camera are fully calibrated
points, camera are calibrated and modeling can be done using
recovered 3D points
Acquired by Autodesk... now it costs
three times the old price (with the same features)
Photogrammetry commercial tool
The tool for the professionals... Two steps: camera calibration
and references) and camera pose estimation. Modeling and
measuring with lots of different tools
Very, very, very complex to use...
1 - Automatic matching of images
The entire process is based on finding matches between
Record your pictures not too far apart, so the computer
can match them easily!
2 - Camera Calibration
No prior knowledge about camera calibration is
available, so all information must be recovered from
It is therefore important that enough information is
present in the images!
Motion of the camera
General structure of the scene
Enough overlap (only points that are visible in at least 3
images are useful)
What you want reconstruct and how you get the photos
have great influence on the final reconstruction (!!)
Calibrated Cameras: what you can do with them
Having a set of (even etherogeneous) images, you can
navigate the photo collection in a “spatially coherent” way.
It evolved into PhotoSynth (see later).
3 - Dense Matching
After recovery of the
dense depth maps
These contain the
depth of every pixel
and a quality
confident we are of
each particular pixel)
The Photosynth toolkit is the result of the
work of people from a Blog (Visual
The code of Bundler (SIFT+Camera
Calibration) has been made available recently
In alternative, it’s possible to use the
Moreover, further code for the surface
reconstruction (CMVS -> PMVS)
The Toolkit is available and works locally
Also the Photosynth toolkit can be integrated with
MeshLab, so that the final result can be improved!
It’s the same toolkit as PhotosynthToolkit,
but it’s completely local
Good: completely local, no upload, control on
Bad: completely local, sometimes it crashes…
Python Photogrammetry Toolbox
Developed by Arc-Team, open source and free, for Debian and
Win (32 and 64bit)
Good: completely local, interface, control on parameters, video
Bad: completely local, a bit tricky to install…
Very well engineered tool...
Works on a remote server, like Arc3D
Produces a complete, textured model
It is free (for now), and works very very well.
It is fast, works on difficult datasets and the
results looks good. However, not really high
resolution, and there is less control over the
process. It is a good tool to start with...
Commercial, low cost tool: 59 € for educational license,
179€ standard license. (win, mac & linux)
Fast, work on local machine, directly produce textured
model. Very robust and reliable... We have used it with
good results on many diverse datasets.
They also have a free tool to process images taken with
stereo (two lenses) cameras....
PhotoModeler - dense
Photogrammetry commercial tool, 2nd version
The tool is the same as before... after doing the camera
of using only user-picked points, the system does a dense-
The result is quite similar to a range map... you need to do
processing in order to obtain a 3D model...
Model creation with MeshLab
After the 3D model is exported in MeshLab, there’s
a procedure to enhance it a bit and have a final
Poisson Model cleaning
Vertex Color Transfer
The methods for the acquisition of 3D content from
images have become an interesting alternative to
Probably they won’t take the place of 3D Scanning,
but they could be a valid solution in a number of
practical and professional applications.
Nowadays, they are already used in archeologists
everyday work, and they are undergoing a sort of
Knowing these yechnologies is key to be able to deal
with 3D and CH.
Wanna know more?
Check the webpage of my University course:
(page in italian, slides mostly in English)
You’ll find slides, datasets, links etc etc
Do you want to learn how to use MeshLab?
Start from Mister P. Video tutorials
Several playlists available