Topic: Experimental version - 0.8.26

This is Kinovea 0.8.26.
This version introduces new kinematic analysis tools and focuses on polishing existing features and fixing bugs.

1. General

It is now possible to run multiple instances of Kinovea at the same time by changing the option under Preferences > General > Allow multiple instances of Kinovea.

2. Annotation

The management of the opacity of drawings was simplified.
Instead of having a needlessly complicated dialog on each drawing with a "persistence" value, all the drawings are now either always visible or follow a global option for fading in/out of their reference frame.

The global value for this fading is set under Preferences > Drawings > Opacity.

3. Measurement


It is now possible to export the time series of trackable drawings like the angle tool and custom tools. See Angular kinematics and Linear Kinematics below.

The "data analysis" menu has been removed from individual trajectory drawings and placed in a global menu at Tools > Linear kinematics, as the window now combines data for all trajectories. See Linear kinematics below.

Angle tool
The angle tool was improved to be more versatile. It supports three new options to switch between signed or unsigned angle, change direction from counter clockwise to clockwise, and switch display to the supplementary angle.

The following screenshot shows the same angle object with different options applied.

Linear kinematics

The linear kinematics window is now found under the menu Tools > Linear kinematics and supports multiple sources. You can check/uncheck trajectories to be included in the analysis. The name and color for the plot are taken from the objects configuration.

When comparing several trajectories, three time models are available: absolute, relative and normalized. "Absolute" time will simply respect the original timeframe of the trajectory. "Relative" time will align all trajectories to a common starting point, to compare how they evolve over time. "Normalized" time will stretch trajectories to a common starting and ending point, to compare their "shape" over time.

Exporting trajectory data to CSV will export a common time column first and then one column per trajectory.

The trackable drawings (point, line, angle, custom drawings, etc.) have their individual points included in the trajectories. So if you track and angle drawing, its three points will show up in the linear kinematics window as three distinct trajectories that you can treat as any other trajectory.

Angular kinematics

A new kinematics analysis window has been introduced for angular kinematics. It is available under the menu Tools > Angular kinematics.
This window will let you visualize angular kinematics values like angular velocity or tangential velocity for angles that were tracked in the video.

Trackable drawings that have an angle, including custom tools, will show up in the list of sources and can be checked/unchecked.
The time options "relative" and "normalized" are also available.

Angle-angle diagrams

A new analysis window for angle-angle diagrams has also been introduced at Tools > Angle-angle diagrams. These are diagrams that directly map the angular value of two angles against each other.
This is useful to get insights into the dynamics of a specific motion. A typical example is to plot the knee angle against the ankle angle over a few cycles of running or cycling. The overall shape of the cyclic curve can be compared to the literature or between athletes or sessions.

The diagram is defined during the overlapping period of time of the two angles considered.
The angle-angle diagram will also work for custom tools that contain angles. This is possibly the most practical way to use this feature, for example with the bike fit tool or a tool dedicated to the angles you want to review.

In addition to the raw angle value, it is also possible to map the angular velocities or tangential velocities of two joint angles against each other.

General tracking

If you need to track the same joint angle at distinct times in the video, create several angle tools and track them independently. Each tracked point has an underlying timeline of positions that is not exposed to manipulation. Filling this timeline with discontinuous sequences will cause unexpected behavior.

It is now possible to completely bypass the data filtering by changing the global option under Preferences > Drawings > General > Enable coordinates filtering. Note that this filtering is to remove the high frequency noise created by the digitization process, it should be left enabled unless you intend to run your own filtering algorithm on the data.

4. Capture

Recording modes

In order to restore the ability to record delayed videos, a new recording mode option is available in the global preferences under Capture > Recording.

The Camera recording mode is the default and will record the video stream straight from the camera to disk, compressing it on the fly if necessary. This is the best performance path. For some combinations of framerate and image size, it is the only usable option.

The Display recording mode will let the video go through the buffering system for the delayed live feature and the composition system for mosaicing (if active), and it is the final image that will be recorded to disk.

Here is a simplified diagram of the capture pipeline and where each recording mode operates.

As an example, let's say we have a 10 second delay active and we record for 20 seconds. Let's define the press of the record button as time "0".
- In camera mode, the video will contain the action from time 0 to 20.
- In Display mode, the video will contain the action from time -10 to +10.

Camera modules

An entirely new camera module was written to support IDS cameras.

The Basler camera module was improved and updated to support Pylon 5 API.

Memory buffers

The maximum allocated memory for the capture module is now based on whether Kinovea is currently running on 32-bit or 64-bit Windows. This should allow for much longer delay when memory permits.
The option to increase the memory allocated for delay buffer can be changed under Preferences > Capture > Memory.

5. Feedback

Feel free to use this post for feedback, bug reports, usability issues, feature suggestions, etc.

Re: Experimental version - 0.8.26

This update is a godsend :-) I joined the forum specifically to request the increase of the capture delay memory buffer. Can't wait to try it out, thanks to all the devs.

Re: Experimental version - 0.8.26

Just tried it out but the latest version won't allow me to capture the USB video feed. It worked just fine in the stable release. I'm also fairly sure it worked OK with the previous 0.8.25 experimental version.

The configure camera icon looks greyed out and doesn't respond when I click it and the capture window is black. I'm using the 64bit version.

I'm using a Elgato CamLink to connect a Sony Handycam to a Windows 10 PC via USB3.0. If I open the Camera app on the computer I can see the live video feed so the connection to the computer is definitely working.

** Update: I get the same problem with the 64bit version running under VMWare on a MacBook Pro and using the in-built web cam. Note: this definitely worked for version 0.8.25 64bit.

Re: Experimental version - 0.8.26

Do you see the thumbnail for the camera in the camera list tab?
Could you collect the log file (see in help menu to get to the folder containing it) and send it over at joan at kinovea dot org, thanks.
Also, try the following: right click the thumbnail of the camera and select "Forget custom settings", if you are using the installed version, to remove the settings set with the previous version.

Re: Experimental version - 0.8.26

Hi, thanks for the response. I had hidden the file explorer so couldn't see the camera list. Showing it and manually connecting worked on the Mac... hopefully that means it will work on the real system setup with the Elgato. I'll give it a try later today.

Re: Experimental version - 0.8.26

Dear joan,
thank you very, very much for this wonderful piece of software.
Looking forward to using it as of now!
Any bugs (or unexpected features ;-) will be communicated.
Best regards,

Re: Experimental version - 0.8.26

New to Kinovea, using it for cricket coaching

SlowMotion Loop feed - got it running in 4 screen split, but its confusing as to the order of the screens to watch....

Is it possible to slo mo 1 x full screen?

Re: Experimental version - 0.8.26

chrishall123 wrote:

SlowMotion Loop feed - got it running in 4 screen split, but its confusing as to the order of the screens to watch....

Is it possible to slo mo 1 x full screen?

Yeah I know what you mean. Continuously slowing down the real time is an ill-posed problem though, if there was only one view there would have to be gaps in time when it runs out of space.

I tried to design it so that if there are several people constantly doing things in sequence, you could still theoretically see each of their actions fully in slow motion. But in practice you have to guess when you are supposed to change your focus and to which sub-view. It's not possible for the program to know when the action you are interested in starts, so it can't switch by itself.

Another approach would be to assume that the next run/action in the sequence is not happening until you are finished viewing the first one in slow motion. So for example if the action takes 5 seconds and you are watching at half speed, people have to be spaced by at least 10 seconds.

With this approach there could be a button that let you force a sync with real time and reset the buffer, so you can ensure the synchronization doesn't happen at the wrong time. The synchronization gap happening at the wrong time is what the multi-view is trying to solve by showing views with staggered ages, the gap in one view is filled by another view.

Another improvement would be to display a countdown showing when it will go out of space and do a synchronization jump.

I don't know if any of that made sense, it's a tricky feature I'm not sure it's possible to make it intuitive without understanding the internal mechanism.

9 (edited by litch09 2018-Mar-02 00:36:56)

Re: Experimental version - 0.8.26

I think I have found a small bug in the linear kinematics tool when using a high-speed camera recording. I have recorded at 120 fps and manually change the video timing to reflect this. Then I track something (e.g. someone running) - the calculations of velocity are correct, but the x-axis (time) of the plot doesn't seem to be adjusted for the high speed setting (the time is 4 times that indicated in playback window).

PS. I love this new tool - we are planning on using it in our university teaching. Thanks for the great innovations.

Re: Experimental version - 0.8.26

litch09 wrote:

I think I have found a small bug in the linear kinematics tool when using a high-speed camera recording. I have recorded at 120 fps and manually change the video timing to reflect this. Then I track something (e.g. someone running) - the calculations of velocity are correct, but the x-axis (time) of the plot doesn't seem to be adjusted for the high speed setting (the time is 4 times that indicated in playback window).

I can reproduce this if I change the reference video framerate in menu Video > Configure video timing dialog. Can you confirm this what you are doing?

For high speed camera you should only change the top part in this dialog: High speed camera > Capture framerate. If you only change this it should work as expected I think.

The bottom part is for when a video has metadata indicating that its nominal framerate is some number but the actual framerate is something else, say 30fps vs 29.97 or something. It does get confusing with high speed camera though. But in your case the camera did intend to create a 30fps file as advertised (or whatever the framerate) and the playback should normally be in slow motion. Maybe these should be two different dialogs because the bottom part is for a rarer scenario, when the video file is broken.

Please retry with just putting your 120fps in capture framerate and leaving the video framerate to its original value and let us know if it works.

Re: Experimental version - 0.8.26

Yes, this worked Joan. Thanks for that. I was certainly confused and had changed the frame rate in both.