TensorFlow - ackRow/SlouchyJS GitHub Wiki

Although deep learning could be done without using TensorFlow, this 2 years old open source framework backed by Google is a guarantee of quality and performance

TensorFlow JS

TFJS allows the ordinary user to benefit from deep learning on his own computer

Privacy and Performance

Being able to delegate the machine learning process to each users using javascript has two main benefits

  1. Privacy
  2. Performance

Creating and Training the Neural Network on the Fly

Creating a Simple Convolutional Neural Network at each javascript run.

The CNN is initialised randomly to then be trained using pictures from the user's webcam.

The training is done in a few seconds (MacBook i5) and is usually fairly accurate using 10 epochs : ~75% Hyperparameters could be tuned to get better results.

However it seems unlikely that this simple CNN will ever capture the complexity of the human posture and relies too much on other factors (lightning or background colour) so it will never generalize.

Transfer Learning using Python

Python is still the preferred language for deep learning

Pre-Train Neural Network

SlouchyJS allows us to download our training data and trained neural network.

We can then use our dataset to train heavier neural network using Python Tensorflow for better performance.

Finally we just have to load the saved model in SlouchyJS

Transfer Learning

The most computation effective solution remains using transfer learning on existing pre-trained model especially object detection ones like Yolo