Food recognition can be used in a wide range of applications, such as home appliances (smart fridges, microwave ovens), restaurants, hospitals, or in the food industry. Based on a FD-MobileNet model, the application can recognize 18 different types of food and beverages including pizza, beer, and fries, among many others.

Approach

- We used of a camera module (B-CAMS-OMV) to capture the scene 
- We selected a pre-trained FD-Mobilenet NN model to perform food recognition
- This model is already integrated in the function pack FP-AI-VISION1 (made for STM32H747 discovery kit)
- The model was then optimized using STM32Cube.AI

Sensor

Vision: camera module bundle (reference: B-CAMS-OMV)

Data

Data format
- 18 classes: "Apple Pie", "Beer", "Caesar Salad", "Cappuccino", "Cheesecake", "Chicken Wings", "Chocolate Cake", "Coke", "Cup Cakes", "Donuts", "French Fries", "Hamburger", "Hot Dog", "Lasagna", "Pizza", "Risotto", "Spaghetti Bolognese", "Steak" 
- RGB color image 

Results

We provide two different networks, which offer a specific trade-off between inference time and accuracy. 
Model: Standard Convolutional Neural Network quantized
Input size: 224x224x3
Memory footprint:
132 KB Flash for weights
148 KBRAM for activations
Accuracy: 72.8%
Performance on STM32H747 (High-Perf) @ 400 MHz
Inference time: 79 ms
Frame rate:  11.8 fps
Model: Optimized Convolutional Neural Network quantized
Input size: 224x224x3
Memory footprint:
148 KB Flash for weights
199 KBRAM for activations
Accuracy: 77,5%
Performance on STM32H747 (High-Perf) @ 400 MHz
Inference time: 145 ms
Frame rate:  6.6 fps

RESULTS-confusion-matrix-WIP RESULTS-confusion-matrix-WIP RESULTS-confusion-matrix-WIP

On-board validation summary of information for a food recognition example

Optimized with
STM32Cube.AI
STM32Cube.AI
Compatible with
STM32H7 series
STM32H7 series

Resources

Optimized with STM32Cube.AI

A free STM32Cube expansion package, X-CUBE-AI allows developers to convert pretrained AI algorithms automatically, such as neural network and machine learning models, into optimized C code for STM32.

STM32Cube.AI STM32Cube.AI STM32Cube.AI

Compatible with STM32H7 series

The STM32 family of 32-bit microcontrollers based on the Arm Cortex®-M processor is designed to offer new degrees of freedom to MCU users. It offers products combining very high performance, real-time capabilities, digital signal processing, low-power / low-voltage operation, and connectivity, while maintaining full integration and ease of development.

STM32H7 series STM32H7 series STM32H7 series
You might also be interested by

Vision | STM32 AI MCU | Partner | Video | Industrial | STM32Cube AI Studio | Microphone | Appliances

How edge AI is redefining clear speech in a noisy world

Real-time audio denoising on STM32N6 with no DSP, delivering low-latency clean speech in noisy environments using edge AI.

Vision | STM32 AI MCU | Partner | Video | Smart city | Industrial | Smart home | STM32Cube AI Studio

People counting and tracking in retail environments

embedUR delivers real-time person segmentation on STM32N6 using YOLACT, achieving on-device people counting at 14 FPS with no cloud dependency.

Vision | Tutorial | GitHub | Appliances | Smart city | STM32Cube AI Studio | Object detection | STM32 AI MCU

How edge AI cameras are changing the future of smart retail

Detect and count fridge beverages fully on-device for smarter retail inventory, with Camthink's NE301