Releases: perfanalytics/pose2sim
v0.9.8
- Include batch demo folders
- fixed COCO_133 in skeletons.py
- minor edits on escape sequences in docstrings
Full Changelog: v0.9.7...v0.9.8
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: v0.9.5...v0.9.6
v0.9.5
Fix for when no person association or synchronization is run
Full Changelog: v0.9.4...v0.9.5
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 save_to_openpose 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 "to_openpose" option, which is not needed
- added the flag: save_video = 'to_images' # 'to_video' or 'to_images' or ['to_video', 'to_images']
- changed the way frame_range was handled (made me change synchronization in depth, as well as personAssociation and triangulation)
- added the flag: time_range_around_maxspeed in synchronization
- automatically detect framerate from video, or set to 60 fps if we work from images (or give a value)
- frame_range -> time_range
- moved height and weight to project (only read for markerAugmentation, and in the future for automatic scaling)
- removed reorder_trc 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 #116
Full Changelog: v0.8.4...v0.9.0
Full Changelog: v0.9.0...v0.9.1
Full Changelog: v0.9.1...v0.9.4
fixed all nan slice issue + improved marker augmentation
Minor improvements
Full Changelog: v0.8.1...v0.8.3
v0.8.1
What's Changed
- Save to c3d and convert trc to c3d by @hunminkim98 in #92
- Small fixes after last release (eg not all demo data were downloaded upon install)
Full Changelog: v0.8.0...v0.8.1
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 synchronize_cams_draft 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 synchronize_cams_draft 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 #86
- objp should not be objp_not_used by @ANaaim in #91
- Synchronization & single-trial mode by @davidpagnon in #94
Full Changelog: v0.7.2...v0.8.0
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 #78
- Synchronize multi cams based on keypoints speed. by @hunminkim98 in #76
- Faster and more robust multi-person analysis by @davidpagnon in #85
Full Changelog: v0.7.1...v0.7.2
Alternative to Pose2Sim multi-person
Slightly improve multi-person
Converter to and from EasyMocap if too slow
Full Changelog: v0.7.0...v0.7.1