xingchenshanyao / NNLearning

这里只是学习深度学习过程中的一些记录
4 stars 0 forks source link

VPGNet———车道线检测的入门检测模型 #15

Open xingchenshanyao opened 1 year ago

xingchenshanyao commented 1 year ago

参考来源:

https://blog.csdn.net/weixin_51449137/article/details/125658630

VPGNet 是2017年CVF会议的的车道线检测的论文,提出了使用消失点Vanishing point 来引导对车道线和车道标记的检测,是车道线检测的入门论文。

xingchenshanyao commented 1 year ago

摘要: 文章 提出 vanishing point 的回归 引导完成对车道线的检测; 为了解决极端天气下没有基准数据集的问题,本文建立了拥有车道线和车道标记的2W张基准数据集(resolution:1288 x 728),包括17中车道线和道路标记,有4种场景,无雨,小雨,大雨,夜间 本模型 多任务,端到端,速度可以20帧 效果展示: 1

xingchenshanyao commented 1 year ago

数据收集和注释: 手工标注lane和road marking的角点,连接角点以形成多边形,从而为每个对象生成像素级遮罩注释。以类似的方式,每个像素都包含一个类标签。 像素级注释(pixel-level annotation)的原因: 对细长的车道线标注进行训练时候,会因为卷积操作和池化操作使特征消失,更近一步的,很多的神经网络的输入都会调整大小(resize),一般都是减小分辨率,这样会让细长的特征标注几乎不可见,所以本文提出:将像素级注释投影网格级(8 x 8)掩膜(pixel-level annotation projecting grid-level (8 x 8)mask)上面,图像被分成8 x 8 的 cell,则cell的lable 就是位于cell 里面的像素注释(标签)(pixel annotation(label))。网络的输入是 640 x 480,输出是80 x 60,输入和输出的比例因子是1/8,(8次下采样),Figure 2 是 pixel-level annotation projecting grid-level 的效果。 2 同时也对消失点(vanishing point) 进行了标注,人工标注,vanishing point 定义为平行车道相交的点,根据场景,将消失点划分为easy,hard,None,(easy:clear scene,比如straight lane; hard: cluttered scene,比如 jam; None: no vanishing point ,比如 intersection(十字路口)),车道标记总共定义了17个类别;table 2 是具体类别: 3

xingchenshanyao commented 1 year ago

神经网络: 本文提出的算法是有竞争力的,表现为提出的网络可以对车道线和车道标志进行检测和识别,并且回归上文提出的 vanishing point. 文章 提出了另一种利用 grid-level mask 的回归方法。原先回归的方法都是对box 回归,但是box 回归对单一的object是有效的(比如 traffic signs 和 vehicle,特征是一块一块的那种 ),对于车道线和车道标志,细长的结构,效果不好,因此文章提出了利用 grid-level mask 的回归方法: 网格上的点回归到最近的网格单元,并通过多标签分类任务组合来表示一个对象。整合两个独立的目标,车道和道路标记,它们具有不同的特征和形状。在后处理中,车道类只使用多标签任务的输出,道路标记类同时使用网格框回归和多标签任务(见4.4节)。此外,在训练车道和道路标记模式时,增加消失点检测任务来推断全局几何上下文(见第4.2节)。 Table 3 和Figure 3 是网络结构参数: 4 5 网络包括四个模块的输出,每一个输出的结果都可以进行结果互补(一个结果可以作为另一个结果的输入)

xingchenshanyao commented 1 year ago

消失点预测任务(Vanishing Point Prediction Task(VPP)): 在光照,遮挡等原因,普通网络很难得到车道线和车道标记的全局信息,因此本文提出VPP任务用来预测消失点(消失点是指三维空间中的平行线通过图形视角汇聚到二维平面的点),VP可以提供场景的全局几何背景,这对于推断车道和道路标记的位置很重要。 接下来的问题是如何去确定消失点VP: Borji展示了一个CNN可以定位VP。作者利用softmax分类器对网络的空间输出进行矢量化,从而预测VP的准确位置。但是预测还是有误差的;文章实验了使用回归损失(即L1, L2,hinge损失),直接计算与VP的像素距离,但是很难平衡与其他任务(对象)的损失,发现这种方式不行;使用叉熵损失来平衡每个检测任务梯度传播,采用一种二值分类方法,直接将背景和前景进行分类,二进制掩码是在数据层通过绘制一个以我们注释的VP为中心的固定大小的圆来生成的。但是,在VPP任务上使用该方法会导致训练损失的收敛速度极快。因为背景和前景像素的数量不均衡。这种方式不行; 最后,设计了 VPP模块,用来改善场景表示,模块包括一个全局上下文,用来预测遮挡或者极端光照条件下的隐形车道问题;为了推断全局信息,使用 quadrant mask 将整个图片分成4部分,这四部分的交集就是VP,给VPP模块的输出定义了五个通道:每一个输出的像素都属于这五个通道中的一个,absence 通道是表示没有VP点,4个quadrant 通道表示图像的四个部分; 如果VP出现在图像中,每个像素都应该分配到象限通道中的一个,而absence 通道是不能选择的。具体来说,第三个通道从道路场景中提取右上角对角线边缘,第四个通道从道路场景中提取左上角对角线边缘。另一方面,如果VP很难被识别(例如十字路口、遮挡),每个像素都会被归类为absence通道。在这种情况下,absence 通道的平均置信度会很高。 象限方法丰富了包含场景全局结构的梯度信息,Figure 4 是可视化的二值化和象限 VP标注方法,b是训练损失。 6

xingchenshanyao commented 1 year ago

训练: 网络包括四个任务,涵盖不同的背景。检测任务识别对象并覆盖局部上下文,VPP任务覆盖全局上下文。如果在同一训练阶段对这些任务进行训练,网络会受到某一个任务的影响。我们注意到在训练阶段VPP任务变得依赖于车道检测任务。车道与VP之间的依赖关系暗示了很强的信息相关性。 分两个阶段训练网络,在第一阶段,只训练VPP任务,将除VPP模块外的每个任务的学习率置为零,通过这种方式,我们可以学习图像的全局上下文。虽然只训练VPP任务,但由于相互共享层的权值更新,其他检测任务的损失也降低了20%左右。 第二阶段训练所有的任务,使用第一次训练的结果初始化参数,因为多个训练任务在一起训练,所以平衡学习率很重要,(1)是损失函数: 7 L_{reg} 是网格回归(grid regression) L1 loss, L{om} and L{ml} and Loss L{vp} 是网络每个分支中的交叉熵损失(cross entropy losses in each branch of the network) 首先,将w1 ~ w4设为1,观察起始loss。然后,我们设置这些初始损失值与损失权重的倒数,使损失是均匀的。 在训练过程中,如果损失之间的规模差异较大,则重复此过程来平衡损失值。第二个阶段在验证精度收敛时停止。 基准数据集场景结构 8

xingchenshanyao commented 1 year ago

总结 -1. 文章主要的创新点是提出了预测 vanishing point 作为全局几何背景,来提升对车道线和车道标记的检测性能,设计了VPP模块来回归VP,对比了直接回归VP点和使用象限(一个图片,四个象限)的方式回归VP点的方法性能; -2. 提出了在像素水平上进行标注,之后映射到图片上的网格上,一整图片划分成8 x 8 的网格; -3. 提出了新的极端场景下的数据集,包括17中车道线和道路标记,有4种场景,无雨,小雨,大雨,夜间