论文解读--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的值会降低。这是因为当存在振荡时,车道标记在摄像机视野内横向发生位移,预测的使用补偿了这种效应,使模型更接近真实测量,同时保持滤波过程给出的鲁棒性。我们相信,预测步骤将提高自动驾驶车辆在类似条件下驾驶时的性能。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_41691854/article/details/134761426

智能推荐

Docker 快速上手学习入门教程_docker菜鸟教程-程序员宅基地

文章浏览阅读2.5w次,点赞6次,收藏50次。官方解释是,docker 容器是机器上的沙盒进程,它与主机上的所有其他进程隔离。所以容器只是操作系统中被隔离开来的一个进程,所谓的容器化,其实也只是对操作系统进行欺骗的一种语法糖。_docker菜鸟教程

电脑技巧:Windows系统原版纯净软件必备的两个网站_msdn我告诉你-程序员宅基地

文章浏览阅读5.7k次,点赞3次,收藏14次。该如何避免的,今天小编给大家推荐两个下载Windows系统官方软件的资源网站,可以杜绝软件捆绑等行为。该站提供了丰富的Windows官方技术资源,比较重要的有MSDN技术资源文档库、官方工具和资源、应用程序、开发人员工具(Visual Studio 、SQLServer等等)、系统镜像、设计人员工具等。总的来说,这两个都是非常优秀的Windows系统镜像资源站,提供了丰富的Windows系统镜像资源,并且保证了资源的纯净和安全性,有需要的朋友可以去了解一下。这个非常实用的资源网站的创建者是国内的一个网友。_msdn我告诉你

vue2封装对话框el-dialog组件_<el-dialog 封装成组件 vue2-程序员宅基地

文章浏览阅读1.2k次。vue2封装对话框el-dialog组件_

MFC 文本框换行_c++ mfc同一框内输入二行怎么换行-程序员宅基地

文章浏览阅读4.7k次,点赞5次,收藏6次。MFC 文本框换行 标签: it mfc 文本框1.将Multiline属性设置为True2.换行是使用"\r\n" (宽字符串为L"\r\n")3.如果需要编辑并且按Enter键换行,还要将 Want Return 设置为 True4.如果需要垂直滚动条的话将Vertical Scroll属性设置为True,需要水平滚动条的话将Horizontal Scroll属性设_c++ mfc同一框内输入二行怎么换行

redis-desktop-manager无法连接redis-server的解决方法_redis-server doesn't support auth command or ismis-程序员宅基地

文章浏览阅读832次。检查Linux是否是否开启所需端口,默认为6379,若未打开,将其开启:以root用户执行iptables -I INPUT -p tcp --dport 6379 -j ACCEPT如果还是未能解决,修改redis.conf,修改主机地址:bind 192.168.85.**;然后使用该配置文件,重新启动Redis服务./redis-server redis.conf..._redis-server doesn't support auth command or ismisconfigured. try

实验四 数据选择器及其应用-程序员宅基地

文章浏览阅读4.9k次。济大数电实验报告_数据选择器及其应用

随便推点

灰色预测模型matlab_MATLAB实战|基于灰色预测河南省社会消费品零售总额预测-程序员宅基地

文章浏览阅读236次。1研究内容消费在生产中占据十分重要的地位,是生产的最终目的和动力,是保持省内经济稳定快速发展的核心要素。预测河南省社会消费品零售总额,是进行宏观经济调控和消费体制改变创新的基础,是河南省内人民对美好的全面和谐社会的追求的要求,保持河南省经济稳定和可持续发展具有重要意义。本文建立灰色预测模型,利用MATLAB软件,预测出2019年~2023年河南省社会消费品零售总额预测值分别为21881...._灰色预测模型用什么软件

log4qt-程序员宅基地

文章浏览阅读1.2k次。12.4-在Qt中使用Log4Qt输出Log文件,看这一篇就足够了一、为啥要使用第三方Log库,而不用平台自带的Log库二、Log4j系列库的功能介绍与基本概念三、Log4Qt库的基本介绍四、将Log4qt组装成为一个单独模块五、使用配置文件的方式配置Log4Qt六、使用代码的方式配置Log4Qt七、在Qt工程中引入Log4Qt库模块的方法八、获取示例中的源代码一、为啥要使用第三方Log库,而不用平台自带的Log库首先要说明的是,在平时开发和调试中开发平台自带的“打印输出”已经足够了。但_log4qt

100种思维模型之全局观思维模型-67_计算机中对于全局观的-程序员宅基地

文章浏览阅读786次。全局观思维模型,一个教我们由点到线,由线到面,再由面到体,不断的放大格局去思考问题的思维模型。_计算机中对于全局观的

线程间控制之CountDownLatch和CyclicBarrier使用介绍_countdownluach于cyclicbarrier的用法-程序员宅基地

文章浏览阅读330次。一、CountDownLatch介绍CountDownLatch采用减法计算;是一个同步辅助工具类和CyclicBarrier类功能类似,允许一个或多个线程等待,直到在其他线程中执行的一组操作完成。二、CountDownLatch俩种应用场景: 场景一:所有线程在等待开始信号(startSignal.await()),主流程发出开始信号通知,既执行startSignal.countDown()方法后;所有线程才开始执行;每个线程执行完发出做完信号,既执行do..._countdownluach于cyclicbarrier的用法

自动化监控系统Prometheus&Grafana_-自动化监控系统prometheus&grafana实战-程序员宅基地

文章浏览阅读508次。Prometheus 算是一个全能型选手,原生支持容器监控,当然监控传统应用也不是吃干饭的,所以就是容器和非容器他都支持,所有的监控系统都具备这个流程,_-自动化监控系统prometheus&grafana实战

React 组件封装之 Search 搜索_react search-程序员宅基地

文章浏览阅读4.7k次。输入关键字,可以通过键盘的搜索按钮完成搜索功能。_react search