Project

ÖBB PoC

Python Computer Vision Synthetic Data Ghegapixel YOLOv8 3D Rendering

Problem

Rail-fastener defect detection — spotting missing, broken, or misaligned clips on the track — needs large volumes of annotated training data. Real defect footage doesn't exist in sufficient numbers: it's vanishingly rare in operational camera data and can only be found and labeled at prohibitive manual cost. Standard deep-learning approaches fail right at the data problem.

Solution

  • Generated a fully synthetic dataset with Ghegapixel: 120,000 images across 4 classes (30,000 each of missing, broken, and misaligned fasteners, plus healthy reference images)
  • Parametric 3D simulation of the track infrastructure with realistic ballast, lighting, and dirt variation, and camera modeling matched to ÖBB's actual system parameters
  • Trained the model with YOLOv8 in a closed generate → learn → improve loop — without a single real defect image in the training set
  • Proof of concept to validate the synthetic-data strategy for rail operations

Result

PoC completed successfully. The model, trained exclusively on synthetic data, achieved the best detection accuracy for broken and missing fasteners of any model ÖBB has tested to date — without a single real defect image in training. Proof that synthetic training data can match and beat real-world performance.

Process

Process: from 3D simulation through synthetic data to the trained model

From 3D simulation and parametric variation through synthetic image data to training and evaluating the detection model.

Example: synthetic defect

Example of a synthetically generated rail image showing a defect

A slice of the synthetic dataset — rendered for realism, with annotatable defect classes for training.

Download flyer (PDF)

What the customer said

Are these your renders now, or real photos? I can't tell the difference anymore.

ÖBB, Austrian Federal Railways

← Back to projects

Facing something similar?

Let's talk