车道线检测综述——【极市】方浩:车道线检测新SOTA,RESA个人笔记

2024-03-28 09:50

本文主要是介绍车道线检测综述——【极市】方浩:车道线检测新SOTA,RESA个人笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

视频链接:https://www.bilibili.com/video/BV1664y1o7wg

一、背景

车道线检测:从输入的图片中检测出车道线,图片是由车辆的前置摄像头拍摄。
在这里插入图片描述在这里插入图片描述

1.1 车道线检测在自动驾驶中如何使用

在这里插入图片描述
自动驾驶从算法的角度主要分为三个部分:环境感知、决策、执行。环境感知即通过各种传感器采集数据,用算法进行分析,再输入Planning模块,Planning模块根据自己要开往哪里并分析周围环境来规划下一步动作,动作输入到Control模块,Control模块再与硬件作交互,实现具体执行。
车道线检测的执行是在感知模块,在Planning模块被使用。
在Planning模块中使用车道线检测:

  1. 轨迹规划
  2. 行为预测
  3. 车道保持

1.2 问题定义

输入:[3×H×W]的图片
输出:N×车道线(实例、点、参数等)

1.3 主要难点

  1. 遮挡非常严重,路面上的人和车非常多,有的车道线磨损严重,有的车道线是一段一段的。
  2. 车道线又细又长,监督信号非常稀疏,正样本非常少
  3. 一般要求实时性

二、相关工作

2.1 传统方法

2.1.1 Hough变换

论文: Yu and A. K. Jain, “Lane boundary detection using a multiresolution Hough transform,” Proceedings of International Conference on Image Processing, Santa Barbara, CA, USA, 1997, pp. 748-751 vol.2, doi: 10.1109/ICIP.1997.638604
首先,将RGB彩色图变为灰度图
再做高斯模糊
再做边缘检测,得到mask点
最后再做Hough变换,找到整张图的所有直线,得到一堆参数,并不知道直线的起点与终点
在这里插入图片描述
传统算法的局限性:

  1. 若出现遮挡,直线拟合效果差
  2. 曲线车道线效果不好

2.2 深度学习方法

2.2.1 检测类方法

2.2.1.1 LanNet

论文:Towards End-to-End Lane Detection: an Instance Segmentation Approach
在这里插入图片描述
实例分割
像素嵌入+聚类
缺点:依赖于聚类,结果不稳定;起始位置不确定;效果并没有特别好。

2.2.1.2 SCNN

论文:Spatial As Deep: Spatial CNN for Traffic Scene Understanding
在这里插入图片描述
RNN——让信息在水平和竖直方向传递
语义分割+后处理

缺点:用类似RNN做信息传递,速度慢

2.2.1.3 light-weight
  1. self-attention distillation(SAD)
    论文:Learning Lightweight Lane Detection CNNs by Self Attention Distillation
    在这里插入图片描述
  2. CurveLane-NAS(5000GPU hours)
    论文:

2.2.2 新的思路

2.2.2.1 Gridding

论文:CurveLane-NAS: Unifying Lane-Sensitive Architecture Search and Adaptive Point Blending
在这里插入图片描述
将一张图片的像素做水平分割与竖直分割,将很多像素变为一个cell,相当于把整张图做了降采样,对每个cell做分类(网格化)
行分类——判断这行是否有车道线
速度很快,但因为降采样精度会下降

2.2.2.2 PolyLaneNet:Lane Estimation via Deep Polynomial Regreesion

论文:PolyLaneNet: Lane Estimation via Deep Polynomial Regression
在这里插入图片描述
假设车道线为曲线,曲线是由很多参数决定的,使用多项式去学习这些参数。
缺点:若摄像头换角度拍就不work了

2.2.2.3 Anchor-based

论文:Keep your Eyes on the Lane: Real-time Attention-guided Lane Detection
在这里插入图片描述
强先验
处理变化的情况不太灵活

三、RESA方法

经典的语义分割不能应用于车道线检测的原因:

  1. 严重的遮挡和模糊的车道线
  2. 稀疏的监督信号(车道线又细又长,有的车道线是一段一段的)
    idea:
  3. 强形状先验(label连续)
  4. 空间依赖性,通过空间相关性大概推理车道线
    将远处的特征传过来,近处的特征传过去,或者左边传到右边,右边传到左边,来做信息增强。
    设计一个能够把空间的信息的聚合、把原始特征增强的模块。
    在这里插入图片描述
    图(a)显示了CNN的结果车道线不够完整也不够精细,但RESA可以得到精细且完整的线。
    图(b)对信息进行切片,若从左往右传递,则把每列特征作为一个slice,特征在列与列之间传递,考虑线与线之间特征的相关性;若从上往下传递,则把每行作为一个slise,特征在行与行之间传递 ,考虑近处与远处的连续性。

网络架构:
在这里插入图片描述
图(a)输入一张图片,先经过一个Encoder(VGG、retinanet等)将图片降采样到1/8特征图,再经过RESA将信息增强,最后经过Decoder做上采样到原图大小,输出两个分支,分别是segmentation和判断车道线是否存在(0和1二分类)。
图(b)和(c)是分别从两个方向对特征进行切片,对每个切片使用一层一卷积(即使用一维卷积作用于切片),每个方向要进行K次迭代。
RESA
在这里插入图片描述
上图为从右往左传递的示意图,首先把每一列进行切片,将特征变成一列一列的。
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
Decoder
在这里插入图片描述
Decoder主要分为两部分,一部分主要依赖于双线性差值,可得到粗略的预测结果;另外一部分依赖于转置卷积,求精细特征。两部分的结果进行加和出结果。
Decoder的两个作用:

  1. 将通道数量除以2
  2. 上采样

四、RESA的结果和分析

CULane
在这里插入图片描述
TuSimple
在这里插入图片描述在这里插入图片描述
对比实验
在这里插入图片描述在这里插入图片描述
迭代次数
在这里插入图片描述在这里插入图片描述
上下左右传递实验
在这里插入图片描述
分析
在这里插入图片描述
RESA做了空间的特征传递,将稀疏的特征空间转换为丰富的特征空间,即设计一个模块去聚合空间信息和增强由原始的CNN提取的特征。
架构的关键因素:编码器+聚合+解码器。
Encoder可以用任何原始的CNN分类网络。

这篇关于车道线检测综述——【极市】方浩:车道线检测新SOTA,RESA个人笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/855267

相关文章

C#自动化实现检测并删除PDF文件中的空白页面

《C#自动化实现检测并删除PDF文件中的空白页面》PDF文档在日常工作和生活中扮演着重要的角色,本文将深入探讨如何使用C#编程语言,结合强大的PDF处理库,自动化地检测并删除PDF文件中的空白页面,感... 目录理解PDF空白页的定义与挑战引入Spire.PDF for .NET库核心实现:检测并删除空白页

Python脚本轻松实现检测麦克风功能

《Python脚本轻松实现检测麦克风功能》在进行音频处理或开发需要使用麦克风的应用程序时,确保麦克风功能正常是非常重要的,本文将介绍一个简单的Python脚本,能够帮助我们检测本地麦克风的功能,需要的... 目录轻松检测麦克风功能脚本介绍一、python环境准备二、代码解析三、使用方法四、知识扩展轻松检测麦

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

Linux系统性能检测命令详解

《Linux系统性能检测命令详解》本文介绍了Linux系统常用的监控命令(如top、vmstat、iostat、htop等)及其参数功能,涵盖进程状态、内存使用、磁盘I/O、系统负载等多维度资源监控,... 目录toppsuptimevmstatIOStatiotopslabtophtopdstatnmon

C++ 检测文件大小和文件传输的方法示例详解

《C++检测文件大小和文件传输的方法示例详解》文章介绍了在C/C++中获取文件大小的三种方法,推荐使用stat()函数,并详细说明了如何设计一次性发送压缩包的结构体及传输流程,包含CRC校验和自动解... 目录检测文件的大小✅ 方法一:使用 stat() 函数(推荐)✅ 用法示例:✅ 方法二:使用 fsee

OpenCV实现实时颜色检测的示例

《OpenCV实现实时颜色检测的示例》本文主要介绍了OpenCV实现实时颜色检测的示例,通过HSV色彩空间转换和色调范围判断实现红黄绿蓝颜色检测,包含视频捕捉、区域标记、颜色分析等功能,具有一定的参考... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间

使用Python实现IP地址和端口状态检测与监控

《使用Python实现IP地址和端口状态检测与监控》在网络运维和服务器管理中,IP地址和端口的可用性监控是保障业务连续性的基础需求,本文将带你用Python从零打造一个高可用IP监控系统,感兴趣的小伙... 目录概述:为什么需要IP监控系统使用步骤说明1. 环境准备2. 系统部署3. 核心功能配置系统效果展

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

使用DeepSeek搭建个人知识库(在笔记本电脑上)

《使用DeepSeek搭建个人知识库(在笔记本电脑上)》本文介绍了如何在笔记本电脑上使用DeepSeek和开源工具搭建个人知识库,通过安装DeepSeek和RAGFlow,并使用CherryStudi... 目录部署环境软件清单安装DeepSeek安装Cherry Studio安装RAGFlow设置知识库总

Python如何实现PDF隐私信息检测

《Python如何实现PDF隐私信息检测》随着越来越多的个人信息以电子形式存储和传输,确保这些信息的安全至关重要,本文将介绍如何使用Python检测PDF文件中的隐私信息,需要的可以参考下... 目录项目背景技术栈代码解析功能说明运行结php果在当今,数据隐私保护变得尤为重要。随着越来越多的个人信息以电子形