Lanenet论文解读
本文是一篇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网络通过学习的方式预测透视变换矩阵的参数,其输出是一个 六维的向量。
曲线拟合对同属一条车道线的所有像素点进行重新建模,即通过坐标 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损失来训练参数:
实验结果:
评估方式主要采用分割的精准度和召回率以及算法耗时,如下图所示:
思考与展望:
- 主干网络采用轻量级的ENet模型,在性能和效果上较为一般,可以尝试更好的分割网络。
- 本文使用meanshift密度聚类方式不需要实现设定簇类数量,但是由于聚类的点数太多会造成耗时太长,无法满足实时性要求。
Demo测试:
测试中,待添加
欢迎关注小编公众号,最新文章同步更新。
Lanenet论文解读相关推荐
- 【论文解读】LaneNet 基于实体分割的端到端车道线检测
前言 这是一种端到端的车道线检测方法,包含 LanNet + H-Net 两个网络模型. LanNet 是一种多任务模型,它将 实例分割 任务拆解成"语义分割"和"对像素 ...
- 自监督学习(Self-Supervised Learning)多篇论文解读(下)
自监督学习(Self-Supervised Learning)多篇论文解读(下) 之前的研究思路主要是设计各种各样的pretext任务,比如patch相对位置预测.旋转预测.灰度图片上色.视频帧排序等 ...
- 自监督学习(Self-Supervised Learning)多篇论文解读(上)
自监督学习(Self-Supervised Learning)多篇论文解读(上) 前言 Supervised deep learning由于需要大量标注信息,同时之前大量的研究已经解决了许多问题.所以 ...
- 可视化反投射:坍塌尺寸的概率恢复:ICCV9论文解读
可视化反投射:坍塌尺寸的概率恢复:ICCV9论文解读 Visual Deprojection: Probabilistic Recovery of Collapsed Dimensions 论文链接: ...
- 从单一图像中提取文档图像:ICCV2019论文解读
从单一图像中提取文档图像:ICCV2019论文解读 DewarpNet: Single-Image Document Unwarping With Stacked 3D and 2D Regressi ...
- 点云配准的端到端深度神经网络:ICCV2019论文解读
点云配准的端到端深度神经网络:ICCV2019论文解读 DeepVCP: An End-to-End Deep Neural Network for Point Cloud Registration ...
- 图像分类:CVPR2020论文解读
图像分类:CVPR2020论文解读 Towards Robust Image Classification Using Sequential Attention Models 论文链接:https:// ...
- CVPR2020论文解读:手绘草图卷积网络语义分割
CVPR2020论文解读:手绘草图卷积网络语义分割 Sketch GCN: Semantic Sketch Segmentation with Graph Convolutional Networks ...
- CVPR2020论文解读:3D Object Detection三维目标检测
CVPR2020论文解读:3D Object Detection三维目标检测 PV-RCNN:Point-Voxel Feature Se tAbstraction for 3D Object Det ...
最新文章
- 看板中的WIP限制思想
- Xcode 代码块添加
- 使用iOS原生sqlite3框架对sqlite数据库进行操作
- android“设置”里的版本号
- Java第一个程序Helloworld
- 监控工具—Prometheus—基础介绍
- maven常用的命令(window控制台和linux命令是一致的)
- 2008r2服务器频繁自动重启,解决windows server 2008 更新后不断重启现象
- HTTP缓存原理及相关知识(2)-CDN
- openssl中算法的组织方式
- Android Studio 2.3.1导出jar文件不能生成release解决办法
- 查看路由器ADSL密码
- 能查阅国外文献的8个论文网站(最新整理)
- 显示器ntsc测试软件,显示器色域检测图拉丁版
- 决策理论(Decision theory)自动规划和调度(Automated planning and scheduling)(双语)
- helper java_请教问题,helper类在java中的作用。
- systemverilog中的类型转换$cast
- 鸿蒙系统专利申请,华为在欧盟申请HarmonyOS专利 或为鸿蒙系统的英文名称
- matlab9级标度法,satty 标度法
- 论VM和Hyper-v虚拟机的使用场景
热门文章
- bzoj 4975: 区间翻转(博弈)
- OPNET网络仿真分析-1.1.3、OPNET Modeler
- eclipse安装选择清华镜像
- Linux服务器文件同步(NFS服务)
- 在 Azure Web 应用中创建 PHP 应用程序
- O - Can you find it?
- C语言中动态数组的分配
- [转载] python 中的时间,日期,时间戳互相转换
- [转载] python---python中时间的应用(time模块)
- [转载] Java基础知识面试题(2020最新版)