• [其他] 开发者如何抓住时代机遇,学好AI
    本文整理自华为云EI图像算法专家零一老师的直播《开发者如何抓住时代机遇学好AI》,点击可以回看。AI是什么?根据维基百科的定义,人工智能是一种新的通用目的技术(GPT, General Purpose Technology),它横跨整个人类经济的多种用途,具有巨大技术性互补和溢出效应。简而言之,AI是21世纪的一种基础技术,它会应用在我们日常生活的方方面面。AI的历史、现在和未来早期,受到20世纪数学哲学的影响,诞生出两种流派的人工智能。基于形式主义(认为所有数学分支都可以公理化的)和逻辑主义(一切数学都是建立在数理逻辑的基础之上)的符号主义的人工智能,以及基于构造主义的连接主义和行为主义人工智能。早期的流派都认为自己提出的理论有很大的潜力,可以解决很多问题。但在经过一系列探索后,科学爱家发现AI并没有想象中的简单。之后,AI经历了起起落落的发展阶段。直到2006年,深度学习之父Geoffrey Hinton 和他的学生Ruslan Salakhutdinov在《科学》上发表了一篇文章,提出了深层网络训练中梯度消失问题的解决方案,至此开启了深度学习在学术界和工业界的浪潮。2012年,Geoffry Hinton又带着团队参加了ImageNet ILSVRC挑战赛,以惊人的优势获胜(错误率比第二名低了足足 10%),这次的比赛结果以及相应的论文拉开了深度学习的热潮。而深度学习之所以会从2006年后大放异彩,很大一部分的原因是数据、算力的发展,当时的数据集ImageNet的数据量很大,再加上使用GPU训练深度学习网络,这两个突破奠定了深度学习的崛起。如今,GPU的算力也越来越强,现在的AI发展又是如何呢?AI应用落地的三驾马车当前,数据、算法、算力的发展突破正推动AI应用的逐步落地。1、数据资源丰富随着物联网基础设施及智能手机、可穿戴设备的普及,我们每个人时刻都在产生大量数据。据IDC发布《数据时代2025》的报告显示,全球每年产生的数据将从2018年的33ZB增长到175ZB,相当于每天产生491EB的数据。另一方面,大数据等技术,降低了数据处理和存储的成本,数据作为人工智能时代的“石油”,驱动着AI的发展。2、算法持续突破在传统深度学习CNN/RNN系列模型之后,强化学习、对抗网络算法模型不断涌现。AI算法逐步逼近人类水平。自然语言处理(NLP)方面,2018年Google推出的BERT开启了NLP的元年,如今BERT在数据集上的两个指标(GLUE基准:80.4%,MultiNLI准确度:86.7%)全面超越人类。计算机视觉方面,图像分类的算法很早之前就已超越了人类;动作识别目前精读相对较低,停留在52.5%;人脸识别的某些数据集也已经超越了人类。语音语义识别方面,中文语音识别准确率达到新高度,中文语音识别字错率(CER)达到3.71%,与人类专业的速记员水平相当。3、AI芯片释放巨大算力AI芯片市场细化,推理与训练、云侧与端侧分离,性能持续提升,突破摩尔定律瓶颈,释放ZB级数据分析算力。NVIDIA的Tesla V100,作为AI训练通用芯片,性能远超上一代P100的10+倍;Google的TUP3.0是2.0性能的8倍左右;华为也推出了适用于推理场景的昇腾310以及适用于模型训练的昇腾910。从早期的CPU、GPU到现在的TPU、ASIC,进入到细分领域后,各种AI专用芯片会层出不穷,性能不断提升,功耗不断降低。未来,AI是否会超越人类?当前,一些算法在某些数据集上的准确率已经高于人类,很多人会问:AI是否会超越人类?如图,首先并不是人类社会的所有问题都是数学问题,有很多问题是不能用数学来描述,黄色圈子内是可以用数学解决的问题。由此引出了第一个问题:世界上是否所有数学问题都有明确的答案?答案是有些数学问题是无解的。第二个问题:如果有明确的答案,是否可以通过有限步骤的计算得到答案?这就是数学的可计算问题,经过验证,并不是所有数学问题都是可以计算。接下来是第三个问题:对于那些有可能在有限步骤计算出来的数学问题,能否有一种假想的机械(图灵机),让它不断运动,最后当机器停下来的时候,那个数学问题就解决了?结果是只有部分问题是图灵机能够解决的。回答完上面三个问题后,再回看上面那张图,蓝色圈子里面的一个小圆是AI可以解决的问题,最后的小点才是AI已经找到解决方法的问题,只占据非常小的一部分。所以,我们可以说,在AI已经找到解决方法的问题上,它可能超越了人类,但是在更多的问题上,它是没办法超越的。那么在某些领域里,AI的准确率既然高于人类,比如图像识别,它可以完全替代人类吗?如上图所示,左边是正常的原图,中间是干扰数据,让AI预测的是加了干扰数据的右图。我们可以很清楚的辨别左右两组图完全没有区别,但是AI算法做不到,它会把右边的三张图片都判断为鸵鸟。再来看另一组AI犯错的案例,上面是一些噪点和花纹的数据,但AI有99.6%的概率会将这些图片识别成某种类别的物体。在我们普通人来看,AI有时候会犯一些非常愚蠢的错误。这时候再回答“未来,AI是否会超越人类?”的问题,答案就是:AI能解决的只是人类社会中很小的一部分问题,即使它能解决,并在统计意义上得到一个还不错的准确率,但它有时还是会犯很愚蠢的错误,AI的预测结果并不是完全可信的,AI不会超越人类,它应该成为人类的工具,使人类社会的生产效率进一步提高。人工智能入门的三大难点最后谈谈高校学生,或者是普通开发者学习AI可能会碰到的一些问题,主要有以下三个难点:一是要学习的基础知识太多,做AI开发涉及到Python编程知识、Linux知识,视觉方面要学图像处理、OpenCV等,同时还要有一定的数学基础。二是没有GPU机器,自己买GPU做AI训练,成本非常高。三是碰到问题找不到人进行交流,尤其是非计算机专业的同学学AI会比较难,因为做AI开发不像传统的软件开发那样有非常多的书籍资料和社区可以交流,很多人只能在GitHub上找一些资料来解决学AI过程中的一些问题,能交流的人和圈子都会更少一点。所以,华为云提供了一站式AI开发平台ModelArts,可以低门槛、低成本的上手AI,并且提供ModelArts社区、《ModelArts人工智能应用开发指南》等书籍,解决学习AI过程的以上三个难点。在1024程序员节这样喜大普奔的日子里,华为云也推出了以“向云而生”为主题的一系列趣味活动和直播,学AI的同时可以集卡牌、抽盲盒,看直播更有超豪华锦鲤大礼包。
  • [直播&活动公告] 送你的代码上太空,一起开发“最伟大的作品”
    【摘要】 @全球开发者,你有个送代码上太空的机会,报名华为开发者大赛·代码上太空,挑战15万元奖金池。“用技术改变世界”是很多程序员的终极理想,华为云“最边缘的人”——代码up主阿普,朝这个理想迈出了一大步。因为他的代码被全球首颗云原生卫星送上了太空。阿普和团队通过华为云孵化并开源的云原生边缘计算平台KubeEdge以及边云协同AI框架Sedna,让卫星具备了“自主思考”的能力。现在,每每抬头仰望天空,阿普就会很开心。Sedna是太阳系中离地球最遥远的天体,阿普说他们给这个边缘AI项目取名为Sedna,就像研究边缘计算的愿景一样,探索边缘技术的边缘和无限可能。@开发者,你也有个送代码上天的机会你是不是也想和阿普一样,用技术改变世界?现在,华为云诚邀广大开发者一起将代码送上太空,点击链接 报名【华为开发者大赛·代码上太空赛道】,挑战15万元奖金池!入选作品将有机会通过华为云和北邮联合设计的全球首个“云原生卫星计算平台”,部署到多颗卫星中,实现“星海畅游”。7月15日,华为云还将带来代码上太空挑战赛赛题解读直播。 阿普和他的小伙伴杰森,携手北邮一号卫星系统平台负责人、试验平台技术负责人邢若粼,和大家一起聊聊代码上太空背后的技术。扫描下方二维码,预约直播我们也期待开发者有更多奇思妙想,基于各类星载计算设备、星载传感器设备的数据,并充分运用华为云云原生、AI等工具和能力,开发出适用于卫星的创新应用。比如:● 使用AI技术对卫星数据进行处理卫星在轨运行的轨道受到地球重力、太阳活动很多复杂因素影响,导致卫星轨道难以精准的预测。用GPS数据和人工智能方法能提供轨道外推精度,将有效降低卫星在轨运行的代价,提高卫星的自主性,提升星座编队和保持能力。在即将到来的星群时代将产生巨大的价值,还可基于华为云大数据分析工具展开卫星数据分析。● 星地协同遥测图像分析基于Sedna和AI开发框架ModelBox,实现一个高能效的星载目标识别应用。比如农作物的估产、沙漠森林的演进、城市的土地资源规划等等。● 设计与实现星地一体化容器管理系统星地一体化容器管理系统有助于构建自动化、智能化的卫星应用管理平台,提升应用构建、发布、使用和运维的便捷性,充分发挥卫星的价值。开发者可以基于华为云KubeEdge项目并对其中关键组件进行针对性设计与改造,实现星地协同的容器编排管理。有了边缘计算,卫星变得更“聪明”为什么需要用边缘计算来帮助卫星变得更加智能?以通信、遥感为代表的传统卫星,只有储存能力,只能将存储的数据回传到地面,不具备星上处理能力。但随着轨道上不同的卫星越来越多,产生的数据也越来越多,卫星本身产生的数据量其实已超过卫星所传输的数据量,这就需要卫星进行在轨的实时处理,把一些冗余的数据丢弃。为了让卫星变得更聪明,阿普和团队根据它的特点,对KubeEdge系统和轻量级AI推理模型Sedna做了重构,让卫星具备星地协同AI能力和多任务处理能力。这颗卫星运用的云原生边缘计算平台KubeEdge,可实现卫星在星计算处理,并且通过边云协同AI框架Sedna,能够支持在卫星上使用非常少的资源更好的支持AI推理的效果,提高卫星在轨推理能力。让它在关键工作中,表现得更加优异。以气象洪涝灾害为例,云原生卫星在Sedna的帮助下,通过在轨AI推理将被云雪覆盖超50%的低质量图像数据丢弃,减少传输压力。有效图片回传后,在算力资源丰富的中心节点使用华为云高精度AI模型进行运算,缩短影像预处理、水域提取、监测报告生成的时间,从通常的1天缩短到1小时,显著提升应急响应时间。给卫星装APP,探索更多创新应用以往的卫星在研制时就有相应的任务,发射升空之后也只能完成特定任务。当卫星有了云原生边缘计算平台之后,可以按需更新卫星边缘任务,科研人员也能在卫星上构建一个对所有资源进行统一管理的环境。北京邮电大学王尚广教授解释说:“以前的卫星就像老款手机只能打电话,做不了其他任务。有了云原生后的智能卫星就像现在的智能手机,可以安装各种APP和软件,分门别类用于环境监测或是科研实验,功能更强大。”以环境监测为例,智能卫星的投入使用,不仅将应急响应时间从“天级”降低到“小时级”,而且卫星边缘任务支持按需更新后,能通过在轨AI推理,比较暴雨前后图片,推测山体坍塌风险,提前预判地质灾害隐患,并发出预警。最后,欢迎有更多开发者加入,一起让卫星更好地服务于应急通讯、生态监测、防灾减灾、城市建设等。报名华为开发者大赛,送代码飞上太空,给远在地球之外的卫星安装独家“APP”,让卫星变得更加“耳聪目明”,探索边缘计算应用的更多可能。
  • [赛事资讯] 首届华为云杯“少年开发者”人工智能大赛空中宣讲会成功举行
           7月13日,首届华为云杯“少年开发者”人工智能大赛空中宣讲会在线上成功举行。会上邀请到上海市教育委员会副主任倪闽景、复旦大学党委常委、副校长汪源源及华为上海代表处总经理郭奕昱出席并致辞,为少年开发者们加油,同时还有华为云高级研发专家、常春藤联盟海归创业明星等齐聚一堂,热情号召孩子们踊跃参赛,投入到学习和构建万物互联的智能世界。       作为首个聚焦“少年开发者”素质培养的人工智能主题科创竞赛,在上海市教育委员会与复旦大学的指导下,由华为云、上海市科技艺术教育中心、复旦大学计算机科学技术学院、上海市育思青少年计算科学发展中心共同承办,以“科技创新,让美好发生”为主题,鼓励学生将知识和社会实践相融合,通过科技创新力量发掘生活中的小确幸。此次大赛已正式启动,将持续至10月下旬。聚焦素质培养,打造创新赛事       上海市教育委员会副主任倪闽景在致辞中指出,人类从直立行走,到火的应用,再到发明语言文字,不断演变进化,推动人进化的主要力量始终是技术的发展。特别是现代计算机的发明以及云计算和人工智能技术不断创新,“数字世界”正在被创造。       近年来,复旦大学围绕着人工智能学科发展,重大科学问题研究和关键核心技术的攻关,培养了一批批优秀人才。华为作为全球领先的ICT(信息与通信)基础设施和智能终端提供商,在5G、云计算等领域不断开拓创新,是民族企业的骄傲。       本次大赛,汇聚了教育和科技企业的力量。在一流大学的专家教授、一流科技企业顶尖人才的共同努力下,致力于培养青少年在人工智能领域的开发者思维。       复旦大学党委常委、副校长汪源源在致辞中表示,百年变局,挑战与机遇并存,我们正在以时不我待的精神奋勇前行,在上海建设具有国际影响力的科技创新中心进程中,人工智能是其中的核心内容之一。复旦大学在人工智能领域的教学与科研起步较早,历经40多年发展,参与创办本次大赛,与中学有效联动,拉动领先科技企业资源的开放与共享,以更高的效率、更好的内容、更佳的平台,共同肩负起人工智能人才培养目标的落地与达成。希望同学们从书本、从理论,走向现实、走向社会,在比赛中充分展示自己的能力,坚持不懈地探寻科学的奥秘,成为未来智能社会建设的骨干人才、领军人才。       华为上海代表处总经理郭奕昱在致辞中提到,在智能奔腾的浪潮中,我们坚信人才培养是核心竞争力,开发者是基础,少年开发者更是深入基础研究的关键力量。每一个少年开发者都拥有改变世界的机会,都是华为要汇聚的星星之火。在充满挑战的创新道路上,华为云cloud for good期望汇聚满天繁星的力量,以自身的创新技术与平台,帮助少年开发者用科技创新发现生活中的小美好,成为“了不起”的筑梦人。培育创新沃土,壮大人才队伍       华为云全球生态部开发者联盟产品资深专家在演讲中表示,华为云作为智能世界的云底座,协同鸿蒙、鲲鹏、昇腾等开发者生态,以产业人才培养为目标,通过线上线下多种渠道,全方位培养中小学生及高校人才。通过现实世界编程,将物理与数字世界进行连接,让AI人工智能离每个孩子更近,突破创新。       康奈尔大学博士、海归创业明星、人民日报海外教育版特约撰稿人包坤在演讲中通过多个科学小实验,向大家展示了比科学知识更重要的是科学思维,形成科学思维的前提是激发兴趣 。同学们在物理探究过程中可以通过不断地思考、实践,从而打开好奇心来培养科学思维。       最后,普林斯顿大学学士、上海市育思青少年计算科学发展中心理事长顾诗尧对本届大赛赛题、赛制以及评审标准进行了详细解读,本届大赛以“开发者精神”为内核,期待培养出一批“少年开发者”去开展人工智能的研究,开发人工智能的应用,拓宽人工智能的边界!       华为云杯“少年开发者”人工智能大赛线上宣讲会的成功召开,最大程度地拉近了大赛主办方与参赛选手、技术爱好者之间的距离。未来,华为云将继续以过往丰富的科技比赛举办经验为沉淀,以成熟前沿的赛事技术及平台为抓手,将更多的科技资源开放给青少年学子,在人工智能教育的浪潮中掀起一朵朵“智慧浪花”,为青少年科技创新教育添薪助力,为国家科技创新人才队伍培养更多后备力量。
  • [云商店直播] 对话AI客服,解锁更高效的用户服务
    本期直播嘉宾:华为云云商店AI领域优质伙伴沃丰科技-高级AI咨询顾问Mae带您探索:AI客服,如何让企业服务更智能、更高效?过去,用户对于AI语音客服的接受程度较低,由于技术原因,AI对话能力差,影响用户体验,甚至会降低对品牌的好感度。而今天,随着数字技术的不断升级,AI语音却可以帮品牌激活客服通道,一反从前成为众多行业“新宠”。针对AI领域,华为云云商店提供了丰富的人工智能商品及解决方案,为各行各业提供优质服务,以北京沃丰时代数据科技有限公司(后简称“沃丰科技)为例,其在云商店上架了包含智能客服、语音机器人、文本机器人、ServiceGo现场服务系统等多款热门商品,提供各行各业全场景智能客服,建立体验经济时代的核心竞争力,实现客户服务对企业经营的全面赋能。以热门应用场景——家电行业为例,其业务规模虽在迅速膨胀,但随之而来的是售后服务工作量的增加,人力成本也在被迫增加。当企业仍旧沿用传统人工作为主要售后形式,问题也逐渐凸显:客户电话打不进、工单流转速度慢、安装问题投诉无法及时处理,客户投诉量逐渐上升。同时客服压力大、人员流动性强,服务质量难保证,售后服务陷入被动局面。利用数字技术推动客服升级,已经成为解决家电企业售后难题的重要手段,而如何在这条路上顺利而坚定地走下去?也是华为云与沃丰科技正在不断探索的主题。7月14日19:00,锁定云商店直播间,沃丰科技高级AI咨询顾问带你了解“AI如何助力家电行业,让客户服务更精准、快捷”? AI加持,让客户服务更高效以某小家电企业为例,沃丰科技利用ASR模型为其打通客户领域数据,将问题话术、知识库、FAQ、工单等家电行业历史数据,引入识别引擎,让机器像人一样在“限定场景”做语音识别。如:我要移机(我要一级)、外机坏了(外脊坏了)等,同样能精准识别。 此外,还支持对用户地址库中的生僻字进行词典扩充,并且针对地址库进行语言模型优化训练等,提升地址识别的转写准确率。而NLP模型则实现了语音数据标注,即以行业模型实现定制化体验效果。以某制造业企业为例,其语音中包含大量带有业务特点的数据,如“(安装空调)掉不了/(接口)调不了”,此列特殊的用户口音,也使得模型必须符合地域性特点,才能满足定制化效果,让服务更高效。 多场景应用,助力品牌获客、营销除上述场景外,沃丰科技智能客服还支持客服、回访、质检等等需求场景,围绕呼叫中心、文本机器人、语音机器人、智能质检等产品形成解决方案。企业可以将通话组件嵌入客户自研客服系统,通过通话组件**通话事件,弹屏展示,让一通电话的效率实现最大化,将用户转化率提升数倍不止。在自有客服系统中,企业可直接自动拨打接听电话,完成用户回访及热线服务等日常工作。还能通过机器人对全国服务站进行外呼,而后机器人录音进入智能质检体系进行服务质检,如有需要还能提供24小时服务站检查…… 与云商店的合作沃丰科技多款AI类商品成功上架华为云云商店,已连续服务众多行业用户,赢得良好的市场口碑,另外,凭借出色的产品能力与服务质量,沃丰科技荣获2021年度华为云云商店优秀合作伙伴“最佳销售黑钻奖、千万俱乐部奖“。从2020年开始,国家已在重点助力家电行业向智能化发展,家电行业想要推动市场消费升级,势必要积极进行数智化转型。而数智化转型突破口在哪里?企业又将以何种形式走向智能?7月14日19:00,华为云云商店直播间,沃丰科技将为您带来家电行业数智化转型秘籍! 点击立即报名! 撰文:沃丰科技编辑:云商店-格子
  • [行业案例] 印尼Widya Robotics携手华为云,做工地安全的“定海神针”
    如果说建筑也有“世家”的话,在雅加达出生长大的Riza也可以说是来自于建筑世家。从他的爷爷起,家里的男人都在工地上做活,包括他的爸爸、叔叔、年长的族兄们,无一例外。 自小读书还不错的Riza,原本的志愿是计算机或者通信,却阴差阳错地被雅加达以南的城市——勿加泗(Bekasi)的一所建筑学校录取,终于和自己的家人们踏入了同一条河流。按照我们中国人的说法,这也算是家学渊源了,好处是一家人作为同行很容易找到共同语言。不过,Riza的感觉并非如此,每当他描述工地上发生的一切时,父兄们就像看外星人一样看着他。为什么呢?因为现在的建筑工地真的已经与往日截然不同。 二与其他很多地方一样,总有一些施工人员认为安全帽戴着麻烦又不舒服,觉得事故不会发生在自己身上,因此总抱有侥幸心理,从而给自己的安全乃至工地的管理带来极大的隐患。传统的方法,是雇佣一些专门负责监管的安保人员。不过缺点也显而易见,额外增添的人力成本高且不说,这些人也可能出于疲倦、人情的缘故,有意无意中放过某些违规行为。结果是,雇主花钱买了个寂寞。Riza所在的工地绝对不会出现类似的情况。如果有人不正确佩戴安全帽,或者没穿工作服,门禁会及时识别出来,闸机无法打开放行,工人的安全违规行为会在第一时间被纠正,减少安全事故的出现。最近两年由于新冠疫情的缘故,工地的门禁还加入了口罩识别的功能。Riza很喜欢这种极富未来感的style,在他看来,这些举措无疑是对施工人员的健康与安全的有效保证。Riza不知道,所有这一切得益于一家叫做Widya Robotics的公司,它是印尼顶尖AI公司Widya Group的子公司,专门从事机器视觉领域,为本土企业提供一系列由人工智能、自动化和机器人技术赋能的创新产品和服务。目前,Widya Robotics为印尼当地多个工地项目提供定制化的行业机器视觉解决方案,具体包括智慧工地门禁产品、卡车载货扫描仪等,帮助提高工地的安全性、降低工地的管理难度。Riza所在的工地,就是其中之一。 三以上文提到的安全帽识别为例。作为建筑工人的“三宝”之一,安全帽能够有效防止和减少施工作业中可能造成的头部伤害,其重要性不言而喻,所以尝试利用AI技术对之进行智能识别也是Widya Robotics创立伊始的重点攻关内容。一开始的解决方案比较简单,就是在门禁附近部署一台PC机和AI摄像头,在PC机上完成AI模型训练和开发工作后,再将AI算法和应用软件部署于边缘侧的PC机。但PC机笨重不方便,只能通过有线方式连接网络,长期部署在工地等恶劣环境容易导致故障。由于开发机和部署机使用不同的PC机,部署周期也较长,通常需要半天时间。为了更加轻便可靠,Widya Robotics还尝试过使用基于树莓Pi等板卡代替PC机开发,但此类板卡仅仅是一个非商用的板卡,还需要配套集成摄像头、网络、门禁控制器等模块,大大提升了开发难度。经过几个月的尝试,Widya Robotics虽然开发出了试商用的版本,但由于印尼缺乏定制化硬件产业链,开发出的产品未深度集成,板卡也未能和摄像头很好地完成封装,最终还是放弃了此方案。然而,即便是如此大动干戈,效果也并没有达到预期目的。由于施工现场非常复杂,识别效果受到天气和环境的影响也比较大,加之安全帽数据收集与监测判别困难,Widya Robotics早期提供的安全帽识别服务准确度不高,口罩、工作服的识别也存在一些挑战。更糟糕的是,由于硬件“定制化”的缘故,它很有可能就无法在下一个项目中表现出足够的“弹性”,先前的经验难以被复制和复用,Widya Robotics的成本也会因此居高不下。 四在这种进退维谷中,Widya Robotics邂逅到华为云,感受到来自华为云AI开发生产线ModelArts和端边云统一AI应用开发框架ModelBox的无尽魅力。华为云ModelArts是一站式的AI开发生产线,支持大部分开源算法,提供大量预置行业工作流和模型,以前从开发修改到完成商用部署至少需要数天时间,现在仅仅需要30分钟。ModelBox是高性能、高扩展、易用的AI应用运行时框架,提供颠覆式的开发体验。其一,ModelBox能屏蔽软硬件差异,帮助开发者打破多终端间的壁垒,实现AI应用一处开发,在端、边、云皆能进行部署,节省更换设备的算法适配成本。其二,ModelBox能够优化推理性能,高效利用并节省计算资源。这两大利器,极大地提高了Widya Robotics的开发和商用效率,快速实现了包括安全帽识别、口罩识别和工作服识别等在内的算法开发,并通过云上HiLens平台实现快速部署及与业务对接。 也许,有了华为云AI开发生产线ModelArts和端边云统一AI应用开发框架ModelBox,开发者将不再需要过五关、斩六将,就能进入一个更加广阔的AI世界。它的一砖一瓦,由华为云为各行业打造AI解决方案时积累的经验淬炼而成。此外,通过使用华为云ECS,Widya Robotics部署和开发了BI工具Superset,使得智慧工地解决方案更加可视化,极大地提升了解决方案的数字化水平,这一点也尤其得到了工地方的高度赞许。 五作为东南亚最大的国家,印尼最近几年的基础设施发展迅速,住宅小区、产业园区如雨后春笋般涌现出来,但是随之带来的是安全事故也呈现出快速上升的态势:根据印尼人力部的数据,仅仅是过去一年,印尼就发生了多达17.7万起工伤事故。为了提高工地的安全性和规范性,印尼政府**了一系列针对工地管理与合规的强制规范,比如着装规范、防疫规范等。然而,单纯依靠人力很难达到良好的效果,这就为Widya Robotics等创业AI公司提供了充分的施展空间。Widya Robotics是一家拥有150名员工的公司,其中研发人员占到70%以上。从事智慧工地项目的Widya Robotics开发者,基本毕业于印尼顶尖的Gadjah Mada University大学,他们的特征是充满激情和想象力,期待驾驭最先进的数字技术。即便如此,倘若缺乏全流程、场景化的AI开发工具,任凭能力再强,开发者也无法在短时间内完成数据处理、算法开发、模型训练、模型部署等一系列工作。放眼全国,市场至少需要花费2-3年时间,来培育年轻ICT人才的“云开发”习惯。华为云为Widya Robotics的开发者提供了超出预期的奇妙之旅:通过华为云ModelArts提供的一站式AI开发工具,轻松实现模型云上训练、云-边-端部署,华为云开源的框架快速实现算法推理逻辑开发、与业务系统的对接,项目参与者们充分感受到那种充盈于指尖的、自由驾驭AI的快乐,开发原来是如此充满乐趣!对于工地工人而言,AI的应用让他们真正体会到工地管理方对他们安全和健康的重视,也让他们切身感受到华为云人工智能,以及数字化对个人工作和生活带来的巨大改变。工地方的感受同样美妙。经过实际的测试与验证,新方案在部署实施之后,相比以前的方案,小巧、方便、安全、可靠性得到了工地管理者和施工单位的一致认可。目前,在原有的功能特性之外,Widya Robotics还希望继续借助AI技术完成更多的方案,譬如违规爬高检测,周界入侵检测,违规行为分析和贵重施工设备检测等,公司也将继续加大与华为云AI的合作力度。与此同时,通过与华为云的合作,Widya Robotics得以融入华为云的生态,他们不仅可以和更多的产业伙伴互通有无、共同提升,还得到了更多的项目机会和行业曝光度,被外界广泛认知。Widya Group联合创始人兼Widya Robotics首席执行官Alwy Herfian Satriatama表示:“在过去的一年,Widya Robotics一直与华为合作。对于Widya Robotics而言,这无疑是一大步,因为华为是世界上最大的科技公司之一。展望未来,我们希望能够与华为打造更多的联合解决方案。” 与全球一样,智慧正在铺撒在南亚大地,千行百业的数字化与智能化已经成为各方共识。“新世界”的大门,正在徐徐开启!**转载自https://mp.weixin.qq.com/s/2CJSdnSCV1tnhS1X5T1izQ 
  • [业界动态] 华为云发布ModelBox AI应用开发框架 实现AI应用一次开发全场景部署
    6月15日,以“因聚而生,为你所能”为主题的华为伙伴暨开发者大会 2022隆重开幕,华为云CEO张平安发表“共创新价值,一切皆服务”主题演讲,并重磅发布了华为云ModelBox AI应用开发框架,打通端边云边界,助力开发者实现AI应用一次开发,全场景部署。  华为云CEO张平安发布包括ModelBox在内的15大新服务  去年华为云发布了盘古预训练大模型,让AI开发由作坊式转变为工业化开发的新模式,但是AI的应用开发和部署仍然面临很多挑战,面向多样化的云边端场景,行业开发者平均需要花费1~2个月来完成AI应用对多种运行设备和系统的开发适配,耗时耗力。  为解决这一难题,打通AI落地“最后一公里”,华为云再次对AI开发生产线ModelArts进行重磅升级——发布ModelBox AI应用开发框架,帮助开发者屏蔽底层软硬件差异,实现AI应用一次开发,全场景部署,让AI开发者无需学习复杂的底层技术及繁多的系统API就能开发出高性能的AI应用。  华为云ModelBox AI应用开发框架具备以下三大创新能力:  高性能并发调度引擎提升推理性能 2-10倍  相较传统AI应用串行的开发方式,ModelBox应用中所有任务以功能单元形式封装,运行时内置的并发调度引擎实现数据计算和资源管理的精细化智能调度,同时集成了特别优化过的硬件加速单元,可以实现推理性能大幅提升。  自适应异构计算组件缩短跨平台开发周期80%  预置丰富的应用编排异构计算组件,覆盖主流芯片、操作系统、推理框架,让开发者不必学习平台的软硬件差异,实现一次开发,全场景部署,降低了开发者学习底层优化API的难度,可以明显缩短开发周期。  端边云AI协同单元降低运维成本30%  框架中提供的端边云AI协同单元让开发者快速生成格式统一的AI应用,结合应用场景一键部署到端边云不同的设备上运行。结合云上管理平台,可以实现对模型的精细化管理,降低运维成本。  在油气行业中,实体三维重建及定位是复杂设备维修、维护的重要手段,需要端侧设备在开阔空间中能够快速完成定位,且误差不超过1厘米。相当于要在几毫秒之内,从十个足球场面积的图片中识别出螺丝钉大小的物体。重建及定位算法的求解需要PnP、RANSAC等十余个子算法的相互协同。  传统的AI应用开发方式因缺乏灵活编排异构计算单元的手段,无法高效调度计算资源,推理时延长达上百毫秒,难以满足开阔空间毫秒级三维重建定位的要求  3D重建和定位识别等高性能AI应用能够结合AR眼镜流畅运行  华为云ModelBox AI开发应用框架具备独有的高性能并发调度引擎,可将计算资源合理调度到GPU、CPU、NPU等多种芯片上,通过芯片级并行计算,提升推理性能2-10倍。ModelBox打通端边云边界,统一模型应用接口和打包格式,让AI应用可以便捷的部署到各种异构计算平台,由端侧运行低延时小模型,边侧承担综合计算任务,云侧承载复杂的大模型。通过高效协同端边云计算资源,实现开阔空间厘米级精度的三维重建及定位,并将时延控制在毫秒级。基于Modelbox,开发一个新器件的三维重建应用的周期从两个月缩短到了一周。  统一模型应用接口和打包格式,让AI应用可以便捷的部署到各种异构计算平台  目前,华为云ModelBox AI应用开发框架已进行了开源,并与北京亮亮视野科技有限公司(以下简称亮亮视野)等30多家软硬件生态伙伴进行战略合作。  亮亮视野是国内TOP级AR眼镜设备提供商,服务了覆盖工业、能源、航空、制造等行业的5000多家领军企业。亮亮视野COO娄身强表示,ModelBox改变了过去重复开发定制交付的模式,可以将开发团队从繁琐的软硬件适配、调优工作中解放出来,让伙伴更加聚焦于产品本身的开发,实现了研发效能的提升。  同时,ModelBox为亮亮视野等硬件厂商提供了广阔的生态合作机会。一方面,AR眼镜等硬件设备基于云上的海量AI应用可以快速扩展AI技能,另一方面,基于ModelBox提供的统一接口和格式,AI算法能够更便捷地运行在各种智能设备上,在端边云协同的场景中形成生态互补优势,解决行业AI应用落地的难题。  技术升级的浪潮成为了社会前行的核心动力来源之一。华为云将不断创新,继续和合作伙伴、开发者一起,通过经验即服务、技术即服务、基础设施即服务,实现一切皆服务,共创新价值。*转载自https://m.it168.com/articleq_6747139.html 
  • [其他] 浅学AI平台ModelArts—天筹(OptVerse)AI求解器
    天筹(OptVerse)AI求解器 将运筹学和AI相结合,突破业界运筹优化极限,针对线性和整数模型寻找最优解,以通用形式描述问题,高效计算最优方案,助力企业量化决策和精细化运营,提升资源利用率和运转效率,增强决策水平和竞争力。求解器--现代决策优化的“芯片”和“根技术”小到快递员路线选择、商铺选址,大到工厂排程、物流路径规划和金融风控等问题,都可以建成数学规划模型,用天筹(OptVerse)AI求解器进行求解。利用运筹优化算法和决策模型求解方法,将业务问题转化为数学规划模型,适用在多种复杂约束条件限制(如人力、时效、容量等约束限制)和海量数据的基础上获取全局最优方案(如成本最低、时间最短)的业务场景,助力业务实现从数据到决策的闭环。    高效建模工具    基于图建模算法,充分利用稀疏性与并行算力,建模效率最大可以提升30倍        高效、稳定、高质量    求解速度快、优度高、性能稳定,已在华为内部供应链问题上成功求解亿级变量/约束超大规模数学模型    自适应学习优化    融合前沿AI能力,可根据问题特征自适应进行参数调优和求解策略选取,实现最大30%的求解效率提升    原生支持分布式加速求解    依托强大云上算力,支持超大规模分布式并行加速    全行业场景全流程决策支持    支持结合 ModelArts 平台向用户提供全流程决策优化能力    简单易用,快速上手    支持云服务RESTful API、ModelArts notebook内置SDK的C++/python接口等多种开发和调用方式
  • [赛事资讯] 首届“域见杯”大赛报名启动:​金域医学携华为云引爆医检AI细分赛道
    由广州市科学技术局指导,金域医学和华为云共同打造的本次大赛,开赛一个月来已成功吸引来自海内外各大知名院校、医疗AI公司、医疗机构、科研单位等产学研生态的近700名选手踊跃报名,提交作品数超2000件。0.3848、0.4822、0.5852、0.6178……“域见杯”医检人工智能开发者大赛得分排行榜上,各参赛队伍的分数不断被刷新。选手们齐聚云端火热打榜,优化模型让得分不断向满分1分逼近,引爆医检AI细分赛道。 华南理工大学计算机科学与工程学院蔡宏民教授指出:“目前,医疗AI开发存在着专业标注数据获取难、成本高、质量参差不齐等问题。本次大赛赛题设置正好解决了开发者们的痛点。由于具有广阔的可落地应用场景以及庞大的数据,临床检验和病理诊断AI赛道已经越来越受AI领域开发者的重视。” 279支队伍参赛 海内外知名高校选手云集 “域见杯”报名启动以来,一个月时间内已成功吸引近700名选手,共计279支队伍参赛。参赛选手来自中国、美国、英国、加拿大、澳大利亚、日本、马来西亚等7个国家和地区,横跨亚洲、欧洲、北美洲、大洋洲。他们拥有深厚的理工类背景或医学背景。境外参赛选手有来自布里斯托大学、新南威尔士大学、密歇根大学、伯明翰大学、早稻田大学等世界大学综合排名较前的高校。而国内参赛选手,则不少来自计算机领域的顶尖院校,包括清华大学、北京大学、上海交通大学、浙江大学、中国科技大学、南京大学、复旦大学、华南理工大学等,涵盖了全球计算机领域内行公认最权威的2022CS Rankings排行榜(中国内地)排名前十的院校。更有来自北京大学医学院、四川大学、中山大学等医学领域知名院校的学生加入。 本次比赛以学生参赛居多,硕士及以上学历选手占比达50%,且专业背景多为计算机、信息技术、统计学、医学检验、病理诊断、临床医学、预防医学、生物工程等,与医检AI匹配度关联性较强。 大赛还吸引了不少科研机构、医疗AI公司、医疗机构的从业人员报名参加。“域见杯”真正为医检行业搭建了数据交流、应用、共享的平台,有助于打造临床检验和病理诊断AI细分领域赛道,为后续生态建设奠定基础。▲病理医生在显微镜下确认AI结果华为云EI开发者生态工程师陈丽芳分析指出:“本次“域见杯”呈现出参赛队伍素质高、辐射范围广、专业匹配度强的特点。“之所以能吸引众多人才参与,主要归功比赛模式的设计新颖,应用场景清晰可见。参赛方案的落地可以直接助力医疗卫生效率提升,对广大开发者而言,有相当大的吸引力。” 真实应用场景数据助力模型开发 开发者不再“纸上谈兵” 首届“域见杯”聚焦宫颈癌筛查场景设置赛题,提供近1万张宫颈细胞学图片。选手利用这些图片及标注,开发人工智能分类算法,判断图片中细胞的病变程度,最后根据分类的准确程度进行排名。▲病理医生正在审阅图像块由病理医生专业标注图片,提供了真实应用场景数据,是本次大赛能够吸引大量跨界人才参与的重要原因。兰州大学信息科学与工程学院教师魏佳璇正是看重了此特点,便将本次大赛作为自己数据挖掘和大数据分析实验课的作业,鼓励班上学生报名参赛。 兰州大学信息科学与工程学院教师魏佳璇表示:“此次大赛提供了数量不少的经过专业标注的宫颈细胞学图片,真实应用场景数据有别于以往的‘纸上谈兵’,可以帮助学生在医疗行业真实的应用背景下,练就快速理解问题、分析需求、形成解决方案的能力。” ▲金域医学病理医生团队临床检验和病理诊断AI开发领域,存在着专业标注数据获取难、成本高、数据质量参差不齐等问题。 金域医学副总裁、首席信息官李映华表示:“针对本次大赛,我们专门一次性提供了近1万张宫颈细胞学图片,恰恰解决了交叉学科算法研发的瓶颈,可以让参赛选手更好地聚焦在模型调优上,也借机向社会广泛普及临床检验和病理诊断AI的行业特色与前景,探索更多应用可能和场景。”作为大赛主办方,金域医学拥有全球领先的东方人种大样本、大数据库,检测总量累计超20亿。尤其是在宫颈筛查领域,至2021年底,金域累计超过6500万例宫颈筛查标本,拥有全国最大的病理医生团队,其中从事细胞病理诊断的医生近300名。真实应用场景数据、专业医生团队加持,让大赛可以更好地汇聚生态伙伴,共同探索生物技术与新一代信息技术融合创新的应用场景,构建智慧医检生态,培养交叉复合人才。 据了解,本届“域见杯”初赛已于6月8日正式启动,并将于7月30结束,初赛成绩领先的40支队伍,可参加8月上旬举办的复赛,当中最优秀的10支队伍将于8月底举办的决赛进行答辩,角逐最高荣誉。优秀获奖选手不仅可以获得最高10万的奖金,更有机会获得入职金域医学的offer直通车或创投机会等诸多奖励。
  • [问题求助] 【直播疑问解答】1.智能化网络需要利用AI技术通过大数据来训练模型,而网络中存在多个厂商和多种类型的设备,该如何解决这个冲突
    问:智能化网络需要利用AI技术通过大数据来训练模型,而网络中存在多个厂商和多种类型的设备,该如何解决这个冲突呢?疑问来源:2022.6.16日直播  华为携手银联,共筑网络数字化运维基座完整直播回顾链接:https://devzone.huawei.com/cn/enterprise/aoc/videos/UnionpayLive.html?id=136&number=1&from=allVideos回复:
  • [其他] AI作诗
    已完成
  • [其他] 动漫AI
  • [其他] 动漫AI
  • [热门活动] 【CANN训练营】新手班第三章
    本章学习目标:1. 了解异构计算架构CANN在神经网络训练中发挥的主要作用。2. 掌握如何基于CANN将TensorFlow模型迁移到昇腾AI处理器上。3. 掌握如何在昇腾AI处理器上进行模型训练,感受昇腾AI的极致性能。4. 掌握如何查看训练日志和训练结果,具备基本的问题定界、定位能力。第二节 AI模型开发基础知识入门1、具备Python基础编程知识(这些内容都是比较简单的)a. 使用位置和关键字参数定义和调用函数b. 字典、 列表、 集合(创建、访问和迭代)c. for循环, for具有多个迭代器变量的循环(例如,for a, b in [(1,2), (3,4)])d. if/else条件块和条件表达式e. 字符串格式 (例如,'%.2f' % 3.14)f. 变量、赋值、基本数据类型 (int, float, bool, str等)2、深度学习和神经网络3、了解TensorFlow AI框架4、了解基于CANN的模型开发流程昇腾910 AI处理器是华为在2019年发布的人工智能(AI)专用的神经网络处理器。当前业界大多数训练脚本基于TensorFlow的Python API开发,默认运行在CPU/GPU/TPU上,为了使其能够利用昇腾910 AI处理器的澎湃算力执行训练,提升训练性能,我们需要基于CANN对TensorFlow模型进行适配和训练,5、了解遇到问题如何求助模型调试和调优过程中,不知道该怎么解决,或者有优化建议要反馈,您可以借助以下渠道:1. 在华为方集中组织培训的场景下,可求助培训或对应课程的接口人。2. 开发者自学的场景下:    a. 可在ModelZoo仓上提Issue,该仓的接口人会定期处理问题。    b. 可在昇腾社区论坛中查阅经验贴、或者发帖,论坛的接口人会定期处理问题。第三节 TensorFlow AI模型迁移详解本节学习目标:1. 了解为什么要做模型迁移2. 了解模型迁移的两种迁移方式3. 掌握如何进行模型迁移学习内容:1、要做模型迁移的原因:目前人工智能领域内,AI算法模型搭建方面的技艺已经是炉火纯青,市面上用于AI模型搭建的深度学习框架,除了华为开源的昇思MindSpore,还有Google的TensorFlow、Facebook的PyTorch、Caffe等。但是AI模型训练却是一个漫长的过程,随着模型参数量、样本的增多,训练一个模型动辄以月为单位,此时一款高性能AI处理器简直是雪中送炭。昇腾910 AI处理器是华为在2019年发布的人工智能(AI)专用的神经网络处理器,其算力高达256T,最新款算力高达310T,是业界主流处理器算力的2倍,基于昇腾910 AI处理器的昇腾系列硬件,比如Atlas 800训练服务器,算力更是大到惊人,此时你一定跃跃欲试了。除了昇思MindSpore外,TensorFlow等其他深度学习框架下的模型并不能直接在昇腾910 AI处理器上训练,为了使其充分利用昇腾910 AI处理器的澎湃算力来提升训练性能,我们需要借助异构计算架构CANN的Plugin适配层转换,使转换后的模型能够高效运行在昇腾910 AI处理器上。值得庆幸的是,目前,CANN已经能够支持多种主流AI框架,包括昇思MindSpore、TensorFlow、PyTorch、飞浆、ONNX等,并且开发者只需要非常少的改动,即可快速搞定算法移植,大大减少切换平台的代价。2、了解两种模型迁移方式:将TensorFlow网络模型迁移到昇腾AI处理器执行训练,主要有两种方式:a. 一种是自动迁移方式。通过迁移工具对原始脚本进行AST语法树扫描,可自动分析原生的TensorFlow API在昇腾AI处理器上的支持度,并将原始的TensorFlow训练脚本自动迁移成昇腾AI处理器支持的脚本,对于无法自动迁移的API,可以参考工具输出的迁移报告,对训练脚本进行相应的适配修改。b. 一种是手工迁移方式。算法工程师需要人工分析TensorFlow训练脚本中的API支持度情况,并且参照文档逐一手工修改不支持的API,以便在昇腾AI处理器上训练,该种方式较为复杂,我们建议大家优先使用自动迁移方式。3、TensorFlow AI模型自动迁移详解:自动迁移是通过工具对原始脚本进行AST语法树扫描,可自动分析原生的TensorFlow API在昇腾AI处理器上的支持度,并将原始的TensorFlow训练脚本自动迁移成昇腾AI处理器支持的脚本,对于无法自动迁移的API,可以参考工具输出的迁移报告,对训练脚本进行相应的适配修改。迁移流程:自动迁移学习截图:
  • [干货汇总] 程序员女友给我做了一个疲劳驾驶检测
    【摘要】 ModelBox开发案例 - 疲劳驾驶检测本案例将使用开源项目中的Face Detect与Face Mesh两个模型,实现一个简单的疲劳驾驶检测应用并提醒,最终效果如下所示:案例所需资源(代码、模型、测试数据等)均可从obs桶下载。 开发背景“道路千万条,安全第一条”,交通安全是我们出行首要关注的问题,而疲劳驾驶一直是引发交通事故的一个主要原因。在AI算法惠及生活的现在,我们想利用Mode...本文分享自华为云社区《ModelBox 开发案例 - 疲劳驾驶检测》,作者: 俯卧撑手抓饼 。ModelBox开发案例 - 疲劳驾驶检测本案例将使用开源项目中的Face Detect与Face Mesh两个模型,实现一个简单的疲劳驾驶检测应用并提醒,最终效果如下所示:案例所需资源(代码、模型、测试数据等)均可从obs桶下载。开发背景“道路千万条,安全第一条”,交通安全是我们出行首要关注的问题,而疲劳驾驶一直是引发交通事故的一个主要原因。在AI算法惠及生活的现在,我们想利用ModelBox开发板快速实现、便利调试开发的特点,实现一个疲劳驾驶提醒应用案例demo,实现基本的疲劳驾驶检测与辅助提醒效果。希望大家能从此案例得到启发与参考,开发出更多丰富、有趣的应用。算法原理该项目主要原理为:通过面部检测模块定位出面部区域,将其输入到面部关键点模块检测出面部关键点,并对其中的眼睛、嘴巴等关键点计算其EAR值与时长判断其是否处于疲劳状态并进行提醒。从摄像头检测出面部区域从面部检测出关键点通过公式计算出EAR值,并根据实时滑动窗口计算占比,超过阈值则判断为疲劳应该对其进行提醒ModelBox介绍ModelBox是一个适用于端边云场景的AI推理应用开发框架,提供了基于Pipeline的并行执行流程,能帮助AI应用开发者较快的开发出高效,高性能,以及支持软硬协同优化的AI应用。易于开发 AI推理业务可视化编排开发,功能模块化,丰富组件库;c++,python多语言支持。 易于集成 集成云上对接的组件,云上对接更容易。 高性能,高可靠 pipeline并发运行,数据计算智能调度,资源管理调度精细化,业务运行更高效。 软硬件异构 CPU,GPU,NPU多异构硬件支持,资源利用更便捷高效。 全场景 视频,语音,文本,NLP全场景,专为服务化定制,云上集成更容易,端边云数据无缝交换。 易于维护 服务运行状态可视化,应用,组件性能实时监控,优化更容易。模型训练我们可以使用面向开发者的一站式AI开发平台ModelArts进行模型的训练:ModelArts提供了包括数据标注,训练环境,预置算法在内的丰富的功能,甚至可以通过订阅预置算法实现零代码的模型训练工作。当然你也可以在本地训练自己的模型。我们假设你现在已经拥有了训练好的模型,接下来我们需要将训练好的模型转换成为可以在开发板上运行的模型。本案例可以直接用预训练好的模型进行初期应用的搭建即可。模型转换我们发布了开发板模型转换案例,参见RK3568模型转换验证案例 :在这个案例中我们演示了从环境适配到模型的转换验证的全流程样例代码,开发者可以通过“Run in ModelArts”一键将Notebook案例在ModelArts控制台快速打开、运行以及进行二次开发等操作。开发环境部署使用开发板进行ModelBox AI应用开发有两种方式,一是开发板连接显示器和键盘鼠标,安装Ubuntu桌面,直接在开发板上进行开发;二是使用远程连接工具(如VS Code中的Remote-SSH)从PC端登录开发板进行开发。这里我们推荐第二种方式,因为PC端可以使用功能更丰富、界面更友好的IDE。请参考此案例的开发环境部署先进行环境搭建:应用开发接下来我们会以疲劳驾驶检测demo为例,介绍如何使用ModelBox开发AI应用。1.创建工程SDK提供了工程脚本create.py,可以使用./create.py -h查看脚本帮助:rock@rock-3a:~/yourpath/v1.0.8.21$ sudo ./create.py -h Usage: Create ModelBox project and flowunit NOTE : you must firstly use bellow cmd to create a project in workspace create.py -t server -n your_proj_name {option: -s name, create this project from a solution}, support hilens deployment or create.py -t project -n your_proj_name {option: -s name, create this project from a solution}, generally not use AND : use bellow cmd to create [c++|python|infer] flowunit in this project create.py -t c++ -n your_flowunit_name -p your_proj_name AND : call workspace/your_proj_name/build_project.sh to build your project, call bin/main.sh[bat] to run FINAL: create.py -t rpm -n your_proj_name to package your project (the same folder with create.py) if upload to hilens NOTE: create.py -t editor {option: -i ip or ip:port to start editor server in your config ip:port} NOTE: create.py -t demo to create solutions to runnable demo for ex: create.py -t server -n my_det -s car_det -h or --help:show help -t or --template [c++|python|infer|yolo|project|server|rpm|editor|demo] create a template or package to rpm ... -n or --name [your template name] -p or --project [your project name when create c++|python|infer|yolo] -s or --solution [the solution name when create project] create a project from solution -c or --cfg [flowunit configure json, it's used by UI, you can use it too, but too complicated] -v or --version:show sdk version ModelBox提供了可视化图编排工具:Editor,可以使用./create.py -t editor开启图编排服务:服务默认ip即为192.168.2.111,如需配置其他ip或端口,可以通过-i ip:port参数进行配置。在浏览器输入ip:port/editor即可进入可视化编辑界面,我们点击编排进入工程开发界面,如果进一步了解ModelBox相关内容,可以点击右上角帮助:进入编排界面,点击右上角新建项目:我们在workspace的项目路径下,建立项目名称fatigue_detect,点击确认:从默认的模板中可以看到,我们初始具备了一个http收发单元的默认图:其中,区域1为SDK预置的高性能通用流单元,区域2为可视化编排界面,区域3为对应的图配置文件内容。同时,VS Code对应目录下也出现了fatigue_detect项目:2.创建推理功能流单元接下来,我们通过UI界面创建推理流单元:点击右上角功能单元,创建单元对于面部检测模型,我们将流单元命名为face_detection,模型文件名即为转换好的检测模型名:face_detect.rknn,此模型输入为图像,输出为特征向量,所以我们添加int类型的输入端口与float类型的输出端口。关于开发板的推理流单元创建,在处理类型时我们选择cuda,即为npu推理,推理引擎可选任意一款,目前开发板SDK可以自动进行识别转换。最后将功能单元分组修改为inference,点击确认,即可看到,在左侧inference页签下出现了新添加的推理流单元同时,在VS Code工程model目录下可以看到创建好的推理流单元:类似的,我们创建face_landmark_detection推理流单元:3.创建后处理功能单元除了推理流单元外,疲劳驾驶检测demo还需要一些通用功能单元:面部检测的后处理单元、感兴趣区域(面部检测区域)提取单元、疲劳逻辑判断单元,我们新建三个python功能单元来满足上述需求。对于面部检测的后处理单元,我们希望通过原图和face_detection的两个输出向量解码出面部检测框,所以该单元应该有三个输入。此外,对于画幅中有无检测到面部两种状态,我们希望该功能单元分情况处理,检测到面部时,将面部检测结果送入感兴趣区域提取单元,没有检测到面部时,直接返回,因此功能单元类型选择:IF_ELSE。新建单元如下:同样的,根据输入输出与功能单元状态,我们创建extract_roi和fatigue_detect两个功能单元:4.流程图编排拖拽需要的功能单元全部创建好后,我们可以着手编排流程图,我们编排一个视频处理的图,可以删除不需要的http收发单元:在Generic列表下将虚拟输入单元input和我们刚刚创建的三个功能单元拖入画布:在Image列表下将模型推理需要用到的预处理单元resize拖入画布,因为面部检测模型与面部关键点模型都resize处理,把两个resize单元拖入:值得注意的是,resize单元需要适配模型参数,需要点击该单元进行配置:在Input列表下拖入输入解析单元data_source_parser作为视频流的输入源在Video列表下拖入视频处理需要的单元video_demuxer、video_decoder、video_out:最后,在Inference列表下拖入我们创建的两个推理单元:编排将功能单元按照处理逻辑进行连接:点击上个流单元并拖动箭头可以连接下一个流单元虚拟输入input连接输入解析data_source_parser,解析后送入视频解包video_demuxer与解码单元video_decoder:解码输出送入预处理后可直接进行推理,面部检测输出连接后处理模块,用于提取坐标输入到感兴趣区域,若没检测到面部则跳过面部关键点检测与疲劳驾驶判断:最后,把ROI区域图resize后输入到面部关键点检测,最后把面部关键点输入到疲劳驾驶判断模块给出结果:这样,我们就完成了流程图的编排,可以看到在GraphViz区域也出现了完整的图表述:保存项目,我们转到VS Code每个单元的代码实现进行调整与补充:5.代码补全可视化编排中,创建的推理单元位于项目的model目录下,通用单元位于etc/flowunit目录下,流程图位于graph目录下,可以看到创建的单元与图都已同步过来:其中,我们需要在主流图代码里修改video_decoder需要指定类型:video_decoder [ type=flowunit flowunit=video_decoder device=rknpu deviceid="0" pix_fmt=bgr label="{{<in_video_packet> in_video_packet}|video_decoder|{<out_video_frame> out_video_frame}}" ] 推理单元首先完善推理单元,对于推理功能单元,只需要提供独立的toml配置文件,指定推理功能单元的基本属性即可,目录结构为:[flowunit-name] |---[flowunit-name].toml #推理功能单元配置 |---[model].rknn #模型文件 |---[infer-plugin].so #推理自定义插件ModelBox框架在初始化时,会扫描目录中的toml后缀的文件,并读取相关的推理功能单元信息。[infer-plugin].so是推理所需插件,推理功能单元支持加载自定义插件,开发者可以实现自定义算子。将模型拷入对应文件夹,以face_detection为例我们看一下推理功能单元配置文件:因为推理单元输入为图像,注意修改其输入类型为uint8配置文件中有一些单元类型、模型名称、输入输出的基本配置,可以酌情修改。通用单元Python通用单元需要提供独立的toml配置文件,指定python功能单元的基本属性。一般情况,目录结构为:[FlowUnitName] |---[FlowUnitName].toml |---[FlowUnitName].py |---xxx.py相较于推理单元而言,通用单元不但有配置文件,还需要完善具体的功能代码,以face_detect_post为例,首先是功能单元配置文件:Basic config是一些单元名等基本配置,Flowunit Type是功能单元类型,face_detect_post是一个条件单元,所以可以看到condition为true,此外还有一些展开、归拢等性质,可以在AI Gallery ModelBox)板块下看到更多案例。此外,输入输出type根据实际逻辑可能进行一些修改。接下来,我们查看face_detect_post.py,可以看到创建单元时已经生成了基本接口:# Copyright (c) Huawei Technologies Co., Ltd. 2022. All rights reserved. #!/usr/bin/env python # -*- coding: utf-8 -*- import _flowunit as modelbox class face_detect_postFlowUnit(modelbox.FlowUnit): # Derived from modelbox.FlowUnit def __init__(self): super().__init__() def open(self, config): # Open the flowunit to obtain configuration information return modelbox.Status.StatusCode.STATUS_SUCCESS def process(self, data_context): # Process the data in_data = data_context.input("in_1") out_data = data_context.output("out_1") # yolox_post process code. # Remove the following code and add your own code here. for buffer in in_data: response = "Hello World " + buffer.as_object() result = response.encode('utf-8').strip() add_buffer = modelbox.Buffer(self.get_bind_device(), result) out_data.push_back(add_buffer) return modelbox.Status.StatusCode.STATUS_SUCCESS def close(self): # Close the flowunit return modelbox.Status() def data_pre(self, data_context): # Before streaming data starts return modelbox.Status() def data_post(self, data_context): # After streaming data ends return modelbox.Status() def data_group_pre(self, data_context): # Before all streaming data starts return modelbox.Status() def data_group_post(self, data_context): # After all streaming data ends return modelbox.Status()如果功能单元的工作模式是stream = false时,功能单元会调用open、process、close接口;如果功能单元的工作模式是stream = true时,功能单元会调用open、data_group_pre、data_pre、process、data_post、data_group_post、close接口;用户可根据实际需求实现对应接口。根据单元性质,我们主要需要完善open、process接口: def process(self, data_context): # Process the data in_image = data_context.input("image") in_feat = data_context.input("in_feat") in_score = data_context.input("in_score") has_face = data_context.output("has_face") no_face = data_context.output("no_face") # face_detect_post process code. # Remove the following code and add your own code here. for buffer_img, buffer_feat, buffer_score in zip(in_image, in_feat, in_score): width = buffer_img.get('width') height = buffer_img.get('height') channel = buffer_img.get('channel') img_data = np.array(buffer_img.as_object(), copy=False) img_data = img_data.reshape((height, width, channel)) feat_data = np.array(buffer_feat.as_object(), copy=False) feat_data = feat_data.reshape(896,16) feat_score = np.array(buffer_score.as_object(), copy=False) feat_score = feat_score.reshape(896,1) dets = process_cpu(feat_data, feat_score, self.anchors) if dets.shape[0] > 0: box = [int(dets[0]*width), int(dets[1]*height),int(dets[2]*width),int(dets[3]*height)] box = self.expend(box, height, width) buffer_img.set("bboxes", box) has_face.push_back(buffer_img) else: img_buffer = modelbox.Buffer(self.get_bind_device(), img_data) img_buffer.copy_meta(buffer_img) no_face.push_back(img_buffer) return modelbox.Status.StatusCode.STATUS_SUCCESS可以看到,在open中我们进行了一些参数获取,process进行逻辑处理,输入输出可以通过data_context来获取,值得注意的是输出时我们返回的是图,在检测到手时为图附加了检测框信息,该信息可以被下一单元获取。同样的,完善其余通用功能单元,具体可以参考我们提供的代码。应用运行我们需要准备一个mp4文件拷贝到data文件夹下,我们提供了测试视频fatigue.mp4,然后打开工程目录下bin/mock_task.toml文件,修改其中的任务输入和任务输出配置为如下内容:# 用于本地mock文件读取任务,脚本中已经配置了IVA_SVC_CONFIG环境变量, 添加了此文件路径 ########### 请确定使用linux的路径类型,比如在windows上要用 D:/xxx/xxx 不能用D:\xxx\xxx ########### # 任务的参数为一个压缩并转义后的json字符串 # 直接写需要转义双引号, 也可以用 content_file 添加一个json文件,如果content和content_file都存在content会被覆盖 # content_file支持绝对路径或者相对路径,不支持解析环境变量(包括${HILENS_APP_ROOT}、${HILENS_DATA_DIR}等) [common] content = "{\"param_str\":\"string param\",\"param_int\":10,\"param_float\":10.5}" # 任务输入,mock模拟目前仅支持一路rtsp或者本地url # rtsp摄像头,type = "rtsp", url里面写入rtsp地址 # 其它用"url",比如可以是本地文件地址, 或者httpserver的地址,(摄像头 url = "0") [input] type = "url" url = "../data/fatigue.mp4" # 任务输出,目前仅支持"webhook", 和本地输出"local"(输出到屏幕,url="0", 输出到rtsp,填写rtsp地址) # (local 还可以输出到本地文件,这个时候注意,文件可以是相对路径,是相对这个mock_task.toml文件本身) [output] type = "local" url = "../hilens_data_dir/fatigue.mp4"配置好后在工程路径下执行build_project.sh进行工程构建:rock@rock-3a:~/yourpath/v1.0.8.21/workspace/fatigue_detect$ sudo ./build_project.sh ./build_project.sh: line 26: dos2unix: command not found ./build_project.sh: line 26: dos2unix: command not found ./build_project.sh: line 26: dos2unix: command not found ./build_project.sh: line 26: dos2unix: command not found ./build_project.sh: line 26: dos2unix: command not found ./build_project.sh: line 26: dos2unix: command not found ./build_project.sh: line 26: dos2unix: command not found ./build_project.sh: line 26: dos2unix: command not found build success: you can run main.sh in ./bin folder构建完成后运行项目:rock@rock-3a:~/yourpath/v1.0.8.21/workspace/fatigue_detect$ sudo ./bin/main.sh等待稍许即可以在hilens_data_dir文件夹下看到运行结果:打开mp4文件也可以看到叠加了提醒效果的视频打包部署调试完成后,create.py脚本将应用打包发布,详情请参考的打包部署章节
  • [直播&活动公告] 【2022华为开发者大赛系列直播】如何玩转无人车?华为开发者大赛无人车挑战赛赛题解读来了
    以“创想无限”为主题的2022华为开发者大赛已正式启动作为华为ICT领域的顶级赛事,本次大赛分为云底座和产业两大赛道,包含云应用创新、代码上太空、世界难题、无人车等7大赛事,总奖金额高达500万。从7月开始,华为云将围绕AI、IoT、PaaS、数据库、媒体、容器、数通等领域,陆续举办赛题解读系列直播活动,分享技术干货和实战经验,为参赛团队和选手提供专业技术指导。7月11日,华为开发者大赛无人车挑战赛赛题解读直播重磅开播。本场直播中,华为云无人车挑战赛的技术专家将解读赛题相关的关键技术要点,并现场答疑,指导参赛选手快速上手华为开放技术能力。—赛题背景—本次无人车大赛赛题为“交通信号实例分割”,主要挑战有交通信号灯识别、车道线检测、斑马线检测、限速标志识别、施工标志识别、障碍物检测等,其中交通信号灯、斑马线、限速标志检测算法须基于AI开发平台ModelArts开发。—直播亮点—1.无人车挑战赛的赛题讲解-实例分割-介绍赛事内容、流程、赛题;实例分割属于计算机视觉领域在目标检测、目标识别方面的基础技术,在交通管控、自动驾驶、城市治理等需要进行目标精准识别的领域有极大的应用价值。本次比赛主要考察参赛者理论掌控能力和模型设计开发能力。2.Baseline讲解以及操作演示-ModelArts、obs的使用,数据标注、训练、模型上传的详细说明3.ModelArts打榜常见问题互动答疑-为什么成功运行却没有分数、如何确保自己的模型能顺利运行—直播主题—华为开发者大赛 赛题解读系列直播无人车挑战赛赛题解读—直播时间—2022年7月11日19:00-21:00—报名方式—扫描二维码 立即预约报名↓↓↓↓↓
总条数:7896 到第 页
上滑加载中