ユーザー モデルと AI ライブラリ API_2 を使用した開発 - 3.5 日本語

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

Document ID
UG1354
Release Date
2023-06-29
Version
3.5 日本語
独自モデルを使用する場合は、ユーザーのモデル フレームワークが Vitis AI ライブラリの範囲に含まれる必要があります。このセクションでは、再学習済みの YOLOv3 Caffe モデルを Vitis AI ライブラリを使用して ZCU102 プラットフォームで運用する方法について説明します。
  1. https://github.com/Xilinx/Vitis-AI から対応する Docker イメージをダウンロードします。
  2. Docker をロードして実行します。
  3. ホスト側でフォルダーを作成し、そのフォルダー内にフロート モデルを配置し、Vitis AI クオンタイザーを使用してモデルを量子化します。詳細は、 『Vitis AI ユーザー ガイド』 (UG1414) を参照してください。
  4. Vitis AI コンパイラを使用してモデルをコンパイルし、yolov3_custom.xmodel などの 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
      }
    }
    注記: <model_name>.prototxt ファイルは、Vitis AI ライブラリ API_1 を使用する場合に限り有効です。

    Vitis AI ライブラリ API_2 を使用する場合は、モデル パラメーターのロードと読み出しを手動で実行する必要があります。詳細は、Vitis-AI/examples/vai_library/samples/dpu_task/yolov3/demo_yolov3.cpp ファイルを参照してください。

  6. demo_yolov3.cpp ファイルを作成します。Vitis-AI/examples/vai_library/samples/dpu_task/yolov3/demo_yolov3.cpp ファイルを参考にしてください。
  7. 次に示すように build.sh ファイルを作成するか、Vitis AI ライブラリのデモから 1 つをコピーして、それを変更します。
    #/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 ライブラリがインストールされていることを確認して、テストするイメージを準備します。
    ./demo_yolov3 yolov3_custom sample.jpg