Page 1 of 1

Integrating multiple camera streams

PostPosted: Mon May 05, 2014 8:59 pm
by seandoyle
Hi -

I'm very new to Parallela and I have a general idea for a project but I wanted to ask if there was a simpler mechanism than what I've been planning.

I need to be able to integrate multiple video streams - either 4 or 6 of them into a larger video stream. The cameras field of view will overlap (slightly) and the integrated view will be a single merged view.

Within the merged view I may do some image processing (limited feature recognition, some geometry corrections) or compression (probably wavelet).

The simplest way I can see to do this seems a bit kludgy to me: I could have multiple Raspberry Pi computers (and cameras) that pushed the images over ethernet to the Parallela. The Parallela could stitch these images together and do the other image manipulation in a pipeline. The frame rate and image size could be varied depending on what the throughput is. Perhaps some code could run on the Pi's GPUs and some on the Parallela - I'm still trying to think this through.

I think something like this might work - but from a hardware point of view it's a lot of cables and all of the devices together would draw a fair amount of power. Is there something more elegant than this for getting multiple I/O streams than separate CPUs and ethernet? I don't know if there are daughterboard solutions for this but I'd be interested in learning more.

Thanks

Sean

Re: Integrating multiple camera streams

PostPosted: Mon May 05, 2014 9:12 pm
by FHuettig
Hi Sean, sounds like a very cool project. I don't know if you've selected your cameras yet or if you have special requirements, but can you consider using GigE cameras? That way they could all be connected by an ethernet switch to the Parallella and images could be requested as needed. It would be a very clean system. -Fred

Re: Integrating multiple camera streams

PostPosted: Tue May 06, 2014 1:47 am
by seandoyle
Fred -

I'm not sure - GigE cameras might be overkill for what I need but I should find out more. Do you have a particular vendor of them that you'd recommend?

I don't know that I need frame rates this high - 30fps might be adequate. I need multiple cameras because they are fairly close to a fluorescent plate and the form factor may need to be fairly flat. The GigE cameras look like they run a few hundred each and the Raspberry Pi ones are ~$30. One advantage of having a Pi in the middle is that it does have a GPU for some initial processing. But I hadn't known of GigE cameras before you mentioned them so it's something else that I'll need to read up on.

Thanks

Sean

Re: Integrating multiple camera streams

PostPosted: Tue May 06, 2014 3:51 am
by FHuettig
The last one I bought I picked up very cheaply on eBay, but then you get what you get and I don't even see any cheap ones listed right now. I can see how it would be nice to have some extra per-camera processing available for only $35 each, but if you don't need the extra computes then a pure-GigE system might save you some hassles and interfacing. Good luck and I hope you'll let us know how it goes!

Re: Integrating multiple camera streams

PostPosted: Tue May 13, 2014 1:38 pm
by Gravis
seandoyle wrote:I need to be able to integrate multiple video streams - either 4 or 6 of them into a larger video stream. The cameras field of view will overlap (slightly) and the integrated view will be a single merged view.

I'm a bit late to the party but as someone who has worked with this stuff I can tell you one thing, do not use usb cameras. the problem with usb cameras that usb is software driven. The cpu will need to continually need to request the data and cannot do that in parallel. as a result because they dont have a FIFO buffer, there will be a noticeable delay between camera grabs if there motion because you aren't actually grabbing images from each at the same time. also, you cant switch between cameras while capturing because the cameras do a usb mass transfer where they can only send all the data at once. the fast network cameras sound like your best option because they will transfer data in parallel and can be easily be connected using a network switch.

do note that there is hardware based image correction/distortion (among other options) on most optical (capture) ICs which is a good idea to use because it's very fast. with that, you should be able to calibrate all the cameras to return images you want to use.

Re: Integrating multiple camera streams

PostPosted: Tue May 13, 2014 1:55 pm
by shodruk
This system may be suitable for the purpose.

http://www.parallella.org/2013/09/10/ex ... th-pixels/

s/usb webcams/rpi camera modules/

Re: Integrating multiple camera streams

PostPosted: Wed May 14, 2014 2:42 am
by Gravis
shodruk wrote:This system may be suitable for the purpose.

http://www.parallella.org/2013/09/10/ex ... th-pixels/

s/usb webcams/rpi camera modules/

if you do that, be sure to use an RTOS like ChibiOS/RT to get proper timing.