Normal and Defect classification.
*Disclaimer : This project is currently ongoing, and due to safety protocols, I cannot disclose the company name or share any related images.*
I think the best way to learn something is to jump straight into the application.
That's how I've learned, and at some point, I realized I needed to understand the basics too—like math, AI fundamentals, and so on.
This sealant project was one of those applications. It was a team project for a class, guided by an AI startup.
Our task was to detect normal and defective sealants.
Problem Identification
When making a silicon sealant at the factory, they imprint the label directly on the cylinder instead of wrapping it around.
Since there are several steps involved due to the different color inks, there can be issues like mismatches, misalignments, or labels not being printed at all.
Our task was to detect these defective sealants from the normal ones.
It may sound easy, but it really wasn’t.
At first, we just trained a Vision Transformer to solve this problem.
I used a pretty naive approach, since I didn’t really know much about Artificial Intelligence back then.
I split the dataset into train, validation, and test sets, and ran some F1-scores.
The results looked great—99% accuracy, perfectly distinguishing defects from normal ones.
So, our plan was to make it faster.
Vision Transformer is heavy because of the attention mechanism, so I switched to a TinyVGG model.
So far, so good. The class ended with good grades, but the results of classification were devastating.
I believe the issue was with the transformations.
The original images were high-resolution, but I wasn’t able to train on Google Colab (since we were required to use Colab for the class).
So, I downsampled them to a lower resolution. And that's when the features got smushed.
Currently ongoing
Thanks to the AI startup company, I got a chance to re-do the classification task. Even though the goal has been changed a little bit, but I am trying vaious approach to handle this problem. I tried anormaly detection, which did not work well, YOLO, and patch-based supervised learning methods. I'll keep updating the results.