TensorFlow Lite and Person Detection
Firmware version v3.5.0 is finally available! Launch OpenMV IDE to automatically download and install it. Firmware v3.5.0 fixes a large number of bugs and improves your OpenMV Cam functionality:
- Update CMSIS to v5.4.0
- Update H7 HAL to v1.5
- Update MicroPython to 1.11.
- Update WINC1500 firmware to v19.6.1.
- Update WINC1500 host driver to v19.3.0.
- Add STM32Cube.AI support.
- Add TensorFlow Lite for microcontrollers.
- Add built-in person detector with TF Lite.
- Add ulab and openrv libraries.
- Add support for 32-bit SDRAM @100 MHz.
- Add Arduino UART example.
- Add new ADC example for internal channels.
- Add new HTTPs client examples.
- Fix fb_alloc bug introduced in v3.5.0-beta.2.
- Fix ADC driver to work with new H7 HAL.
- Fix BMP bug when reading 24-bit images.
- Fix Lepton Hardfault when setting VGA/RGB565.
- Fix SPI WFI bug on F7.
- Fix cpufreq H7 frequencies.
- Fix Makefile order dependency issues.
- Fix VSCALE0 low-power mode.
- Enable mod USSL with MBEDTLS.
- Enable QSPI internal storage for OpenMV-4R2.
- Enable VSCALE0 for rev V devices.
- All the modules in scripts/libraries are now frozen.
In particular, we've updated to the latest version of MicroPython, enabled USSL support, and added TensorFlow Lite for Microcontrollers support! With TensorFlow Lite support on your OpenMV Cam M7/H7 you can now run 8-bit quantized TensorFlow Lite flat buffer models! Included with this new functionality is a person detector model built-in to the flash on your OpenMV Cam M7/H7 that is capable of detecting if there's a person or no person within your OpenMV Cam's fields of view!
We decided to include the person detector model into your OpenMV Cam's flash to make using this feature really easy. That said, after adding the person detector model, USSL, and TensorFlow we're out of free flash space. New features added to the OpenMV Cam firmware now will require us to remove other things and optimize code to make space for them.
TensorFlow Lite for Microcontroller Details
You can read all about the new TensorFlow module here. For our initial release we support image classification and segmentation. Once Google releases a micro object detection model we can add support for object detection too. Anyway, out of the box we support the following TensorFlow layers such as depth wise convolution layers, convolution layers, max pool layers, fully connected layers, and more.
Moving on, your OpenMV Cam M7 and H7 are now running official TensorFlow code so you now leverage Google's desktop TensorFlow library (along with Keras) to train models. To get started you can follow Google's in-depth guide here.
Also, if you are interested in adding TensorFlow Lite for Microcontroller support to any other Cortex-M4 or Cortex-M7 Microcontroller we have pre-compiled TensorFlow Lite for Microcontroller libraries here. The way Google ships TensorFlow Lite for Microcontrollers very much requires you to use their build system versus you integrating their code into your build system. Our library allows you to more easily integrate TensorFlow support into your firmware without having to deal with complex build system issues. Additionally, we've wrapped up all the C++ code running under hood with a simple C interface for easy integration.
So, launch OpenMV IDE, download the latest firmware update, and enjoy TensorFlow on your OpenMV Cam!