【CANN训练营0基础赢满分秘籍】 应用开发深入讲解→端到端案例

1 样例调试

1.1 日志文件

运行应用程序后,若出现报错或异常,需录取日志进一步定位问题。日志文件的默认目录为$HOME/ascend/log。

  • 可通过环境变量指定日志文件的落盘路径
export ASCEND_PROCESS_LOG_PATH=/$HOME/xxx

但需要确保该目录为任意有读写权限的目录。

  • 可通过环境变量移目志打屏显示
export ASCEND_SLOG_PRINT_T0_STDOUT=1

如果使用打屏方式显示日志,也可以在启动应用进程时,通过输出主定向方式将白志保存到指定文件中。例如:/main > log.txt。

1.2 日志格式

image.png

1.3 接口调用逻辑问题

image.png

1.4 软件约束问题

  1. 输入图片格式不支持,JPEG图片解码失败
  2. 注册算子数超过最大规格,模型加载失败
  3. 使用正确的输入图片格式
  4. 按限制使用规定数量的算子
    image.png

1.5 输入数据问题

  1. 输入码流异常,视频解码丢帧/丢包
  2. 输入图片异常,JPEG图片解码失败
  3. 检查异常码流
  4. 检查异常图片
    image.png

2 端到端样例结构

2.1 开发说明

对于CV类的应用开发,一般而言都有如下几个步骤:

  • 样例结构设计
    设计样例的流程编排,为后续步骤做准备。
  • 原始模型及输入输出分析
    分析模型的输入输出,将模型转换为离线om模型。
  • 样例编写
    根据编排好的流程及转换完成的模型进行样例的编写。
  • 样例编译运行
    编写CMakeList,并进行样例编译与运行。
    本章将结合sampleResnetDVPP的样例对流程进行介绍,样例效果如下:
    image.png

2.2 样例结构

  • 模型转换:使用ATC工具将Resnet50.onnx模型转换为离线om模型。
  • 资源初始化:初始化所有资源,包括DVPP初始化、模型初始化等。
  • 输入数据处理:使用DVPP将数据处理到模型需要的大小。
  • 模型推理:便用om模型进行推理。
  • 输出数据处理:对模型推理结果进行处理,该样例是将输出前五置信度的标签进行打印。
  • 资源释放:释放所有资源,包括DVPP及模型资源等。
  • 数据传输:样例运行过程中进行的数据传输动作
    image.png

3 原始模型及输入输出分析

3.1 原始模型输入分析

image.png

3.2 原始模型输出分析

image.png

3.3 数据预处理/后处理分析

为了加快图片处理速度,所以预处理需要使用DVPP,根据前面得到的输入数据信息,预处理需要经过如下步骤:
image.png
其中AIPP的操作需要在模型转换的过程中操作。预处理如图所示进行JpegD和Resize即可。
由模型输出分析可知,输出结果为1000个类别的置信度。所以数据后处理操作如下:

  • 将1000个置信度信息保存下来。
  • 将1000个置信度结果相加。
  • 取出topk的置信度结果并除以总置信度取值〈相当于做一次softmax,将置信度归一化到[0,1]之间,且保证所有置信度相加结果为1)。
  • 输出topk的标签及置信度。

4 样例编写

4.1 模型转换

分析完模型的输入输出,预处理及后处理后,接下来就要使用昇腾CANN提供的ATC工具进行模型转换了。
由前面的分析可以知道,ATC需要进行色域转换、减均值和归一化的操作。同时由于数据并未像pytorch数据处理一样,归一化到[0,1]之间,所以实际数据内容还是[0,255]的。所以AIPP整体需要进行如下处理:

  • 数据需要从YUV专换成RGB格式;
  • 减去的均值mean应该是[0.485255,0.456255,0.406*255];
  • 除去的系数std应该是[0.229255,0.224255,0.225*255];
  • 由于原本的计算公式可抽象为(data-m ean)/std,而在AIPP中计算公式可抽象为(data-m ean)std,所以系数std应该为[1/(0.229255),1/(0.224255),1/(0.225255)];
    image.png

4.2 资源初始化

image.png

4.3 输入数据处理

image.png

4.4 模型推理与数据后处理

image.png

4.5 资源释放

image.png

5 编译运行

image.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

华为账号hw_Zixin 小鱼儿梦想+

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值