ฉบับไทย
This project was intended for streaming FOMO object detection model by Edge Impulse inference results from Esp32 to webserver. The Hardware that was used were provided by Wireless Solution Asia. To use this script users must obtain a model from Edge Impulse
- I've provided simple guide to train your own model please visit train-FOMO-object-detect-esp32.
- Arduino IDE, preferably the latest ones, but older versions will still do the job.
- NodeJS provide access points for inference results.
- ESP32-S3 is preferable but older version will do just fine.
- OV2640 camera or any OV series.
- FOMO_object_detect_stream.ino - Containes Arduino codes for streaming camera images to the webserver and posting inference results to NodeJS.
- index.html - Contains HTML elements for streaming and inferencing.
- index.js - Javascript functions for HTML element for streaming and inferencing.
- api.js - NodeJS access point for processing inference results for index.js.
- styles.css - makes webserver looks more lively.
- Download the zip file and extract it to Arduino directory
- Go to the installation directory and install javascript dependencies. Run the api.js script, NodeJS is required for this process.
- For users with an IDE, linux, or Mac navigate to the directory and enter "npm install" follow by "node api.js".
- For Window users, navigate to the directory then select the file path and type cmd. New terminal window will be opened in the folder directory.
- Enter "npm install" follow by "node api.js"
- Open FOMO_object_detect_stream.ino and enter WIFI SSID, PASSWORD, and the IPV4 address obtained from your PC.
- To find IPV4 For Window users, open cmd and enter "ipconfig".
- To find IPV4 For Linux users, open terminal and enter hostname -I
- Add zip folder of the model obtained from Edge Impulse to Arduino IDE.
- Under tools change your Board to "ESP32S3 Dev Module" and PSRAM to "OPI PSRAM".
- Upload the code to your ESP32S3. This process may take up to 30 minutes, once completed copy the IP address from the serial monitor to use it for the next process.
- Go to directory and open index.html, it should open the default browser and ask for IP Addres. Paste the Ip address obtain from Arduino IDE in process 7.
- Done!! the inference results from Esp32 should be shown in the webserver.
- User can switch languages on the top right corner of the web.
- Adjustable Camera Settings, try to match camera settings with training datasets, to see more details about each setting please visit
https://heyrick.eu/blog/index.php?diary=20210418&keitai=0.
- User can hide the setting console by clicking on the icon above.
- Adjustable Resolutions.
- Capture button will start capturing images of detected objects.
- Set Instances to limit the amount of images captured.
- Once capture button is clicked a timer will start to count number of seconds it took to capture all images.
- Download button located on the top left will zip all captured images into a single file and download. The downloaded images will not have labels.
- Clear buttons located on the top right will delete all captured images.
- User can aslo delete each image individually.
Thanks to WIRELESS SOLUTION ASIA CO.,LTD for providing AIOT board to support this project. Also thanks to RandomNerdTutorials for providing essential codes for streaming Esp32 camera to webserver. Scripted used for Esp32 FOMO object detection inferencing were from Edge Impulse.