更新时间:2021-03-18 GMT+08:00
分享

开发场景分析

开发场景

开发图片分类应用,对2张分辨率为1024*683的*.jpg图片分类。

场景分析

您可从以下几方面入手分析该应用需包含哪些功能,这些功能点对应哪些ACL接口。

功能列表

实现分析

涉及的命令或关键接口

模型推理

本文介绍的场景是图片分类,因此需要选取开源的分类网络,此处选择的是Caffe resnet-50网络,将开源的resnet-50网络转换为适配昇腾AI处理器的离线模型(*.om文件),使用该离线模型推理图片所属的类别。

  • 使用ATC(Ascend Tensor Compiler)工具将resnet-50网络转换为*.om文件(适配昇腾AI处理器的离线模型)。

    请参见ATC工具使用指南

  • 模型加载

    acl.mdl.load_from_file_with_mem

  • 模型执行

    acl.mdl.execute

  • 模型卸载

    acl.mdl.unload

数据预处理(指解码/抠图/缩放/编码/色域转换等)

resnet-50网络对输入图片宽高的要求为224*224,且要求输入图片格式为RGB。

但是输入图片的*.jpg、宽高是1024*683,与resnet-50网络的输入要求不一致,因此需要先将*.jpg图片解码成YUV420SP格式的图片,再缩放成宽高为224*224的图片,最后再通过色域转换将YUV420SP格式的图片转换成RGB格式的图片。

  • 解码、缩放
    • acl.media.dvpp_create_channel
    • acl.media.dvpp_jpeg_decode_async
    • acl.media.dvpp_vpc_resize_async
    • acl.media.dvpp_destroy_channel
  • 色域转换

    使用ATC(Ascend Tensor Compiler)工具转换模型时,通过--insert_op_conf参数配置色域转换,将色域转换的各参数值保存在*.om文件中,在模型执行时,进行色域转换。

    请参见ATC工具使用指南中的特性配置>AIPP配置

数据后处理

处理模型推理的结果,通过调用Cast和ArgMaxD两个单算子从推理结果中查找每张图片最大置信度的类别标识。

调用算子Cast将推理结果的数据类型从float32转成float16,再调用ArgMaxD算子从推理结果中查找最大置信度的类别标识。

  • 将Cast和ArgMaxD两个单算子的定义文件*.json编译成适配昇腾AI处理器的离线模型(*.om文件),用于验证单算子的运行。

    请参见ATC工具使用指南

  • 算子执行:acl.op.execute

数据传输

涉及将Host的图片数据传输到Device,供Device处理数据时使用,完成数据处理后,Device需将处理结果传回Host。

内存拷贝:acl.rt.memcpy

分享:

    相关文档

    相关产品

close