Taking a Look at Edge Impulse's New FOMO Feature
FOMO (Fast Objects, More Objects) enables microcontrollers to perform object detection while running faster and consuming far less RAM.
Object detection
When it comes to computer vision applications, having the ability to determine both the quantities and locations of various objects is of paramount importance. For the past few years, this task has largely been performed on microprocessors or on more powerful computers remotely using either edge detection algorithms or the more flexible method of machine learning models. The latter approach allows for the system to adapt to new environments since it can "learn" as more data is added, but it also requires more computational resources, thus putting it out of the reach of smaller embedded devices. However, Edge Impulse's release of their new FOMO feature changes this reality.
How is FOMO different?
FOMO, which stands for Faster Objects, More Objects, is a novel approach to machine learning object detection in that it skips the bounding box calculations/parameters and instead focuses only on the positions and quantities of each object class. The technique relies on partitioning the input image into tiles of a set size, such as 8x8 pixels, and then running a classifier on each grid independently. From this point, a heat map can be generated that shows the approximate locations for objects, with a smaller tile size correlating with increased precision.
Performance considerations
As one might infer, classifying objects using tiny cells is far faster than the traditional method that convolutional neural networks use, and this translates into incredible numbers for embedded target performance. Edge Impulse has tested their model on several inputs and devices, with the smallest being an Arm Cortex-M4F that could process 96x96 grayscale images at 10fps while consuming less than 100KB of RAM. Alternatively, a Raspberry Pi 4 was able to recognize objects 20x faster than a comparable MobileNet SSD model on a 160x160 grayscale input.
Getting started
Edge Impulse's FOMO algorithm enables objects to be detected far more quickly on small, embedded microcontrollers/microprocessors while still maintaining a high degree of accuracy.
To get started or to view more information about FOMO, you can read its documentation here and then create your own object detection project with Edge Impulse.