尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

tusimple-benchmark车道线标注格式详解:h_samples、lanes与-2占位符到底怎么用

tusimple-benchmark车道线标注格式详解:h_samples、lanes与-2占位符到底怎么用 tusimple-benchmark车道线标注格式详解h_samples、lanes与-2占位符到底怎么用【免费下载链接】tusimple-benchmarkDownload Datasets and Ground Truths: https://github.com/TuSimple/tusimple-benchmark/issues/3项目地址: https://gitcode.com/gh_mirrors/tu/tusimple-benchmarktusimple-benchmark 是 CVPR 2017 自动驾驶车道线检测挑战赛的官方数据集包含约 7000 段高速行车视频片段。本文用 3 个真实标注例子带你快速看懂车道线标注格式h_samples、lanes与-2占位符到底怎么用并附上可视化验证方法和新手避坑清单。 一、30 秒认识 tusimple-benchmark 车道线检测数据集tusimple-benchmark是 TuSimple 公司为 CVPR 2017 自动驾驶挑战赛发布的官方基准项目包含两项挑战车道线检测和车速估计本文聚焦前者。车道线是高速公路上的主要静态要素为车辆控制提供定位信息。数据集的核心信息如下项目说明训练集3626 段视频片段对应 3626 张标注帧测试集2782 段视频片段无标注需提交预测片段规格每段 1 秒、共 20 帧相机方向接近行车方向标注方式仅标注每段的第 20 帧最后一帧标注范围当前车道 左右车道最多 4 条车道线变道时允许 5 条 关键认知标注不是逐像素的掩码而是在固定行距上采样出的一串点坐标。这也是h_samples和lanes两个字段存在的原因。 二、目录结构快速定位标注文件在哪里数据集的目录结构非常简洁dataset/ ├── clips/ # 视频片段目录 │ └── some_clip/ # 每段 20 张连续图像 └── tasks.json # 训练集为标注数据测试集为提交模板label_data_(date).json中每一行 JSON 对应一个片段第 20 帧的标注用raw_file字段指向对应的图像路径。官方标注样例如下绿色圆圈就是按行采样得到的车道线标注点 三、h_samples 与 lanes 字段逐项拆解附完整示例一条完整的标注 JSON 长这样车道数据已截断{ lanes: [ [-2, -2, -2, -2, 632, 625, 617, 609, ... 314, 307, 299], [-2, -2, -2, -2, 719, 734, 748, 762, ... 1236, 1265, -2, -2, -2, -2, -2], [-2, -2, -2, -2, -2, 532, 503, 474, ... 271, 241, 212, 183, 154, 125, 96, 67, 38, 9, -2, ...], [-2, -2, -2, 781, 822, 862, 903, ... 1269, -2, -2, -2, -2, -2, -2] ], h_samples: [240, 250, 260, 270, 280, 290, ... 690, 700, 710], raw_file: path_to_clip }三个字段各司其职字段类型含义raw_filestr该片段第 20 帧的图像路径laneslist[list[int]]最多 5 条车道线每条车道线是一个横坐标 x列表h_sampleslist[int]采样点的纵坐标 y行号等间距排列三条核心规则长度对齐len(lanes[i]) len(h_samples)每条车道线的 x 列表必须与h_samples等长等距采样h_samples按与拍摄车相同的距离间隔取值上例为 240→710、步长 10共 48 个采样行配对成点把lanes[i]中每个元素与h_samples对应位置的 y 一一配对就得到该车道线在图像上的(x, y)坐标点序列。官方指南 doc/lane_detection/guideline.md 中概括为zip每条车道线与h_samples即可得到该车道线的连续点序列。配对后的效果如下图所示❌ 四、-2 占位符到底怎么用缺失车道线的标记规则-2是新手最容易困惑的地方记住一句话即可lanes中的-2表示在该 h_sample 行上不存在车道线。出现-2的典型场景有三种车道线从某个行才出现如从远处驶来、从画面外进入车道线在某行延伸出画面x 超出图像范围车道线被车辆、路障遮挡该段不可见。回到上面的示例第一条车道线的前 4 个值都是-2对应 240~270 行它的第一个有效点是 (632, 280)——即第 280 行、横坐标 632 像素处。⚠️ 提交预测结果时同理某个采样行超出视野或没有车道线就记录-2而不是 0 或随意插值。评估代码在打分时会统一忽略负值只需按x 0过滤即可参考实现见 evaluate/lane.py。️ 五、如何快速可视化验证标注配对 h_samples 与 lanes拿到标注后最快的验证方式是把点画回图像上。核心逻辑只有 5 行import json, cv2 line json.loads(open(label_data.json).readline()) img cv2.imread(line[raw_file]) for lane in line[lanes]: for x, y in zip(lane, line[h_samples]): if x 0: # 过滤 -2 占位符 cv2.circle(img, (x, y), 5, (0, 255, 0), -1)官方示例笔记本 example/lane_demo.ipynb 就用这种方式展示先读取原始图像再把lanes与h_samples配对绘制绿色圆点最后与预测结果对比打分是理解标注格式的最好的入门材料。⚠️ 六、新手避坑清单5 个最常见的错误长度不对齐某条车道线的 x 列表长度 ≠len(h_samples)评估代码会直接抛出Format of lanes error提交车道线过多提交条数 真实条数 2 时该图 accuracy 直接记 0。真实标注最多 4 条少量 5 条请只提交最有把握的车道线缺少 run_time预测结果必须包含run_time列表每帧耗时单位毫秒漏写直接报错算法太慢官方说明低于 5 fps单帧约 200ms会被视为无预测车道线虽然不按时速排名但太慢同样拿 0 分误用 -2-2不是不标注而是该行确实没有车道线。预测时缺失行必须显式写-2。 打分阈值速记定义见 evaluate/lane.py预测点与真实点横向误差小于20 像素按车道线角度修正记为正确点一条车道线正确点比例达到85%才算匹配成功。 七、快速开始克隆仓库跑通第一个示例git clone https://gitcode.com/gh_mirrors/tu/tusimple-benchmark克隆后建议按以下顺序阅读挑战赛完整说明与标注格式doc/lane_detection/readme.md数据格式与评估指南doc/lane_detection/guideline.md可视化 评估演示笔记本example/lane_demo.ipynb官方评估实现evaluate/lane.py数据集文件较大下载地址请在项目仓库的Issue #3中获取。一句话总结h_samples给出在哪些行采样lanes给出每行车道线的横坐标-2表示这行没有车道线。三者配对后就是完整的一条车道线理解了这个点tusimple-benchmark 的车道线标注就再没有门槛了。【免费下载链接】tusimple-benchmarkDownload Datasets and Ground Truths: https://github.com/TuSimple/tusimple-benchmark/issues/3项目地址: https://gitcode.com/gh_mirrors/tu/tusimple-benchmark创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表