【CANN训练营】玩转CANN目标检测与识别一站式方案——学习笔记一(初体验)
一、前言:
样例提供了一个框架,让高阶的应用,简单的搞起来!!!这是本课程的出发点和高光点!!!
这是CANN训练营2022年第2期的高阶班的课程。将目标检测(yolov3)和颜色分类(CNN模型),串接起来使用,实现车辆的检测和颜色分类。这是一个覆盖多场景的高性能AI推理应用样例。
课程地址:https://www.hiascend.com/zh/developer/courses/detail/1532295229381009410
代码仓:https://gitee.com/ascend/samples
模型推理应用的主要流程是:模型转换、输入预处理、推理、输出预处理。模型推理应用的痛点在于(个人理解):
1)AscendCL语言提供的接口比较底层,使用起来有些复杂,而且代码量大。申请资源,释放资源各来一套,注意顺序哈!!
2)模型的输入输出不清楚。
3)为了提高NPU的利用率,必然要用到多线程,而多线程编程有一定的技术门槛。
更正式的说法是:
体验过程中发现了三个问题:——案例在迭代完善中,下述问题存在于2022/7/19的版本中。
- 当device_num*RtspNumPerDevice >22时,貌似不是每个device最多22,而是所有所有device的总数不超过22,不知道是代码问题,还是硬件的限制;另外程序会报错,但最终显示成功。建议在读入参数时做检查,有问题报错,不进行后续操作。——已提ISSUE
- 如果同一个Device设置超过1个presentagent时,显示重合。——有人已提过Issue,不重复提交Issue
- 设置presentagent,放置“presentagent”的位置,不能超过device_num,否则会报错。比如device_num=3,那么presentagent放置的位置,就不要超过第3个(从0开始,即不超过[options_param_2]),否则报错。——有人已提过类似Issue(单device),原理类似,不重复提交Issue
报错如下:
二、体验内容:
上图是这个样例的特性。前四项特性可以直接通过样例直接体验。
1、多输入格式:
支持图片、MP4离线视频、RTSP视频流,在“params.conf”文件中,对“inputType”进行设置即可,并提前将素材下载到data目录。体验了前两种。
2、多结果展示:
支持Web前端在线显示、图片、视频、打屏方式显示,在“params.conf”文件中,对“outputType”进行设置。
3、多模型串接:
案例是将yolov3目标检测+cnn颜色分类两个模型串接起来使用。
4、多路多线程:
三、实际操作
1、申请ECS、使用镜像创建样例的运行环境。
体验环境:为了更好的体验多AI处理器,申请了4个310芯片的ECS
CANN版本:5.1.RC2.alpha005
2、下载样例
参考样例的ReadMe的“下载samples仓源码”
https://gitee.com/ascend/samples/tree/master/cplusplus/level3_application/1_cv/detect_and_classify#开发环境与运行环境合设场景
3、下载模型并转换、下载图片和视频数据
4、编译
5、设置参数
在“params.conf”里设置。
6、Presentagent设置
1)设置配置文件“scripts/present_start.conf"
2)启动Presentagent服务
3)在ECS上,将服务端口开放出来
4)网页访问
7、运行和结果查看
运行信息打印在屏幕上;图片和视频存放在out/output目录下;通过网页查看设置成“Presentagent”的结果。
- 点赞
- 收藏
- 关注作者
评论(0)