Facial and Object Recognition with A Raspberry Pi

f you are using the single board computer Raspberry Pi (RBPi) for vision-related tasks such as facial and object recognition, the NCS or Movidius Neural Compute Stick from Intel could help to boost the rate at which the RBPi carries out its tasks—you actually do not need to employ a server farm for the job.

The RBPi is fully capable of running software for facial image recognition, and hobbyists have long being using the SBC for recognizing faces in videos to identifying obstacles in the path of a robot. However, the rate at which the RBPi carries out such tasks leaves much to be desired, and the NCS helps to improve this rate.

The Movidius NCS from Intel plugs into the RBPi via the USB port. Inside the stick is a Myriad 2 Vision Processing Unit (VDU) with 12 specialized cores that accelerate the vision recognition tasks for the RBPi. Although it consumes only a single watt of power, the low-power VDU processor works at 100 gigaflops. Sometimes, the stick may need higher processing power and it could consume 2.5 W.

Users can watch the video Movidius has released for guidance on how to use the NCS. There is also a text guide to help users figure out the nuances of object recognition using the RBPi and the NCS. The video demonstrates the system recognizing a pair of sunglasses and a computer mouse on the table.

To get the demo running, the user needs to download and install a few software libraries. On the hardware side, apart from the RBPI, you also need a Pi camera.

Movidius initially announced the early version of the NCS in April last. They then released a prototype device, which they named Fathom, before Intel purchased Movidius. According to Dr. Yann LeCun, founding father of Convolutional Neural Networks, and director of AI research at Facebook, Fathom was a significant step forward.

Intel then released NCS, which has broadly the same specifications as the Fathom did, with the exception that the former has a 4 GB memory. This is an improvement of four times over that of the latter, and it helps the NCS to support denser neural networks. With NCS, any robot, big or small, can possess vision capabilities that are state-of-the-art.

According to Intel, the NCS can lower the barriers for those starting with deep learning application development. It actually offers a simple way for users to add a visual recognition system to their prototype devices such as robots, surveillance cameras, and drones.

As the NCS already has 4 GB of internal memory, and handles all the data in a neural network that is locally stored, the NCS does not have to rely on an Internet connection to connect to a server. In actual practice, transferring data to and from a remote server would introduce a huge latency and any high-performing processor to overcome the latency would consume a huge amount of power. The NCS overcomes both the above shortcomings.

The processor on the NCS is more powerful than the RBPi, although it does not actually accelerate the training process of a neural network, which is a computationally intensive process when carrying out vision recognition.