道路模型与道路跟踪

背景:L3-/L2 辅助驾驶项目中,节点将至,需要研究与总结,刚听完华为的技术分享,决定重新梳理本文章。

文章目录

  • 道路模型与道路跟踪
  • 参考:
  • 车道模块的接口定义
  • 知识点1:曲率
  • 知识点2:道路设计基础知识
  • 知识点3:缓和曲线是什么?
  • 知识点3:数学上的螺旋曲线
  • 知识点4:螺旋线的几种形式
  • 知识点5:二维螺旋线
  • 知识点6:道路曲率与弧长(路长)的关系:
  • 知识点7:俯视图下,车道
    • 1、俯视图下,在相机可视范围内,若车道的变化方向较小,则道路可用圆弧近似表示
    • 2、俯视图下,在相机可视范围内,若车道有一定的变化方向,则道路可用缓和曲线近似表示:
  • 知识点8:某角特别小时,为什么该角正弦值近似等于正切值呢
  • 知识点9:道路参数计算
  • 知识点10:跟踪与滤波
  • 知识点11:KalmanFilter 滤波车道线思路
  • 12. 旧内容

参考:

https://blog.csdn.net/viewcode/article/details/7969259

车道模块的接口定义

输入:汽车姿态,图像信息,图像参数
输出:用三次曲线表示道路空间信息

几何信息包括:

  • 弧长,宽度、曲率——(形状信息);
  • 横向偏移量,车辆与道路的夹角(偏航角)——(汽车与车道关系)

知识点1:曲率

曲率推导:https://blog.csdn.net/djfjkj52/article/details/105051431

知识点2:道路设计基础知识

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

道路组成:直线、圆弧和缓和曲线构成。

知识点3:缓和曲线是什么?

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

知识点3:数学上的螺旋曲线

螺旋线属于空间曲线,它有圆柱螺旋线,圆锥螺旋线等多种形式。在建筑与机械工程中最常用的是圆柱螺旋线。

数学中有各式各样富含诗意的曲线,螺旋线就是其中比较特别的一类。螺旋线这个名词来源于希腊文,它的原意是“旋卷”或“缠卷”。例如,平面螺旋便是以一个固定点开始向外逐圈旋绕而形成的曲线 。

在2000多年以前,古希腊数学家阿基米德就对螺旋线进行了研究。
著名数学家笛卡尔于1638年首先描述了对数螺旋线,并且列出了螺旋线的解析式
更有趣的是瑞士数学家雅谷·伯努利,在逝世前请人在他的墓碑上刻了一条蜗牛屋形——对数螺旋线,并幽默地写上“我将按着原来的样子变化后复活”的墓志铭 。

知识点4:螺旋线的几种形式

1、一般螺旋线

2、圆柱螺旋线

  • http://drhuang.com/chinese/science/mathematics/handbook/G92/G92.htm
  • https://baike.baidu.com/item/%E8%9E%BA%E6%97%8B%E6%9B%B2%E7%BA%BF/7678291
  • https://baike.baidu.com/item/%E8%9E%BA%E6%97%8B%E7%BA%BF/10012826

定义:

  • 螺旋曲线为一条沿半径为r的圆柱体表面以角速度kω(k为比例因子)匀速升降的曲线。


1.直角坐标系方程
直角坐标系方程

x=rcoskωt
y=rsinkωt
z=kωt

2.圆柱坐标系方程
圆柱坐标系方程

z=φ=kωt,ρ=r;

3.球坐标系方程
球坐标系方程

φ=kωt,r球=r/sinθ,θ=arctg(r/φ);

3、圆锥螺旋线

知识点5:二维螺旋线

1、阿基米德螺线
阿基米德螺线的极坐标方程式为:
r=a+bθr=a+ b\thetar=a+bθ

其中a和b均为实数。改变参数a相当于旋转螺线,而参数b则控制相邻两条曲线之间的距离

知识点6:道路曲率与弧长(路长)的关系:

C=C0+C1∗LC = C0 + C1*LC=C0+C1∗L
其中
C为曲率;
C0为起始点曲率;
C1为曲率变化率。

一、C0,C1都为0时,直线。
二、C1为0时,C0不为0,圆弧。
三、C1不为0时,缓和曲线。

知识点7:俯视图下,车道

1、俯视图下,在相机可视范围内,若车道的变化方向较小,则道路可用圆弧近似表示

**道路的坐标(x,y)(x,y)(x,y)**可以由弧长LLL和曲率CCC一般表示为:

y=Ly = Ly=L

x=0.5∗C∗L2x = 0.5*C*L^2x=0.5∗C∗L2

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

y=Ly = Ly=L

x=d+a∗L+0.5∗C∗L2x = d + a*L + 0.5*C*L^2x=d+a∗L+0.5∗C∗L2

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

2、俯视图下,在相机可视范围内,若车道有一定的变化方向,则道路可用缓和曲线近似表示:

y=Ly = Ly=L

x=0.5∗C∗L2+(C1∗L3)/6x = 0.5*C*L^2+(C1*L^3)/6x=0.5∗C∗L2+(C1∗L3)/6
若相机与车道的横向偏移量为d,与车道的夹角为a,则车道模型为

y=Ly = Ly=L

x=d+a∗L+0.5∗C∗L2+(C1∗L3)/6x = d + a*L + 0.5*C*L^2+(C1*L^3)/6x=d+a∗L+0.5∗C∗L2+(C1∗L3)/6

d :横向偏移量
a :路边沿航向角
C :路边沿的曲率平均值
C1 :路边沿曲率变化率平均值


知识点8:某角特别小时,为什么该角正弦值近似等于正切值呢

从微分在近似运算中的应用的角度来说:
f(x)≈f(x0)+f′(x0)⋅(x−x0)f(x)≈f(x0)+f'(x0)·(x-x0)f(x)≈f(x0)+f′(x0)⋅(x−x0)

当角x趋近于零(特别小)的时候,取x0=0x0=0x0=0,

则有:
f(x)≈f(0)+f′(0)xf(x)≈f(0)+f'(0)xf(x)≈f(0)+f′(0)x

由此可推出:

1.sinx≈x(x是弧度)
2.tanx≈x(x是弧度)

故当x趋近于零(很小)的时候sinx≈tanx≈x。

链接:
https://www.zhihu.com/question/341126674/answer/795041404
https://www.zhihu.com/question/323687244/answer/678358299

知识点9:道路参数计算

道路方向、曲率的计算。

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

知识点10:跟踪与滤波

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


(该公式就是:
y=Ly = Ly=L

x=d+a∗L+0.5∗C∗L2+(C1∗L3)/6x = d + a*L + 0.5*C*L^2+(C1*L^3)/6x=d+a∗L+0.5∗C∗L2+(C1∗L3)/6)

知识点11:KalmanFilter 滤波车道线思路

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

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

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

则状态转移方程如下:
x=A∗x+B∗ux = A*x+B*ux=A∗x+B∗u
y=M∗xy = M*xy=M∗x

where
x=[L,tan(a),C,w]x=[L,tan(a),C,w]x=[L,tan(a),C,w]
B∗u=[0,B*u=[0,B∗u=[0,\theta,0,0],0,0],0,0]

链接:https://blog.csdn.net/viewcode/article/details/7969259

12. 旧内容

道路特征检测

链接:https://blog.csdn.net/viewcode/article/details/7969259

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

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

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

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

其他检测方法:

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

可调滤波器steerable filter:

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

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

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

【车道线检测与寻迹】【1月8日】车辆、道路模型与道路跟踪相关推荐

  1. 【车道线检测与寻迹】LSD、LBD快速直线检测

    python应用LSD opencv 这个LSD https://github.com/primetang/pylsd是封装好的,不知道哪儿改参数,原始的LSD检测前会将图片缩小至80%,当图片很小是 ...

  2. AUTOSAR从入门到精通100讲(二十二)-手把手教你写Demo系列之车道线检测

    本文是一篇从零开始做车道线检测Demo的教学式文章,从场景的定义到模型微调的输出,描述车道线Demo式例程中在每个环节需要做的工作,以及中途可能会遇到的各种问题. 1 场景维度定义 根据任务需求,需要 ...

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

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

  4. 鲁汶大学提出可端到端学习的车道线检测算法

    点击我爱计算机视觉标星,更快获取CVML新技术 近日,比利时鲁汶大学提出基于可微最小二乘拟合的端到端车道线检测算法,使该任务的学习过程不再割裂,实现整体的系统最优化. 该文作者信息: 背景 众所周知, ...

  5. 通用汽车研发中心最新提出:3D车道线检测新方法

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作分享,不代表本公众号立场,侵权联系删除 转载于:知乎黄浴博士,已获授权 https://zhuanlan.zhi ...

  6. 基于MATLAB改进Otsu阈值分割的车道线检测

    基于MATLAB改进Otsu阈值分割的车道线检测 摘要:在判断车道偏离以防止车辆碰撞等危害时,车道标线检测需要通过图像处理来进行,检测方法是否适用于各种背景环境条件以及检测的及时性至关重要传统的Ots ...

  7. 毫米波与视觉融合及车道线检测视频分享

    毫米波与视觉融合及车道线检测视频分享 微信公众号:幼儿园的学霸 个人的学习笔记,关于OpenCV,关于机器学习, -.问题或建议,请公众号留言; ADAS项目基本就要结束了,今天将项目中的部分结果视频 ...

  8. 3D车道线检测:Gen-LaneNet

    3D车道线检测:Gen-LaneNet Gen-LaneNet: A Generalized and Scalable Approach for 3D Lane Detection 论文链接:http ...

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

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

  10. 【camera】全景驾驶感知网络YOLOP部署与实现(交通目标检测、可驾驶区域分割、车道线检测)

    全景驾驶感知网络YOLOP部署与实现(交通目标检测.可驾驶区域分割.车道线检测) 项目下载地址 包含C++和Python两种版本的程序实现:下载地址 YOLOP开源项目: https://github ...

最新文章

  1. Docker+Selenium Grid+Python搭建分布式测试环境
  2. a*算法迷宫 c++_算法竞赛专题解析(12):搜索基础
  3. vbe6ext.olb不能被加载解决方案
  4. C++pair对组的创建
  5. java程序设计图形题_面向对象与Java程序设计基础题目:设计一个程序可以一计算平面图形的面积和立体图形的体积。1.使用interface关键...
  6. python魔术方法str_python 魔术方法(三)对象的打印 -- __repr__ 与 __str__
  7. 【渝粤教育】国家开放大学2018年春季 0579-21T电路及磁路(2)(一) 参考试题
  8. python27的Windows下环境搭建
  9. 全网最全-Java简历优化-专业技能
  10. PYTHON混淆器 pyobfuscate
  11. 计算机中的睡眠和休眠
  12. AWS abbreviation
  13. 开机后, 小键盘的灯不亮的解决方法
  14. 3种修正异常数据的方法
  15. 计算机六级考什么科目,四六级考试科目及考试内容
  16. C# FileStream类:文件读写
  17. Cpulimit---控制cpu百分比
  18. 基于Python实现的费诺编码
  19. 沙雕加速的使用方法和最新官网
  20. 函数式编程-Stream流/lambda表达式/Optional/函数式接口/方法引用/高级用法

热门文章

  1. SSM框架01--springmvc
  2. java多个收银台收银_Java策略模式设计(简易收银台SpringBoot)
  3. android仿美丽说登录拖拽Layout
  4. 实现视频播放器倍速、清晰度切换、m3u8下载功能
  5. 一位38岁的老码农在退休前和年轻码农们的互动
  6. 勤能补拙 VS 思考补拙
  7. 打开pdf文件提示文件过大_如何把pdf文件进行分割?拆分pdf文件的方法分享
  8. 亚信科技java笔试题答案_大神帮忙,亚信面试题目
  9. python创建类mymath_构建DLL(MyMathFuncs)以在Python Ctypes中使用
  10. 用命令行查看mysql,利用命令行查看Mysql数据库