Our inspiration from this project came from the realization that there is always more to be seen, even the clearest of water is full of obscure moving particles. In any liquid, however clear it may seem, there is something going on. It may even be dangerous in certain parts of the world. Thus, we wanted to do something different, something that involved hardware and still was practical no matter the circumstances; thus, Clens was born.
What it doesOur web application takes photos of samples placed into the custom 3d printed mold. These photographs are then analyzed by the computer that has been trained to recognize "clean" and "unclean" samples, and it is able to characterize any water sample provided. It also uses computer vision to detect blobs (moving large particles) within the sample and it can monitor the progress of these over a set amount of time. It ultimately provides the user with One time test results and Batch test data, as well as an overall report on the water quality.
How we built itThe test tube was mounted into custom 3D printed tubes, wrapped in tape for the grip. The Arduino is fitted with a bright led to give the flash for the backdrop, and it also controls the camera taking photographs. The software was done mostly in python, with the machine learning done through tenser flow. The image classification uses Keras. The entire application is an internal application accessible through either Python or the command line.
Challenges we ran intoThe largest challenge for us was the relative inexperience for us with machine learning and computer vision- we both had not used it in the past. This provided some difficulties as we found ourselves grappling with issues that once cleared allowed us to take our project to the next level. We also found the blob detection itself to be challenging, largely as a result of libraries that were either outdated or simply could not handle the irregularity of the particles that we had in our samples. This forced us to reach deeper and try new things, and ultimately, we got the feature to work.
Accomplishments that we're proud ofWe are incredibly proud of the integration of hardware and software that we were able to bring with our approach. We allowed ourselves to lessen the load on the software by shifting some of that work to the hardware. For example, we have a light that is synchronized with the camera, providing a flash onto a white background in order to maintain consistency with the background of the image. We are also proud that we made our tubes through 3d printing them, which meant that we were able to customize our project and make it as compact as possible.
What we learnedWe learned about prioritizing elements of our work. Despite being only 24 hours to work, we were able to create a fully functional and useful web application. We were forced to prioritize the hardware first in order to set up the software training, and we prioritized the neural network over the blob detection because we understood that the main purpose of our work was to allow the common person to get a sense of the water that they potentially would be drinking.
What's next for ClensThe next step of our project will be making improvements to emphasize the universality of the concept. We understand that this is a practical tool that can help the common man, but the reality is that we can reach more and more people if we can strip it down of the goods and return to its core- camera based water quality decisions. We also want to make sure that the User Experience is greatly improved, as we want to expand the UI and potentially display the data in a more visual manner. We are looking forward to moving on with furthering computer vision to detect water quality and allowing the even most simple of people to have the ability to know about their water.
Comments