文档
注册

C++运行步骤

运行推理业务

当运行环境为Atlas 500 智能小站时,需注意以下情况:

  • 由于缺少g++编译器,请参考Python运行步骤运行样例。
  • 仅支持作为运行环境,出厂预安装EulerOS、驱动&固件。如若用户无ARM环境的设备,可支持在Ubuntu 18.04 x86_64系统的设备交叉编译SDK的应用,编译后的应用再部署到Atlas 500 智能小站中运行,详情请参见交叉编译操作说明

运行该程序之前需要用户手动下载一张包含动物的图片,并将该图片命名为test.jpg,然后放到样例工程“C++”目录下。

  1. 获取模型。
    1. 参见表1,前往昇腾开发者社区下载YOLOv3和ResNet50模型pb文件。
      表1 模型获取

      模型名称

      版本

      获取链接

      YOLOv3

      1.6

      获取地址

      关键词搜索:YOLOv3

      应用级别:Released

      框架:TensorFlow

      进入模型页面后,确认模型版本后,点击“下载模型”下载或通过“历史版本”中找到对应版本,点击“下载模型”。

      ResNet-50

      1.7

      获取地址

      关键词搜索:ResNet-50

      应用级别:Released

      框架:TensorFlow

      进入模型页面后,确认模型版本后,点击“下载模型”下载或通过“历史版本”中找到对应版本,点击“下载模型”。

    2. 模型pb文件存放。
      • 将获取到的YOLOv3模型pb文件存放至:

        SDK安装根目录/samples/mxManufacture/models/yolov3”

      • 将获取到的ResNet50模型pb文件存放至:

        SDK安装根目录/samples/mxManufacture/models/resnet50”

    3. 模型转换(其它模型转换请参考模型转换)。
      1. 进入YOLOv3模型pb文件存放路径后执行如下命令,转换YOLOv3模型。
        cd SDK安装根目录/samples/mxManufacture/models/yolov3
        atc --model=./yolov3_tf.pb \
        --framework=3 \
        --output=./yolov3_tf_bs1_fp16 \
        --soc_version=Ascend310 \
        --output_type=FP32 \
        --insert_op_conf=./aipp_yolov3_416_416.aippconfig \
        --input_shape="input:1,416,416,3" \
        --out_nodes="yolov3/yolov3_head/Conv_6/BiasAdd:0;yolov3/yolov3_head/Conv_14/BiasAdd:0;yolov3/yolov3_head/Conv_22/BiasAdd:0"

        “out_nodes”制定了输出节点的顺序,需要与模型后处理适配。

      2. 进入ResNet50模型pb文件存放路径后执行,转换ResNet50模型。
        cd SDK安装根目录/samples/mxManufacture/models/resnet50
        atc --model=./resnet50_tensorflow_1.7.pb \
        --framework=3 \
        --output=resnet50_aipp_tf \
        --output_type=FP32 \
        --soc_version=Ascend310 \
        --input_format=NHWC \
        --input_shape="Placeholder:1,224,224,3" \
        --insert_op_conf=./aipp_resnet50_224_224.aippconfig
  2. 修改pipeline配置文件。

    执行如下命令,进入配置文件所在路径。请用户自行将{sdk_install_path}替换为SDK开发套件安装目录。

    cd SDK安装根目录/samples/mxManufacture/pipeline

    当用户需要修改配置文件中业务流的元件的属性,或创建一个全新的业务流时,可参考当前路径下的配置文件样例“Sample.pipeline”流程编排介绍

  3. 日志配置管理。
    1. 程序的日志打印会优先从当前目录下获取并使用“config/logging.conf”文件(详细请参考样例日志配置文件)。
    2. 如果当前目录下不存在“config/logging.conf”,则程序会根据设置的“MX_SDK_HOME”环境变量所指向的目录下获取并使用“config/logging.conf”文件。
    3. 如果程序运行的当前目录和“MX_SDK_HOME”目录下都没有“config/logging.conf”文件,则程序使用默认值进行日志打印并将所产生的日志存放在默认路径“/tmp/log/mindx-sdk”目录下。
  4. 推理。

    跳转到“{sdk_install_path}/samples/mxManufacture/C++”目录下。请按照“C++”目录的readme文件运行,该目录下包含了样例代码。(“run.sh”为实际实现编译和运行的脚本。)

查看推理结果

通过打印信息查看结果,返回示例如下。

图1 返回结果
搜索结果
找到“0”个结果

当前产品无相关内容

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