-
大赛详情地址:https://competition.huaweicloud.com/information/1000041288/introduction作者昵称:老老刘参加了华为云API入门学习赛,按照大赛给的指导流程一步步来做。首先当然是报名然后开通人脸检测服务接着我们去找一张美女图根据指导说明上传调试最后将调试结果截图打包上传就ok啦,很简单
-
首先感谢华为公司举办的比赛,感谢提供给我们一个提升自己的机会。我们是来自南开大学的Excavator团队(挖机联盟),本次比赛非常有幸能进入前10。赛题任务本次KPI异常检测比赛提供了某运营商的部分网元的KPI真实数据,根据历史一个月的异常标签数据,训练机器学习模型,智能预测后续一周内KPI中的异常。评价函数为二分类中常用的F1-score:数据初探训练集数据仅有5列,分别是:kpi_id:表示某个KPI名称,本次共分为20个KPI_ID。start time、end time:采样间隔为1小时,用于指示当前KPI值的开始时间和结束时间。value:KPI值,本次KPI检测的关键数据,核心特征。label:标签值,指示kpi值是否异常。0为正常,1为异常。除去ID列和标签列,仅有时间特征和kpi特征。其中最为关键的就是KPI值,通过KPI值的时序变化,来判别异常点。根据上述分析,将本赛题归纳出几个关键字:时序类数据、原始特征较少、二分类问题。接下来我们进一步分析,发现三个问题:01通过绘制value值分布图发现,不同kpi_id的 value值分布截然不同:有的较为平稳,有的波动很大,且取值区间也相差很大。02通过对label列的value_counts()函数统计发现,0值较多,1值极少。0与1取值分布如下图所示,比值约为98.5:1.5,训练集数据极为不平衡。03训练集数据的时间范围是2019/08/01至2019/09/22,将近两个月的数据;测试集数据的时间范围是2019/09/23至2019/09/29日一周的数据。特征工程时可以围绕“7天”这个周期进行构造。第一时间想到的解决方案是:分ID训练不同模型,根据1/0比值划分阈值,窗口大小优先选择7。特征工程时序类数据和时间强相关,上下联系紧密,首先想到的就是窗口特征和差分特征。01窗口特征:向上向下取一定数量的值(称为窗口),进行统计分析,观察某一周期内value值的变化情况。可以使用Dataframe中rolling函数。(1)统计量:均值(mean)、标准差(std)、方差(var)等。(2)窗口大小:12h内,24h内,7天内等。02差分特征:时间移位作差,目的是观察数据的时序变化。可以使用diff函数。(1)差分方式:时间向上移位作差、时间向下移位作差。(2)差分量:1阶~10阶。03卡方分箱:基于卡方检验,将连续型变量做分箱处理,减小数据异常值带来的影响。在本题中主要针对不稳定ID,将其value值放缩并进行一个映射,衍生出非线性特征,便于模型理解。解决方案常见的时序类模型会想到lstm等神经网络,但是其训练速度较慢,所以本次并未采用。本次采用数据挖掘比赛常用的Lightgbm模型,并结合数据规则进行综合评判。分ID思路如下:01稳定ID一部分ID具有较稳定的value值,异常点即离群点。针对这个现象,我们根据折线图和散点图,找出这些稳定ID,设置一个KPI正常区间。区间之外的点为异常点,置为1。02不稳定ID(1)直接按照模型概率划分0,1对于一部分不稳定ID,我们直接采用LGB模型预测,得到每个点是异常点的概率,再通过计算Train中0,1比例,得到概率划分基准点,再进行微调。(2)经常会出现两个连续1的ID有一部分ID的异常点经常是连续出现的(2个),根据这种情况,我们采用的方案是:①确定必然是异常的点(异常概率大,超过0.5)。②在异常点的上下寻找概率较大的点,也将其记作异常点。(3)模型概率加阈值划分最后一类问题是我们最头疼的一类问题,某些谷底的值,因为下降过程非常平滑,模型有时不能判断其是否是异常,这种我们通过模型概率先找出异常点,再划分阈值来判断异常。划分阈值思路:LGB五折交叉验证后得到训练集异常概率,再遍历0.001到0.5之间阈值(步长0.001),对比训练集标签并计算F1_score,从而得到最优的阈值list。根据最优阈值对测试集概率划分。最终评分0.9403,线上排名第10,复核排名第9总 结首先分ID训练优化模型,对于较少ID的比赛(比如本次比赛)还可以,对于ID多的恐怕会相当复杂,所以还是很期待前排“1”佬们的方案。我们提供的方案主要还是单模,难免在最后阶段进入瓶颈期。后面还要更多考虑模型融合,发掘不同模型之间的优势,取长补短。特征挖掘思路较为常规,还需要进行更深入的挖掘,毕竟“特征为王”,挖到几个强特可能直接分数暴增。对于华为NAIE平台,刚开始使用的时候还是挺困难的,但是一天的摸索后,就一句话:NAIE真香。对于赛制:没有B榜可能是唯一的槽点吧,全都朝着A棒拟合,模型泛化能力检测不够吧。有点慈善赛的味道(不是为了买代码)。希望下次还能有机会参加华为的比赛,和各路高手比拼。和GREAT再战300回合!本文首发:网络人工智能园地https://mp.weixin.qq.com/s/vcSB8qtpDI6m4_NCGUAV3w
-
大赛详情地址:https://competition.huaweicloud.com/information/1000041288/introduction作者昵称:橙子是红的今天是最后一天冲鸭!!!活动时间:11月16日~11月20日奖励规则:在11月16日至20日的5天时间内,按照操作指导完成作品提交,且成绩50分及以上(按照操作指导完成即可获得50分),即可获得作品提交当日的抽奖机会。抽奖规则:每天针对提交作品的同学进行抽奖,中奖概率为当日提交作品人数的40%。第二天在群内公布前一天中奖结果。备注:每日提交上限5次,当日抽奖。奖品包括:华为快充移动电源、华为荣耀手环4、荣耀体脂称2、100元京东卡、50元京东卡、华为定制棒球帽/渔夫帽、¥465案例学院会员卡、AM115半入式耳机,随机抽取发放。首先报名>>大赛链接:https://competition.huaweicloud.com/information/1000041287/introduction没实名的需要实名认证:>>点击实名认证链接:https://account.huaweicloud.com/usercenter/?region=cn-north-1&locale=zh-cn#/accountindex/realNameAuthing接下来就是根据指导来点击人脸识别服务链接:https://console.huaweicloud.com/frs/?region=cn-north-4#/frs/home本地上传任意一张人像图片https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?product=FRS&api=FaceDetectV2ByFile点击调试,将调试成功页面截图,保存成zip包。回到大赛提交作品页https://competition.huaweicloud.com/information/1000041287/submission将保存好的zip包作为作品上传到大赛提交页。完成!
-
大赛详情地址:https://competition.huaweicloud.com/information/1000041288/introduction作者昵称:平平无奇的平平这个入门学习赛还是蛮良心的,流程简单,中奖率也挺高,奖品也不错,我想很多朋友也都是冲着奖品来的吧。首先开通服务然后选择byfile,找一张人像图上传,最后点击调试。这个页面别忘截图保存。最后打包成zip上传,搞定!接下来就是等第二天的抽奖了!!!
-
大赛详情地址:https://competition.huaweicloud.com/information/1000041288/introduction作者昵称:老老刘参加了华为云API入门学习赛,按照大赛给的指导流程一步步来做。首先当然是报名然后开通人脸检测服务接着我们去找一张美女图根据指导说明上传调试最后将调试结果截图打包上传就ok啦,很简单
-
作者昵称:王亦臻大赛链接:https://competition.huaweicloud.com/information/1000041287/introduction、正文:从华为云高校青年活动得知有AI人脸识别大赛这次技术活动,就参与了。按照大赛给与的赛题指导,一步一步操作,明白了人脸识别下的API服务。直接上传准备好的人脸图片,然后按照操作,调试。结果图:以后直接调用API,就可以识别人的各种信息,很方便。
-
视频观看链接:https://bbs.huaweicloud.com/videos/1018552019年,越来越多的行业都将业务放上了“云端”。大势所趋的背后,不只是AI、云计算、大数据等新兴技术的崛起,也是各种各样应用场景的智能化激活和渗透。凭借自身深厚的技术积累与实践,华为云不断深入行业场景,以AI开发为切口,让技术赋能千行百业。2019年,华为云举行了一系列开发者大赛,为开发者提供展示自我的舞台,助力企业与优秀人才、前沿科技的对接,让“高深莫测”的技术更加落地,让云上世界更加智能。No.1数字中国创新大赛:文化传承-汉字书法多场景识别赛2019年1月,华为云以“文化传承-汉字书法识别场景”为赛题,通过人工智能算法实现书法文字的自动识别,解决实际场景中有些书法文字难以识别的问题,传承中国千年文化。赛事共有1071赛队的1203名选手报名,最终破晓、银月之晶、Gtai三支团队获得前三名。冠军团队破晓,赢得最高8万元大奖,并获得华为云AI实验室的实习机会,以及华为云面试绿色通道资格。比赛过程中,华为云为参赛选手们提供了华为云ModelArts一站式AI开发与管理平台和华为云OCR(文字识别服务)技术支持。其中,华为云OCR凭借识别精度高、服务稳定、支持复杂场景、简单易用等优势,现今已被广泛应用于物流、医疗、金融等行业。No2华为云人工智能大赛•无人车挑战杯7月1日,“华为云人工智能大赛•无人车挑战杯”开始报名。通过本项赛事,华为云全面锻炼和提高了赛队的AI解决方案能力及无人驾驶编程技巧的赛事。作为整场赛事的技术支撑,华为云ModelArts一站式AI开发与管理平台及端云协同AI开发应用平台HiLens让参赛开发者们轻松地进行了模型开发与部署。具体而言,在识别红绿灯的问题上,无人车可在上路前通过华为云HiLens Kit采集交通灯照片,然后在ModelArts上进行图片数据集的标注并生成标注数据,轻松过灯。No3华为云鲲鹏开发者大赛7月23日,“2019华为云鲲鹏开发者大赛”开赛,选手基于华为云自研的鲲鹏云服务器,进行主题为“化鲲为鹏”的游戏策略开发。大赛吸引了来自北京大学、浙江大学、哈尔滨工业大学等全国374所高校的学生,以及50个来自不同行业的开发者共1200多位选手参赛。而华为云鲲鹏开发者大赛的最大亮点就是在于华为云为参赛选手们提供最新的华为云鲲鹏云服务器。基于鲲鹏处理器对云原生软件随时随地的部署,华为云鲲鹏云服务可以帮助开发者在大数据、分布式存储、ARM原生应用等诸多应用开发场景中游刃有余,为其提供从芯片到服务器到云平台的全栈自主创新能力,帮助开发者轻松应对多云计算的挑战。No4华为云人工智能大赛·垃圾分类挑战杯于7月30日启动“华为云人工智能大赛·垃圾分类挑战杯”致力于运用AI赋能垃圾分类,减轻城市居民在垃圾分类方面产生的困扰。截至比赛结束,有2600多位社会各界开发者参赛。比赛中,华为云为选手提供ModelArts、算力云资源、数据集等。ModelArts以全流程的极简和自动化升级已有的传统AI开发模式,让数据准备、算法开发、模型训练、模型管理、模型推理全链条产生质的飞越。值得一提的是,华为云ModelArts不仅仅应用于垃圾分类,还可适用于建筑、互联网、医疗等诸多行业场景。华为云历来重视用技术使能开发者,不仅发布了ModelArts、HiLens、华为云鲲鹏云服务、OCR等众多解决方案及工具,帮助开发者驰骋开发界,还在2019华为全联接大会上,发布了沃土计划2.0,宣布未来五年将投入15亿美元,帮助全球开发者基于华为开源开放的产品和服务进行技术与商业创新。依托华为30年的技术积淀,华为云正在努力构建完善的开发者生态,以促进每一位加入华为云生态的开发者,不仅能获得技术支持,还能找到同伴、发现商机,将梦想从不可能变可能。如果说云计算改变了中国各行各业的发展历程,那么可以说,华为云正让每一位开发者参与到这一历史进程当中。
-
华为云API入门学习赛:AI人脸识别分享者昵称:AAAI本次根据API学习赛(AI人脸识别)比赛指导进行完成。访问人脸检测接口需要进行选取地区等参数之后我们在调用的时候可以直接调用接口参赛心得:本次比赛通过对于AI的模型进行实际操作,了解到了很多知识,尤其时调用API接口进行开发,极大的减少了开发的时间。大赛详情地址:https://competition.huaweicloud.com/information/1000041287/introduction
-
作者昵称:lichengqian大赛链接:https://competition.huaweicloud.com/information/1000041287/introduction、正文:对于AI人脸识别的心得分享 这次的华为云API的入门学习赛开设了多个部分,其中之一便是AI人脸识别,因为是API的入门学习嘛,所以在我的学习过程中并没用感到太大的困难(本人软件工程专业大三),因此我觉得只要是有点编程基础的同学都可以积极的加入到华为云的API入门学习里面,在这里面可以提前的了解到一些在高校不常接触的前沿知识,丰富自己的项目实战经验,不得不说对于自己的知识拓展还是能起到一定的办帮助的。下面来分享一下关于人脸识别调试的简单操作,希望对大家有所帮助。人脸识别调试步骤:1、开通人脸识别服务 按住键盘Ctrl键鼠标点开如下链接,在新窗口打开窗口 https://console.huaweicloud.com/frs/?region=cn-north-4#/frs/home如果没有账号,请根据指引完成账号注册和实名认证。实名认证后,退出重新登录一下。选择”北京四”(注意要实名认证后,才能有北京四),点击”开通服务”按钮开通人脸检测服务2.打开人脸识别调试部分进行如下图操作3.选择地区为北京四,之后吧事先下载好的人脸识别照片上传,参数填写数字14.做完以上操作之后,点击调试,即可完成,便可以看到响应体的返回信息,包括人脸人物的性别年龄等预测信息详细操作请看人脸识别官方模板
-
作者昵称:外围的小尘埃大赛链接:https://competition.huaweicloud.com/information/1000041287/introduction、正文:点击人脸识别服务链接:https://console.huaweicloud.com/frs/?region=cn-north-4#/frs/home 开通人脸识别服务开通登陆状态下,进入人脸识别接口:(本地上传任意一张人像图片)https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?product=FRS&api=FaceDetectV2ByFile直接调用API,就可以识别人的各种信息,很方便
-
大赛详情地址:https://competition.huaweicloud.com/information/1000041320/introduction华为云账号:gogosuccess正文内容:随着大数据人工智能时代的到来,在我们的生活中仍有很多生活方式,因为没有数字化而引来了一些不便利,作为学生,学校犹如我们的家。在这里让我们感受到的不便利主要是学习和生活的未数字化造成的。首先在学习方面,我经常往返图书馆让我感到不变的首先是身份验证,每当入馆,我们先要打开微信,找到公众号进行入馆预约,并且每次都要重新输密码,验证码。输完后才能刷卡进入图书馆,然后在进行排队在机器上座位预约签到,除此之外,图书馆可能有的人一个人占两个座位,水龙头未关闭,借书需要电脑检索在自己去寻找等等。面对这些情形,如何解决呢。1. 入馆时,我们可以进行人脸与学生证上的图片进行识别核对,并在每个入馆的关卡外设置红外线测温仪器,入馆后才可以在公众号上进行预约并扫脸签到。这3件事可以有效地防止“占座”现象,体温异常现象,以及因为网络拥堵导致网站崩溃的现象发生。2. 在馆中,可以将水龙头换成红外线水龙头,这样可以较为有效的避免水源浪费以及水龙头的损坏。3. 借书时,可以运用自动借还书柜,一来可以减少工作人员的工作量,二来方便寻找。其次在做实验时,经常遇到仪器损坏导致实验无法完成,建议运用数字化平台进行模拟实验,这样既可以减少仪器损坏也可以让学生在课后多加练习。最后便是生活方面,主要有点餐,疫情拿快递需要出校门并且需要验证,宿舍充电费需要去食堂,无法找到具体的共享单车等现象。1. 由于冬天来临,天气较为寒冷,饭菜容易凉,食堂可以采用保温饭菜器代替传统的热水热气保温的方式,第二冬天上课时间表缩短,导致中午时间减少大半,然而每次放学都会排很长的队,导致中午无法缓解疲劳,建议使用扫码点餐,机器人送餐。2.在这个交通便利的时代,快递成为了我们生命中不可或缺的一部分。由于特殊情况,我们拿快递需要请假,然后出校门要给门卫看,进门要证明是学校的学生并且量体温。这一系列操作十分繁琐,可以在校内采用智能快递柜,由快递人员将消毒过的快递产品,放入快递柜中,这样既可以避免一系列事情发生,又可以通过效率。3.共享单车在学校内经常乱停乱放,因此有时不容易寻找,也不易出行,既增加了工作人员的工作量,也耽误了需要出行人的时间。如何解决呢?首先可以使用一个专门在校园内借还车app,此app有一系列的功效,必须在固定的停车点,才能还车,并且可以显示车辆数目和定位。除此之外,对于每次遵守规则的人提高借车成功率,反之降低。4.最后便是宿舍充电,有时会出现半夜停电因为电费不足,而充电费必须去食堂,此时宿管人员已经关门,碰上夏天只能热一晚上,甚至有时会出现食堂的缴费机器都坏了。为解决这一问题,我认为可以让移动支付平台与学校平台对接,这样就随时随地交电费了,并可以减少一些不必要的麻烦。
-
在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的技能市场,提供了丰富的开发好的技能,开发者可以站在巨人的肩膀上做开发,提高开发效率。
-
视频观看链接:https://bbs.huaweicloud.com/videos/1018552019年,越来越多的行业都将业务放上了“云端”。大势所趋的背后,不只是AI、云计算、大数据等新兴技术的崛起,也是各种各样应用场景的智能化激活和渗透。凭借自身深厚的技术积累与实践,华为云不断深入行业场景,以AI开发为切口,让技术赋能千行百业。2019年,华为云举行了一系列开发者大赛,为开发者提供展示自我的舞台,助力企业与优秀人才、前沿科技的对接,让“高深莫测”的技术更加落地,让云上世界更加智能。No.1数字中国创新大赛:文化传承-汉字书法多场景识别赛2019年1月,华为云以“文化传承-汉字书法识别场景”为赛题,通过人工智能算法实现书法文字的自动识别,解决实际场景中有些书法文字难以识别的问题,传承中国千年文化。赛事共有1071赛队的1203名选手报名,最终破晓、银月之晶、Gtai三支团队获得前三名。冠军团队破晓,赢得最高8万元大奖,并获得华为云AI实验室的实习机会,以及华为云面试绿色通道资格。比赛过程中,华为云为参赛选手们提供了华为云ModelArts一站式AI开发与管理平台和华为云OCR(文字识别服务)技术支持。其中,华为云OCR凭借识别精度高、服务稳定、支持复杂场景、简单易用等优势,现今已被广泛应用于物流、医疗、金融等行业。No2华为云人工智能大赛•无人车挑战杯7月1日,“华为云人工智能大赛•无人车挑战杯”开始报名。通过本项赛事,华为云全面锻炼和提高了赛队的AI解决方案能力及无人驾驶编程技巧的赛事。作为整场赛事的技术支撑,华为云ModelArts一站式AI开发与管理平台及端云协同AI开发应用平台HiLens让参赛开发者们轻松地进行了模型开发与部署。具体而言,在识别红绿灯的问题上,无人车可在上路前通过华为云HiLens Kit采集交通灯照片,然后在ModelArts上进行图片数据集的标注并生成标注数据,轻松过灯。No3华为云鲲鹏开发者大赛7月23日,“2019华为云鲲鹏开发者大赛”开赛,选手基于华为云自研的鲲鹏云服务器,进行主题为“化鲲为鹏”的游戏策略开发。大赛吸引了来自北京大学、浙江大学、哈尔滨工业大学等全国374所高校的学生,以及50个来自不同行业的开发者共1200多位选手参赛。而华为云鲲鹏开发者大赛的最大亮点就是在于华为云为参赛选手们提供最新的华为云鲲鹏云服务器。基于鲲鹏处理器对云原生软件随时随地的部署,华为云鲲鹏云服务可以帮助开发者在大数据、分布式存储、ARM原生应用等诸多应用开发场景中游刃有余,为其提供从芯片到服务器到云平台的全栈自主创新能力,帮助开发者轻松应对多云计算的挑战。No4华为云人工智能大赛·垃圾分类挑战杯于7月30日启动“华为云人工智能大赛·垃圾分类挑战杯”致力于运用AI赋能垃圾分类,减轻城市居民在垃圾分类方面产生的困扰。截至比赛结束,有2600多位社会各界开发者参赛。比赛中,华为云为选手提供ModelArts、算力云资源、数据集等。ModelArts以全流程的极简和自动化升级已有的传统AI开发模式,让数据准备、算法开发、模型训练、模型管理、模型推理全链条产生质的飞越。值得一提的是,华为云ModelArts不仅仅应用于垃圾分类,还可适用于建筑、互联网、医疗等诸多行业场景。华为云历来重视用技术使能开发者,不仅发布了ModelArts、HiLens、华为云鲲鹏云服务、OCR等众多解决方案及工具,帮助开发者驰骋开发界,还在2019华为全联接大会上,发布了沃土计划2.0,宣布未来五年将投入15亿美元,帮助全球开发者基于华为开源开放的产品和服务进行技术与商业创新。依托华为30年的技术积淀,华为云正在努力构建完善的开发者生态,以促进每一位加入华为云生态的开发者,不仅能获得技术支持,还能找到同伴、发现商机,将梦想从不可能变可能。如果说云计算改变了中国各行各业的发展历程,那么可以说,华为云正让每一位开发者参与到这一历史进程当中。
-
是什么让选手们茶饭不思?是什么样的操作把团队从倒数第一抢救为第一?队友怎么找?老板不让参加比赛怎么办?比赛外的收获?来看2019年软挑上海合肥赛区四强的独家访谈!队伍名:Nebula成员:李子旸、任正行、曾明亮Q:对比赛印象最深刻的点是什么?A:我们写的组合优化算法有很多超参数,给调优带来了很大困难:我们按照文档实现了官方的判题器,以在提交代码前就能知道最终分数,便于调整参数,在比赛过程中,我们使用了超级计算机寻找算法的最优超参数,在比赛快结束时提交了一次代码(最终成绩只考虑最后一次的代码提交,获得分数结果需要十五分钟,我们把这次当作最后一次提交),然而这一次超级计算机找到的参数恰好触发了我们代码中的一个隐藏很久的 bug ,导致我们以为能运行成功的代码没有得到分数,队友看到分数结果时都吓坏了,当时比赛只剩不到三十秒就结束了,我们都不知道问题出在哪里。我凭借直觉赶紧把参数改得不那么激进,并且编译打包提交,代码提交上去的瞬间比赛就结束了,我们也不知道这次是否会成功,还好最后是运行成功了,就这样从最后一名抢救到了第一名。Q:华为软挑和大家参加的其他比赛有什么不同?A:有些比赛有点像考试,它需要一个熟练度,华为的软挑有更真实的应用场景,不是考察熟练度,对学习能力的要求更高,也更好玩一些。另外,在参赛的整个经历中,能够感受到公司特点和做事风格,比如目标导向、质量优先等等,复赛和决赛的时候能够和已经工作很多年的华为前辈交流,对未来的工作内容和发展方向也更有了解了。Q:有什么想对今年选手说的?A:复赛需要找准思路,调整好心态,另外不要乱立FLAG~ 队伍名:USTC410成员:曹鸿儒、程穗、赵喆Q:是怎么找到彼此作为队友的?期间有什么故事?A:我们是同一个实验室的,当时听师兄说了这个比赛,就想正好一起组队,一拍即合(瞒着老板参赛的);初赛的时候只是想试一下,进入复赛之后就很认真准备了,每天都会碰头,想到什么就写一写、调一调,三个人分工合作,复赛当场提交还是很从容的,觉得进决赛没什么问题,一点都不慌。 Q:对比赛印象最深刻的点是什么?A:决赛用了更仿真的数据,会觉得眼前一亮,因为一路打过去,前期觉得用的数据不够真实,像一个数字游戏,而决赛用了更真实的数据,我就觉得大赛的主题更加贴近实际,有真实的背景,是真正的去解决问题。另外收获了一首法语歌——《On écrit sur les murs》,是一首反战歌曲,之所以印象深刻是因为后期准备比赛的时候会熬到很晚,经常听它来提神,反反复复地听,觉得很好听。队伍名:我是个机器人成员:陈宇航、赵瑞、朱英达Q:是怎么听说到这个比赛的?队友怎么找的?A:和师兄吃饭的时候顺便和他请教怎么拿offer,聊天的时候知道了华为软挑,师兄当时拿了前一年的上合赛区第一,全国13强。实验室的同学推荐了另外的队友,我们三个人按照算法建模、官方调度器的实现还有车牌识别三个模块来分工,每隔两三天就碰头交流一两个小时。Q:比赛过程中有没有什么让大家印象深刻的事情?A: 我们复赛的时候一共提交了3次,最后一次的提交不知道能否运行,特别担心跑的时候有bug,所以后面的研究所实验室参观都心思不在,了解了下训练赛几个排在前面的队伍的成绩,算了下我们组应该不是第四就是第五,这是能不能进决赛的区别,所以我们连饭都没吃好就等排名,后面发现进了决赛很激动。Q:想对今年参赛的学生说什么吗?A:尽量做好分工,多水大赛论坛,多水群,和大神交流借鉴能进步很多。 队伍名:是是非非成员:张棠磊Q:为什么选择单人成队参赛?A:实验室的师妹当时看到了大赛的宣传,来问我要不要组队,我当时实验室的项目比较忙,觉得自己一个人先去试试后面如果时间来不及就算了,如果组队的话,临时鸽掉比赛不太负责,所以当时就自己花了一个下午的时间搞了下初赛的题目,后来发现进了复赛,就开始认真投入,决赛前在异地做项目,就抽晚上的时间准备比赛。感觉组队更需要一个合作的磨合,合作的好就是1+1>2,否则会1+1<1,自己参赛比较机动。Q:对今年的选手们有什么想说的?A:不要盲目的改代码,图像化的展示运行情况,有助于进行改进分析。 --------上合赛区 报道
-
比赛简介共10类食物,数据集共5000个图片,尺寸大小不一,类别分别均衡。需要自己划分训练集和验证集,用于判分的测试集不可见。比赛难度不大,主要难点在于如何减小过拟合,提高模型的泛化能力。代码已在我的github上开源,欢迎star。源码的github地址涨点核心思想:cbam注意力auto_augmentcutmixsnapshotLabelSmooth数据探索由于数据集比较小,也比较简单,因此主要是统计了一下所有图像的尺寸分布,发现大多数图像的宽高在400~500,因此可以选择将图像输入尺寸调整到这个区间。大尺寸的另一个好处是可以显著提高分类准确率。训练策略数据集划分采用9:1的比例将数据集划分为训练集和验证集,时间和资源允许的情况下,可以进行10折交叉验证。数据增强数据集比较小,因此数据增强是提分的重点方向。除了torch自带的随机裁切和随机擦除以外,涨分的一大技巧是采用auto_augment。数据增强的代码如下:train_transform = transforms.Compose([ transforms.Resize((size+32, size+32)), transforms.RandomChoice([transforms.RandomCrop(size, padding=1, pad_if_needed=True, padding_mode='edge'), transforms.RandomResizedCrop(size, scale=(resize_scale, 1.0), ratio=(0.8, 1.2))]), transforms.RandomHorizontalFlip(), auto_augment.AutoAugment(dataset='CIFAR'), transforms.ToTensor(), transforms.RandomErasing(p=erasing_prob), transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225]) ])模型选择采用efficientnet-b5,同时增加了cbam注意力模块,代码如下:class ChannelAttention(nn.Module): def __init__(self, in_planes, ratio=16): super(ChannelAttention, self).__init__() self.avg_pool = nn.AdaptiveAvgPool2d(1) self.max_pool = nn.AdaptiveMaxPool2d(1) self.fc1 = nn.Conv2d(in_planes, in_planes // 16, 1, bias=False) self.relu1 = nn.ReLU() self.fc2 = nn.Conv2d(in_planes // 16, in_planes, 1, bias=False) self.sigmoid = nn.Sigmoid() def forward(self, x): avg_out = self.fc2(self.relu1(self.fc1(self.avg_pool(x)))) max_out = self.fc2(self.relu1(self.fc1(self.max_pool(x)))) out = avg_out + max_out return self.sigmoid(out) class SpatialAttention(nn.Module): def __init__(self, kernel_size=7): super(SpatialAttention, self).__init__() assert kernel_size in (3, 7), 'kernel size must be 3 or 7' padding = 3 if kernel_size == 7 else 1 self.conv1 = nn.Conv2d(2, 1, kernel_size, padding=padding, bias=False) self.sigmoid = nn.Sigmoid() def forward(self, x): avg_out = torch.mean(x, dim=1, keepdim=True) max_out, _ = torch.max(x, dim=1, keepdim=True) x = torch.cat([avg_out, max_out], dim=1) x = self.conv1(x) return self.sigmoid(x)优化器和学习率衰减优化器采用RAdam,学习率衰减策略采用torch1.4自带的学习率自动重启的余弦衰减。optimizer = newoptim.RAdam(model.parameters(), lr=lr, weight_decay=weight_decay) scheduler = optim.lr_scheduler.CosineAnnealingWarmRestarts(optimizer, T_0=epochs//snap_num)训练方法采用三阶段训练法,每一阶段基于快照集成思想获得5个模型快照,选择acc最高的模型作为当前阶段的训练结果。具体流程如下:Stage 1:图像输入尺寸为400,使用LabelSmooth和cutmix,采用带学习率自动重启的CosineAnnealingWarmRestarts方法,获得5个模型快照,选择val_acc最高的模型,作为Stage 1的训练结果。Stage 2:图像输入尺寸为500,适当调整随机裁切和随机擦除的参数,增加weight_decay,在Stage 1模型的基础上训练获得5个模型快照,选择val_acc最高的模型,作为Stage 2的训练结果。Stage 3:图像输入尺寸为500,关闭cutmix,损失函数采用CrossEntropyLoss,在Stage 2模型的基础上训练获得5个模型快照,选择val_acc最高的模型,作为最终的训练结果。模型性能单模型,验证集上acc为99.4%,提交到modelarts上,测试集的acc为99.2%。由于图像分辨率较大,推理时间比较长,500张图片需要40多分钟。
推荐直播
-
华为云码道 × 仓颉编程:工程化AI编码探索2026/05/27 周三 19:00-21:00
刘俊杰-华为云仓颉语言专家/李炎-华为云码道技术专家/王智鹏-OpenCangjie开源社区发起人
本场直播围绕华为云仓颉语言与华为云码道的深度结合,展示华为云智能编程从零基础到高效落地的完整生态能力。以华为云码道为引擎,仓颉语言为载体,带给大家日常提效、趣味创新到极速量产的开发体验。
回顾中
热门标签