AI ライブラリのポストプロセス ライブラリの使用 - 2.5 日本語

Vitis AI ライブラリ ユーザー ガイド (UG1354)

Document ID
UG1354
Release Date
2022-06-15
Version
2.5 日本語

各ニューラル ネットワークには異なるポストプロセス方法があります。ユーザー呼び出しをサポートするため、ザイリンクスは Vitis AI ライブラリでポストプロセス ライブラリ (xnnpp) を提供しています。次のニューラル ネットワークのポストプロセスをサポートしています。

  • 分類
  • 顔検出
  • 顔のランドマーク検出
  • SSD 検出
  • 姿勢検出
  • セマンティック セグメンテーション
  • 車線検出
  • YOLOv3 検出
  • YOLOv2 検出
  • Openpose 検出
  • RefineDet 検出
  • ReID 検出
  • マルチタスク
  • 顔認識
  • プレート検出
  • プレート認識
  • 医療画像セグメンテーション
  • 医療画像検出
  • 顔品質
  • Hourglass
  • Retinaface
  • CenterPoint
  • Multitaskv3
  • Pointpillars_nuscenes
  • Rcan
  • vehicleclassification
  • ofa_yolo
  • efficientdet_d2
  • ocr
  • textmountain

xnnpp を呼び出す方法は次の 2 つです。

  • 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 を参照してください。