Published April 3, 2026
| Version v0.10.42
Software
Open
Pose2Sim - Markerless kinematics, from OpenPose to OpenSim
Authors/Creators
Description
Pose2Sim v0.10.42
- Filter out ghost detections (tripods, for example) by adding
average_likelihood_threshold_poseparameter - Parallelized kinematics across persons. Also attempted to parallelize person association and triangulation, but it was needlessly complex and not usually faster.
- Automatic video discovery: supports multiple video formats in the same session
- Ensured backward compatibility by assigning default value in all configuration parameters
- Fixed "set_always_on_top" for manual calibration, which now uses PySide6 instead of PyQt5
- Fixed unresponsive Ctrl+C interrupt in pose estimation (with LLM help)
Note:
Python only allows for one thread at a time: it uses a GIL (Global Interpreter Lock). So in theory, it is not possible to parallelize anything. There are two workarounds:
- Multiprocessing: Creating independent processes instead of threads. A thread is a lightweight worker inside the main program, while a process is a fully independent Python instance--which takes time to initialize. It is valuable for long tasks (one process per person for inverse kinematics, for example), but not at all for smaller ones (one process per triangulated frame).
- Multithreading: Some C++ libraries were created with multithreading in mind and have bindings for Python, such as numpy, opencv, onnx runtime, file writing. In such cases, the Python GIL is bypassed, which is why pose estimation becomes so much faster. However, some libraries, even written in C++, do not support it (for example, OpenSim). And anything purely python, such as loops, list operations, json parsing, can only run one thread at a time. For person association and triangulation, the cost of the thread overhead is similar to the gains or parallelization, so it is not worth parallelizing.
For future reference:
- Further speeding up person association, triangulation (and even pose estimation) would primarily be done by saving the pose estimation results as a single csv or h5 file instead of multiple per-frame json files, but that's another consideration and it would require some additional work and testing.
- Another opportunity to speed up triangulation is to use the same association logic as in the multi-person mode of personAssociation.
- In fact, we could get rid of the single person mode altogether. The multi-person mode should be enhanced to order the triangulated persons with the
person_ordering_methodparameter (by greatest displacement, least displacement, most successfully triangulated frames, least excluded cameras, or on click, similarly to what's done in Sports2D), and only a subset of person would be selected withnb_persons_to_detect(all, 1, 2...).
Full Changelog: https://github.com/perfanalytics/pose2sim/compare/v0.10.41...v0.10.42
Notes
Files
perfanalytics/pose2sim-v0.10.42.zip
Files
(48.2 MB)
| Name | Size | Download all |
|---|---|---|
|
md5:386ceeabec4c7687cab4c17bb7834f70
|
48.2 MB | Preview Download |
Additional details
Related works
- Is supplement to
- Software: https://github.com/perfanalytics/pose2sim/tree/v0.10.42 (URL)
Software
- Repository URL
- https://github.com/perfanalytics/pose2sim