Engineers Clinic
IntermediateSoftware trackFP-AI-05

Steel-surface defect detection for an inline inspection camera

Train an image classifier on a public steel-surface defect dataset, hit a recall target for the defects that matter, and check that it runs fast enough for the line.

AI, Data & AnalyticsComputer Vision
6 Guided Steps37h Internship TierSubmit: GitHub repo with training code and saved model + reports/eval.md (confusion matrix, per-class recall) + reports/latency.md + one-page note for the quality managerVerified CertificateAI Rubric Graded
Program Overview

Industry project · for Rheinmark Kaltband GmbH, a cold-rolled steel strip mill near Duisburg with a plant in Pune

Rheinmark rolls thin steel strip for automotive suppliers at two plants, one in Germany and one in Pune. At the end of each line, two inspectors watch strip pass at 3 metres a second and mark surface defects by hand. They miss things. Last year 14 coils were rejected by a customer for scratches and inclusions that went through inspection, at an average cost of €9,200 per rejected coil, plus freight.

The plant has installed a line-scan camera that cuts the strip image into 200 × 200 pixel tiles. The quality manager wants a model that labels each tile as one of six defect types or clean, so inspectors only look at flagged tiles. Her targets are concrete: - recall of at least 95% on inclusions and scratches, the two defects customers reject coils for; - no more than 1 false flag per 50 clean tiles, or inspectors will start ignoring the alerts; - under 20 ms per tile on the plant's CPU-only edge PC, so the model keeps up with the line.

You will use the public NEU surface defect dataset (1,800 greyscale images, six defect classes, 300 each), which matches the camera's tile size, and generate clean tiles by augmentation or from a second public set. You will build a simple baseline, fine-tune a small pretrained CNN, analyse its errors class by class, tune decision thresholds per class and measure CPU latency.

Done looks like a training repo, a confusion-matrix report with per-class recall, a latency benchmark, and a short note for the quality manager on whether the model is ready for a shadow trial on one line.

Image classificationTransfer learningData augmentationPer-class threshold tuningModel latency benchmarkingError analysis
What you submit

GitHub repo with training code and saved model + reports/eval.md (confusion matrix, per-class recall) + reports/latency.md + one-page note for the quality manager

Stack: Python, PyTorch, torchvision, scikit-learn, ONNX Runtime

How it is graded
  • Meets the recall target30

    Inclusion and scratch recall are at least 95% on the held-out test set, or the gap is shown with the threshold trade-off.

  • False-flag rate20

    False flags on clean tiles are measured and kept at or below 1 in 50, with the threshold that achieves it.

  • Sound evaluation25

    Train, validation and test splits are fixed and stratified, augmentation is applied only to training data, and a confusion matrix is reported.

  • Deployable15

    CPU latency per tile is measured over 1,000 runs and is under 20 ms, or the fix needed is stated.

  • Note for quality10

    A one-page note gives a clear yes or no for a shadow trial with the numbers and known weak spots.

Pass 60% · Merit 75% · Distinction 90%

Learning Outcomes
Prepare and split an image dataset without leakage
fine-tune a pretrained CNN
analyse errors with a confusion matrix
set per-class thresholds against business targets
benchmark inference on CPU
Target Audience

Engineering Students

Diploma, B.Tech, B.E., BCA, MCA, or M.Tech students seeking practical experience.

Aspiring Developers

Developers who want to build proof-of-work capstone projects for tech resumes.

Job Seekers

Graduates looking for AI-evaluated code review & verified industry credentials.