/ESP32-S3_Object_Identification_EI

This is object that uses XIAO ESP32-S3 and OV2640 camera to run object identification model from Edge Impulse.

Primary LanguageCApache License 2.0Apache-2.0

Object Detection using XIAO ESP32S3 Sense

This repository runs EI project, Retail Image Classification by Adam Milton-Barker on XIAO ESP32S3 Sense. The original EI project was built for Jetson Nano but we ported the it to XIAO ESP32S3 Sense.

Goal and Objectives

I have noticed that their isnt much development happening towards building EI models for ESP32-S3 using ESP-IDF and as such wanted to contribute this as project to encourage to continue development to it.I maynot accept PR for this repo but if you have suggestions or improvements for documentation with which more developers can use it I would appreciate it.

Requirements

Hardware

While the script is mainly tested with XIAO ESP32S3 Sense, other ESP32-based development boards will work too with changes to pins of the camera and other code changes.

Software

I personally use dockerized version of ESP-IDF as versions are much easier to manage which I on different versions of ESP-IDF

Building the application

Build Flash Monitor

  1. Open the project in Docker:
    docker run --privileged --rm -v $PWD:/project -w /project -it espressif/idf:release-v4.4
  2. Compile:
    idf.py build flash monitor

Output

You can expect output like this

I (1527) example:take_picture: Taking picture...
I (1567) example:take_picture: Picture taken! Its size was: 4956 bytes
I (1637) gpio: GPIO[21]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0 
Edge Impulse standalone inferencing (Espressif ESP32)
Timing: DSP 3 ms, inference 4657 ms, anomaly 0 ms
Predictions:
  Apples: 0.69141
  Bananas: 0.02344
  Broccoli: 0.16016
  Chilli: 0.12500
I (12437) example:take_picture: Taking picture...
I (12437) example:take_picture: Picture taken! Its size was: 5356 bytes
I (12507) gpio: GPIO[21]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0 
Edge Impulse standalone inferencing (Espressif ESP32)
Timing: DSP 3 ms, inference 4657 ms, anomaly 0 ms
Predictions:
  Apples: 0.86328
  Bananas: 0.11328
  Broccoli: 0.02344
  Chilli: 0.00000

To-Do List

  • Having a Web UI to click picture and then classify
  • Logging the classified data to SD card along with the image