/dont-be-turtle

A mobile ML project to detect turtle neck posture while your working

Primary LanguagePythonApache License 2.0Apache-2.0

Don't be a Turtle Project

Author: Jaewook Kang

About

Project objectives

This Don’t be a Turtle Project makes all of IT people have right posture and feel good while they are working! We investigate a mobile machine learning based methodology providing feedbacks with respect to your neck posture. For this purpose, we monitor neck, detecting whether you are maintaining good working posture. If you are working in an overhanging posture, you will be alerted to maintain a good posture.

alt text

Note that the above model in .gif was trained only by 865 custom dataset.

Release Benchmarks

  • Pose Estimation Accuracy (PCKh): TBU
Version Framework Device size (KB)
0.5.0 Android Pie + Tflite Google Pixel2 749 KB
0.5.0 iOS 11.4.1 + CoreML iPhoneX 811 KB

Repository Components

.
├── images              # some images for documentation
├── dataset/coco_form   # Unzip the dontbeturtle dataset at ./dataset/coco_form
├── note                # Some notes under Google Camps
├── sh_scripts          # A collection of shell scripts for easy operations
├── release             # dontbe turtle tflite and mlmodel here
└── tfmodules           # A collection of TF python files

Mobile Apps

Frameworks

Technical Stacks

  • Tensorflow (+ Tf Slim) >= 1.9
  • Tf plot == 0.2.0.dev0
  • opencv-python >= 3.4.2
  • pycocotools == 2.0.0
  • Cython == 0.28.4
  • tensorpack == 0.8.0
  • tfcoreml == 0.2.0

Repository Installation

git clone https://github.com/motlabs/dont-be-turtle
# cd dont-be-turtle/
git init
git submodule init
git submodule update

pip install -r requirement.txt
./sh_scripts/install_tensorflow_gpu.sh

How to Run Training

export MODEL_BUCKET=./tfmodules/export/model/       # set path for exporting ckpt and tfsummary
export DATA_BUCKET=./dataset/coco_form/dontbeturtle # set path for placing dataset
export SOURCE=./tfmodules/trainer_gpu.py            # set path for tensorflow trainer

python ${SOURCE}\
  --data_dir=${DATA_BUCKET}\
  --model_dir=${MODEL_BUCKET}\
  --is_ckpt_init=False\
  --ckptinit_dir=None
  • You have an option to use ./sh_scripts/run_train_gpu.sh with some customization

How to Get .tflite and .mlmodel

Note that you need to configure ./tfmodule/model/model_config_released.py before executing the below command.

python gen_tflite_coreml.py  --is-summary=False --import-ckpt-dir=<ckpt path directory>
# Args:
#  1) is-summary==True : collect tf summary for model graph
#     is-summary==False: None
#  2) --import-ckpt-dir: global path directory .ckpt stored
#
# An example:
# python gen_tflite_coreml.py  --is-summary=False --import-ckpt-dir=/Users/jwkangmacpro2/SourceCodes/dont-be-turtle/tfmodules/export/model/run-20180815075050/
#

Donbeturtle Dataset v1.0

You need to create ./dataset/coco_form/ and place the data set

Baseline Papers

Related Materials

Project Contributors

Acknowledgement

  • This project was supported by Google Deep Learning Camp Jeju 2018.