算法类学习笔记 ———— 车道线检测

文章目录

  • 介绍
  • 基于传统计算机视觉地车道线检测
    • 基于道路特征的检测方法
      • 基于颜色特征的检测方法
        • 基于灰度特征的检测方法
      • 基于彩色特征的检测方法
        • 基于纹理特征的检测方法
        • 基于多特征融合的检测方法
    • 基于道路模型地检测方法
      • 直线模型
      • 曲线模型
  • 基于深度学习的车道线检测
    • LaneNet + H-Net车道线检测
    • SCNN车道线检测
    • 基于激光雷达的车道线检测
  • 附录
    • 颜色阈值分割
    • 色彩聚类

介绍

 车道线是用来管制和引导交通的一种标线,由标化于路面上的线条、箭头、文字、标记和轮廓标识等组成。道路交通线又分为指示标线、禁止标线和警告标线。快速、准确地检测车道线在协助智能车辆路径规划和偏移预警等方面尤为重要。目前较为常见的车道线检测方案主要是基于传统计算机视觉地检测,近年出现了基于深度学习的道路特征预测来替代传统方法。同时随着智能交通地逐步发展,基于雷达等高精设备的车道线检测也成为了可能。

基于传统计算机视觉地车道线检测

 传统计算机视觉的车道线检测主要依赖于高度定义化的手工特征提取和启发式的方法。广泛使用的检测方法主要分为基于道路特征和道路模型这两种方法。基于道路特征的检测方法主要利用车道线与道路之间的物理结构差异对图像进行后续的分割和处理,突出道路特征,实现车道线检测。基于道路模型的检测方法主要利用不同的道路图像模型,对模型中的参数进行估计与确定,最终于车道线进行拟合。

基于道路特征的检测方法

基于颜色特征的检测方法

基于灰度特征的检测方法

 基于灰度特征的检测方法主要通过提取图像的灰度特征来检测道路边界和道路标识。可以通过直接采集灰度图进行处理,也可以通过图像转换将原始图像转为灰度图。在车道图像中,路面与车道线交汇处的灰度值变化较剧烈,可以利用边缘增强算子突出图像的局部边缘,定义像素的边缘强度,通过设置阈值的方法提取边缘点。常用的算子有Sobel算子、Prewitt算子、Log算子和Canny算子。
在这里插入图片描述
 这种特征提取进行检测的方法结构简单,应用广泛,对于路面平整、车道线清晰的结构化道路尤为适用。但当光照强烈、有大量异物遮挡、道路结构复杂、车道线较为模糊时,检测效果会受到较大的影响。
在这里插入图片描述

基于彩色特征的检测方法

 基于彩色特征的检测方法主要通过图像的彩色特征来检测道路边界和道路标识,主要涉及颜色空间的选择和分割策略选取两方面。颜色空间有一组数值描述图像信息的抽象模型,通常为3个数字,常用的颜色空间模型有RGB空间、HSI空间、CIE Lab空间等。具体的模型介绍可以查看本人的其他文章:车载前视摄像头学习笔记 ———— 其他颜色模型 和 车载前视摄像头学习笔记 ———— 摄像头输出数据格式(RGB),这里就不展开介绍了。在不同的颜色空间中,车道线和道路有各自的特性,通过分析彩色信息的空间分布,可以利用分割策略对车道线进行检测。通道用于车道检测的分割策略为阈值分割和色彩聚类两种方法。由于色彩信息对于图像或图像区域的大小、方向邓特征变化不敏感,其对于局部特征李庸彩色信息不能有效地进行捕捉,所以仅利用彩色特征地方法往往会将大量不必要的图像检测出来。

基于纹理特征的检测方法

 基于纹理特征的检测方法主要通过对包含多个像素点的区域中的纹理强度和纹理方向进行计算,从而对车道线进行检测。这种方法具备较强的抗噪能力。当光照强度改变、图像分辨率改变时,计算结果会有偏差。同时,二维图像中提取的纹理特征与三维物体实际的纹理会有一定差别,一定程度上影响了检测准确度。
 纹理是由于物体表面的物理属性的多样性而造成的,物理属性不同表示某个特定表面特征的灰度或者颜色信息不同,不同的物理表面会产生不同的纹理图像。因而纹理作为图像的一个极为重要的属性,在计算机视觉和图像处理中占有举足轻重的地位。纹理是图像中特征值强度的某种局部重复模式的宏观表现。然而,对于自然纹理图像而言这种重复模式往往是近似的和复杂的,难以用语言描述,而人类对纹理的感受多是与心理效果相结合的。Hawkins曾经对纹理给出了一个比较详细的描述,他认为纹理有三个主要的标志:
   1) 某种局部的序列性在比该序列更大的区域内不断重复
   2) 序列是由基本元素非随机排列组成的
   3) 各部分大致是均匀的统体,在纹理区域内的任何地方都有大致相同的结构尺

基于多特征融合的检测方法

 针对单一道路特征提取的检测方法存在的缺陷,基于多特征融合的检测方法通过运用多种道路特征来进行车道线检测,提高检测效果。

基于道路模型地检测方法

 道路的几何模型大体分为两种:直线和曲线。直线模型计算简单,是最常用的道路模型,而曲线模型较为复杂,所以应根据不同的情况结合多种模型的使用。

直线模型

 直线模型主要建立在车道线为直线的假设基础上,直线模型的数学表达式如下:
u = k ( v − h ) + b u=k(v-h)+b u=k(vh)+b
 u、v分别代表道路图像的横纵坐标,k代表斜率,b为截距,h代表道路消失线在途中的纵坐标。得到了道路消失线的水平位置后,只要得到k和b就可以确定车道线在图像中的位置。在车辆行驶速度不搞,且道路弯曲曲率不大的情况下,可以有较好的识别和导航效果。

曲线模型

 针对一些车道线检测算法识别不高、弯道检测不准确的问题,基于双曲线模型的车道线检测算法首先运用Canny算子对道路边缘进行检测,采用Hough变换提取道路边界点,并使用扩展的Kalman滤波进行预测和跟踪来减小道路扫描范围;最后通过左右车道边界参数与双曲线模型参数进行匹配,利用最小二乘法来求解模型参数,完成车道边界重建。
在这里插入图片描述

多种路况下的车道线检测结果

基于深度学习的车道线检测

LaneNet + H-Net车道线检测

 卷积神经网络中产生的二值化车道线分割图需要进一步分离到不同的车道线实例中。收到语义分割和实例分割中对每个像素点进行预测的启发,LaneNet将车道线检测问题转化为实力分问题,即每个车道线形成独立的示例,但是都属于车道线这一类别。H-Net由卷积层和全连接层组成,利用转换矩阵H对同一车道线的像素点进行回归。对于某张输入的图片,LaneNet负责输出示例分割结果,每条车道线输出一个标识ID,H-Net输出一个转换矩阵,对车道线像素点进行修正,并对修正后的结果拟合出一个三阶多项式作为预测的车道线。
在这里插入图片描述

SCNN车道线检测

 虽然CNN具有强大的特征提取能力,但由卷积块堆叠的CNN架构没有足够充分的探索图像行列之间的空间关系能力,这个能力对于学习前先验形状的对象尤为重要。如下图所示,CNN对于被遮挡的车道线识别效果并不好。针对此问题,新的网络Spatial CNN(SCNN)将传统卷积层接层(layer-by-layer)的连接形式转为特征图中片连片卷积(slice-by-slice)的形式,使图像中的像素行和列之间可以传递信息。SCNN对于长距离连续形状的目标、大型目标以及有着极强空间关系但外观线索不明显的目标具有很好的检测效果。可以从下图看出,SCNN相较于CNN对车道线的识别效果优秀。
在这里插入图片描述
 尝试在深度网络中使用空间信息的工作一直在持续。使用循环神经网络(RNN)按每行或每列传递信息,但每个像素点只能接受来自同一行或同一列的信息;使用长短期记忆网络(LSTM)的变体来探测语义分割中的上下文信息,但是计算量较大;使用CNN和图模型(如马尔可夫随机场(MRF)和条件随机场(CRF)结合)通过大卷积核来传递信息。相较于上述方案,SCNN在信息传递过程中计算效率比MRF和CRF高,同时由于使用残差进行信息传递,使训练更容易进行并适用于多种网络。传统CNN和图模型结合时,每个像素点接受来自整个图像的其他像素的信息,这导致计算的代价过大,不利于车道线的检测。MRF大卷积核的权重在学习上也比较困难。SCNN在信息传地上与MRF/CRF的不同之处主要在于信息传递方向,MRF/CRF在信息传递方向上较为无序,每个像素点需要接收大量的信息,计算量大,存在过多的冗余信息;而SCNN的信息传递方向是顺序的。对于行列数较多的图像,SCNN可以减少大量的计算。
在这里插入图片描述

(a) _ MRF/CRF信息传递,(b)_SCNN信息传递

在这里插入图片描述

SCNN与其他方法在车道线检测中的表现

基于激光雷达的车道线检测

 基于视觉的方法存在较多的局限:光照敏感、依赖于完整且较为统一的车道线标识、有效采样点不足以及车道线被水覆盖时视觉系统会失效等。这里就衍生出了基于激光雷达的车道线检测,主要是基于反射强度信息的方法。此方法主要是基于激光雷达反射强度信息形成的灰度图,或者根据强度信息与高程信息配合,过滤无效信息,然后对车道线拟合。
 在激光雷达获取的点云中,通过反射强度值,可以区分出道路、车道线。在激光雷达获取的道路环境的三维点云中,检测每一个激光层采集到的可行驶区域的回波强度是否发生变化。如果发生变化,将变化点提取并标记。同时,还可以通过对点云数据中由高程数据的点进行滤波,一定程度上可以确定出行驶区域,同时剔除一些和车道线回波强度接近的物体。通过对提取的车道线点云进行聚类和去噪,再利用最小二乘法进行拟合,最终提取出车道线。

附录

颜色阈值分割

 以期刊《基于HSV颜色阈值分割的车道线检测中的》介绍,经过高斯滤波和HSV颜色转化后,对于马路两边的黄色车道线的颜色与周边物体的颜色存在明显区别。如下图所示。在这里插入图片描述
 在这里我们则需要基于HSV的颜色空间模型选取适合的颜色阈值,上下阈值均需要明确定义。在使用特定的函数将图片中的车道线与其他背景区域分开来。在选取了合适的颜色与之后,黄色车道线就可以与背景区分割开来,形成下方最终的效果图。
在这里插入图片描述

色彩聚类

 详细内容设计可参考期刊《LaneAF: Robust Multi-Lane Detection with Affinity Fields》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/761575.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

windows离线安装显卡驱动解决方案

前言 我们说这个离线泛指计算机无公网环境,而我们需要将显卡驱动打上,既然没有公网,我们就无法使用联网的方式(傻瓜式安装),受各种原因限制,也不可以把主机搬走连上互联网进行安装。总之…

动手学深度学习(Pytorch版)代码实践 -计算机视觉-38实战Kaggle比赛:图像分类 (CIFAR-10)

38实战Kaggle比赛:图像分类 (CIFAR-10) 比赛链接:CIFAR-10 - Object Recognition in Images | Kaggle 导入包 import os import glob import pandas as pd import numpy as np import torch import torchvision from torch.utils.data import Dataset…

Mac多线程下载管理器:Neat Download Manage 最新版

Neat Download Manager(NDM)是一款功能强大的下载管理软件,它可以帮助用户更有效地管理和下载网络资源。这款软件支持多种浏览器和协议,可以提升下载速度,恢复中断的下载任务,以及自动化下载过程。在使用任…

如何学好AI绘画?点这里有答案!

前言 地狱难度的求职模式下,“掌握一门技术”的那部分求职者,远比其他人更有竞争力;而拥有出色技术和技能的设计师、以及未来想做设计师的小伙伴们,怎么才能更好实现工作自由? 只有两个字:学习。 学习新…

【Go】excelize库实现excel导入导出封装(四),导出时自定义某一列或多列的单元格样式

大家好,这里是符华~ 查看前三篇: 【Go】excelize库实现excel导入导出封装(一),自定义导出样式、隔行背景色、自适应行高、动态导出指定列、动态更改表头 【Go】excelize库实现excel导入导出封装(二&…

uniapp运行到小程序Vue.use注册全局组件不起作用

真想吐槽一下小程序,uniapp运行到小程序使用Vue.use注册全局组件根本不起作用,也不报错,这只是其中一个问题,其他还有很多问题,比如vue中正常使用的没问题的语法,运行到小程序就不行,又是包太大…

第一后裔延迟高怎么办?快速降低第一后裔延迟

第一后裔/The First Descendant一款射击游戏,融合了刷宝、角色扮演、团队合作、剧情等元素,让每个玩家都能在自己的角度上,找到切入点,并不断地成长,一步步解开后裔身上隐藏的秘密。近期该作正式上线,很多玩…

如何选择适合您业务需求的多语言跨境电商系统源码

随着互联网技术的飞速发展和全球市场的日益融合,多语言跨境电商已经成为许多企业进军国际市场的重要战略。在这个竞争激烈的时代,拥有一个适合自己业务需求的多语言跨境电商系统源码至关重要。本篇文章将为您揭秘如何选择适合您业务需求的多语言跨境电商…

接口自动化测试-项目实战

什么是接口自动化测试:使用工具或代码代替人对接口进行测试 测试项目结构(python包) 1、接口api包 2、script:业务脚本 3、data:数据 4、config.py :配置文件 5、reporter:报告 错误问题: 1、未打印任何东西。添加pip ins…

浅谈定时器之JSR223 定时器

浅谈定时器之JSR223 定时器 JSR223 定时器作为JMeter提供的众多定时器之一,以其高度的灵活性和可编程性脱颖而出,允许用户通过脚本自定义延时逻辑。本文将详细介绍JSR223定时器的特性和使用方法。 JSR223 定时器简介 JSR223 定时器利用了Java平台的JS…

家政小程序的开发,带动市场快速发展,提高家政服务质量

当下生活水平逐渐提高,也增加了年轻人的工作压力,同时老龄化也在日益增加,使得大众对家政的需求日益提高,能力、服务质量高的家政人员能够有效提高大众的生活幸福指数。 但是,传统的家政服务模式存在着效率低、用户与…

Unity 解包工具(AssetStudio/UtinyRipper)

文章目录 1.UtinyRipper2.AssetStudio 1.UtinyRipper 官方地址: https://github.com/mafaca/UtinyRipper/ 下载步骤: 2.AssetStudio 官方地址: https://github.com/Perfare/AssetStudio 下载步骤:

2024百元蓝牙耳机哪个好?2024性价比最高的蓝牙耳机推荐

2024想要在百元左右找到一款好用的性价比高的蓝牙耳机,确实是个不小的挑战。市场上各种耳机品牌和型号琳琅满目,各有各的特点。你可能会疑惑,如何才能在预算内挑选到一款性价比高、音质好的耳机呢?这篇文章将为你提供一些选购百元…

【SpringBoot Web框架实战教程】06 SpringBoot 整合 Druid

不积跬步,无以至千里;不积小流,无以成江海。大家好,我是闲鹤,微信:xxh_1459,十多年开发、架构经验,先后在华为、迅雷服役过,也在高校从事教学3年;目前已创业了…

【Mac】王国保卫战:起源 for mac(塔防策略游戏)游戏介绍和安装教程

游戏介绍 《王国保卫战:起源》(Kingdom: Origins)是一款策略塔防游戏,其核心玩法融合了塔防、策略管理和资源管理元素。游戏的主要目标是在一个开放的像素化世界中建立和管理自己的王国,并抵御夜晚来袭的怪物入侵。 …

华为仓颉语言体验:一个简单的socket服务端实现

前言 由于仓颉目前是内测状态, 不能展示仓颉的详细信息,但是华为仓颉官网的公共文档的内容是可以公开的。 我相信有不少喜欢编程的朋友都申请了内测,但是一些编程初学者应该和我一样,处于摸索阶段。所以,我这里把我测…

如果对方没做幂等!记一次生产订单重复的反思

最近公司公司的旧系统中发现了一个bug。业务部门反馈,尽管用户只支付了一年的服务费用,系统却将有效期增加了两年。 原因分析: 到底是什么原因呢? 经过日志分析,发现消息队列(MQ)向第三方服务发…

想用AI高端算力训练模型?试试英智BayStone平台

随着生成式人工智能的迅猛增长,各大公司纷纷推出强大的 AI产品以提升自身核心竞争力,对于依赖基础模型进行推理训练,同时需要高级基础设施的人工智能初创企业,急需使用高端智算算力来加速模型训练与产品研发创新。 算力是否充足&…

HiBit Uninstaller:软件批量卸载,一触即得

名人说:莫道谗言如浪深,莫言迁客似沙沉。 ——刘禹锡《浪淘沙》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 一、软件介绍1、HiBit Uninstaller2、核心功能 二、下载安装1、下载2、安装 …

【Sklearn-驯化】一文从基础帮你搞懂svm算法做分类和回归的原理以及实践

【Sklearn-驯化】一文从基础帮你搞懂svm算法做分类和回归的原理以及实践 本次修炼方法请往下查看 🌈 欢迎莅临我的个人主页 👈这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合,智慧小天地! 🎇 免费获取相关内容文…