Package: deepposekit
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 usingTensorflowandKeras. Use DeepPoseKit if you need:tools for annotating images or video frames with user-defined keypointsa straightforward but flexible data augmentation pipeline using theimgaug packagea Keras-based interface for initializing, training, and evaluating pose estimation modelseasy-to-use methods for saving and loading models and making predictions on new dataDeepPoseKit is designed with a focus onusabilityandextensibility, as being able to go from idea to result with the least possible delay is key to doing good research.DeepPoseKit is currently limited toindividual 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 asidtracker.ai,pinpoint, orTracktor.Localization (without tracking) can also be achieved with deep learning software likekeras-retinanet, theTensorflow Object Detection API, orMatterPort's Mask R-CNN.Check out our paperto find out more.How to use DeepPoseKitDeepPoseKit is designed for easy use. For example, training and saving a model requires only a few lines of code:fromdeepposekit.ioimportDataGenerator,TrainingGeneratorfromdeepposekit.modelsimportStackedDenseNetdata_generator=DataGenerator('/path/to/annotation_data.h5')train_generator=TrainingGenerator(data_generator)model=StackedDenseNet(train_generator)model.fit(batch_size=16,n_workers=8)model.save('/path/to/saved_model.h5')Loading a trained model and running predictions on new data is also straightforward. For example, running predictions on a new video:fromdeepposekit.modelsimportload_modelfromdeepposekit.ioimportVideoReadermodel=load_model('/path/to/saved_model.h5')reader=VideoReader('/path/to/video.mp4')predictions=model.predict(reader)Using DeepPoseKit is a 4-step process:1.Create an annotation set2.Annotate your datawith our built-in GUI (no Colab support)3.Select and trainone ourpose estimation modelsincludingStackedDenseNet,StackedHourglass,DeepLabCut, andLEAP.4.Use the trained model to:a)Initialize keypoints for unannotated datafor faster annotations withactive learning.b)Predict on new data and refine the training setto improve performance.For more details:Seeour example notebooksCheck thedocumentationReadour paper"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), tryour (experimental) example notebookfor loading data in this format.Have data in another format? You can write your own custom generator to load it.
Check out theexample for writing custom data generators.InstallationDeepPoseKit requiresTensorflowfor training and using pose estimation models.Tensorflowshould be manually installed, along with dependencies such as CUDA and cuDNN, before installing DeepPoseKit:Tensorflow Installation InstructionsAny Tensorflow version >=1.13.0 should be compatible (including 2.0).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:pipinstall--updatedeepposekitInstall the latest development version with pip:pipinstall--updategit+https://www.github.com/jgraving/deepposekit.gitYou can download example datasets from ourDeepPoseKit Datarepository:gitclonehttps://www.github.com/jgraving/deepposekit-dataInstalling with Anaconda on WindowsTo install DeepPoseKit on Windows, you must first manually installShapely, one of the dependencies for theimgaug package:condainstall-cconda-forgeshapelyWe 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:importsys!{sys.executable}-mpipinstall--updatedeepposekitContributors and DevelopmentDeepPoseKit was developed byJake GravingandDaniel Chae, and is still being actively developed. .We welcome community involvement and public contributions to the toolkit. If you wish to contribute, pleasefork the repositoryto make your modifications andsubmit a pull request.If you'd like to get involved with developing DeepPoseKit, get in touch (jgraving@gmail.com) and check outour development roadmapto see future plans for the package.IssuesPlease submit bugs or feature requests to theGitHub 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 withTensorflow, such as installing CUDA or cuDNN dependencies, then please direct issues to those development teams.LicenseReleased under a Apache 2.0 License. SeeLICENSEfor details.ReferencesIf you use DeepPoseKit for your research please citeour 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 readour open-access preprint.If you use theimgaug packagefor data augmentation, please also considerciting it.If youuse datathat was annotated with the DeepLabCut package (http://deeplabcut.org) for your research, be sure tocite 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).NewsOctober 2019:Our paper describing DeepPoseKit is published at eLife! (http://paper.deepposekit.org)September 2019:Nature News covers DeepPoseKit:Deep learning powers a motion-tracking revolutionv0.3.0 is released. Seethe release notes.April 2019:The DeepPoseKit preprint is on biorxiv (http://preprint.deepposekit.org)