Vision example for Arduino Tiny Machine Learning Kit

Hi,
I have successfully followed along with the “adding sight to your sensors” tutorial using the Arduino Tiny Machine Learning Kit, however I have run in to a snag in deployment.

I downloaded an Arduino library from the deployment tab, however when I attempted to compile the ‘nano_ble33_sense_camera.ino’ sketch I received this error:
‘OV7675’ does not state a type

The highlighted code is line 114 which reads:
static OV7675 Cam;

Please let me know what I should put for the type. The data collection and training was otherwise flawless and I am very excited that you have added this device to your supported platforms.

Thanks!
Stephen

Hi Stephen,

I haven’t been able to reproduce your issue. Could you check if the Arduino_OV767X library has been installed?
Also would be helpful to know your Arduino IDE version and the mbed OS board version.

Aurelien

Hi Aurelien,
Thank you very much for your follow up. It was indeed the missing Arduino_OV767X library. I have installed it and the sketch now compiles successfully and uploads to the board.

Unfortunately this has revealed a new issue. When I open the serial monitor the device will run inference once and then fails on subsequent attempts. The output on the serial monitor is below:

Edge Impulse Inferencing Demo
Inferencing settings:
Image resolution: 96x96
Frame size: 9216
No. of classes: 3

Starting inferencing in 2 seconds…
Taking photo…
Predictions (DSP: 403 ms., Classification: 781 ms., Anomaly: 0 ms.):
ace: 0.183594
joker: 0.398438
other: 0.417969

Starting inferencing in 2 seconds…
Taking photo…
Failed to allocate TFLite arena (error code 1)
Failed to run impulse (-6)

Starting inferencing in 2 seconds…
Taking photo…
Failed to allocate TFLite arena (error code 1)
Failed to run impulse (-6)

and this repeats.

I am using the Arduino IDE version 1.8.16 and the latest definitions for the Mbed OS Nano board (I think it is 2.4.0) from today. If it matters, I am using MacOS 11.5.2.

Thank you very much for your help with this! If there is any other information I can provide please let me know

Best regards,
Stephen

Hi Stephen,

We did some bug fix a few weeks ago on a similar issue. Is your Arduino library recent? You could try to generate it again. Also we tested the image recognition on the BLE Sense using a MobiletNet v1 0.25 model, might be worth giving it a try.

The embedded team is also investigating the issue in parallel.

Cheers,
Aurelien

Hi Stephen,
To add to what @aurel said. There’s about 145 KB of RAM available after camera capture for your impulse. So MobileNetV1 0.25 will be a suitable option.

Hi,
Thank you again for the quick follow up, you guys are amazing.

Status:
I confirmed that I am using MobileNet v1 0.25.
I rebuilt the library, deleted the old one and installed the new one in the IDE.
I realized that I had built the old library with float32 so I used int8 this time.

I still have the same problem as above: one inference then fail.

I have found a new symptom. When I closed and opened the serial monitor in the IDE without resetting the device I got a new error message:

Starting inferencing in 2 seconds…
Taking photo…
failed to create snapshot_mem

My project ID is 47825 if you think there might be something there. I can also try swapping the Nano for another one if you think it might be a hardware issue, but I used this hardware to capture the data for this project successfully so I think it works.

In any case, I really appreciate the effort you are putting in to help me with this. Please let me know if I can provide any further information.

Regards,
Stephen

@StephenMagic,

Could you uninstall the mbed OS core and install the (deprecated) mbed 1.1.6?

Aurelien

Thank you! That did the trick. The example sketch is now working correctly for me.

I really appreciate your help with this and I am looking forward to seeing what I can do with vision inferencing on this board.

Best regards,
Stephen

4 Likes