点击上方“3D视觉工坊”,选择“星标”

干货第一时间送达

作者:cfzd| 来源:知乎

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

本文仅做学术分享,如有侵权,请联系删除。

很高兴和大家分享一下我们刚刚被 ECCV 2020 接收的新工作:一种超快速的车道线检测算法(https://link.zhihu.com/?target=https%3A//arxiv.org/abs/2004.11757),能够达到SOTA水平的性能,同时保持超高的检测速度。轻量级的版本可以在接近SOTA的性能情况下达到300+FPS的检测速度,代码和模型已开源(https://link.zhihu.com/?target=https%3A//github.com/cfzd/Ultra-Fast-Lane-Detection)。

前言

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

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

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

  • 速度慢

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

  • 局部感受野

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

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

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

方法介绍

为了更简单地建模车道线,也为了解决上述两个分割方法存在的问题,我们提出了一个全新的车道线检测定义:将车道线检测定义为寻找车道线在图像中某些行的位置的集合,即基于行方向上的位置选择、分类(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的差异可以在优化过程中使得预测出的车道线更直。

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

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

实验结果

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

Tusimple数据集结果

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

CULane数据集结果

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

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

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

下载地址:https://github.com/cfzd/Ultra-Fast-Lane-Detection

推荐阅读:

  • 专辑|相机标定

  • 专辑|3D点云

  • 专辑|SLAM

  • 专辑|深度学习与自动驾驶

  • 专辑|结构光

  • 专辑|事件相机

  • 专辑|OpenCV学习

  • 专辑|学习资源汇总

  • 专辑|招聘与项目对接

  • 专辑|读书笔记

重磅!3DCVer-学术论文写作投稿 交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流等微信群,请扫描下面微信号加群,备注:”研究方向+学校/公司+昵称“,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进去相关微信群。原创投稿也请联系。

▲长按加微信群或投稿

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的知识点汇总、入门进阶学习路线、最新paper分享、疑问解答四个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近1000+星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

圈里有高质量教程资料、可答疑解惑、助你高效解决问题

ECCV2020超快车道线检测算法:Ultra Fast Structure-aware Deep Lane Detection相关推荐

  1. ECCV2020超快车道线检测算法——Ultra Fast Structure-aware Deep Lane Detection论文浅读

    文章目录 前言 一.深度分割的局限性 二.目前车道线检测的难点 三.超快速车道线检测算法 1.算法定义 2.如何解决速度的问题 3.如何解决"no-visual-clue"的问题 ...

  2. 基于循环特征位移聚合器的车道线检测(RESA: Recurrent Feature-Shift Aggregator for Lane Detection)

    2021年的车道线检测新方法. 官方公开视频.论文.源码: https://www.bilibili.com/video/BV1664y1o7wg https://arxiv.org/abs/2008 ...

  3. ECCV2020 | Gen-LaneNet:百度Apollo提出两阶段的3D车道线检测算法,已开源

    点击上方"3D视觉工坊",选择"星标 干货第一时间送达 这篇文章收录于ECCV2020,是百度Apollo团队发表的关于3D车道线检测的文章,针对3D-LaneNet做了 ...

  4. 【车道线检测】车道线检测算法汇总

    文章目录 零. 概述 1. DataSet 2. 车道线检测难点 3. 数据增强 一.基于分割和辅助实例化信息的方法 1. HDMapNet: An Online HD Map Constructio ...

  5. 实时车道线检测算法 | LaneATT-250FPS LSTR-420FPS

    车道线检测领域突然飞速发展,关注一下最新的两篇文章 一.Keep your Eyes on the Lane: Attention-guided Lane Detection 论文地址:https:/ ...

  6. 车道线检测算法经典编程

    车道线检测算法经典编程 车道线曲线拟合算法编程 计算经过(50,50),(90,120),(70,200)三点的Catmull_Rom样条曲线. IplImage* img = cvCreateIma ...

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

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

  8. 详解车道线检测算法之传统图像处理

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 / 导读 / 车道线检测算法分为传统图像处理方法和深度学习方法.本文详细介绍用传统图像处理方法来解决车 ...

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

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

最新文章

  1. 由动态规划计算编辑距离引发的思考
  2. 加载BeanFactory
  3. 白话红黑树系列之二——红黑树的构建
  4. python之强大的日志模块
  5. cmd怎么运行http_Scrapy源码剖析(二)Scrapy是如何运行起来的?
  6. Java程序员必备:序列化全方位解析
  7. python数据包分析_packet_analysis: 数据包分析工具
  8. poj 1087 A Plug for UNIX 【最大流】
  9. VHDL常用操作符介绍
  10. 直播平台搭建与相关资料
  11. ecshop 实现购物车退出不清空
  12. 中国系泊系统行业市场供需与战略研究报告
  13. Google搜索技巧终极收集
  14. 关于一些初级ACM竞赛题目的分析和题解(三)。
  15. 使用Python绘制二元函数图像
  16. 货币信息高于货币价值而存在
  17. 菜单导航间竖杠竖线间隔符 | 效果的CSS实现
  18. vm虚拟机内置终端字体间隔大
  19. 西门子P L C 1200与smart的S 7通讯
  20. kubernetes中infra容器的理解

热门文章

  1. 删除 shiro url 上的JSESSIONID
  2. linux下rpm,yum学习
  3. QQ互联OAuth2.0 .NET SDK 发布以及网站QQ登陆示例代码(转)
  4. android堆栈信息,android死锁致重启问题分析
  5. ERP 已死,中台已凉,DDD 称王!
  6. 惊呆,一条sql竟然让oracle奔溃了
  7. 在阿里当PM都需要做什么?
  8. 通过OGG实现多源端数据库的数据集中分发
  9. 腾讯面试官问我Java中boolean类型占用多少个字节?我说一个,面试官让我回家等通知...
  10. 87岁的老奶奶喜欢用windows画图程序作画,而且画得还贼好!