deepposekit

a toolkit for pose estimation using deep learning

https://github.com/jgraving/deepposekit

Science Score: 23.0%

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

  • CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
    Found 8 DOI reference(s) in README
  • Academic publication links
  • Committers with academic emails
    2 of 7 committers (28.6%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.8%) to scientific vocabulary

Keywords

animal animal-pose-estimation behavior-analysis deep-learning deepposekit estimation keras machine-learning neural-networks pose pose-estimation python tensorflow
Last synced: 5 months ago · JSON representation

Repository

a toolkit for pose estimation using deep learning

Basic Info
  • Host: GitHub
  • Owner: jgraving
  • License: apache-2.0
  • Language: Python
  • Default Branch: master
  • Homepage: http://deepposekit.org
  • Size: 3.1 MB
Statistics
  • Stars: 399
  • Watchers: 29
  • Forks: 89
  • Open Issues: 22
  • Releases: 0
Topics
animal animal-pose-estimation behavior-analysis deep-learning deepposekit estimation keras machine-learning neural-networks pose pose-estimation python tensorflow
Created almost 7 years ago · Last pushed over 3 years ago
Metadata Files
Readme License Code of conduct

README.md

You have just found DeepPoseKit.

DeepPoseKit is a software toolkit with a high-level API for 2D pose estimation of user-defined keypoints using deep learning—written in Python and built using Tensorflow and Keras. Use DeepPoseKit if you need:

  • tools for annotating images or video frames with user-defined keypoints
  • a straightforward but flexible data augmentation pipeline using the imgaug package
  • a Keras-based interface for initializing, training, and evaluating pose estimation models
  • easy-to-use methods for saving and loading models and making predictions on new data

DeepPoseKit is designed with a focus on usability and extensibility, as being able to go from idea to result with the least possible delay is key to doing good research.

DeepPoseKit is currently limited to individual pose estimation. If individuals can be easily distinguished visually (i.e., they have differently colored bodies or are marked in some way), then multiple individuals can simply be labeled with separate keypoints (head1, tail1, head2, tail2, etc.). Otherwise DeepPoseKit can be extended to multiple individuals by first localizing, tracking, and cropping individuals with additional software such as idtracker.ai, pinpoint, or Tracktor.

Localization (without tracking) can also be achieved with deep learning software like keras-retinanet, the Tensorflow Object Detection API, or MatterPort's Mask R-CNN.

Check out our paper to find out more.

How to use DeepPoseKit

DeepPoseKit is designed for easy use. For example, training and saving a model requires only a few lines of code: ```python from deepposekit.io import DataGenerator, TrainingGenerator from deepposekit.models import StackedDenseNet

datagenerator = DataGenerator('/path/to/annotationdata.h5') traingenerator = TrainingGenerator(datagenerator) model = StackedDenseNet(traingenerator) model.fit(batchsize=16, nworkers=8) model.save('/path/to/savedmodel.h5') Loading a trained model and running predictions on new data is also straightforward. For example, running predictions on a new video: python from deepposekit.models import load_model from deepposekit.io import VideoReader

model = loadmodel('/path/to/savedmodel.h5') reader = VideoReader('/path/to/video.mp4') predictions = model.predict(reader) ```

Using DeepPoseKit is a 4-step process:

For more details:

"I already have annotated data"

DeepPoseKit is designed to be extensible, so loading data in other formats is possible.

If you have annotated data from DeepLabCut (http://deeplabcut.org), try our (experimental) example notebook for loading data in this format. Open In Colab

Have data in another format? You can write your own custom generator to load it. Check out the example for writing custom data generators. Open In Colab

Installation

DeepPoseKit requires Tensorflow for training and using pose estimation models. Tensorflow should be manually installed, along with dependencies such as CUDA and cuDNN, before installing DeepPoseKit:

DeepPoseKit has only been tested on Ubuntu 18.04, which is the recommended system for using the toolkit.

Install the latest stable release with pip: bash pip install --update deepposekit

Install the latest development version with pip: bash pip install --update git+https://www.github.com/jgraving/deepposekit.git

You can download example datasets from our DeepPoseKit Data repository: bash git clone https://www.github.com/jgraving/deepposekit-data

Installing with Anaconda on Windows

To install DeepPoseKit on Windows, you must first manually install Shapely, one of the dependencies for the imgaug package: bash conda install -c conda-forge shapely We also recommend installing DeepPoseKit from within Python rather than using the command line, either from within Jupyter or another IDE, to ensure it is installed in the correct working environment: python import sys !{sys.executable} -m pip install --update deepposekit

Contributors and Development

DeepPoseKit was developed by Jake Graving and Daniel Chae, and is still being actively developed. .

We welcome community involvement and public contributions to the toolkit. If you wish to contribute, please fork the repository to make your modifications and submit a pull request.

If you'd like to get involved with developing DeepPoseKit, get in touch (jgraving@gmail.com) and check out our development roadmap to see future plans for the package.

Issues

Please submit bugs or feature requests to the GitHub issue tracker. Please limit reported issues to the DeepPoseKit codebase and provide as much detail as you can with a minimal working example if possible.

If you experience problems with Tensorflow, such as installing CUDA or cuDNN dependencies, then please direct issues to those development teams.

License

Released under a Apache 2.0 License. See LICENSE for details.

References

If you use DeepPoseKit for your research please cite our open-access paper:

@article{graving2019deepposekit,
         title={DeepPoseKit, a software toolkit for fast and robust animal pose estimation using deep learning},
         author={Graving, Jacob M and Chae, Daniel and Naik, Hemal and Li, Liang and Koger, Benjamin and Costelloe, Blair R and Couzin, Iain D},
         journal={eLife},
         volume={8},
         pages={e47994},
         year={2019},
         publisher={eLife Sciences Publications Limited}
         url={https://doi.org/10.7554/eLife.47994},
         }

You can also read our open-access preprint.

If you use the imgaug package for data augmentation, please also consider citing it.

If you use data that was annotated with the DeepLabCut package (http://deeplabcut.org) for your research, be sure to cite it.

Please also consider citing the relevant references for the pose estimation model(s) used in your research, which can be found in the documentation (i.e., StackedDenseNet, StackedHourglass, DeepLabCut, LEAP).

News

Owner

  • Name: Jake Graving
  • Login: jgraving
  • Kind: user
  • Location: Konstanz, Germany
  • Company: Max Planck Institute of Animal Behavior

Interested in behavior and computation. Research Scientist at Max Planck Institute of Animal Behavior

GitHub Events

Total
  • Watch event: 12
Last Year
  • Watch event: 12

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 300
  • Total Committers: 7
  • Avg Commits per committer: 42.857
  • Development Distribution Score (DDS): 0.023
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Jake j****g@g****m 293
Eduardo Ramos e****a 2
iuls 5****s 1
Urs Waldmann u****n@g****t 1
Selmaan s****1@c****u 1
Ente d****e@d****h 1
Denis Polygalov D****v 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 82
  • Total pull requests: 14
  • Average time to close issues: 30 days
  • Average time to close pull requests: 17 days
  • Total issue authors: 53
  • Total pull request authors: 10
  • Average comments per issue: 3.06
  • Average comments per pull request: 3.07
  • Merged pull requests: 7
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • monajalal (10)
  • richard-warren (5)
  • Philip642 (5)
  • btcooper22 (4)
  • albertoursino (3)
  • davidjamespritchard (3)
  • jgraving (2)
  • jonmatthis (2)
  • ghost (2)
  • omkarap55 (2)
  • rahmasaadimustaf (2)
  • jks5177 (1)
  • mubeenmeo344 (1)
  • basicvisual (1)
  • GavinOneCup (1)
Pull Request Authors
  • Selmaan (2)
  • urs-waldmann (2)
  • eduramiba (2)
  • ghost (2)
  • DenisPolygalov (1)
  • NekonekoTom (1)
  • richard-warren (1)
  • Scoder08 (1)
  • Enteee (1)
  • sugyan (1)
Top Labels
Issue Labels
stale (27) bug (20) question (19) enhancement (8) tensorflow (4) help wanted (1) invalid (1)
Pull Request Labels
bug (5) stale (4) tensorflow (1) enhancement (1)

Packages

  • Total packages: 2
  • Total downloads:
    • pypi 1,209 last-month
  • Total dependent packages: 1
    (may contain duplicates)
  • Total dependent repositories: 2
    (may contain duplicates)
  • Total versions: 13
  • Total maintainers: 2
pypi.org: us2deepposekit

a toolkit for pose estimation using deep learning

  • Versions: 2
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 1,165 Last month
Rankings
Stargazers count: 3.4%
Downloads: 4.5%
Forks count: 4.8%
Average: 8.9%
Dependent packages count: 10.0%
Dependent repos count: 21.8%
Maintainers (1)
Last synced: 6 months ago
pypi.org: deepposekit

a toolkit for pose estimation using deep learning

  • Versions: 11
  • Dependent Packages: 1
  • Dependent Repositories: 1
  • Downloads: 44 Last month
Rankings
Stargazers count: 3.3%
Dependent packages count: 4.7%
Forks count: 4.8%
Average: 10.1%
Downloads: 16.0%
Dependent repos count: 21.8%
Maintainers (1)
Last synced: 6 months ago

Dependencies

setup.py pypi
  • h5py *
  • imgaug >=0.2.9
  • matplotlib *
  • numpy *
  • opencv-python *
  • pandas *
  • pyyaml *