RCLane: Relay Chain Prediction for Lane Detection
- 笔记摘要
- 动机
- 模型结构
- 方法
- 其他
- 模型试验结果
笔记摘要
该篇论文的核心创新点在于head。论文根据车道线既需要局部信息,也需要全局信息才能很好拟合的特性,设计了相应的算法head。并且论文实验证明该方法在各大公开数据集上均取得了sota。
作者称这种方法为延迟链车道线检测方法(RCLane)。该方法通过记录每个点到前后两个点的距离,从而把握车道线的局部信息;再通过监督车道线的两端的端点,整体把握车道线的长度。
动机
论文中主要强调了现有基于分割和锚的车道线检测方法的不足,如下图所示。
作者说明了基于分割的方法,对于车道线的整体形状不能够很好的拟合;而基于锚的方法则不能够很好的描绘出Y型车道线和曲线。
基于以上的两个问题,作者设计出了延迟链的车道线检测方法(RCLane)。
模型结构
该图即为RCLane的整体模型结构。
我们先简单的看一下该模型结构。从整体来看,图片经过Backbone后,直接生成了三种类型的head。然后再通过解码,得到模型的输出结果。
首先我们来看head部分。第一个是Segment head,顾名思义,就是输出车道线的分割结果。第二个是Distance head,从可视化中颜色深浅来看应该是距离摄像头越远的distance越大,从后面方法的解释我们可以知道,该模型结构中显示的distance head其实是backward
D
D
D(
D
b
D_b
Db)(不清楚没关系,后面会进一步解释)。第三个是Transfer head,从可视化来看,它表示的是从镜头远到近,当前的车道线关键点到下一个关键点直接的距离,后面方法的解释我们可以知道,该模型结构中显示的transfer head其实是 backward
T
T
T(
T
b
T_b
Tb)。
现在我们来看模型的解码部分。首先将Segment head中出来的结果,通过Point NMS(点极大值抑制)来获取稀疏化过后的车道线关键点。然后再将稀疏化后的点与另外两个head进行结合,获取当前点的前后两个关键点。模型结果的可视化来看,我们目前尚不清楚Distance head的作用。并且最后的IOU NMS的作用我们也尚不清楚。
至此,从模型结构的图片中我们能够获得信息已经基本理解完毕(其实光看可能不好理解,还是结合论文中方法部分的说明更好理解)。
方法
前面我们已经提到过,该论文中,作者主要解决的就是把握好车道线的全局以及局部的位置信息。那么其实方法部分,我们只需要知道它究竟是如何去做的即可。
**局部的位置信息。**该信息的获取主要依靠Transfer head(下面简称T)。T是一个大小为
R
H
×
W
×
2
R^{H\times W\times 2}
RH×W×2的张量。也就是说它有4个通道,这4个通道两两分配为
T
f
,
T
b
∈
R
H
×
W
×
2
T_f, \ T_b \in R^{H\times W\times 2}
Tf, Tb∈RH×W×2,分别表明当前关键点与前一个关键点和后一个关键点之间的
(
Δ
x
,
Δ
y
)
(\Delta x, \Delta y)
(Δx,Δy)。
车道线当前关键点跟下一个关键点(无论前向还是后向)的公式如下。
其中,
d
d
d是一个固定的超参数(从该公式可以看出,当我们以关键点
p
i
p_i
pi为圆心,
d
d
d为半径,画圆,与车道线的前后两个交点即为前向的下一个关键点和后向的下一个关键点)。因此当我们从Segment head得到稀疏化后的车道线关键点后,可以再根据
T
b
T_b
Tb和
T
f
T_f
Tf得到每个关键点的前后关键点,公式如下。
由此,车道线的局部位置信息便把握住了。但是,车道线的长短全局信息无法从该head中获得,作者又设计了Distance head。
**全局信息。**Distance head是一个大小为
R
H
×
W
×
2
R^{H\times W\times 2}
RH×W×2的张量。它与T与之对应的有
D
b
D_b
Db和
D
f
D_f
Df。主要记录了当前关键点
p
i
p_i
pi到前向的终点
p
e
n
d
f
p_{end}^f
pendf和到后向的终点
p
e
n
d
b
p_{end}^b
pendb之间的距离。从而可以表明从当前关键点
p
i
p_i
pi还要向前迭代计算下一个关键点的次数
D
f
(
p
i
)
D_f(p_i)
Df(pi)。
最终的局部位置信息和全局信息的结合如下图所示。
最终通过
T
f
T_f
Tf和
T
b
T_b
Tb将会获得前向的一系列点和后向的一系列点。再通过IOU NMS对这些由点生成的线进行筛选。另外,论文中是将segment head稀疏化得到的所有点都作为起始点,计算它的前向后向。
其他
该论文在损失函数上并没有进行特别的改动,因此没有加以解释说明。另外,论文中特别提到了信息编码过程(也就是如何对模型进行监督),我认为理解了解码,可能编码过程也是一个比较自然的过程,所以没有进行多余解释,敬请原谅。下面是他的损失函数。
模型试验结果
引用:
Xu, S., Cai, X., Zhao, B., Zhang, L., Xu, H., Fu, Y., & Xue, X. (2022). RCLane: Relay Chain Prediction for Lane Detection. In European Conference on Computer Vision (pp. 461-477). Springer, Cham.