转自:https://blog.csdn.net/real_myth/article/details/55509281
from: 车道检测与跟踪

车道检测的目标:

1. 车道形状,包括宽度、曲率等几何参数

2. 车辆在车道中的位置,包括横向偏移量,车辆与道路的夹角(偏航角)

车道检测与跟踪一般分为以下几个部分:

1. 车辆、道路、相机模型

2. 道路特征提取

3. 道路参数计算,如曲率,

4. 车道跟踪

车辆、道路、相机模型

在现代道路设计中,道路有比较固定的设计模型,因此,对于高速公路等道路类型,车道的几何模型可以以固定的形式表示。

车道弧长、曲率、偏航角、横向偏移量构成车辆与车道几何模型的要素。

车道一般由直线、圆弧和缓和曲线构成,缓和曲线通常是不同曲率的圆弧或直线的连接过渡,其曲率均匀变化,螺旋曲线是缓和曲线常用形式。

道路曲率与弧长(路长)的关系:

C = C0 + C1*L.

C0为起始点曲率,C1为曲率变化率。C0,C1都为0时,直线; C1为0时,C0不为0,圆弧;C1不为0时,缓和曲线。

在世界坐标系下,或俯视图下,在相机可视范围内,若车道的变化方向较小,则道路可用圆弧近似表示:

道路的坐标可以由弧长和曲率一般表示为:

y = L

x = 0.5*C*L^2

若相机与车道的横向偏移量为d,与车道的夹角为a,则车道模型为

y = L

x = d + a*L + 0.5*C*L^2

从公式来看,这是一个抛物线模型。这里没有考虑曲率变换率,即忽略了高次项(C1*L^3)/6。

不同的系统要求与道路环境,道路模型的精度要求也不同。在较早的系统里,在大路(highway)环境下,

基于视觉的车道模型经历了,平行直线模型 --> 固定曲率圆弧模型 --> 螺旋曲线模型。道路模型的精度不断提高。

使用哪种模型,要根据系统的实际需求。如早期的系统里,检测大路(highway)中10米内的车道状况,应用简单的线性模型即可。而车道偏离告警(LDW)系统中,在高速公路上,需要30米-40米的精确的道路模型,这时,螺旋曲线(高阶)或抛物线(二阶)模型就更为精确。

相机模型:

由图像的二维信息恢复出场景的三维信息,就需要相机模型来确立两者之间的对应关系。相机参数包括内部参数和外部参数。相机模型分为针孔相机模型和透镜畸变扩展模型。这些在另外一篇文章里有描述。相机的内外参数通过标定都可以获取。相机的外部参数体现了相机坐标下图像与世界坐标下场景的齐次变换关系。

道路特征检测

道路上车道标志的检测是道路特征检测的关键部分,并且已有很多算法,但道路场景太多,单一的算法还是无法适用所有的场景。算法分类:

  适用场景 不适用场景
基于边缘检测 虚线、实线明显 阴影、光照变化、反射不均匀
 基于频域技术 能处理反射不均的场景 阴影
基于路面纹理/模板 阴影、光照不均等 反射不均
     

基于边缘检测的常用算法有:

Sobel, DOG, LOG, Steerable Filter等。每种算法都有各自的优缺点。这里不再描述。

由基本算法处理后得到道路的特征图像,这里以边缘为例,需要进一步分析其特性,去除干扰,保留符合车道特征的边缘。如平行性、宽度等结构特征。如果这些结构特征分析做的好,也可以弥补基本算法的不足。

其他检测方法:

双阈值特征检测:原图像、梯度图像(边缘图像)分别有各自的阈值,分割出车道标志特征,当某点的灰度和梯度值分别大于各自的阈值时,才被选取为车道的特征点,这个方法会去掉一些阴影等干扰。

可调滤波器steerable filter:

对原图分别获取Gxx, Gyy, Gxy,高斯二阶分量。角度可变的滤波器的强度响应如下:

求上式的极值,则需求角度的导数,则能获取两个角度

对于滤波器窗口内圆形对称的物体,则两个角度的响应差不多;而对车道,两个角度响应的差值就比较大,响应大的方向就是车道方向,车道方向也可以探测出。

道路参数计算

道路方向、曲率的计算。霍夫变换是常用的检测直线的方法,还有其他方法筛选特征计算参数的方法,如最小二乘估计,RANSAC,这些方法基本上都设定了道路模型,由特征点来计算参数。但也可以由计算出的模型,去除不符合条件的特征。

跟踪

一般跟踪的作用就是预测下一帧图像内道路特征的位置,在一个较小的范围内检测道路特征,提高效率。若预测范围内没有检测到道路特征,则采用估计或上一帧特征的位置,若连续几帧都没有检测到道路特征,则启动全图像道路特征检测。KalmanFilter是常用的跟踪算法。

车道的状态要考虑车道的位置、速度、偏航角及车辆行驶转角之间的关系。

夹角增量 = 曲率 * 长度

状态变量为道路弧长、车道夹角、道路曲率、车道宽度

车辆的行驶转角作为控制输入变量。

测量变量为道路弧长和车辆与道路的夹角。

则状态转移方程如下:

【ADAS】车道线检测与跟踪相关推荐

  1. 【camera】自动驾驶感知系统实现(车道线检测和拟合、目标检测与跟踪、道路可行驶区域分割、深度估计、图像视野到BEV空间映射、像平面到地平面映射)

    自动驾驶感知系统实现(车道线检测和拟合.目标检测与跟踪.道路可行驶区域分割.深度估计.图像视野到BEV空间映射.像平面到地平面映射) 项目下载地址:项目下载地址 推理引擎下载地址:推理引擎下载地址 支 ...

  2. 车道线检测+车道线跟踪+车道线识别

    原本打算用深度学习的,但是....各种原因.于是想着随便先实现以一下,发现效果还不错,还节约成本.美滋滋 现成代码美滋滋,先上个链接 http://blog.csdn.net/chongshangyu ...

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

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

  4. CVPR 2022 | Accuracy和F1-score真的能代表车道线检测网络性能吗?

    点击下方卡片,关注"自动驾驶之心"公众号 ADAS巨卷干货,即可获取 点击进入→自动驾驶之心[车道线检测]技术交流群 后台回复[车道线综述]获取基于检测.分割.分类.曲线拟合等近几 ...

  5. 3D车道线检测能否成为自动驾驶的核心?盘一盘近三年的SOTA论文!

    点击下方卡片,关注"自动驾驶之心"公众号 ADAS巨卷干货,即可获取 车道线检测一直都是自动驾驶热门的研究方向,也是整个自动驾驶感知技术栈不可或缺的一环,今天汽车人就带大家盘一盘近 ...

  6. 速度精度双SOTA! TPAMI2022最新车道线检测算法(Ultra-Fast-Lane-Detection-V2)

    点击下方卡片,关注"自动驾驶之心"公众号 ADAS巨卷干货,即可获取 点击进入→自动驾驶之心技术交流群 后台回复[车道线综述]获取基于检测.分割.分类.曲线拟合等近几十篇学习论文! ...

  7. 车道线检测在AR导航中的应用与挑战

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 1. 导读 现代社会中,随着车辆的普及,人的活动范围在逐步扩大,单单依靠人类记忆引导行驶到达目的地已经 ...

  8. 自己小组的一篇 CVPR 2023 车道线检测论文

    作者 | Captain Jack 编辑 | CVer 原文链接: https://zhuanlan.zhihu.com/p/614191683 点击下方卡片,关注"自动驾驶之心" ...

  9. 聊一聊基于激光雷达的车道线检测该怎么做

    作者 |  Been  编辑 | 汽车人 原文链接:https://zhuanlan.zhihu.com/p/388929795 点击下方卡片,关注"自动驾驶之心"公众号 ADAS ...

最新文章

  1. hive SERDEPROPERTIES 中对NULL的处理
  2. SQLServer数据库的备份/恢复的3中策略实例
  3. python画数学曲线_python学习笔记28:画函数曲线图
  4. SDN的发展壮大确实在蚕食物理网络基础设施的阵地
  5. OceanBase开源,11张图带你了解分布式数据库的核心知识
  6. R 学习 - 功能富集泡泡图
  7. IntelliJ IDEA 中使用 Lambok (注解无效问题的解决)
  8. AngularJS app.run()文档?
  9. android app跳转淘宝客户端店铺
  10. oracle角色数达到上限,ROLE启用个数限制
  11. 万能手机usb内窥镜软件下载_万能证件生成器手机版-万能证件生成器手机版下载 v1.0 免费版...
  12. 4.2.1朴素模式匹配算法
  13. 计算机上机考试能复制粘贴吗?
  14. 带特殊符号|的字符串的截取
  15. 求n的阶乘,求1~n的阶乘和(循环)
  16. 谷歌浏览器,无需安装
  17. 中年人学C语言Windows程序设计,30 DialogBox控件
  18. Java开发工程师--面试题(珍藏版)
  19. Smart3d 近景摄影测量与航空摄影测量
  20. 机器学习中样本的样本量的估计(VC维)

热门文章

  1. 课程设计:转速、电流双闭环调速系统设计及仿真
  2. 美容院系统如何创新运营方案?
  3. 【论文阅读】Learning Spatio-Temporal Representation with Pseudo-3D Residual Networks
  4. PyTorch碎片:F.pad的图文透彻理解
  5. php怎么制作勾选列表,web列表设置勾选状态
  6. 2048 java代码_java实现的2048游戏完整实例
  7. C# 利用计算机信息实现软件注册
  8. iOS学习笔记2-使用Audio Queues录音,取得实时PCM数据
  9. mkfs.ubifs/hashtable/hashtable_itr.c:42:1: error: redefinition of ‘hashtable_iterator_key’
  10. 基于数字图像处理的车牌定位和分割的研究 -- 开题报告