← Back to Work

Semiconductor Defect Detection

Emage Development · Jul 2019 - Jul 2020

YOLOv3RetinaNetOpenCVC#/WPF

Key Results

  • › 98% precision in defect identification
  • › 0.2-second inference per image
  • › Two-stage ResNet + YOLOv3 pipeline
  • › Complete ML workflow in a WPF application

The Problem

Semiconductor manufacturing needs precise visual quality control. Manual inspection was slow, inconsistent, and couldn’t keep pace with production line speeds — and small defects missed at inspection turn into expensive downstream failures.

The approach

I worked on this as a junior ML engineer in a four-person team, under a senior CV engineer who set the problems and the direction. The work ran the length of the pipeline: labelling semiconductor defect images and organising datasets, testing classical CV algorithms for preprocessing, and standing up the training servers — which in 2019, before the current tooling existed, was a real piece of work in itself.

The model side was an experimental sweep across ResNet, RetinaNet, Mask R-CNN, YOLOv3 and focal loss. What won was a two-stage pipeline — ResNet followed by a small YOLOv3 — chosen to hold accuracy while keeping inference fast. I also built the C#/WPF desktop application that wrapped the whole workflow: label, train, evaluate, infer.

What happened

The system reached 98% precision at 0.2 seconds per image, and was complete and ready to ship to the client.

It never deployed. COVID-19 hit Vietnam as we finished, the client cancelled, and the company couldn’t survive without the sale — the AI team was laid off. So the honest version of this project is a system that met its accuracy and latency targets and never saw a factory floor.

The foundations stuck: object detection architectures, the full arc from raw data through training to a usable application, and an early lesson that a technically finished system and a delivered one are not the same thing.