本文是一篇2018年IEEE IV会议上的端到端车道线检测的文章,宣称可以适应变化的车道环境,并且速度可以达到50FPS(感觉聚类时间没加进去)。

文章链接:《Towards End-to-End Lane Detection an Instance Segmentation Approach》

核心思想:

采用实例分割的方式得到每条车道线的像素点集,通过学习出路面的透视投影矩阵,将前视图转换到鸟瞰图视角,拟合每条车道线的曲线方程,最后逆变换回原视图。

框架结构:

本文包括两个模型:LaneNet和H-Net。LaneNet模型先对车道线做了二值分割,然后聚类得到任意数量的车道线实例;H-Net模型用于生成透视变换矩阵将前视图转换到鸟瞰图,然后做车道线拟合,最后再逆变换回前视图。

实现细节:

Lanenet网络包含两个子任务,即二值分割任务和实例分割任务,如下图所示。二值分割任务是一个两类别(车道/背景)的语义分割;实例分割任务使用基于one-shot的方法做距离度量学习,输出一个车道线像素点距离,基于归属同一车道的像素点距离近,不同车道线像素点距离远的基本思想,利用meanshift聚类得到各条车道线。

H-Net网络负责像素点坐标转换预测,将图像输入到H-Net,它输出对应的鸟瞰图变换矩阵,来替代传统做法。完成鸟瞰图变换之后,使用最小二乘法拟合多项式,从而完成车道线检测。(如果直接在原始图像画面拟合曲线,那么必须使用高阶多项式才能够应付曲线车道。所以针对这个问题的一个常用解决方法就是将图片转成鸟瞰图视图,这样车道之间是彼此平行的,曲线的车道就可以通过2阶或者3阶的多项式进行拟合)

要点分析:

1. 语义分割任务采用Encoder-Decoder结构的ENet模型,包含五个阶段:阶段1,2,3属于Encoder,阶段4,5属于Decoder。Lanenet的语义分割任务和实例分割任务共享阶段一和 阶段二,并将阶段三和后面的Decoder层作为各自的分支进行训练;其中,语义分割分支的输出是单通道的图像,实例分割分支的输出是N通道的图像,N为embedding vector 的维度。

2. 实例分割任务通过为每个像素初始化一个 embedding 向量。embedding相比于onehot编码而言,用更少的特征维数来表示特征。训练得到的embedding vector用于cluster,即可提取出每个车道线的实例,能检测不限条数的车道线。

3. 传统的车道线拟合方式是将图片投影到鸟瞰图中,然后使用三次多项式进行拟合,在这个过程中转换矩阵只被计算一次,所有的图片使用的是相同的转换矩阵,这会导致坡度变化下的误差。为了解决这个问题,H-Net网络通过学习的方式预测透视变换矩阵的参数,其输出是一个 六维的向量。

H-Net 由六层普通卷积网络和两层全连接网络构成,其网络结构如图所示:

曲线拟合对同属一条车道线的所有像素点进行重新建模,即通过坐标 y 去重新预测坐标 x 的过程,将同一个实例的点通过变换矩阵H转换后使用最小二乘法拟合,如下图所示:

4. 在创建分割标签的时候,遇到车辆遮挡、虚线、磨损线时,选择用实线将同一个实例连起来标,并对没有的地方进行预测。本文语义分割任务采用交叉熵损失函数并用bounded inverse class weight加权来调节车道线与背景类别不平衡的问题,其中,p 为对应类别在总体样本中出现的概率,c 是超参数(ENet论文中是1.02);

实例分割任务的损失函数由var loss使vector向mean vector Uc靠近从而降低类内距离和dist loss使cluster center彼此远离从而增大类间距离两项组成,其中C是车道线数量,Nc 是属于同一条车道线的像素点数量,Uc 是车道线的均值向量,Xi 是像素向量:

H-Net任务的损失函数采用最小二乘法,根据拟合曲线调整点的坐标,反映射回原坐标后,通过求转换坐标前后的MSE损失来训练参数:

实验结果:

评估方式主要采用分割的精准度和召回率以及算法耗时,如下图所示:

思考与展望:

  1. 主干网络采用轻量级的ENet模型,在性能和效果上较为一般,可以尝试更好的分割网络。
  2. 本文使用meanshift密度聚类方式不需要实现设定簇类数量,但是由于聚类的点数太多会造成耗时太长,无法满足实时性要求。

Demo测试:

测试中,待添加

欢迎关注小编公众号,最新文章同步更新。

Lanenet论文解读相关推荐

  1. 【论文解读】LaneNet 基于实体分割的端到端车道线检测

    前言 这是一种端到端的车道线检测方法,包含 LanNet + H-Net 两个网络模型. LanNet 是一种多任务模型,它将 实例分割 任务拆解成"语义分割"和"对像素 ...

  2. 自监督学习(Self-Supervised Learning)多篇论文解读(下)

    自监督学习(Self-Supervised Learning)多篇论文解读(下) 之前的研究思路主要是设计各种各样的pretext任务,比如patch相对位置预测.旋转预测.灰度图片上色.视频帧排序等 ...

  3. 自监督学习(Self-Supervised Learning)多篇论文解读(上)

    自监督学习(Self-Supervised Learning)多篇论文解读(上) 前言 Supervised deep learning由于需要大量标注信息,同时之前大量的研究已经解决了许多问题.所以 ...

  4. 可视化反投射:坍塌尺寸的概率恢复:ICCV9论文解读

    可视化反投射:坍塌尺寸的概率恢复:ICCV9论文解读 Visual Deprojection: Probabilistic Recovery of Collapsed Dimensions 论文链接: ...

  5. 从单一图像中提取文档图像:ICCV2019论文解读

    从单一图像中提取文档图像:ICCV2019论文解读 DewarpNet: Single-Image Document Unwarping With Stacked 3D and 2D Regressi ...

  6. 点云配准的端到端深度神经网络:ICCV2019论文解读

    点云配准的端到端深度神经网络:ICCV2019论文解读 DeepVCP: An End-to-End Deep Neural Network for Point Cloud Registration ...

  7. 图像分类:CVPR2020论文解读

    图像分类:CVPR2020论文解读 Towards Robust Image Classification Using Sequential Attention Models 论文链接:https:// ...

  8. CVPR2020论文解读:手绘草图卷积网络语义分割

    CVPR2020论文解读:手绘草图卷积网络语义分割 Sketch GCN: Semantic Sketch Segmentation with Graph Convolutional Networks ...

  9. CVPR2020论文解读:3D Object Detection三维目标检测

    CVPR2020论文解读:3D Object Detection三维目标检测 PV-RCNN:Point-Voxel Feature Se tAbstraction for 3D Object Det ...

最新文章

  1. 看板中的WIP限制思想
  2. Xcode 代码块添加
  3. 使用iOS原生sqlite3框架对sqlite数据库进行操作
  4. android“设置”里的版本号
  5. Java第一个程序Helloworld
  6. 监控工具—Prometheus—基础介绍
  7. maven常用的命令(window控制台和linux命令是一致的)
  8. 2008r2服务器频繁自动重启,解决windows server 2008 更新后不断重启现象
  9. HTTP缓存原理及相关知识(2)-CDN
  10. openssl中算法的组织方式
  11. Android Studio 2.3.1导出jar文件不能生成release解决办法
  12. 查看路由器ADSL密码
  13. 能查阅国外文献的8个论文网站(最新整理)
  14. 显示器ntsc测试软件,显示器色域检测图拉丁版
  15. 决策理论(Decision theory)自动规划和调度(Automated planning and scheduling)(双语)
  16. helper java_请教问题,helper类在java中的作用。
  17. systemverilog中的类型转换$cast
  18. 鸿蒙系统专利申请,华为在欧盟申请HarmonyOS专利 或为鸿蒙系统的英文名称
  19. matlab9级标度法,satty 标度法
  20. 论VM和Hyper-v虚拟机的使用场景

热门文章

  1. bzoj 4975: 区间翻转(博弈)
  2. OPNET网络仿真分析-1.1.3、OPNET Modeler
  3. eclipse安装选择清华镜像
  4. Linux服务器文件同步(NFS服务)
  5. 在 Azure Web 应用中创建 PHP 应用程序
  6. O - Can you find it?
  7. C语言中动态数组的分配
  8. [转载] python 中的时间,日期,时间戳互相转换
  9. [转载] python---python中时间的应用(time模块)
  10. [转载] Java基础知识面试题(2020最新版)