Recent Releases of Pose2Sim

Pose2Sim - Fixed GCV filtering + Expired OpenMMLab certificate

  • Fixed gcv filtering (careful if series too short: noise can be considered as signal -> no filtering. See this conversation: https://stackoverflow.com/a/79740481/12196632, and this issue: https://github.com/scipy/scipy/issues/23472
  • Temporarily ignore SSL certificate verification to handle OpenMMLab's expired certificate
  • Handle RTMO if pose_model is not 'body'

Full Changelog: https://github.com/perfanalytics/pose2sim/compare/v0.10.33...v0.10.34

Scientific Software - Peer-reviewed - Python
Published by davidpagnon 9 months ago

Pose2Sim - More filtering options, fixed vicon calibration, etc

Filtering

  • Added optional Hampel filter for outlier rejection, to be run befur further filtering methods. Rejects outliers that are outside of a 95% confidence interal from the median in a sliding window of size 7.

  • Added GCV spline filter. Automatically determines optimal parameters for each point, which is good when some move faster than others (e.g., fingers vs hips). User can make it biased towards more smoothing (>1) or more fidelity to data (<1) by adjusting the smoothingfactor. Might severely under or over-smooth due to numerical precision issues, so use with caution. I could not figure out a way to make it more robust, even after normalizing time and/or the observed y values. Feel free to intervene! Acts as a Butterworth filter if cutoff_frequency is set to an integer instead of 'auto'.

  • Fixed Kalman filter. Simplified version, the user says how much more they trust triangulation results (measurements), than the assumption of constant acceleration (process)

  • The available filters are now: Butterworth, Kalman, GCV-spline, LOESS, Median, Gaussian, Butterworth on speed

Vicon calibration

Fix for Vicon calibration conversion by @hariouat: excluding ISDV=0 (optical cameras)

Others

Fixed head marker positions in markersets

Full Changelog: https://github.com/perfanalytics/pose2sim/compare/v0.10.31...v0.10.33

Scientific Software - Peer-reviewed - Python
Published by davidpagnon 10 months ago

Pose2Sim - Correct image ratio + minor transparent change

  • Displayed image is now in the correct ratio and as large as the screen allows
  • Added "sectionstokeep" argument (all, largest, first, last)

Full Changelog: https://github.com/perfanalytics/pose2sim/compare/v0.10.28...v0.10.32

Scientific Software - Peer-reviewed - Python
Published by davidpagnon 10 months ago

Pose2Sim - More small improvements

  • More flexible method for finding the best valid chunk of data to triangulate (or select, in the case of sports2d)
  • Fixed center of mass and geometries for OpenSim head body
  • Small clarifications on Readme

Full Changelog: https://github.com/perfanalytics/pose2sim/compare/v0.10.27...v0.10.28

Scientific Software - Peer-reviewed - Python
Published by davidpagnon 10 months ago

Pose2Sim - Various minor improvements

  • Section on how to run faster inference in Readme
  • More flexible kinematic models
  • Handling different regional decimal separators (see this issue: https://github.com/perfanalytics/pose2sim/issues/191#issuecomment-3042201033)

Full Changelog: https://github.com/perfanalytics/pose2sim/compare/v0.10.26...v0.10.27

Scientific Software - Peer-reviewed - Python
Published by davidpagnon 11 months ago

Pose2Sim - simple opensim model, better anklee marker coordinates, etc

usesimplemodel:

Added use_simple_model configuration argument and removed usecontactmuscles. Makes IK 10+ times faster, but no muscles or constraints (eg stiff spine and shoulders, no patella)

Changed the two base models: - Model_Pose2Sim_muscles_flex.osim (default) contains muscles, a flexible spine, and a patella, Same model as in the previous releases. - Model_Pose2Sim_simple.osim does not have any muscles and constraints (its spine is a single stiff bone), but inverse kinematics is at least 10 times faster. Set use_simple_model to True if you want to use it. Both have contact spheres on the feet.

To remove the constraints in the Model_Pose2Sim_simple.osim: - Vertebrae: I merged all the lumbar vertebrae and torso into a single body, removed the joints that attached them together, and removed all constraints - Patella: Same idea, I removed it, removed the associated joint, and the constraints. And since muscles were attached to it, I just removed them all.

Optimized ankle marker position

Under @gillesdufour's suggestion, improved ankle marker coordinates. The Y coordinate was changed from -0.3768 to -0.40805.

This was done empirically and could probably be done in a more rigorous way by optimizing marker positions based on various datasets. But I think this is pretty good already, and I don't have this kind of time right now.

I also propagated the fix on the other markersets.

Other edits

  • Fishy results in single-person mode when the synchronization GUI is on. Now using sort_people_sports2d in poseEstimation(), in both single and multi-person modes. It fixes it and makes virtually no difference in terms of computing time.
  • New presentation video on Readme.md
  • Triangulation now works even if there is a left/right side and no opposite right/left side
  • Small fix on trcgaitevents.py and trcZupto_Yup.py Utilities scripts
  • Small fix on continuous integration to handle python 3.12

What's Changed

  • Modification of Markers_Halpe26.xml. Initialy Right and Left Ankle ma… by @gillesdusfour in https://github.com/perfanalytics/pose2sim/pull/189

New Contributors

  • @gillesdusfour made their first contribution in https://github.com/perfanalytics/pose2sim/pull/189

Full Changelog: https://github.com/perfanalytics/pose2sim/compare/v0.10.25...v0.10.26

Scientific Software - Peer-reviewed - Python
Published by davidpagnon 11 months ago

Pose2Sim - v0.10.24

Updated manual calibration tool: - Added an option to calibrate with a vertical checkerboard - Reproject hidden points too - Save images with reprojected points - Confirmation window after each labeled image - Fixed nan when click out of image - Fixed bug when cancellation of points alternating between hidden and visible - NOT FIXED: You can still click on the image after the confirmation window is displayed -> leads to errors

Fixed edge cases: - Fixed trimmed_mean function failure (when computing height and scaling) - Fixed frame range issues in pose estimation, triangulation, filtering, marker augmentation - Fandled cases when no videos found for synchronization GUI and fps determination

Accepted pull requests for some new functions.

What's Changed

  • Add computeleglength function to common.py by @JoshCarter97 in https://github.com/perfanalytics/pose2sim/pull/182
  • CoM calculation within bodykinfrommot_osim by @JoshCarter97 in https://github.com/perfanalytics/pose2sim/pull/184

New Contributors

  • @JoshCarter97 made their first contribution in https://github.com/perfanalytics/pose2sim/pull/182

Full Changelog: https://github.com/perfanalytics/pose2sim/compare/v0.10.22...v0.10.24

Scientific Software - Peer-reviewed - Python
Published by davidpagnon about 1 year ago

Pose2Sim - automatic frame range selection

  • Automatic frame range selection to where triangulation error is low enough (necessary for scaling when a person enters or exits the scene)
  • Small fixes in the faceblurring.py script: changed parameters to inputvid and input_dir, and fix an error I introduced
  • calibration: axes of 3d helper plot with Z up

Full Changelog: https://github.com/perfanalytics/pose2sim/compare/v0.10.21...v0.10.22

Scientific Software - Peer-reviewed - Python
Published by davidpagnon about 1 year ago

Pose2Sim - face blurring, updated marker augmentation, ...

  • face_blurring.py Utility script
  • Better management of frame_range: Reads from config instead of from file from previous stage (you can choose to filter a trc only from frame 10 to 80, even if it goes from 0 to 100)
  • Marker augmentation:
    • Added feet_on_floor parameter to solve vertical offset issues. Should be on if ground reaction forces need to be estimated
    • Removed tensorflow dependency by converting tf models to onnx
    • Removed dependency on utils scripts
  • Calibration file is the last created instead of the first by alphabetical order
  • Fixed continuous integration
  • New release version automatically created from tag name (not constrained by pyproject.toml)

TODO: - Automatically trim trc results to the frames where triangulation errors are below a threshold. - Triangulation: output a dictionary with errors for each point (px and meters), excluded cameras, number of interpolated frames, Mean reprojection errors, how often each camera is excluded

What's Changed

  • Face blurring by @hunminkim98 in https://github.com/perfanalytics/pose2sim/pull/176

Full Changelog: https://github.com/perfanalytics/pose2sim/compare/v0.10.20...0.10.21

Scientific Software - Peer-reviewed - Python
Published by davidpagnon about 1 year ago

Pose2Sim - v0.10.20

  • Scaling: slightly more robust
  • Synchronization: slightly faster GUI
  • Better angle unwrapping, direction argument for the bodykinfrommot_osim Utility script
  • Fixed continuous integration tests
  • fixed pyproject file to comply with latest PEP 639 rules

What's Changed

  • Better performace of GUI for synchronization using cache by @hunminkim98 in https://github.com/perfanalytics/pose2sim/pull/173
  • updated body kinematics function by @jc876 in https://github.com/perfanalytics/pose2sim/pull/174

New Contributors

  • @jc876 made their first contribution in https://github.com/perfanalytics/pose2sim/pull/174

Full Changelog: https://github.com/perfanalytics/pose2sim/compare/v0.10.17...v0.10.20

Scientific Software - Peer-reviewed - Python
Published by davidpagnon about 1 year ago

Pose2Sim - v0.10.17

Minor improvements: - Synchronizationgui = true by default - Improved bestcoordsformeasurements - Package version assigned dynamically from setup.cfg - Deleted setup.cfg and setup.py to switch to pyproject.toml - CI of Calibration UI failed because of flake 8 new rules: removed ununsed globa scat, fig3d, ax3d

Full Changelog: https://github.com/perfanalytics/pose2sim/compare/v0.10.16...v0.10.17

Scientific Software - Peer-reviewed - Python
Published by davidpagnon about 1 year ago

Pose2Sim - Entry points: Utilities scripts can be run from anywhere

Entry points: - Utilities scripts can be run from anywhere: no need to be in the Utilities folder anymore. - Similarly, tests can be run with tests_pose2sim to make sure everythin still works after editing the code.

Minor other fixes.

What's Changed

  • Removed duplicate sortpeoplesports2d function by @saifkhichi96 in https://github.com/perfanalytics/pose2sim/pull/168
  • correction sorted list in calibraiton by @ANaaim in https://github.com/perfanalytics/pose2sim/pull/170

New Contributors

  • @saifkhichi96 made their first contribution in https://github.com/perfanalytics/pose2sim/pull/168

Full Changelog: https://github.com/perfanalytics/pose2sim/compare/v0.10.15...v0.10.16

Scientific Software - Peer-reviewed - Python
Published by davidpagnon about 1 year ago

Pose2Sim - Minor and transparent new release for Sports2D dependency

"interpolatezerosnans" in common.py rather than in synchronization.py and triangulation.py

What's Changed

  • "interpolatezerosnans" in commons rather than in synchro and triang by @davidpagnon in https://github.com/perfanalytics/pose2sim/pull/167

Full Changelog: https://github.com/perfanalytics/pose2sim/compare/v0.10.14...v0.10.15

Scientific Software - Peer-reviewed - Python
Published by davidpagnon about 1 year ago

Pose2Sim - Better synchronization GUI & better Pose2Sim.py structure

Better Pose2Sim.py structure by @AurelienCoppee

Synchronizationgui by @hunminkim98: This parameter in Config.toml to let the user determine synchronization parameters: - target person id - keypointstoconsider - approxtimemaxspeed - timerangearoundmaxspeed

Edits by @davidpagnon: - The person selected was not passed to the synchronization algorithm, which kind of defeats the purpose :D Fixed - Keypoints are now retrieved from the configuration by default instead of set to none at the start - Added Neck, Head, Nose to keypoint GUI - Handles all, right, left keypoints to consider - Caught various potential errors the user could face (no valid values from keypoint IDs, no selected keypoints in the GUI, ...) - Made the textboxes not greyed out, as the user could think they are not clickable, set OK button in bold font, and few other color details - set synchronization_gui to true in multiperson cases

One last thing that would make it an even better user experience, although not mandatory, would be to to let the user go from one box to another with tab, and confirm with Enter.

Clamped right ankle angle.

What's Changed

  • New pipeline by @AurelienCoppee in https://github.com/perfanalytics/pose2sim/pull/164
  • Pull Request for Synchronization UI by @hunminkim98 in https://github.com/perfanalytics/pose2sim/pull/163

Full Changelog: https://github.com/perfanalytics/pose2sim/compare/v0.10.13...v0.10.14

Scientific Software - Peer-reviewed - Python
Published by davidpagnon about 1 year ago

Pose2Sim - Various improvements in kinematics

  • rolled back to former joint limits
  • fixed head and lumbar vertebraes scaling
  • fixed global mass given once and propagating to other people
  • let user use non rtmlib models in kinematics

Full Changelog: https://github.com/perfanalytics/pose2sim/compare/v0.10.12...v0.10.13

Scientific Software - Peer-reviewed - Python
Published by davidpagnon about 1 year ago

Pose2Sim - Clamped arm DOFs for Sports2D IK

Clamped arm DOFs for Sports2D IK

Full Changelog: https://github.com/perfanalytics/pose2sim/compare/v0.10.11...v0.10.12

Scientific Software - Peer-reviewed - Python
Published by davidpagnon about 1 year ago

Pose2Sim - Various improvements

Various small fixes - Fixed model with muscles and contact spheres - Handle approxtimemaxspeed specified once for all videos - Fixed issue with extrinsic calibration with board - Fixed framerange display on progress bar - Fixed body25 markers - Set larger RoMs for wrist - Removed qt5Agg matplotlib backend

What's Changed

  • Handle approxtimemaxspeed specified once by @AurelienCoppee in https://github.com/perfanalytics/pose2sim/pull/160

Full Changelog: https://github.com/perfanalytics/pose2sim/compare/v0.10.9...v0.10.10

Scientific Software - Peer-reviewed - Python
Published by davidpagnon over 1 year ago

Pose2Sim - Kinematics with contact spheres and muscles by default

  • Kinematics with contact spheres and muscles by default
  • Separated markerset from model files
  • fixed coco_133 skeleton

What's Changed

  • remove "Mouth21" by @hunminkim98 in https://github.com/perfanalytics/pose2sim/pull/159

Full Changelog: https://github.com/perfanalytics/pose2sim/compare/v0.10.8...v0.10.9

Scientific Software - Peer-reviewed - Python
Published by davidpagnon over 1 year ago

Pose2Sim - DeepSort tracking and better skeleton visualization

  • Skeleton visualization: A bounding-box color per person. Left and right limbs in a different color to better spot swaps. Keypoint color based on confidence.
  • Support DeepSort tracking across frames
  • Video files processed in alphabetical order on Unix machines

Full Changelog: https://github.com/perfanalytics/pose2sim/compare/v0.10.7...v0.10.8

I can't believe how much I struggled to implement it. 😅 Long story short, it works on bounding boxes rather than on keypoints, so I first tried to subclass the rtmlib PoseTracker to extract the bounding boxes obtained from the person detector. But everything got messed up when I tested it when with RTMO, which is single-stage and does not use any bounding boxes. Moreover, the option "det_frequency" makes everything more complicated, because bounding boxes are then not searched for all frames. So I recomputed bounding boxes from keypoints, tricked the deepsort tracker into returning the original bounding box indices (rather than the ones after kalman filtering) as well as the person indices, and tried to make it correctly find the right correspondence.

And then my brain was fried and I could not manage to make sense of the logic between so many indices. This took me way more time than it should have. Anyway, it is now properly implemented, this is one thing less to worry about!

One word of cautions: In the vast majority of cases (non crowded scenes), I would use the automatic Sports2D tracking algorithm. DeepSort can be tricky to parametrize, and you need to understand what each of the parameters mean to if you want best results. Otherwise, you may very well end up with worse results. I tried to set the best possible default parameters, but it won't work in every case. Results are faster and better with {'embeddergpu': True, embedder':'torchreid'}, which uses the GPU and runs osnetainx10 by default. Note that it requires pip install torch torchvision torchreid gdown tensorboard. If you feel like there default parameters could be improved, feel absolutely free to let me know!

Scientific Software - Peer-reviewed - Python
Published by davidpagnon over 1 year ago

Pose2Sim - Any detection and pose model can be used + more

  • install custom rtmlib version (see https://github.com/Tau-J/rtmlib/pull/45) with:
    • a new more general Custom class
    • PoseTracker working with single-stage models (without detection)
    • working NMS for RTMO
    • fixed wholebody solution in balanced mode (see https://github.com/perfanalytics/pose2sim/issues/143#issuecomment-2479075518)
  • More versatile "mode" argument in pose2sim: Any person detection and/or pose estimation model can now be used
  • Natively supporting Hand, Face, Animal, whole body with face and hand models (up to filtering 3D results, no inverse kinematics implemented yet)
  • Optional manual selection of backend and device
  • Unified most sports2d and pose2sim functions
  • Default names for Halpe26, coco133, coco17 are now: bodywithfeet, wholebody, body
  • Automatic person height estimation
  • Better scaling with bestcoordsfor_measurements function
  • Kinematics works on Coco17 model
  • Released pronation (-90° instead of 0°)
  • Removed Lai-Uhlrich shoulder definition in LSTM model
  • Handled case when center hip keypoint is missing
  • Automatic FPS detection rounded to integer
  • custom logging possible
  • Improved the trcgaitevents script

What's Changed

  • Calculate height for marker augmenatation by @hunminkim98 in https://github.com/perfanalytics/pose2sim/pull/152

Full Changelog: https://github.com/perfanalytics/pose2sim/compare/v0.10.6...v0.10.7

Scientific Software - Peer-reviewed - Python
Published by davidpagnon over 1 year ago

Pose2Sim - Better kinematics + various fixes

Scaling and IK: - Support wrist motion on LSTM model - Wrist flexion clamped to 110° instead of 70° - Scaling on straight postures in priority - IK and scaling IKCoordinateTask weights of 0.1 instead of 0.5 for L5S1Flex_Ext

Calibration: - fixed calibration if board and show=false - removed CALIBFIXPRINCIPAL_POINT + convert objp to mm to avoid scale mismatch with intrinsics)

Pose estimation: - ROCM (AMD GPU) support

What's Changed

  • LSTM with wrist motion by @hunminkim98 in https://github.com/perfanalytics/pose2sim/pull/148
  • Optimized Setup Files(scaling+IK) by @hunminkim98 in https://github.com/perfanalytics/pose2sim/pull/151

Full Changelog: https://github.com/perfanalytics/pose2sim/compare/v0.10.4...v0.10.6

Scientific Software - Peer-reviewed - Python
Published by davidpagnon over 1 year ago

Pose2Sim - multi_person synchro + minor fixes

  • Synchronization in multi-person mode @hunminkim1998
  • Supports running on image sequences instead of videos
  • Added missing Geometry file for LSTM model
  • Fixed frame_range when different frames for each camera

What's Changed

  • Modify the frame range from max to min. by @hunminkim98 in https://github.com/perfanalytics/pose2sim/pull/138
  • Synchronization for multi-person by @hunminkim98 in https://github.com/perfanalytics/pose2sim/pull/135

Full Changelog: https://github.com/perfanalytics/pose2sim/compare/v0.10.3...v0.10.4

Scientific Software - Peer-reviewed - Python
Published by davidpagnon over 1 year ago

Pose2Sim - Attempt to fix caliscope support

Full Changelog: https://github.com/perfanalytics/pose2sim/compare/v0.10.2...v0.10.3

Scientific Software - Peer-reviewed - Python
Published by davidpagnon over 1 year ago

Pose2Sim - Fixed CalisCope calib support + Fixed kinematics() when no marker augmentation

  • Fixed CalisCope calib support
  • Fixed kinematics() when no marker augmentation

What's Changed

  • Site test back to main branch by @davidpagnon in https://github.com/perfanalytics/pose2sim/pull/134

Full Changelog: https://github.com/perfanalytics/pose2sim/compare/v0.10.1...v0.10.2

Scientific Software - Peer-reviewed - Python
Published by davidpagnon over 1 year ago

Pose2Sim - Support caliscope calibration + 2D sorting for future multi-person synchro

  1. Native support of Caliscope calibration
  2. Sort people's IDs at the 2D stage, to prepare for future multi-person synchronization

Full Changelog: https://github.com/perfanalytics/pose2sim/compare/v0.10.0...v0.10.1

Scientific Software - Peer-reviewed - Python
Published by davidpagnon over 1 year ago

Pose2Sim - Fully automatic OpenSim kinematics

  • Scaling:
    • No need for a static trial: scaling is done on the triangulated coordinates (trc file)
    • Remove 10% fastest frames (potential outliers)
    • Remove frames where coordinate speed is null (person probably out of frame)
    • Remove 40% most extreme calculated segment values (potential outliers)
    • For each segment, scale on the mean of the remaining segment values.
  • IK: Just ran IK the same way as with the GUI

  • Removed the logging.error written when an exception is caught: I wanted to make sure that tests don't pass when there is an issue.

  • Changed "opensim" to "kinematics", as it is more general and speaks more to non-biomechanics users.

  • Saved the OpenSim logs, that were otherwise lost.

  • Removed the static trial, opensimbinpath Config parameters as they are not needed.

  • Also removed loadtrcname = 'filtered' (takes the filtered file if exists), and removed the IKtimeRange parameter (use project/framerange instead)

  • Removed the triangulation/reorder_trc option, which is not needed since we do not need to match people with static trials anymore (no more static trials)

Contributor: @peterlololsss --> Thank you!

Scientific Software - Peer-reviewed - Python
Published by davidpagnon over 1 year ago

Pose2Sim - Fixed the (non-)fixed multi-tabbed plots

Full Changelog: https://github.com/perfanalytics/pose2sim/compare/v0.9.11...v0.9.12

Scientific Software - Peer-reviewed - Python
Published by davidpagnon over 1 year ago

Pose2Sim - Various fixes (see details below)

  • Removed tracking option in pose estimation, as it is performed at the triangulation stage
  • Synchronization done on person with highest mean confidence (thanks @hunminkim98)
  • 'linear' instead of 'cubic' interpolation by default
  • Fixed tests so that synchronization is not run in multi-person Demo data
  • Fixed multi-tab plots crashing

Full Changelog: https://github.com/perfanalytics/pose2sim/compare/v0.9.10...v0.9.11

Scientific Software - Peer-reviewed - Python
Published by davidpagnon over 1 year ago

Pose2Sim - No torch dependency if runs on CPU

Full Changelog: https://github.com/perfanalytics/pose2sim/compare/v0.9.9...v0.9.10

Scientific Software - Peer-reviewed - Python
Published by davidpagnon almost 2 years ago

Pose2Sim - v0.9.8

  • Include batch demo folders
  • fixed COCO_133 in skeletons.py
  • minor edits on escape sequences in docstrings

Full Changelog: https://github.com/perfanalytics/pose2sim/compare/v0.9.7...v0.9.8

Scientific Software - Peer-reviewed - Python
Published by davidpagnon almost 2 years ago

Pose2Sim - runAll and various fixes

  • create runAll() function
  • Fixed calibration in multi-person demonstration
  • fixed batch processing
  • option to skip pose estimation if already run
  • updated Readme
  • updated tests

Full Changelog: https://github.com/perfanalytics/pose2sim/compare/v0.9.5...v0.9.6

Scientific Software - Peer-reviewed - Python
Published by davidpagnon almost 2 years ago

Pose2Sim - v0.9.5

Fix for when no person association or synchronization is run

Full Changelog: https://github.com/perfanalytics/pose2sim/compare/v0.9.4...v0.9.5

Scientific Software - Peer-reviewed - Python
Published by davidpagnon almost 2 years ago

Pose2Sim - integration of pose estimation

Edits from @hunminkim98's awesome work at integrating pose estimation into Pose2Sim with RTMLib. Most of the changes in syntax are not necessarily better, it is mostly for the code to be more consistent with the rest of the library. Thank you again for your fantastic work!

General: - Automatically detects whether a valid CUDA install is available. If so, use the GPU with the ONNXRuntime backend. Otherwise, use the CPU with the OpenVINO backend - The tensorflow version used for marker augmentation was incompatible with the cuda torch installation for pose estimation: edited code and models for it to work with the latest tf version. - Added logging information to pose estimation - Readme.md: provided an installation procedure for CUDA (took me a while to find something simple and robust) - Readme.md: added information about PoseEstimation with RTMLib - added poseEstimation to tests.py - created videos for the multi-person case (used to only have json, no video), and reorganized Demo folders. Had to recreate calibration file as well

Json files: - the json files only saved one person, I made it save all the detected ones - tracking was not taken into account by rtmlib, which caused issues in synchronization: fixed, waiting for merge - took the savetoopenpose function out from the main function - minified the json files (they take less space when all spaces are removed)

Detection results: - Compared the triangulated locations of RTMpose keypoints to the ones of OpenPose to potentially edit model marker locations on OpenSim. Did not seem to need it.

Others in Config.toml: - removed the "toopenpose" option, which is not needed - added the flag: savevideo = 'toimages' # 'tovideo' or 'toimages' or ['tovideo', 'toimages'] - changed the way framerange was handled (made me change synchronization in depth, as well as personAssociation and triangulation) - added the flag: timerangearoundmaxspeed in synchronization - automatically detect framerate from video, or set to 60 fps if we work from images (or give a value) - framerange -> timerange - moved height and weight to project (only read for markerAugmentation, and in the future for automatic scaling) - removed reordertrc from triangulation and Config -> call it for markerAugmentation instead

Others: - Provided an installation procedure for OpenSim (for the future) and made continuous installation check its install (a bit harder since it cannot be installed via pip) - scaling from motion instead of static pose (will have to study whether it's as good or not) - added logging to synchronization - Struggled quite a bit with continuous integration

What's Changed

  • Pose estimation test by @davidpagnon in https://github.com/perfanalytics/pose2sim/pull/116

Full Changelog: https://github.com/perfanalytics/pose2sim/compare/v0.8.4...v0.9.0 Full Changelog: https://github.com/perfanalytics/pose2sim/compare/v0.9.0...v0.9.1 Full Changelog: https://github.com/perfanalytics/pose2sim/compare/v0.9.1...v0.9.4

Scientific Software - Peer-reviewed - Python
Published by davidpagnon almost 2 years ago

Pose2Sim - fixed all nan slice issue + improved marker augmentation

Full Changelog: https://github.com/perfanalytics/pose2sim/compare/v0.8.3...v0.8.4

Scientific Software - Peer-reviewed - Python
Published by davidpagnon almost 2 years ago

Pose2Sim - Minor improvements

Full Changelog: https://github.com/perfanalytics/pose2sim/compare/v0.8.1...v0.8.3

Scientific Software - Peer-reviewed - Python
Published by davidpagnon about 2 years ago

Pose2Sim - v0.8.1

What's Changed

  • Save to c3d and convert trc to c3d by @hunminkim98 in https://github.com/perfanalytics/pose2sim/pull/92
  • Small fixes after last release (eg not all demo data were downloaded upon install)

Full Changelog: https://github.com/perfanalytics/pose2sim/compare/v0.8.0...v0.8.1

Scientific Software - Peer-reviewed - Python
Published by davidpagnon about 2 years ago

Pose2Sim - synchronization and single-trial mode

New automatic post-synchronization tool: - Tried cross-corr for sum of keypoint 2D speeds - Tried cross-corr for sum of keypoint vertical speeds - Tried cross-corr for sum of keypoint vertical positions - Tried idem with sum of all keypoints vs selected keypoints - Tried idem with sum of weighted selected points (L190 synchronizecamsdraft deleted) - Tried idem with only right/left side - Tried idem with frames around a specified time - Tried cross-corr for each kpt, select top N highest correlations, take median offset (L244 synchronizecamsdraft deleted) - Tried cross-corr for each kpt, weighted by correlation - Tried threshold on vmax thresh - Tried correlation threshold -> Best results (accuracy, simplicity, speed): sum of vertical speeds. Default: all keypoints, all frames. User can also choose specific keypoints at specific instants.

Single-trial mode: - Batch mode still available - Also works with a simpler folder structure, filled with a Config.toml file, a calibration folder, and a pose folder

What's Changed

  • Process non filtered data if there is no data filtered in folder by @ANaaim in https://github.com/perfanalytics/pose2sim/pull/86
  • objp should not be objpnotused by @ANaaim in https://github.com/perfanalytics/pose2sim/pull/91
  • Synchronization & single-trial mode by @davidpagnon in https://github.com/perfanalytics/pose2sim/pull/94

Full Changelog: https://github.com/perfanalytics/pose2sim/compare/v0.7.2...v0.8.0

Scientific Software - Peer-reviewed - Python
Published by davidpagnon about 2 years ago

Pose2Sim - Much faster and more robust multi-person analysis

Calculation of the distance between epipolar lines (simple dot product, so quite fast) -> affinity matrix -> association across views (inspired by the easymocap approach) Association across frames is done in triangulation.

Used to be based on a very computationally ineffective combinatory approach.

For a very challenging scene: 1h30 minutes -> 2 minutes. As fast as easymocap, and more robust on my test scenes.

What's Changed

  • Change of the testing of Calib and calib to work properly by @ANaaim in https://github.com/perfanalytics/pose2sim/pull/78
  • Synchronize multi cams based on keypoints speed. by @hunminkim98 in https://github.com/perfanalytics/pose2sim/pull/76
  • Faster and more robust multi-person analysis by @davidpagnon in https://github.com/perfanalytics/pose2sim/pull/85

Full Changelog: https://github.com/perfanalytics/pose2sim/compare/v0.7.1...v0.7.2

Scientific Software - Peer-reviewed - Python
Published by davidpagnon about 2 years ago

Pose2Sim - Alternative to Pose2Sim multi-person

Slightly improve multi-person Converter to and from EasyMocap if too slow

Full Changelog: https://github.com/perfanalytics/pose2sim/compare/v0.7.0...v0.7.1

Scientific Software - Peer-reviewed - Python
Published by davidpagnon about 2 years ago

Pose2Sim - Multi-person analysis

Sort people across view, and then across frames.

Set [project] multiperson = true for each trial that contains multiple persons. Set [triangulation] reordertrc = true if you need to run OpenSim and match the generated .trc files with the static trials. Make sure that the order of [markerAugmentation] participantheight and participantmass matches the order of the static trials.

Scientific Software - Peer-reviewed - Python
Published by davidpagnon over 2 years ago

Pose2Sim - Minor fixes

  • case: DEMO -> Demo
  • fixed a foolproof maneuver that led to some crashes

Scientific Software - Peer-reviewed - Python
Published by davidpagnon over 2 years ago

Pose2Sim - Marker augmentation and Blender visualizer

Marker augmentation and Blender visualizer

What's Changed

  • Correction in list comprehension to allow the second term to be consider by @ANaaim in https://github.com/perfanalytics/pose2sim/pull/63

Full Changelog: https://github.com/perfanalytics/pose2sim/compare/v0.5.7...v0.6.0

Scientific Software - Peer-reviewed - Python
Published by davidpagnon over 2 years ago

Pose2Sim - Demo packages automatically downloaded again

typo in setup.cfg

Scientific Software - Peer-reviewed - Python
Published by davidpagnon over 2 years ago

Pose2Sim - Marker augmentation

Original code from OpenCap, by Antoine Falisse Adapted by HunMin Kim Reviewed by David Pagnon

Scientific Software - Peer-reviewed - Python
Published by davidpagnon over 2 years ago

Pose2Sim - Foolproof until limb swapping solved

Scientific Software - Peer-reviewed - Python
Published by davidpagnon over 2 years ago

Pose2Sim - Limb swapping

Temporary release: it runs fine (especially limb swapping), but Still unaccurate reprojection when undistort_points = true

Scientific Software - Peer-reviewed - Python
Published by davidpagnon over 2 years ago

Pose2Sim - Limb swapping handled

can be deactivated in Config.toml since it is a bit slower and not necessarily needed

Scientific Software - Peer-reviewed - Python
Published by davidpagnon over 2 years ago

Pose2Sim - Retrieve accidentally removed opensim setup files

Scientific Software - Peer-reviewed - Python
Published by davidpagnon over 2 years ago

Pose2Sim - Automatic batch processing

Scientific Software - Peer-reviewed - Python
Published by davidpagnon over 2 years ago

Pose2Sim - Fix non-video camera filtering in Vicon calibration

Scientific Software - Peer-reviewed - Python
Published by davidpagnon over 2 years ago

Pose2Sim - Several minor corrections by @Anaaim

  • extrinsics with checkerboard: mm instead of m
  • name of camera in Calib.toml instead of its number
  • remove points and lines when pointing corners on checkerboard

Scientific Software - Peer-reviewed - Python
Published by davidpagnon over 2 years ago

Pose2Sim - only display the outer corners in findCorners

Scientific Software - Peer-reviewed - Python
Published by davidpagnon over 2 years ago

Pose2Sim - Fixed error in calibration @ANaaim

Scientific Software - Peer-reviewed - Python
Published by davidpagnon over 2 years ago

Pose2Sim - Include empty folders in Empty_project

Scientific Software - Peer-reviewed - Python
Published by davidpagnon over 2 years ago

Pose2Sim - Define custom models in Config.toml rather than in skeletons.py

Also catch a few errors and gave them a clearer message

Scientific Software - Peer-reviewed - Python
Published by davidpagnon over 2 years ago

Pose2Sim - upgrade pandas and no support for python<3.8

changed line_terminator to lineterminator

Scientific Software - Peer-reviewed - Python
Published by davidpagnon over 2 years ago

Pose2Sim - added intrinsic error feedback & solved bug when window closed

Scientific Software - Peer-reviewed - Python
Published by davidpagnon over 2 years ago

Pose2Sim - batch processing, more calibration conversions

Scientific Software - Peer-reviewed - Python
Published by davidpagnon over 2 years ago

Pose2Sim - solved buggy calibration when 'on_close' called

Scientific Software - Peer-reviewed - Python
Published by davidpagnon over 2 years ago

Pose2Sim - Readdy for upload on conda-forge

Scientific Software - Peer-reviewed - Python
Published by davidpagnon over 2 years ago

Pose2Sim - New calibration tool

Hopefully solving the main stumbling block for users

Scientific Software - Peer-reviewed - Python
Published by davidpagnon almost 3 years ago

Pose2Sim - Implemented Kalman filter

Scientific Software - Peer-reviewed - Python
Published by davidpagnon almost 3 years ago

Pose2Sim - Supports Vicon calibration (experimental)

Scientific Software - Peer-reviewed - Python
Published by davidpagnon almost 3 years ago

Pose2Sim - Solve for numpy deprecated function

Scientific Software - Peer-reviewed - Python
Published by davidpagnon almost 3 years ago

Pose2Sim - More info in logs + other details

Added more info in logs: - Outputs which frames are interpolated as an option (activate it in Config.toml) - Frequency of exclusion for each camera

Convert qca calibration now works on cropped videos. Elbow marker slightly displaced for better accuracy.

Scientific Software - Peer-reviewed - Python
Published by davidpagnon over 3 years ago

Pose2Sim - Now supports AlphaPose

AlphaPose HALPE26, HALPE68, HALPE136, COCO133, COCO, MPII Beta-testers are welcome on all new supported models (OpenPose body_135, MediaPipe BlazePose, AlphaPose)

Scientific Software - Peer-reviewed - Python
Published by davidpagnon over 3 years ago

Pose2Sim - Body_135 now supported

For additional analysis of wrist motion

Scientific Software - Peer-reviewed - Python
Published by davidpagnon over 3 years ago

Pose2Sim - Now supports MediaPipe BlazePose

Scientific Software - Peer-reviewed - Python
Published by davidpagnon over 3 years ago

Pose2Sim - Last changes for JOSS

Scientific Software - Peer-reviewed - Python
Published by davidpagnon over 3 years ago

Pose2Sim - Duplicate of v2.0.0 for Zenodo DOI

Scientific Software - Peer-reviewed - Python
Published by davidpagnon almost 4 years ago