Firewire/Industrial Cameras (Guppy,Firefly,uEye,PS3Eye)

first of all a question, afterwards some longer discussion about cams in VVVV.

which camera models does the uEyeCam (Devices) node support? all of them or only the usb models? which cam has been tested?

the longer explanation why i ask this question:

i need to buy a good camera for a permanent installation soon and would like to know your opinion or if i’m wrong somewhere. i spent quite some time now digging through loads of manuals, sdks and here is my current state of knowledge.

  • WDM: usually webcams and other cheapo-cams use this driver and can be accessed in v4 via [VideoIn (DShow9](https://vvvv.org/documentation/VideoIn-(DShow9). most of the cams achieve only low framerates (25-30 fps) and have a latency of at least 200ms, which makes them unusable for many applications. one exception is the PS3Eye (which can also be accessed via the Codelaboratories CLEye Platform Driver. accessing this camera via the WDM driver is quite quick and i’m getting 60fps. --> this leads me to the conclusion that most WDM-drivers are crap because it is apparently possible to achieve high framerates and low latency.

  • PS3Eye:
    ** Pros: Cheap, quick, fast. Can be accessed via WDM and @elliotwoods OpenCV nodes.
    ** Cons:
    *** Max. Resolution is 640x480 and there is a visible bayer pattern in the image (even in processed modes). this makes it almost unusable for tracking TUIO markers that are not too close to the cam.
    *** the original lens is not very flexible. modding ist possible but neither cheap nor quickly possible. well, at least it’s not a solution out of the box.

  • IIDC/DCAM: a camera mode that most industrial firewire cams support is the IIDC/DCAM standard, which is not supported natively by windows and therefore not available in VVVV. most industrial cameras come with an SDK that allow access to the images with a driver supporting this standard. only few of the cameras come with a WDM driver. i was able to test these cams:
    ** AVT Guppy: A nice and quick cam with a good image. SDKs in several versions are available. even though resolution is not much higher than PS3Eye the image is more crisp (no Bayer-pattern).
    ***@hierro)) ((forum:guppy-camera-and-wdm for this a while ago which should enably accessing the cams image via SharedMemory. Unfortunately I could not get this to run (Exception: Could not load file or assembly ‘UniControl.NET, Version=1.2.2.0, Culture=neutral, PublicKeyToken=7f2f5e16b7def7b4’ or one of its dependencies). i was having FireSDK v3.1 installed, @hierro claimed to have 2.9 installed but this is nowhere to be found. anyone?
    *** Access via a WDM driver is possible with the AVT DirectStreamPackage. Unfortunately more than 25fps and a delay of about 200ms make it unusable for me.
    *** Writing my own Shared Memory node as @joreg did for the uEye cams: Unfortunatly this is to big for me.
    ** Point Grey FireflyMV: A cam that is not so expensive and also delivers a good image at 60fps (pixel-matrix is also slightly visible).
    *** i could not capture an image in VVVV as there are no compatible drivers or plugins available. is that correct?

  • CMU 1394 Digital Camera Driver: This is an open source driver that enables for aquiring from IIDC/DCAM sources, i.e. almost all industrial firewire cameras. it comes with a test application that works wonderfully with both the cams i had available (guppy and firefly). it appears to be quick and fast. it also is the base of the windows port of libdc1394 which appears to be a widely used 1394-driver in the linux world and incorporated in many projects (OpenCV, GStreamer, …). I wondered if this could be the base for a shared memory node for very many cams that support the IIDC/DCAM standard. unfortunately my coding skills in this area are not that developed so i failed quickly. does anyone know something about this or how this could be made useful to access cams from VVVV?

  • HDMI capture cards like the Blackmagic stuff: using these with a HD cam would theoretically also be possible. unfortunately long cable length are not possible with this approach and also i don’t know of any cameras that would be good for a permanent installation…

what can you recommmend? what works for you?
thanks for your opinions.

i have to complain this part:

we’ve modded the ps3 several times with some cheap lens mount like that one.

This shop sells modded PS3s: Peau Productions

@sebl: i’ve done the same (but i harvested my lensholder from a cheapo cam from china). thanks for the link - this is the first shop i know of selling fitting lensholders in europe (until now i found only lensholders with the screws 20mm apart and not the 18mm you need for the ps3eye).

@bjoern: thanks also, i am aware of this shop. they even sell a lens holder for c/cs mounts, but i don’t consider 50 USD + shipping from overseas cheap for a little piece of plastic (still cheaper than an industrial cam, i know).

anyways, the resolution of my (modded) ps3eye is not good enough which is why i want to look into industrial cams. i’d really like to which cameras @joreg’s uEye plugin is compatible with (just USB or also GigE).

motzi, i personally tested only with a usb cam, but as i understand the drivers are generic for all ids-imaging devices.

also it should now be trivial to update the plugin to remove the need for the sharedmemory workaround and return a texture directly.

thanks joreg.

when i choose a ids-imaging cam i might come back on this.

any other experiences with industrial cameras from different vendors in vvvv?

I tested the IDS plugin with a gigE IDS camera some years ago and it worked nicely with the plugin.

iirc @msberger was toying around with a point grey flea3 not so long ago.

ids gigE work fine with VideoIn too. drivers are finally decent enough

and openCV as well

uEye plugin > USB with 44meter connection tested without any additional latency

thank you for your comments. seems comforting and the ids cams are the way to go.

@DiMiX: what kind of extensions did you use? regular stuff or anything special? also i guess you used the usb2 cams, not usb3?

usb2 UI-1220LE-M-GL
http://www.lindy.de/usb-2-aktiv-verlaengerung-pro-8-meter/42780.html
+
http://www.lindy.de/usb-2-aktiv-verlaengerung-pro-12-meter/42782.html
+
http://www.delock.de/produkte/F_164_USB-2-0-Verlaengerung_82690/merkmale.html

good to know, thank you!
interestingly i had issues with the delock extension and a ps3eye when using it with the OpenCV nodes - see my comment from 22/01/2013 in here. it does not seem to be a problem with the data rate.

by the way can anyone confirm it’s possible to achieve
180fps @ 320x240 with the PsEye in vvvv using elliot’s plugin OpenCV/CLeye? or the standard Videoin in?

thanks
charles

yes, it seems to be possible using both methods.
using VideoIn (CLEye) from @elliotwoods’ OpenCV nodes i get an average of 190 when set at 180 fps :)

using VideoIn (DShow9) it appears to be possible also [(pin:Actual Stream Format](https://vvvv.org/documentation/(pin:Actual-Stream-Format): RGB24 320x240 @ 180 fps), but the AverageFrameRate value floats around below (between 120 and 160 fps) on my computer.

thanks motzi !
with videoin (DShow9) i guess you set “reference clock” to none…
by the way the AsTexture Node works for you under beta29?
for me Videoin status is OK but the AsTexture node ouput a black image

setting reference clock to none does not change much. i noticed one interesting thing though:
setting Force Preview Video Output to true somehow limits the framerate to 60fps (i guess that’s the screen refresh rate that the renderer is limited to). also it introduces a slight lag (maybe 100-200ms) that is not there when the pin is set to false.

regarding the AsTexture (OpenCV) node: seems to work fine for me.

finally a windows restart fix the AsTexture issue.
thx for the pseye tips