Most of the computer
vision literature tends to concentrate on the use of linear pinhole
projection models and simple lens distortion terms. This is
advantageous in terms of simplicity and computational speed, but by
using a more general projection model expressed as an image
coordinate to ray function, it becomes surprisingly easy to make use
of more exotic lens and camera types such as an ultra wide angle
fisheye.
Why would you want to
do this? Using photogrammetry to scan enclosed spaces can be rather
tedious due the need to maintain good overlap between images while
achieving sufficient parallax and covering a full 360 degree field of
view. The wider the lens, the easier this gets, and a fisheye lens
is as wide as you can get with a normal camera.
My choice of lens in
this case is the Samyang 7.5mm fisheye for micro four thirds cameras.
It covers the full sensor area (rather than being a
circle-in-a-square type which wastes available resolution), is very
cheap, and is very sharp in all but the extreme corners of the
frame.
To express the
projection of the Samyang fisheye, I used an equisolid angle model given by:
Where r, f and theta are the radius from the centre of the sensor, focal length, and angle between a ray and the optical axis respectively.
It seemed unlikely that the lens would fit this perfectly so I added polynomial radial distortion and decentering terms to that.
Armed with my fisheye
lens on a Panasonic G3 and a suitable mathematical model for the
lens, I went down to the beach to capture some images for
calibration.
Perhaps not the most
beautiful photos ever taken of a New Zealand beach, but they fill the
frame with some nice high texture sand for accurate feature matching.
Performing a bundle
adjust on the calibration sequence yielded extremely low values for
the decentering and extra distortion terms. The Samyang fisheye
turns out to be very close to an ideal equisolid angle projection,
closer than most standard wide angle lenses are to being rectilinear.
The resulting
reconstruction has good detail, but includes rather a lot of geometry
from the surroundings in this non-enclosed setting.
Hi Roddy, can you tell me what the tool chain was do to all this? I am a complete novice but willing to learn :)
ReplyDeleteCheers from Oz.
Hi Paul, the photogrammetry reconstruction part of this uses a tool chain that I wrote a few years ago and isn't publicly available. However, you can do the same thing using Agisoft Photoscan or other similar photogrammetry software. The last time I checked, that didn't support fisheye lenses, so you would need to use a wide angle rectilinear lens instead.
ReplyDelete