Tools & Software Get more out of your products with these machine-learning-powered tools
Are you working with interference engines and wishing to simply your development processes with artificial intelligence (AI)? Then you’re at luck. Several manufacturers in the microprocessors, microcontrollers, and Field-programmable gate array (FPGA) space are now offering tools to support smoother AI-powered development processes for (you guessed it) interference engines.
There’s never been a better time for embedded software developers to create their AI-applications. The technology in the components supports interference in neural networks, even with a 32-bit microcontroller. This means that the components can both benefit from, and train, advanced machine learning algorithms. Embedded software developers have a variety of frameworks for model training at their disposal. To further help improve the machine learning algorithms, they also have access to extensive generic datasets from third-party providers. On top of this, original equipment manufacturers (OEMs) can use tools and hardware to collect and curate their datasets.
However, in such a new and complex area, OEM development teams are likely to need intensive training before they can create an AI product. Image 1 (see image gallery) of NXP shows the many elements involved in developing an AI application. If a customer were to start a complete AI development project himself today, it would take at least two years to bring the finished product to market. For OEMs without experience in machine learning techniques and technologies, this period could be much longer.
The field is still in its infancy, and most teams of OEM developers are likely to need intensive training before they can create smooth AI products. In the first image from NPX in the image gallery, it’s visible just how many elements an AI application consists of. If a customer were to, by themselves, start a complete AI development project today, it would take at least two years for them to create a market-ready product. It would take even longer time for OEMs with no preexisting knowledge about machine learning technology.
There are, however, ways to shorten the production time. It’s possible to embed machine learning capabilities into a production-ready application and so get an AI-powered product in only a few weeks. There’s a catch though, this isn’t possible if your product must be able to perform more than one simple AI function. That said, several OEMs have discovered that most semiconductor suppliers are requesting their AI applications to include a standard set of functionalities, for example, speech recognition, image recognition, facial recognition, and counting. Today, there are several AI-powered tools on the market to which application developers can integrate their products with little to no medication.
Customers love machines that are great listeners
“Siri, remind me to do XYZ at XX:YY, please.” Who’s never used a voice service? When technologies such as Amazon's Alexa Voice Service, the speech recognition software in Apple's Siri, and the virtual personal assistant Google Assistant hit the market a few years back consumers welcomed them with open arms. Speech recognition is a classic field of application for AI. In a nutshell, speech recognition refers to technologies that can recognize common patterns in sound and so interpret spoken language.
Speech recognition technology becomes better with training
So, how does speech recognition work? In short, it works so that AI-powered applications are trained with enormous language samples which teaches them to understand language. The more data the application process, the smarter it becomes. In other words, it takes time to build smart language-learning models. It’s much faster to embed an existing speech recognition system from a third-party in your product.
One example of such third-party speech recognition technology is NXP Semiconductors’ Local Voice Command for Microcontroller Development Kit. The tool is scheduled to go into production later this year. Based on NXP's Alexa Voice Service for Microcontrollers, already available from Future Electronics (part number SLN-ALEXA-IOT), this kit consists of a production-ready i.MX Voice Solution Board (Figure 2).
The Microcontroller Development Kit allows OEMs to easily add local voice control to any product in a cost-efficient way. The task can be carried out offline, allowing OEMs to use the NXP tool to quickly add voice control to thermostats, washing machines, refrigerators/freezers, light switches, and numerous other types of devices. Since NXP’s kit require no SRAM, power management IC (PMIC), or eMMC memory, material costs are comparatively low. According to NXP, their solution is about $10 less than a typical speech recognition system with an application processor.
Platforms for facial recognition
Modern technology can not only recognize a person’s voice, but it can also recognize its face. Face recognition technology works similar to voice recognition. The technology gets trained to recognize countless face variations. Over time, this means that the technology can see differences in all faces it “looks at”, identifying specific faces out of myriads of portraits.
Lattice Semiconductor has, just like NXP, managed to implement a complex AI application in simple hardware. Their compact and energy-efficient device FPGA iCE40 is a hardware and software combined in one. The NXP reference solution for voice control is mainly aimed at manufacturers of household appliances, home automation devices, lighting, consumer electronics such as set-top boxes, and WLAN access points
The hardware is a Himax HM01B0 UPduino Shield. It builds on the UPduino 2.0 board, an Arduino-format development board, for rapid prototyping with the performance, I/O capabilities, 5,300 look-up tables (LUT), 1 Mbit SPRAM, 120 kbit block RAM, and eight multipliers. Himax HM01B0 UPduino Shield also includes the power-saving Himax HM01B0 image sensor module and two I2S microphones, allowing the AI application to support visual and audio input. In the latest version of SensAI, Compact CNN (Convolutional Neural Networking) IP for Lattice's FPGA can be used to scan files and documentation for images of specific faces. Lattice provides the same production-ready hardware and software for counting people, which is helpful when you want to know how many people are in a large mass, for example, in a demonstration or at a concert.
This reference development for counting people runs on Lattice's video interface platform, a system that records less than 1W and offers various video interfaces including MIPI CSI-2, eDP, HDMI, and GigE Vision, as well as USB 3.0. The Lattice People Counting application recognizes and counts multiple people in an image. It recognizes pictures of people who are only 6 pixels in size and recognizes people up to 8 m away from the camera, no matter their position or clothing. Like the iCE40's People Recognition application, the People Counting application is a production-ready add-on feature that comes with a training record and input files for any machine learning technology.
An increasing supply of ready-made solutions on the market
In the nearby future, an increased number of ready-made solutions for machine learning applications are expected to enter the market. Lattice new applications for hand gesture recognition and traffic sign recognition. Lattice is, however, not the only company with new products in the pipeline. NXP is looking to launch the following ready-made solutions within short: an anomaly detection, a method of locating imminent malfunctions in the operation of machines, the technology that understands vibration and noise patterns, and a tool recognizing and identifying faces.
The smooth facial recognition solution for MCUs will enable automatic user recognition in end products such as smart appliances and thermostats. When operated on the i.MX RT106F crossover processor, it provides an inference time of less than 750 ms and detects over ten users’ face. MCU comes with ready-to-use facial recognition algorithms. The machine learning element of this solution is a kind of Support Vector Machine (SVM) algorithm. The SVM algorithm is trained under normal conditions when the machine is functioning properly. It then automatically detects movements that diverge from "normal" vibration patterns.
The fastest way to implement artificial intelligence
While much of the literature on AI in embedded systems explain to developers how they can master the complex process from obtaining data sets to training, training a model, and implementing that model in an inference engine, some OEMs prefer to completely bypass the complex workflows of AI development and use the solutions that NXP, Lattice, and others have already developed instead. The availability of these reference developments shows that implementing AI does not have to be difficult, risky, or time-consuming.
This article was first published in German by Elektronikpraxis.