基于华为云ModelArts及HiLens自动驾驶实验平台的设计

2022-09-07 01:26楚朋志许博肖雄子彦赵伟明薛万坤
传动技术 2022年2期
关键词:交通标志控制器华为

楚朋志 许博 肖雄子彦 赵伟明 薛万坤

(上海交通大学学生创新中心,上海 200240)

0 引言

由于在提高安全、效率及能源节约等方面具有极大的潜力,自动驾驶车辆将成为未来交通愿景的一个重要组成部分。智能传感器、先进的数字地图、无线通信技术以及电动车辆的进步,使得自动驾驶车辆能够在普通城市道路上进行基本的自主行驶。

自动驾驶车辆主要利用摄像头让车辆具备感知环境的能力,摄像头采集到实时视频流之后,将其送入后端系统中完成对关键目标(如行人、斑马线、障碍物等)的识别。除摄像头外,还需要融合其他传感器(如激光雷达)的信息,以辅助车辆控制。在车辆行进过程中,还需要对车道线进行识别,以实现精准驾驶,用于识别目标的感知系统可以通过传统计算机视觉算法或者通过深度学习的目标识别技术实现。传统视觉算法对环境变化及噪音鲁棒性较差,难以满足无人驾驶系统在实际应用中面临的环境复杂多变的需求。深度学习在如何降低神经网络训练成本,提高网络识别准确率等方面具有一定挑战,本文使用的ModelArts是华为云推出的一站式人工智能应用、部署平台,结合Hilens端侧设备能够直接将人工智能部署到硬件设备当中。本文按照真实车辆5∶1比例缩放建立了自动驾驶实验平台-自动驾驶小车,基于华为ModelArt、Hilens人工智能平台实现了交通标志的识别,并能够完成上述自动驾驶功能。

1 系统总体设计

1.1 系统硬件架构

系统主要由车架、车轮、锂电池、电控系统组成。系统实物如图1所示。

图1 自动驾驶实验平台

车架主要包括底盘、车壳、悬挂系统组成,底盘为4轮阿克曼转向底盘。电控系统主要由控制器、传感器、执行机构组成。控制器由主控制器、从控制器和AI推理设备Hilens Kit组成,主、从控制器通过RS232进行通信,主控制器与Hilens Kit通过TCP进行通信。其中主控制器为瑞芯微的RK3399高性能主板,基于ROS开发平台实现自动驾驶功能,从控制器为基于Arduino的单片机控制系统,与AQMH3615NS驱动板一起控制底盘的运动。Hilens Kit内置昇腾310 AI芯片,16TOPS算力,16路1080P视频分析能力并自带1路高清摄像头,完成红绿灯、斑马线、交通标识检测与识别。传感器主要由激光雷达、超声波雷达等组成,执行机构主要有控制底盘运动的减速电机和伺服电机组成。系统主要组成及其关系如图2所示。

图2 全系统架构

1.2 系统软件架构

软件架构基于ROS平台开发,主要实现车辆传感器信息融合与车辆行驶控制。传感器信息主要包括摄像头信息、激光雷达信息、交通标志识别信息,如图3所示,每种传感器作为ROS中的一个节点,将自己的信息发布到ROS消息池中。其中摄像头信息用来识别车道线、激光雷达用来识别障碍物、交通标志信息作为小车行进的主要控制变量。kinematicCtrl节点对各传感器信息进行融合处理,生成小车驱动信息发送到车辆底盘。

图3 传感器信息传递流程

2 交通标识识别

交通标志识别功能是车辆能够完成自主行驶的关键,该功能使用华为ModelArts和Hilens端云协调开发。具体实现由数据准备、模型训练、在线验证、端云协同开发、端侧部署步骤组成。

2.1 数据准备

首先要进行图像数据的采集,采用Hilens终端设备进行真实图像采集,首先在Hilens上部署一个图像定时捕捉的技能,利用Hilens自带摄像头进行,捕捉时保持Hilens固定位置,缓慢移动目标车辆,或者保持目标车辆固定,缓慢移动Hilens设备,这样可以保证目标数据的丰富性,能够保证不同大小,不同角度的目标。数据越多越丰富,算法所达到的效果就更好,这里至少保证每一类别的图片数量为100张。

采集的数据存储在华为云上,可以通过obs软件将图像数据打包下载到本地,进行数据清洗,经过人为筛选,剔除图像模糊或者无目标存在的图片,这样可以避免对精度带来负面影响。同样也需要对数据进行增强,如对图片数据进行缩放、裁剪、变换等操作增加数据量,从而进一步提升模型的训练精度,这里对上述图片进行几何变换操作,实现数据量的翻倍,将数据增强后的图片上传到华为云上。

接下来进行数据标注,这里采用华为云上的ModelArts的标注功能,ModelArts提供了基础的通用标注工具,如矩形框、多边形、圆形、点、线等。可以人工为每个类别进行少量的标注,然后使用ModelArts提供的智能标注功能进行自动标注,标注完成后再进行人工确认,可以减少标注的工作量。

2.2 模型训练

在模型训练环节,首先要选择合适的算法,ModelArts平台提供了多种预制算法可供选择,对于目标检测人为,算法可以分为Anchor-based和Anchor-free两种,常见的模型有SSD、RetinaNet、YOLO系列、EfficientDet等,其中YOLO系列以目标检测的速度快见长,能够实时处理流媒体视频。因此这里选用YOLO系列算法,目前ModelArts对YOLO V3支持较好。使用预制算法,仅需提供数据即可自动训练。并且预制算法的性能和精度均经过专业调优,能够给开发者提供很快的训练速度和很高的训练精度。

如果预制算法不能满足开发者的需求,开发者可以基于开源的计算引擎或开发库(如Tensorflow、Pytorch、MindSpore等)的接口开发算法。

在模型训练完成后,一般需要进入模型评估和调优阶段,以尽快发现模型的不足并进行优化。ModelArts上使用模型评估功能是在得到首次训练的模型之后,将模型推理结果、原始图像和真实标签送入模型评估模块,从数据、模型两个方面对模型的综合能力进行评估,并给出改进模型能力的诊断建议。开发者据此可以快速调优模型。如图4所示,在ModelArts模型评估页面中,会自动将错误的预测结果展示出来,并给出错误原因,并且将相同错误类型的个数统计出来,绘制成饼图。

图4 模型评估结果

从图中可以看出r2的精度值为0,类别的误检和漏检比例都很高,回到数据集中发现r2数据量为其他类别的1/4,因此需要增强r2类别的数据来提高r2的目标识别精度。

2.3 在线验证

模型训练好以后,可以通过在线部署的方式进行验证,在线推理服务能够同步地、实时地响应客户端请求,并将推理结果返回给客户端。批量推理服务可以对输入的一批数据进行推理,并将结果输出到约定的存储空间中,在实践操作中可以先对单张图片进行在线推理,如果结果符合预期,再进行批量推理,从而验证模型的效果。

2.4 Hilens端-云协同开发

Hilens是面向端云协同人工智能应用的一站式开发平台。可以直接将ModelArts平台训练好的模型导入Hilens中进行进一步开发,然后发布为人工智能应用,并推送到Hilens纳管的端侧设备。

Hilens上开发使用云上集成开发环境HilensStudio。Hilens Studio提供在线开发、调试、模拟运行、部署和发布功能。

上述在ModelArts平台上训练好的模型使用的是TensorFlow引擎,要在Hilens上使用需要进行模型转换。转换为Ascend 310可运行的模型格式。转换过程在Hilens Studio中进行。转换后的模型文件属性分别是在Studio中测试用的c76和在Hilens端侧用的c3x。

在Studio中测试可以上传测试视频,Studio读取视频数据作为输入,可以实时验证技能算法。

2.5 Hilens端侧部署

在HilensStudio中技能开发完成后,可以直接部署到Hilens设备中,部署完成后可以在设备管理中开启技能。开启技能过程中或运行过程中出现异常情况可以通过存储在华为云上的日志文件进行跟踪处理。

Hilens端侧设备通过局域网与车辆主控制器进行数据通信,使用TCP协议收发数据,其中主控制器作为服务器端,Hilens设备作为客户端,Hilens通过主控制器的IP地址发起连接请求,主控制器接受请求后双方即进行数据交互,数据内容主要为检测框的中心点坐标和目标类别信息。

3 实验结果与分析

实验中针对红灯、绿灯、黄灯、斑马线、限速标志、解除限速标志6种交通标志进行了实验,如图5所示。共采集了2975张图片,在ModelArts中进行标注,并使用YOLO V3算法进行训练,最后将模型部署在HilensKit端侧设备进行推理。HilensKit支持HDMI视频输出,经过无线投屏设备将实时画面投影到外置显示屏上,观察识别结果,如图6和图7所示,小车能够稳定识别并框出标志信息,给出置信值,并根据识别信息控制车辆自主行驶。

图5 自采集交通标志

图6 交通标志识别效果

4 结语

本文按照真实车辆5∶1比例缩放建立了自动驾驶车辆实验平台,基于华为ModelArt、Hilens人工智能平台实现了交通标志的识别,并基于ROS平台实现了传感器信息融合与控制决策,完成自动驾驶功能。该小车作为比赛用车用于第二届和第三届华为云杯无人车挑战赛,通过比赛验证了系统设计的可靠性与稳定性。

猜你喜欢
交通标志控制器华为
基于双向特征融合的交通标志识别
工商业IC卡控制器改造为物联网控制器实践
现在的余华为谁写作?
赛力斯华为智选SF5
PLC可编程控制器相关外置的选择计算研究
华为没有成功,只是在成长
华为
交通标志小课堂
我们欢迎你!
模糊PID控制器设计及MATLAB仿真