Facial Recognition on Raspberry Pi - tensorflow

I am trying to develop a facial recognition system on a raspberry pi 4 for a university project. I have to use Google Auto ML, Facenet, and Tensorflow. I have some understanding of what they are (I think), just want some guidance on what each really does and how they affect each other's operation when it comes to facial recognition. Any guidance would really appreciate it, just need to be shown the right path that is all!

You can find a lot of articles in medium/Github/Youtube/instructables/Tensorflow Examples on deploying Face recognition in Raspberry pi as a blueprint to get a head start . But You have to play with your Raspberry pi a bit to gain some Ground skills if you are unaware of Hardware details and other skills like Capturing Frames from Video ,Training and evaluating data etc.
I see a stable wheel of Tensorflow wheel by PINTOO for installing Tensorflow in Raspberry pi. A USB accelerator is recommended to smoothen the computation process.You can also use our TFlite for Edge devices like Raspberry pi.
Once model is Trained , you can convert into smaller size Tensorflow lite models or use Rest-API to a server to get results.Post Queries here on SO When you find an obstacle.
Attaching below links for reference.
https://www.tensorflow.org/lite/examples
https://github.com/PINTO0309/Tensorflow-bin#usage
https://bhashkarkunal.medium.com/face-recognition-real-time-webcam-face-
recognition-system-using-deep-learning-algorithm-and-98cf8254def7
https://www.pyimagesearch.com/2018/06/25/raspberry-pi-face-recognition/

Related

Tensorflow on Raspberry pi for image processing

I want to use Raspberry pi for taking pictures and then process them through Tensorflow (train it to find that object in an image and count it) to count my objects for example. I couldn't find any example, do you know if this is possible? I know OpenCV maybe easier but do you know if this is possible with Tensorflow?
As far as I know you can't train a TensorFlow model on a Raspberry Pi, there simply isn't the processing power. However, you could train a TensorFlow model on a laptop/PC and then deploy the model on a Raspberry Pi to do object recognition.
Have a read of this blog post on Pyimagesearch, there are some really in depth tutorials on TensorFlow/Keras on Raspberry Pi.
https://www.pyimagesearch.com/2017/12/18/keras-deep-learning-raspberry-pi/
For future questions on SO try to have a go yourself and then post a question once you get stuck explaining what you've tried and any code you're using. You're more likely to learn more this way.

How does the object-detection methods really work?

I'm in a group project in school and we are using the tensorflow object-detection API in a Raspberry Pi 3 but do not know how the object detection methods, SSD (single shot detector) and CNN (convolutional neural network), works underneath.
Can someone give a simple yet non-trivial explanation on how SSD and CNN works and recommendations on possible factors that might optimize the speed of the object detection methods.
Please link us to good articles if you know any!

Train Deep learning Models with AMD

I am currently using Lenovo Ideapad PC with AMD Radeon graphics in it. I am trying to run an image classifier model using convolutional neural networks. The dataset contains 50000 images and it takes too long to train the model. Can someone tell me how can I use my AMD GPU to fasten the process. I think AMD Graphics does not support CUDA. So is there any way around?
PS: I am using Ubuntu 17.10
What you're asking for is OpenCL support, or in more grandiose terms: the democratization of accelerated devices. There seems to be tentative support for OpenCL, I see some people testing it as of early 2018, but it doesn't appear fully baked yet. The issue has been tracked for quite some time here:
https://github.com/tensorflow/tensorflow/issues/22
You should also be aware of development on XLA, an attempt to virtualize tensorflow over an LLVM (or LLVM-like) virtualization layer making it more portable. It's currently cited as being in alpha as of early 2018.
https://www.tensorflow.org/performance/xla/
There isn't yet a simple solution, but these are the two efforts to follow along these lines.

Using gpu for tensorflow's calculation on raspberry pi

I am developing robot with computer vision on Raspberry Pi 3 with Tensorflow. Can I use gpu for deep learning on raspberry pi 3?
UPDATE :
Here is an alternative backend for Keras called plaidml that is not Tensorflow. The major selling feature is a speedup on non-Nvidia graphics cards. It still isn't Tensorflow, but it may be a viable option.
HERE IS MY OLD ANSER PRIOR TO 2018-09 :
The short answer is no, it isn't possible at this time since Tensorflow leverages Nvidia drivers to power Nvidia GPUs and Raspberry Pi does not have Nvidia hardware.
One of two things have to change for you to have access to GPUs for a small form computing, Tensorflow has to support OpenCl (tracked here), or you have to switch platforms to something that has a Nvidia GPU like this
Sorry to be the bringer of bad news.

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.