使用 AI Library 的后处理库 - 2.5 简体中文

Vitis AI Library 用户指南 (UG1354)

Document ID
UG1354
Release Date
2022-06-15
Version
2.5 简体中文

每个神经网络都有不同的后处理方法。在 Vitis AI Library 中提供了 xnnpp 后处理库,用于为用户调用提供便利。它支持以下神经网络后处理。

  • 分类
  • 面部检测
  • 面部界标检测
  • SSD 检测
  • 姿势检测
  • 语义分割
  • 道路标线检测
  • YOLOv3 检测
  • YOLOv2 检测
  • Openpose 检测
  • RefineDet 检测
  • ReID 检测
  • 多任务
  • 面部识别
  • 车牌检测
  • 车牌识别
  • 医学分割
  • 医疗检测
  • 面部质量
  • 沙漏 (Hourglass)
  • Retinaface
  • Centerpoint
  • Multitaskv3
  • Pointpillars_nuscenes
  • Rcan
  • vehicleclassification
  • ofa_yolo
  • efficientdet_d2
  • ocr
  • textmountain

有两种方法可用于调用 xnnpp

  • 使用自动调用通过 vitis::ai::<model>::create 来创建任务,如 vitis::ai::YOLOv3::create("yolov3_bdd", true)。完成 <model> 运行后,即可自动处理 xnnpp。您可通过模型配置文件来修改参数。
  • 使用手动调用通过 vitis::ai::DpuTask::create 来创建任务。然后,创建后处理对象,并运行后处理。使用以下步骤。使用 SSD 后处理作为示例:
    1. 创建配置,设置关联数据来控制后处理。
      using DPU_conf = vitis::ai::proto::DpuModelParam;
      DPU_conf config;
    2. 如果使用 caffemodel,请将“is_tf”设为 FALSE。
      config.set_is_tf(false);
    3. 填充其它参数。
      fillconfig(config);
    4. 创建 SSDPostProcess 对象。
      auto input_tensor = task->getInputTensor();
      auto output_tensor = task->getOutputTensor();
      auto ssd = vitis::ai::SSDPostProcess::create(input_tensor, output_tensor,config);
    5. 运行后处理。
      auto results = ssd->ssd_post_process();
注释: 如需了解有关后处理示例的更多详细信息,请参阅主机系统中的 ~/Vitis-AI/examples/Vitis-AI-Library/samples/dpu_task/yolov3/demo_yolov3.cpp~/Vitis-AI/src/Vitis-AI-Library/yolov3/test/test_yolov3.cpp 文件。