1

Hi,

I have two IDS UI-5240CP-C-HQ cameras in my setup.
First I have set up the IDS cameras via the "IDS camera manager" (setup the IP configuration) and via the "uEye cockpit" (set camera parameters and load them to the camera).
Next I started Kinovea 0.8.15 and was able to select the IDS camera's via "Select Source > Select another device > IDS camera name. When I selected one of the IDS camera's I only saw a black screen. Does anybody know what goes wrong and how to fix this?
I also tried the experimental 0.8.26 version. In this version I can preview and record images from the IDS cameras. But at the top of the image I see @17fps although the camera is setup in the "uEye cockpit" to have 60fps. Also, altough I configure the camera in the "uEye cockpit" to a monochrone image, the image in Kinovea will be in full colour. I looks like the camera parameters are ignored. Can anybody help me to get highspeed recordings?

Greetings,

2

Hi,
Kinovea has its own configuration for some of the parameters and should leave the others untouched.

What do you have when you go to the camera parameters in Kinovea? (You can click on the info line at the top or use the configuration button in the lower left).

You should be able to set the stream format to MONO 8 here for monochrome and change the image size, framerate, exposure and gain.
The framerate configured can only be reached if the exposure duration value is low enough though, as exposure has priority over framerate. For your 60 fps target, make sure the exposure duration is less than 16 666 microseconds.

This is for 0.8.26 by the way.

3

govert.vandevijver wrote:

But at the top of the image I see @17fps although the camera is setup in the "uEye cockpit" to have 60fps. Also, altough I configure the camera in the "uEye cockpit" to a monochrone image, the image in Kinovea will be in full colour. I looks like the camera parameters are ignored.

To clarify a point, the way the IDS cameras work, at least in regards to the IDS SDK used in Kinovea, is that each application is responsible for managing its own set of parameters for the camera.

When the program connects to the camera for the first time it will always receive a default parameter set. Then they have helper functions to save and load the parameter set as it gets customized for the application.

You can see the file where these parameters are saved for Kinovea by going to menu Help > Open log folder, and then go to the sub folder "CameraProfiles\IDS". There you should see a .INI file for your camera. There will be entries like image width, height, framerate, exposure, etc.

The parameters you set in IDS uEye Cockpit are only used by the Cockpit application.

This works differently than, say, Basler cameras, where they have a "global" parameters manager/API and all applications will read/write the same values.

In uEye Cockpit you can also see this concept by the menu File > Load parameters and File > Save parameters. This will save an .INI file that has the same format as the one you can find in the sub directory of Kinovea preference files above.

I imagine that if you had a specific parameter that you wanted changed that is not exposed in Kinovea you could try to save the .INI file from uEye Cockpit and then merge it with the file used by Kinovea. Although I would like to hear about these specific parameters to see if it would be relevant to have them supported natively in Kinovea.

4

Thank you Joan for your reply. It really helped me testing my set of cameras with the Kinovea software!
I did some tests and I encountered some issues which confuses me (Kinovea 0.8.26). More details bellow the listing:
1) I cannot reach high framerates by only changing the parameters available in the Camera Configuration in Kinovea (see test details).
2) There are multiple differences between the Kinovea camera profile and the "Live Video" profile from uEye cockpit: multiple controls and auto modes are disabled in Kinovea profile. I can send you a comparisson.
3) Kinovea changes the .ini file when I overwrite it in the Kinovea\CameraProfiles\IDS folder by a .ini file generated by uEye cockpit. But I can reach higher framerates! (see test details)
4) When a profile from uEye cockpit is used, the bandwith shown in Kinovea is much larger than the one in displayed in the camera properties in uEye Cockpit (see test details).

Can you clarify this and maybe give me advice on how to setup the cameras in the most efficient way?

Thank you very much!

Test details:
***Changes in parameters via Kinovea->Camera Parameters
1280x1024 @17fps (BGR8Packed), Exposure: 55670µs Signal: 17fps Bandwith 64MB/s. Drops 0
    Low framerate
640x512 @33fps (BGR8Packed), Exposure: 55670µs Signal: 33fps Bandwith 31MB/s. Drops 0
    Low framerate, not full image, darker
1280x1024 @17fps (BGR8Packed), Exposure: 20088µs Signal: 17fps Bandwith 64MB/s. Drops 0
    Very dark image, Low framerate (17fps is max in settings)
1280x1024 @17fps (mono8), Exposure: 55670µs Signal: 17fps Bandwith 22MB/s. Drops 0
    Grayscale, Low framerate (17fps is max in settings)
1280x1024 @17fps (BGR8Packed), Exposure: 23259µs, gain 50 Signal: 17fps Bandwith 64MB/s. Drops 0
    Low framerate (17fps is max in settings)

***Differences in .ini file between standard Kinovea profile and the "Live Video" profile from uEye Cockpit.
Multiple differences: multiple controls and auto modes are disabled in Kinovea profile

***Automatic changes when a .ini file from uEye Cockpit  is used in Kinovea.
[Gain]
Master: Increased in Kinovea

[Auto features]
Brightness exposure control: uEye: 1 -> Kinovea: 0
Brightness gain control: uEye: 1 -> Kinovea: 0
   
[Sequence AOI]
Exposure1: uEye: 0 -> Kinovea: A Value
Exposure2: uEye: 0 -> Kinovea: A Value
Exposure3: uEye: 0 -> Kinovea: A Value

***Differences in performance between Kinovea and uEye Cockpit for multiple profiles:
*Live Video Profile
        Kinovea            uEye
Fps        21.51 fps        21.53fps
Bandwidth    108 MB/s        27.9MB/s

*Live Video Profile with increased "Pixel Clock" 58MHz
        Kinovea            uEye
Fps        41.46 fps        41.47fps
Bandwidth    207.92 MB/s        53.7MB/s

*Live Video Profile with maximum "Pixel Clock" 86MHz
        Kinovea            uEye
Fps        59.86 fps        60fps
Bandwidth    301 MB/s        77.4MB/s

*Live Video Profile with WVGA image
Crash of Kinovea

5

Very cool thanks. I'll make some more tests with mine and report.

Some quick notes.

You'll need to set the exposure to less than 16 666 µs for the 60fps. It will become darker indeed. You might need to add lights if you are indoors and increasing the gain creates too much noise.

Yes when you reduce the frame size it crops the image rather than resize it. It's the way these "industrial" cameras work, unlike regular webcams. The nice thing about this is that you can access much higher framerates by reducing the size. Usually it's only when you change the height that you can get the new framerates due to how the sensor is read out. The new values might only be available after you apply the changes and re-open the configuration dialog.

I'll double check the pixel clock setting and what it does under the hood.

6

OK, I'll be adding a slider for pixel clock as soon as possible, sorry for the oversight. The default value is not the max possible and thus it restricts the selectable framerates. I'm not sure how that default value is computed.

It also looks like they have the dependency between framerate and exposure in the other way compared to other manufacturers, and I think their way is better. You set the framerate and the exposure is automatically constrained and capped to the reciprocal of the framerate. Other vendors do it the other way around and it confuses a lot of people that the framerate they set is not respected.

7

For the bandwidth we use this general formula:

BW in megabytes per second = (width * height * bytes per pixels * frames per second) / (bytes per megabyte)

The bandwidth in uEye cockpit camera properties ("Average bandwidth") is the bandwidth between the camera and the computer. The one limited by the physical interface like the USB cable.

The bandwidth in Kinovea is the bandwidth between the camera API and the recording module.

For color cameras, the camera sensor captures a Bayer image which is a grayscale image but each pixel has a small color filter in front of it. The image then needs to be converted (aka: debayered or demosaiced) to produce a color image.

In uEye cockpit > camera properties > Image, you can set whether this conversion happens directly on the camera hardware (if supported), or in software, which means on the PC side.

So for a color camera using "software" debayering, the bandwidth in uEye cockpit will be reported as for grayscale images since this is what transit between the camera and the computer, whereas the one in Kinovea will be reported as for color images since the images provided by the API are already converted.

For the example of using 1280x1024 at 60 fps.

  • Mono 8 : (1280*1024*1*60)/(1024*1024) = 75 MB/s.

  • RGB 24 : (1280*1024*3*60)/(1024*1024) = 225 MB/s.

  • RGB 32 : (1280*1024*4*60)/(1024*1024) = 300 MB/s.

Note: Some vendors use 10^6 bytes per megabyte, IDS and Kinovea use 2^20 bytes per megabyte.

8

Thank you very much for the info.
I keep you updated on this setup.
Feel free to ask if you want me to test future improvements.