Data collection and annotation are often tedious and time-consuming to achieve satisfactory results in image classification. The transfer learning technique enables to overcome this challenge by reducing the number of images and the training time needed to add a new class. It is applied here to flower classification, but it can be extended to many other use cases.
Approach
- The STM32 model zoo provides everything you need to train and retrain on your own data
- The solution uses a technique called “transfer learning” to quickly train a deep learning model to classify images
- The model can be easily deployed on the STM32H747 discovery kit with the STM32 model zoo Python scripts
- The use case presented is based on flower recognition.
Sensor
Vision: Camera module bundle (reference: B-CAMS-OMV)
Data
Dataset: Dataset for flower recognition (License CC BY 2.0)
Data format:
5 classes of flowers: daisy, dandelion, rose, sunflower, tulip
RGB color images
Results
Model: MobileNetV2 alpha 0.35
Input size: 128x128x3
Memory footprint:
406.86 KB Flash for weights
224.5 KB RAM for activations
Accuracy:
Float model: 86.78%
Quantized model: 86.38%
Performance on STM32H747 (High-perf) @ 400 MHz
Inference time: 110.27 ms
Frame rate: 9.0 fps
