Project Overview
This project utilizes the ESP32-S3 AI CAM module and EdgeImpulse to recognize apples and oranges. Through this project, you will learn how to train your own model using EdgeImpulse and deploy it on the ESP32-S3 AI CAM module.
 
- EdgeImpulse Official Website: https://edgeimpulse.com/
- EdgeImpulse Project Link: [https://studio.edgeimpulse.com/public/571380/live
Data Collection
- Burn the "CameraWebServer" example code to the ESP32-S3 AI CAM module.
- Open the serial monitor to check the IP address.
- Access the IP address through a browser on a device within the same local network. Click the “Start” button to view the camera feed.
- Save images to your computer by clicking the upper-right corner of the video frame. (It is recommended to save images of different objects in separate folders for easier data labeling during training.)
Note: Collect as much image data as possible to improve model accuracy. For this project, around 50 images of apples and oranges were used.
 
Collected image dataset:
 
Data Labeling
- Create a new project in EdgeImpulse.
 
- Click “Add existing data” to upload collected images.
 
- Select “Upload data” and upload image files. Enter corresponding labels for the images.
 
- In “Data acquisition -> Labeling queue”, mark the object of interest in the images and save.
 
Example: Labeling oranges:
 
Training the Model
- 
Once all data is labeled, navigate to “Impulse design -> Create impulse” to create and save your impulse. 
 Processing blocks explanation: EdgeImpulse Documentation
  
- 
Go to the “image” page and click “Save parameters”. 
  
- 
Navigate to the “Generate features” page and click “Generate features” to extract image features. 
  
- 
Go to “Object detection”, then click “Save & train” to train the model. 
  
- 
Once training is complete, review model performance. Adjust parameters and retrain if necessary. 
  
- 
Go to the "Retrain model" page and click "Train model" 
  
Deploying the Model
Here's the English translation of the steps:
- 
Extract the trained model files into the "libraries" folder of your Arduino installation directory. 
- 
Download the files: 【conv.cpp】, 【depthwise_conv.cpp】, and the 【edge_camera】 folder. 
- 
Copy the downloaded conv.cpp and depthwise_conv.cpp files into your trained model's folder, replacing existing files if prompted. 
- Path: Your_Trained_Model_Folder\src\edge-impulse-sdk\tensorflow\lite\micro\kernels

- Copy the entire 【edge_camera】 folder and paste it into your trained model's directory.
- Path: Your_Trained_Model_Folder\examples

- Open Arduino IDE, locate the 【edge_camera】 example sketch. Replace the header file with your model's header and input your WiFi credentials (SSID and password).

- Compile and upload the sketch. Open the Serial Monitor to view the IP address and classification results. Access the IP via a web browser to see the camera feed.