skellytracker

A pose estimation and object detection/tracking backend for freemocap.

https://github.com/freemocap/skellytracker

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (17.9%) to scientific vocabulary

Keywords

object-detection pose pose-estimation tracking-algorithm
Last synced: 6 months ago · JSON representation ·

Repository

A pose estimation and object detection/tracking backend for freemocap.

Basic Info
  • Host: GitHub
  • Owner: freemocap
  • License: agpl-3.0
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 1.54 MB
Statistics
  • Stars: 9
  • Watchers: 2
  • Forks: 2
  • Open Issues: 7
  • Releases: 1
Topics
object-detection pose pose-estimation tracking-algorithm
Created almost 3 years ago · Last pushed 6 months ago
Metadata Files
Readme License Citation

README.md

skellytracker

The tracking backend for freemocap. Collects different pose estimation tools and aggregates them using a consistent API. Can run pose estimation on images, webcams, and videos.

Run skelly_tracker

Installation: pip install skellytracker Then it can be run with skellytracker.

Running the basic skellytracker will open the first webcam port on your computer and run pose estimaiton in realtime with mediapipe holistic as a tracker. You can specify the tracker with skellytracker TRACKER_NAME, where TRACKER_NAME is the name of an available tracker. To view the names of all available trackers, see RUN_ME.py.

It will take some time to initialize the tracker the first time you run it, as it will likely need to download the model.

Using skellytracker in your project

To use skellytracker in your project, import a tracker like from skellytracker import YOLOPoseTracker, then instantiate it with your desired parameters like tracker = YOLOPoseTracker(model_size="medium"), and then use tracker.process_image(frame) or tracker.process_video(video_filepath). Processing image by image will let you access each individual annotated frame with tracker.annotated_image, and you can optionally record the data with tracker.recorder.record(). Access recorded data with tracker.recorder.process_tracked_objects(). The running, recording, and processing are done separately to give control over the amount of processing done at each step in the pipeline. Processing an entire video allows you to save the annotated frames as a video, and optionally saves and returns the data as a numpy array. Each tracker has an associated ModelInfo class to access model attributes.

Skellytracker is still under development, so version updates may make breaking changes to the API. Please report any issues and pull requests to the skellytracker repo.

Extending the API

To extend the API, import the BaseTracker and BaseRecorder abstract base classes from skellytracker. Then create a new tracker and recorder inheriting from the base classes and implement all of the abstract methods.

Contributing

We love your input! We want to make contributing to this project as easy and transparent as possible, whether it's:

  • Reporting a bug
  • Discussing the current state of the code
  • Submitting a fix
  • Proposing new features
  • Becoming a maintainer

Pull requests are the best way to propose changes to the codebase (we use Github Flow). We actively welcome your pull requests:

  1. Fork the repo and create your branch from main.
  2. Download the development dependencies with pip install -e '.[dev]'.
  3. If you've added code that should be tested (including any tracker), add tests.
  4. If you've changed APIs, update the documentation.
  5. Ensure the test suite passes by running pytest skellytracker/tests.
  6. Make sure your code lints.
  7. Make that pull request!

Owner

  • Name: The FreeMoCap Project
  • Login: freemocap
  • Kind: organization
  • Email: info@freemocap.org
  • Location: United States of America

Free Motion Capture For Everyone

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
  - family-names: Queen
    given-names: Philip
  - family-names: Cherian
    given-names: Aaron
  - family-names: Matthis
    given-names: Jonathan Samir
    orcid: https://orcid.org/my-orcid?orcid=0000-0003-3683-646X

title: "SkellyTracker" 
doi: 10.5281/zenodo.10395641

GitHub Events

Total
  • Watch event: 2
  • Delete event: 3
  • Issue comment event: 2
  • Push event: 111
  • Pull request review event: 6
  • Pull request review comment event: 4
  • Pull request event: 16
  • Fork event: 1
  • Create event: 11
Last Year
  • Watch event: 2
  • Delete event: 3
  • Issue comment event: 2
  • Push event: 111
  • Pull request review event: 6
  • Pull request review comment event: 4
  • Pull request event: 16
  • Fork event: 1
  • Create event: 11

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 186
  • Total Committers: 3
  • Avg Commits per committer: 62.0
  • Development Distribution Score (DDS): 0.29
Past Year
  • Commits: 29
  • Committers: 3
  • Avg Commits per committer: 9.667
  • Development Distribution Score (DDS): 0.483
Top Committers
Name Email Commits
philipqueen q****p@g****m 132
jonmatthis j****s@g****m 42
aaroncherian a****2@g****m 12

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 4
  • Total pull requests: 65
  • Average time to close issues: 14 days
  • Average time to close pull requests: 17 days
  • Total issue authors: 2
  • Total pull request authors: 3
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.46
  • Merged pull requests: 55
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 1
  • Pull requests: 21
  • Average time to close issues: N/A
  • Average time to close pull requests: 13 days
  • Issue authors: 1
  • Pull request authors: 3
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.24
  • Merged pull requests: 16
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • philipqueen (3)
  • aaroncherian (1)
Pull Request Authors
  • philipqueen (77)
  • aaroncherian (14)
  • jonmatthis (2)
Top Labels
Issue Labels
enhancement (1) bug (1)
Pull Request Labels
enhancement (2)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 1,086 last-month
  • Total dependent packages: 1
  • Total dependent repositories: 0
  • Total versions: 20
  • Total maintainers: 1
pypi.org: skellytracker

Top-level package for skellytracker

  • Versions: 20
  • Dependent Packages: 1
  • Dependent Repositories: 0
  • Downloads: 1,086 Last month
Rankings
Dependent packages count: 10.1%
Average: 38.5%
Dependent repos count: 66.9%
Maintainers (1)
Last synced: 6 months ago

Dependencies

pyproject.toml pypi
  • PyQt6 ^6.5.0
  • mediapipe ^0.10.0
  • opencv-contrib-python 4.6.0.66
  • pydantic ^1.10.7
  • python ^3.9
.github/workflows/flit_publish_to_pypi.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v3 composite
  • pypa/gh-action-pypi-publish 27b31702a0e7fc50959f5ad993c78deac1bdfc29 composite
.github/workflows/linting-ruff.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v4 composite
.github/workflows/python-testing.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite