利用用户模型和 AI Library API_2 进行开发 - 2.5 简体中文

Vitis AI Library 用户指南 (UG1354)

Document ID
UG1354
Release Date
2022-06-15
Version
2.5 简体中文
要使用您自有的模型,您的模型框架应包含在 Vitis AI Library 作用域内。本节为您展示了如何将经过重新训练的 YOLOv3 Caffe 模型部署到基于 Vitis AI Library 的 ZCU102 平台上。
  1. https://github.com/Xilinx/Vitis-AI 下载对应的 Docker 镜像。
  2. 加载和运行 Docker。
  3. 在主机侧创建文件夹,并将浮动模型置于其中,然后使用 Vitis AI 量化器来量化模型。如需了解更多详情,请参阅 Vitis AI 用户指南(UG1414)
  4. 使用 Vitis AI 编译器将该模型编译到 xmodel 文件,例如,yolov3_custom.xmodel。如需了解更多信息,请参阅 Vitis AI 用户指南(UG1414)
  5. 创建 yolov3_custom.prototxt,如以下片段所示。
    model {
      name: "yolov3_custom"
      kernel {
         name: "yolov3_custom"
         mean: 0.0
         mean: 0.0
         mean: 0.0
         scale: 0.00390625
         scale: 0.00390625
         scale: 0.00390625
      }
      model_type : YOLOv3
      yolo_v3_param {
        num_classes: 20
        anchorCnt: 3
        layer_name: "59"
        layer_name: "67"
        layer_name: "75"
        conf_threshold: 0.3
        nms_threshold: 0.45
        biases: 10
        biases: 13
        biases: 16
        biases: 30
        biases: 33
        biases: 23
        biases: 30
        biases: 61
        biases: 62
        biases: 45
        biases: 59
        biases: 119
        biases: 116
        biases: 90
        biases: 156
        biases: 198
        biases: 373
        biases: 326
        test_mAP: false
      }
    }
    注释: 仅当使用 Vitis AI Library API_1 时,<model_name>.prototxt 文件才有效。

    使用 Vitis AI Library API_2 时,程序需手动加载并读取模型参数。欲知详情,请参阅 Vitis-AI/examples/Vitis-AI-Library/samples/dpu_task/yolov3/demo_yolov3.cpp 文件。

  6. 创建 demo_yolov3.cpp 文件。请参阅 Vitis-AI/examples/Vitis-AI-Library/samples/dpu_task/yolov3/demo_yolov3.cpp 文件获取参考信息。
  7. 如下所示创建 build.sh 文件,或者从 Vitis AI Library 演示复制该文件并对其进行修改。
    #/bin/sh
    CXX=${CXX:-g++}
    $CXX -std=c++17 -O3 -I. -o demo_yolov3 demo_yolov3.cpp -lopencv_core -lopencv_video -lopencv_videoio -lopencv_imgproc -lopencv_imgcodecs -lopencv_highgui -lglog -lxnnpp-xnnpp -lvitis_ai_library-model_config -lprotobuf -lvitis_ai_library-dpu_task
  8. 退出 Docker 工具系统,启动 Docker 运行时系统。
  9. 对程序进行交叉编译,并生成名为 demo_yolov3 的可执行文件。
    sh -x build.sh
  10. 在目标侧的 /usr/share/vitis_ai_library/models 文件夹内创建模型文件夹。
    mkdir yolov3_custom /usr/share/vitis_ai_library/models
    注释: /usr/share/vitis_ai_library/models 是用于读取模型的程序的默认位置。您也可以将模型文件夹置于与可执行程序相同的模型文件夹内。
  11. yolov3_custom.xmodelyolov3_custom.prototxt 文件复制到目标,并将其置于 /usr/share/vitis_ai_library/models/yolov3_custom 位置。
    scp yolov3_custom.xmodel  yolov3_custom.prototxt root@IP_OF_BOARD:/usr/share/vitis_ai_library/models/yolov3_custom
  12. 使用 scp 将可执行程序复制到目标开发板。
    scp demo_yolov3 root@IP_OF_BOARD:~/
  13. 在目标开发板上执行程序,以获取如下结果。运行该程序前,请确保目标开发板上已安装 Vitis AI Library,并准备好您要测试的图像。
    ./demo_yolov3 yolov3_custom sample.jpg