Implications of using many USB web cameras

5

I'm looking into connecting multiple low resolution USB webcams to a single computer. What implications might this have on performance? How does, for example, four 320x240 cameras fare against a single 640x480 camera? I'm not well versed in the architecture of the USB interface, what are the performance caveats? By performance I mean how would it affect the time to read the image data from multiple cameras compared to a single one.

Martin

Posted 2010-03-25T20:30:44.633

Reputation: 53

good question... – studiohack – 2010-03-25T21:59:40.543

Answers

1

One thing that you should bear in mind is that while a QVGA needs very little bandwidth, many cheap webcams only run at 'full-speed' (12Mbit/s) even if they say they are "USB 2.0" devices (only USB 2.0 'Hi-speed' devices run at 480Mbit/s).

Not only that, but if you plug multiple 'full-speed' devices into a standard single-TT USB hub (which is most of them) then all 4 will have to share that 12Mbit/s of a single 'full-speed' link.

That is why, if you want to run multiple 'full-speed' devices as quickly as possibly, make sure you buy a multi-TT hub. The easiest to find is the Belkin Tetra-hub, but you will probably have to get these from the net, they are unlikely to be stocked by your local computer shop.

A 4-port multi-TT hub should be able to run 4 'full-speed' devices with 12Mbit/s for each camera however.

There was a nice article on Tom's Hardware Guide about multi-TT back in 2003.

Also note that if you get true Hi-speed USB 2.0 webcams, you won't have this problem. 480Mbit/s should be enough for lots of QVGA cameras, all simultaneously streaming, if the software that comes with them supports it.

Edit: If this is for a machine vision application, the choice of interface could be guided by the image library you use. Personally, for home applications USB is fine, for industrial use I would always go for Firewire over USB. It has much finer grained bandwidth control and you can decide exactly which cameras get what bandwidth by defining their resolutions and framerates. The firewire DCAM protocol gives you lots of flexibility in windowing your sensor (selecting a subset of the image to be transmitted, potentially giving you much higher frame rates for a given bandwidth). Obviously if you don't need the extra flexibility then the extra expense is not warranted, but if you don't have tight budget requirements, it gives you many more engineering options.

Mark Booth

Posted 2010-03-25T20:30:44.633

Reputation: 2 324

2

In general, ecomomies of scale mean a single high res camera, will affect your system less than 4 smaller cameras of quarter of the resolution. The easiest way to measure performance is to look in task manager with one or two cameras connected, and look at the CPU loading for that camera. Ensure it doesn't exceed a few percent or otherwise you could start to see slowdowns. I would recommend you use identical cameras to reduce the number of device drivers you need loaded.

There are though, possibly much better ways to solve your problem than using 4 USB cameras (depending on what you're trying to do). You can for example, get dedicated PCI cards which can take from 4-16 cameras and all the hard work is done in hardware. This means CPU loading is negligable. Most take normal composite inputs which makes the cameras much cheaper. You can probably buy 4 cameras plus the card, for the same price as a couple of decent webcams from eBay - including security software.

NickG

Posted 2010-03-25T20:30:44.633

Reputation: 1 102

Thanks for the tip. The solution I'm looking for involves many (preferably) low latency, low resolution IR cameras/sensors. And hopefully not too expensive. I don't care about night vision, but I want to be able to "see" only reflective tape, I do not care about the rest, RGB etc. – Martin – 2010-03-26T01:20:44.420

And I need to be able to grab the frames in real time using some kind of API. Yeah, I'm asking for alot :) – Martin – 2010-03-26T01:28:34.267

Well if you're looking for a low cost solution I'd go with a PCI capture card and analogue cameras. You'll be able to access all 4 cams the same way and take advantage of the fact that the hard work is all done by the card. To see what I mean, search eBay for item numbers, 260477912704 (PCI) or 290417512411 for USB (they're just the first two I found). – NickG – 2010-03-26T09:40:30.007