All Projects → kooku0 → BodyPoseEstimationAndroid

kooku0 / BodyPoseEstimationAndroid

Licence: Apache-2.0 License
🙋‍♂️Use Body Pose Estimation to perform pose matching on Android

Projects that are alternatives of or similar to BodyPoseEstimationAndroid

meta-st-stm32mpu-ai
This repository contains the OpenEmbedded meta layer to install AI frameworks and tools for the STM32MP1
Stars: ✭ 32 (+113.33%)
Mutual labels:  tensorflow-lite
coral-pi-rest-server
Perform inferencing of tensorflow-lite models on an RPi with acceleration from Coral USB stick
Stars: ✭ 49 (+226.67%)
Mutual labels:  tensorflow-lite
MobileNetV2-PoseEstimation
Tensorflow based Fast Pose estimation. OpenVINO, Tensorflow Lite, NCS, NCS2 + Python.
Stars: ✭ 99 (+560%)
Mutual labels:  tensorflow-lite
AgroDocRevamp
Agro Doc is basically an app that will help farmers easily pinpoint their crop diseases using their smartphones. The app uses a pre trained tensorflow model to identify issues and then suggest possible cures for the crop infections/diseases. #AndroidDevChallenge
Stars: ✭ 21 (+40%)
Mutual labels:  tensorflow-lite
tensorflow-vast
TensorFlow binding library for VA Smalltalk
Stars: ✭ 13 (-13.33%)
Mutual labels:  tensorflow-lite
Keras-Android-XOR
How to run a Keras model on Android using Tensorflow API.
Stars: ✭ 32 (+113.33%)
Mutual labels:  tensorflow-lite
android tflite
GPU Accelerated TensorFlow Lite applications on Android NDK. Higher accuracy face detection, Age and gender estimation, Human pose estimation, Artistic style transfer
Stars: ✭ 105 (+600%)
Mutual labels:  tensorflow-lite
pico-mnist
Number recognition with MNIST on Raspberry Pi Pico + TensorFlow Lite for Microcontrollers
Stars: ✭ 44 (+193.33%)
Mutual labels:  tensorflow-lite
CRNN.tf2
Convolutional Recurrent Neural Network(CRNN) for End-to-End Text Recognition - TensorFlow 2
Stars: ✭ 131 (+773.33%)
Mutual labels:  tensorflow-lite
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 (+1140%)
Mutual labels:  tensorflow-lite
glDelegateBenchmark
quick and dirty benchmark for TFLite gles delegate on iOS
Stars: ✭ 13 (-13.33%)
Mutual labels:  tensorflow-lite
Face-Recognition-Flutter
Realtime face recognition with Flutter
Stars: ✭ 111 (+640%)
Mutual labels:  tensorflow-lite
play with tflite
Sample projects for TensorFlow Lite in C++ with delegates such as GPU, EdgeTPU, XNNPACK, NNAPI
Stars: ✭ 222 (+1380%)
Mutual labels:  tensorflow-lite
rpi-urban-mobility-tracker
The easiest way to count pedestrians, cyclists, and vehicles on edge computing devices or live video feeds.
Stars: ✭ 75 (+400%)
Mutual labels:  tensorflow-lite
TFLite-Mobile-Generic-Object-Localizer
Python TFLite scripts for detecting objects of any class in an image without knowing their label.
Stars: ✭ 42 (+180%)
Mutual labels:  tensorflow-lite
glDelegateBench
quick and dirty inference time benchmark for TFLite gles delegate
Stars: ✭ 17 (+13.33%)
Mutual labels:  tensorflow-lite
E2E-tfKeras-TFLite-Android
End to end training MNIST image classifier with tf.Keras, convert to TFLite and deploy to Android
Stars: ✭ 17 (+13.33%)
Mutual labels:  tensorflow-lite
SketchRecognition
Model and Android app for sketch recognition using Google's quickdraw dataset
Stars: ✭ 28 (+86.67%)
Mutual labels:  tensorflow-lite
mruby-tflite
MRuby binding for TensorFlow Lite
Stars: ✭ 14 (-6.67%)
Mutual labels:  tensorflow-lite
Selfie2Anime-with-TFLite
How to create Selfie2Anime from tflite model to Android.
Stars: ✭ 70 (+366.67%)
Mutual labels:  tensorflow-lite

Body Pose Estimation - Android

Copyright (C) 2019 여름방학에는 인턴해야지

Features

Perform pose matching by inferencing body pose estimation model on Android device

  • Lightweight Model. Inference Tensorflow Lite model that can be used lightly on mobile devices.
  • Pose Matching. Perform pose matching by calculating the angle of each joint point.
  • Pose Registration. Register a pose that will be used on pose matching.

DEMOs

Requirements

  • Android Studio 3.1.x
  • Gradle 3.1.x
  • Android Support Library, revision 21 or newer

Algorithm

Pose Matching

The angles of the six edges of the input upper body are extracted and the angle and accuracy of the skeleton to be matched are measured.

Angle calculation

private double getAngle(float[][] resultArr, int index) {
    List<Integer> basePoints = BASE_ANGLE_LIST.get(index).getPoints();
    double thetaA, thetaB, thetaC;
    double temp, Angle;
    
    thetaA = Math.sqrt(Math.pow(resultArr[basePoints.get(0)][1] - resultArr[basePoints.get(2)][1], 2) +
                       Math.pow(resultArr[basePoints.get(0)][0] - resultArr[basePoints.get(2)][0], 2));
    thetaB = Math.sqrt(Math.pow(resultArr[basePoints.get(0)][1] - resultArr[basePoints.get(1)][1], 2) +
                       Math.pow(resultArr[basePoints.get(0)][0] - resultArr[basePoints.get(1)][0], 2));
    thetaC = Math.sqrt(Math.pow(resultArr[basePoints.get(1)][1] - resultArr[basePoints.get(2)][1], 2) +
                       Math.pow(resultArr[basePoints.get(1)][0] - resultArr[basePoints.get(2)][0], 2));

    temp = (Math.pow(thetaB, 2) + Math.pow(thetaC, 2) - Math.pow(thetaA, 2)) / (2 * thetaB * thetaC);
    Angle = Math.acos(temp);
    Angle = Angle * (180.0 / Math.PI);
    return Angle;
}

Accuracy calculation

private double getPersentage(double compareNumber, double betweenAngle) {
    return (((HALF_DEGREE - Math.abs(betweenAngle - compareNumber))) / HALF_DEGREE) * 100;
}

Contribution

  1. Fork it (http://github.com/koomg9599/BodyPoseEstimationAndroid)
  2. Create your feature branch (git checkout -b feature/fooBar)
  3. Commit your changes (git commit -am 'Add some fooBar')
  4. Push to the branch (git push origin feature/fooBar)
  5. Create a new Pull Request

Reference

License

Apache License 2.0

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].