本文转载自知乎,已获作者授权转载。

链接:https://zhuanlan.zhihu.com/p/157530787

很高兴和大家分享一下我们刚刚被 ECCV 2020 接收的新工作:一种超快速的车道线检测算法(Ultra Fast Structure-aware Deep Lane Detection),能够达到SOTA水平的性能,同时保持超高的检测速度。轻量级的版本可以在接近SOTA的性能情况下达到300+FPS的检测速度。

代码和模型已开源。话不多说,先放demo。

1

前言

车道线检测是自动驾驶中的一个基础模块,其实也是一个由来已久的任务,早期已有很多基于传统图像处理实现的车道线检测算法。但随着大家研究的深入,车道线检测任务所应对的场景越来越多样化,逐步已经脱离了对于“白、黄色线条”这种低阶理解。目前更多的方式是寻求对于 语义上车道线存在位置的检测,即使它是模糊的、被光照影响的、甚至是完全被遮挡的,如下图所示。

图1 目前车道线检测的难点为寻找语义上的线,而不是局限于表观存在的线

对于上图这类问题,基于传统图像处理的方法几乎无法实现检测,因此有了一些方法开始尝试一种最直接的深度学习方案——把车道线检测视为分割任务。虽然深度分割方法效果强于传统方法,但存在两个关键问题

  • 速度慢

因为分割是逐像素分类的,要对图像中每一个像素点进行分类。为了分割车道线要进行非常密集的计算,导致的结果就是速度比较慢。其实车道线像素其实只占图像很少一部分,想想也不需要进行这么舍本逐末的操作。

  • 局部感受野

分割的另一个问题是感受野问题。因为分割一般是全卷积得到分割结果,而卷积基本上是比较局部的,所以每个像素的感受野有限。在其他分割问题中可能问题不大,但在车道线检测中,问题就很大了。由于我们关注的问题大多是上图这种语义线的检测,需要对全局有很好的感知才能实现良好的定位。比如在图1中,对于车道线的定位只有靠周围车流走向这种全局信息才能很好地定位。

虽然有些很好的工作,比如SCNN[1]使用不同方向上的特征传播实现信息传递,间接完成了增大感受野,增加全局信息的目标,但是速度更慢了。

其实直观感受来说,做车道线检测没必要这么大动干戈把每个像素都进行分类。基于此,我们的方法遵循着一个非常简单的动机:有没有更简单的方式建模车道线检测?

2

方法介绍

为了更简单地建模车道线,也为了解决上述两个分割方法存在的问题,我们提出了一个全新的车道线检测定义:将车道线检测定义为寻找车道线在图像中某些行的位置的集合,即基于行方向上的位置选择、分类(row-based classification),如下图所示。

图2 将车道线检测定义为在某些行上位置的选择、分类

假设我们要检测一条车道线的图像大小为HxW,对于分割问题,我们需要处理HxW个分类问题。

由于我们的方案是行向选择,假设我们在h个行上做选择,我们只需要处理h个行上的分类问题,只不过每行上的分类问题是W维的。因此这样就把原来HxW个分类问题简化为了只需要h个分类问题,而且由于在哪些行上进行定位是可以人为设定的,因此h的大小可以按需设置,但一般h都是远小于图像高度H的。

这样,我们就把分类数目从HxW直接缩减到了h,并且h远小于H,更不用说h远小于HxW了。因此我们的方法将计算复杂度缩减到了一个极小的范围内,解决了分割速度慢的问题,极大地提速的了车道线检测算法的速度,这也是我们方法能够达到300+FPS的原因。下图展示了我们方法和基于分割的车道线检测方法的比较。

图3 和传统分类方法的比较。我们的方法直接做行方向上的选择,而不是逐像素分割。

除了速度快之外,我们的方法还可以解决上文提到的另一个问题:局部感受野小导致的复杂车道线检测困难问题。由于我们的方法不是分割的全卷积形式,是一般的基于全连接层的分类,它所使用的特征是全局特征。这样就直接解决了感受野的问题,对于我们的方法,在检测某一行的车道线位置时,感受野就是全图大小。因此也不需要复杂的信息传递机制就可以实现很好的效果。

除此之外,由于有了水平行方向上直接的位置信息,我们还可以使用这些信息来加入车道线的先验约束——平滑性和刚性。

我们将相邻行上分类的L1范数定义为平滑性,希望车道线位置在相邻行上是相近且平滑变化的。

将相邻行间的二阶差分定义为车道线的形状。由于车道线大多是直线,因此其二阶差分为0,所以约束其二阶差分与0的差异可以在优化过程中使得预测出的车道线更直。

具体公式符号定义请见我们的文章。

由于分割方法得到的为车道线的二值分割图,其结构是逐像素建模,因此几乎无法实现对上述高层语义(平滑、刚性)层级的约束,这也是我们方法的另一个优点。

3

实验结果

我们在Tusimple和CULane上都进行了测试,都验证了我们的方法可以在超快速度下达到接近或超越SOTA方法的性能。

Tusimple数据集结果

可以看到在Tusimple数据集上我们的方法比SCNN[1]快了41.7倍,比SOTA的SAD[2]也快了4倍。但是Tusimple数据集上大家性能也比较饱和了,没有达到SOTA的水平。

CULane数据集结果

在另一个更为挑战性的CULane数据集上,我们的方法同时达到了最快的速度和最好的精度。SOTA性能的模型能跑到175帧,轻量级的模型甚至可以跑到322帧。

这个速度是我们在GTX 1080Ti上测的,在20系或者Tesla显卡上应该速度会更快。但已经这么快了,还要啥自行车 : )

目前代码和模型都已开源,希望大家多多指教!

论文:https://arxiv.org/pdf/2004.11757.pdf

代码:https://github.com/cfzd/Ultra-Fast-Lane-Detection

参考

1. https://arxiv.org/abs/1712.06080

2. https://arxiv.org/abs/1908.00821

备注:智能驾驶

智能驾驶交流群

车道线检测、自动驾驶、行人意图识别等技术,

若已为CV君其他账号好友请直接私信。

我爱计算机视觉

微信号:aicvml

QQ群:805388940

微博知乎:@我爱计算机视觉

投稿:amos@52cv.net

网站:www.52cv.net

在看,让更多人看到  

ECCV 2020 | 超快的车道线检测相关推荐

  1. ECCV2020|超快的车道线检测,代码模型已开源

    作者|cfzd 来源|https://zhuanlan.zhihu.com/p/157530787 很高兴和大家分享一下我们刚刚被 ECCV 2020 接收的新工作:一种超快速的车道线检测算法(Ult ...

  2. CVPR 2022 3月7日论文速递(17 篇打包下载)涵盖 3D 目标检测、医学影像、图像去模糊、车道线检测等方向

    CVPR2022论文速递系列: CVPR 2022 3月3日论文速递(22 篇打包下载)涵盖网络架构设计.姿态估计.三维视觉.动作检测.语义分割等方向 CVPR 2022 3月4日论文速递(29 篇打 ...

  3. Transformer 又立功了!又快(420 fps)又好的车道线检测算法

    点击上方↑↑↑"视学算法"关注我 来源:公众号 我爱计算机视觉 授权 分享一篇新出的论文 End-to-end Lane Shape Prediction with Transfo ...

  4. sift线特征提取代码_Transformer 又立功了!又快(420 fps)又好的车道线检测算法

    分享一篇新出的论文 End-to-end Lane Shape Prediction with Transformers,该文为车道线检测问题建立参数模型,使用Transformer捕获道路中细长车道 ...

  5. 速度最快250fps!实时、高性能车道线检测算法LaneATT

    CVPR 2021 车道线检测方向论文:Keep your Eyes on the Lane: Real-time Attention-guided Lane Detection . 论文: http ...

  6. 车道线检测综述及新工作汇总

    编辑丨3D视觉工坊 车道线检测综述及近期新工作--为ADAS.自动驾驶服务. 部分视频效果展示: https://www.bilibili.com/video/BV1E54y1V7G4 https:/ ...

  7. 带你读AI论文丨LaneNet基于实体分割的端到端车道线检测

    摘要:LaneNet是一种端到端的车道线检测方法,包含 LanNet + H-Net 两个网络模型. 本文分享自华为云社区<[论文解读]LaneNet基于实体分割的端到端车道线检测>,作者 ...

  8. 车道线检测综述及近期新工作

    车道线检测综述及近期新工作--为ADAS.自动驾驶服务. 部分视频效果展示: https://www.bilibili.com/video/BV1E54y1V7G4 https://www.bilib ...

  9. 基于深度强化学习的车道线检测和定位(Deep reinforcement learning based lane detection and localization) 论文解读+代码复现

    之前读过这篇论文,导师说要复现,这里记录一下.废话不多说,再重读一下论文. 注:非一字一句翻译.个人理解,一定偏颇. 基于深度强化学习的车道检测和定位 官方源码下载:https://github.co ...

最新文章

  1. 一文概览 CVPR2021 最新18篇 Oral 论文
  2. tomcat 编译版本
  3. 使用 Spring Boot 快速构建 Spring 框架应用--转
  4. Spring mvc参数类型转换
  5. myeclipse中的classpath .
  6. Taro+react开发(1)--简介
  7. python3.5兼容2.7吗_Python版本2.7切3.5和3.5切2.7
  8. 自动化运维专题之zabbix课程内容大纲
  9. 超强干货素材!制作平面设计专辑模板
  10. 实验十:图形用户界面设计
  11. 计算机连接打印机用户数量修改,win7电脑中局域网限制每台打印机的使用成员数量的方法...
  12. 操作系统CPU上下文切换
  13. 本周论文推荐(12.14-12.20)
  14. php 生成拼音缩写,php 输入汉字自动带出拼音和英文
  15. 7-12 愿天下有情人都是失散多年的兄妹 (25分)
  16. conda install pytorch torchvision torchaudio cudatoolkit=11.6 -c pytorch -c conda-forge遇到的报错
  17. 软件工程师的工作经验总结
  18. 市民注意啦 这3组家用无线路由器未达国家标准
  19. 计算机一级考试可以搜索吗,手动找回Windows7搜索功能
  20. 从消息推送来看,华为、小米做得最好

热门文章

  1. Socket(套接字)简介
  2. 设计模式学习笔记——备忘录(Memento)模式
  3. 小程序 - 腾讯云 - wafer - PHP - 数据库接口的应用和研究 - 01 - DB::insert
  4. python给动态变量赋值_python 动态的定义变量名,并给其赋值
  5. 实车采集的数据重建场景_避障、探测、采样......华理这套系统让无人小车“身手非凡”...
  6. vue 水平居中_小心!你弹琴的坐姿暴露了你演奏的水平!
  7. java数组有顺序吗_java – 使用特定顺序对(数组)列表进行排序
  8. java二分法排序算法_Java中使用二分法排序
  9. client netty 主动发数据_Netty服务器无限循环给客户端发送数据
  10. Destoon数据库配置文件在哪_Mybatis 系列 2:Mybatis 的两种配置文件