车道线检测调研(1) 参考资料以及数据集

0. 前言

  • 总目标:一周内调研车道线检测,寻找合适的Demo跑通。
  • 小目标:
    • 汇总车道线检测较好的资料
    • 了解相关数据集的形式
    • 了解SOTA方法以及开源代码
  • 本文内容就是小目标的前两部分
  • 车道线检测应该分为折线预测与分割预测两类
    • 目前只关心前者

1. 车道线检测资料汇总

2. 常用数据集介绍

  • 了解数据集主要是为了了解任务是如何定义的
  • 知乎上有车道线数据集评价
  • 每个数据集需要调研的资料是:
    • 官方资料汇总,数据量,如何下载
    • 数据集是如何组织的
    • SOTA算法能达到怎样精度、推理速度
  • 本文主要介绍 Tusimple 和 CULane,其他数据集还有很多

2.1 Tusimple

  • 基本情况
    • 图森出品
    • 官网下载页面
    • Paper with code
    • 当前的SOTA的accuracy在96%以上,推理速度在1080ti上达到400+fps
    • 位于高速路,天气晴朗,车道线清晰,特点是车道线以点来标注
  • 数据形式与数据量:
    • 7000个1s长的短视频,每个视频20帧
    • 每个短视频最后一帧包含 lane 信息
    • lane 的标注信息通过是 polylines 形式的
  • 数据集目录结构
dataset
  |
  |----clips/                   # video clips
  |------|
  |------|----some_clip/        # Sequential images for the clip, 20 frames
  |------|----...
  |
  |----tasks.json               # Label data in training set, and a submission template for testing set. 
  • 标注结果格式与举例如下:
    • 三个字段,分别是
      • raw_file:字符串,clip最后一帧图像文件的相对路径
      • lanes:格式是 list[list[int]],即 len(lanes) 指的是车道线的数量,len(lanes[id]) 是每条车道线的点数量,lanes[lane_id][point_id] 指的是当前车道线点在原始图像中横向的像素点。数值如果大于0就是正常的像素点,如果数值为-2表示某高度对应的车道线关键点不存在。
      • h_samples:在图像哪些高度(即像素点编号)进行采样,换句话说,所有车道线的高度坐标都是固定的。
    • 各个车道线的实际坐标就是 [[(x, y) for (x, y) in zip(lane, h_samples) if x >= 0] for lane in lanes]
{
	'raw_file': str. 20th frame file path in a clip.
    'lanes': list. A list of lanes. For each list of one lane, the elements are width values on image.
    'h_samples': list. A list of height values corresponding to the 'lanes', which means len(h_samples) == len(lanes[i])
}

{
  "lanes": [
        [-2, -2, -2, -2, 632, 625, 617, 609, 601, 594, 586, 578, 570, 563, 555, 547, 539, 532, 524, 516, 508, 501, 493, 485, 477, 469, 462, 454, 446, 438, 431, 423, 415, 407, 400, 392, 384, 376, 369, 361, 353, 345, 338, 330, 322, 314, 307, 299],
        [-2, -2, -2, -2, 719, 734, 748, 762, 777, 791, 805, 820, 834, 848, 863, 877, 891, 906, 920, 934, 949, 963, 978, 992, 1006, 1021, 1035, 1049, 1064, 1078, 1092, 1107, 1121, 1135, 1150, 1164, 1178, 1193, 1207, 1221, 1236, 1250, 1265, -2, -2, -2, -2, -2],
        [-2, -2, -2, -2, -2, 532, 503, 474, 445, 416, 387, 358, 329, 300, 271, 241, 212, 183, 154, 125, 96, 67, 38, 9, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2],
        [-2, -2, -2, 781, 822, 862, 903, 944, 984, 1025, 1066, 1107, 1147, 1188, 1229, 1269, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2]
       ],
  "h_samples": [240, 250, 260, 270, 280, 290, 300, 310, 320, 330, 340, 350, 360, 370, 380, 390, 400, 410, 420, 430, 440, 450, 460, 470, 480, 490, 500, 510, 520, 530, 540, 550, 560, 570, 580, 590, 600, 610, 620, 630, 640, 650, 660, 670, 680, 690, 700, 710],
  "raw_file": "path_to_clip"
}
  • 官方提供的可视化工具在这里
  • 性能指标研究,官方代码在这里
    • accuracy/FP/FN的公式如下,accuracy是主要性能指标,另外两个只是用来优化模型的
    • 其中 C c l i p C_{clip} Cclip 指的是正确预测的点的数量, S c l i p S_{clip} Sclip 指的是要求预测的点的数量
    • F p r e d F_{pred} Fpred 指的是错误预测的点, N p r e d N_{pred} Npred 指的是所有预测的点的数量, M p r e d M_{pred} Mpred 指的是没有预测出的GT点数量, N g t N_{gt} Ngt 指的是 GT点的数量
    • 如果在预测width时,GT与prediction之间的区别在一定范围内,就认为预测正确。这个阈值的计算还挺麻烦,数学不太好,看得不太懂。
    • 将预测所有 h_sample 中对应的 width

$$
accuracy = \frac{\sum_{clip} C_{clip}}{\sum_{clip} S_{clip}} \

FP = \frac{F_{pred}}{N_{pred}} \

FN = \frac{M_{pred}}{N_{gt}}
$$

2.2 CULane dataset

  • 基本情况
  • 官方论文中给出的示意图

image-20210425111248140

  • 数据形式与数据量
    • 6辆车在北京拍摄
    • 共55小时视频,共抽帧133235,train/val/test 分别是 88880/9675/34680,测试集被分为 normal 以及其他8类有挑战性的场景(如上图b中所述)
    • 图片分辨率1640× 590
    • 每帧图像通过 cubic splines(三次样条插值)标注车道线,具体原理不清楚,本质就是对遮挡以及磨损进行了估计。换句话说,就算车道线被其他车辆挡住了,也会根据其他信息补全。
    • 除了车道线外,还需要标出道路的分界线(barriers)。对于barriers有一段描述,但我竟然没看懂……
      • 什么叫做希望区分出 barriers 所以另外一边的 barrier 就不标了,这有递进关系吗……
      • 说关注 four lane markings,什么是 four lane marking?如果8车道也只标4道?4道包括barrier吧。
      • 我是这么理解的:最多标注4个车道线(包括barriers),离车辆最近的四条线

We also hope that our algorithm could distinguish barriers on the road, like the one in Fig. 2 (a) (1). Thus the lanes on the other side of the barrier are not annotated. In this paper we focus our attention on the detection of four lane markings, which are paid most attention to in real applications

  • 标注结果格式
    • 每张图片对应一个txt文件,txt文件中每行代表一条车道线,具体形式是一组通过空格分割的浮点数,每两个作为一个x,y坐标
    • train/val/test 的样本列表有对应的文件,其中 {train/val/test}.txt 就是图片列表,{train/val}_gt.txt 一行则包括6个部分,分别是原始图片路径、分割结果路径、以及四个0/1结果数字(表示4条车道线的标签是否存在)
    • 测试集没有标签,训练集有txt以及seg标签。
  • 4
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值