HI all, I’d asked this quite a while ago and I"m hoping that since then maybe someone knows someone who might have some experience on the matter… i’ve tried loads of CCTV forums but they don’t have a clue obviously as their applications are quite different.
on paper they all seem fine, multiple cameras per machine; good enough framerate to handle quite a few cameras with decent enough res for basic vision anaylsis.
My primary concern, is using the streams. I"ve discovered that to use the GeoVision cards (seem to be decent industry standard for surveillance), I need to get into the GeoVision SDK, which I don’t have time for right now. The cards above state that they have WDM / DirectX drivers. Does this mean that I can use them in OpenFrameworks with the VidGrabber straight up?
My secondary concern, is that things aren’t always as they are on paper. tech specs might say 120fps between 4 cameras, but then when it comes down to it, the picture might be jumping around - which will clearly screwup any CV. CCTV forums and sites don’t generally dwell on these issues because it suits their purposes - and most of these cards can’t be found in the UK so I can’t just go and check’em out - need to order online from abroad…
P.S. are there any other ways of doing multicamera installations using BNC cameras without using loads of computers? I need to cover an area the size of a tennis court so firewire is out of the question…
How many cameras do you need to use at one time per pc?
I tried an Angelo card one, but you have to get the images in using their sdk. With Theos video grabber each stream needs to show up as a different device.
Zach made a good suggestion, if you dont need a high image resolution. Get a quad splitter (look on google) that will show 4 inputs at one time on the tv screen in a security office. If you grab this image through one capture device, then split the incoming image into 4 images.
Also if you are going long distances, try looking for ‘cctv baluns’ which lets you run video over ethernet cable. I’ve currently got cameras running over a 30 metre ethernet cable without any problems.
at the moment i need 6-8 cameras. ideally on one PC. If that isn’t gonna work i’ll have to use multiple PCs, but would prefer a single PC approach of course (I’d looked into the quad splitter route, and will consider that as well if I can’t get this multiple camera thing working).
With Theos video grabber each stream needs to show up as a different device.
This is the bit that most interests me. The GeoVision seems to be like the Angelo you mention, appears as one capture device, and you need the SDK to read the streams. But some cards mention WDM, DirectX drivers - and that each input appears in the device manager as its own capture device. Does this mean that I can use Theo’s code straight up? Even if I can narrow it down to a specific card to try, i’ll order it and give it a go… but at the moment not sure even which one to try…
cheers on the cctv baluns thing btw, will definitely check that up…
re camera framerate: perhaps you know this already, but a CCTV camera’s frame rate will vary vastly depending on how much light it is getting. buy cameras with the lowest lux rating you can – the smoothest tracking i have ever seen was with a 0.003 lux camera: consistent 60fps, it was amazing – and/or flood (FLOOD!) the area with IR light. use the incadescant bulb with layers of Congo Blue and Primary Red gels trick.
can’t help you with the WDM/DirectX stuff, except to say that, i *believe* that you can use WDM drivers with multiple inputs with no worries, and also i *believe* that this will work fine with oF, but juts because i believe something doesn’t mean it’s true
ps, i love your work - are you coming to Ars? it’d be great to meet.
I think the easiest method would be to get two quad splitters and then just find two capture devices that can run at 640 by 480 .
If the capture device has directshow/directx drivers then most likely it will work fine in openFrameworks. Devices with multiple simutanious capture inputs might be a bit more tricky but should work if they show up as separate devices.
In terms of cameras I am a big fan of the Sony M183 or Sony M383 with a IR filter between the lens and the ccd. Some cameras do need more light to capture at a higher rate - but this camera can be set to fully manual shutter speed and as long as you use a manual iris lens then you should be okay.
Another option if you need to cover a large area is a 170 degree fisheye camera that you can unwarp to get a pretty usable image. You could maybe get away with using one or two based on how high your ceilings are.
and thanks for the tips Theo, I guess for now I probably will go with the quad splitter as it does seem easier for the hardware config (which is biggest unknown for me right now). I just liked the ‘lots of independent video inputs’ approach because it made the multithreading quite easy. in each thread just capture 320x240 and then analyze. 8 cameras capturing and analyzing in parallel (on 8core) is quite straightforward. With having only 2 streams coming in at 640x480, the capture cant be done in the analysis thread, as there needs to be 4 analysis per stream (if i wanna multithread as efficiently as possible) - but i’m sure i’m just being lazy and with the correct abstraction itll be doable too… (but you can’t deny connecting 16 cameras straight to a computer doesn’t sound sexy! :P)
thanks on the tips with the cameras/lenses too… very useful cheers!