王老头

导航

论文阅读《Towards End-to-End Lane Detection: an Instance Segmentation Approach》

先分享一篇比较好的论文讲解:https://mp.weixin.qq.com/s?__biz=MzUxNjcxMjQxNg==&mid=2247484611&idx=1&sn=273851087cc6ea2cf92fdb7e3658f8b5&chksm=f9a2764cced5ff5a3673cd7d18674725c6e4aa6c6db59952b062082a789262e7e60377dc0755&mpshare=1&scene=1&srcid=0612oBg7J15vjYAsvgOwV232&pass_ticket=SM3Zjd8RlcWvcbAGAu3F2ZnAVZItCVv3DON%2BVf82wNQtwq3ewMkXeUZQnbAcUviF#rd

最近在做车道线检测的问题,我们的思路是先分割再聚类,即需要把每条车道线(不同实例)检测出来。

Abstract:提出一个end-to-end的车道线检测算法,可以解决车道线数目变化(pixel embedding)以及车道视角变化(a learned perspective transformation)的问题。

1、Introduction:针对之前算法不能解决以下问题:a. predifined,fixed number of lanes, b. lane changes。本文设计一个多任务网络分支,主要是车道线分割分支和车道线嵌入分支,可以进行end-to-end的训练。车道分割分支具有两个输出类别,即背景或车道,而车道嵌入分支进一步将分段的车道像素分解成不同的车道实例(instance)通过将车道检测问题分解为上述两个任务,我们可以充分利用车道分割分支的功能,而不必为不同的车道分配不同的类别。

针对之前采用固定透视变换转换到“bird-eye”图再进行车道线拟合,本文提出训练一个网络训练来得到其变换系数,可以对多种道路变化鲁棒。

总的来说贡献点有两个:(1)分支的多任务体系结构,车道分割分支输出密集的每像素车道,而车道嵌入分支进一步将分段的车道像素分解成不同的车道实例。(2)给定输入图像的网络估计透视变换的参数,透视变换允许车道拟合对路面变化具有鲁棒性。

2、Method:将车道线检测看做是实例分割问题,每条车道线的像素被分到不同的车道线实例中。

第一步先通过binary segmentation和lane segmentation(Lane-Net)并通过clustering获得每条车道线的像素属于相应的哪条车道;
第二步训练H-Net网络为了获得一条拟合曲线,获得对应场景的透视变换关系,可以针对不同的场景。

在binary segmentation阶段,由于车道线和背景类别高度不均衡,使用有界逆类加权bounded inverse class weighting)

在instance segmentation阶段,使用聚类损失函数,使得每条车道线像素属于同一条车道时距离很小,而不属于同一条车道距离很大。即通过两个loss函数:其一是var loss,使得属于同一条车道线的像素靠近;其二是dist loss,使得不同车道线像素远离。

最后在H-Net阶段,针对之前转换到鸟瞰图所用的透视变换是固定的,本文学习一个H-Net网络来进行车道线像素点拟合。H-Net输入是图像,label是groundtruth的像素点坐标,采用一般的loss函数,来回归像素点坐标来学习透视变换系数。

3、Results:这是本文end-to-end的车道线检测结果

还没开源,等大佬开源了再尝试一下吧~

 

论文链接:https://arxiv.org/abs/1802.05591

github链接:https://github.com/MaybeShewill-CV/lanenet-lane-detection

 

posted on 2018-06-12 23:01  王老头  阅读(3244)  评论(0编辑  收藏  举报