Automated lane boundary annotations for the Malaysian urban and highway driving dataset

Published: 1 October 2026| Version 2 | DOI: 10.17632/cnsj5fnb29.2
Contributor:

Description

This dataset provides automated, per frame lane boundary annotations for all 27 video clips released in the companion Malaysian Urban and Highway Driving Dataset by the same author on Mendeley Data (clip DOIs: see the reference list of the accompanying data descriptor, or the companion clip records). Annotations were generated using YOLOP, a pretrained deep learning model for lane and drivable area segmentation, run on every decoded frame of all 27 clips at the native 30 frames per second capture rate, giving 69,972 annotated frames in total (container metadata reports 69,974 frames; two frames could not be decoded). For each frame, the release provides: 18 sampled x positions per side (left_xs, right_xs) at fixed image rows; a lateral offset ratio and derived lane departure flag, computed using the same definition as the vision based lane departure warning framework in Poh Ping et al. (2019, Heliyon, https://doi.org/10.1016/j.heliyon.2019.e02169); a detection_status field (ok, partial, failed); the same annotations in TuSimple format for direct use in common lane detection training pipelines; and the corresponding extracted JPEG frame (frames.zip). A metadata file documents the method, licensing, field definitions and limitations. Across the 69,972 annotated frames, both lane boundaries were detected in 69,788 frames (99.7 percent), only one side in 176 frames, and neither side in 8 frames. These are silver labels: they are generated automatically and have not been manually verified, and should be treated as a starting point for training or benchmarking rather than as ground truth. This version (V2) replaces the 5 frames per second sample of 11,665 frames in V1; the CSV schema differs from V1. Released under CC BY 4.0, consistent with the rest of the dataset.

Files

Steps to reproduce

1. Obtain the pretrained YOLOP lane segmentation weights (yolop-320-320.onnx) from the official repository (https://github.com/hustvl/YOLOP), used unmodified. Run inference with ONNX Runtime 1.30.0 on the CPU execution provider. Only the lane_line_seg output head is used. 2. For each video frame, convert from BGR to RGB, letterbox resize to 320 by 320 pixels preserving aspect ratio (grey padding), and normalize using ImageNet mean 0.485, 0.456, 0.406 and standard deviation 0.229, 0.224, 0.225. 3. Run the normalized frame through the model. Take the argmax of the two channel lane segmentation output to obtain a binary lane mask, crop out the letterbox padding, and resize the mask back to the frame's native resolution (320 by 180 for Clips #1 to #4, 320 by 176 for Clips #5 to #27). 4. Sample the mask at 18 fixed row heights (y = 88 to 173 in steps of 5). At each row, group lane pixels into contiguous runs (gap threshold 3 pixels) and take the centre of each run. The run nearest the frame's horizontal centre on the left side is assigned to the left ego lane boundary, and the nearest on the right side to the right boundary. Rows with no detection on a side are recorded as -2. 5. Compute the lateral offset ratio as (min(distance from the right boundary to the centre, distance from the centre to the left boundary) minus TH times Xm) divided by (TH times Xm), where Xm is the frame's horizontal centre and TH is 0.8. Use the bottommost sampled row where each boundary was detected. This follows the definition in Poh Ping et al. 2019, Heliyon, https://doi.org/10.1016/j.heliyon.2019.e02169. Set lane_departure_flag to True when the ratio is less than 0. If either boundary is missing, leave the ratio empty and set the flag to False. 6. Repeat steps 2 to 5 for every decoded frame of all 27 clips at the native 30 frames per second (69,972 frames; two of the 69,974 frames reported by the container metadata could not be decoded). Write one row per frame to the per clip and combined CSV files, and one JSON line per frame to the combined TuSimple format file. 7. Save every frame as a JPEG (quality 90, native resolution) and archive them as frames.zip, with paths of the form frames/clip_NN/SSSSS.jpg matching the frame_jpg_path column.

Institutions

Categories

Computer Vision, Intelligent Transportation System, Road

Licence