Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@ v1.1
- Added option for downloading pose pickle files. (#248)
- Moved synchronization specific files to new module utilsSync.py. (PR #259)
- Added main regression tests and sync unit tests. (PR #259)
- Added tests for main pipeline regressions. (PR #290)
- Added exhaustive calibration fallback. (PR #286)
- Ensure utility file handles are closed. (#293)

Previous Changes
================
Expand Down
14 changes: 14 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,3 +39,17 @@ These instructions are for Windows 10. The pipeline also runs on Ubuntu. Minimum
### Reproducing results from the paper
1) Data used in the OpenCap publication are available on [SimTK](https://simtk.org/projects/opencap). This dataset includes raw data (e.g., videos, motion capture, ground reaction forces, electromyography), and processed data (e.g., scaled OpenSim models, inverse kinematics, inverse dynamics, and dynamic simulation results).
2) The scripts to process and plot the results are found in the `ReproducePaperResults` directory (see README.md in this folder for more details).

# Tests

The test suite validates core functionality of the OpenCap pipeline. To run the tests:

### Prerequisites
- OpenSim must be installed and accessible via `opensim-cmd` in your PATH
- All submodules must be initialized and updated (`git submodule update --init --recursive`)
- The conda environment must be activated

### Running Tests
Execute the following command from the root directory of the repository:
```bash
python -m pytest ./tests/
14 changes: 14 additions & 0 deletions tests/conftest.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import os


TESTS_DIR = os.path.dirname(os.path.realpath(__file__))
REPO_DIR = os.path.abspath(os.path.join(TESTS_DIR, '../'))
TEST_DATA_ROOT = os.path.join(TESTS_DIR, 'opencap-test-data')
TEST_DATA_DIR = os.path.join(TEST_DATA_ROOT, 'Data')
CALIBRATION_FIXTURE_DIR = os.path.join(TEST_DATA_DIR, 'calibration-fixtures')
SYNC_2CAM_DIR = os.path.join(TEST_DATA_DIR, 'sync_2-cameras')
LAB_5CAM_DIR = os.path.join(
TEST_DATA_DIR,
'labvalidation-fixtures',
'subject2_session0_5-cameras',
)
2 changes: 1 addition & 1 deletion tests/opencap-test-data
Submodule opencap-test-data updated 39 files
+ Data/calibration-fixtures/acl/exhaustive_fallback_success/acl_exhaustive_only_success.qt
+ Data/calibration-fixtures/acl/primary_success/acl_primary_success.qt
+ Data/calibration-fixtures/comprehensive/no_checkerboard/no_checkerboard_cam0.mov
+ Data/calibration-fixtures/comprehensive/no_checkerboard/no_checkerboard_cam1.mov
+ Data/calibration-fixtures/comprehensive/partial_checkerboard/partial_checkerboard_cam0.mov
+ Data/calibration-fixtures/comprehensive/partial_checkerboard/partial_checkerboard_cam1.mov
+ Data/calibration-fixtures/labvalidation/e2e_calibration/labvalidation_subject5_session0_cam4_extrinsics.avi
+ Data/calibration-fixtures/labvalidation/five_camera/labvalidation_subject2_session0_cam0_extrinsics.avi
+ Data/calibration-fixtures/labvalidation/five_camera/labvalidation_subject2_session0_cam1_extrinsics.avi
+ Data/calibration-fixtures/labvalidation/five_camera/labvalidation_subject2_session0_cam2_extrinsics.avi
+ Data/calibration-fixtures/labvalidation/five_camera/labvalidation_subject2_session0_cam3_extrinsics.avi
+ Data/calibration-fixtures/labvalidation/five_camera/labvalidation_subject2_session0_cam4_extrinsics.avi
+ Data/calibration-fixtures/labvalidation/primary_success/labvalidation_subject5_session0_cam3_extrinsics.avi
+ Data/calibration-fixtures/sync_2-cameras/cam0_calibration.qt
+ Data/calibration-fixtures/sync_2-cameras/cam1_calibration.qt
+ Data/calibration-fixtures/utah/production_success/utah_production_success.mov
+584 −0 Data/labvalidation-fixtures/subject2_session0_5-cameras/MarkerData/squats1.trc
+589 −0 Data/labvalidation-fixtures/subject2_session0_5-cameras/OpenSimData/Kinematics/squats1.mot
+14,404 −0 Data/labvalidation-fixtures/subject2_session0_5-cameras/OpenSimData/Model/LaiUhlrich2022_scaled.osim
+ Data/labvalidation-fixtures/subject2_session0_5-cameras/Videos/Cam0/InputMedia/squats1/squats1.mov
+ Data/labvalidation-fixtures/subject2_session0_5-cameras/Videos/Cam0/OutputPkl/squats1_keypoints.pkl
+ Data/labvalidation-fixtures/subject2_session0_5-cameras/Videos/Cam0/cameraIntrinsicsExtrinsics.pickle
+ Data/labvalidation-fixtures/subject2_session0_5-cameras/Videos/Cam1/InputMedia/squats1/squats1.mov
+ Data/labvalidation-fixtures/subject2_session0_5-cameras/Videos/Cam1/OutputPkl/squats1_keypoints.pkl
+ Data/labvalidation-fixtures/subject2_session0_5-cameras/Videos/Cam1/cameraIntrinsicsExtrinsics.pickle
+ Data/labvalidation-fixtures/subject2_session0_5-cameras/Videos/Cam2/InputMedia/squats1/squats1.mov
+ Data/labvalidation-fixtures/subject2_session0_5-cameras/Videos/Cam2/OutputPkl/squats1_keypoints.pkl
+ Data/labvalidation-fixtures/subject2_session0_5-cameras/Videos/Cam2/cameraIntrinsicsExtrinsics.pickle
+ Data/labvalidation-fixtures/subject2_session0_5-cameras/Videos/Cam3/InputMedia/squats1/squats1.mov
+ Data/labvalidation-fixtures/subject2_session0_5-cameras/Videos/Cam3/OutputPkl/squats1_keypoints.pkl
+ Data/labvalidation-fixtures/subject2_session0_5-cameras/Videos/Cam3/cameraIntrinsicsExtrinsics.pickle
+ Data/labvalidation-fixtures/subject2_session0_5-cameras/Videos/Cam4/InputMedia/squats1/squats1.mov
+ Data/labvalidation-fixtures/subject2_session0_5-cameras/Videos/Cam4/OutputPkl/squats1_keypoints.pkl
+ Data/labvalidation-fixtures/subject2_session0_5-cameras/Videos/Cam4/cameraIntrinsicsExtrinsics.pickle
+ Data/labvalidation-fixtures/subject2_session0_5-cameras/Videos/mappingCamDevice.pickle
+25 −0 Data/labvalidation-fixtures/subject2_session0_5-cameras/sessionMetadata.yaml
+35 −0 Data/sync_2-cameras/MarkerData/neutral.trc
+ Data/sync_2-cameras/Videos/Cam0/OutputPkl/neutral_keypoints.pkl
+ Data/sync_2-cameras/Videos/Cam1/OutputPkl/neutral_keypoints.pkl
Loading
Loading