基于LabVIEW混合编程实现的弱势交通参与者检测系统

2019-04-17 09:03李秋辰唐风敏王文扬袁俊肖王梦丹
汽车电器 2019年3期
关键词:调用弱势参与者

郭 蓬,李秋辰,戎 辉,唐风敏,王文扬,蔡 聪,袁俊肖,王梦丹

(1.中国汽车技术研究中心有限公司,天津 300300;2.西北大学,陕西 西安 710127;3.河北工业大学,天津 300222)

世界卫生组织的数据显示,世界每年因道路交通造成的事故约为125万起[1]。在各种交通事故中,弱势交通参与者的死亡率更高。在正常驾驶过程中,驾驶员及时有效地对弱势交通参与者的行为做出决策,在一定程度上能够提高道路交通秩序、避免安全事故。而这个过程仅仅靠人眼看到其他交通参与者后短时间做出反应是远远不够的,这需要摄像头等设备能够检测出弱势交通参与者如行人、自行车等,并将检测结果广播给周围的车载终端进行预警,这样驾驶员就能在一定距离提高警惕,减少事故发生的几率。所以摄像头具备准确检测弱势交通参与者的能力颇具意义。本文提出了一套弱势交通参与者的检测系统,并针对不熟悉测试软件编译环境的工程人员导致操作流程效率低下等问题,借助虚拟仪器LabVIEW软件,做出直观、便于操作的交互界面,在该平台下调用库函数节点与OpenCV进行混合编程,最后展示该系统的运行结果并给出结论。

图1 系统整体结构图

1 系统整体结构

本系统的整体结构如图1所示。第1部分负责图像采集,其中摄像头主要用来采集图像信息,高品质的图像信息对检测结果起着至关重要的作用。良好的摄像头设备采集的图像应当轮廓清晰,对比度和清晰度较好,另外,选取相对简洁的背景也有利于获得准确的检测结果。第2部分负责图像处理与检测结果发送。采用的是配置Windows 10操作系统、NI LabVIEW 2017(32位)开发软件和装有opencv-3.4.0的Visual Studio 2017开发环境的电脑。Windows 10操作系统在性能方面有所提升,并且能够免费升级,安全性较好。LabVIEW 2017(32位)支持中文版,并且需要下载NI Vision Acquisition软件平台,安装成功后能在LabVIEW函数面板和前面板中选择相关VI[2]。第3部分通过WiFi方式将上位机和RSU连接,传递检测结果,RSU可根据收到的检测结果广播出去,供车载终端显示和预警。

2 系统的实现

2.1 硬件设计

本系统主要有3台硬件设备,其中图像采集使用的是一款动态分辨率为1280×720,最大帧频为30FPS的高清摄像头。上位机通过网线方式连接摄像头接收采集的图像信息。路侧设备RSU通过WiFi与上位机连接接收上位机发送的检测结果。

2.2 软件设计

2.2.1 界面设计

在完成摄像头的初始化工作后,调用 IMAQdx Grab.vi将摄像头采集的图像通过Image窗口控件显示。本系统整体的UI界面如图2所示。

图3 检测程序流程图

图2 UI界面图

获取本地IP地址、设置连接端口号、设置缓冲区大小的程序部分放在LabVIEW下进行编写,这样有助于在UI界面直观地对这些参数进行修改。从建立UDP通信开始,将代码放在Visual Studio 2017开发环境进行编写,并生成DLL文件。DLL(Dynamic-link Library)即为动态链接库,是微软实现共享函数库的一种方式,动态链接方式是把一些常用的函数代码制作成DLL文件,当LabVIEW中的部分程序调用到DLL中的某个函数的时候,windows系统才把DLL加载到内存中。动态链接能在当LabVIEW程序需要的时候才链接DLL,其优点就是使磁盘和内存的消耗减少。此外,Lab-VIEW提供了模块化的函数库,方便调用DLL文件,需要预留函数的接口部分。

LabVIEW中实现调用DLL方法与配置如图4所示。在“库与可执行程序”选板中选择“调用库函数节点”。在此对话框中选择要调用的DLL文件,并指定需要使用的函数,配置当前参数。

在界面设计部分,主体部分使用了选项卡控件。参数配置:主要配置系统参数,如本地IP地址、设置连接端口号、设置缓冲区大小、输入设备选择、输出文件夹路径、图像预处理选择等。采集图像:用于显示摄像头采集的原始图像或经过预处理的图像。验证结果:原始图像经过算法加工后结果图像,用于显示算法的验证结果。历史图像:将一定间隔时间的图像结果保存,方便查看之前的历史图像,进行分析与观察。扩展功能:预留扩展功能选项卡,可根据验证内容扩展功能。

2.2.2 检测程序设计

获得图像信息后,需要对获得的图像进行弱势交通参与者检测,本系统利用的是Visual Studio 2017开发环境下OpengCV语言进行算法编程,检测程序流程图如图3所示。

图4 调用库函数节点和配置界面图

在核心算法部分,使用的是梯度方向直方图和支持向量机来实现弱势交通参与者的检测。基本流程为提取正负样本HOG(Histogram of Oriented Gradient)特征投入训练好的行人识别SVM (Support Vector Machine)分类器训练,建立这些特征向量的分离超平面,形成分类器,最后分类器对提取出的动态目标候选区域实现行人与非行人的分类,实现行人识别[3]。当需要修改算法,只需要根据本系统程序面板的接口,修改和制作DLL文件并重新添加即可。这样可以依托平台完成不同程序算法的快速验证。

3 系统检测结果

在运行该系统后,配置相关参数,以参与者行人为例,检测结果如图5所示。行人到达摄像头范围内,定义的绿色框框选图像信息中的行人。

4 结语

根据系统运行结果,可以发现本系统能成功实现行人检测算法的验证工作,具备一定的准确度。相比传统的检测平台,本设计具有直观、易操作的交互界面。利用NI Vision Acquisition软件平台和视觉软件包中的相关数学工具和图像预处理VI,能大大缩短开发的时间成本。另外,方便而强大的图像数据管理和保存,使得工程人员更容易分析行人识别算法的不足,完善自身的程序内容。在之后会根据更多的算法需要添加更多功能,该系统具有良好的扩展性[4]。

图5 行人检测结果

猜你喜欢
调用弱势参与者
移动群智感知中基于群组的参与者招募机制
休闲跑步参与者心理和行为相关性的研究进展
门限秘密分享中高效添加新参与者方案
农村消费者弱势地位及其改善策略
农村消费者弱势地位及其改善策略
基于Android Broadcast的短信安全监听系统的设计和实现
一个“弱势”教师说:孩子,我为什么越来越不愿意管你
海外侨领愿做“金丝带”“参与者”和“连心桥”
强势妻子容易逼出“弱势”丈夫
多元智力理论下数学教学方式浅谈