Ike Lim← All projects

Case Study

SIA Paint-Defect Detection

Automated aircraft paint-peel inspection with YOLOv8 - built during my AI engineering internship at Singapore Airlines.

May 2026 – Present

LIVE
PythonPyTorchYOLOv8SAHIOpenCVrembgPower Automate

The problem

Paint-peel defects on aircraft fuselages at Singapore Airlines were caught through manual visual inspection - slow, subjective, and hard to track consistently across fleets.

An earlier detection codebase existed, but it was deeply flawed: its reported performance was inflated by a data-leakage bug, and it wasn't usable in production. I inherited it and rebuilt the system with rigorous methodology.

The approach

Inspection photos are preprocessed end to end: rembg background removal isolates the airframe, SAHI tiles each image into 320×320 crops so small defects survive downscaling, near-black tiles are filtered out, and the background class is pruned to a 1:1 ratio with defects. A single-class YOLOv8l model is then trained on Kaggle.

The key methodological fix was in evaluation: the naive image-level train/validation split leaked aircraft identity across sets and massively inflated reported performance. Moving to aircraft-level splits - no aircraft appears in both train and validation - gave an honest measure of how the model generalises to unseen aircraft.

Inspection photo of an airframe isolated by background removal and tiled into 320x320 crops
Preprocessing - rembg segmentation followed by SAHI tiling

The outcome

On the honest aircraft-level production split, the model achieves mAP@50 0.76 with 0.55 recall. A production inference script scores each aircraft across 15 fixed camera views for both the SIA and Scoot fleets, outputting annotated images and Excel reports and publishing results to SharePoint via Power Automate - replacing manual visual inspection with automated defect scoring.

I also documented the system end to end: an overview and quick-start, a full pipeline walkthrough, tunable knobs and known pitfalls, proposed next experiments, a self-contained rembg notebook, and a user guide written for non-technical operators.

Annotated fuselage view with detected paint-peel regions
Production inference output from one of 15 fixed camera views

Learnings

Evaluation methodology is the difference between a model that looks good and a model that works. Inheriting a flawed codebase taught me to validate every assumption in the data pipeline before trusting any metric - and that clear documentation is what lets an ML system outlive its author.