360 panorama workflow - LONG!
Mar 25, 2002 06:29 PST
Okay, here's my worflow for producing the 360 panoramas as promised.
WARNING: there are *much* easier ways to create 360 pans but this is the
only method I have found that will reliably allow you to stitch handheld
pans which contain live people moving around at arbitrarily high file
sizes with complete flexibility in stitching by hand. You may want to
experiment with some of the commercial demos on the web before plumping
for such a hands-on method, but like I say there's nothing else out there
that I've found that lets me do what I want.
1) Find your spot. This is not as easy as it sounds and you have to
remember that to fully execute the panorama you are committing to 2-3
hours work. You have to look for so-called 'places of power' where there
is something interesting all around you. What the ancient greeks called
the omphalos I think (Rob will correct me I'm sure)
2) Shoot the pictures. You can use any camera. The length (more precisely
FOV) of the lens you are using will determine the aspect ration of the
final panorama. A 28mm lens will produce an extremely long, thin image. A
fisheye will produce a 2:1 image.
Ideally you will use a VR rig like the Kaidan Kiwi head which allows you
to rotate the camera over the lens nodal point. This removes all parallax
problems, which otherwise you will end up fighting. You can make them
yourself in a couple of hours if you don't want to shell out for the
kiwi. If you don't use a VR rig then you need to try to hold the camera
at exactly the same point in space and rotate it around the middle of the
lens barrel, which will be close to the nodal point. A monopod can help.
Hold the camera in portrait orientation and take 360 degrees worth of
shots, with 25-50 percent overlap. The more overlap, the more chances you
are giving yourself to get it right, but the longer it will take to stitch.
*Important* keep the exposure constant between shots. IE turn off
autoexposure. You need to find an exposure which will work for all points
of the compass. For this reason in a film camera, use color neg, and if a
digicam, meter for the brightest part of the scene and hope for the best.
(Turn off any contrast/saturation/sharpening on your digicam to give
yourself the best chance).
Keep the horizon in the same place. It is usual to shoot panos with the
horizon in the centre of the frame. You don't have to do this in my
workflow but if your tilt is too extreme you will have problems later.
As long as you keep the camera at the same point in space and rotating
around the nodal point, you don't have to be anal about keeping the
camera level or shooting every thirty degrees exactly or anything.
I use lenses 15mm-24mm and make anything from 8-16 exposures.
If you are shooting people, it gets more complicated. You may need to
shoot each frame several times, trying to catch something interesting. It
will also help you to shoot the frame clear of people (this will help you
out in the stitching process).
For example, the shots I did on saturday, I shot around 30 frames per
panorama, of which 16-17 will be incorporated into the final image. Some
people shoot a lot more and may spend 30-60 minutes in the same spot. The
problem with this is that the lighting can change enough to make all the
images very hard to match.
Mark the beginning and end of your pan in some way. I shoot a picture of
my hand at the end of a pan. This helps you figure out where the images
for a pan start and end.
3) Transfer the images to computer. If you are scanning film you again
need to keep the exposures constant (you may need to use Vuescan to
achieve this as many scanner drivers don't give you this option). Rotate
the images to be correctly vertical before going to the next stage.
4) Use either PTgui (win) or PTmac (mac) to align the images.
Why not use one of the commercial stitching programs like Panoworx or
Stitcher? Well, they can be helpful for doing your first pans but you
will find they are almost useless for pans with people since they end up
stitching right through people who move between frames. Other people have
found ways to work round this but my workflow is bulletproof and can be
use to produce arbitrarily large pans from almost any set of input images.
Both these programs have good and helpful documentation but in short it
goes like this
a) load in all the images
b) set the parameters for the panorama. In my case I make cylindrical
panoramas about 10-12000 pixels wide and 4-5000 pixels high. I use the
multiple tiff output option because this gives the most flexibility in
stitching the final panorama.
c) correct the images if necessary. For example, if your lens exhibits
light fall off towards the edges, as many superwides do, you will get
banding in the final image. You can use the 'correct radial luminance'
option to reduce this. There are a whole bunch of other corrections you
can carry out which are too complicated to go into here but documented
(sort of) in the panotools package.
d) set 'control points'. This essentially means taking pairs of images
and marking three or more points for each pair that must coincide. These
are use to align the images in terms of roll, pitch and yaw, and
determine lens length, distortion values. This can be a long job with
multiple overlapping images.
e) optimize. This is an art in itself, but basically this is where the
images get aligned and all the lens parameters are worked out. You can
check your results in the preview window and correct things like wobbly
NB you should be aiming for an average control point distance of 1-3
pixels. This is a measure of how well the program has been able to align
your images. If you have a lot of parallax you may get a big number,
which means that some of your images won't match up.
f) preview. This runs the stitcher to produce a lo-rez jpeg preview. I
often end up iterating steps e and f a few times.
g) produce the final images. This takes a LOOOONGGGG time, anything from
1-3 hours on my machine. Fortunately you can do it in the background or
offload it to another machine if you have one.
5) build the pan in photoshop. You can do this manually or like me write
an action which opens each separate remapped image and copies it into a
separate layer in photoshop, removing any masks etc. You will end up with
an *enormous* file with a dozen or so layers, something like 200-300 Mb
in size. (You need a lot of RAM for this). At this stage you should be
able to see whether it is all going to come together or not.
6) stitch the images. I do this by adding a layer mask to each layer and
then painting on it to hide/reveal what I want from that image. I use
gradients to fade in and out of each image, then do the detailed work
with the airbrush. If you have lighting differences between frames you
can also add curves adjustment layers to individual images.
7) SAVE YOUR WORK NOW. The hard part is over.
8) Flatten the image and save in a separate file. (You will probably
discover some stitching errors, which is why you want to save the layered
file so you can go back and correct them).
9) crop, color correct etc.
10) You will probably find that you want to reframe your image slightly
as it is hard to judge this exactly in the stitching program. This is
easy to do if you have done everything right since the left and right
edges will meet exactly. You just copy a bit of the left hand side and
paste it in a new layer on the rhs. Then reselect, invert the selection,
and copy the complementary bit of the pan into a new layer which you move
to the place on the lhs. This sounds complicated until you do it, at
which point you realise it's trivial.
There is rather a lot more to it than this but at some point you just
have to get your hands dirty. Fortunately if you have a reasonably wide
lens you can just go out and try it now with minimal outlay since the
software is all either free or relatively cheap shareware.