Machine Vision

cancel
Showing results for 
Search instead for 
Did you mean: 

USB3 Vision High Speed Camera

Hi all,

 

I've got an xiQ camera from Ximea which is a nifty little USB3 Vision compatible high speed camera capable of a range of frame rates (up to 1.5 ish kHz) depending on binning and frame size reduction. 

I can set high frame rates in the camera native software and also in MAX but when I try and use the calculated frame rate VI in imaqdx I get 500fps maximum (a suspiciously constant 500fps at that). I suspect this is a limit of the windows timestamp information more than anything else but please correct me if I'm wrong.

 

I'm trying to program this camera in LabVIEW such that I actually know the timestamp of each image so I can work out the frame rate exactly (accepting that it might not be totally constant) or know the timestamp of each frame.

 

Any ideas?

 

My code is a producer consumer architecture which places the images in a queue (not sure if this is actually necessary in imaqdx but it works fine for non high speed cameras) and deals with them elsewhere (saving or calculating averages etc). The image presentation on the screen is also reduced heavily (by a factor of 50) to reduce the load on the PC.

0 Kudos
Message 1 of 7
(1,556 Views)

Hey Mark,

 

I had a look at the Ximea cameras available (https://www.ximea.com/usb3-vision-camera under 'Models') and the highest framerate there is 500FPS. Which camera are you using?

 

With regards to the immediate question about timestamps - I had a quick look and couldn't see any GigE features, but that may have been me not looking enough. Is there anything that gets sent in the frame metadata that contains this information? Otherwise, we can try to timestamp as here but this has obvious limitations.

 

Looking further.. it looks as though there's various IO on the camera that reads timestamp values from the camera as well as a ready made wrapper for these in LabVIEW here.

I'm unable to run this to get the attributes, but are you able to confirm what's available through those keys or whether the wrapper for the Ximea API serves the purpose of letting you call "XI_PRM_TIMESTAMP"?

 

Cheers,

Nick

0 Kudos
Message 2 of 7
(1,495 Views)

Hi Nick,

 

The camera I am using is the MQ013CG-ON model which can go faster than 500 fps if the frame is cropped more than VGA (the native Ximea software handles this ok) but maybe there is something more too it that isn't handled by the U3V driver for it.

 

Even if I can't run the camera faster than 500 fps in LabVIEW it would still be useful to know the timestamp more accurately than 1ms.

 

I've tried the approaches you showed already (getting custom keys) but this is limited as you said.

0 Kudos
Message 3 of 7
(1,483 Views)

Does the Ximea LabVIEW API expose XI_PRM_TIMESTAMP? That seems to be hardware timed from the camera so should be able to give accurate timestamps.

0 Kudos
Message 4 of 7
(1,462 Views)

Hi,

 

If it does I'm not really sure how to call it. I'm currently operating the camera in LabVIEW via the U3V driver so I would need to change to the Ximea API driver and rewrite my code - not impossible but a pain 😕 Unless there is a way to call the API function/interface with whatever register the timestamp is at on the device and pull it out separately.

0 Kudos
Message 5 of 7
(1,456 Views)

The only way to get timestamps more accurate than the IMAQdx timestamping from Windows are to somehow pull the data from the camera itself. This could be in frame metadata/chunkdata or through the actual IO on the camera. 

 

Unfortunately without the camera, it's hard to verify what's available on my end. Perhaps shooting Ximea an email to see whether these are exposed at all would be a good idea

 

Cheers,

Nick

0 Kudos
Message 6 of 7
(1,443 Views)

The timestamps from the camera are attached as metadata to the images by IMAQdx. These can be read using the Custom Data VIs in the Vision utilities palette.

0 Kudos
Message 7 of 7
(1,410 Views)