摘要:由华为云携手上海交通大学学生创新中心举办的“第二届华为云人工智能大赛 · 无人车挑战杯”中,来自电子科技大学的“暑期休闲队”获得大赛季军。

由华为云携手上海交通大学学生创新中心举办的“第二届华为云人工智能大赛 · 无人车挑战杯”总决赛已成功落下帷幕。来自电子科技大学的“暑期休闲队”,自身拥有扎实的模式识别、机器人等学科知识,借助华为云一站式AI开发管理平台ModelArts和端云协同解决方案HiLens,进行无人车模型开发与部署,最终获得季军。

电子科技大学自动化工程学院 贵兴泰

“暑期休闲队”撰文分享其参赛体验,包括如何使用华为云ModelArts和HiLens实现无人车的目标检测,多源数据融合及行驶控制的能力等。

一 、队伍背景故事

1 “我们为什么参加”

我们是来自电子科技大学自动化工程学院以及计算机科学与工程的五名研究生新生,因为研究生研究方向多为模式识别、机器人等领域,并且对人工智能技术非常感兴趣,因此在今年七月份的时候自发组织报名参加了今年的华为云无人车挑战赛。五位队员都有较为丰富的科研竞赛经历,且都是华为的忠实粉丝,对于这次全新的比赛充满了信心与热情。

2 “我们遇到了哪些困难”

首先是因为今年特殊的疫情原因,我们五个人前期无法集合在一起进行比赛项目的商讨以及规划,正式开始备赛是在九月初,因此我们的准备时间只有大概十五天,但是在学校学院的支持下,我们可以有一个比较好的调试场地,从开学也是直接进入高强度的开发工作中,在前往上海之前已经把基本功能实现。

在半决赛和决赛的过程中,主要是小车巡线功能对光线环境有些敏感,在决赛比赛中时出现了跑出轨道的情况,不过我们队伍负责巡线的队员通过丰富的临场调车经验,还是及时的解决了这个问题,最终也取得了不错的成绩。

3 “我们的欢乐时光”

现在回想一下我们备赛的日子,最欢乐的时光就是五个人在校园里调车的日日夜夜,一起面对技术难点,一起享受灵感实现的快乐,看着一台小车从什么都不会到最后实现了各种各样的功能。当然,在决赛的时候,最终能取得季军的成绩也让我们非常开心。

二 、赛题介绍

小车需要在规定赛道上通过层层关卡,包括交通灯识别(出发&泊车)、弯道行驶、斑马线行人识别、限速解限速识别、自动泊车、竞速等。小车不仅仅要完成所有的赛点,还要跑得快。而这里考验的是参赛者的综合能力,包括车体结构、底盘控制、传感器、网络通信、云端数据处理、人工智能等多学科的知识,而难点在于将这些知识点融合贯通。参赛队员需要结合华为云人工智能平台(华为云ModelArts一站式AI开发与管理平台、HiLens端云协同AI开发应用平台)以及ROS操作系统对小车进行开发。

三、整体解决方案:

此次无人车大赛中参赛车辆主要有三个传感器:激光雷达和两个摄像头,分别是小车自身的摄像头以及HiLens Kit上的摄像头,而激光雷达+相机的多源数据融合解决方案正是无人驾驶领域最为主流的技术。我们队伍对每个传感器的作用进行了总结:

利用激光雷达进行可通行区域检测以及动态避障,利用小车摄像头进行车道线检测以及利用HiLens Kit进行目标检测以及相应的决策控制。

3.1

激光雷达通过获取点云数据在小车行驶前方的有效扇区内进行障碍均值坐标计算,给与有无障碍状态实现近距应急障碍检测,行人障碍检测,因此本车的一大亮点是当在行驶过程任意状态检测到障碍物都可以进行及时的刹车,在备赛过程中大大方便了我们的调试。

可行进区域检测通过对激光雷达对可行进区域边界进行检测,获得可行进区域均值点。

再通过阿克曼地盘运动边界确定前进点,并且获得期望方向。

我们利用上面两个技术完成了比赛中对于在人行道处对障碍物的检测以及顺利通过交叉路口两个任务

3.2

利用小车车头部分的摄像头进行车道线检测,检测方案如下:

Step1 :使用高斯滤波,均值滤波,大津法对图像进行处理。

Step2:在图像中逐行搜索边界点。

Step3:滤除不合理边界点。

Step4:使用最小二乘法对左右边线进行修复。

Step5:计算图像中线。

Step6:使用最小二乘法对中线进行修复。

Step7:使用PID计算转角。

车道线检测效果如下:

3.3

再通过HiLens Kit进行目标检测, HiLens Kit是由华为云开发的多模态AI开发套件,使用的AI芯片是华为自研的Ascend 310芯片,具体16T的算力。同时,开发者不仅可以使用设备自带的摄像头,还可以外接摄像头,同时处理10-16路视频分析。HiLens Kit检测到各种目标后,通过socket协议发送给ROS端,并在ROS端进行一系列决策控制完成红灯停、绿灯行、人行道停止、限速牌限速、解限速牌解限速以及黄灯泊车一系列操作。

3.4

小车整体实行方案如图:

ROS通信如图:

四、华为云ModelArts平台的使用

比赛需要利用ModelArts平台进行目标检测任务,检测包括红绿黄灯检测、限速解限速牌检测、人行道检测。

使用ModelArts平台进行模型搭建的流程包括:

数据获取与增强、数据集准备、模型选择与训练、模型转换

4.1 数据获取与增强

本次比赛除了官方提供的训练集外,在决赛阶段我们还额外增加了在测试场地与比赛场地的训练集,训练集的获取首先通过HiLens Kit摄像头捕捉到行驶路段的视频,保存到/tmp目录下,再通过tcp从HiLens 传到本地使用opencv间隔地从视频中截取图像作为我们的原始数据集。

此外,我们还利用了三种数据增强的方法,来解决数据量较少带来的过拟合问题,分别是horizontal flip、cutout和mix up。

horizontal flip就是水平镜像翻转,这个方法实现较为简单,但是镜像翻转使用时要注意只有当一个图像分布不具备视觉手性的时候,我们才能在不改变原先图像分布的前提下,使用镜像翻转来增强数据集,因为人行道、预选赛的红绿灯就不具备视觉手性,因此我们使用镜像翻转对这类图像来进行数据增强,转换效果如下:

Cutout和mixup是计算机视觉中常用的两种数据增强方法,Cutout是将图片的随机区域填充噪声,而mixup是一种运用在计算机视觉中的对图像进行混类增强的算法,它可以将不同类之间的图像进行混合,从而扩充训练数据集,增强效果如下:

4.2 数据集准备

Step1: 下载OBS Browser,配置OBS桶,将原始采集数据上传至OBS桶内,并创建数据集。

对象存储服务(Object Storage Service)是一款稳定、安全、高效、易用的云存储服务,具备标准Restful API接口,可存储任意数量和形式的非结构化数据

对象存储服务OBS配置说明文档:https://support.huaweicloud.com/obs/index.html

OBS控制台说明文档:

https://support.huaweicloud.com/usermanual-obs/obs-usermanual-zh.pdf

再进入ModelArts平台的数据标注模块,创建数据集,选择物体检测,添加标签集。

数据集创建参考:

https://support.huaweicloud.com/engineers-modelarts/modelarts_23_0004.html

Step2:在ModelArts中进行标注

在“数据标注”页面单击“未标注”页签,此页面展示所有未标注的图片数据。单击任意一张图片,进入图片标注界面。用鼠标框选图片中的物体所在区域,然后在弹出的对话框中选择标签颜色,输入标签名称,按“Enter”键完成此标签的添加。标注完成后,左侧图片目录中此图片的状态将显示为“已标注”。如下图

ModelArts数据标注说明:

https://support.huaweicloud.com/exemlug-modelarts/modelarts_21_0011.html

4.3 模型选择与训练

在ModelArts里选择模型并创建训练任务,我们选择的模型是YOLO v3,YOLO是one stage的算法,相较于two stage的类似rcnn之类的模型的特点是速度快,这在无人车实时目标检测任务中非常重要。YOLO v3在v2基础上增加了网络复杂度,牺牲了少量速度来换取精度提升,且精度足够满足比赛需求。模型选择之后等待训练任务完成。

训练完成后可以通过可视化观察训练情况

4.4 模型转换

在ModelArts训练得到理想模型后,需要在HiLens Studio里面完成模型转化,生成昇腾芯片上可使用的模型(OM模型)(这一步也可以在HiLens Studio里进行),参考:

ModelArts平台模型转换工具指南:

https://support.huaweicloud.com/engineers-modelarts/modelarts_23_0107.html

HiLens Studio上模型转换工具指南:

https://www.huaweicloud.com/ascend/doc/atlas200dk/1.32.0.0(beta)/zh/zh-cn_topic_0209921678.html

五、华为云端云协同AI开发平台HiLens的使用

5.1 HiLens配置

使用HiLens Kit之前,需要开通HiLens服务。首先注册华为云账号,并完成实名认证,接着进入控制台选择登录HiLens管理控制台,完成HiLens的权限申请。 通过PC 与 HiLens Kit 组网后,通过web可以界面化地登录到HiLens Kit 管理平台,进行一键式操作链接无线网络。

5.2 HiLens Studio的使用

在HiLens控制台中进入HiLens Studio,首先需要新建一个project,在技能模板中我们可以选择无人车比赛的模板技能,并基于此模板进行修改,在project中我们主要有utils.py、socket_config.py以及main.py,其中utils.py用来对图片进行预处理、检测框的标注并输出类别、标注框坐标信息等功能,socket_config.py主要将检测结果编码并构建socket通信协议与ROS端进行信息交互,main.py用来调用这些python文件并且调用训练好的模型。,main.py文件中我们利用多线程避免因为socket通信造成的程序堵塞。

模型检测实际比赛效果如下:

六、亮点

(1) 鲁棒性好,我们的数据采集于多场景,因此在不同环境下检测效果较为稳定。

(2) 连续帧间检测稳定,我们针对每项分类单独设置置信度阈值,防止一帧检测到一帧检测不到,并且在决策时保证严格的条件再进行控制指令,避免因外界客观因素造成的误识别。

(3) 小车巡线能力强,如下图,在小车行驶在交叉路口的过程中,并没有完整的车道线,但依然可以通过补线操作实现巡线,并且图像处理速度快,因此我队参赛车辆可以接近满速跑完全程,也因此我队在半决赛与决赛中均给裁判团以及观众留下了极为深刻的印象。

(4) 多源数据融合提升决策效果,如以下两个例子:

通过识别墙体,帮助雷达寻找可行区域

识别到人行道后,告知转弯方向,(例如上图,告知将要左转),帮助小车巡线

七、ModelArts与HiLens联合开发感想

在人工智能发展迅速的今天,如何将人工智能算法与多学科交叉并落地实现真正的智能时代成为广大学者与研发者共同的目标。华为云平台开发的ModelArts与HiLens的联合使用给予不论是人工智能初学者还是经验丰富的工程师更为便捷高效的开发环境。本次比赛,这ModelArts与HiLens联合使用的解决方案对比赛提供了非常高质量的服务。其优点如下:

(1) 数据操作包括数据上传、数据标注以及数据集的发布极为方便。

(2) 算法市场中华为云以及广大开发者提供了针对各种任务,包括但不限于图像分类、目标检测、语义分割等任务的算法,使用者可以直接调参使用。

(3) ModelArts支持模型部署到多种生产环境,可部署为云端在线推理和批量推理,也可以直接部署到端和边。

(4) ModelArts训练的模型可以通过模型转化并协同HiLens开发相关技能,将技能直接部署到端侧设备,实现算法落地。

(5) HiLens端侧设备注册后可在设备管理处进行管理,包括查看、注销设备,以及一键升级设备的固件版本等。

(6) HiLens提供大量的技能模板,开发者可以基于各种模板进行集能开发与部署。

(7) 昇腾芯片加速使得模型推理更加迅速,使得时延更低。

参考文献:

DeVries, T.; Taylor, G. W. Improved Regularization of Convolutional Neural Networks with Cutout. arXiv:1708.04552 [cs] 2017.

Zhang, H.; Cisse, M.; Dauphin, Y. N.; Lopez-Paz, D. Mixup: Beyond Empirical Risk Minimization. arXiv:1710.09412 [cs, stat] 2018.

Lin, Z.; Sun, J.; Davis, A.; Snavely, N. Visual Chirality. 2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR) 2020, 12292–12300. https://doi.org/10.1109/CVPR42600.2020.01231.

Redmon, J.; Farhadi, A. YOLOv3: An Incremental Improvement. 2018.

Zheng, Z.; Wang, P.; Liu, W.; Li, J.; Ye, R.; Ren, D. Distance-IoU Loss: Faster and Better Learning for Bounding Box Regression. arXiv:1911.08287 [cs] 2019.

Yamauchi, Brian. "Frontier-based exploration using multiple robots." Proceedings of the second international conference on Autonomous agents. 1998.

Lopez Perez, Jose J., et al. "Distributed multirobot exploration based on scene partitioning and frontier selection." Mathematical Problems in Engineering 2018 (2018).

点击关注,第一时间了解华为云新鲜技术~

华为云如何赋能无人车飞驰?从这群AI热血少年谈起相关推荐

  1. 高校计算机大赛华为云,学子风采丨我校学生荣获华为云人工智能大赛无人车挑战杯总决赛一等奖...

    原标题:学子风采丨我校学生荣获华为云人工智能大赛无人车挑战杯总决赛一等奖 2020年8月14日,华为云人工智能大赛无人车挑战杯总决赛举行,我校学子龙羿辰,张衍杨,李哲远,葛以勒,王为之与交大附中国际部 ...

  2. 2020第二届华为云人工智能大赛 · 无人车挑战杯

    [赛事介绍] 人工智能作为战略新兴产业,已经开始广泛应用于多个领域,无人驾驶及机器人是其中的重要载体.此次大赛是在华为云人工智能平台(华为云一站式AI开发平台ModelArts.端云协同解决方案HiL ...

  3. 解锁华为云AI如何助力无人车飞驰“新姿势”,大赛冠军有话说

    摘要:在2020年第二届华为云人工智能大赛•无人车挑战杯赛道中,"华中科技大学无人车一队"借助华为云一站式AI开发与管理平台ModelArts及HiLens端云协同AI开发应用平台 ...

  4. 自动驾驶轻松开发?华为云ModelArts赋能智慧出行

    作为战略新兴产业,人工智能已经开始广泛应用于多个领域.近几年,科技公司.互联网公司等各领域的企业纷纷布局自动驾驶.那么,自动驾驶技术究竟发展得如何了?日前,华为云携手上海交通大学创新中心举办的华为云人 ...

  5. 华为云数据库赋能数字化转型,为让云原生数据库走进千行百业

    随着数字化进程的不断提速,各行业企业面对数据量指数级暴涨和数据类型及应用场景的多元细分等诸多挑战,对数据库性能.扩展性.高可用性以及成本效益等需求也愈发严苛.其中,传统行业企业由于行业的特定应用需求以 ...

  6. 30亿参数,华为云发布全球最大预训练模型,开启工业化AI开发新模式

    本文分享自华为云社区<HDC.Cloud 2021 | 华为云发布全球最大预训练模型,开启工业化AI开发新模式>,原文作者:技术火炬手 . 4月25日,华为云发布盘古系列超大规模预训练模型 ...

  7. 华为云 UCS GitOps:轻松交付多集群云原生应用

    摘要:使用华为云 UCS GitOps 配置管理来交付您的多云应用. 本文分享自华为云社区<华为云 UCS GitOps:轻松交付多集群云原生应用>,作者:华为云云原生团队. 随着业务的全 ...

  8. 华为云:赋能传统、追求创新,开发者们看过来!

    最近,一场别具一格的服装秀在朋友圈中引来了广泛关注,你可能会惊奇究竟是哪家大牌限量版的服装设计表现如此惊艳?其实这些漂亮华贵的服装,不是别的,正是我们日常见到并深受喜爱的剪纸. 服装的"设计 ...

  9. 华为云ModelArts 2.0全面升级,革新传统AI开发模式

    [中国,上海,9月20日] 在HUAWEI CONNECT 2019期间,华为云EI服务产品部总经理贾永利宣布--华为云AI重装升级,并重磅发布一站式AI开发管理平台ModelArts 2.0. 现场 ...

最新文章

  1. R语言ggplot2可视化:ggplot2可视化密度图(显示数据密集区域)、ggplot2可视化密度图(对数坐标):log10比例的收入密度图突出了在常规密度图中很难看到的收入分布细节
  2. 你需要知道的加密算法
  3. Xamarin ios C#苹果应用开发第二讲配置环境和编写代码
  4. 2011年软考网络工程师全面复习资料汇总
  5. [BX]和loop指令03 - 零基础入门学习汇编语言25
  6. Windows API CreateWaitableTimer和SetWaitableTimer
  7. Java BigInteger类| modInverse()方法与示例
  8. linux运行时命令找不到,linux - 在运行Bash脚本时找不到命令,但是在直接运行命令时有效 - 堆栈内存溢出...
  9. PTA-数组元素循环右移问题
  10. 7-121 删除字符串中的子串 (20 分)
  11. 2011年工作安排_计算机技术与软件专业技术资格考试
  12. 牛刀 —— 汨罗网络屏幕投影软件的技术实现
  13. 计算机管理能看到移动硬盘,我的移动硬盘 在我的电脑和 磁盘管理 中都看不到,只能在设备管理器的磁盘驱动器中能看到,怎么恢復啊...
  14. xml标记语言-概述
  15. Js-Html转文本
  16. Windows 下安装sql server 2016(附安装包资源)
  17. 数据库管理工具-DBeaver
  18. vue UI(Vertify和Element)优缺点随录
  19. 【通信系统仿真设计】基于Matlab的2Q-FSK移频键控通信系统仿真
  20. MySQL一条语句算出中位数

热门文章

  1. Raspberry Pi探索雾计算
  2. 虽迟但到,我的2022年终总结
  3. sql srver 2014 解密存储过程
  4. STM32 寄存器控制IO口输入输出 ODR IDR
  5. 电源管理IC公司参考
  6. 电力系统matlab建模视频,基于Matlab的小型电力系统的建模与仿真实验1【精品毕设、无需降重】...
  7. 房卡麻将分析之“代开房间”
  8. spring security运行时配置ignore url
  9. 老师对计算机课的评语,学生对老师课堂的评语
  10. vs++2010学习版的注册密钥