Differences

This shows you the differences between two versions of the page.

Link to this comparison view

iothings:proiecte:2023:imgrecsystem [2024/01/13 18:23]
alexandru.vrabii [Software]
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 22: Line 22:
 ====Hardware==== ====Hardware====
 ===Components=== ===Components===
-  * 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.+
  
  
  
 ===Circuit Diagram=== ===Circuit Diagram===
-TBD +{{:​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 425: Line 423:
 </​code>​ </​code>​
 =====Results===== =====Results=====
 +The results of implementing the project are contradictory. On one hand, I was able to implement an Image Recognition model on an ESP32 that works. The downside is that the image recognition process is very unstable, and with a slight deviation in background, lighting, or image capture perspective,​ the model fails.
  
 +To solve these problems, I decided to increase the number of images to train the model. Although training the model took much longer than usual, when running the program on the board, the ESP32CAM camera refused to initialize, and recognition could not be performed.
 +Another attempt to improve the model was to increase the image quality. Thus, I took the pictures in the dataset with my phone, and based on them tried to train the model. Again, the training process took a very long time and in the end, the same problem occurred: the camera failed to get past the initialization point, resulting in a forced reboot of the board.
 +
 +In the end, I decided to improve the model by increasing the number of estimations in the classifier training process. This increased the accuracy of recognition,​ but unfortunately,​ the system'​s sensitivity to other factors remained the same.
 =====Conclusion===== =====Conclusion=====
  
 +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** 
 +  * [[https://​media.digikey.com/​pdf/​Data%20Sheets/​DFRobot%20PDFs/​DFR0602_Web.pdf]] 
 +  * **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** 
  
iothings/proiecte/2023/imgrecsystem.1705163004.txt.gz · Last modified: 2024/01/13 18:23 by alexandru.vrabii
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0