印第安纳大学-普渡大学印第安纳波利斯分校通过分析高速传感器数据处理的优势,研究如何提高自动驾驶应用中道路运输安全性。RTMaps Embedded和NXP BlueBox是嵌入式计算能力的核心实时执行平台。
自动驾驶汽车采用的传感器和电子控制单元(ECU)数量正在飙升,对汽车制造商来说,使用先进、高效的解决方案处理大量需要实时执行的任务至关重要。摄像头、激光扫描器、雷达、全球导航卫星系统(GNSS)接收器等各种传感器的数据记录、时间戳同步和处理需要在几毫秒内完成,确保车辆位置精确且安全运行。印第安纳大学-普渡大学印第安纳波利斯分校(IUPUI)普渡工程技术学院的学生最近完成了几项研究,测试了使用高速计算平台在四种自动驾驶应用中处理传感器数据的情况。
搭建测试平台
为开始研究,学生们搭建了一个测试平台,其中包括Intempora的RTMaps Embedded(4.5.0版本)。RTMaps Embedded是dSPACE发布的一个软件解决方案,用于实时多传感器应用,可处理众多软件任务的时间相干性,提供实时执行性能强大的高带宽原始数据流。RTMaps解决方案包含几个独立的模块:RTMaps Runtime Engine、RTMaps Studio、RTMaps Component Library和RTMaps SDK(软件开发套件)。普渡大学工程技术学院Mohamed El-Sharkawy教授谈到,“RTMaps Embedded专用于多传感器领域。它提供了一个高效且易于使用的框架,用于高级驾驶辅助系统、汽车和机器人等领域的快速稳健开发。有了它,我们很容易开发、测试、验证应用程序,进行基准测试和执行。”该测试平台还采用了NXP BlueBox,这是一个嵌入式计算系统,能让车辆创建周围环境的实时高清3D图像。具体来说,学生们使用了BlueBox 2.0版本,该版本融合了S32V234汽车视觉和传感器融合处理器、LS2084A集成通信处理器和S32VR27雷达微控制器。El-Sharkawy教授补充到,“NXP BlueBox为开发自动驾驶汽车提供了分析驾驶环境、评估风险因素和汽车可靠性所需的性能,BlueBox提供了必要的性能、功能安全性和汽车可靠性,而且可以与RTMaps集成。” 注:RTMaps Embedded还兼容dSPACE MicroAutoBox Embedded SPU——用于自动驾驶功能的原型开发平台。
测试五个应用
搭建好测试平台后,学生们开始研究自动驾驶的五种应用,进行原型开发:
1. 创建用户定义的组件包
2.开发一个神经网络Python组件
3.行人检测
4.记录和回放实时场景
5.使用SVM分类器进行前方碰撞预警
应用1:创建用户定义的组件包
学生们采用RTMaps Studio图形化开发环境、RTMaps组件库、集成式C/C++和Python代码,创建了组件包。他们使用RTMaps SDK将组件包导入RTMaps项目工作区。在RTMaps Studio中,应用由RTMaps组件库提供的相连组件表示。IUPUI工程学院学生Sreeram Venkitachalam表示,“Studio工具很容易设置复杂的模块化应用。可以将组件从组件库拖到Studio工作区中。组件用于通信、接口传感器、构建算法和连接执行器。”图1演示了导入RTMaps Studio的用户定义组件包。他们用RandomCANFrameGenerator包生成CAN帧,包括标准帧和扩展帧。通过RTMaps的内置组件过滤传入的CAN数据,因此数据查看器中只显示标准帧。生成器组件有两个操作来控制CAN帧的生成速度。“加速”操作可以让CAN帧的当前生成速度翻倍,“减速”操作可以让CAN帧的生成速度降低50%。
应用2:开发一个神经网络Python组件
在下一个应用项目中,学生们开发了一个神经网络Python组件,并对输入图像进行了分类。为此,他们使用了RTMaps Embedded包的Python组件,其编辑器具有语法着色功能,可帮助用户开发Python脚本。右击组件模块,即可打开编辑器。RTMaps的Python模块生成一个名为“RTMaps_Python”的类,可用于响应或周期性地调用输入。RTMaps_Python类中的核心函数相当于一个运行主程序的无限循环。使用RTMaps Embedded的Python组件,学生们完成了两个示范项目:车辆检测和交通标志分类。
车辆检测
为检测车辆,学生们使用五层卷积神经网络(CNN)实现了每层图像的池化。该网络使用了两个全连接层和一个防止网络过拟合的dropout层。他们采用回归模型训练模型,并用Adam优化器优化了模型。神经网络的骨架结构被添加到RTMaps Python模块中,该模块的经过训练的权重作为已保存的数据馈送到网络中。Python模块中的网络检查图像是否包含车辆。RTMaps应用被发送到BlueBox,在嵌入式平台上运行。修改BlueBox中的RTMaps Python库,使其包含TensorFlow深度学习库(tflearn),用来构建CNN结构。
交通标志分类
在第二个示范项目中,学生们使用TensorFlow模型对德国交通标志进行了分类。他们用该模型识别交通标志,将每个交通标志归为43个类别中的某一个,并显示在图像中检测到的交通标志的含义。分类模型用了将近39,000张图像来训练模型。他们重新创建了TensorFlow模型用来进行测试,并添加了使用训练模型保存的模型权值,用于预测输入图像的类别。整个测试结构是在RTMaps Python组件中创建的。他们将训练好的模型和采集到的图像发送到BlueBox,并根据图像中的标志,预测输出为某个标签,指明交通标志的含义。
应用3:检测行人
在下一个应用实验中,学生们使用Axis IP摄像头(IPCAM)捕捉实时帧来检测行人。RTMaps Python应用程序中的行人检测模型检测输入图像中的行人,并给每个人绘制一个边界框(图7)。他们用方向梯度直方图(HOG)和线性支持向量机(SVM)作为预训练的检测器。为避免边界框重叠,他们采用了非极大值抑制(NMS)。行人检测模型与IPCAM集成,IPCAM的输入图像馈送到Python应用程序中。RTMaps的图像查看器随即显示检测到的行人和相关边界框。
应用4:记录和回放实时场景
在第四个应用项目中,学生们展示了RTMaps记录和回放实时数据的功能。采集到的数据将被另存为REC文件,以供学生们回放。在本例中,他们将IPCAM集成到BlueBox的LS2084A中,捕捉图像并另存为REC文件,保存到IPCAM文件夹中。
应用5:使用SVM 分类器进行前方碰撞预警
在最后一项应用项目中,学生们着手实现一个前方碰撞预警系统,该系统包括前方汽车雷达模型和分类器算法。雷达模型的输出是速度/加速度和间距。这些输出被用作线性回归和支持向量机(SVM)分类器的输入来预测预警范围,即自主车辆与前车可能发生碰撞的范围。
结论
IUPUI工程学院学生利用RTMaps Embedded平台和NXP BlueBox,完成了各种自动驾驶应用项目。他们完成了五个应用示例的开发和测试,再次肯定了Intempora RTMaps 4.5.0与计算平台BlueBox 2.0集成的可行性。随着ADAS算法的数据量增加、日益复杂,学生们凭借RTMaps和BlueBox的计算能力,确保自动驾驶汽车快速检测和响应周围交通环境和驾驶状况。
由印第安纳大学-普渡大学印第安纳波利斯分校提供
《dSPACE杂志》,2019年2月出版
普渡大学工程技术学院的参与人员:
Mohamed El-Sharkawy
教授,物联网合作实验室系富布赖特学者主任
Akash Gaikwad
电气与计算机工程学院物联网合作实验室系研究生
Surya Kollazhi Manghat
电气与计算机工程学院物联网合作实验室系研究生
Sreeram Venkitachalam
电气与计算机工程学院物联网合作实验室系研究生,现任Aptiv测试和验证工程师
Niranjan Ravi
电气与计算机工程学院物联网合作实验室系研究生
Sree Bala Shruthi Bhamidi
电气与计算机工程学院物联网合作实验室系研究生
Dewant Katare
电气与计算机工程学院物联网合作实验室系研究生