Smart 3D Printing Surveillance: Detecting Failures with Computer Vision and Machine Learning
This project’s purpose is to detect 3D printer failures through machine learning, computer vision, and AI. 3D printing is currently rising in the world, yet there are still many issues to combat. One particular problem is the fact that 3D printers can often malfunction, or the design the owner submitted is made incorrectly. This results in consequences including waste of energy and filament, which are not environmentally friendly. Additionally, it also forces the owner to start over again, which is frustrating since 3D printing extends for long periods and wasted filament and time leads to financial loss. My app aims to ameliorate this problem by taking pictures of the 3D printer while it's in use and notifying the user when a print failure occurs. The AI model is trained with thousands of images, labeled either as successful or failed prints. A Raspberry Pi using a camera and AI is set up to monitor the 3D printer. The pictures taken by the Raspberry Pi of the 3D printer are then uploaded to an online database, which our app accesses and notifies the user of the current state of the printer.
My app involves the development of an application dedicated to monitoring the 3D printing process and notifying users promptly about its status. This entails capturing images during printing, with the AI model trained on a diverse dataset of successful and failed prints. Utilizing a Raspberry Pi and a camera, the system continuously monitors the printer, with captured images uploaded to an online database. The associated app then accesses this database to keep users informed about the current printer status. To evaluate the efficacy of our AI program in detecting failures during 3D printing, we conducted an experiment employing a dataset of 1000 images. The camera captured the printer in action at regular intervals across 90 trials, resulting in 77 successful prints and 13 failures. While the AI demonstrated the ability to identify most failures, the results highlight the potential for improvement through additional training and increased sample sizes.
A distinctive feature of this project is its strong commitment to open-source principles, which are evident in both the hardware and software components. The use of the Raspberry Pi, a single-board computer with a vast community and open-source ethos, exemplifies the project's commitment to transparency and collaborative development. Visual Studio Code, a source-code editor developed by Microsoft, further contributes to the open-source landscape, offering a versatile platform for software development. VSC especially helps with storing data, like images and status updates, into an online database. The incorporation of Flutter, a UI toolkit for building natively compiled applications, aligns with open-source principles, fostering accessibility and community engagement. In addition, I imported TensorFlow, another open source framework that was useful in machine learning.
My project has several limitations, with a major one being the reliance on a single 3D printer during testing. This limitation arises from the consistent use of the same printer, filament, and wall background, confining the model to a specific environment. To address this, testing a variety of environments is essential, involving various 3D printers, multicolored filaments, different wall colors, and timestamps throughout the day. This approach aims to create a more comprehensive simulation of real-world scenarios. Beyond environmental variations, there is room for improvement in the app's aesthetics. Currently featuring a simple design with a login page and a status page displaying the 3D printer image, enhancing the app could involve incorporating designated folders labeled with project names for better organization of user 3D prints. Additionally, improving user convenience by displaying multiple images on a single page is a potential enhancement.
In conclusion, my app recognizes limitations, but they are framed as opportunities for future work, inviting further collaboration and refinement within the open-source community. The project's potential to enhance 3D printing accuracy and efficiency is highlighted, emphasizing its contribution to the broader landscape of open-source technologies. The overarching commitment to open-source principles fosters a collaborative approach to advancing 3D printing technology.