Chas Tennis wrote:

Golf Ball Impact  - But for the next level of studying golf - ball impact - the Jello Effect distortion seriously distorts the ball and club interaction.  I don't know how much research has been done on the impact of the golf club head and the ball.  I don't believe that it is routinely done for golf instruction. Unfortunately, I doubt that many golf instructors or golfers will pursue this level of detail. I'm sure the details of impact are very important in determining the ball's flight .......

Regarding Golf, the folks at Quintic commercialize a dedicated rig for putting analysis. A small high speed industrial camera attached to a platform with additional flood lighting (link to software page). I have no expertise whatsoever in Golf mechanics. I don't know if it could be used for the full speed swing, they probably tried but they don't market it this way. In any event, it means there is indeed interest and research done in the club/ball impact, and not only at the "fundamental research" level.

857

(9 replies, posted in General)

1. A new drawing tool "distortion grid" allowing the user to place a grid on top of a checkerboard like pattern.
(The easy part).

http://www.kinovea.org/screencaps/0.8.x/lensdistortion/drawingdistort2.png
(I have enlarged the width of the grid lines for the screenshot.)

At 6x zoom:
http://www.kinovea.org/screencaps/0.8.x/lensdistortion/drawingdistort-zoom.png

Manually placing the grid points might prove cumbersome. Many calibration tools have a function to automatically find corners in the image, we'll see.

858

(9 replies, posted in General)

For some reason, existing 2D analysis softwares for sport do not seem to have provisions to correct or take into account lens distortion¹.
This is unfortunate because the 2D measurements assume that all points are coplanar, and lens distortion is bending that plane.

Stating the obvious:

http://www.kinovea.org/screencaps/0.8.x/lensdistortion/distorted-measures.png
Fig 1. Ridiculous measurements on a checkerboard pattern displayed on a flat LCD screen, filmed with a 170° lens (GoPro Hero 2 at 1080p).


The green line was used for calibration and has a length of 5 squares. The red lines have the same pixel length as the green line so without any other form of correction they also display the same physical length, which is obviously wrong.
The wide angle lens primarily exposes radial distortion, no amount of plane alignment or perspective plane calibration is going to fix this.

The current suggested approach is to first undistort the video in an external software and then use the undistorted video for your 2D analysis.

The problems with this approach are that:

  • You need to do it for every input video,

  • It may degrade the quality of the footage as it implies a re-encoding,

  • The software used may be more oriented towards "pleasing to the eye" results rather than mathematical rigor and may use a simplified distortion model.

It's not just fisheye lenses. Almost all cameras have some form of distortion even though it's not always readily noticeable.


Here is the plan to integrate lens distortion into Kinovea.

  1. A new drawing tool "distortion grid" allowing the user to place a grid on top of a checkerboard like pattern.

  2. A module to compute lens distortion parameters based on the distortion grids you added throughout the video.

  3. A module to save and load distortion parameters as "profiles", for reuse with all videos from that specific camera.

  4. Usage of the distortion parameters to compute undistorted coordinates and usage of these coordinates to make all measurements in Kinovea.

  5. Usage of the distortion parameters to redistort straight lines into curves for displaying purposes. Interesting for lines, angles, rectangular grids, perspective plane and coordinate systems.

  6. [Nice-to-have] Import of calibration files from third party photogrammetry software.

Note that it is not planed to undistort the images themselves in real time. Rather, I would like to keep the video untouched, but use the distortion parameters for measurements and display.

I will use this topic to post updates on the progress of this feature. It may take a while since there are plenty of other topics that are in progress, completion of the 0.8.22, bug fixing, etc. Your feedback is nonetheless highly appreciated.

----
¹: The popular commercial packages for 2D analysis (Dartfish, Quintic) do not seem to have any lens distortion related features. If you know otherwise, please post a comment.
The Centre for Sports Engineering Research at Sheffield Hallam University (UK) has developed a software called Check2D, it is the first effort to my knowledge to address the issue in the context of sport study. Background and case study (PDF).
Softwares rebuilding 3D coordinates from multiple cameras are immune to lens distortion.

I'm actually cautious with the very high framerates for now. During some experiments I have found that there seems to be "time noise", with the framerate variating around its nominal value. The higher the framerate, the higher the error. When digitizing coordinates, this is aggravated by the reduced resolution.

As the frame interval is used to compute the velocity of tracked objects, time bias on high framerate videos have a massive impact and introduce larger errors than for lower framerates. At 1000fps a 1/10px digitization error can be catastrophic for acceleration measurement, so if the frame time itself is not exact…

I haven't found much literature on the subject yet (contrary to spatial distortions), but I intend to explore the subject more when time permits. The time bias introduced by the rolling shutter is another time distortion I would like to experiment with.

Do you know how the framerate fidelity is assessed at the manufacturer level ?

Even the simplest experiments where I would film a high resolution stopwatch displaying miliseconds is not trivial to implement as these sort of stopwatches are not so common.

In addition to this, the things we see at 1000fps that we don't see at 300fps are probably for different analysis contexts. For evaluating limbs or implement movement in the context of sport technique, 300fps might be sufficient. Medical applications or "ball" analysis might benefit from higher framerates.

It is a niche market for sure. Whether the niche is large enough to sustain a business is a tough question.

Also noteworthy are the alleged specs of the upcoming GoPro Hero 4 : 4K @ 30fps, 1080p @ 120fps, 720p @ 240fps… In a consumer ranged price. I think it has a rolling shutter though, and untweakable shutter speed, so whether it's suitable depends on the final application.

Somewhat related to wide angle view, I've also noted this currently live Kickstarter project of a 360° cam in the affordable zone. I don't know if they can pull it off.

861

(2 replies, posted in Bug reports)

Exfal wrote:

I'm trying to use Kinovea (version 0.8.15) to combine pairs of videos together into a single video. Sometimes they work, but most of the time the two videos in the combined video don't stay in sync (i.e. one plays at a normal-ish speed while the other is much slower)

The synchronization mechanics has been rewritten and many issues should be fixed in 0.8.22.

862

(3 replies, posted in General)

Good thinking on the calibration by hose, it would reduce the problem to one dimension instead of three, tracking the position of the point along the curve. However I think it would be very hard to get right. Holding the calibration hose in mid-air so that it matches the trajectory. Even with the help of the actual video overlaid on top of the live view, it would be mostly guess work to position and curve it properly, with no real way of knowing the bias relative to the actual trajectory in 3D space.

The positions between two marks would also not increment linearly due to perspective, although this could be mitigated by interpolating.

Another way might be to get a depth map with a Kinect-like device. The athlete might have to wear markers reflective to IR. A way to actually calibrate that third axis would still be needed though, but maybe the Kinect already provides this information.

863

(3 replies, posted in General)

You need to have a calibration reference in the video. Add a line drawing on top of something of a known length, right click the line and go into Calibrate measure to set the physical length of the object.

The accuracy of the measure will depend on several factors.

The line of known length should be on the plane of motion otherwise there will be perspective error.

The calibration object should be as large as possible and as close to the center of the image as possible to limit error due to camera lens distortion.

It should also be as close as possible to where the trajectory will take place. One idea would be to use the leg of the kicker if static points are clearly visible on it during the kick and assuming it doesn't deform (see also reservations about rotation).

To limit this camera lens distortion avoid using fisheye type lens by all means. With regular camera you will want to move back and then zoom in, this will flatten the scene and reduce perspective errors. Use a tripod and remote control the recording to minimize camera movement between calibration and measure. This is especially important if you take several attempts with the same calibration frame.

The camera optical axis should be perpendicular to the plane of motion to avoid perspective errors. At the least you will want to make sure it's parallel to the ground, with a small spirit level for example.

I'm not too familiar with how much rotation component is there during the kick. Not all of the motion will take place on a single plane of motion. You need to keep that in mind when comparing speed of several subjects if they have different kicking style.

The next version is coming along and will have several improvements on the topic. (sub pixel tracking, changing tracker parameters, acceleration, angular speed, etc.)

864

(6 replies, posted in Français)

Bonjour,
Comment se manifeste le problème ? Il ne se passe rien en faisant glisser la camera dans le second écran de capture ? Il y a un message d'erreur ?

865

(29 replies, posted in General)

joan at kinovea dot org.

866

(8 replies, posted in Français)

Sinon plus simplement pour changer la vitesse de façon plus fine il y a les raccourcis claviers : 
- CTRL + Flèche bas et CTRL + Flèche haut = pourcent par pourcent.
- SHIFT + Flèche bas et SHIFT + Flèche haut = saute de 10% en 10%.
- Flèche bas et Flèche haut = saute de 25% en 25%.

867

(8 replies, posted in Français)

Pour les raccourcis claviers on peut les customiser depuis la version 0.8.21. Il faut aller dans Options > Préférences > Keyboard. L'onglet n'est pas traduit par contre. Recherchez la fonction (par ex: Catégorie "CaptureScreen", commande "TakeSnapshot" pour la capture d'image), cliquez dans la boîte de texte en bas à gauche, faire la combinaison de touche que l'on veut associer à la commande, puis finir par "Apply".


Yves-BF wrote:

Lorsque je crée le raccourci d'un dossier souvent je dois descendre le chercher dans plusieurs sous dossiers et c'est long...
2/ serait il possible de permettre le drag and drop comme pour le chargement d'un vidéo, c'est tellement pratique.

C'est à dire, depuis l'explorer Windows ? Oui ce serait intéressant.
Sinon une petite technique également depuis la version 0.8.21, le dossier de la vidéo en cours est automatiquement ajouté temporairement aux raccourcis. Pour l'ajouter définitivement il suffit donc de faire clic droit dessus.

Concernant le modificateur de vitesse, il est prévu un slider en échelle logarithmique avec beaucoup plus de précision dans les petits pourcentages que dans les grands. Il est déjà en place pour le délai sur le direct dans l'écran de capture.

868

(8 replies, posted in Français)

Ça existe pour le lecteur multimédia VLC donc c'est certainement possible. Par contre à l'heure actuelle je ne suis effectivement pas prêt à ouvrir un canal de communication sur l'extérieur et gérer toutes les implications en termes de sécurité. Donc ce n'est pas prévu pour l'instant.

869

(6 replies, posted in Français)

Oui ça tourne sous Windows 8 / 8.1, mais sur les versions « normales », pas sur les versions qui n'ont que l'interface metro (type tablette Microsoft Surface RT.).

870

(29 replies, posted in General)

One issue with using the keyboard during synchronization seems to be that the common controls at the bottom don't get the keyboard events. If you place the mouse over one of the two screens it should work better. I'll fix this for the next version anyway.

cmdi035 wrote:

A few minutes later I started having issues where when I open a clip and double click on it to maximize it I receive the error: "This application has requested the Runtime to terminate it in an unusual way.  Please contact the application's support team for more information".  This continued for all the videos I tried to load.

Ouch… Could you send me the log files please, there should be more detailed info on the cause of the problem.