视觉导航

嵌入式视觉系统辅助自动导航汽车 

文/James Carroll

完全自动驾驶的汽车使用雷达、超声波、视觉系统和3D激光扫描仪,来确定车辆的方向、速度以及车辆周围的环境条件。为了演示如何部署单相机作为这些系统的一部分,专门从事计算机视觉研究的匈牙利AdasWorks公司(www.adasworks.com)已经开发出了一套完全依靠从单一前置相机捕获视觉数据的系统。随后,用一个运行AdasWorks图像处理软件的市售应用处理器处理图像数据。

 

图:运行在GPU上的软件处理由前置相机所捕获的图像数据,用于检测道路的中心。根据道路的可见长度和曲率,计算出车辆的行驶轨道和最佳速度。 

为了突出该系统的有效性,AdasWorks公司已经与另一家匈牙利公司ThyssenKupp Presta Hungary(www.thyssenkrupp-presta.hu)合作,演示了AdasWorks软件是如何作为“奔驰C200轿车的完整自动控制系统的一部分”而成功部署的。 

在对一些相机产品进行评估后,AdasWorks的工程师最终选择了Point Grey公司(www.ptgrey.com)的一台Flea3 130万像素相机安装在了奔驰C200轿车的前面。由该相机捕获的图像通过USB 3.0接口传送到一个电子控制单元,该控制单元中使用了NVIDIA公司(www.nvidia.com)的Tegra K1应用处理器,其实上运行AdasWorks软件。

“该Flea3相机使得应用处理器能够触发相机以可变的帧率捕获分辨率为1280×800的彩色图像,并通过USB 3.0接口将这些图像直接传输至处理器板。”AdasWorks公司首席科学家Zoltan Prohaszka说道。 

运行在NVIDIA Tegra K1应用处理器上的AdasWorks软件,处理由前置相机Flea3捕获到的图像数据,以检测出道路的中心位置,并根据道路的可见长度和曲率,计算出车辆的轨迹,并确定车辆的最佳行驶速度。 

“在原型系统中,利用单眼图像处理算法来计算汽车前方的道路形状,” Kishonti Informatics汽车集成工程师Szabolcs Janky说道,“其中一个算法是基于矢量的车道检测算法;而另一个是基于道路外观模型的算法。”这些是采用Kishonti的计算机视觉库基元开发的,其中包括诸如光流和双边滤波等功能。这些算法将很快在AdasWorks软件中商用。 

该软件还能确定汽车是否存在与其前面的车辆碰撞的危险、以及汽车是否已经偏离了其正在行驶的轨道。车道检测算法用于在行驶中检测车道标线的类型、颜色以及邻近车道。相比之下,汽车检测算法检测道路车辆,并利用由相机捕获的多帧测量数据估计车辆之间的距离。 

此外,行人检测算法可以识别行人以及他们正在行走的道路相对于车辆的位置,以确定行人是否存在被车辆撞击的危险。 

基于对车辆前方场景的分析,AdasWorks软件从图像数据中提取车辆的行驶轨迹,并计算出应该对车辆实施的加速度或制动量,以保持车辆以安全速度行驶。通过这种方法,数据通过一个以太网接口传输到dSPACE公司(www.dspace.com)的MicroAutoBox Power PC系统。 

ThyssenKrupp Presta Hungary公司专门开发了运行在dSPACE硬件上的轨迹控制器算法,其能够基于车辆位置和所接收到的轨道点信息计算出车辆的转向角度。此外,dSPACE系统还通过转换“根据图像数据计算出的转向、加速度和制动输出值”来控制车辆内的电子机械传动器,进而作为车辆的一个通信接口。这些数值输出最终用于旋转转向柱、移动加速踏板或是启动气动制动系统。 

一旦该系统被安装在奔驰C200轿车上,该车辆便被运到位于匈牙利布达佩斯的一级方程式汽车赛道。在此处,运行在应用处理器上的计算机视觉算法,会根据车辆围绕轨道的行为录像分析而进行优化。随后,评估车辆中的轨迹与速度控制系统的有效性。通过这种做法,该车辆在没有人为干预的情况下成功实现了行驶路线导航,充分证明了该自动驾驶系统的导航能力。