下载
中文
注册

运行应用

样例步骤适用于以下产品。

  • Atlas 200/300/500 推理产品
  • Atlas 推理系列产品
  • Atlas 训练系列产品

模型转换

  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文件),转换模型时,需配置色域转换参数aipp.cfg,用于将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”目录有写权限。
    • 如果无法确定当前设备的soc_version,则在安装NPU驱动包的服务器执行npu-smi info命令进行查询,在查询到的“Name”前增加Ascend信息,例如“Name”对应取值为xxxyy,实际配置的soc_version值为Ascendxxxyy

运行应用

  1. 以运行用户登录运行环境并部署样例。
  2. 准备输入图片。 请从以下链接获取该样例的输入图片,并以运行用户将获取的文件上传至运行环境的“vpc_jpeg_resnet50_imagenet_classification/data”目录下。如果目录不存在,需自行创建。
  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”
      mv data/dvpp_vpc_8192x8192_nv12.yuv data/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