[Beowulf] cluster for doing real time video panoramas?

Bogdan Costescu Bogdan.Costescu at iwr.uni-heidelberg.de
Thu Dec 22 06:01:56 PST 2005


On Wed, 21 Dec 2005, Jim Lux wrote:

> http://industrialcomponent.com/unibrain/ubwebcam.html

It's not clear from the description what you need to do to get the 
video stream. It's connected through FireWire, but it doesn't say 
anything about DV - and given the resolution which is different from 
standard NTSC or PAL...

> For instance, if the cameras pointed along the x axis have the long 
> direction of the frame in the y direction and the short in the z, 
> and the cameras on the y axis have the long direction in z, and the 
> short in x, and the cameras on z have the long direction in x and 
> short in y.  IF the short direction covers 90 degrees, then you'll 
> have overlap (I think..)

Your setup would have to match the short side from one frame with the 
long side from another frame which I think is not so easy. IMHO it 
would be easier to have something like 8 cameras, 4 disposed in a 
horizontal plane at 90 degrees from each other such that their short 
sides match, then have 2 cameras pointing upwards each directed 60 
degrees from the horizontal plane and from the other camera; then 
other 2 cameras pointing downwards like in a mirror. The long sides 
from all the 4 last cameras would correspond to the long sides of 2 
opposite cameras from the horizontal plane.

> http://www.luxfamily.com/pano1.htm

404, but don't bother, I got the idea.

> e.g., the cameras on the Mars rovers)

I thought that you want to have such a nice machine for yourself :-)

> It just occurred to me that another way might be to interleave 
> frames among CPUs (there'd be some lag, and there's the sync 
> problem).. Say it takes 0.1 seconds to process all the cameras into 
> a single image.  Then, with three processors, I could keep up at 30 
> frames/second.

Indeed, I mentioned this as a possibility in the end of my message. 
However, don't forget that a cluster is not only about CPUs but also 
about communication. A typical NTSC frame (720x480) with 24bits per 
pixel takes about 1Mb (you don't want to loose quality with lossy 
compression and CPU time with any compression in general). With 
100Mbit/s networking you can transfer only about 10 frames per second 
- and this while adding anyway delay to the video stream (0.1s which 
translates into 3 NTSC frames). So GigE or better should be chosen... 
or some delay added to the audio stream.

Furthermore, if all cameras connect to only one computer (head 
node, to simplify cabling) and the end result is assembled also by a 
single computer, these 2 need a better network connection than the 
rest to be able to cope with the increased data flow.

> I envision a scheme where you generate a series of full spherical 
> frames that you could record (e.g. onto a hard disk), and then, 
> later you could play it back looking in any direction.  And, in real 
> time (while driving the robot), you could look at a subset.

When looking at a subset, you would actually not care about 
reconstructing the whole spherical image, so you could handle only the 
1-3 cameras that point approximately in the direction that you are 
interested in, which would be decided based on the mapping of camera 
space to real space. This might mean a serious decrease in 
computational and communication needs, especially as you might not 
need to make the full transformations even for these 1-3 cameras (f.e. 
if the "window" corresponds exactly to one camera, you don't need any 
transformation, except maybe for color correction) and then maybe even 
one computer is able to do the whole work.

-- 
Bogdan Costescu

IWR - Interdisziplinaeres Zentrum fuer Wissenschaftliches Rechnen
Universitaet Heidelberg, INF 368, D-69120 Heidelberg, GERMANY
Telephone: +49 6221 54 8869, Telefax: +49 6221 54 8868
E-mail: Bogdan.Costescu at IWR.Uni-Heidelberg.De



More information about the Beowulf mailing list