导语:在华为云平台上线的Modelarts模型训练平台结合华为智能终端产品Hilens kit。对Hilens Kit进行开发,实现产品的快速使用以及功能的实现。
自从2020年疫情开始,使得人与人的接触变得更加不方便,间接促使了人工智能产业与互联网技术的发展。在许多人与人之间交互的工作变得不易,而人机交互的发展前景变得更加的开阔。许多事情无法面对面进行交流完成,智能终端的出现变得尤为重要。
华为推出的智能终端Hilens Kit能实现很多功能,结合ModelArts云模型训练平台使得终端识别准确率更高,以及用户的上手难度变得更为简单。使用华为云的在线云训练平台对用户的电脑的配置要求变得更为宽泛。并且用户准备的数据集的数量越多,识别精度就会就会更加准确。同时使用华为云模型训练平台,在AI Gallery中有很多物体检测算法,可以直接订阅使用不需要用户自行编写,使得受众人群更加广泛。同时华为云平台也退出很多的已经训练后的模型,建立项目,导入Hilens Kit中即可直接使用。大大方便了用户。同时华为云平台也支持在线编程。内置Hilens studio编译器,支持在线编译,同时支持网络通信协议,使得终端与PC端可以实时同步日志,了解设备的运行情况。
接下来简单介绍一下使用华为云模型训练平台ModelArts进行模型训练以及模型导入的步骤及注意事项:
本次使用华为云平台提供的人脸识别的样例,介绍从模型训练到查看技能效果,新建一个全新技能的全流程。
1.已注册华为云账号,且账号不能处于欠费或冻结状态。
2.手边已有Hilens Kit 终端设备,且成功注册至华为Hilens控制台。
3.登录OBS服务,创建通和文件夹,用于存放样例的训练数据。
在华为云平台中的公共OBS桶中已经提供了用于人脸识别的训练数据,可用来进行模型训练,如若想开发各自集体的特殊人脸数据,可自行使用Hilens Kit 进行数据的采集与整理。数据采集的代码需要自行编写。
若使用公共数据集,可单击示例数据下载链接,将人脸识别的示例数据下载至本地。同时解压压缩包。
然后可参考华为云平台提供的参考文档。利用OBS Browser+工具将解压后的文件夹中的数据上传至在OBS中提前建立好的桶。
1.登录ModelArts管理控制台,完成访问权限配置。
2.在左侧栏中选择“数据管理>数据集”;
3.在数据集管理页面,单击“创建数据集”。在“创建数据集”页面,“数据集输入位置”选择数据中上传的数据存储目录(OBS路径),需选择到具体图片存储的父目录。“数据集输出位置”,请指定一个空目录,且此目录不能是数据来源目录下的子目录。“标注类型”选择“图像分类”。

4.参数配置好后,点击创建,完成数据集的创建。
在管理页面中,等待数据同步。之后就要进行数据集的标注,有两种标注方式,人工标注和智能标注。

图 数据信息人工标注
用户完成数据标注后返回数据集概览页面,当显示图片已全部标注时,表示数据已同步完成。

图 标注进度展示
在数据集管理页面,单击“发布”,在弹出窗口与中,根据页面提示进行配置,由于本样例使用的算法,必须使用切分的数据集进行训练,因此训练验证比例的参数必须设置,建议设置为0.8或0.9,表示训练集与验证集的比例为8:2或9:1.建议选中“开启难例属性”,方便算法自动针对难例自动调优,提升难例筛选结果。

图 发布数据集
ModelArts模型训练平台为物体检测提供大量算法,用户可前往AI Gallery,订阅所需算法,然后同步至ModelArts中。下面所使用的人脸检测算法为“YOLO3_ResNet18”为例进行介绍。
注意:若模型需要导入Hilens Kit进行使用,所订阅的算法为物体检测并带有“Ascend310推理”字样。
1.登录ModelArts管理控制台,在左侧菜单栏中选择“AI Gallery”。进入新版的AI Gallery。
2.在AI Gallery的搜索框中输入“YOLO3_ResNet18”,查找对应算法。

图 搜索并选择算法
3.单击算法进入详情页,单击订阅,更具页面提示完成订阅。此算法有ModelArts官方提供,且目前免费开放。订阅算法完成后,页面会显示已订阅。
4. 单击商品详情页的“前往控制台”,此时弹出“选择云服务区域”对话框,选择 ModelArts 对应的区域,然后再单击“确定”。页面将自动跳转至 ModelArts 的“算法管理>市场订阅”中同步对应的算法。

图 选择云服务区域
5.在ModelArts管理控制台的算法管理页面,算法将自动同步至ModelArts中。
6.若需要使用其他算法可重复前面的步骤,未同步的算法无法直接用于创建训练作业。
1. 进入 ModelArts 管理控制台,单击左侧导航栏“训练管理>训练作业”, 进入“训练作业”页面。
2. 单击“创建”,进入“创建训练作业”页面。
3. 在“创建训练作业”页面,填写训练作业相关参数,然后单击“下一步”。
a. 在基本信息区域,“计费模式”和“版本”为系统自动生成,不需修改。用户可自行更改“名称”及“描述”。

图 训练作业信息
b. 在“算法来源”,选择“算法管理”,单击“算法名称”右侧的“选 择”,在弹出框中,选择“我的订阅”的算法中“YOLOv3_ResNet18”算法。
c. 按表 4 设置“训练输入”、“训练输出”、“调优参数”。

图 训练作业详细参数
d. 在资源设置区域,选择“公共资源池”,并选择一个“规格”,建议选择一个 GPU 规格,运行效果更佳,“计算节点个数”设置为“1”。
e. 完成信息填写,可选择是否保存作业参数,并单击“下一步”。
4. 在“规格确认”页面,确认填写信息无误后,单击“提交”。
5. 在“训练作业”管理页面,可以查看新建训练作业的状态。训练作业的创建和运行需要一些时间,当状态变更为“运行成功”时,表示训练作业创建完成。
用户可以单击训练作业的名称,可进入此作业详情页面,了解训练作业的“配置信息”、“日志”、“资源占用情况”和“模型评估”等信息,帮助用户改进模型。在“训练输出位置”所在的 OBS 路径中,可以获取到生成的模型文件。
1. 在 ModelArts 管理控制台中,选择左侧导航栏的“模型管理>压缩/转换”,进入模型转换列表页面。
2. 单击左上角的“创建任务”,进入任务创建任务页面。
3. 在“创建任务”页面,按表 6 填写相关信息,如图 21 所示。在算法描述页面会有各参数的推荐值。

图 官方提供的模型转换参数
4. 任务信息填写完成后,单击右下角“立即创建”。
创建完成后,系统自动跳转至“模型压缩/转换列表”中。刚创建的转换任务将呈现在界面中,其“任务状态”为“初始化”。任务执行过程预计需要几分 钟到十几分钟不等,请耐心等待,当“任务状态”变为“成功”时,表示任务运行完成并且模型转换成功。
如果“任务状态”变为“失败”,建议单击任务名称进入详情页面,查看日志信息,根据日志信息调整任务的相关参数并创建新的转换任务;若因网络不稳而导致转换失败,重新转换即可
1. 登录华为 Hilens 管理控制台,在左侧导航栏中选择“技能开发>模型管理”,进入“模型管理”页面。
说明:华为 Hilens 控制台技能开发所在的区域应和在 ModelArts AI Gallery 订阅算法 的区域一致。
2. 在“模型管理”页面,单击右上角的“导入(转换)模型”。
3. 在“导入模型”页面,填写参数,信息确认无误后单击“确定”完成导入。
4. 模型导入后,将进入“模型管理”页面,您导入的模型可从列表中查看模型状态,导入成功后模型“状态”为“导入成功”。
1. 在华为 Hilens 管理控制台左侧导航栏中选择 HiLens Studio(Beta)。
2. 点击新建技能。

图 新建Hilens技能项目
3. 在“创建技能”页面,在“技能模板”中选择“使用空模板”后,填写基本信息和技能内容。

图 基本信息
基本信息填写完成后,您可以在界面右侧查看其配置参数值,如果某个字段填写错误,在右侧会显示一个小红叉。
4. 确认信息无误后,单击“确定”完成技能创建。
5. 代码编辑。使用某些算法训练的模型转换完成后会生成 hilens 文件夹,其中包含相应的程序框架。在 HiLens Studio 中打开技能后,将此文件夹中的文件导入相应位置。

图 代码文件位置
完成后,您可以执行发布操作,将技能发布至技能市场;您也可以安装技能至设备,并查看设备使用技能效果。
同时你可以在技能市场发布你创建好的技能,供他人使用。同时你也可以在技能市场中选择你想要使用的已经做好的技能,这样能更好更快的完成你的开发任务。
1. 在“技能开发>技能管理”页面,选择已开发的的技能并用 Studio 打开。
2. 勾选右侧已注册且状态在线的设备,单击“安装”,安装成功后单击“确定”,完成安装技能操作。
安装过程中,华为 Hilens 管理控制台会将技能包下发到设备。下发技能包需要一段时间,可以从进度条中看到技能安装进度,下发完成后“进度”栏会提示“安装成功”。
安装成功后,您可以启动技能查看技能输出数据。
1. 使用 HDMI 视频线缆连接 Hilens Kit 视频输出端口和显示器。
2. 单击左侧导航栏“设备管理>设备列表”,进入“设备列表”页面。
3. 单击已注册设备的“技能管理”,查看技能状态已安装的人脸检测技能状态为“停止”,单击操作列的“启动”,并单击“确定”,确定启动技能运行在端侧设备上。等待一会,当状态变为“运行中”,则技能成功运行在端侧设备上。
技能处于“运行中”状态时,您可以通过显示器查看技能输出的视频数据,此样例所开发的人脸检测技能可识别人员信息,技能输出的视频中会用方框标记出人像位置,并标记出人员信息。
我正在学习如何使用Nokogiri,根据这段代码我遇到了一些问题:require'rubygems'require'mechanize'post_agent=WWW::Mechanize.newpost_page=post_agent.get('http://www.vbulletin.org/forum/showthread.php?t=230708')puts"\nabsolutepathwithtbodygivesnil"putspost_page.parser.xpath('/html/body/div/div/div/div/div/table/tbody/tr/td/div
我有一个Ruby程序,它使用rubyzip压缩XML文件的目录树。gem。我的问题是文件开始变得很重,我想提高压缩级别,因为压缩时间不是问题。我在rubyzipdocumentation中找不到一种为创建的ZIP文件指定压缩级别的方法。有人知道如何更改此设置吗?是否有另一个允许指定压缩级别的Ruby库? 最佳答案 这是我通过查看rubyzip内部创建的代码。level=Zlib::BEST_COMPRESSIONZip::ZipOutputStream.open(zip_file)do|zip|Dir.glob("**/*")d
类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc
很好奇,就使用rubyonrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提
假设我做了一个模块如下:m=Module.newdoclassCendend三个问题:除了对m的引用之外,还有什么方法可以访问C和m中的其他内容?我可以在创建匿名模块后为其命名吗(就像我输入“module...”一样)?如何在使用完匿名模块后将其删除,使其定义的常量不再存在? 最佳答案 三个答案:是的,使用ObjectSpace.此代码使c引用你的类(class)C不引用m:c=nilObjectSpace.each_object{|obj|c=objif(Class===objandobj.name=~/::C$/)}当然这取决于
我正在尝试使用ruby和Savon来使用网络服务。测试服务为http://www.webservicex.net/WS/WSDetails.aspx?WSID=9&CATID=2require'rubygems'require'savon'client=Savon::Client.new"http://www.webservicex.net/stockquote.asmx?WSDL"client.get_quotedo|soap|soap.body={:symbol=>"AAPL"}end返回SOAP异常。检查soap信封,在我看来soap请求没有正确的命名空间。任何人都可以建议我
关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。
我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t
我想将html转换为纯文本。不过,我不想只删除标签,我想智能地保留尽可能多的格式。为插入换行符标签,检测段落并格式化它们等。输入非常简单,通常是格式良好的html(不是整个文档,只是一堆内容,通常没有anchor或图像)。我可以将几个正则表达式放在一起,让我达到80%,但我认为可能有一些现有的解决方案更智能。 最佳答案 首先,不要尝试为此使用正则表达式。很有可能你会想出一个脆弱/脆弱的解决方案,它会随着HTML的变化而崩溃,或者很难管理和维护。您可以使用Nokogiri快速解析HTML并提取文本:require'nokogiri'h
我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po