Back to projects
AI / ML

Factory Automation & Computer Vision

  • Sep 2025 - Present
  • Project Lead
  • In production

Led the development of a factory automation system for a major IDM's Southeast Asian facility. The platform integrates computer vision models for automated defect detection across Die Bonding, Clip Bonding, and Wire Bonding equipment, with a real-time analytics dashboard for monitoring and alarming.

0.940.870.78YOLO DEFECT DETECTION · BONDINGFactory Automation & Computer Vision

80%

Manual inspection time cut

3

Bonding equipment lines integrated

Real-time

Defect detection latency

24/7

Production deployment

01

The Problem

Semiconductor manufacturing facilities relied heavily on manual inspection of bonding processes, which was time-consuming, error-prone, and couldn't keep pace with production line speeds.

Operators were spending more time triaging false alarms than running the line. The win wasn't catching more defects — it was earning the operator's trust back.
02

The Solution

Architected a Python-based solution integrating YOLOv5 and OpenCV for defect detection with real-time data analytics pipelines from bonding equipment. Built dashboards for operators and engineers to monitor defect rates, equipment health, and production KPIs in real-time.

03

Key Decisions

  1. YOLOv5 over a custom CV pipeline

    The classical OpenCV pipeline we started with worked beautifully on bench images and fell apart under floor lighting. We retrained YOLOv5 on a labelled set of die, clip, and wire bonds — same class taxonomy, but a model robust to glare, occlusion, and tilt.

    Tradeoff: More inference compute per frame, but offset by removing the brittle threshold-tuning loop after every lighting change.

  2. Kafka between vision nodes and the alarm system

    Detection events flow over Kafka topics instead of direct HTTP. The alarm service, the analytics dashboard, and the historian all subscribe independently, so a downstream outage never backpressures the cameras.

    Tradeoff: Extra infrastructure to run on-prem, but it isolated failure domains exactly where reliability mattered most.

  3. Suppress alarms below a confidence threshold per defect class

    Per-class thresholds (e.g. solder voids tolerate a higher false-positive rate than die cracks) cut alarm fatigue dramatically. Engineers tune thresholds from a dashboard, not by editing config.

    Tradeoff: Required a per-class precision/recall study upfront, but bought us 80% less manual handling.

04

The Impact

Achieved 80% reduction in manual inspection and alarm handling time. Improved defect detection accuracy and enabled predictive maintenance capabilities across the production line.

With hindsight

I'd invest earlier in a labelling pipeline that captures operator feedback directly — every "this was actually fine" click should retrain the next model. We built that loop in v2 and wish it had been v1.

Built with

PythonOpenCVYOLOv5AWSPostgreSQLReactDockerKafka