-
Notifications
You must be signed in to change notification settings - Fork 254
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Generalize mediapipe code to other trackers #536
Draft
philipqueen
wants to merge
88
commits into
main
Choose a base branch
from
philip/get_model_data_from_skelly_tracker
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
* Update and rename publish_to_pypi_when_new_tag_is_pushed_to_main.yml to publish_to_pypi.yml update pypi publish methods * Update publish_to_pypi.yml * updating GH Action * set python version to 3.11 * bump version to 1.0.26 * trying revert to `flit` build method * Bump version v1.0.25 -> v1.0.26 * Bump version v1.0.26 -> v1.0.27 * add ajc27-freemocap-blender-addon as pip dependency * Bump version v1.0.27 -> v1.0.28 * update version and add <3.12 to python spec * Revert "update version and add <3.12 to python spec" This reverts commit e77d1e9. * specify python <3.12 and update version in pyprojs * pass linting checks * update tests and linting to check on prs into dev * pin addon version beyond bone constraint patch --------- Co-authored-by: jonmatthis <jonmatthis@gmail.com>
* add status check to see if recording is single vid * only futz with calib toml if multi video * lint
* Merge main history changes into development (#503) * clean big files (.mp4, dlc models, etc) from deep git history 😬😅 * dummy commit --------- Co-authored-by: jonmatthis <jonmatthis@gmail.com> * try install pytest with others deps * see if libegl-mesa-dev helps * try removing pip cache * set qt to debug plugins * try pinning pyqt6 * try on python 3.10 * try 3.9 * figure out qmake version * looking for pyqt info * more qt futzing * get linux system info * try installing libxcb * try installing qt6 * fix qt version * force reinstall pyqt6 * make parameter model name less confusing * scrap outdated mediapipe threshold parameter * shiny new process recording folder function * add COM todo * queue todo * replacing the processing recording folder with new one * bug fix * separate out anatomical data calculations * pass queue down to subfunction * remove queue todo * integrating skellytracker * getting the pipeline running * add .pt files to gitignore (yolo models) * rework pipeline with error handling * add kill event exception class * remove split and export data function * add pipeline check before beginning processing * fix pipeline check logic and key * replace mediapipe parameters with skellytracker replace skip steps with run steps * remove old_process_recording_folder * delete process folder of videos function moved to skelly_tracker * change multiprocessing bool to num_processes --------- Co-authored-by: jonmatthis <jonmatthis@gmail.com> Co-authored-by: aaroncherian <aaron.cherian2@gmail.com>
* add space saving action to version testing * run on PR to development * remove 3.8 testing
* remove disk space cleanup * turn free disc space back on only touch .net, android, haskell
* add annotate charuco checkbox * add annotate images to the gui state * change checkbox text * make checkbox track to statde on opening
* set parameter limits * change "num processes" to "max num processes"
* remove previous thresholding * reprojection error thresholding * unit tests * Add more unit testing * remove mediapipe threshold from triangulate func * add reprojection filtering to recording processing * refactoring * Put reproj filtering in parameter tree * linting * add labels to debug plot * moving `save_npy` stuff out of `triangulate_3d` * jon and philip refactor reproj filter code * Get it working again * Turn off filtering by default * linting * filter by confidence percentile * ensure confidence values are between 0 and 100 * linting * fix variable name * parameterize minimum cameras to reproject * fix the camera combination logic * save reprojection error by camera * By camera reprojection filtering (#469) * Add by camera reprojection filtering * functionalize unique frame marker list * fix list indexing * set up for iterating through cameras * loop iteratively, exit gracefully * fix looping error, remove debug plotting * set leftover data above threshold to NaNs * add minimum cameras to reproject to param model * fix parameter gorup setting * add unit testing * redo debug plots * change min cameras to reproject default to 3 * private functions and percentage reporting * encapsulate functions * remove outdated reprojection filtering code * lint * spelling fix * adapt to new process recording folder * fix misspelled import * log directory if get_file function fails * fix path mistake * fix glob call * log list instead of generator * log raw data folder contents * remove unused reprojection filtering * separate out reprojection filtering run function change skip step to run step * update output data folder path --------- Co-authored-by: jonmatthis <jonmatthis@gmail.com>
run triangulate_3d_data without saving
* set base logging display level to info * remove stale code, fix widget ordering errors * connect active recording info after widget created * change logging levels * add some typing * change logging levels and add todos * change processing finished logger location * log to freemocap folder instead of skellycam * nix remaining skellycam references * set log view widget to info, rest to debug * fix random missing import bug * log blender messages (need to clean up on add on side) * reduce logging around sample data download * log during anipose camera calibration * set global logging back to trace * proper display of calibration path for single videos * Log progress indicator (#525) * logging progress, but at what cost? (the cost of too many lines printed) * animate active progress * Parameterize progress bar creation * Initiate bar with special name * get rid of unused import * swap print statement for logging * fix active recording widget on startup * handle attribute error exception in active recording handling * lint and PR suggestion changes --------- Co-authored-by: jonmatthis <jonmatthis@gmail.com>
* Run blender from threadworker * don't try to copy nonexistent calibrations
* update marker info - virtual marker validation needs to be in a for loop to work correctly - pydantic didn't like an underscore before the variable name (i.e. `_all_markers`) * segments needed a model validator * re-add classmethod * Update segments.py
…ithub.com/freemocap/freemocap into philip/get_model_data_from_skelly_tracker
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Currently, we define a lot mediapipe specific variables that are passed around Freemocap. This is things like the number of points tracked, joint connections and names, and center of mass related numbers. The goal is to have all of these model specific variables be housed in Skellytracker, and imported into the
ProcessingParameterModel
in Freemocap. Then all references to mediapipe specific code can instead pull generalized variables from the parameter model.There are a few places that are still mediapipe dependent, including:
We also need to update the various subrepos, which are using their own copies of the mediapipe variables. The goal is to have these passed into the subrepos, which will also prevent a lot of existing duplication:
This PR depends on a PR in skellytracker which has not yet been merged:
freemocap/skellytracker#15
To get the latest skellytracker version, run
pip install skellytracker@git+https://github.com/freemocap/skellytracker@philip/flesh_out_mediapipe_model_info