Arduino Nano 33 limitations and performance on image classification


I have assigned my students the below projects to work on Edge impulse using the TinyML kit. However, I would like to ask, with respect to your experience and the product specifications, which can work with the Arduino Nano 33 sense and which requires a Raspberry pi or ESP32-CAM:

  1. Pothole detection and localization (Image based)
  2. Smart bird feeder for bird recognition (Image, might include sound later)
  3. Eye test based on speech recognition

I am still not fully aware of the Arduino 33 sene maximum capabilities and limitations when implementing tinyML image based applications

Thank you

Hi @Ghattas,

The Nano 33 can handle a lot of different applications, including low-resolution image classification, keyword spotting, and low-sample-rate sensor data (e.g. motion/gesture recognition with accelerometers).

Anything that requires object localization and/or detection will run very poorly (or not at all) on the Nano. For #1, you will probably need an ESP32, OpenMV Cam, or Pi. If #2 is just image classification, that will likely run decently well on the Nano. Assuming that #3 is keyword spotting, that should run on a Nano.

Hello @shawn_edgeimpulse

Thank you for the prompt reply!
I will experiment with the Nano on the 3 topics in order to check its performance and the resolution

  1. for the first project, It can be made to only say that there is a pothole here or not. I think this way it can be treated as an image classification problem and run on the Nano.

  2. for this one it should classify which bird it is from for example 5 pre trained bird species. But I am guessing from your previous answer that it will not be able to handle more than one bird in an image ? Is the Raspberry PI 3 B+ compatible with EdgeImpulse for these kind of applications?

  3. The system will be trained to detect some letters a, b, c ,d etc… Therefore it should work with no issues

Thank you again it is much appreciated

Hi @Ghattas,

For #2, the Nano should support multiple classes. In my experience, you start running into issues over about 5-6 classes, as you start needing more complex models and/or better resolution.

Hello @shawn_edgeimpulse

Wonderful thank you!