This shows you the differences between two versions of the page.
iothings:proiecte:2023:imgrecsystem [2024/01/13 19:17] alexandru.vrabii [References] |
iothings:proiecte:2023:imgrecsystem [2024/01/16 11:11] (current) alexandru.vrabii [Introduction] |
||
---|---|---|---|
Line 13: | Line 13: | ||
During the development of the project, I encountered several difficulties, I understand why ESP32-CAM is not the most optimal solution for an Image Recognition project. However, I manage to solve some of them and I can show a MVP of the initial idea. | During the development of the project, I encountered several difficulties, I understand why ESP32-CAM is not the most optimal solution for an Image Recognition project. However, I manage to solve some of them and I can show a MVP of the initial idea. | ||
- | TODO : | ||
- | * [[http://example.com|Demo]] | ||
- | * [[http://example.com|Presentation slides]] | ||
+ | * [[https://drive.google.com/file/d/1RVUuSQ7aZ5VtZI2UtJrOhFlFarXuhmU_/view?usp=drive_link|Demo]] | ||
+ | |||
+ | * {{:iothings:proiecte:2023:iot_pp.pptx|Presentation slides}} | ||
=====Architecture===== | =====Architecture===== | ||
Line 24: | Line 24: | ||
* **AI Thinker ESP32-CAM** - based on the ESP-32S module that integrates WIFI and Bluetooth | * **AI Thinker ESP32-CAM** - based on the ESP-32S module that integrates WIFI and Bluetooth | ||
* **ESP8266** - low-cost Wi-Fi microchip, with built-in TCP/IP networking software, and microcontroller capability | * **ESP8266** - low-cost Wi-Fi microchip, with built-in TCP/IP networking software, and microcontroller capability | ||
- | * **OV2640 Camera** - supports jpeg image output format | ||
* **SG90** - Tiny and lightweight with high output power. | * **SG90** - Tiny and lightweight with high output power. | ||
Line 30: | Line 29: | ||
===Circuit Diagram=== | ===Circuit Diagram=== | ||
+ | {{:iothings:proiecte:2023:whatsapp_image_2024-01-13_at_19.51.00.jpeg?300|}} {{:iothings:proiecte:2023:esp8266.png?300|}} | ||
- | ===Real-life view=== | ||
- | TODO : insert a photo here | ||
---- | ---- | ||
====Software==== | ====Software==== | ||
===Software arhitecture=== | ===Software arhitecture=== | ||
- | Software Arhitecture have three parts: | + | **Software Arhitecture have three parts:** |
- | * Data acquisition and ML model training | + | * **Data acquisition and ML model training** |
* {{:iothings:proiecte:2023:softarchitecture1.jpg?200|}} | * {{:iothings:proiecte:2023:softarchitecture1.jpg?200|}} | ||
- | * Image Recognition and Firebase Population | + | * **Image Recognition and Firebase Population** |
* {{:iothings:proiecte:2023:softschema2.jpg?200|}} | * {{:iothings:proiecte:2023:softschema2.jpg?200|}} | ||
- | * Data acquisition from Firebase and decision making | + | * **Data acquisition from Firebase and decision making** |
* {{:iothings:proiecte:2023:softschema3.jpg?200|}} | * {{:iothings:proiecte:2023:softschema3.jpg?200|}} | ||
===Used methods Image Capturing=== | ===Used methods Image Capturing=== | ||
Line 435: | Line 433: | ||
In conclusion, I can say that the ESP32 family can be used in the process of Image Recognition, but it is important to consider that ESP32 boards were not created for image processing. Although the model training process does not take place directly on the board, the image recognition process can be unstable. I would recommend ESP32 as a tool for Image Recognition in cases where a cheap and compact solution is needed, which aims to recognize objects that can be easily differentiated. | In conclusion, I can say that the ESP32 family can be used in the process of Image Recognition, but it is important to consider that ESP32 boards were not created for image processing. Although the model training process does not take place directly on the board, the image recognition process can be unstable. I would recommend ESP32 as a tool for Image Recognition in cases where a cheap and compact solution is needed, which aims to recognize objects that can be easily differentiated. | ||
=====References===== | =====References===== | ||
+ | **Idea for the project ** | ||
+ | [[https://eloquentarduino.com/posts/esp32-cam-object-detection]] | ||
**Hardware components documentation and datasheets** | **Hardware components documentation and datasheets** | ||
- | **ESP32CAM** | + | * **ESP32CAM** |
- | **ESP8266** | + | * [[https://media.digikey.com/pdf/Data%20Sheets/DFRobot%20PDFs/DFR0602_Web.pdf]] |
- | **SG90** | + | * **ESP8266** |
+ | * https://www.espressif.com/sites/default/files/documentation/0a-esp8266ex_datasheet_en.pdf | ||
+ | * **SG90** | ||
+ | * http://www.ee.ic.ac.uk/pcheung/teaching/DE1_EE/stores/sg90_datasheet.pdf | ||
**External Libraries** | **External Libraries** | ||
- | * Arduino | + | * **Eloquent library for ESP32CAM** |
+ | * [[https://github.com/eloquentarduino/EloquentEsp32cam]] | ||
+ | |||
+ | * **Everywhereml library for Image Recognition training** | ||
+ | * [[https://github.com/eloquentarduino/everywhereml]] | ||
- | * Javascript/CSS | + | * Random Forest |
+ | * [[https://en.wikipedia.org/wiki/Random_forest]] | ||
- | * Python | ||
- | **Litterature** | ||