I'm currently a senior high school student working on my research capstone project, which involves creating an Arduino-based waste segregator integrated with machine learning capable of sorting materials into five respective bins: Metallic Waste, Paper Waste, Plastic/Styrofoam Waste, Organic Waste, and Uncategorized Waste. While preparing for the project, I've encountered a bothersome problem that I hope the community can help me overcome. I'm inexperienced and total noob when it comes to Arduino, since this is my first time doing this.
Initially, I opted for the Arduino UNO R3 as my main board. However, I just recently discovered that it lacks the processing power required for image classification (I know, I should have done more research before deciding to go for this approach ), which is required for discerning the types of materials being presented to it.
After hours of research, I came across the ESP32-CAM as a potential alternative. It's said to have just enough power for image classification and can be connected to the Arduino UNO R3. However, I have several questions and concerns regarding this alternative:
Image Classification Capability: Can the ESP32-CAM perform image classification to identify different types of materials effectively? Specifically, can it utilize machine learning algorithms for this purpose?
Integration with Arduino UNO R3: Will the ESP32-CAM be able to communicate properly with the Arduino UNO R3 to control various components such as servos, sensors, LCD panel screens, etc., to properly segregate the materials into their respective bins?
Potential Challenges: What are the possible problems that may occur from integrating the ESP32-CAM with the Arduino UNO R3 setup? Are there any compatibility issues or technical limitations I should be aware of?
I've tried to address these questions through my own research, but I just find myself more confused than ever. Any insights, advice, or experiences shared by the community would be really helpful in guiding me through this project.
It is not a good idea to mix 3.3V (ESP32) with 5V (Arduino Uno) processors.
Logic level converters are required, and since most sensors are 3.3V, there is usually no point in adding something like an ancient Uno to a setup that is already far more powerful.
The ESP32-CAM can perform image classification using machine learning to identify different types of simple objects.
An RPi can perform image classification using machine learning to identify different types of more complex objects. [*]
An RPi could identify Metallic Waste, Paper Waste, Plastic/Styrofoam Waste, Organic Waste, but under very limited circumstances (think: a few very distinctly different shapes of each type of waste).
Considering the vast number of forms that each type of those wastes can take in a normal waste stream, I suspect even a more powerful processor, trained with a large number of images, would have difficulty doing the job well.
But it would be a fun learning experience...
[*] @Idahowalker has used an ESP32-CAM to FTP images to an RPi for ML processing with TensorFlow. Not sure why they didn't just use an RPi cam.
I see, I guess this kind of project really needed a pwoerful processor from the start. Anways, thank you for time and suggestion, I'll look more into what you said.
Not only more processing power. You (as ahuman) would need a be able to detect different types of waste by just looking at a bad image of it. Will that work? If not, how should the "AI" be trained?