All Projects → jrobchin → Phormatics

jrobchin / Phormatics

Using A.I. and computer vision to build a virtual personal fitness trainer. (Most Startup-Viable Hack - HackNYU2018)

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Phormatics

Machine Learning With Python
Practice and tutorial-style notebooks covering wide variety of machine learning techniques
Stars: ✭ 2,197 (+2681.01%)
Mutual labels:  artificial-intelligence, jupyter-notebook, data-science, classification
Machine Learning From Scratch
Succinct Machine Learning algorithm implementations from scratch in Python, solving real-world problems (Notebooks and Book). Examples of Logistic Regression, Linear Regression, Decision Trees, K-means clustering, Sentiment Analysis, Recommender Systems, Neural Networks and Reinforcement Learning.
Stars: ✭ 42 (-46.84%)
Mutual labels:  artificial-intelligence, jupyter-notebook, data-science, classification
Food Recipe Cnn
food image to recipe with deep convolutional neural networks.
Stars: ✭ 448 (+467.09%)
Mutual labels:  jupyter-notebook, data-science, classification, recognition
Machine learning refined
Notes, examples, and Python demos for the textbook "Machine Learning Refined" (published by Cambridge University Press).
Stars: ✭ 750 (+849.37%)
Mutual labels:  artificial-intelligence, jupyter-notebook, data-science
Caer
High-performance Vision library in Python. Scale your research, not boilerplate.
Stars: ✭ 452 (+472.15%)
Mutual labels:  artificial-intelligence, data-science, opencv
Pba
Efficient Learning of Augmentation Policy Schedules
Stars: ✭ 461 (+483.54%)
Mutual labels:  artificial-intelligence, jupyter-notebook, data-science
Machine Learning For Trading
Code for Machine Learning for Algorithmic Trading, 2nd edition.
Stars: ✭ 4,979 (+6202.53%)
Mutual labels:  artificial-intelligence, jupyter-notebook, data-science
Pandas Profiling
Create HTML profiling reports from pandas DataFrame objects
Stars: ✭ 8,329 (+10443.04%)
Mutual labels:  artificial-intelligence, jupyter-notebook, data-science
Computer Vision
Computer vision exercise with Python and OpenCV.
Stars: ✭ 17 (-78.48%)
Mutual labels:  jupyter-notebook, camera, opencv
Mit Deep Learning
Tutorials, assignments, and competitions for MIT Deep Learning related courses.
Stars: ✭ 8,912 (+11181.01%)
Mutual labels:  artificial-intelligence, jupyter-notebook, data-science
Face Mask Detection
Face masks are crucial in minimizing the propagation of Covid-19, and are highly recommended or even obligatory in many situations. In this project, we develop a pipeline to detect unmasked faces in images. This can, for example, be used to alert people that do not wear a mask when entering a building.
Stars: ✭ 37 (-53.16%)
Mutual labels:  jupyter-notebook, classification, opencv
Computervision Recipes
Best Practices, code samples, and documentation for Computer Vision.
Stars: ✭ 8,214 (+10297.47%)
Mutual labels:  artificial-intelligence, jupyter-notebook, data-science
Handwriting Ocr
OCR software for recognition of handwritten text
Stars: ✭ 411 (+420.25%)
Mutual labels:  jupyter-notebook, opencv, recognition
Sciblog support
Support content for my blog
Stars: ✭ 694 (+778.48%)
Mutual labels:  artificial-intelligence, jupyter-notebook, data-science
Data Science
Collection of useful data science topics along with code and articles
Stars: ✭ 315 (+298.73%)
Mutual labels:  artificial-intelligence, jupyter-notebook, data-science
Multi Threading Camera Stream
Multi-threading camera stream to improve video processing performance
Stars: ✭ 18 (-77.22%)
Mutual labels:  flask, camera, opencv
Pycm
Multi-class confusion matrix library in Python
Stars: ✭ 1,076 (+1262.03%)
Mutual labels:  artificial-intelligence, data-science, classification
Datascience course
Curso de Data Science em Português
Stars: ✭ 294 (+272.15%)
Mutual labels:  artificial-intelligence, jupyter-notebook, data-science
Pycaret
An open-source, low-code machine learning library in Python
Stars: ✭ 4,594 (+5715.19%)
Mutual labels:  jupyter-notebook, data-science, classification
Mlj.jl
A Julia machine learning framework
Stars: ✭ 982 (+1143.04%)
Mutual labels:  jupyter-notebook, data-science, classification

Phormatics: Using AI to Maximize Your Workout

f1: front page (the gif may be choppy at first, but it's worth it I promise)

by: Jason Chin , Charlie Lin , Brad Huang , Calvin Woo

HackNYU2018 project developed in 36 hours, focusing on using A.I. and computer vision to build a virtual personal fitness trainer. Capable of using 2D human pose estimation with commodity web-cameras to critique your form and count your repetitions.

This project won the award for "The Most Startup-Viable Hack" as awarded by Contrary Capital.

2D Human Pose Estimation:

f2: live pose estimation in a busy environment; note: here the user has over-extended their right arm (image is mirrored), which is considered bad form in this variant of the dumb bell shulder press, hence the message.

The pose estimation was based off of tf-pose-estimation by ildoonet. The model architecture, OpenPose developed by CMU Perceptual Computing Lab, consists of a deep convolutional neural network for feature extraction (MobileNet) and a two-branch multi-stage CNN for confidence maps and Part Affinity Fields (PAFs).

This feature allowed us to track the position of the user's joints using a commodity webcam.

Data Flow (Web Based):

f3: pseudo data flow diagram; note: the pose estimation model output must be processed as it returns pose estimation for all possible humans in frame (see: Future Changes [1]).

This app runs in browser and the pose estimation and form critique generation is performed on a Flask server. The webcam feed is captured using WebRTC and screenshots are sent to the server as a base64 encoded string every 50ms or as fast as the server can respond - which ever is slower (see: Future Changes [2]).

This means the server could be run in the cloud on high-performance hardware and the client could be any device with a WebRTC-supported web browser and camera. There is also the option for video to be recorded and sent to the server for post-processing if the user's network connectivity is too slow to stream a live feed.

Currently Supported Exercise Analysis:

  • Squat: exaggerated knees-forward checking
  • Dumbbell Shoulder Press: exaggerated arm bend and extension checking
  • Bicep Curls: horizontal elbow deviation from shoulder checking

Future Changes:

  1. Multiple Pose Estimations for One User

    Current: The model estimates joints for all subjects found in the input image; we then analyze the output and extract the pose that is most likely to be the user.

    Possible Improvements:

    a. Modify model and training data to only estimate a single 'best' pose.

    or

    b. Implement re-identification and support multiple users at once. This is viable as forward propagation time does not increase with multiple poses being estimated.

  2. Webcam Image Data Transfer

    Current: Webcam captures are encoded in base64 strings and a post request is sent to the server with the data (note: this was done for ease of implementation due to the hackathon time constraint).

    Possible Improvements: Implement web sockets to transfer webcam captures instead.

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