论文解读--Visual Lane Tracking and Prediction for Autonomous Vehicles

自动驾驶汽车视觉车道线跟踪和预测

摘要

        我们提出了一种用于自动驾驶汽车跟踪水平道路车道标记位置的可视化方法。我们的方法是基于预测滤波的。预测步骤估计在每个新的图像帧中期望的车道标记位置。它也是基于汽车的运动学模型和嵌入式测程传感器产生的信息。使用适当准备的测试车辆获得的实验结果表明,在某些条件下,如振荡和变道,预测步骤可以显著地减少跟踪误差。因此,我们相信我们的方法应用于基于图像的控制自动驾驶汽车可以提高系统性能。

1.介绍

        汽车本身无疑是现代自动化的最大挑战之一。一方面,飞机和船舶的汽车驾驶员是众所周知的和广泛使用的。另一方面,由于更加复杂,对于汽车和卡车,这项技术仍在开发中。其目标是使汽车自动从地址A驾驶到地址B,与有经验的人类司机一样安全(或更安全)。在这种情况下,用户就只是一名乘客。

        对于汽车来说,自动驾驶系统的一个基本要求是能够将车辆保持在道路内,并行驶在车道的中心。这需要了解周围环境的知识,这是通过安装在汽车上的传感器获得的,例如,照相机、激光扫描、GPS和惯性单元。

       (NASHMAN,1992年)、(SCHNEIDERMAN,1994年)、(POMERLEAU,1996年)、(BROGGI,1999年)和(LU,2002年)等项目只依赖于摄像机生成的灰度图像,用于检测道路的位置和估计曲率。在(CHRISMAN,1998)和(SALES,2010)中,彩色图像被用来对属于道路的区域进行分类。这一想法也被应用于(DAHLKAMP,2006),以扩大系统的范围,超出在其自主车辆上使用的激光测距仪(LRF)传感器的范围。

        立体视觉系统允许计算场景上物体的距离。在(BROGGI,2010)和(LIMA,2010)中使用了双目视觉系统(立体视觉)用于障碍检测。但是,这种系统具有计算成本高的缺点。

        像(GUIZZO,2011)和(自动驾驶实验室,2012)等项目将LRF传感器与相机、GPS、IMU和地图信息相结合,使自动驾驶研究达到前所未有的水平。这两个项目都成功地完成了在真实城市环境中的自主导航任务。

        在巴西,这一领域的研究正在开始发展,我们强调一些:为你驾驶,UNIFEI(VEERMAS,2010),CADU,UFMG(LIMA,2010),VERO,CTI /Campinas(VERO,2012),EESC / USP(SENA,2012),CARINACARINA,2010),由ICMC / USP开发。我们大学的另一个小组(UFES)也在开发一个自动驾驶汽车项目。他们买了一辆已经安装了主要硬件组件的车,他们主要关注的是软件方面。他们的主要目标是了解人类大脑是如何利用图像来解释世界的(LCAD,2013)。另一方面,我们项目的主要目标是建立一辆具有简单和低计算成本的解决方案的自动驾驶汽车。为了实现这一目标,我们正在通过安装执行器和传感器来调整普通汽车。我们的汽车已经能够在可控的条件下,在真实的道路上自动驾驶(VIVACQUA等人,2012年)。

        我们的系统由一台连接到一个USB摄像头的笔记本电脑和一个接口板组成。USB摄像头安装在前挡风玻璃上,指向道路。接口板将计算机连接到汽车编码器,并连接到负责驱动轮定位的步进电机。

        计算视觉系统产生的视觉信息受到由遮挡、反射、阴影等引起的噪声或误差的影响。为了使这些问题的影响最小化,对原始图像进行过滤过程,以产生更可靠的信息。这些信息是所谓的模型状态的基础,并被反馈到视觉算法中,以定义感兴趣的图像区域(ROI)(见图1)。在(VIVACQUA 等人,2012)中,这些信息也被控制器用来使自动驾驶汽车保持在道路的中心。

图1:用来生成模型状态的可视化信息流

        一些视觉车道跟踪的方法(SCHNEIDERMAN,1994)、(AUFRERE,2000)、(LU,2002)和(CHOI,2012)。它们都使用某种过滤过程来更新其模型状态(描述车道标记的参数),但没有一种方法使用预测为了实现预测,车辆的位移信息必须是可访问的和可靠的。我们已经对我们的自动驾驶汽车进行了必要的调整,在本文中,我们提出了一种基于预测过滤的可视化方法来跟踪水平道路车道标记的位置的可视化方法。预测步骤估计在每一个新的图像帧中的期望车道标记位置,以最小化跟踪误差。下面的几部分将对我们的系统进行解释,并讨论一些实验结果。

2.参照系

        在进行预测步骤之前,需要将系统参照系从相机的参照系更改为汽车的参照系,考虑到摄像机在原点(自我参照系-OR)。在自动驾驶汽车中使用的视觉系统检测到的水平车道标记(VIVACQUA,2012)通过反向透视投影(图2)进行映射,就像图像是从天空看到的一样,假设道路是完美的平面(鸟瞰图)。

图2:参照系。(A)相机参照系;(B)汽车参照系

        在自我参照系中,原点是地平面中相机正下方的点,Z轴对应于汽车的位移方向(当向前移动时),X轴是横向方向。图2 (B)显示了与图2 (A)图像中检测到的信息对应的两条导线(左和右)。预测步骤的基本思想是,可以根据运动学模型预测汽车在下一个图像帧中的位置,在实际帧上的位置。        

3.汽车运动学模型

        汽车运动学模型可以用图3所示的自行车模型来近似。图中:Pr为描述车辆轨迹的圆周的中心,Pc为车辆中的摄像机位置(或原点),R为Pc描述的轨迹曲率半径,Lt为车辆前后轴的距离,Lr为或原点与后轴的距离,α为前轮转角。

图3:汽车运动学模型

        使用汽车运动学模型(1),根据其参数和前轮转角(α),我们可以计算出世界参照系(WR)中的车辆轨迹。

 (1)

        其中,x、z、θ为车辆在WR中的位置和方向,v为车辆的线速度。值得注意的是,世界参照系WR的起源是固定在地面上的,而不是固定在汽车上的。因此,当汽车移动时,点Pc描述了点线轨迹,固定物体在世界中的位置保持不变。

4.位置预测

        在OR参考系中,点Pc与原点重合,世界上的固定物体旋转Pr,但方向相反。图4显示了在或参考系统中所看到的世界上一个固定物体的初始位置。根据初始位置的信息和由运动学模型所定义的轨迹,可以估计未来的位置。

图4:对象位置预测:(a)右转;(b)左转;(c)直行。

        旋转中心(Pr)、摄像机轨迹的曲率半径(R)和角位移(Δθ)采用(2)、(3)和(4)进行计算。

        以米为单位的距离(通过位于前轴的编码器获得)和前轮转角(α)(通过安装在驱动轮轴上的另一个编码器获得):

 (2)

 (3)

 (4)

        其中,ΔL为位移距离。

5.抛物线旋转

        要估计任何物体的新位置,人们只需知道旋转中心(Pr)、旋转角度(Δθ),并应用一个二维旋转操作。在(VIVACQUA,2012)中描述的自动驾驶车辆的具体案例中,系统被测试,跟踪对象是构成道路模型的两个道路车道标记。每一个标记都用一个二次多项式表示。

 (5)

        给定旋转抛物线的一个点(X,Z),我们可以通过反向旋转操作,在原始抛物线中找到相应的点(X,Z),由下式给出

 (6)

 (7)

        其中Px和Pz为旋转中心的坐标。在(5)中替换(6)和(7),我们得到了旋转抛物线的一般形式:

 (8)

        这种形式与软件中使用的原始数据结构不兼容,不允许对X给定Z的显式计算,这在计算上是不可取的。为了解决这个问题,我们提出了一种方法来找到一个良好的旋转抛物线的近似值,以保持在(5)中给出的默认形式。

        考虑旋转的抛物线方程

 (9)

        我们需要解决的问题是找到系数a2r,a1r和a0r。解决这个问题的一般思想是:找到区间内原始抛物线x (z)的中心点M[z0..z1];应用Δθ绕Pr点旋转(从而使M变成Mr);考虑Mr属于新的抛物线xr (z);并考虑这个点的切线方向被旋转角度Δθ减去。

        切线在M点上的倾角由给出。利用切线差的性质,我们有:

。由于旋转的抛物线曲率没有改变,我们有a2r=a2。系数a1r可以用计算,系数a0r用计算。通过这样做,我们得到在OR参考系的旋转抛物线参数。

图5:旋转抛物线的近似值

6.滤波

        我们考虑到车道标记位置在连续帧中不会有太大的变化,大量的噪声会导致图像快速变化(如反射或遮挡)。为此,我们选择使用一阶低通滤波器,考虑到其对系统行为的影响,我们在实验中定义了该时间常数:如果该值过低,滤波对零星误差测量的衰减作用很小。另一方面,如果它太高,这将延迟响应,并且会给模型带来困难,例如在弯道前后发生的道路形状的缓慢变化。在用车载摄像机在80km/h速度下拍摄的视频进行测试后,我们发现τ = 3的值在鲁棒性和响应速度之间产生了很好的折衷。

        式(10)表示表示状态模型的向量Wi。式(11)是低通滤波器的表达式,它从视觉系统(Ui)生成的度量中更新模型状态。

 (10)

 (11)

7.实验结果

        为了测量预测系统的性能,我们使用一个适当适应的测试车辆进行了一些实验,以获取与里程长测量同步的道路图像。该车辆在三种曲率条件下驾驶,如图6: (A)在左转;(B)在一条直线上;和(C)在右转。在每个曲率条件下,车辆就轨迹的振荡水平以三种不同模式进行(图6 (D)至6 (F)):无振荡(L0),车辆沿与导线平行的道路行驶;低振荡水平(L1),车辆周期性穿过中心线;高振荡(L2),车辆也穿过中心线,但有更明显的偏差。

图6:实验条件:(A)左转、(B)直行、(C)右转、(D、E、F)对应路线

        在轨迹中引入振荡,迫使车辆移动不平行于道路线,以便预测能够证明其保持模型状态接近瞬时测量的能力。

        测试在100米长的路径上以大约40 km/h的速度进行,每40 ms采集一次数据(图像和里程计)。图7显示了图6中每个轨迹的注册驱动轮位置。

图7:在试验中获得的驱动轮位置数据

        收集到的数据在实验室进行分析,用来评估系统性能(有和不使用预测)。所使用的性能指数是绝对水平平均误差(AHAE),由模型定义的曲线与瞬时测量定义的曲线的差值计算出来。

 (12)

8.讨论

        图8显示了从测试中获得的视频中获得的帧序列,它与图6(D)中所示的L2轨迹的情况相对应。这个序列对应于车辆远离中心线的延伸,可以从黄色标记的连续位移到左边。

图8:帧序列,显示了有和没有预测的跟踪过程。

        图8清楚地显示,与只使用滤波和预测的模型(黑色虚线)相比,使用滤波和预测的模型(白色虚线)更接近度量值(红色连续线)。这说明了我们的方法的好处。

        感知模型状态和视觉测量之间更接近的另一种方法是通过图9中的图,图中显示了过滤模型和带有预测的过滤模型的多项式的参数a0(车道偏移)和a1(车道方向)。曲率参数(a2)没有给出,因为它在考虑的拉伸中实际上是恒定的。

图9:仅滤波和滤波-预测的模型参数表现

图10:振荡等级2中的累积误差

        在图9中,我们可以注意到低通滤波去除高频噪声的能力,这导致了延迟平滑曲线(没有预测情况)。通过使用预测,可以减少不期望的延迟(预测)。这种减少是因为预测补偿了汽车运动对捕获图像的影响。图10为具有较高振荡(L2)的测试条件下,指数AHAE的归一化累积误差(NAE),其中认为无预测的累积误差为1。用(13)计算,其中n为实验中使用的总帧数。

 (13)

        在所有测试用例中,有预测的累积误差上升速率小于未有预测的累积误差(低于0,51)。

        图11总结为在所有测试条件下得到的最终NAE值,详见图11。我们可以注意到,当汽车以较高振荡水平的轨迹行驶时,NAE的值会降低。这是因为当存在振荡时,车道标记在摄像机视野内横向发生位移,预测的使用补偿了这种效应,使模型更接近真实测量,同时保持滤波过程给出的鲁棒性。我们相信,预测步骤将提高自动驾驶车辆在类似条件下驾驶时的性能。

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

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

相关文章

区块链媒体:Web3.015个方法解析-华媒舍

Web3.0是第三代互联网的发展阶段,相较于Web2.0,它具有更高的可信性、安全性和去中心化特点。在Web3.0时代,推广变得更为重要,因为吸引用户和提高品牌知名度对于在竞争激烈的市场中脱颖而出至关重要。本文将揭秘推广Web3.0的15个秘…

Mysql安全之基础合规配置

一、背景 某次某平台进行安全性符合型评估时,列出了数据库相关安全选项,本文特对此记录,以供备忘参考。 二、安全配置 2.1、数据库系统登录时的用户进行身份标识和鉴别; 1)对登录Mysql系统用户的密码复杂度是否有要…

CSS3 修改滚动条样式

上图: 上代码: /* 修改垂直滚动条 */ .right-list::-webkit-scrollbar {width: 2px; /* 修改宽度 */height: 5px; /* 修改高度 */ } /* 修改滚动条轨道背景色 */ .right-list::-webkit-scrollbar-track {background-color: #f1f1f1; } /* 修改滚动条滑块…

2023-12-03 LeetCode每日一题(可获得的最大点数)

2023-12-03每日一题 一、题目编号 1423. 可获得的最大点数二、题目链接 点击跳转到题目位置 三、题目描述 几张卡牌 排成一行,每张卡牌都有一个对应的点数。点数由整数数组 cardPoints 给出。 每次行动,你可以从行的开头或者末尾拿一张卡牌&#x…

吴恩达《机器学习》11-1-11-2:首先要做什么、误差分析

一、首先要做什么 选择特征向量的关键决策 以垃圾邮件分类器算法为例,首先需要决定如何选择和表达特征向量 𝑥。视频提到的一个示例是构建一个由 100 个最常出现在垃圾邮件中的词构成的列表,根据这些词是否在邮件中出现来创建特征向量&…

【MATLAB】mlptdenoise分解+FFT+HHT组合算法

有意向获取代码,请转文末观看代码获取方式~也可转原文链接获取~ 1 基本定义 MLPT Denoise是一种基于小波变换的信号分解算法,可以将信号分解为多个具有不同频率特性的小波分量,并对每个小波分量进行频域分析。它基于最大似然参数调整&#…

Fiddler抓包工具之fiddler设置弱网测试

弱网测试 概念:弱网看字面意思就是网络比较弱,我们通称为信号差,网速慢。 意义:模拟在地铁、隧道、电梯和车库等场景下使用APP ,网络会出现延时、中断和超时等情况。 Fiddler弱网测试流程: 一、限速操作…

PTA结构体经典编程题

目录 第一题:计算平均成绩 第二题:平面向量加法 第三题:查找书籍 第四题:通讯录排序 第五题:计算职工工资 第一题:计算平均成绩 思路:看到一个学生的基本信息,所以定义一个结构…

12.二维字符数组——输出basic和BASIC

文章目录 前言一、题目描述 二、题目分析 三、解题 程序运行代码 前言 本系列为二维字符数组编程题&#xff0c;点滴成长&#xff0c;一起逆袭。 一、题目描述 输出basic和BASIC 二、题目分析 法一&#xff1a; for(i0;i<1;i){ for(j0;j<6;j){ putchar(a[i][j]); pri…

文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《市场环境下运行的光热电站子系统容量优化配比研究》

这个标题涉及到对市场环境下运行的光热电站子系统进行容量优化配比的研究。让我们逐步解读&#xff1a; 市场环境下运行的光热电站&#xff1a; 这指的是光热电站在实际市场环境中的运行&#xff0c;可能包括了市场相关的经济、政策、竞争等因素。 子系统&#xff1a; 光热电站…

【Vue2】Vue的介绍与Vue的第一个实例

文章目录 前言一、为什么要学习Vue二、什么是Vue1.什么是构建用户界面2.什么是渐进式Vue的两种开发方式&#xff1a; 3.什么是框架 三、创建Vue实例四、插值表达式 {{}}1.作用&#xff1a;利用表达式进行插值&#xff0c;渲染到页面中2.语法3.错误用法 五、响应式特性1.什么是响…

docker+jmeter+influxdb+granfana

centos7国内阿里源安装docker 1、安装必要的系统工具 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 2添加官方仓库 sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.reposudo sed -i sdownload.doc…

微服务实战系列之Redis

前言 云淡天高&#xff0c;落木萧萧&#xff0c;一阵西北风掠过&#xff0c;似寒刀。冬天渐渐变得更名副其实了&#xff0c;“暖冬”的说法有点言过其实了。——碎碎念 微服务实战系列之Cache微服务实战系列之Nginx&#xff08;技巧篇&#xff09;微服务实战系列之Nginx微服务实…

2024年,Rust和Go学哪个更好?

Rust vs. Go&#xff0c;在2024年&#xff0c;应该选择哪一个&#xff1f;或者说应该选择哪种语言——GoLang还是Rust。这可能是许多程序员在选择语言时考虑的一个问题。选择理想的编程语言被视为在这个不断变化的环境中取得成功的重要抉择。 GoLang和Rust是当今使用的最年轻的…

【机器学习】简单认识监督学习

简单认识监督学习 ⭐️Supervised learning⭐️Examples⭐️Specific example⭐️两种类型的监督学习算法&#x1f319;回归算法&#x1f319;分类算法 ⭐️总结 Hi~大家好呀&#xff01;经历了暑假期间短暂的接触机器学习的一些算法&#xff0c;之后又对深度学习、yolo系列有些…

PID控制

在PID控制中&#xff0c;输出通常是一个控制量&#xff0c;而不是直接的PWM占空比。输出的具体含义可以根据具体的系统和应用而变化。在这段代码中&#xff0c;PID控制器的输出是 output_calc。 而 CCR_duty 是控制施肥系统的PWM占空比&#xff0c;这是通过PID控制的输出和曲线…

T-SQL语句管理表

SQL Server对数据库的操作有两种方式&#xff0c;即可视化操作界面和SQL语言。 SQL Server的操作也可以使用T-SOL语句完成&#xff0c;这也是实际生产环境中数据库管理员最常使用的管理数据库的方法。 T-SQL&#xff1a;SQL的加强版&#xff0c;提供了类似于程序语言的基本功…

谈谈MYSQL索引

基本介绍 索引是帮助MySQL高效获取数据的数据结构&#xff0c;主要是用来提高数据检索的效率&#xff0c;降低数据库的IO成本&#xff0c;同时通过索引列对数据进行排序&#xff0c;降低数据排序的成本&#xff0c;也能降低了CPU的消耗。 通俗来说, 索引就相当于一本书的目录,…

盘点25个Html游戏Game源码网页爱好者不容错过

盘点25个Html游戏Game源码网页爱好者不容错过 学习知识费力气&#xff0c;收集整理更不易。 知识付费甚欢喜&#xff0c;为咱码农谋福利。 下载链接&#xff1a;https://pan.baidu.com/s/1lSNLjWB4xMuLV8m_kDtczw?pwd6666 提取码&#xff1a;6666 项目名称 21点游戏 H5…

SpringBoot整合Kafka

SpringBoot整合Kafka 文章目录 SpringBoot整合Kafka下载与安装创建topic&#xff0c;测试生产消费程序SpringBoot整合Kafka导坐标做配置做客户端 下载与安装 下载地址&#xff1a; https://kafka.apache.org/downloads 下载2的版本&#xff0c;3.的版本会报错 解压安装&#x…