At Xnor.ai we work on every aspect of computing platforms to optimize artificial intelligence and machine learning, from the software down to the hardware. We have a diverse set of skills, so it is easy to quickly build a prototype for an end-to-end project. Saman Naderiparizi, PhD, is an Xnor.ai hardware engineer and is here to share an example of the types of problems our team solves.
Here he describes one of our projects showing how we were able to take a Raspberry Pi Zero and turn it into a real-time edge AI device:
Before joining Xnor I was an electrical engineering PhD student at the University of Washington working on two core projects: developing cameras that harvest energy from Radio Signals such as WiFi, and streaming HD video without the need for any batteries. Leveraging these skills, I develop low-power hardware platforms to run Xnor.ai deep neural network models.
To demonstrate Xnor.ai’s efficient machine learning models I want to show you what we humorously call our “Thing Detector”. It is a battery-powered device running on a $5 Raspberry Pi Zero that utilizes the Raspberry Pi camera to do complex and accurate object classification and emotion detection in real-time, while using a fraction of the compute capability present in desktop computers and cloud servers.
An image is fed to the Pi 0 and an inference is made. For object classification, if it sees a person, it chirps “person”. It can also infer human emotions such as happy, sad, angry, and scared. This is made possible with Xnor’s efficient binarized models in concert with our efficient inference engine.
The model running on this tiny computer is capable of recognizing 80 types of objects at several frames a second and only takes up a few megabytes of space. It’s a low-power device so it can run for about 5 hours with onboard battery that has the same capacity as two AA batteries.
To understand what’s happening in the real world, a computer needs to process input from a variety of sources such as imagery, video, and audio. This requires computationally demanding processes to run quickly — all made more challenging when running on limited hardware like our Raspberry Pi Zero.
Taking an image and making an accurate inference that it contains a human, other physical objects, or infer emotion from a face previously required billions of floating point operations…per image. Depending on the usage scenario this may be needed to processed on hundreds of frames per second in real time. Typically these workloads run on graphical processing units (GPU). In contrast, an xnorized network contains binary (0 or 1) values which results in floating point operations such as multiply/add to be converted down into simple operations such as XNOR and POPCOUNT. Additionally, because of the reduced bit-width from 32-bit floating point to 1-bit binary values, the memory requirements of xnorized models reduces significantly. This is where the performance boost of xnorized networks outperform traditional neural networks. What we’re doing here would have needed significant hardware or cloud resources just a short while ago.
While the prototype I’m showing you is an internal demo, we have successfully deployed production-quality models for our customers. We’re currently enabling new capabilities on $2 embedded chips and cameras that are components of everyday consumer appliances, mobile handsets, and home security devices.
I hope this gives you a glimpse into the intriguing opportunities we work on. If you find machine learning and AI as fascinating as I do come join our team!