631

(4 replies, posted in Bug reports)

I reviewed the de Leva model and can say that it is not the one used in the tool. It's also not the Zatsiorsky-Seluyanov model.

One issue that always bugged me, I'm not too convinced that the full body models make a lot of sense when used on 2D images, as the segments and landmarks can't possibly be on the same plane, so the lengths and COM coordinates of some of the segments are going to be inaccurate relatively to the rest. Are you aware of existing research on how these full body model can be adapted to 2D or the magnitude of error to expect?

632

(4 replies, posted in Bug reports)

Hi,

First I want to say that I'm very motivated to improve this part of the application smile

1) what inertial parameters (i.e., segment mass) do you use to estimate total body center of mass location for the "human model"? Dampster? De Leva? Etc..

I thought I had put a comment inside the XML to document the source but apparently I must have forgotten… Unfortunately at the moment I can't find the exact reference I used for the coefficients. It might have been from a book annex.

Please point to popular models that are used in your field and we'll build the corresponding tools. I want the user to be able to pick between several models anyway.

2) I might have missed something but...why I cannot modify the size (i.e., segments length) of the "profile" model?

Yeah the profile model is a bit restrictive. I actually considered replacing it for last release. It was created based on a specific scenario where it was not used to draw over a person segments but to act as a quick reference diagram on the side. The person would move the segments a bit to make a canonical pose as a note. I don't think this scenario is in use anymore.

3) could it be possibile in the future having a center of mass for the "profile" model too

Yes if we have the coefficients based on the existing segments. Post them and we'll build the tool.

I'm thinking at computing lumbar compression force and moment during deadlift/squat through inverse dynamics and it requires center of mass location as well as trunk angles

I started to update the format for last release, and plan to update it again to make it easier to display computed measures.

My goal would be to be able to display ratios, additions of two segments length, etc. There is a ton of these standard metrics that can be done based on anatomical landmarks and are referenced throughout the literature.

I'm still at the design phase for the framework to make these computations possible. My thinking so far is to add a concept of variables and operators and the tool would declaratively describe a resulting variable by using an algebraic expression tree. This would replace the "computed point" concept and be way more powerful.

There are also several primitives that are missing at the moment, like the possibility to get the angle between two non-intersecting segments, and get the center of a best-fit circle from a few points.

Please send how you perform the measure manually and any bibliographical references we can use. This will greatly help this design phase.

4) would it be even possible in the future to have a tool or add-on (a kind of GUI to friendly create a xml file) to build our own model by specifying body segments to use along with the relevant inertial parameters, joint angles and so on?

It has been a dream of mine but it would be a very big undertaking. For the initial skeleton structure it might be possible to use another application or a Kinovea key frame and convert/import the set of segments into a tool, but that won't help with variables and behavior. So it is going to be a manual process for the time being.

633

(7 replies, posted in General)

Yes, you can paste it under DrawingTools > Toolbars. The only difference is that there is an extra entry for the new custom tool. After closing and reopening Kinovea there should now be 3 custom tools with a human figure icon, the bottom one is the new one. The file for the custom tool itself has to be copied to DrawingTools > Custom.

634

(35 replies, posted in General)

Cool, thanks.

Yeah, I definitely want to make the distortion correction more robust. And also provide a number of presets for popular cameras, as a middle ground between not being able to measure anything and doing the manual calibration yourself.

635

(7 replies, posted in General)

I made a custom tool that matches the OpenPose's BODY_25 human model as per this documentation page. You can download it here: openpose_body25.xml.

It needs to be copied to Kinovea installation directory > DrawingTools > Custom.

Optional: in order to see it in the toolbar, you can add it by name to the player.xml file in DrawingTools > Toolbars. I also uploaded a premodified player.xml here.

I tracked the tennis video manually for a few frames with this tool to create a reference file. I uploaded the resulting KVA here.

Note: This kva is for the .mp4 video. Also, I just realized that if you try to open this kva without having copied the custom tool it will crash, so make sure you have the openpose_body25.xml copied under DrawingTools > Custom.

So this kva has the expected format for a full body pose tracked over time, that would ideally be generated by the conversion script from the OpenPose output. Basically there needs to be a keyframe with a GenericPosture drawing with a GUID (can be random), and then a Trackable drawing referencing this GUID. The trackable drawing contains timelines for each point.

Let me know of any issue if you start playing with this.

636

(7 replies, posted in General)

I tracked down the issue with the mp4 file.
The problem is when the KVA is imported in Kinovea. It's a bug in Kinovea I don't think you can work around it in the script. The mp4 file has timestamps that don't start at zero and when the track data is imported it wasn't adjusted to take that into account.

I want to be able to convert it to another type marker, in script. Just a plan...

Yes that would be great. As you may have noticed the tracking for angles and other drawings is handled differently. It's using the Trackability block at the end of the KVA and each point in each drawing has its own timeline there. The "id" field on TrackableDrawing references a drawing declared earlier in a Keyframe block.

It would be super cool to convert the OpenPose json into a tracked human figure. We can create a suitable custom tool to match the number of points output from OpenPose.

It's using 25 keypoints right?
Are all the keypoint locations always filled even when part of the body is occluded? If yes that would simplify things a lot.

637

(7 replies, posted in General)

Wow, this is awesome!

Yes kinetics computations would be nice, but we must be careful at not giving a false sense of accuracy… Any prior art showing how accurately this can be measured from video alone compared to a ground truth would be nice.

For example the acceleration is usually very approximate. We tested against the gravity ground truth by tracking a falling ball, and you have to have a very controlled environment to get correct results.

At the moment you cannot export speed and acceleration simultaneously on the same graph. I don't think having two different paths would help, you'll see the two trajectories in one graph, but still only one graph for each kinematic value. This would probably require a dedicated exporter with some options because some people will want the data sources in columns and others will want the type of data in columns.

639

(35 replies, posted in General)

getpa wrote:

detected issue nr 1: win32 Version has no support for the PSeye. (V26 win32 has no issues there)

I can't reproduce this at the moment. I can still see and open the PSEye camera on the win32 version (definitely not working on the x64 version as the driver is win32 only).

Do you not see it at all or do you see the "No camera found" placeholder image from the driver?
Can you check the log and search for "PS3Eye" to see if there is any error related to opening but not being able to connect to the camera?

640

(35 replies, posted in General)

So if you put a line somewhere it's in centimeters according to calibration but the speed measurement on the trajectory is in pixels/s?
Is it on a brand new file or re-opening a file that you already calibrated in the previous version?
Are you calibrating using a line or a grid?
What if you go to menu Tools > Linear kinematics, is the speed in px/s there too?

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.

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.

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.

644

(35 replies, posted in General)

This is Kinovea 0.8.27.
This version introduces image rotation and a host of usability improvements in drawings and measurements.


1. Player

Image rotation

The player now supports rotation of the input video by 90°, 180° or 270°. Videos that have been filmed in portrait mode on a handheld device should be automatically detected from their metadata. You can also force the rotation from the menu.

http://www.kinovea.org/screencaps/0.8.27/0827-imagerotation.png


2. Annotations

Copying and pasting objects

It is now possible to cut, copy and paste drawings around.

http://www.kinovea.org/screencaps/0.8.27/0827-clipboard.png

Once a drawing is copied, you may paste it in the same video or in another video in Kinovea, but not outside Kinovea. It will not use or interfere with the Windows clipboard.

The pasted drawing will retain the shape and style of the original and will be given a new name.

You can also paste images from the Windows clipboard directly as Image objects.

Labeling things

The text tool was somewhat lacking in usability. It is now created directly as a ready-to-use object with its name as the value and the editing mode has a similar styling than the normal rendering mode.

All text objects have a new secret arrow that you can show and adjust to create a pointing label.

http://www.kinovea.org/screencaps/0.8.27/0827-texttool.gif

As an alternative, the measurement objects like lines, markers, trajectories and circles now have the option to show their names in the mini label attached to them.

http://www.kinovea.org/screencaps/0.8.27/0827-linename.png

Styling

The style of arrows and squiggly lines was a bit broken and has been improved.

http://www.kinovea.org/screencaps/0.8.27/0827-arrows.png

It is now possible to select an existing drawing and set its style as the default style for all drawings of this type. This makes it much easier to quickly change the default style of a certain tool.

http://www.kinovea.org/screencaps/0.8.27/0827-setstyleasdefault.gif

Rectangle tool

Simple but always useful to draw attention to something, the rectangle tool is a newcomer to this version.

http://www.kinovea.org/screencaps/0.8.27/0827-rectangle.png

Custom tools debugging

Designing custom tools is not an easy task so a special rendering mode was added to show the various components of the custom tool as it is being worked on.
This is a global option and can be changed under menu Options > Preferences > Drawings > General > Custom tools debug mode.

http://www.kinovea.org/screencaps/0.8.27/0827-customtooldebug.png

Middle mouse moving

It is now possible to use the middle mouse button for panning around when zoomed or moving objects while a tool is still active. Previously you would have had to deselect the tool in order to pan or adjust an existing drawing.

3. Measurements

Precision cursors

The precision cursors have been improved and moving an existing drawing now uses the precision cursor instead of the opaque "closed hand" cursor as in previous versions.

Circle tool

The circle tool has graduated from being a descriptive object to being a measurement object. You can now display the coordinates of the circle center, its radius, diameter or circumference, all based on the current calibration.

http://www.kinovea.org/screencaps/0.8.27/0827-circle.png

The circle tool is "perspective aware" so it will display correctly (as a rotated ellipse of the correct size) when the perspective grid calibration method is used.

http://www.kinovea.org/screencaps/0.8.27/0827-perspectivecircle.gif

Archery tool redesign

The archery tool was redesigned to leverage recent changes in the custom tools framework.

http://www.kinovea.org/screencaps/0.8.27/0827-archery.png

4. Capture

Delay modes

The Mosaic compositing system introduced in version 0.8.25 was simplified and renamed "Delay mode". It now only supports the most important use cases of live delay, live slow motion and the quadrants view. The slow motion mode is now showing a countdown to the reset of the live stream for when the delay buffer will need to catch up to real time.

http://www.kinovea.org/screencaps/0.8.27/0827-delaymodes.png

Mirror

Mirroring the image is now supported in the capture screen via the menu Image > Mirror. Note that this is implemented at the display level only. It will not have any impact on frames recorded using the "Camera" mode of recording which takes frames directly from the camera and save them as-is (see Options > Preferences > Capture > Recording).

5. Feedback

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

Hi,
The fact that you mention a drop down makes me think you are using version 0.8.15, can you try in 0.8.26 and see if it works there? The way to select cameras has changed by the way, there is a new tab on the main explorer/window with the list of cameras.

Also, make sure you close their viewer before trying it in Kinovea as the link with the camera is exclusive.