Facial Feature Detection - objective-c

Currently working on a project with a hospital where I need to detect facial features to determine if any facial deformities exist through iPhone App.
For example I found https://github.com/auduno/clmtrackr which showed facial feature detection points. I thought maybe look at the code and make it into objective C. The problem is when I tested clmtrackr with a face with deformity it did not work as intended.
You can check it also: http://www.auduno.com/clmtrackr/clm_image.html
Also tried this image:
both were inconsistent with detecting all the features points it can detect.
Do you know of any API that could do this? Or do you know what techniques I should look up so that I can make one myself.
Thank you

There are several libraries for facial landmark detection:
Dlib ( C++ / Python )
CLM-Framework (C++)
Face++ ( FacePlusPlus ) : Web API
OpenCV. Here's a tutorial: http://www.learnopencv.com/computer-vision-for-predicting-facial-attractiveness/
You can read more at: http://www.learnopencv.com/facial-landmark-detection/

you can use dlib since it's face detection algorithm is faster and it also includes a pre-trained model
https://github.com/davisking/dlib/
https://github.com/davisking/dlib-models
refer this for integration to ios how to build DLIB for iOS
alternatively you could use openface for checking it out just download the binaries http://www.cl.cam.ac.uk/~tb346/software/OpenFace_0.2_win_x86.zip and you're ready to go with command lines https://github.com/TadasBaltrusaitis/OpenFace/wiki/Command-line-arguments
note:- i wont prefer to use opencv since training process and results and not so regular

Related

To integrate a trained machine learning model with react native app

I have an FYP project (a social media app like Instagram) that requires me to create a simple recommendation system. I've trained my dataset on cosine similarity using Python, but I'm at a loss on what to do next. How can I integrate my trained ml model to React native or if there is a better and easier way to make a recommendation system?
I tried reading documentation and watching videos. But I still don't seem to be able to grasp some difficult concepts. I would greatly appreciate it if you could give me instructions or steps on what to learn after training my model. Or if I have to use some library or packages etc. [not sure if this is the appropriate forum for this inquiry]

Realtime Single Object Tracking with TensorFlow.js

I'm putting my first steps in Machine Learning, I went through many TensorFlow.js tutorials already and I'm trying to achieve this: "Realtime Single Object Tracking/Detection"
Something like this -> input: webcam/video -> output: object bounding box
I know there are SSD and YOLO, and other libraries to predict & locate the objects. But the predicted time is very slow (in browser), I guessed it's because the Neural Network have to predict between so many objects.
https://github.com/ModelDepot/tfjs-yolo-tiny
https://github.com/tensorflow/models/tree/master/research/object_detection
What if I just want to track a single object? Would it be possible? Will the performance be better? Where should I start?
I've been thinking about extract the pre-trained class (object) from a SavedModel, then start training more from it. But there don't seems to be any instructions around Google.
I found some fantastic code by IBM, which I used in the video in this tweet: https://twitter.com/GantLaborde/status/1125735283343921152?s=20
I extracted that code to make a ReactJS component for detecting Rock/Paper/Scissors here: https://github.com/GantMan/rps_tfjs_demo/blob/master/src/AdvancedModel.js
If you'd like to play with the demo, it's at the bottom of this page: https://rps-tfjs.netlify.com/
All of this is open source and seems to work perfectly fast for detecting a single object in realtime.

Quantization of mobilenet-ssd

I wanted to quantize (change all the floats into INT8) a ssd-mobilenet model and then want to deploy it onto my raspberry-pi. So far, I have not yet found any thing which can help me with it. Any help would be highly appreciated.
I saw tensorflow-lite but it seems it only supports android and iOS.
Any library/framweork is acceptable.
Thanks in advance.
Tensorflow Lite now has support for the Raspberry Pi via Makefiles. Here's the shell script. Regarding Mobilenet-SSD, you can get details on how to use it with TensorFlow Lite in this blog post (and here)
You can try using TensorRT library.
One of the features of the library is quantization.
In general mobilenets are difficult to quantize (see https://arxiv.org/pdf/2004.09602.pdf) but the library should do a good work

Unsupervised Learning : Clustering based Facial Recognition

I am able to do supervised learning for Facial Recognition with TensorFlow and especially after reading this great tutorial. I highly recommend the tutorial even if you don't intend on running the code.
Does anyone know of an open sourced library that does clustering of images based on facial recognition similar to Google Photos for instance? Or even a tutorial with sample code?
I found a good tutorial on autoencoders, so building my own is an option, but I wanted to check if there's something open sourced, or some tutorial that has code I maybe able to borrow?

Real Time Object detection using TensorFlow

I have just started experimenting with Deep Learning and Computer Vision technologies. I came across this awesome tutorial. I have setup the TensorFlow environment using docker and trained my own sets of objects and it provided greater accuracy when I tested it out.
Now I want to make the same more real-time. For example, instead of giving an image of an object as the input, I want to utilize a webcam and make it recognize the object with the help of TensorFlow. Can you guys guide me with the right place to start with this work?
You may want to look at TensorFlow Serving so that you can decouple compute from sensors (and distribute the computation), or our C++ api. Beyond that, tensorflow was written emphasizing throughput rather than latency, so batch samples as much as you can. You don't need to run tensorflow at every frame, so input from a webcam should definitely be in the realm of possibilities. Making the network smaller, and buying better hardware are popular options.