文档
注册

样例介绍

获取样例

单击Gitee,进入Ascend samples开源仓,详细参见README中的“版本说明”下载配套版本的sample包,从“python/level2_simple_inference/1_classification/vpc_jpeg_resnet50_imagenet_classification”目录下获取vpc_jpeg_resnet50_imagenet_classification样例。

功能描述

该样例主要是基于Caffe ResNet-50网络(单输入、单Batch)实现图片分类的功能。

根据运行应用的入参,该样例可实现以下功能:

  • 将*.jpg格式的解码成YUV420SP NV12格式的输入图片,缩放,再进行模型推理,得到推理结果后,处理推理结果,输出top5置信度。
  • 将YUV420SP NV12格式的输入图片,抠图,再进行模型推理,得到推理结果后,处理推理结果,输出top5置信度。
  • 将YUV420SP NV12格式的输入图片,抠图贴图,再进行模型推理,得到推理结果后,处理推理结果,输出top5置信度。
  • 将YUV420SP NV12格式的输入图片,编码为jpg格式的图片。
  • 将YUV420SP NV12格式的输入图片(分辨率8192*8192)缩放,得到4000*4000。
  • 将YUV420SP NV12格式的输入图片,进行批量抠图。
  • 将YUV420SP NV12格式的输入图片,进行批量抠图粘贴。

主要接口

主要接口如表1所示。

表1 主要接口介绍

功能

对应ACL模块

ACL 接口函数

功能说明

资源初始化

初始化

acl.init

初始化ACL配置。

Device管理

acl.rt.set_device

指定用于运算的Device。

Context管理

acl.rt.create_context

创建Context。

Stream管理

acl.rt.create_stream

创建Stream。

算子加载与执行

acl.op.set_model_dir

加载模型文件的目录。

模型初始化

模型加载与执行

acl.mdl.load_from_file

从*.om文件加载模型到device侧。

数据类型及操作接口

acl.mdl.create_desc

创建模型描述数据类型。

数据类型及操作接口

acl.mdl.get_desc

获取模型描述数据类型。

数据预处理

媒体数据模块-JPEG

acl.media.dvpp_jpeg_decode_async

图形解码。

acl.media.dvpp_jpeg_encode_async

图形编码。

媒体数据模块-VPC

acl.media.dvpp_vpc_crop_async

抠一张子图。

acl.media.dvpp_vpc_resize_async

将输入图片缩放到输出图片大小。

acl.media.dvpp_vpc_crop_and_paste_async

抠图并粘贴到输出图片。

acl.media.dvpp_vpc_batch_crop_async

抠多张子图。

acl.media.dvpp_vpc_batch_crop_and_paste_async

抠多张子图并粘贴到输出图片。

数据类型及操作接口

acl.media.dvpp_create_roi_config

创建图片框区域配置。

acl.media.dvpp_set_roi_config系列接口

设置图片框区域配置参数。

acl.media.dvpp_set_pic_desc系列接口

设置图片描述相关参数。

模型推理

模型加载与执行

acl.mdl.execute

执行模型同步推理。

数据后处理

数据类型及操作接口

acl.op.create_attr

创建aclopAttr类型的数据。

acl.create_tensor_desc

创建aclTensorDesc类型的数据。

acl.get_tensor_desc_size

获取tensor描述占用的空间大小。

acl.create_data_buffer

创建aclDataBuffer类型的数据。

数据交互

内存管理

acl.rt.memcpy

数据传输,Host->Device或Device->Host。

内存管理

acl.media.dvpp_malloc

分配内存给Device侧媒体数据处理时使用。

内存管理

acl.rt.maclloc

申请Device上的内存。

内存管理

acl.rt.malloc_host

申请Host上的内存。

单算子推理

算子加载与执行

acl.op.execute

异步加载并执行指定的算子。

公共模块

--

acl.util.ptr_to_numpy

指针转numpy类型数据。

--

acl.util.numpy_to_ptr

numpy类型数据转指针。

资源释放

内存管理

acl.rt.free

释放Device上的内存。

内存管理

acl.media.dvpp_free

通过acl.media.dvpp_malloc接口申请的内存。

内存管理

acl.rt.free_host

释放Host上的内存。

模型加载与执行

acl.mdl.unload

卸载模型。

Stream管理

acl.rt.destroy_stream

销毁Stream。

Context管理

acl.rt.destroy_context

销毁Context。

Device管理

acl.rt.reset_device

复位当前运算的Device,回收Device上的资源。

去初始化

acl.finalize

实现ACL去初始化。

目录结构

目录结构如下所示。

resnet50_imagenet_classification
├──src
│ ├── acl_dvpp.py //图片缩放实现文件。
│ ├── acl_model.py //模型推理实现文件。
│ ├── acl_sample.py //运行文件。
│ ├── acl_util.py //工具类函数实现文件。
│ ├── acl_vdec.py //视频解码实现文件。
│ └── constant.py //常量定义。
├── data
│ └── vdec_h265_1frame_rabbit_1280x720.h265 //用户待处理的视频文件,由用户自行获取。
├── caffe_model
│ ├── aipp.cfg
│ ├── resnet50.caffemodel //resnet50模型。
│ └── resnet50.prototxt // resnet50模型的网络文件。
└── model
  └── resnet50_aipp.om //推理模型。
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词