具体原理及原文理解,可参考:PolyLaneNet:最新车道线检测开源算法,多项式回归实时高效
推动自动驾驶技术取得巨大进步的主要因素之一是深度学习技术的出现。对于更安全的自动驾驶汽车来说,目前尚未完全解决的问题之一是车道检测。因为这个任务的方法必须是实时的(+30帧/秒),它们不仅必须是有效的也必须是高效的(例如有很高的精确度、快速)。在这项工作中,我们提出了一种新的车道检测方法,它使用一个安装在车上的向前看的摄像头的图像作为输入,并通过深度多项式回归输出多项式来表示图像中的每个车道标记。该方法在保持效率(115帧/秒)的前提下,与现有的方法相比具有一定的竞争力。此外,广泛的定性结果在两个额外的公共数据集被提出,以及在最近的工作中用于车道检测的评价指标的局限性。最后,我们提供了源代码和经过训练的模型,允许其他人复制本文中显示的所有结果,这在最先进的车道检测方法中是非常罕见的。
本文详细介绍怎样复现训练、测试流程。
ubuntu系统(windows系统可能会出现问题)
python3.6.9
pytorch1.4.0
torchvison0.5.0
其他库详见requirements.txt
首先从github上下载作者的源码。然后新建几个文件夹,如下图。
【一定要注意文件夹的路径,作者在readme.md中提到不多,稍不留神就是各种报错】
- 根目录为
PolyLaneNet-master
; - PolyLaneNet-master文件夹下新建
experients
文件夹; - experients文件夹下再新建一个
tusimple
文件夹; - PolyLaneNet-master文件夹下新建
tusimple
文件夹,里面存放训练数据集; - 将tusimple数据集的train_set文件夹下的
clips
文件夹和3个json
文件拷贝到根目录下的tusimple文件夹中。
新建完文件夹之后,需要修改cfgs文件夹中的yaml文件。
可以将./cfgs/tusimple.yaml
文件拷贝到根目录中,将root: "I:/PolyLaneNet-master/tusimple"
修改成自己的路径(训练数据集路径),需要修改两处root。
运行命令,开始训练。
python3 train.py --exp_name tusimple --cfg tusimple.yaml
--exp_name Experiment name.
--cfg Config file for the training (.yaml)
--resume Resume training. If a training session was interrupted, run it again with the same arguments and this option to resume the training from the last checkpoint.
--validate Wheter to validate during the training session. Was not in our experiments, which means it has not been thoroughly tested.
--deterministic set cudnn.deterministic = True and cudnn.benchmark = False
【运行train.py
的时候,会下载主干网络efficientnet-b0,大约20M左右。】
【默认是训练2695次,需要修改训练次数,也是在tusimple.yaml
文件中修改。】
训练模型
训练文件保存在./experients/tusimple/models/
文件夹中。如下图:
训练完成之后,进行测试。
python3 test.py --exp_name tusimple --cfg config.yaml --epoch 2695