minor changes

This commit is contained in:
davidpagnon 2024-04-16 02:28:46 +02:00
parent 7f6e6a829d
commit 2b02755920
11 changed files with 32 additions and 23 deletions

View File

@ -134,12 +134,13 @@ interp_if_gap_smaller_than = 10 # do not interpolate bigger gaps
show_interp_indices = true # true or false (lowercase). For each keypoint, return the frames that need to be interpolated show_interp_indices = true # true or false (lowercase). For each keypoint, return the frames that need to be interpolated
handle_LR_swap = false # Better if few cameras (eg less than 4) with risk of limb swapping (eg camera facing sagittal plane), otherwise slightly less accurate and slower handle_LR_swap = false # Better if few cameras (eg less than 4) with risk of limb swapping (eg camera facing sagittal plane), otherwise slightly less accurate and slower
undistort_points = false # Better if distorted image (parallel lines curvy on the edge or at least one param > 10^-2), but unnecessary (and slightly slower) if distortions are low undistort_points = false # Better if distorted image (parallel lines curvy on the edge or at least one param > 10^-2), but unnecessary (and slightly slower) if distortions are low
make_c3d = false # save triangulated data in c3d format in addition to trc # Coming soon! make_c3d = false # save triangulated data in c3d format in addition to trc
[filtering] [filtering]
type = 'butterworth' # butterworth, kalman, gaussian, LOESS, median, butterworth_on_speed type = 'butterworth' # butterworth, kalman, gaussian, LOESS, median, butterworth_on_speed
display_figures = false # true or false (lowercase) display_figures = false # true or false (lowercase)
make_c3d = false # also save triangulated data in c3d format
[filtering.butterworth] [filtering.butterworth]
order = 4 order = 4

View File

@ -133,12 +133,13 @@
# show_interp_indices = true # true or false (lowercase). For each keypoint, return the frames that need to be interpolated # show_interp_indices = true # true or false (lowercase). For each keypoint, return the frames that need to be interpolated
# handle_LR_swap = false # Better if few cameras (eg less than 4) with risk of limb swapping (eg camera facing sagittal plane), otherwise slightly less accurate and slower # handle_LR_swap = false # Better if few cameras (eg less than 4) with risk of limb swapping (eg camera facing sagittal plane), otherwise slightly less accurate and slower
# undistort_points = false # Better if distorted image (parallel lines curvy on the edge or at least one param > 10^-2), but unnecessary (and slightly slower) if distortions are low # undistort_points = false # Better if distorted image (parallel lines curvy on the edge or at least one param > 10^-2), but unnecessary (and slightly slower) if distortions are low
# make_c3d = false # save triangulated data in c3d format in addition to trc # Coming soon! # make_c3d = false # save triangulated data in c3d format in addition to trc
# [filtering] # [filtering]
# type = 'butterworth' # butterworth, kalman, gaussian, LOESS, median, butterworth_on_speed # type = 'butterworth' # butterworth, kalman, gaussian, LOESS, median, butterworth_on_speed
# display_figures = false # true or false (lowercase) # display_figures = false # true or false (lowercase)
# make_c3d = false # save triangulated data in c3d format in addition to trc
# [filtering.butterworth] # [filtering.butterworth]
# order = 4 # order = 4

View File

@ -133,12 +133,13 @@
# show_interp_indices = true # true or false (lowercase). For each keypoint, return the frames that need to be interpolated # show_interp_indices = true # true or false (lowercase). For each keypoint, return the frames that need to be interpolated
# handle_LR_swap = false # Better if few cameras (eg less than 4) with risk of limb swapping (eg camera facing sagittal plane), otherwise slightly less accurate and slower # handle_LR_swap = false # Better if few cameras (eg less than 4) with risk of limb swapping (eg camera facing sagittal plane), otherwise slightly less accurate and slower
# undistort_points = false # Better if distorted image (parallel lines curvy on the edge or at least one param > 10^-2), but unnecessary (and slightly slower) if distortions are low # undistort_points = false # Better if distorted image (parallel lines curvy on the edge or at least one param > 10^-2), but unnecessary (and slightly slower) if distortions are low
# make_c3d = false # save triangulated data in c3d format in addition to trc # Coming soon! # make_c3d = false # save triangulated data in c3d format in addition to trc
# [filtering] # [filtering]
# type = 'butterworth' # butterworth, kalman, gaussian, LOESS, median, butterworth_on_speed # type = 'butterworth' # butterworth, kalman, gaussian, LOESS, median, butterworth_on_speed
# display_figures = false # true or false (lowercase) # display_figures = false # true or false (lowercase)
# make_c3d = false # save triangulated data in c3d format in addition to trc
# [filtering.butterworth] # [filtering.butterworth]
# order = 4 # order = 4

View File

@ -133,12 +133,13 @@
# show_interp_indices = true # true or false (lowercase). For each keypoint, return the frames that need to be interpolated # show_interp_indices = true # true or false (lowercase). For each keypoint, return the frames that need to be interpolated
# handle_LR_swap = false # Better if few cameras (eg less than 4) with risk of limb swapping (eg camera facing sagittal plane), otherwise slightly less accurate and slower # handle_LR_swap = false # Better if few cameras (eg less than 4) with risk of limb swapping (eg camera facing sagittal plane), otherwise slightly less accurate and slower
# undistort_points = false # Better if distorted image (parallel lines curvy on the edge or at least one param > 10^-2), but unnecessary (and slightly slower) if distortions are low # undistort_points = false # Better if distorted image (parallel lines curvy on the edge or at least one param > 10^-2), but unnecessary (and slightly slower) if distortions are low
# make_c3d = false # save triangulated data in c3d format in addition to trc # Coming soon! # make_c3d = false # save triangulated data in c3d format in addition to trc
[filtering] [filtering]
# type = 'butterworth' # butterworth, kalman, gaussian, LOESS, median, butterworth_on_speed # type = 'butterworth' # butterworth, kalman, gaussian, LOESS, median, butterworth_on_speed
display_figures = false # true or false (lowercase) display_figures = false # true or false (lowercase)
# make_c3d = false # save triangulated data in c3d format in addition to trc
# [filtering.butterworth] # [filtering.butterworth]
# order = 4 # order = 4

View File

@ -133,12 +133,13 @@
# show_interp_indices = true # true or false (lowercase). For each keypoint, return the frames that need to be interpolated # show_interp_indices = true # true or false (lowercase). For each keypoint, return the frames that need to be interpolated
# handle_LR_swap = false # Better if few cameras (eg less than 4) with risk of limb swapping (eg camera facing sagittal plane), otherwise slightly less accurate and slower # handle_LR_swap = false # Better if few cameras (eg less than 4) with risk of limb swapping (eg camera facing sagittal plane), otherwise slightly less accurate and slower
# undistort_points = false # Better if distorted image (parallel lines curvy on the edge or at least one param > 10^-2), but unnecessary (and slightly slower) if distortions are low # undistort_points = false # Better if distorted image (parallel lines curvy on the edge or at least one param > 10^-2), but unnecessary (and slightly slower) if distortions are low
# make_c3d = false # save triangulated data in c3d format in addition to trc # Coming soon! # make_c3d = false # save triangulated data in c3d format in addition to trc
# [filtering] # [filtering]
# type = 'butterworth' # butterworth, kalman, gaussian, LOESS, median, butterworth_on_speed # type = 'butterworth' # butterworth, kalman, gaussian, LOESS, median, butterworth_on_speed
# display_figures = false # true or false (lowercase) # display_figures = false # true or false (lowercase)
# make_c3d = false # save triangulated data in c3d format in addition to trc
# [filtering.butterworth] # [filtering.butterworth]
# order = 4 # order = 4

View File

@ -133,12 +133,13 @@
# show_interp_indices = true # true or false (lowercase). For each keypoint, return the frames that need to be interpolated # show_interp_indices = true # true or false (lowercase). For each keypoint, return the frames that need to be interpolated
# handle_LR_swap = false # Better if few cameras (eg less than 4) with risk of limb swapping (eg camera facing sagittal plane), otherwise slightly less accurate and slower # handle_LR_swap = false # Better if few cameras (eg less than 4) with risk of limb swapping (eg camera facing sagittal plane), otherwise slightly less accurate and slower
# undistort_points = false # Better if distorted image (parallel lines curvy on the edge or at least one param > 10^-2), but unnecessary (and slightly slower) if distortions are low # undistort_points = false # Better if distorted image (parallel lines curvy on the edge or at least one param > 10^-2), but unnecessary (and slightly slower) if distortions are low
# make_c3d = false # save triangulated data in c3d format in addition to trc # Coming soon! # make_c3d = false # save triangulated data in c3d format in addition to trc
# [filtering] # [filtering]
# type = 'butterworth' # butterworth, kalman, gaussian, LOESS, median, butterworth_on_speed # type = 'butterworth' # butterworth, kalman, gaussian, LOESS, median, butterworth_on_speed
# display_figures = false # true or false (lowercase) # display_figures = false # true or false (lowercase)
# make_c3d = false # save triangulated data in c3d format in addition to trc
# [filtering.butterworth] # [filtering.butterworth]
# order = 4 # order = 4

View File

@ -132,12 +132,13 @@
# show_interp_indices = true # true or false (lowercase). For each keypoint, return the frames that need to be interpolated # show_interp_indices = true # true or false (lowercase). For each keypoint, return the frames that need to be interpolated
# handle_LR_swap = false # Better if few cameras (eg less than 4) with risk of limb swapping (eg camera facing sagittal plane), otherwise slightly less accurate and slower # handle_LR_swap = false # Better if few cameras (eg less than 4) with risk of limb swapping (eg camera facing sagittal plane), otherwise slightly less accurate and slower
# undistort_points = false # Better if distorted image (parallel lines curvy on the edge or at least one param > 10^-2), but unnecessary (and slightly slower) if distortions are low # undistort_points = false # Better if distorted image (parallel lines curvy on the edge or at least one param > 10^-2), but unnecessary (and slightly slower) if distortions are low
# make_c3d = false # save triangulated data in c3d format in addition to trc # Coming soon! # make_c3d = false # save triangulated data in c3d format in addition to trc
# [filtering] # [filtering]
# type = 'butterworth' # butterworth, kalman, gaussian, LOESS, median, butterworth_on_speed # type = 'butterworth' # butterworth, kalman, gaussian, LOESS, median, butterworth_on_speed
# display_figures = false # true or false (lowercase) # display_figures = false # true or false (lowercase)
# make_c3d = false # save triangulated data in c3d format in addition to trc
# [filtering.butterworth] # [filtering.butterworth]
# order = 4 # order = 4

View File

@ -129,12 +129,13 @@ reorder_trc = true # only checked if multi_person analysis
# show_interp_indices = true # true or false (lowercase). For each keypoint, return the frames that need to be interpolated # show_interp_indices = true # true or false (lowercase). For each keypoint, return the frames that need to be interpolated
# handle_LR_swap = false # Better if few cameras (eg less than 4) with risk of limb swapping (eg camera facing sagittal plane), otherwise slightly less accurate and slower # handle_LR_swap = false # Better if few cameras (eg less than 4) with risk of limb swapping (eg camera facing sagittal plane), otherwise slightly less accurate and slower
# undistort_points = false # Better if distorted image (parallel lines curvy on the edge or at least one param > 10^-2), but unnecessary (and slightly slower) if distortions are low # undistort_points = false # Better if distorted image (parallel lines curvy on the edge or at least one param > 10^-2), but unnecessary (and slightly slower) if distortions are low
# make_c3d = false # save triangulated data in c3d format in addition to trc # Coming soon! # make_c3d = false # save triangulated data in c3d format in addition to trc
# [filtering] # [filtering]
# type = 'butterworth' # butterworth, kalman, gaussian, LOESS, median, butterworth_on_speed # type = 'butterworth' # butterworth, kalman, gaussian, LOESS, median, butterworth_on_speed
# display_figures = false # true or false (lowercase) # display_figures = false # true or false (lowercase)
# make_c3d = false # save triangulated data in c3d format in addition to trc
# [filtering.butterworth] # [filtering.butterworth]
# order = 4 # order = 4

View File

@ -52,7 +52,7 @@ reset_sync = false # Revert to state before synchronization. Won't attempt to sy
# Take heart, calibration is not that complicated once you get the hang of it! # Take heart, calibration is not that complicated once you get the hang of it!
[calibration] [calibration]
calibration_type = 'convert' # 'convert' or 'calculate' calibration_type = 'calculate' # 'convert' or 'calculate'
[calibration.convert] [calibration.convert]
convert_from = 'qualisys' # 'qualisys', 'optitrack', vicon', 'opencap', 'easymocap', 'biocv', 'anipose', or 'freemocap' convert_from = 'qualisys' # 'qualisys', 'optitrack', vicon', 'opencap', 'easymocap', 'biocv', 'anipose', or 'freemocap'
@ -70,7 +70,7 @@ calibration_type = 'convert' # 'convert' or 'calculate'
[calibration.calculate] [calibration.calculate]
# Camera properties, theoretically need to be calculated only once in a camera lifetime # Camera properties, theoretically need to be calculated only once in a camera lifetime
[calibration.calculate.intrinsics] [calibration.calculate.intrinsics]
overwrite_intrinsics = false # set to false if you don't want to recalculate intrinsic parameters overwrite_intrinsics = true # set to false if you don't want to recalculate intrinsic parameters
show_detection_intrinsics = true # true or false (lowercase) show_detection_intrinsics = true # true or false (lowercase)
intrinsics_extension = 'jpg' # any video or image extension intrinsics_extension = 'jpg' # any video or image extension
extract_every_N_sec = 1 # if video, extract frames every N seconds (can be <1 ) extract_every_N_sec = 1 # if video, extract frames every N seconds (can be <1 )
@ -140,6 +140,7 @@ make_c3d = false # save triangulated data in c3d format in addition to trc # Com
[filtering] [filtering]
type = 'butterworth' # butterworth, kalman, gaussian, LOESS, median, butterworth_on_speed type = 'butterworth' # butterworth, kalman, gaussian, LOESS, median, butterworth_on_speed
display_figures = false # true or false (lowercase) display_figures = false # true or false (lowercase)
make_c3d = false # save triangulated data in c3d format in addition to trc
[filtering.butterworth] [filtering.butterworth]
order = 4 order = 4

View File

@ -40,14 +40,14 @@ If you can only use one single camera and don't mind losing some accuracy, pleas
</br> </br>
**Pose2Sim releases:** **Pose2Sim releases:**
- [x] v0.1: Published online - [x] **v0.1** *(09/2021)*: Published online
- [x] v0.2: Published associated paper - [x] **v0.2** *(09/2022)*: Published associated paper
- [x] v0.3: Supported other pose estimation algorithms - [x] **v0.3** *(01/2023)*: Supported other pose estimation algorithms
- [x] v0.4: New calibration tool based on scene measurements - [x] **v0.4** *(07/2023)*: New calibration tool based on scene measurements
- [x] v0.5: Automatic batch processing - [x] **v0.5** *(12/2023)*: Automatic batch processing
- [x] v0.6: Marker augmentation, Blender visualizer - [x] **v0.6** *(02/2024)*: Marker augmentation, Blender visualizer
- [x] v0.7: Multi-person analysis - [x] **v0.7** *(03/2024)*: Multi-person analysis
- [x] **v0.8: New synchronization tool** - [x] **v0.8 *(04/2024)*: New synchronization tool**
- [ ] v0.9: Calibration based on keypoint detection, Handling left/right swaps, Correcting lens distortions - [ ] v0.9: Calibration based on keypoint detection, Handling left/right swaps, Correcting lens distortions
- [ ] v0.10: Graphical User Interface - [ ] v0.10: Graphical User Interface
- [ ] v1.0: First accomplished release - [ ] v1.0: First accomplished release
@ -375,7 +375,7 @@ If you already have a calibration file, set `calibration_type` type to `convert`
> _**Calculate calibration parameters with a checkerboard, with measurements on the scene, or automatically with detected keypoints.**_\ > _**Calculate calibration parameters with a checkerboard, with measurements on the scene, or automatically with detected keypoints.**_\
> Take heart, it is not that complicated once you get the hang of it! > Take heart, it is not that complicated once you get the hang of it!
> *N.B.:* Try the calibration tool on the Demo by changing `calibration_type` to `calculate` in [Config.toml](https://github.com/perfanalytics/pose2sim/blob/main/Pose2Sim/S01_Demo_SingleTrial/Config.toml).\ > *N.B.:* Try the calibration tool on the Demo by changing `calibration_type` to `calculate` in [Config.toml](https://github.com/perfanalytics/pose2sim/blob/main/Pose2Sim/S00_Demo_BatchSession/Config.toml).\
For the sake of practicality, there are voluntarily few board images for intrinsic calibration, and few points to click for extrinsic calibration. In spite of this, your reprojection error should be under 1-2 cm, which [does not hinder the quality of kinematic results in practice](https://www.mdpi.com/1424-8220/21/19/6530/htm#:~:text=Angle%20results%20were,Table%203).). For the sake of practicality, there are voluntarily few board images for intrinsic calibration, and few points to click for extrinsic calibration. In spite of this, your reprojection error should be under 1-2 cm, which [does not hinder the quality of kinematic results in practice](https://www.mdpi.com/1424-8220/21/19/6530/htm#:~:text=Angle%20results%20were,Table%203).).
- **Calculate intrinsic parameters with a checkerboard:** - **Calculate intrinsic parameters with a checkerboard:**
@ -385,7 +385,7 @@ If you already have a calibration file, set `calibration_type` type to `convert`
- Create a folder for each camera in your `Calibration\intrinsics` folder. - Create a folder for each camera in your `Calibration\intrinsics` folder.
- For each camera, film a checkerboard or a charucoboard. Either the board or the camera can be moved. - For each camera, film a checkerboard or a charucoboard. Either the board or the camera can be moved.
- Adjust parameters in the [Config.toml](https://github.com/perfanalytics/pose2sim/blob/main/Pose2Sim/S01_Demo_SingleTrial/Config.toml) file. - Adjust parameters in the [Config.toml](https://github.com/perfanalytics/pose2sim/blob/main/Pose2Sim/S00_Demo_BatchSession/Config.toml) file.
- Make sure that the board: - Make sure that the board:
- is filmed from different angles, covers a large part of the video frame, and is in focus. - is filmed from different angles, covers a large part of the video frame, and is in focus.
- is flat, without reflections, surrounded by a white border, and is not rotationally invariant (Nrows ≠ Ncols, and Nrows odd if Ncols even). - is flat, without reflections, surrounded by a white border, and is not rotationally invariant (Nrows ≠ Ncols, and Nrows odd if Ncols even).
@ -403,7 +403,7 @@ If you already have a calibration file, set `calibration_type` type to `convert`
- Create a folder for each camera in your `Calibration\extrinsics` folder. - Create a folder for each camera in your `Calibration\extrinsics` folder.
- Once your cameras are in place, shortly film either a board laid on the floor, or the raw scene\ - Once your cameras are in place, shortly film either a board laid on the floor, or the raw scene\
(only one frame is needed, but do not just take a photo unless you are sure it does not change the image format). (only one frame is needed, but do not just take a photo unless you are sure it does not change the image format).
- Adjust parameters in the [Config.toml](https://github.com/perfanalytics/pose2sim/blob/main/Pose2Sim/S01_Demo_SingleTrial/Config.toml) file. - Adjust parameters in the [Config.toml](https://github.com/perfanalytics/pose2sim/blob/main/Pose2Sim/S00_Demo_BatchSession/Config.toml) file.
- Then, - Then,
- **With a checkerboard:**\ - **With a checkerboard:**\
Make sure that it is seen by all cameras. \ Make sure that it is seen by all cameras. \

View File

@ -1,6 +1,6 @@
[metadata] [metadata]
name = pose2sim name = pose2sim
version = 0.8.0 version = 0.8.1
author = David Pagnon author = David Pagnon
author_email = contact@david-pagnon.com author_email = contact@david-pagnon.com
description = Perform a markerless kinematic analysis from multiple calibrated views as a unified workflow from an OpenPose input to an OpenSim result. description = Perform a markerless kinematic analysis from multiple calibrated views as a unified workflow from an OpenPose input to an OpenSim result.
@ -51,4 +51,4 @@ install_requires =
packages = find_namespace: packages = find_namespace:
[options.package_data] [options.package_data]
* = OpenSim_Setup/**, MarkerAugmenter/**, S00_Demo_Session/**, S00_Demo_Session/**/.*, S00_Demo_Session/**/**/.*, S00_Demo_Session/**/**/**/.*, S00_Demo_Session/**/**/**/**/.* * = OpenSim_Setup/**, MarkerAugmenter/**, S00_Demo_BatchSession/**, S00_Demo_BatchSession/**/.*, S00_Demo_BatchSession/**/**/.*, S00_Demo_BatchSession/**/**/**/.*, S00_Demo_BatchSession/**/**/**/**/.*, S01_Demo_SingleTrial/**, S01_Demo_SingleTrial/**/.*, S01_Demo_SingleTrial/**/**/.*