Yes, the Makefile stitching system used by Hugin is very suited to
distribution over multiple machines.
--
Bruno
There is some documentation here:
http://wiki.panotools.org/Panorama_scripting_in_a_nutshell#Makefile_stitching_system
Basically Hugin constructs a list of all the temporary files and the
rules to assemble them, then writes it all to a Makefile. The
stitching process is then managed by gnu make, you can
close Hugin, or start a new project during stitching, or run
stitching entirely on the command-line later or on another machine.
> Would the other machines need access to all the images in the
> pano? Could only the overlapping parts of the images be sent to
> the other server for stitching?
The simplest way to do it is to use something like 'distmake', this
would require that all the photos were on a shared filesystem
--
Bruno
At my current work a tool is being developed for this kind of
distributed computing only it's intended for matlab based computations.
Part of the system is also built in C, perhaps it can be adapted to
suite hugin?
Have a look at http://fieldtrip.fcdonders.nl (look in the FAQ section on
peer computing).
Cheers
Simon
> For a real increase in speed with enblend it'd need to be designed
> so that the problem it's solving can be broken into pieces that
> don't require all the information of the entire image. That way
> when those pieces are worked on by remote machines it wouldn't
> require all the remote machines to have a large amount of main
> memory.
Thanks for this, yes the bottleneck to distributed stitching is that
enblend has to assemble the final image and this requires a lot of
memory.
One experiment we tried a long time ago was to split the enblend job
up, i.e. instead of blending images 0,1,2,3 in one go, you can blend
0,1 and 2,3 as separate processes and then blend these together as a
third process.
The disadvantage of this is there is more IO and processing, and the
final blend still requires lots of memory. The advantage is that
due to the way Hugin uses 'cropped TIFF' intermediate files, the
other blends use less memory and some of the processing can be
distributed.
--
Bruno
In any case, if it is required to send all images to all remote machines,
this may (of itself) cause an I/O bottle neck.
BugBear
In the case of a Giga-Pixel matrix/grid style pano, it's quite simple.
But some fish-eye based panos are much less simple.
Even a spherical made from small shots (e.g. 35mm FOV)
is quite complex, since the shots don't for a uniform grid.
BugBear
This isn't necessarily the case with 'make' (or distmake), the
necessary files only need to be available via NFS or whatever
filesystem you are using, they won't be moved over the network
unless they are actually used.
--
Bruno
Am 22.01.2011 12:20, schrieb michael.grant:
> Unless you do something like this, I can't see how hugin is going to
> be able to create a pano any greater than the available swap space.
> How difficult would it be to rework emblend to do something like the
> above?
Enblend can use temporary files (if compiled without OpenMP), and then
can process very large images.
A good option for clustering would be to split the panorama in many
smaller parts (tiles, using the crop feature of hugin), and distribute
these. There might be some artefacts near the boundaries, so rendering
overlapping tiles is probably better. Then these tiles could be cropped
and easily assembled together into a big output file (if one output file
is required at all...).
ciao
Pablo
gigatile is an experimental tool for doing this, it splits the Hugin
.pto project into 4096x4096 regions for separate rendering and
manages the remapping and blending with a Makefile. This only uses
a small amount of memory whatever the panorama size and should work
well with distributed processing:
http://search.cpan.org/dist/Panotools-Script/bin/gigatile
> There might be some artefacts near the boundaries, so rendering
> overlapping tiles is probably better.
gigatile doesn't do this overlapping, I didn't have a need for it,
so you do get these artefacts at the tile boundaries which may or
may not be a problem depending on your subject.
--
Bruno
I'm not entirely sure that the imagecache code is bugfree. There were
a lot of bugs reported with crashing and/or image corruption when the
image cache code was enabled. IIRC I only got my last large project
stitched by having a shitload of RAM and disabling the imagecache....
Roger.
--
** R.E....@BitWizard.nl ** http://www.BitWizard.nl/ ** +31-15-2600998 **
** Delftechpark 26 2628 XH Delft, The Netherlands. KVK: 27239233 **
*-- BitWizard writes Linux device drivers for any device you may have! --*
Q: It doesn't work. A: Look buddy, doesn't work is an ambiguous statement.
Does it sit on the couch all day? Is it unemployed? Please be specific!
Define 'it' and what it isn't doing. --------- Adapted from lxrbot FAQ
enblend has this, but only "internally", via the -a flag.
BugBear