Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/becem-gharbi/esp-computer-vision
Computer vision with ESP32 on the edge
https://github.com/becem-gharbi/esp-computer-vision
edge-impulse esp32-cam image-classification object-detection
Last synced: 20 days ago
JSON representation
Computer vision with ESP32 on the edge
- Host: GitHub
- URL: https://github.com/becem-gharbi/esp-computer-vision
- Owner: becem-gharbi
- License: mit
- Created: 2023-10-24T12:32:56.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-10-28T14:23:12.000Z (about 1 year ago)
- Last Synced: 2024-11-09T14:47:03.674Z (3 months ago)
- Topics: edge-impulse, esp32-cam, image-classification, object-detection
- Language: C
- Homepage:
- Size: 4.57 MB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# ESP32 computer vision
This project is a starter to build computer vision applications with inference directly on ESP32 microcontrollers. No extra coding or deep ML knowledge is required as the process is done with [Edge Impulse](https://edgeimpulse.com). It's a platform that takes input data (image, sound..) and extracts features, trains the model and exports the code as library for multiple platforms including embedded devices (Arduino, Espressif..).
## Getting started
This project is built with `PlatformIO` and supports only `ESP32 CAM` boads. By default the model used is `Car Detection` provided by this public [project](https://studio.edgeimpulse.com/public/28056/latest). It uses Transfer learning method for image classification with labels `cars` and `unknown`.
First make sure to set WiFi configuration on `config.h` header file. Then build and upload the binary. Finally run the Serial monitor and the streaming app located under `app` folder.
## Usage
To create and deploy your own model, start by collecting camera snapshots via the streaming app and use the [Uploader](https://docs.edgeimpulse.com/docs/edge-impulse-studio/data-acquisition/uploader) tool to upload the files and label them.Then choose the processing block [Image](https://docs.edgeimpulse.com/docs/edge-impulse-studio/processing-blocks/image) for feature extraction.
Then choose the learning block [Transfer learning](https://docs.edgeimpulse.com/docs/edge-impulse-studio/learning-blocks/transfer-learning-images) for image classification or [FOMO](https://docs.edgeimpulse.com/docs/edge-impulse-studio/learning-blocks/object-detection/fomo-object-detection-for-constrained-devices) for object detection.
Then start the training and verify the model performance.
Finally for deployment choose Arduino library, build and download it. The extracted source files should be placed under the `src` folder. The header file should be renamed to `inferencing.h`.
## Credits
- https://docs.edgeimpulse.com/docs
- https://github.com/espressif/esp32-camera
- https://github.com/alanesq/esp32cam-demo