文档
注册

样例介绍

获取样例

单击图片解码+抠图缩放+图片编码+同步推理获取样例。

功能描述

该样例主要是基于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 主要接口介绍

功能

对应pyACL模块

pyACL 接口函数

功能说明

资源初始化

初始化

acl.init

初始化pyACL配置。

Device管理

acl.rt.set_device

指定用于运算的Device。

Context管理

acl.rt.create_context

创建Context。

Stream管理

acl.rt.create_stream

创建Stream。

公共接口

acl.get_data_buffer_addr

获取aclDataBuffer类型中的数据的内存地址。

公共接口

acl.get_data_buffer_size_v2

获取aclDataBuffer类型中数据的内存大小,单位Byte。

Context管理

acl.rt.set_context

设置线程的Context。

模型初始化

模型加载与执行

acl.mdl.load_from_file

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

数据类型及操作接口

acl.mdl.create_desc

创建模型描述数据类型。

数据类型及操作接口

acl.mdl.get_desc

获取模型描述数据类型。

数据类型及操作接口

acl.mdl.add_dataset_buffer

向aclmdlDataset中增加aclDataBuffer。

数据类型及操作接口

acl.mdl.create_dataset

创建aclmdlDataset类型的数据。

该数据类型用于描述模型推理时的输入数据、输出数据,模型可能存在多个输入、多个输出,每个输入/输出的内存地址、内存大小用aclDataBuffer类型的数据来描述。

如需销毁aclmdlDataset类型的数据,请参见函数:destroy_dataset

数据类型及操作接口

acl.mdl.get_num_outputs

根据aclmdlDesc类型的数据,获取模型的输出个数。

数据类型及操作接口

acl.mdl.get_output_size_by_index

根据aclmdlDesc类型的数据,获取指定输出的大小,单位为Byte。

媒体数据处理

媒体数据模块-JPEG

acl.media.dvpp_jpeg_decode_async

图形解码。

acl.media.dvpp_jpeg_encode_async

图形编码。

媒体数据模块-VPC

acl.media.dvpp_vpc_crop_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_pic_desc系列接口

设置图片描述相关参数。

数据类型及操作接口

acl.media.dvpp_create_batch_pic_desc

  

数据类型及操作接口

acl.media.dvpp_create_channel

创建图片数据处理的通道,同一个通道可以重复使用,销毁后不再可用。

数据类型及操作接口

acl.media.dvpp_create_channel_desc

创建acldvppChannelDesc类型的数据,表示创建图片数据处理通道时的通道描述信息。

数据类型及操作接口

acl.media.dvpp_create_jpege_config

创建acldvppJpegeConfig类型的数据,表示图片编码配置数据。

如需销毁acldvppJpegeConfig类型的数据,请参见acl.media.dvpp_destroy_jpege_config

数据类型及操作接口

acl.media.dvpp_create_pic_desc

创建acldvppPicDesc类型的数据,表示图片描述信息。

如需销毁acldvppPicDesc类型的数据,请参见acl.media.dvpp_destroy_pic_desc

数据类型及操作接口

acl.media.dvpp_create_resize_config

创建acldvppResizeConfig类型的数据,表示图片缩放配置数据。

如需销毁acldvppResizeConfig类型的数据,请参见acl.media.dvpp_destroy_resize_config

Atlas 200/300/500 推理产品,默认缩放算法为“华为自研的高阶滤波算法”。

Atlas 训练系列产品,默认缩放算法为“华为自研的高阶滤波算法”。

Atlas 推理系列产品(Ascend 310P处理器),默认缩放算法为“业界通用的Bilinear算法”。

Atlas A2训练系列产品/Atlas 800I A2推理产品,默认缩放算法为“业界通用的Bilinear算法”。

Atlas 200I/500 A2推理产品,默认缩放算法为“业界通用的Bilinear算法”。

数据类型及操作接口

acl.media.dvpp_create_roi_config

创建acldvppRoiConfig类型的数据,用于描述某个区域位置的数据。

如需销毁acldvppRoiConfig类型的数据,请参见acl.media.dvpp.destroy_roi_config

数据类型及操作接口

acl.media.dvpp_get_pic_desc

获取指定图片的图片描述信息。

数据类型及操作接口

acl.media.dvpp_get_pic_desc_data

获取图片描述参数:图片数据内存。

数据类型及操作接口

acl.media.dvpp_get_pic_desc_height

获取图片描述参数:原始图片高。

数据类型及操作接口

acl.media.dvpp_get_pic_desc_ret_code

获取图片描述参数:返回码。

数据类型及操作接口

acl.media.dvpp_get_pic_desc_size

获取图片描述参数:图片数据内存大小。

数据类型及操作接口

acl.media.dvpp_get_pic_desc_width

获取图片描述参数:原始图片宽。

数据类型及操作接口

acl.media.dvpp_jpeg_get_image_info

从存放JPEG图片数据的内存中读取JPEG图片的宽、高、颜色通道个数。

该接口会检查图片格式是否支持解码,如果遇到不支持的码流则该接口会返回ACL_ERROR_UNSUPPORTED_JPEG错误码,该错误码的详细描述请参见aclError

数据类型及操作接口

acl.media.dvpp_jpeg_predict_enc_size

根据输入图片描述信息、图片编码配置数据预估图片编码后所需的输出内存的大小。

数据类型及操作接口

acl.media.dvpp_set_jpege_config_level

设置编码配置数据。

数据释放

acl.media.dvpp_destroy_jpege_config

销毁通过acl.media.dvpp_create_jpege_config接口创建的编码配置数据。

数据释放

acl.media.dvpp_destroy_pic_desc

销毁通过acl.media.dvpp_create_pic_desc接口创建的acldvppPicDesc类型的数据。

数据释放

acl.media.dvpp_destroy_batch_pic_desc

销毁通过acl.media.dvpp_create_batch_pic_desc接口创建的acldvppBatchPicDesc类型的数据。

数据释放

acl.media.dvpp_destroy_channel

销毁图片数据处理的通道,只能销毁通过acl.media.dvpp_create_channel接口创建的通道。

数据释放

acl.media.dvpp_destroy_channel_desc

销毁通过acl.media.dvpp_create_channel_desc接口创建的acldvppChannelDesc类型的数据。

数据释放

acl.media.dvpp_destroy_resize_config

销毁通过acl.media.dvpp_create_resize_config接口创建的缩放配置数据

模型推理

模型加载与执行

acl.mdl.execute

执行模型同步推理。

流同步

Stream管理

acl.rt.synchronize_stream

阻塞应用程序运行,直到指定Stream中的所有任务都完成。

数据后处理

数据类型及操作接口

acl.create_data_buffer

创建aclDataBuffer类型的数据。

acl.mdl.get_dataset_buffer

获取aclmdlDataset中的第n个aclDataBuffer。

acl.mdl.get_dataset_num_buffers

获取aclmdlDataset中aclDataBuffer的个数。

数据交互

内存管理

acl.rt.memcpy

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

内存管理

acl.media.dvpp_malloc

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

内存管理

acl.rt.malloc

申请Device上的内存。

内存管理

acl.rt.malloc_host

申请Host上的内存。

公共模块

--

acl.util.ptr_to_numpy

将指针地址数据转换为numpy数组,可以使Python代码直接访问。

--

acl.util.numpy_to_ptr

获取numpy.ndarry数组的内存数据指针地址。

C和Python的数据交互

acl.util.bytes_to_ptr

将bytes对象转换成为void*数据,可以将转换好的数据传递给C函数直接使用。

C和Python的数据交互

acl.util.ptr_to_bytes

将void*数据转换为bytes对象,可以使Python代码直接访问。

资源释放

内存管理

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

实现pyACL去初始化。

数据释放

acl.destroy_data_buffer

销毁aclDataBuffer类型的数据。

此处仅销毁aclDataBuffer类型的数据,调用acl.create_data_buffer接口创建aclDataBuffer类型数据时传入的data的内存需由用户自行释放。

数据释放

acl.mdl.destroy_dataset

销毁通过acl.mdl.create_dataset接口创建的aclmdlDataset类型的数据。

数据释放

acl.mdl.destroy_desc

销毁通过acl.mdl.create_desc接口创建的aclmdlDesc类型的数据。

目录结构

目录结构如下所示。

vpc_jpeg_resnet50_imagenet_classification
├──scripts
│ ├── host_version.conf //版本号配置文件。
│ └── testcase_300.sh //运行脚本。
├──src
│ ├── acl_dvpp_process.py //媒体数据处理。
│ ├── acl_model_process.py //模型运行文件。
│ ├── constant.py //常量定义。
│ └── main.py //运行文件,流程逻辑控制。
├── data
│ ├── fusion_result.json //atc转化后生成,记录融合算子信息。
│ └── vdec_h265_1frame_rabbit_1280x720.h265 //用户待处理的视频文件,由用户自行获取。
├── caffe_model //需要用户部署。
│ ├── aipp.cfg //模型的配置数据。
│ ├── resnet50.caffemodel //ResNet-50模型。
│ └── resnet50.prototxt // ResNet-50模型的网络文件。
└── model //推理模型转换后生成的目录。
  └── resnet50_aipp.om //转换后的模型文件。
搜索结果
找到“0”个结果

当前产品无相关内容

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