基于HiLens Studio开发行人检测与跟踪应用

举报
EI_DTSE_feige 发表于 2021/07/31 10:09:34 2021/07/31
【摘要】 使用华为云HiLens Studio,简单的几个步骤,就可以实现简单的行人检测与跟踪应用。通过创建技能项目、转换原始模型、推理代码解读、运行技能等,能够了解行人检测算法、检测与跟踪技能代码、学会如何使用HiLens Studio创建技能并成功实现技能应用。

本博客指导用户使用华为云HiLens的HiLens Studio 平台 ,实现简单的行人检测与跟踪应用。通过创建技能项目、转换原始模型、推理代码解读、运行技能等步骤,能够了解行人检测算法、检测与跟踪技能逻辑、学会如何使用HiLens Studio创建技能并成功实现技能应用等。

1 创建技能项目

步骤 1 点击进入 HiLens Studio 点击 “HiLens管理控制台”页面的“技能开发>HiLens Studio”,打开“HiLens StudioGetting Started”页面。

步骤 2 在“HiLens StudioGetting Started”页面, 点击 “New Project” 按钮, 弹出“选择模板创建HiLens Studio项目”对话框。

步骤 3 在 “选择模板创建HiLens Studio项目”对话框中, 点击 "Pedestrian_Detection_and_Tracking"模板(Python语言)的“新建技能”。

studio1.jpg

步骤 4 在“创建技能”页面 可以修改技能的基本信息,如名称、版本号,可以为技能添加图标和描述,也可以不 改任何信息,直接点击“确定”。

将会自动跳转到HiLens Studio主页。

2 转换原始模型

在model文件夹下预置的是TensorFlow版本的行人检测模型,并不能在HiLens上直接进行使用,所以要将原始的TensorFlow模型转换为HiLens可以支持的Ascend模型。

步骤 1 点击 “Terminal>New Terminal”,打开终端。

步骤 2      复制以下命令在打开的终端中执行,如下图所示( 图片中 红色下划线 即为下方需要执行的模型转换 命令):

/opt/ddk/bin/aarch64-linux-gcc7.3.0/omg --model=./model/yolo3_resnet18_pedestrian_det.pb --input_shape='images: 1,352,640,3' --framework=3 --output=./model/pedestrian_det --insert_op_conf=./model/aipp.cfg

以上命令使用华为Ascend芯片的OMG(Offline Model Generator,离线模型生成器)工具,将模板中提供的原始TensorFlow版本的行人检测模型转换为HiLens可以支持的Ascend模型。其中的参数解释如下:

--model: 原始模型文件的路径;

--input_shape: 原始模型输入节点的名称与shape;

--framework: 原始模型的框架类型,0代表Caffe,3代表TensorFlow;

--output: 转换后的模型输出路径(包含文件名,会自动以“.om”后缀结尾);

--insert_op_conf: 对模型输入数据进行预处理的配置文件路径,即aipp配置文件。

本案例中的aipp配置文件内容如上所示,其中指定了转换后模型的输入数据格式为uint8类型的RGB格式图像(input_format),输入图像的尺寸为640x352(src_image_size_w/h),3通道数据的方差(var_reci_chn_0/1/2 )为 0.003922 (1/ 255 , 指的是输入数据除以255)。使用了aipp配置文件 ( aipp配置文件不是必须 的,但是加了这个文件推理性能有很大优化 ) 转换后的模型,某些预处理操作(如色域转换、归一化等)会内置在模型中,在推理时性能会更优。

步骤 3      成功后会在model文件夹下出现华为HiLens支持推理的.om文件。

本案例中使用的yolo3_resnet18_pedestrian_det.pb模型,是使用来自于ModelArts AI Gallery的“物体检测YOLOv3_ResNet18”算法训练得到的,您可以在华为云学院沙箱实验室列表中,搜索“基于ModelArts实现行人检测模型训练和部署”实验名,然后点击进入该实验,即可按照实验文档训练得到该模型,训练好的模型会存储在OBS中。

注: Studio从ModelArts导入模型操作

单击 “File> Import File (s) from OBS

找到 您想要导入的模型 在OBS中的具体位置 单击 “import”,模型将会出现在 当前工程目录 下。

3 准备测试数据

步骤 1      本次实验中,我们在test目录中预置了测试视频camera0.mp4,供用户使用。

用户也可以上传自己的视频进行测试,只需在文件目录区的空白处点击右键,选择“Upload Files…”,即可将本地的文件上传至HiLens Studio。

4 推理代码解读

在“src>main>python ” 的main.py 文件的代码中,主要用到 Yolo3和Tracker两个类。

步骤 1      首先会利用我们转换的pedestrian_det.om,创建一个检测模型Yolo3类的实例person_det。

步骤 2      person_det会使用Yolo3类的infer函数,进行模型推理并返回检测结果。

步骤 3 接下来会使用Yolo3类的draw_boxes函数,在返回检测结果的图像上画出检测框。

步骤 4 main.py初始化跟踪器。即连续3s匹配到的目标才创建跟踪对象,允许跟踪对象丢失的最大时间3s,跟踪对象匹配时的最小iou阈值为0.5(iou衡量了两个边界框重叠地相对大小)。

步骤 5 利用Tracker类的update函数进行多目标跟踪,再用draw_tracking_object函数在多目标的检测结果中画出跟踪框。

5 运行技能 —— 使用视频文件

步骤 1 打开“src>main>python”下的main.py文件。

步骤 2 选择上方导航栏的 中的“Read Stream from File ”,将使用工程目录中的视频文件进行推理测试,单击 执行推理代码。

步骤 3 在右侧的“Video Output” 看到视频的行人检测结果。

步骤 4 取消main.py脚本中tracker相关代码的注释。

步骤 5 选择上方导航栏的 中的“Read Stream from File ”,单击 执行推理代码。

步骤 6 在右侧的“Video Output” 看到视频的行人检测与跟踪结果。

6 关闭 HiLens Studio

步骤 1 点击 “File>Shutdown HiLens Studio”出现对话框。

步骤 2 点击 “Shutdown HiLens Studio”对话框的“OK”,退出HiLens Studio。



想了解更多的AI技术干货,欢迎上华为云的AI专区,目前有AI编程Python等六大实战营供大家免费学习。(六大实战营link:http://su.modelarts.club/qQB9)

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

举报
请填写举报理由
0/200