{"id":16224190,"url":"https://github.com/vladmandic/body-pose","last_synced_at":"2025-07-31T09:40:36.387Z","repository":{"id":105111494,"uuid":"433896597","full_name":"vladmandic/body-pose","owner":"vladmandic","description":"Advanced 3D Body Pose Analysis","archived":false,"fork":false,"pushed_at":"2022-09-21T18:48:58.000Z","size":8628,"stargazers_count":25,"open_issues_count":0,"forks_count":10,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-04-03T02:41:17.841Z","etag":null,"topics":["babylonjs","body-tracking","deep-learning","human36m","metrabs","pose-estimation","smpl","tensorflow"],"latest_commit_sha":null,"homepage":"https://vladmandic.github.io/human-pose/client/index.html","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vladmandic.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2021-12-01T16:11:09.000Z","updated_at":"2025-02-07T01:20:41.000Z","dependencies_parsed_at":null,"dependency_job_id":"f95ab177-c03e-440e-ab9e-dba6ac04d2c9","html_url":"https://github.com/vladmandic/body-pose","commit_stats":null,"previous_names":["vladmandic/human-pose"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/vladmandic/body-pose","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vladmandic%2Fbody-pose","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vladmandic%2Fbody-pose/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vladmandic%2Fbody-pose/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vladmandic%2Fbody-pose/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vladmandic","download_url":"https://codeload.github.com/vladmandic/body-pose/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vladmandic%2Fbody-pose/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268017357,"owners_count":24181669,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-31T02:00:08.723Z","response_time":66,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["babylonjs","body-tracking","deep-learning","human36m","metrabs","pose-estimation","smpl","tensorflow"],"created_at":"2024-10-10T12:23:08.939Z","updated_at":"2025-07-31T09:40:36.334Z","avatar_url":"https://github.com/vladmandic.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Advanced 3D Body Pose Analysis\n\n[**Live Demo**](https://vladmandic.github.io/body-pose/client/index.html)  \n*Note: Live demo uses pre-rendered data from sample images and videos*  \n\n\u003cbr\u003e\n\nThis solution is in two parts\n1. Image or Video Processing using **Python** and **TensorFlow** framework\n2. 3D Visualization using **JavaScript** and **BabylonJS**\n\n\u003cbr\u003e\n\n![**Screenshot-Fitness**](assets/screenshot-fitness.jpg)\n![**Screenshot-Basketball**](assets/screenshot-basketball.jpg)\n![**Screenshot-Dance**](assets/screenshot-dance.jpg)\n\n\u003cbr\u003e\n\n## 1. Process\n### Requirements\n\nTensorFlow with CUDA for GPU acceleration  \nNote that models used here are S.O.T.A. and computationally intensive thus requiring GPU with sufficient memory:\n- [**Tiny**](https://omnomnom.vision.rwth-aachen.de/data/metrabs/metrabs_mob3l_y4t_20211019.zip) (using MobileNetV3 backbone with YOLOv4-Tiny detector) =\u003e 2GB\n- [**Small**](https://omnomnom.vision.rwth-aachen.de/data/metrabs/metrabs_eff2s_y4_20211026.zip) (using EfficientNetV2 backbone with YOLOv4 detector) =\u003e 4GB (6GB recommended)\n- [**Large**](https://omnomnom.vision.rwth-aachen.de/data/metrabs/metrabs_eff2l_y4_20211019.zip) (using EfficientNetV2 backbone with YOLOv4 detector) =\u003e 8GB (10GB recommended)\n- [**Large 360**](https://omnomnom.vision.rwth-aachen.de/data/metrabs/metrabs_eff2l_y4_360_20211019.zip) (same as large but tuned for occluded body parts) =\u003e 8GB (12GB recommended)\n\n### Specs\n\n- [**Output Specs**](client/types.ts) (e.g. json format used)\n- [**Constants**](client/constants.ts) (e.g., skeleton definitions with joints and connected edges)\n### Usage\n\n\u003e process.py\n\n    arguments:\n      --help                show this help message\n      --image               image file\n      --video               video file\n      --json                write results to json file\n      --round               round coordiantes in json outputs\n      --minify              minify json output\n      --verbose             verbose logging\n      --model               model used for predictions\n      --skipms              skip time between frames in miliseconds\n      --plot                plot output when processing image\n      --fov                 field-of-view in degrees\n      --batch               process n detected people in parallel\n      --maxpeople           limit processing to n people in the scene\n      --skeleton            use specific skeleton definition standard\n      --augmentations       how many variations of detection to run\n      --average             run avarage on augmentation variations\n      --suppress            suppress implausible poses\n      --minconfidence       minimum detection confidence\n      --iou                 iou threshold for overlaps\n\n### Example\n\n*Using default model and processing parameters*\n\n\u003e ./process.py --model models/tiny --video media/BaseballPitchSlowMo.webm --json output.json\n\n    options: image:null video:media/BaseballPitchSlowMo.webm json:output.json verbose:1 model:models/tiny skipms:0 plot:0 fov:55 batch:64 maxpeople:1 skeleton: augmentations:1 average:1 suppress:1 round:1 minify:1 minconfidence:0.1 iou:0.7\n\n    loaded tensorflow 2.7.0\n    loaded cuda 11.2\n    loaded model: models/tiny in 27.8sec\n    loaded video: media/BaseballPitchSlowMo.webm  frames: 720  resolution: 1080 x 1080\n    processed video: 720 frames in 67.8sec\n    results written to: output.json\n\n## Credits\n\n- [MeTRAbs Absolute 3D Human Pose Estimator](https://github.com/isarandi/metrabs)\n\n\u003cbr\u003e\n\n## 2. Visualize\n\n- All the source files are in `/client`\n- Preprocessed JSON files and accompanying media files are in `/media`\n\nStart compile TypeScript to JavaScript and run HTTP/HTTPS dev web server:\n\u003e npm run dev  \n\nStart web browser and navigate to:  \n\u003e \u003chttps://localhost:8001\u003e\n\n\u003cbr\u003e\n\n## ToDo\n\n- Create process server to process data on demand\n- Implement avatar using inverse kinematics\n- Use animation instead of updating meshes\n\n\u003cbr\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvladmandic%2Fbody-pose","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvladmandic%2Fbody-pose","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvladmandic%2Fbody-pose/lists"}