Over the last few years, the use of machine learning has become more and more commonplace, especially in consumer devices and services. The Union Budget of 2019 included special mention and provisions for helping the AI sector in India grow over the next few years. Given the increasing importance AI is gaining in all spheres of technology, companies like Intel are creating products that not only help train AI models at a much faster pace but also for something for developers to use to prototype their code. One such device is the Neural Compute Stick 2 from Intel. Intel sent over a unit for us to try out and here’s what it left us thinking.
What is the Intel Neural Compute Stick 2
The Neural Compute Stick 2 is a pen-drive sized device that turns practically any machine into an easy way to develop and deploy applications. The NCS2 supports TensorFlow and Caffe frameworks which allows developers to profile, tune, and deploy convolutional neural networks (CNNs) on low-power applications that require real-time inferencing. Based on a plug-and-play design, the NCS2 is supposed to be 8 times faster than its predecessor. This, it achieves thanks to the Intel Movidius Myriad X Vision Processing Unit, an always-on chip for high-performance machine vision and visual awareness in severely power-constrained environments.
Intel Neural Compute Stick 2 comes with a dedicated VPU chip to bring computer vision to IoT
Setting up the Neural Compute Stick 2
The Neural Compute Stick 2 requires the OpenVINO Toolkit from Intel, along with Microsoft’s Visual C++, Build Tools for Microsoft Visual Studio, Cmake and Python. Intel has a fairly detailed guide on how to get the stick ready to work on your system of choice. Currently, the Neural Compute Stick 2 works on Linux (Ubuntu, CentOS, and Yocto), Linux with FPGA, Raspberry Pi (Raspbian) and finally, Windows. Plugging the stick into the USB port of your computer won’t do anything and neither will it be recognized by the system as a device. Only once the above requisite tools have been installed and correct environment variables set, the NCS 2 is ready for use.
Using the Neural Compute Stick 2
The Neural Compute Stick 2 once ready for use, comes with few code samples that allow the user to determine the stick’s speed and efficiency. We downloaded a few other sample code from the various sources to evaluate the usefulness of the NCS 2. The stick is ideal for vision-based applications, that is, image recognition, identification and labelling. One of the sample codes we ran identified the number plates of cars passing through a checkpoint in a recorded video file. This sample code could also spit out vehicle make and vehicle attributes such as the colour of the car.
Similarly, there are plenty of code samples that allowed us to understand just how powerful this little compute stick really is. From being able to identify faces from multiple camera feeds and organizing them on a single screen to being able to classify images with total accuracy, the Intel NCS 2 demonstrates great capacities when it comes to testing AI-based applications.
As promising as the Intel Neural Compute Stick may be, it is critical to understand that the stick only provides a platform for testing and deploying neural networks. You will not be able to use the NCS 2 to train a neural network. What this means is that as a developer, you will still need to rely on pre-trained models like those of TensorFlow for your program. The good part, however, is that the NCS 2 can also help deploy your neural network for predetermined tasks and you can actually club the processing power of a few of these sticks together.
Working with neural network applications relies heavily on having an in-depth knowledge of coding in Python. As of now, Intel's Neural Compute Stick 2 only supports the TensorFlow and Caffe frameworks. If you're looking to leverage other frameworks like the Microsoft Cognitive Toolkit, you're not going to be happy. Regardless, this is a promising start, given that the second generation of the NCS2 is 8 times faster than its predecessor.
Bottomline
The Intel Neural Compute Stick 2 provides a first, solid alternative to the cloud based compute platforms like those of Google. The NCS 2 allows developers to create, tweak and deploy their neural networks without any reliance on internet connectivity, which can be a boon for development and testing. As of now, the Intel Neural Compute Stick 2 is somewhat limited to vision computing based tasks, but hopefully, we will be seeing different capabilities making their way onto the future releases of the Neural Compute Stick.