关于计算机视觉:SUPER车道线检测异构数据集训练物理驱动拟合

34次阅读

共计 2205 个字符,预计需要花费 6 分钟才能阅读完成。

作者 | 张凯
编辑 | CV 君
报道 | 我爱计算机视觉(微信 id:aicvml)

介绍一篇往年的车道线检测论文 SUPER: A Novel Lane Detection System,作者来自密歇根大学和 SF Motors 公司。

论文:https://arxiv.org/abs/2005.07277

背景介绍

车道线检测算法的钻研最早可追溯至上世纪八十年代,因为车道线自身具备多样性(环岛、穿插线),以及外界光照、车辆遮挡的影响,现有的车道线检测算法仍很难理论用于高安全性的主动驾驶工作中。

单靠提取车道线特色解决车道线检测问题很难应答外界光照、遮挡等不利因素。联结 低层次特色 (车道线、车辆)和 高层次特色(街道场景了解)去进行车道线检测,即网络先学习到街道布局信息、路线几何信息,而后关注车道线信息,兴许会大大提高算法的准确率。

很多基于 CNN 的车道线检测算法的输入都是像素级别的宰割信息,将车道线从场景中分离出来,而后应用后处理算法进行视角变换和车道线拟合。然而大多数办法都漠视了车道线的一个重要个性:绝大多数状况下,车道线都是相互平行的。利用这一重要性质,再应用几何常识解决坡道状况,应用简略的优化办法即可失去准确的车道线多项式。

应用异构数据集训练层次化宰割网络

若要使网络联结车道线特色和场景语义信息,须要同时有语义标注和车道线标注的数据集,然而简直没有这样的开源数据集可供使用。应用如下三个数据集近 30000 张图片联结训练网络:

然而这三个数据集标注的档次、类别不尽相同,即这三个数据集是“异构”的。

  • Cityscape 数据集仅提供了语义宰割标签,不蕴含与车道线相干的标签。
  • Vistas 数据集提供了一些通用的车道线标记。
  • Apollo 数据集提供了比 Vistas 更细粒度的车道线标记。

为了应用异构数据集进行训练,参考了论文:Training of Convolutional Networks on Multiple Heterogeneous Datasets for Street Scene Semantic Segmentation. 联合车道线检测的理论状况,提出了如下图所示的层次化宰割网络:

如上图所示,该网络共有 4 个 Head:

  • Head 1: 将垂直的物体(楼、树、车)与程度的物体(路面)离开。
  • Head 2: 联合 backbone 输入与 Head1 的输入,将垂直的物体和程度的物体进一步细分。
  • Head 3: 联合 backbone 输入与 Head2 的输入,粗略地宰割出带有车道线标记的区域。
  • Head 4: 联合 backbone 输入与 Head3 的输入,准确地宰割出不同类型的车道线。

以上 4 个 Head 对应于 4 个分类器,因为不同分类器输入类别的粒度不同,因而能够用上文提到的异构数据集训练与数据集标注粒度相近的分类器。训练分类器时应用了 softmax 层和穿插熵损失函数。后一个分类器应用了前一个分类器的输入后果,极大地提高了车道线宰割成果。

物理驱动的车道线拟合

在车道线拟合之前,须要将宰割失去的车道线上的点映射到鸟瞰图中(BEV,birds’ eye view),如下图所示

路线中心线的拟合

现实状况下,路线中心线和车道线也是平行的,如下图所示:


车道线的拟合


https://www.mathworks.com/hel…。

下图为车道线检测、拟合的示例:

坡度场景下的弥补

以上的推理在平坦的路面上是正当的,然而若路面有起伏,且仍依照平坦路面进行建模,从输出图像转换为鸟瞰图后,在输出图像中平行的车道线在鸟瞰图中并不平行。因而有必要对有坡度的场景进行弥补。

依据逆透视变换(Inverse Perspective Mapping,IPM)的原理,若输出图像上的点 (u, v) 对应于世界坐标点(x,y,z),则有:

依据上式,显然有:

即:

当路面有起伏时,对路面的起伏水平进行建模:
,则上式能够示意为:

假如是线性函数,即
,则能够很容易失去:

工程实现

  • 在工程实现时,作者应用了 Nelder-Mead simplex 算法优化损失函数,具体可参考论文《Proper initialization is crucial for the Nelder-Mead simplex search》。
  • 在理论利用中,车道线检测算法的输出是一串间断的图片,因而前一帧图片失去的车道线表达式的系数,能够作为拟合后一帧车道线的初始参数。

试验后果

作者应用 Cityscape、Vistas、Apollo 三个数据集进行训练,在 Tusimple、Caltech 上测试,在 Intel Xeon W-2155CPU 和 Titian Xp GPU 上能跑到 11FPS。须要特地指出的是,训练和测试时用的不是同一个数据集,而且训练时同时应用了多个数据集进行训练,这也是本文的特色之一。

在 Tusimple 数据集上的测试后果如下:

上表中的“sc”示意应用了坡度弥补,“sq”示意在以后帧做车道线拟合时应用上一帧的拟合后果作为初始值。能够看到尽管算法没有应用 Tusimple 数据集做过训练,但依然获得了不错的成果。

在 Caltech 数据集上的测试后果如下:能够看到在 Caltech 数据集上,本文提出的办法获得了很好的后果。

总结

  • 针对车道线检测的场景,设计了跨异构数据集训练的卷积神经网络,用于车道线宰割。
  • 在车道线拟合时,充分利用了车道线平行这一先验信息,并给出了拟合时的损失函数和优化办法。
  • 在对车道线拟合时,不仅仅思考平坦路线场景,还对坡道场景做了弥补,进步拟合精度。

仅用于学习交换!

END

正文完
 0