736

(8 replies, posted in General)

Ah, maybe it wasn't clear enough about what the feature is supposed to do.

The image will not be undistorted, it is the coordinate system that will now take the distortion into account. So if you add a planar or perspective coordinate system, the coordinates used for positions, distances, angles, speed, etc. will be distortion corrected.

If you add lines or grids, you will see them bend along the distortion field.

Rectifying the images in real-time is costly and Kinovea architecture is not suitable for this as it is.

Regarding accuracy there could be arguments in both directions, on one hand it is better to use the actual pixels captured by the sensor for digitizing points rather than use the rectified images that will be interpolated. On the other hand a circular marker will no longer be circular at the image periphery which could limit the accuracy of automated tracking. Currently the philosophy is to respect the original image from the sensor as much as possible.

Hi,
Yes they are UVC compliant and you can configure and drive them in Kinovea.

Note that there are a lot of models from this vendor, with a few baseline hardware and a lot of variations on top of them for lenses.
For the high framerate you'll be looking at the ones based on OV2710 sensor (ELP-USBFHD01M).

I wrote a review of this model on my personal blog here.

In my experiments it doesn't do 120fps but 100fps, and only at lower resolution (640x480). 1280×720 @ 60 fps is nice though but there are other shortcomings.

738

(1 replies, posted in Français)

Bonjour,
Malheureusement à l'heure actuelle cette fonctionalité n'est pas supportée.
Si vous filmez avec un téléphone ou une tablette il faut tenir l'appareil en "paysage" pour éviter de faire des vidéos plus hautes que larges.

I reproduce a problem but I'm not sure it's the same.

For me it's the video that is 29.97 fps that is further along the timecodes, not the other way around.
It is running too fast by a bit less than 1% which is the expected error from the rounding issue mentioned earlier.

The issue only occurs during playback itself, as soon as I pause and restart playback the synchronization error is reset to zero. There is no issue when using the common slider to set the common time. It also has no impact on time-dependent computations like chronometer, kinematics, etc.

I ack the problem with timer precision. I'll have to think about the proper way to fix it.

Unless I misunderstand what you mean, I think synchronizing on time codes is the same as what is currently done. The global time is converted to video-local times (to account for the synchronization point which is zero in your case I presume) and then converted to a video-local timestamp to reach the correct frame.

What you describe could be caused by a rounding error somewhere. I will try to reproduce the problem.

Do you have the same effect when you manually set the common time (click/drag inside the common frame tracker)?
There could indeed be an issue with the fact that the playback timer has a granularity of 1ms which cannot express 29.97fps precisely. I will double check that there is an adjustment to account for that.

741

(8 replies, posted in General)

Yes it will work. It doesn't matter that you film from 10cm or 5cm. The program knows the expected geometry of the checkerboard and it compares it to what the image shows. Whether the squares occupy 25 pixels or 100 is not important for this. It is however important that all parts of the image are mapped to take into account asymmetries, so it should be from various angles.

It may appear that the distortion changes when you move the camera closer or farther away from the screen but in reality it does not. The periphery of the image still has the same amount of distortion. If you filmed a checkerboard ten times bigger from ten times farther away you would get the same image.

If you do the calibration several times you will see that the coefficients are not exactly the same. It should still work accurately and this margin of error is probably lower than the error introduced during digitization of points/objects positions.

The calibration of distortion works on the projected image so once calibrated it will work no matter how far the subject is.

I would like to understand whether it's a bug or not first.

The way it is supposed to work is that there is a global time defined outside of both videos and the synchronization ensures that each video local time maps to the current global time. Normally they should not diverge. At most, if the videos have different framerates not multiple of each other one of them might slightly oscillate between being late or early relatively to the other.

There is a dual cursor in the common navigation bar at the bottom. Does it diverge over time?
What are the framerates of each video? (you can see this from the high speed camera menu).

(Assuming version 0.8.24)

743

(8 replies, posted in General)

bluesrumba wrote:

I saw that there is a new function "camera calibration". I thought that could be used to correct the wide angle of some cameras (like the action cameras) .

Here are some notes I wrote last year regarding lens calibration. They should still be relevant I think, let me know if it works.

Summary : film checkerboard pattern, import 5 images to Agisoft, export calibration file, import calibration in Kinovea.

1. In Agisoft Lens: Tools > Show chessboard.
2. Film the screen with the camera from up close. About 10 cm for a GoPro. Film from 5 different angles: one central and the others from the corners. This assumes a flat screen. See example images below.
3. Open the video in Kinovea.
4. In Kinovea: Find 5 clear images (no motion blur) corresponding to the 5 various points of view and export them as images.
5. In Agisoft Lens: Tools > add photos. Add the 5 images.
6. In Agisoft Lens: Tools > Calibration. Check every checkbox except "skew" and "k4". Run calibration.
7. In Agisoft Lens: File > Save calibration…
8. In Kinovea: Image > Camera calibration. File > Import > Agisoft Lens. Import the file and Apply.

Done.

You can reuse the same calibration file for all videos filmed with this camera with the same lens settings. (If you change from wide angle to normal, another calibration file is needed.) Other cameras of the same model will have similar calibration files, but for the most accurate result you'll want to use a file specific to your camera.

The calibration computes the focal length, the misalignment of the lens center with regards to the sensor center, optical axis orientation with regards to the sensor plane, and distortion coefficients.

Verification

1. Go into the image tab in the calibration window and check the rectified image.

2. With a perspective plane.
- Reopen the checkerboard video in Kinovea.
- Add a perspective grid on the checkerboard and verifies that the lines are correctly distorted.
- Zoom to the max, adjust corners of the perspective grid and then calibrate the grid by the number of blocks covered horizontally and vertically.
- Display the coordinate system and check that it is correctly distorted. You can see the error accumulating at the periphery.
- Add a line covering a number of blocks, display its measurement and check that it matches.

My calibration images looked like this:
http://www.kinovea.org/screencaps/0.8.x/0823-calibration.jpg

Hi,
In recent versions there are two different concepts for tracking.
Trajectory tracking is done by directly right clicking the video. This corresponds to the behavior in previous versions. Kinematics are only available in this mode.

There is also drawing tracking, where the points comprising the drawing (marker, line, angle, etc.) are tracked independently. This is done by right clicking the drawing. If you first add a marker and then right click it and "follow trajectory" you will be in this mode.
With this type of tracking the boxes are not visible. The marker should be attached to the imaged object though and if you move the playhead it should follow whatever is beneath it.

Please give more details as to which tracking type does not work.

Hi,
There is usually two ways to connect to industrial cameras, through a generic DirectShow filter or through special code based on an SDK provided by the vendor.

The DirectShow interface is simple and doesn't have all the options that the camera exposes and usually doesn't provide the same performance either. The SDK is the proper way to go but requires special code and most importantly an actual camera for testing.

Unfortunately currently Kinovea only supports IDS cameras through the DirectShow filter.

Hello,
Has anyone tried this camera ?
Ref: http://www.samsung.com/us/photography/d … C200ZWAXAR

I'm intrigued by the fact that it has a full blown Android OS on board. Maybe the potential for full programmatic access to the hardware?

Browsing the manual it seems to be the usual still-images oriented camera, with manual shutter speed only available for photography, not video.
The question is, do the installed applications have access to the low level camera hardware to change shutter speed of video? I would guess they have the same access as smartphone applications to the phone camera… Which I don't think include shutter speed (But haven't looked deep into this).

The idea of being able to write programs running directly on the capture device is certainly appealing. I don't know if the model is sufficiently open yet…

Thank you.

On my machine the following System variables have been created during Basler software installation:
PYLON_GENICAM_ROOT
PYLON_GENICAM_VERSION
PYLON_ROOT
PYLONC_ROOT

The value for the last one is "C:\Program Files\Basler\pylon 4\pylonc" on my machine.

Thanks for the logs.
I'm mostly interested in the logs for 0.8.24. There won't be any modifications on top of 0.8.15.
Fortunately, log.txt.1 is new to recent versions so it contains 0.8.24 log.

The error there is the following:
System.Exception: Environment variable PYLONC_ROOT not found. Install the pylon C Runtime.
   at PylonC.NET.Bootstrapper.Initialize()
   at PylonC.NET.Pylon..cctor()

The way it is supposed to work is: Kinovea embeds a "wrapper" library published by Basler that acts as a bridge between the program and the rest of the Pylon stuff installed on the machine. This library looks for the environment variable to know where the rest of the Pylon DLL are located.

Please check if you have such an environment variable, I imagine it should be set during Pylon installation. (Right click My Computer > Properties > Advanced system settings > Advanced > Environment variables). I will look on my machine tonight to confirm.

By thumbnails I was referring to the camera thumbnails from the camera explorer. Considering the nature of the failure I would guess there is no thumbnail at all though.

OK thanks.

Logs: please try to get in the camera configuration (in Kinovea) anyway and after it fails collect and send me the log by mail ("log.txt" and "log.txt.1" reachable from Help > Open log folder).

Now that I try it differently, there seems to be issues with memory that I hadn't noticed before. Please go to Options > Preferences > Capture > Memory. What is the current value of the slider? Try and decrease the memory allocated for capture buffers to something low, like 150MB, then retry and report.

Another question: is the thumbnail correct or is it all black or something else?