Andrew Viola, Maxwell Kawada Fall 2024 ECE 4554/5554 Computer Vision: Course Project Virginia TechVisit here for the final report
Problem Statement
As 3D printing technology becomes more affordable, it is increasingly more accessible to a broader range of consumers. However, with the greater install base of 3D printers, common challenges faced by experienced hobbyists are encountered by new users who may not know how to solve them. One such issue is often first-layer adhesion.
First-layer adhesion can arise from an improperly set z-offset, an inconsistent bed mesh, or a sagging gantry. These varying issues can all lead to significant print defects. One such defect is the object coming loose from the bed mid-print, causing a print failure. Another example of a defect is elephant foot, where the bottom layer spreads beyond the intended dimensions, causing accuracy issues. A proper first layer is the first step in achieving successful prints.
By utilizing computer vision, it is possible to ensure an optimal first layer, reducing the risk of common print defects and improving the overall print quality of the object being printed.
Approach
A combination of different computer vision techniques will be used to tackle this problem. Adhesion starts with the build plate. Utilizing a brightly colored build plate and more neutral/darker colored filaments, a contrast detection algorithm should be able to detect if there are any existing defects in the plate. This could be stray filament from a previous print, dust, or grease on the plate that would potentially hinder the next first layer.
Afterward, real-time print monitoring should be employed to determine how the first layer is being laid down. Edge detection algorithms can be utilized to determine how thin or wide a filament line is, demonstrating if it is overly compressed or not compressed enough, thus determining if the nozzle is too close to the bed. In addition, it should be able to identify any gaps in the print, suggesting further adjustment of the nozzle.
In addition to the contrast and edge detection algorithms, a YOLO model can be used to classify and predict adhesion issues in real-time. This model can detect extreme cases of a compressed z height, such that there is no filament line, and it’s just scraping against the bed. It could also detect where there are significant issues such as an entire part being detached from the bed and interfering with other parts of the print.
If time allows, utilizing a stereo vision system may allow for height consistency, where the filament lines deposited are measured, and the heights are compared for a consistent layer height.
Plans for Experiments
Ideally, a dataset will be acquired featuring various first-layer defects. Browsing Roboflow and Kaggle, there seem to be datasets of varying quality and detail, that feature a variety of issues along with examples of excellent first layers. Some work will be needed to clean up and merge the datasets together, but it should offer a good starting point.
In addition to the existing datasets, should more data need to be acquired, a 3D printer will be set up. A traditional 3D printer with a golden build plate will be used. If possible, a two-camera setup will be utilized, where one camera can view the whole build plate, while the other camera will be focused on the nozzle and what’s being directly deposited. This setup will be used to collect data and to validate any implemented methods. After creating new data, the new images will be labeled in Roboflow.
After acquiring data, a combination of Python, OpenCV, Scikit-learn, YOLO, and additional libraries will be used to implement the varying methods of the approach. OpenCV and Scikit-learn can both be used to implement the contrast detection and edge detection. A more traditional approach will be utilized for these detection methods, likely using a kernel. Techniques learned in class such as shrinking the search space will be utilized to make the algorithms more computationally efficient. YOLO can be used for the machine learning model. OpenCV can also be used to develop a stereo vision map if the height measurement route were to be taken. Python will be used as the overall backbone of the system as it allows for agile development of our systems.
The success of this system will be evaluated based on its ability to accurately identify drastic first-layer issues. Most first-layer problems can be subtle and difficult to determine with a human eye. If the system can match the human eye of a hobbyist consumer, it should be considered a successful system. Constant detection of these issues will confirm the system’s effectiveness.
Exceeding expectations would involve the ability to identify the more subtle errors. For example, if the system were able to detect that the first layer is compressed 0.05mm beyond the optimal height, that would be a resounding success. Achieving that level of precision would demonstrate the system’s advanced capability.