-
根据Atlas 200 HiLens Kit 用户指南,登录HiLens IES Web界面的操作步骤设置网关以后无法访问到界面,怎么解决?
-
【功能模块】Hilens kit 运行技能【操作步骤&问题现象】测试使用Hilens.AudioOutput()对象播放acc音频时,技能运行时会出现屏幕卡顿情况,也不能播放声音。过两三秒后恢复正常在Hilens Studio运行时报错信息是 Segmentation fault (core dumped)去除相关代码后可正常运行
-
HiLens Studio 是一个提供给开发者的多语言类集成开发环境(Integrated Development Environment ,简称IDE),包括代码编辑器、编译器、调试器等,开发者可以在HiLens Studio 中编写和调试技能代码。在开发技能过程中,搭配视频流调试技能是非常必要的环节,也是检验技能效果的重要环节。但是一般调试时需要先上传录制好的视频,或使用HiLens Studio技能模板中预置的视频流,不能通过实时视频流观察技能效果。最近,HiLens Studio推出使用手机实时视频流调试代码的功能,以手机摄像头实时的视频流作为技能输入,查看技能输出。还等什么,快跟我来看看把!HiLens Studio的调试器允许使用断点、单步调试等,与编辑器配合使用。在调试代码的过程中,可以使用手机登录HiLens Studio,以手机摄像头实时的视频流作为技能输入,查看技能输出。准备工作首次使用HiLens Studio,请开通HiLens Studio。非首次使用HiLens Studio,请订购HiLens Studio版本。在HiLens Studio中新建技能项目,并打开技能项目。步骤一:绑定手机与HiLens Studio帐号在HiLens Studio界面右上角单击用户名,选择“接入手机摄像头(Beta)”。弹出“接入手机摄像头(Beta)”对话框。按照“接入手机摄像头(Beta)”对话框的指引,打开手机微信,扫描对话框中的二维码。手机微信进入“EI体验空间”小程序。在手机微信小程序中,选择“HiLens Studio”。进入HiLens Studio手机小程序界面。单击HiLens Studio界面“接入手机摄像头(Beta)”对话框的“下一步”。对话框显示摄像头推流二维码。在HiLens Studio手机小程序界面勾选“用户协议”,然后单击“扫一扫”,用手机扫描步骤4中的二维码。进入手机调试界面,如下图所示。此时手机与HiLens Studio帐号绑定,可以使用手机摄像头在线调试技能。表1 手机调试功能说明序号说明1当前手机摄像头调试的技能名称以及实时输入的视频流。单击技能名称,可切换技能,在手机弹出的新界面选择新的技能,然后单击“确定”,即可切换技能。2当前调试的技能输出视频流。3操作列,可进行如下操作:· 前置摄像头:切换手机摄像头为前置摄像头。· 后置摄像头:切换手机摄像头为后置摄像头。· 暂停:暂停当前技能的调试或运行。· 返回:退出当前手机调试技能界面,返回至HiLens Studio手机小程序界面。步骤二:调试和运行技能代码在HiLens Studio编辑区代码左侧单击鼠标,出现断点。调试代码。单击HiLens Studio界面上方导航栏的,选择“Read Stream from Mobile Phone”。在HiLens Studio界面下方“Debug Console” 查看代码调试信息。运行代码代码调试完成后,可运行代码,查看技能输出。单击HiLens Studio界面上方导航栏的运行按钮。HDMI技能在运行完技能代码后,可在HiLens Studio小程序界面查看技能输出。同时,也可在HiLens Studio界面右侧单击 ,在“Video Output”区查看技能输出。转自https://bbs.huaweicloud.com/blogs/254519
-
在2020年第二届华为云人工智能大赛•无人车挑战杯赛道中,“华中科技大学无人车一队”借助华为云一站式AI开发与管理平台ModelArts及HiLens端云协同AI开发应用平台,进行无人车模型开发与部署,最终夺冠,获得20万奖励(10万现金+10万代金券)。战队撰文分享其参赛体验,包括无人车比赛的整体方案,多维数据处理及行驶控制的能力等。 1. 比赛背景第二届华为云无人车挑战杯大赛,相比第一届大赛,难度更大,赛道环境更加接近真实的道路。在比赛中,无人车需要从发车区出发,通过车道线循迹沿“8”字形赛道在不能压线和触碰挡板的条件下行走一周半后,准确地停入到停车区。在小车行驶期间,需要完成交通信号灯识别、斑马线识别、机器人动态避障、挡板区循迹、限速/解限速标志识别、精准停车等任务。无人车不仅需要完美无误地完成所有的任务,在速度上也有要求,在总决赛中,无人车需要在70s内完成所有任务,时间加分项才能为满分。在比赛中,华为云ModelArts一站式AI开发与管理平台,给参赛选手提供全流程的AI模型开发环境,助力参赛选手高效地完成检测任务中模型的训练,HiLens端云协同AI开发应用平台帮助参赛选手快速地完成模型在端侧设备上的部署和加速。华为云无人车挑战杯在由上海交大学生创新中心智能制造实验室自主研发的无人车的基础上,结合华为云人工智能平台,全面锻炼和提高赛队的AI解决方案能力及无人驾驶编程技巧。图1‑1 华中科技大学无人车一队的后浪图1‑2 华为云无车人挑战赛总决赛现场2. 整体方案无人车比赛整体解决方案如图2‑1所示,比赛主要分为三个部分,ModelArts做模型的在线训练,HiLens Kit做模型的部署,无人车上工控机的通过ROS将各个节点整合到一起,做无人车底盘的决策和控制。通过华为云ModelArts一站式AI开发与管理平台完成数据标注、模型训练、模型转换等工作,得到可供HiLens Kit前向推理的卷积神经网络的模型。HiLens Kit通过自带的相机采集图像,通过技能部署进行模型的前向推理和加速,HiLens Kit搭载着高性能的华为人工智能芯片昇腾310,针对卷积神经网络进行了优化,在模型的前向推理过程中可发挥出强大的算力。HiLens Kit完成红绿灯、限速/解限速标志识别、斑马线的目标检测识别,通过Socket通信,将检测结果传给无人车上的工控机。无人车上工控机处理激光雷达的点云数据,做Slam建图和运行中的实时定位,工控机处理USB摄像头的采集的车道线数据,做车道线的识别,再通过ROS将所有节点信息做整合,做底盘电机和舵机的决策控制。3. ModelArts模型训练ModelArts是面向AI开发者的一站式开发平台,包含数据处理、模型训练、模型管理、模型部署等操作,并且提供AI市场功能,能够在市场内与其他开发者分享模型,其功能总览如图3‑1所示。在比赛中,我们通过ModelArts平台完成了数据标注、模型训练和模型在线转换等工作,并且通过ModelArts做模型的线上部署,检验模型的精度效果。3.1. 任务分析本次大赛涉及6类目标的检测识别:红灯、绿灯、黄灯、限速标志牌、解限速标志牌、斑马线,如图3‑2所示。无人车在运行过程中,对目标采集的图像涉及不同的视角和距离,而且比赛场地光强未知,所以对于目标检测任务,要充分考虑到目标不同视角的刚体形变、不同距离的尺度变化、不同环境光强的变化以及无人车运行中的运动模糊。无人车根据检测的结果做出相应决策和控制,对目标检测的精度要求很高,一但误检或漏检,小车的控制就会出错,而且小车在赛道上快速运行,所以对目标检测的速度也要求较高,一但小车看见目标,需要快速输出检测结果。3.1. 数据标注数据标注采用ModelArts中的数据管理功能,进入ModelArts平台的数据标注模块,创建数据集,选择物体检测,添加标签集。既可以选择手动标注,也可以在手动标注一部分后选择智能标注,最终再修改确认智能标注。当数据集较大的时候,智能标注可以有效降低数据集标注的工作量。通过创建标注团队,将数据集分配给团队队员,团队合作加快数据集标注速度。3.3. 数据增强我们模型训练的数据集大部来自HiLens Kit拍摄的不同环境下的视频序列,数据集中图像的重复比例较大,有必要将重复的图像做一些删除,对数据集做数据增强实现数据扩增,解决由于图像数据量较少带来的模型过拟合的问题。在比赛中,我们参考2018年的论文《Albumentations: fast and flexible image augmentations》开源的代码做数据集的扩充,开源代码网址:https://github.com/albumentations-team/albumentations。该项目对于数据的扩充采用颜色空间变换、模糊、亮度调整、黑白、压缩、随机噪声等30余中数据扩充办法。由于我们比赛中要识别的对象,颜色是很重要的一个特征,例如:红灯、黄灯、绿灯三种灯的颜色,限速标识的红色和解限速标识的黑色,颜色变化相关的数据扩充,会造成数据颜色特征的丢失。红灯、黄灯、绿灯三种灯分别在左、中、右三个位置,交通灯亮的位置,也是区分三种灯的很重要的特征。所以对数据集的扩充,去掉了色彩变换和水平翻转的数据扩充办法。数据扩充采用扩充方法级联的方式,如图3‑4所示,更大程度上,减小数据之间的相似性,增加图像数据的多样性,数据增强的效果如图3‑5所示。3.4. 模型训练通过数据增强,减小了数据之间的相似性,增加了数据多样性,最终选用了6031张图像数据做模型训练。模型训练我们选用的是华为云AI市场里面基于TensorFlow框架的YOLOv3_Darknet53的网络。在训练时,采用COCO数据集上的预训练模型,训练完后,通过模型转换功能将TensorFlow的PB模型转换成Ascend类型,以支持在HiLens Kit的Ascend 310 AI芯片上做模型推理。YOLOv3是典型的一阶段的目标检测网络,图像输入为416*416条件下,COCO数据集上测试的mAP的分数为31.0,模型转换后在Ascend-310推理速度:17.8ms/pic,是目前速度和精度最为均衡的目标检测网络之一,其网络结构如图3‑6所示。YOLOv3采用Darknet53作为backbone,Darknet53大量使用类似于ResNet的残差跳层连接,从而可以加深网络的深度,特征提取可以提取出更高层的语义特征,并且为了降低池化带来的梯度负面效果,作者直接摒弃了pooling,用conv的stride来实现降采样,在这个网络结构中,使用的是步长为2的卷积来进行降采样。YOLO v3中采用类似FPN的上采样和特征融合的做法,在多尺度的特征图上做检测,大大加强了对小目标检测的精确度。YOLOv3采用固定anchor对目标的位置做预测,图3‑6中输出的y1、y2、y3分别对应着32倍、16倍和8倍图像采样结果,32倍降采样的感受野最大,适合检测大的目标,所以在输入为416×416时,每个cell的三个anchor box为(116 , 90)、 (156 , 198)、 (373 , 326)。16倍适合一般大小的物体,anchor box为(30 , 61)、(62 , 45)、 (59 , 119)。8倍的感受野最小,适合检测小目标,因此anchor box为(10 , 13)、(16 , 30)、(33 , 23)。y1、y2、y3中每个cell回归边界框预测4个坐标,tx , ty , tw ,th。如果目标cell距离图像左上角的距离是(cx ,cy),且它对应边界框的宽和高为pw , ph ,如图3‑7所示,那么网络的预测值为:在ModelArts中做模型训练和调优参数相关设置如图3‑8所示,使用ModelArts中可视化工具做训练过程可视化结果如图3‑9所示。模型训练完成后,通过在线的模型转换工具,转换为.om的模型,以供在HiLens Kit上做推理。4. HiLens技能开发和模型部署华为HiLens为端云协同多模态AI开发应用平台,提供简单易用的开发框架、开箱即用的开发环境、丰富的AI技能市场和云上管理平台。HiLens Framework封装了丰富的视频分虚算法基础组件,如图像预处理、模型推理等,开发者只需少量代码即可开发自己的技能。HiLens Studio提供在线的开发环境,可以方便的在线编写和调试技能代码。管理控制台提供模型管理、技能开发等功能,供用户在云侧管理模型和技能,一键安装技能到端侧设备。在比赛中,我们使用HiLens Kit端侧设备做模型推理,线上开发好的技能可以一键部署到HiLens Kit上。4.1. 检测任务的Skill开发如图4‑2所示在本次无人车比赛中,我们团队开发了3个Skill,get_pic是用HiLens Kit采集图像数据并通过socket通信传给主机,做数据集采集使用;yolo-v3-v1-test是用来在测试模型的精度效果,不加与工控机通信代码;uac-yolov3-v1是在无人车实际行驶时的技能,在比赛中采集图像进行模型推理并与工控机通信。在做检测任务的技能开发,我们首先利用HiLens Studio的开发环境和HiLens Framework,在线做模型前向推理的测试,HiLens Studio开发环境如图4‑4所示,代码流程如图4‑3所示,先初始化HiLens、摄像头和加载模型,接着进入一个循环,读取摄像头采集的图像,做数据预处理,HiLens读取摄像头的图像为YUV格式,需要转为RGB格式,以及将图像resize为(416,416),以便做模型推理。模型推理通过调用HiLens Framework封装好的API,做模型前向推理的计算。由于Ascend310不支持模型后处理的计算,所以这一部分需要通过软件来做,后处理主要包括,从模型输出的特征矩阵中解码出检测框的位置、类别、置信度等信息、NMS筛选检测框等,最后输出结果。在结果后处理阶段,我们也加入了一些小技巧,以提高检测任务的准确率:l 对于6类目标我们分别采用不同的置信度阈值做筛选,交通灯和斑马线需要在较远的距离就识别到,置信度阈值我们设置为0.5,而限速/解限速,为确保检测正确性,置信度设置为0.9。l 对于红绿灯和限速/解限速,通过计算目标框中图像的红色分量值,来纠正检测的错误,例如,但检测到红灯,必须红色分量值大于0.15,才认为正确,否则视为错误。对于检测到绿灯或黄灯,必须红色分量小于0.1,才认为正确。l 同理,对于斑马线的检测,将目标框图像二值化,白色像素占比大于0.3,才认为检测正确。最终,我们在HiLens Studio对决赛现场的图像做测试,测试了700张图像,只有23张图像检测错误,目标漏检的也很少,而且都是在角度很偏的时候,漏检率在5%以内。在HiLens Studio技能代码做完了测试之后,在“技能管理”里面,创建一个新的技能,导入在HiLens Studio里面的代码,加入与工控机通信的部分,就完成了检测任务加上通信的技能开发,然后将技能在线安装到端侧设备HiLens Kit上。下一次HiLens Kit启动后,就会自动启动技能。4.2. HiLens的通信在无人车比赛中,HiLens Kit通过网口采用Socket通信与工控机或PC机进行通信,Socket网络通信框架如图4‑5所示,Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。Socket通信分为基于TCP和基于UDP两种。TCP协议是基于连接的协议,需要先建立可靠的连接,而UDP不需要事先建立可靠的链接,而是直接把数据包发送出去,是不稳定的连接。在图像数据集采集时,通过Socket通信传输视频数据,数据量大且不必要求每一个数据包都准确接收,我们采用Socket UDP通信,传输视频数据。在HiLens Kit做目标检测任务时,客户端数据少又需要稳定可靠的传输,所以我们采用基于TCP协议的Socket通信,基于TCP协议的Socket通信如图4‑6所示。5. ROS无人车决策控制无人车上由车上的工控机完成各项数据的处理和融合,进行无人车的决策控制。通过处理激光雷达的点云数据,做Slam建图和运行中的实时定位以及挡板区的循迹,处理USB摄像头的采集的车道线数据,做车道线的识别,通过Socket通信接收来自HiLens kit的目标检测的结果。如图5‑1所示,无人车的控制方案主要包括:车道线循迹、挡板去循迹、斑马线停车及避障、限速和解像素、发车和停车、建图和定位,通过ROS整合各个节点的消息,将多种数据进行多模态融合,进行无人车控制状态机的切换,给驱动控制发送不同的速度和方向指令,驱动控制将速度和方向信息转为无人车底盘的电机速度和舵机打角指令,通过串口发送给无人车驱动,最终实现无人车完美高效地完成整个比赛任务。5.1. 车道线识别在本次比赛中,车道线的识别也是本次比赛的一个难点,无人车上USB camera的位置低、视角窄导致大部分时间只能看到单线,再加上工控机的性能较弱,对图像相关处理速度较慢。对于车道线识别,我们没有采用比赛方提供的例程,而是从实际驾车思路出发,想办法得到道路的中线,通过中线推算偏差。车道线识别的流程如图5‑2所示,首先将图像二值化,通过膨胀与腐蚀,将车道线线条的断裂给补上,小车在运行中,车道线总是会交与图像的左、右、下三条边,所以在这三条边上搜索车道线基本点,根据搜索到的基本点搜索边线。由于摄像头固定,采用提前标定好的透视变换矩阵将图像变换到俯视图。由于在搜索车道线基本点可能会搜索到多个,例如图5‑3搜索到3个基本点,从而会搜到多个边线,所以需要对边线进行筛选,提取车道线。将车道线做一次拟合,由于道路宽度固定,所以可以通过拟合的车道线计算出中线。根据中线的计算结果,即可求解偏差。在图像计算中,通过采用python的numpy矩阵操作代替大量python低速循环进行计算加速,精简计算流程,(640,480)的图像在工控机计算帧率平均可达到46fps。5.2. 激光雷达挡板区循迹与无人车定位无人车上的激光雷达传感器可扫描到无人车周围360度的障碍物的信息,可以用来做挡板区的循迹和无人车的实时定位。雷达数据的可视化展示如图5‑4(a)所示,雷达的点云数据组成了无人车行驶的车道,可采用和车道线相似的处理办法,采用搜索雷达右半部分0-75度的范围,拟合右边线,从而计算中线,求取偏差。具体处理过程可参考车道线处理方案,此处不再赘述。无人车Slam建图和定位的方案,现已经很成熟, GitHub、GitLab等开源平台也有很多非常棒的基于ROS的激光Slam项目和定位方案,我们采用开源的rf2o将激光雷达数据转为里程计信息,通过AMCL做定位,采用Gmapping建图,ROS开源社区(http://wiki.ros.org)都有详细的介绍,此处不再赘述。5.3. 多模态融合的无人车决策控制在HiLen Kit部署的技能,尽管采用一些技巧提升了图像的识别准确率,但也并非百分百准确。无人车在行驶过程中,存在运动模糊、未知光源干扰、反光灯等问题,尽管制作数据集考虑了此类情况,但是还是会有影响。我们采用了数字滤波中常用的的窗口滤波处理来做图像信息的后端处理。l 采用长度为k的定长队列做为观察窗口l 选取k个元素中出现最多类别作为当前阶段预测类别在小车行驶过程中,将ROS节点的各个信息,做多模态融合,实现无人车不同状态下切换,如图5‑6所示,无人车完成起步、斑马线停车避障、挡板区循迹、限速/解限速、精准停车等任务。6. 联合使用ModelArts和HiLens体验在此次华为云无人车大赛中,联合使用ModelArts和 HiLens,这全流程的解决方案对项目的完成提供了高质量的服务。ModelArts提供全流程的AI开发平台,数据管理、模型训练、在线部署,都方便高效;HiLens提供了端云协同的AI开发平台,大大降低了嵌入式平台开发门槛,实现模型高效快捷的端侧部署。我们在使用华为云的全栈式解决方案之前,也接触过一些其他的AI解决方案,但是无论是云还是端都没有华为云ModelArts和HiLens的联合使用便捷高效。其便捷高效主要体现在以下几个方面:(1)数据管理平台支持数据上传、存储、标注、处理一体化服务;(2)ModelArts提供了各种配置好的开发环境,支持各种深度学习框架的开发;(3)ModelArts的AI市场提供了丰富的网络模型,提高开发者开发效率;(4)ModelArts支持模型在线部署和测试,可提供网络接口供物联网设备实现云端协同;(5)HiLens的HiLens Framework,丰富的API解决了驱动和图像接入问题,自带媒体数据处理库,支持各种自定义操作;(6)HiLens Studio开发环境可在不需要硬件的条件下,做模型的测试和代码的调试;(7)HiLens技能管理平台可对技能直接做在线的部署和切换,方便、快捷。(8)HiLens的技能市场,提供了丰富的开发好的技能,开发者可以站在巨人的肩膀上做开发,提高开发效率。
-
ModelArts、Hilens联合开发助力人工智能落地电子科技大学 自动化工程学院 贵兴泰 由华为云携手上海交通大学学生创新中心举办的“第二届华为云人工智能大赛 · 无人车挑战杯”总决赛已成功落下帷幕。来自电子科技大学的“暑期休闲队”,自身拥有扎实的模式识别、机器人等学科知识,以及借助华为云一站式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.htmlOBS控制台说明文档: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://support.huaweicloud.com/usermanual-hilens/hilens_02_0098.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用来调用上述文件以及训练好的模型。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).
-
作者:历天一【摘要】 基于HiLens Kit已经基本开发完成,可部署到HiLens Kit,模型的选择为基于DarkNet53的YOLOv3模型,权重为基于COCO2014训练的数据集,而车道线的检测是基于OpenCV的传统方法实现的,可通过ModelArts AI Gallery与HiLens Kit全流程端云协同开发部署。先来看看最终视频效果吧(PS:请忽略背景音乐)! 主体流程介绍:(可选,忽略亦可,取决于摄像头质量,对于相机畸变较大的需要先计算相机的畸变矩阵和失真系数,对图片进行校正)图片校正;截取感兴趣区域,仅对包含车道线信息的图像区域进行处理;对感兴趣区域使用透视变换;针对不同颜色的车道线,不同光照条件下的车道线,不同清晰度的车道线,根据不同的颜色空间使用不同的梯度阈值,颜色阈值进行不同的处理。并将每一种处理方式进行融合,得到车道线的二进制图;提取二进制图中属于车道线的像素;对二进制图片的像素进行直方图统计,统计左右两侧的峰值点作为左右车道线的起始点坐标进行曲线拟合;使用二次多项式分别拟合左右车道线的像素点(对于噪声较大的像素点,可以进行滤波处理,或者使用随机采样一致性算法进行曲线拟合);计算车道曲率及车辆相对车道中央的偏离位置;效果显示(可行域显示,曲率和位置显示)。检测驾驶过程中道路中其他车辆状态,显示车辆类别、置信度,并通过YOLOv3进行检测车辆,然后返回的车辆检测框的坐标与当前坐标进行透视变换获取大约的距离作为车辆之间的距离dis。说明:本Demo的主体框架基于HiLens Kit已经基本开发完成,模型的选择为基于DarkNet53的YOLOv3模型,权重为基于COCO2014训练的数据集,而车道线的检测是基于OpenCV的传统方法实现的,所以计算量较大,导致整体速度较慢。关于部署和训练——基于ModelArts 和HiLens Kit的端云协同:考虑到部署,已经测试过部署到HiLens Kit了,对了,也支持在HiLens Stuido运行模拟测试,更推荐在HiLens Studio哦,比较方便,而且不需要硬件支持,只需要在HiLens Kit或HiLens Studio上安装pillow库就行了,关于如何在HiLens Kit和HiLens Studio上安装第三方库,非常简单的哦,可参考:在HiLens Kit上:https://bbs.huaweicloud.com/forum/thread-94316-1-1.html在HiLens Studio上:https://bbs.huaweicloud.com/forum/thread-94317-1-1.html如果想训练或优化,由没有硬件(比如GPU),那么很推荐使用ModelArts了,一站式开发,无缝衔接到HiLens Kit哦,关于ModelArts的介绍可参考:https://www.huaweicloud.com/product/modelarts.html同时也许还能提升下运行速度,这里介绍三种算法,亲测都可以部署到HiLens Kit推理使用哦,就在最新的AI Gallery(原AI市场)中哦,这里除了有算法,还有模型、数据集等等,很丰富,大家可以自己探索一下,同时还可以分享自己的算法给其他开发者,开发者订阅即可创建训练使用,很方便,相比于GitHub,不仅提供了源代码,还提供了用于训练的硬件资源,强大的Tesla V100 32GB版本哦。 (1)YOLOv3_Darknet53,没错,就是著名的YOLOv3,经典的目标检测网络,后续又推出了YOLOv4、YOLOv5(暂称此名吧),AI Gallery也推出了YOLOv5的,不过由于PyTorch框架暂不支持模 型转换,所以暂时放弃了。 关于YOLOv3_Darknet53的使用方法,算法界面介绍很详细,这里就不赘述了,可以参考使用,注意模型转换部分请参考这篇博文中模型转换部分哦:https://bbs.huaweicloud.com/blogs/199870 算法备用链接为:https://marketplace.huaweicloud.com/markets/aihub/modelhub/detail/?id=2d52a07e-ccbd-420f-8999-2ea7b4bdd691 (2)YOLOv3_Resnet18(GPU),如果我们只想做车辆的检测或者为了简化模型,提高速度,可以选用主干网络为Resnet18的YOLOv3,网络更轻量,速度会快一些哦。 同样给上链接:https://marketplace.huaweicloud.com/markets/aihub/modelhub/detail/?id=948196c8-3e7a-4729-850b-069101d6e95c (3)YOLOv3_Resnet18(Ascend 910),和上面(2)版本差异不大,主要改为由GPU换为Ascend 910训练的,大家可自由选择哦。 链接为:https://marketplace.huaweicloud.com/markets/aihub/modelhub/detail/?id=7087008a-7eec-4977-8b66-3a7703e9fd22好了,算法部分解决了,数据怎么办呢?ModelArts的AI Gallery同样想到了,提供了数据集哦,免费订阅,下载到自己的OBS导入就能用了(注意OBS需要一定花费),这里我也提供了开源数据集的5164张人车图片,供大家使用哦,上链接:https://marketplace.huaweicloud.com/markets/aihub/datasets/detail/?content_id=a337272b-6918-4282-83d6-2b15e2a4c716那么数据集和算法都有了,该训练了吧,在ModelArts上可以很好完成,凭借强大的Tesla V100 32GB或Ascend 910可以很快完成哦。上述整体操作流程部分可参考下述博文完成:https://bbs.huaweicloud.com/blogs/199870运行效果:完成执行如视频中所示处理的一帧需要约300ms,也就是FPS约为3,不较慢,需要优化。我觉得还有很大优化空间,比如:(1)预处理和后处理很费时间,真正推理很快,可以从这方面加速,不知道开启多线程是否有提升,应该有吧;(2)应该可以更好发挥专用硬件,记得好像有DVPP和AIPP吧,可以用来做色域转换的操作; (3) YOLOv3的后处理解析比较麻烦,这里用的是COCO的80类,但可以只用person、car两类,或者再加一点,同时nms也比较费时间,如果能用算子实现,融合到om模型中,会提速很多;(4)这里使用的是Python,如果用C++应该会提升一些,执行效率会高很多吧。(5)优化提速要根据硬件性能,对费时的部分做分析,以最大压榨硬件性能,需要做针对性、定制化地优化,我个人理解很浅,希望有熟悉的同学指教。备注:本Demo所用模型、代码均来自开源代码,好像是吴恩达老师的一个课程涉及的项目,但找不到出处了,如果知道的同学,还请在在下方回复指教,谢谢了。本Demo的模型精度以及运行速度不做保证,仅供学习交流使用。其他未尽事宜,还请多多指教。代码会开源的,敬请期待哦,谢谢。来源:华为云社区 https://bbs.huaweicloud.com/blogs/226039
-
【DevRun开发者沙龙直播】11月17日晚20:00-21:00,来自华为云人工智能大赛金奖得主“上海麦图科技有限公司”的多位专家——CTO王宏锋、华为云MVP、智能塔台技术总监徐擎阳、首席AI架构师李鑫和AI算法专家孔维国一同进行华为云DevRun官方直播,全面剖析获奖项目《基于ModelArts与HiLens的智能塔台监控防护系统解决方案》直播回看:https://vhall.huawei.com/fe/watch/6671
-
在2020年第二届华为云人工智能大赛•无人车挑战杯赛道中,“华中科技大学无人车一队”借助华为云一站式AI开发与管理平台ModelArts及HiLens端云协同AI开发应用平台,进行无人车模型开发与部署,最终夺冠,获得20万奖励(10万现金+10万代金券)。战队撰文分享其参赛体验,包括无人车比赛的整体方案,多维数据处理及行驶控制的能力等。 1. 比赛背景第二届华为云无人车挑战杯大赛,相比第一届大赛,难度更大,赛道环境更加接近真实的道路。在比赛中,无人车需要从发车区出发,通过车道线循迹沿“8”字形赛道在不能压线和触碰挡板的条件下行走一周半后,准确地停入到停车区。在小车行驶期间,需要完成交通信号灯识别、斑马线识别、机器人动态避障、挡板区循迹、限速/解限速标志识别、精准停车等任务。无人车不仅需要完美无误地完成所有的任务,在速度上也有要求,在总决赛中,无人车需要在70s内完成所有任务,时间加分项才能为满分。在比赛中,华为云ModelArts一站式AI开发与管理平台,给参赛选手提供全流程的AI模型开发环境,助力参赛选手高效地完成检测任务中模型的训练,HiLens端云协同AI开发应用平台帮助参赛选手快速地完成模型在端侧设备上的部署和加速。华为云无人车挑战杯在由上海交大学生创新中心智能制造实验室自主研发的无人车的基础上,结合华为云人工智能平台,全面锻炼和提高赛队的AI解决方案能力及无人驾驶编程技巧。图1‑1 华中科技大学无人车一队的后浪图1‑2 华为云无车人挑战赛总决赛现场2. 整体方案无人车比赛整体解决方案如图2‑1所示,比赛主要分为三个部分,ModelArts做模型的在线训练,HiLens Kit做模型的部署,无人车上工控机的通过ROS将各个节点整合到一起,做无人车底盘的决策和控制。通过华为云ModelArts一站式AI开发与管理平台完成数据标注、模型训练、模型转换等工作,得到可供HiLens Kit前向推理的卷积神经网络的模型。HiLens Kit通过自带的相机采集图像,通过技能部署进行模型的前向推理和加速,HiLens Kit搭载着高性能的华为人工智能芯片昇腾310,针对卷积神经网络进行了优化,在模型的前向推理过程中可发挥出强大的算力。HiLens Kit完成红绿灯、限速/解限速标志识别、斑马线的目标检测识别,通过Socket通信,将检测结果传给无人车上的工控机。无人车上工控机处理激光雷达的点云数据,做Slam建图和运行中的实时定位,工控机处理USB摄像头的采集的车道线数据,做车道线的识别,再通过ROS将所有节点信息做整合,做底盘电机和舵机的决策控制。3. ModelArts模型训练ModelArts是面向AI开发者的一站式开发平台,包含数据处理、模型训练、模型管理、模型部署等操作,并且提供AI市场功能,能够在市场内与其他开发者分享模型,其功能总览如图3‑1所示。在比赛中,我们通过ModelArts平台完成了数据标注、模型训练和模型在线转换等工作,并且通过ModelArts做模型的线上部署,检验模型的精度效果。3.1. 任务分析本次大赛涉及6类目标的检测识别:红灯、绿灯、黄灯、限速标志牌、解限速标志牌、斑马线,如图3‑2所示。无人车在运行过程中,对目标采集的图像涉及不同的视角和距离,而且比赛场地光强未知,所以对于目标检测任务,要充分考虑到目标不同视角的刚体形变、不同距离的尺度变化、不同环境光强的变化以及无人车运行中的运动模糊。无人车根据检测的结果做出相应决策和控制,对目标检测的精度要求很高,一但误检或漏检,小车的控制就会出错,而且小车在赛道上快速运行,所以对目标检测的速度也要求较高,一但小车看见目标,需要快速输出检测结果。3.1. 数据标注数据标注采用ModelArts中的数据管理功能,进入ModelArts平台的数据标注模块,创建数据集,选择物体检测,添加标签集。既可以选择手动标注,也可以在手动标注一部分后选择智能标注,最终再修改确认智能标注。当数据集较大的时候,智能标注可以有效降低数据集标注的工作量。通过创建标注团队,将数据集分配给团队队员,团队合作加快数据集标注速度。3.3. 数据增强我们模型训练的数据集大部来自HiLens Kit拍摄的不同环境下的视频序列,数据集中图像的重复比例较大,有必要将重复的图像做一些删除,对数据集做数据增强实现数据扩增,解决由于图像数据量较少带来的模型过拟合的问题。在比赛中,我们参考2018年的论文《Albumentations: fast and flexible image augmentations》开源的代码做数据集的扩充,开源代码网址:https://github.com/albumentations-team/albumentations。该项目对于数据的扩充采用颜色空间变换、模糊、亮度调整、黑白、压缩、随机噪声等30余中数据扩充办法。由于我们比赛中要识别的对象,颜色是很重要的一个特征,例如:红灯、黄灯、绿灯三种灯的颜色,限速标识的红色和解限速标识的黑色,颜色变化相关的数据扩充,会造成数据颜色特征的丢失。红灯、黄灯、绿灯三种灯分别在左、中、右三个位置,交通灯亮的位置,也是区分三种灯的很重要的特征。所以对数据集的扩充,去掉了色彩变换和水平翻转的数据扩充办法。数据扩充采用扩充方法级联的方式,如图3‑4所示,更大程度上,减小数据之间的相似性,增加图像数据的多样性,数据增强的效果如图3‑5所示。3.4. 模型训练通过数据增强,减小了数据之间的相似性,增加了数据多样性,最终选用了6031张图像数据做模型训练。模型训练我们选用的是华为云AI市场里面基于TensorFlow框架的YOLOv3_Darknet53的网络。在训练时,采用COCO数据集上的预训练模型,训练完后,通过模型转换功能将TensorFlow的PB模型转换成Ascend类型,以支持在HiLens Kit的Ascend 310 AI芯片上做模型推理。YOLOv3是典型的一阶段的目标检测网络,图像输入为416*416条件下,COCO数据集上测试的mAP的分数为31.0,模型转换后在Ascend-310推理速度:17.8ms/pic,是目前速度和精度最为均衡的目标检测网络之一,其网络结构如图3‑6所示。YOLOv3采用Darknet53作为backbone,Darknet53大量使用类似于ResNet的残差跳层连接,从而可以加深网络的深度,特征提取可以提取出更高层的语义特征,并且为了降低池化带来的梯度负面效果,作者直接摒弃了pooling,用conv的stride来实现降采样,在这个网络结构中,使用的是步长为2的卷积来进行降采样。YOLO v3中采用类似FPN的上采样和特征融合的做法,在多尺度的特征图上做检测,大大加强了对小目标检测的精确度。YOLOv3采用固定anchor对目标的位置做预测,图3‑6中输出的y1、y2、y3分别对应着32倍、16倍和8倍图像采样结果,32倍降采样的感受野最大,适合检测大的目标,所以在输入为416×416时,每个cell的三个anchor box为(116 , 90)、 (156 , 198)、 (373 , 326)。16倍适合一般大小的物体,anchor box为(30 , 61)、(62 , 45)、 (59 , 119)。8倍的感受野最小,适合检测小目标,因此anchor box为(10 , 13)、(16 , 30)、(33 , 23)。y1、y2、y3中每个cell回归边界框预测4个坐标,tx , ty , tw ,th。如果目标cell距离图像左上角的距离是(cx ,cy),且它对应边界框的宽和高为pw , ph ,如图3‑7所示,那么网络的预测值为:在ModelArts中做模型训练和调优参数相关设置如图3‑8所示,使用ModelArts中可视化工具做训练过程可视化结果如图3‑9所示。模型训练完成后,通过在线的模型转换工具,转换为.om的模型,以供在HiLens Kit上做推理。4. HiLens技能开发和模型部署华为HiLens为端云协同多模态AI开发应用平台,提供简单易用的开发框架、开箱即用的开发环境、丰富的AI技能市场和云上管理平台。HiLens Framework封装了丰富的视频分虚算法基础组件,如图像预处理、模型推理等,开发者只需少量代码即可开发自己的技能。HiLens Studio提供在线的开发环境,可以方便的在线编写和调试技能代码。管理控制台提供模型管理、技能开发等功能,供用户在云侧管理模型和技能,一键安装技能到端侧设备。在比赛中,我们使用HiLens Kit端侧设备做模型推理,线上开发好的技能可以一键部署到HiLens Kit上。4.1. 检测任务的Skill开发如图4‑2所示在本次无人车比赛中,我们团队开发了3个Skill,get_pic是用HiLens Kit采集图像数据并通过socket通信传给主机,做数据集采集使用;yolo-v3-v1-test是用来在测试模型的精度效果,不加与工控机通信代码;uac-yolov3-v1是在无人车实际行驶时的技能,在比赛中采集图像进行模型推理并与工控机通信。在做检测任务的技能开发,我们首先利用HiLens Studio的开发环境和HiLens Framework,在线做模型前向推理的测试,HiLens Studio开发环境如图4‑4所示,代码流程如图4‑3所示,先初始化HiLens、摄像头和加载模型,接着进入一个循环,读取摄像头采集的图像,做数据预处理,HiLens读取摄像头的图像为YUV格式,需要转为RGB格式,以及将图像resize为(416,416),以便做模型推理。模型推理通过调用HiLens Framework封装好的API,做模型前向推理的计算。由于Ascend310不支持模型后处理的计算,所以这一部分需要通过软件来做,后处理主要包括,从模型输出的特征矩阵中解码出检测框的位置、类别、置信度等信息、NMS筛选检测框等,最后输出结果。在结果后处理阶段,我们也加入了一些小技巧,以提高检测任务的准确率:l 对于6类目标我们分别采用不同的置信度阈值做筛选,交通灯和斑马线需要在较远的距离就识别到,置信度阈值我们设置为0.5,而限速/解限速,为确保检测正确性,置信度设置为0.9。l 对于红绿灯和限速/解限速,通过计算目标框中图像的红色分量值,来纠正检测的错误,例如,但检测到红灯,必须红色分量值大于0.15,才认为正确,否则视为错误。对于检测到绿灯或黄灯,必须红色分量小于0.1,才认为正确。l 同理,对于斑马线的检测,将目标框图像二值化,白色像素占比大于0.3,才认为检测正确。最终,我们在HiLens Studio对决赛现场的图像做测试,测试了700张图像,只有23张图像检测错误,目标漏检的也很少,而且都是在角度很偏的时候,漏检率在5%以内。在HiLens Studio技能代码做完了测试之后,在“技能管理”里面,创建一个新的技能,导入在HiLens Studio里面的代码,加入与工控机通信的部分,就完成了检测任务加上通信的技能开发,然后将技能在线安装到端侧设备HiLens Kit上。下一次HiLens Kit启动后,就会自动启动技能。4.2. HiLens的通信在无人车比赛中,HiLens Kit通过网口采用Socket通信与工控机或PC机进行通信,Socket网络通信框架如图4‑5所示,Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。Socket通信分为基于TCP和基于UDP两种。TCP协议是基于连接的协议,需要先建立可靠的连接,而UDP不需要事先建立可靠的链接,而是直接把数据包发送出去,是不稳定的连接。在图像数据集采集时,通过Socket通信传输视频数据,数据量大且不必要求每一个数据包都准确接收,我们采用Socket UDP通信,传输视频数据。在HiLens Kit做目标检测任务时,客户端数据少又需要稳定可靠的传输,所以我们采用基于TCP协议的Socket通信,基于TCP协议的Socket通信如图4‑6所示。5. ROS无人车决策控制无人车上由车上的工控机完成各项数据的处理和融合,进行无人车的决策控制。通过处理激光雷达的点云数据,做Slam建图和运行中的实时定位以及挡板区的循迹,处理USB摄像头的采集的车道线数据,做车道线的识别,通过Socket通信接收来自HiLens kit的目标检测的结果。如图5‑1所示,无人车的控制方案主要包括:车道线循迹、挡板去循迹、斑马线停车及避障、限速和解像素、发车和停车、建图和定位,通过ROS整合各个节点的消息,将多种数据进行多模态融合,进行无人车控制状态机的切换,给驱动控制发送不同的速度和方向指令,驱动控制将速度和方向信息转为无人车底盘的电机速度和舵机打角指令,通过串口发送给无人车驱动,最终实现无人车完美高效地完成整个比赛任务。5.1. 车道线识别在本次比赛中,车道线的识别也是本次比赛的一个难点,无人车上USB camera的位置低、视角窄导致大部分时间只能看到单线,再加上工控机的性能较弱,对图像相关处理速度较慢。对于车道线识别,我们没有采用比赛方提供的例程,而是从实际驾车思路出发,想办法得到道路的中线,通过中线推算偏差。车道线识别的流程如图5‑2所示,首先将图像二值化,通过膨胀与腐蚀,将车道线线条的断裂给补上,小车在运行中,车道线总是会交与图像的左、右、下三条边,所以在这三条边上搜索车道线基本点,根据搜索到的基本点搜索边线。由于摄像头固定,采用提前标定好的透视变换矩阵将图像变换到俯视图。由于在搜索车道线基本点可能会搜索到多个,例如图5‑3搜索到3个基本点,从而会搜到多个边线,所以需要对边线进行筛选,提取车道线。将车道线做一次拟合,由于道路宽度固定,所以可以通过拟合的车道线计算出中线。根据中线的计算结果,即可求解偏差。在图像计算中,通过采用python的numpy矩阵操作代替大量python低速循环进行计算加速,精简计算流程,(640,480)的图像在工控机计算帧率平均可达到46fps。5.2. 激光雷达挡板区循迹与无人车定位无人车上的激光雷达传感器可扫描到无人车周围360度的障碍物的信息,可以用来做挡板区的循迹和无人车的实时定位。雷达数据的可视化展示如图5‑4(a)所示,雷达的点云数据组成了无人车行驶的车道,可采用和车道线相似的处理办法,采用搜索雷达右半部分0-75度的范围,拟合右边线,从而计算中线,求取偏差。具体处理过程可参考车道线处理方案,此处不再赘述。无人车Slam建图和定位的方案,现已经很成熟, GitHub、GitLab等开源平台也有很多非常棒的基于ROS的激光Slam项目和定位方案,我们采用开源的rf2o将激光雷达数据转为里程计信息,通过AMCL做定位,采用Gmapping建图,ROS开源社区(http://wiki.ros.org)都有详细的介绍,此处不再赘述。5.3. 多模态融合的无人车决策控制在HiLen Kit部署的技能,尽管采用一些技巧提升了图像的识别准确率,但也并非百分百准确。无人车在行驶过程中,存在运动模糊、未知光源干扰、反光灯等问题,尽管制作数据集考虑了此类情况,但是还是会有影响。我们采用了数字滤波中常用的的窗口滤波处理来做图像信息的后端处理。l 采用长度为k的定长队列做为观察窗口l 选取k个元素中出现最多类别作为当前阶段预测类别在小车行驶过程中,将ROS节点的各个信息,做多模态融合,实现无人车不同状态下切换,如图5‑6所示,无人车完成起步、斑马线停车避障、挡板区循迹、限速/解限速、精准停车等任务。6. 联合使用ModelArts和HiLens体验在此次华为云无人车大赛中,联合使用ModelArts和 HiLens,这全流程的解决方案对项目的完成提供了高质量的服务。ModelArts提供全流程的AI开发平台,数据管理、模型训练、在线部署,都方便高效;HiLens提供了端云协同的AI开发平台,大大降低了嵌入式平台开发门槛,实现模型高效快捷的端侧部署。我们在使用华为云的全栈式解决方案之前,也接触过一些其他的AI解决方案,但是无论是云还是端都没有华为云ModelArts和HiLens的联合使用便捷高效。其便捷高效主要体现在以下几个方面:(1)数据管理平台支持数据上传、存储、标注、处理一体化服务;(2)ModelArts提供了各种配置好的开发环境,支持各种深度学习框架的开发;(3)ModelArts的AI市场提供了丰富的网络模型,提高开发者开发效率;(4)ModelArts支持模型在线部署和测试,可提供网络接口供物联网设备实现云端协同;(5)HiLens的HiLens Framework,丰富的API解决了驱动和图像接入问题,自带媒体数据处理库,支持各种自定义操作;(6)HiLens Studio开发环境可在不需要硬件的条件下,做模型的测试和代码的调试;(7)HiLens技能管理平台可对技能直接做在线的部署和切换,方便、快捷。(8)HiLens的技能市场,提供了丰富的开发好的技能,开发者可以站在巨人的肩膀上做开发,提高开发效率。
-
在2020年第二届华为云人工智能大赛•无人车挑战杯赛道中,“华中科技大学无人车一队”借助华为云一站式AI开发与管理平台ModelArts及HiLens端云协同AI开发应用平台,进行无人车模型开发与部署,最终夺冠,获得20万奖励(10万现金+10万代金券)。战队撰文分享其参赛体验,包括无人车比赛的整体方案,多维数据处理及行驶控制的能力等。 1. 比赛背景第二届华为云无人车挑战杯大赛,相比第一届大赛,难度更大,赛道环境更加接近真实的道路。在比赛中,无人车需要从发车区出发,通过车道线循迹沿“8”字形赛道在不能压线和触碰挡板的条件下行走一周半后,准确地停入到停车区。在小车行驶期间,需要完成交通信号灯识别、斑马线识别、机器人动态避障、挡板区循迹、限速/解限速标志识别、精准停车等任务。无人车不仅需要完美无误地完成所有的任务,在速度上也有要求,在总决赛中,无人车需要在70s内完成所有任务,时间加分项才能为满分。在比赛中,华为云ModelArts一站式AI开发与管理平台,给参赛选手提供全流程的AI模型开发环境,助力参赛选手高效地完成检测任务中模型的训练,HiLens端云协同AI开发应用平台帮助参赛选手快速地完成模型在端侧设备上的部署和加速。华为云无人车挑战杯在由上海交大学生创新中心智能制造实验室自主研发的无人车的基础上,结合华为云人工智能平台,全面锻炼和提高赛队的AI解决方案能力及无人驾驶编程技巧。图1‑1 华中科技大学无人车一队的后浪图1‑2 华为云无车人挑战赛总决赛现场2. 整体方案无人车比赛整体解决方案如图2‑1所示,比赛主要分为三个部分,ModelArts做模型的在线训练,HiLens Kit做模型的部署,无人车上工控机的通过ROS将各个节点整合到一起,做无人车底盘的决策和控制。通过华为云ModelArts一站式AI开发与管理平台完成数据标注、模型训练、模型转换等工作,得到可供HiLens Kit前向推理的卷积神经网络的模型。HiLens Kit通过自带的相机采集图像,通过技能部署进行模型的前向推理和加速,HiLens Kit搭载着高性能的华为人工智能芯片昇腾310,针对卷积神经网络进行了优化,在模型的前向推理过程中可发挥出强大的算力。HiLens Kit完成红绿灯、限速/解限速标志识别、斑马线的目标检测识别,通过Socket通信,将检测结果传给无人车上的工控机。无人车上工控机处理激光雷达的点云数据,做Slam建图和运行中的实时定位,工控机处理USB摄像头的采集的车道线数据,做车道线的识别,再通过ROS将所有节点信息做整合,做底盘电机和舵机的决策控制。3. ModelArts模型训练ModelArts是面向AI开发者的一站式开发平台,包含数据处理、模型训练、模型管理、模型部署等操作,并且提供AI市场功能,能够在市场内与其他开发者分享模型,其功能总览如图3‑1所示。在比赛中,我们通过ModelArts平台完成了数据标注、模型训练和模型在线转换等工作,并且通过ModelArts做模型的线上部署,检验模型的精度效果。3.1. 任务分析本次大赛涉及6类目标的检测识别:红灯、绿灯、黄灯、限速标志牌、解限速标志牌、斑马线,如图3‑2所示。无人车在运行过程中,对目标采集的图像涉及不同的视角和距离,而且比赛场地光强未知,所以对于目标检测任务,要充分考虑到目标不同视角的刚体形变、不同距离的尺度变化、不同环境光强的变化以及无人车运行中的运动模糊。无人车根据检测的结果做出相应决策和控制,对目标检测的精度要求很高,一但误检或漏检,小车的控制就会出错,而且小车在赛道上快速运行,所以对目标检测的速度也要求较高,一但小车看见目标,需要快速输出检测结果。3.1. 数据标注数据标注采用ModelArts中的数据管理功能,进入ModelArts平台的数据标注模块,创建数据集,选择物体检测,添加标签集。既可以选择手动标注,也可以在手动标注一部分后选择智能标注,最终再修改确认智能标注。当数据集较大的时候,智能标注可以有效降低数据集标注的工作量。通过创建标注团队,将数据集分配给团队队员,团队合作加快数据集标注速度。3.3. 数据增强我们模型训练的数据集大部来自HiLens Kit拍摄的不同环境下的视频序列,数据集中图像的重复比例较大,有必要将重复的图像做一些删除,对数据集做数据增强实现数据扩增,解决由于图像数据量较少带来的模型过拟合的问题。在比赛中,我们参考2018年的论文《Albumentations: fast and flexible image augmentations》开源的代码做数据集的扩充,开源代码网址:https://github.com/albumentations-team/albumentations。该项目对于数据的扩充采用颜色空间变换、模糊、亮度调整、黑白、压缩、随机噪声等30余中数据扩充办法。由于我们比赛中要识别的对象,颜色是很重要的一个特征,例如:红灯、黄灯、绿灯三种灯的颜色,限速标识的红色和解限速标识的黑色,颜色变化相关的数据扩充,会造成数据颜色特征的丢失。红灯、黄灯、绿灯三种灯分别在左、中、右三个位置,交通灯亮的位置,也是区分三种灯的很重要的特征。所以对数据集的扩充,去掉了色彩变换和水平翻转的数据扩充办法。数据扩充采用扩充方法级联的方式,如图3‑4所示,更大程度上,减小数据之间的相似性,增加图像数据的多样性,数据增强的效果如图3‑5所示。3.4. 模型训练通过数据增强,减小了数据之间的相似性,增加了数据多样性,最终选用了6031张图像数据做模型训练。模型训练我们选用的是华为云AI市场里面基于TensorFlow框架的YOLOv3_Darknet53的网络。在训练时,采用COCO数据集上的预训练模型,训练完后,通过模型转换功能将TensorFlow的PB模型转换成Ascend类型,以支持在HiLens Kit的Ascend 310 AI芯片上做模型推理。YOLOv3是典型的一阶段的目标检测网络,图像输入为416*416条件下,COCO数据集上测试的mAP的分数为31.0,模型转换后在Ascend-310推理速度:17.8ms/pic,是目前速度和精度最为均衡的目标检测网络之一,其网络结构如图3‑6所示。YOLOv3采用Darknet53作为backbone,Darknet53大量使用类似于ResNet的残差跳层连接,从而可以加深网络的深度,特征提取可以提取出更高层的语义特征,并且为了降低池化带来的梯度负面效果,作者直接摒弃了pooling,用conv的stride来实现降采样,在这个网络结构中,使用的是步长为2的卷积来进行降采样。YOLO v3中采用类似FPN的上采样和特征融合的做法,在多尺度的特征图上做检测,大大加强了对小目标检测的精确度。YOLOv3采用固定anchor对目标的位置做预测,图3‑6中输出的y1、y2、y3分别对应着32倍、16倍和8倍图像采样结果,32倍降采样的感受野最大,适合检测大的目标,所以在输入为416×416时,每个cell的三个anchor box为(116 , 90)、 (156 , 198)、 (373 , 326)。16倍适合一般大小的物体,anchor box为(30 , 61)、(62 , 45)、 (59 , 119)。8倍的感受野最小,适合检测小目标,因此anchor box为(10 , 13)、(16 , 30)、(33 , 23)。y1、y2、y3中每个cell回归边界框预测4个坐标,tx , ty , tw ,th。如果目标cell距离图像左上角的距离是(cx ,cy),且它对应边界框的宽和高为pw , ph ,如图3‑7所示,那么网络的预测值为:在ModelArts中做模型训练和调优参数相关设置如图3‑8所示,使用ModelArts中可视化工具做训练过程可视化结果如图3‑9所示。模型训练完成后,通过在线的模型转换工具,转换为.om的模型,以供在HiLens Kit上做推理。4. HiLens技能开发和模型部署华为HiLens为端云协同多模态AI开发应用平台,提供简单易用的开发框架、开箱即用的开发环境、丰富的AI技能市场和云上管理平台。HiLens Framework封装了丰富的视频分虚算法基础组件,如图像预处理、模型推理等,开发者只需少量代码即可开发自己的技能。HiLens Studio提供在线的开发环境,可以方便的在线编写和调试技能代码。管理控制台提供模型管理、技能开发等功能,供用户在云侧管理模型和技能,一键安装技能到端侧设备。在比赛中,我们使用HiLens Kit端侧设备做模型推理,线上开发好的技能可以一键部署到HiLens Kit上。4.1. 检测任务的Skill开发如图4‑2所示在本次无人车比赛中,我们团队开发了3个Skill,get_pic是用HiLens Kit采集图像数据并通过socket通信传给主机,做数据集采集使用;yolo-v3-v1-test是用来在测试模型的精度效果,不加与工控机通信代码;uac-yolov3-v1是在无人车实际行驶时的技能,在比赛中采集图像进行模型推理并与工控机通信。在做检测任务的技能开发,我们首先利用HiLens Studio的开发环境和HiLens Framework,在线做模型前向推理的测试,HiLens Studio开发环境如图4‑4所示,代码流程如图4‑3所示,先初始化HiLens、摄像头和加载模型,接着进入一个循环,读取摄像头采集的图像,做数据预处理,HiLens读取摄像头的图像为YUV格式,需要转为RGB格式,以及将图像resize为(416,416),以便做模型推理。模型推理通过调用HiLens Framework封装好的API,做模型前向推理的计算。由于Ascend310不支持模型后处理的计算,所以这一部分需要通过软件来做,后处理主要包括,从模型输出的特征矩阵中解码出检测框的位置、类别、置信度等信息、NMS筛选检测框等,最后输出结果。在结果后处理阶段,我们也加入了一些小技巧,以提高检测任务的准确率:l 对于6类目标我们分别采用不同的置信度阈值做筛选,交通灯和斑马线需要在较远的距离就识别到,置信度阈值我们设置为0.5,而限速/解限速,为确保检测正确性,置信度设置为0.9。l 对于红绿灯和限速/解限速,通过计算目标框中图像的红色分量值,来纠正检测的错误,例如,但检测到红灯,必须红色分量值大于0.15,才认为正确,否则视为错误。对于检测到绿灯或黄灯,必须红色分量小于0.1,才认为正确。l 同理,对于斑马线的检测,将目标框图像二值化,白色像素占比大于0.3,才认为检测正确。最终,我们在HiLens Studio对决赛现场的图像做测试,测试了700张图像,只有23张图像检测错误,目标漏检的也很少,而且都是在角度很偏的时候,漏检率在5%以内。在HiLens Studio技能代码做完了测试之后,在“技能管理”里面,创建一个新的技能,导入在HiLens Studio里面的代码,加入与工控机通信的部分,就完成了检测任务加上通信的技能开发,然后将技能在线安装到端侧设备HiLens Kit上。下一次HiLens Kit启动后,就会自动启动技能。4.2. HiLens的通信在无人车比赛中,HiLens Kit通过网口采用Socket通信与工控机或PC机进行通信,Socket网络通信框架如图4‑5所示,Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。Socket通信分为基于TCP和基于UDP两种。TCP协议是基于连接的协议,需要先建立可靠的连接,而UDP不需要事先建立可靠的链接,而是直接把数据包发送出去,是不稳定的连接。在图像数据集采集时,通过Socket通信传输视频数据,数据量大且不必要求每一个数据包都准确接收,我们采用Socket UDP通信,传输视频数据。在HiLens Kit做目标检测任务时,客户端数据少又需要稳定可靠的传输,所以我们采用基于TCP协议的Socket通信,基于TCP协议的Socket通信如图4‑6所示。5. ROS无人车决策控制无人车上由车上的工控机完成各项数据的处理和融合,进行无人车的决策控制。通过处理激光雷达的点云数据,做Slam建图和运行中的实时定位以及挡板区的循迹,处理USB摄像头的采集的车道线数据,做车道线的识别,通过Socket通信接收来自HiLens kit的目标检测的结果。如图5‑1所示,无人车的控制方案主要包括:车道线循迹、挡板去循迹、斑马线停车及避障、限速和解像素、发车和停车、建图和定位,通过ROS整合各个节点的消息,将多种数据进行多模态融合,进行无人车控制状态机的切换,给驱动控制发送不同的速度和方向指令,驱动控制将速度和方向信息转为无人车底盘的电机速度和舵机打角指令,通过串口发送给无人车驱动,最终实现无人车完美高效地完成整个比赛任务。5.1. 车道线识别在本次比赛中,车道线的识别也是本次比赛的一个难点,无人车上USB camera的位置低、视角窄导致大部分时间只能看到单线,再加上工控机的性能较弱,对图像相关处理速度较慢。对于车道线识别,我们没有采用比赛方提供的例程,而是从实际驾车思路出发,想办法得到道路的中线,通过中线推算偏差。车道线识别的流程如图5‑2所示,首先将图像二值化,通过膨胀与腐蚀,将车道线线条的断裂给补上,小车在运行中,车道线总是会交与图像的左、右、下三条边,所以在这三条边上搜索车道线基本点,根据搜索到的基本点搜索边线。由于摄像头固定,采用提前标定好的透视变换矩阵将图像变换到俯视图。由于在搜索车道线基本点可能会搜索到多个,例如图5‑3搜索到3个基本点,从而会搜到多个边线,所以需要对边线进行筛选,提取车道线。将车道线做一次拟合,由于道路宽度固定,所以可以通过拟合的车道线计算出中线。根据中线的计算结果,即可求解偏差。在图像计算中,通过采用python的numpy矩阵操作代替大量python低速循环进行计算加速,精简计算流程,(640,480)的图像在工控机计算帧率平均可达到46fps。5.2. 激光雷达挡板区循迹与无人车定位无人车上的激光雷达传感器可扫描到无人车周围360度的障碍物的信息,可以用来做挡板区的循迹和无人车的实时定位。雷达数据的可视化展示如图5‑4(a)所示,雷达的点云数据组成了无人车行驶的车道,可采用和车道线相似的处理办法,采用搜索雷达右半部分0-75度的范围,拟合右边线,从而计算中线,求取偏差。具体处理过程可参考车道线处理方案,此处不再赘述。无人车Slam建图和定位的方案,现已经很成熟, GitHub、GitLab等开源平台也有很多非常棒的基于ROS的激光Slam项目和定位方案,我们采用开源的rf2o将激光雷达数据转为里程计信息,通过AMCL做定位,采用Gmapping建图,ROS开源社区(http://wiki.ros.org)都有详细的介绍,此处不再赘述。5.3. 多模态融合的无人车决策控制在HiLen Kit部署的技能,尽管采用一些技巧提升了图像的识别准确率,但也并非百分百准确。无人车在行驶过程中,存在运动模糊、未知光源干扰、反光灯等问题,尽管制作数据集考虑了此类情况,但是还是会有影响。我们采用了数字滤波中常用的的窗口滤波处理来做图像信息的后端处理。l 采用长度为k的定长队列做为观察窗口l 选取k个元素中出现最多类别作为当前阶段预测类别在小车行驶过程中,将ROS节点的各个信息,做多模态融合,实现无人车不同状态下切换,如图5‑6所示,无人车完成起步、斑马线停车避障、挡板区循迹、限速/解限速、精准停车等任务。6. 联合使用ModelArts和HiLens体验在此次华为云无人车大赛中,联合使用ModelArts和 HiLens,这全流程的解决方案对项目的完成提供了高质量的服务。ModelArts提供全流程的AI开发平台,数据管理、模型训练、在线部署,都方便高效;HiLens提供了端云协同的AI开发平台,大大降低了嵌入式平台开发门槛,实现模型高效快捷的端侧部署。我们在使用华为云的全栈式解决方案之前,也接触过一些其他的AI解决方案,但是无论是云还是端都没有华为云ModelArts和HiLens的联合使用便捷高效。其便捷高效主要体现在以下几个方面:(1)数据管理平台支持数据上传、存储、标注、处理一体化服务;(2)ModelArts提供了各种配置好的开发环境,支持各种深度学习框架的开发;(3)ModelArts的AI市场提供了丰富的网络模型,提高开发者开发效率;(4)ModelArts支持模型在线部署和测试,可提供网络接口供物联网设备实现云端协同;(5)HiLens的HiLens Framework,丰富的API解决了驱动和图像接入问题,自带媒体数据处理库,支持各种自定义操作;(6)HiLens Studio开发环境可在不需要硬件的条件下,做模型的测试和代码的调试;(7)HiLens技能管理平台可对技能直接做在线的部署和切换,方便、快捷。(8)HiLens的技能市场,提供了丰富的开发好的技能,开发者可以站在巨人的肩膀上做开发,提高开发效率。
-
请问一下hilens什么时候升级成CANN的开发方式呢?因为atlas200、atlas500都升级了
-
HiLens产品上个使用者已解绑,为解决问题已折腾十多天,但还没解决。如果确定是未解绑,工程师能否帮查到在谁名下?(˘̩̩̩ε˘̩ƪ) 594474594476594477594478
-
【功能模块】SSH注册Hilens【操作步骤&问题现象】1、进行到最后一步时报错,报错情况如下2、无法得知上一个人是否解绑,检查了几个曾经尝试注册过的设备显示都已解绑【截图信息】
-
【操作步骤&问题现象】1、进行到最后一步时报错,上一个使用的人也无法知道是否解绑,提示下方图片的报错信息,如何解决【截图信息】
-
【功能模块】注册HiLens Kit至云侧管理控制台【操作步骤&问题现象】1{"error_msg""The API does not exist or has not been published in the environment","error_code":"APIGW.0101","request_id":"60673fad7dc278bb31210a5d15de7481"}2、【截图信息】【日志信息】(可选,上传日志内容或者附件)
上滑加载中
推荐直播
-
华为云AI入门课:AI发展趋势与华为愿景
2024/11/18 周一 18:20-20:20
Alex 华为云学堂技术讲师
本期直播旨在帮助开发者熟悉理解AI技术概念,AI发展趋势,AI实用化前景,了解熟悉未来主要技术栈,当前发展瓶颈等行业化知识。帮助开发者在AI领域快速构建知识体系,构建职业竞争力。
去报名 -
华为云软件开发生产线(CodeArts)10月新特性解读
2024/11/19 周二 19:00-20:00
苏柏亚培 华为云高级产品经理
不知道产品的最新特性?没法和产品团队建立直接的沟通?本期直播产品经理将为您解读华为云软件开发生产线10月发布的新特性,并在直播过程中为您答疑解惑。
去报名
热门标签