运行应用(昇腾310 AI处理器昇腾910 AI处理器

模型转换

  1. 以HwHiAiUser(运行用户)登录开发环境。
  2. 参见ATC工具使用指南中的ATC工具使用环境搭建,获取ATC工具并设置环境变量。
  3. 准备数据。

    从以下链接获取ResNet-50网络的权重文件(*.caffemodel)、模型文件(resnet50.prototxt),并以HwHiAiUser(运行用户)将获取的文件上传至开发环境的“vpc_jpeg_resnet50_imagenet_classification/caffe_model ”目录下。

    • 从gitee上获取:单击Link,查看README.md,查找获取原始模型的链接。
    • 从GitHub上获取:单击Link,查看README.md,查找获取原始模型的链接。

  4. 将ResNet-50网络转换为适配昇腾AI处理器的离线模型(*.om文件),转换模型时,需配置色域转换参数,用于将YUV420SP格式的图片转换为RGB格式的图片。

    切换到“vpc_jpeg_resnet50_imagenet_classification”目录,执行如下命令。Ascendxxx为使用的昇腾AI处理器型号,请用户自行替换。

    atc --model=caffe_model/resnet50.prototxt --weight=caffe_model/resnet50.caffemodel --framework=0 --output=model/resnet50_aipp --soc_version=Ascendxxx --insert_op_conf=caffe_model/aipp.cfg
    • --output参数:生成的resnet50_aipp.om文件存放在“vpc_jpeg_resnet50_imagenet_classification/model”目录下。
    • 使用atc命令时用户需保证对vpc_jpeg_resnet50_imagenet_classification目录有写权限。

  5. 以运行用户将开发环境的样例目录及目录下的文件上传到运行环境。

运行应用

  1. 登录运行环境。
  2. 准备输入图片。 请从以下链接获取该样例的输入图片,并以运行用户将获取的文件上传至开发环境的“vpc_jpeg_resnet50_imagenet_classification/data”目录下。如果目录不存在,需自行创建。

    https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/models/aclsample/dvpp_vpc_8192x8192_nv12.yuv

    https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/models/aclsample/persian_cat_1024_1536_283.jpg

    https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/models/aclsample/wood_rabbit_1024_1061_330.jpg

    https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/models/aclsample/wood_rabbit_1024_1068_nv12.yuv

  3. 参照环境变量配置完成运行环境的配置。
  4. 在vpc_jpeg_resnet50_imagenet_classification路径下请用户根据场景选择对应的命令执行:

    执行解码+缩放+推理:
    python3 ./src/main.py --images_path="./data/wood_rabbit_1024_1061_330.jpg" --dvpp_type=0 --image_type='jpg'
    执行抠图:
    python3 ./src/main.py --images_path="./data/wood_rabbit_1024_1068_nv12.yuv" --dvpp_type=1 --image_type='yuv'
    执行抠图粘贴:
    python3 ./src/main.py --images_path="./data/wood_rabbit_1024_1068_nv12.yuv" --dvpp_type=2 --image_type='yuv'
    执行编码:
    python3 ./src/main.py --images_path="./data/wood_rabbit_1024_1068_nv12.yuv" --dvpp_type=3 --image_type='yuv'

    8k缩放:

    将data路径下dvpp_vpc_8192x8192_nv12.yuv文件名修改为dvpp_vpc_8192_8192_nv12.yuv。
    python3 ./src/main.py --images_path="./data/dvpp_vpc_8192_8192_nv12.yuv" --dvpp_type=4 --image_type='yuv'
    执行批量抠图:
    python3 ./src/main.py --images_path="./data/wood_rabbit_1024_1068_nv12.yuv" --dvpp_type=5 --image_type='yuv' --in_batch_size=1 --out_batch_size=8
    执行批量抠图粘贴:
    python3 ./src/main.py --images_path="./data/wood_rabbit_1024_1068_nv12.yuv" --dvpp_type=6 --image_type='yuv' --in_batch_size=1 --out_batch_size=8

  5. 执行成功后,在屏幕上的关键提示信息示例如下(以执行批量抠图粘贴为例)

    Using device id:0
    model path:./model/resnet50_aipp.om
    images path:./data/wood_rabbit_1024_1068_nv12.yuv
    result path:./vpc_out
    dvpp type:6
    
    [Sample] init resource stage:
    [Sample] init resource stage success
    [Model] class Model init resource stage:
    [Model] create model output dataset:
    [Model] create model output dataset success
    [Model] class Model init resource stage success
    [Dvpp] class Dvpp init resource stage:
    [Dvpp] class Dvpp init resource stage:
    [Sample] image:./data/wood_rabbit_1024_1068_nv12.yuv res_path:./vpc_out
    [Sample] width:1024 height:1068
    [Sample] in_batch_size:1 in_batch_size:8
    [Sample]write out to file ./vpc_out/wood_rabbit_1024_1068_nv12_6crop_0_.yuv success
    [Sample]write out to file ./vpc_out/wood_rabbit_1024_1068_nv12_6crop_1_.yuv success
    [Sample]write out to file ./vpc_out/wood_rabbit_1024_1068_nv12_6crop_2_.yuv success
    [Sample]write out to file ./vpc_out/wood_rabbit_1024_1068_nv12_6crop_3_.yuv success
    [Sample]write out to file ./vpc_out/wood_rabbit_1024_1068_nv12_6crop_4_.yuv success
    [Sample]write out to file ./vpc_out/wood_rabbit_1024_1068_nv12_6crop_5_.yuv success
    [Sample]write out to file ./vpc_out/wood_rabbit_1024_1068_nv12_6crop_6_.yuv success
    [Sample]write out to file ./vpc_out/wood_rabbit_1024_1068_nv12_6crop_7_.yuv success
    [Model] class Model release source success
    [Dvpp] class Dvpp release source
    [Dvpp] class Dvpp release source success
    [Sample] class Sample release source success