论文题目:End-to-end Lane Detection through Differentiable Least-Squares Fitting

开源代码:github.com/wvangansbeke

一、概述

本篇论文是一篇关于车道线检测的文章,该文章的创新点在于实现了端到端的车道线拟合,输入图片,输出车道线曲线模型参数。相比于之前传统方法把车道线检测和曲线拟合分开两步去做的方式,显得更简洁。

二、算法流程

该算法在思路上比较简单,就是把传统方法的两个步骤放入一个网络里去执行,第一部分是深度网络提取特征,结果就是在图片每个像素上给予一个权重,该权重表示的就是该像素属于车道线的概率,第二部分就是根据第一部分提取的权重,以ground-truth中的曲线为基准,通过反向传播修正网络参数,输出的就是拟合出来车道线曲线参数。

1. 网络结构

该论文提出的网络结构如下:

该网络的两个部分区分的很明显,一个“Deep network”负责给像素打上权重值,另一个“Least-squares layer”负责拟合车道线参数。所以这一部分没太多好介绍的。

2.基于权重的最小二乘

拟合问题,本质上是一个最小二乘问题,所以“Least-squares layer”需要根据最小二乘建立模型才行。只不过,这里相比于传统的最小二乘,多了个权重矩阵,这个权重矩阵“Deep network”识别出来的每个像素的权重值,至于这个权重后面是怎么使用的,下一部分会讲。

我们见到的传统最小二乘是这种形式:

而改进后的最小二乘是这种形式:

其中w就是权重矩阵,具体内容为:

3. 损失函数设计

这一步也很简单,既然ground-truth中有一个曲线模型,网络自己又估计出一个曲线模型,那直接对两个模型的y值求平方差不就可以了。

更形象一点的表示是下面这种:

这里面浅蓝色所表示的就是误差值

4. 网络训练

在这篇文章中,作者对比分析了三种参数更新方式,为了形象解释这三种之间的区别,作者画了一张图。

这张图里三色的点指的是像素,点越大代表权重越大,绿色直线代表ground-truth给的真值,黑色的直线代表网络估计的值。三行代表三种方式,每一行从左到右代表收敛过程。下面结合这种图分别说一下三种方式:

1) 更新像素点的xy坐标(对应图中的第一行),也就是说网络训练时,通过更新坐标值,使得估计出的曲线更接近ground-truth给出的曲线。

2) 更新像素的权重(对应图中的第二行),网络训练时,更新像素的权重,通过上面说到的带权重的最小二乘,就可以改变曲线的走向。

3) 坐标和权重同时更新(对应图中的第三行)。就是1)和2)的结合。

作者选择了第二种,因为图片的像素的坐标是不能改变的。原文是“For the lane detection task in the next section we focus on the second case, where the coordinate locations are fixed, as they represent image pixel coordinates that lie on a regular grid.”(看到他这句话,我都有点郁闷了,既然这样,你直接说第二种不就行了,干嘛还要拿第一种和第三种出来对比)

三、实验效果

作者祭出了一张图来展示他实现的端到端的预测效果,图中左侧绿线是ground-truth,红色是网络预测出来的结果,从实现效果上看倒是不错。

为了更好的展示网络的中间过程,作者在这张图片的右半部分展示了权重的热度图,从图中可以看出,权重高的地方确实都是在车道线上。

四、总结与思考

作者通过端到端的方式实现了车道线检测,网络的两个部分分别识别权重和曲线模型,从实验效果上看,完整识别出了车道线。

一点思考:

端到端这个事情到底好不好,这是一个老生常谈的问题,这种争论主要集中在有明确几何模型的领域,因为没有明确模型的领域传统方法几乎无从下手,即使做了一些工作,效果也不好。 我们常接触的有明确模型的方面包括slam、车道线检测等,在slam中,位姿的更新是有明确的数学模型的,车道线的拟合也是有明确的模型可以做,深度学习的不可解释性在明确的物理模型面前显得没法强势起来。但也不是说就完全没有用武之地,在slam和车道线检测中都需要先提取特征,这些提取受光照等各种环境影响,而深度学习只用于提取特征,之后再用明确物理模型去拟合的方式目前来看更合理一些,我在我另一个专门讲语义slam的专栏里也介绍了一些论文,多数是采用了这种做法。