Internship

Road-marking segmentation with Mask2Former

Fine-tuned a Mapillary-pretrained Mask2Former to segment lane lines, yellow boxes, dividers and other road features in LTA CCTV views, after replacing its label set with the classes the project needed.

Context
Cynapse.ai
Kind
Internship
Role
AI Software Engineer Intern
Period
Sep 2025 – Feb 2026
Stack
  • PyTorch
  • Mask2Former
  • Mapillary Vistas
Dataset grid of CCTV road views with lane lines, dividers and yellow boxes outlined in colour-coded annotations
Annotated training set: lane lines, dividers, yellow boxes and other road features on LTA CCTV views

The problem

Traffic analytics on fixed CCTV needs to know where the lanes, dividers and box junctions are in each camera view. Off-the-shelf segmentation models know generic classes like “road” and “lane marking”, but not the specific features the project needed.

What I built

  • Started from Mask2Former pretrained on Mapillary Vistas, a large street-level dataset, so the model already understood road scenes.
  • Replaced the original label set with the project’s own classes, such as lane lines, yellow boxes and dividers, and adapted the model head to match.
  • Annotated lanes and road features on CCTV frames to build the training set.
  • Fine-tuned the model for panoptic segmentation on these views.
TODO: segmentation output on a CCTV view (before and after fine-tuning, if available)

Result

TODO: Result: a metric such as mIoU or PQ, or a before-and-after example.

What I learned

TODO: One or two sentences in my own words.