All Projects → vietanhdev → tf-blazepose

vietanhdev / tf-blazepose

Licence: other
BlazePose - Super fast human pose detection on Tensorflow 2.x

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to tf-blazepose

Reinforcement Learning
Deep Reinforcement Learning Algorithms implemented with Tensorflow 2.3
Stars: ✭ 61 (-56.12%)
Mutual labels:  tensorflow2
rl-medical
Communicative Multiagent Deep Reinforcement Learning for Anatomical Landmark Detection using PyTorch.
Stars: ✭ 36 (-74.1%)
Mutual labels:  landmark-detection
DeepVTB
🌌 OpenVTuber-虚拟アイドル共享计划 An application of real-time face and gaze analyzation via deep nerual networks.
Stars: ✭ 32 (-76.98%)
Mutual labels:  landmark-detection
G-SimCLR
This is the code base for paper "G-SimCLR : Self-Supervised Contrastive Learning with Guided Projection via Pseudo Labelling" by Souradip Chakraborty, Aritra Roy Gosthipaty and Sayak Paul.
Stars: ✭ 69 (-50.36%)
Mutual labels:  tensorflow2
Deep-Learning
This repo provides projects on deep-learning mainly using Tensorflow 2.0
Stars: ✭ 22 (-84.17%)
Mutual labels:  tensorflow2
Spectrum
Spectrum is an AI that uses machine learning to generate Rap song lyrics
Stars: ✭ 37 (-73.38%)
Mutual labels:  tensorflow2
tfworldhackathon
GitHub repo for my Tensorflow World hackathon submission
Stars: ✭ 17 (-87.77%)
Mutual labels:  tensorflow2
NARUTO-HandSignDetection
物体検出を用いてNARUTOの印(子~亥、壬、合掌)を検出するモデルとサンプルプログラムです。このリポジトリでは、YOLOXを使用しています(This is a model and sample program that detects NARUTO's hand sign using object detection. This repository use YOLOX.)
Stars: ✭ 186 (+33.81%)
Mutual labels:  tensorflow2
text classifier
Tensorflow2.3的文本分类项目,支持各种分类模型,支持相关tricks。
Stars: ✭ 135 (-2.88%)
Mutual labels:  tensorflow2
LIGHT-SERNET
Light-SERNet: A lightweight fully convolutional neural network for speech emotion recognition
Stars: ✭ 20 (-85.61%)
Mutual labels:  tensorflow2
deep reinforcement learning gallery
Deep reinforcement learning with tensorflow2
Stars: ✭ 35 (-74.82%)
Mutual labels:  tensorflow2
amazon-sagemaker-mlops-workshop
MLOps workshop with Amazon SageMaker
Stars: ✭ 39 (-71.94%)
Mutual labels:  tensorflow2
ttt
A package for fine-tuning Transformers with TPUs, written in Tensorflow2.0+
Stars: ✭ 35 (-74.82%)
Mutual labels:  tensorflow2
tf-faster-rcnn
Tensorflow 2 Faster-RCNN implementation from scratch supporting to the batch processing with MobileNetV2 and VGG16 backbones
Stars: ✭ 88 (-36.69%)
Mutual labels:  tensorflow2
TrackNet-Badminton-Tracking-tensorflow2
TrackNet for badminton tracking using tensorflow2
Stars: ✭ 37 (-73.38%)
Mutual labels:  tensorflow2
tensorflow-rbm
Tensorflow implementation of the Restricted Boltzmann Machine
Stars: ✭ 308 (+121.58%)
Mutual labels:  tensorflow2
Multi-Person-Pose-using-Body-Parts
No description or website provided.
Stars: ✭ 41 (-70.5%)
Mutual labels:  posenet
google-cloud-vision-php
A simple php wrapper for the google cloud vision API
Stars: ✭ 16 (-88.49%)
Mutual labels:  landmark-detection
CARLA
CARLA: A Python Library to Benchmark Algorithmic Recourse and Counterfactual Explanation Algorithms
Stars: ✭ 166 (+19.42%)
Mutual labels:  tensorflow2
scrabble-gan
Adversarial Generation of Handwritten Text Images
Stars: ✭ 49 (-64.75%)
Mutual labels:  tensorflow2

BlazePose Tensorflow 2.x

This is an implementation of Google BlazePose in Tensorflow 2.x. The original paper is "BlazePose: On-device Real-time Body Pose tracking" by Valentin Bazarevsky, Ivan Grishchenko, Karthik Raveendran, Tyler Zhu, Fan Zhang, and Matthias Grundmann, which is available on arXiv. You can find some demonstrations of BlazePose from Google blog.

Currently, the model being developed in this repo is based on TFLite (.tflite) model from here. I use Netron.app to visualize the architecture and try to mimic that architecture in my implementation. The visualized model architecture can be found here. Other architectures will be added in the future.

Note: This repository is still under active development.

Update 14/12/2020: Our PushUp Counter App is using this BlazePose model to count pushups from videos/webcam. Read more.

TODOs

  • Implementation

    • Initialize code for model from .tflite file.

    • Basic dataset loader

    • Implement loss function.

    • Implement training code.

    • Advanced augmentation: Random occlusion (BlazePose paper)

    • Implement demo code for video and webcam.

    • Support PCK metric.

    • Implement testing code.

    • Add training graph and pretrained models.

    • Support offset maps.

    • Experiment with other loss functions.

    • Workout counting from keypoints.

    • Rewrite in eager mode.

  • Datasets

    • Support LSP dataset and LSPET dataset (partially). More.

    • Support PushUps dataset.

    • Support MPII dataset.

    • Support YOGA-82 dataset.

    • Custom dataset.

  • Convert and run model in TF Lite format.

  • Convert and run model in TensorRT.

  • Convert and run model in Tensorflow.js.

Demo

  • Download pretrained model for PushUp dataset here and put into trained_models/blazepose_pushup_v1.h5. Test with your webcam:
python run_video.py -c configs/mpii/config_blazepose_mpii_pushup_heatmap_bce_regress_huber.json  -m trained_models/blazepose_pushup_v1.h5 -v webcam --confidence 0.3

The pretrained model is only in experimental state now. It only detects 7 keypoints for Push Up counting and it may not produce a good result now. I will update other models in the future.

Training

NOTE: Currently, I only focus on PushUp datase, which contains 7 keypoints. Due to the copyright of this dataset, I don't have permission to publish it on the Internet. You can read the instruction and try with your own dataset.

  • Prepare dataset using instruction from DATASET.md.

  • Training heatmap branch:

python train.py -c configs/mpii/config_blazepose_mpii_pushup_heatmap_bce.json
  • After heatmap branch converged, set load_weights to true and update the pretrained_weights_path to the best model, and continue with the regression branch:
python train.py -c configs/mpii/config_blazepose_mpii_pushup_heatmap_bce_regress_huber.json

Reference

  • Cite the original paper:
@article{Bazarevsky2020BlazePoseOR,
  title={BlazePose: On-device Real-time Body Pose tracking},
  author={Valentin Bazarevsky and I. Grishchenko and K. Raveendran and Tyler Lixuan Zhu and Fangfang Zhang and M. Grundmann},
  journal={ArXiv},
  year={2020},
  volume={abs/2006.10204}
}

This source code uses some code and ideas from these repos:

Contributions

Please feel free to submit an issue or pull a request.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].