Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. data/cnn/*.bin をご使用のモデルに置き換えてください。

  2. main.cppの以下の部分を機種に合わせて変更してください。 cppの以下の部分をモデルの仕様に合わせて変更してください。
    #define OUTSIZE_HEIGHT <モデルの入力高さ>
    #define OUTSIZE_WIDTH <モデルの入力幅>
    #define NETNAME <モデルのファイル名>
    #define LAYERNAMEIN <モデルのレイヤー名を入力> <モデルの入力レイヤー>
    #define LAYERNAMEOUT_CONV1037 <モデルの出力レイヤー名>
    #define <特徴マップ(ストライド 32)のレイヤー名>
    LAYERNAMEOUT_CONV1017 <モデルの出力レイヤー名>
    #define <特徴マップ(ストライド 16)のレイヤー名>
    LAYERNAMEOUT_CONV997 <モデルの出力レイヤー名>
    #define <特徴マップ(ストライド 8)のレイヤー名>
    TOTAL_CLS <モデルのクラス数>
    モデルに応じて"names" (label-objectname matrix)を記述してください。char const *names (pymain.py では object_name_list)
    モデルの仕様に合わせて変更してください
    const float anchors (pymain.py では anchors_list)
    以下URLの、 anchors の値を使用しています。
    https://github.com/ultralytics/yolov5/blob/master/models/yolov5s.yaml
    モデルによっては値が異なることがありますので、モデルの仕様をご確認ください。


・LAYERNAMEOUTに設定するレイヤー名について

yuv_yolov5_app (および yuv_yolo_app) は、特徴マップがAIモデルの出力となっている前提で作られています。
例:入力解像度 640x640 の yolov5s
最後段のconv層(3つ)が、特徴マップを出力するレイヤーとなります。
c : 3×(5+クラス数)。この例の場合、c=255なのでクラス数は80になります。
h, w : 特徴マップのグリッド数。入力解像度を stride で割った値となります。

...

したがって LAYERNAMEOUT の設定は以下になります。
#define LAYERNAMEOUT_CONV1037 "418" // stride 32
#define LAYERNAMEOUT_CONV1017 "372" // stride 16
#define LAYERNAMEOUT_CONV997 "326" // stride 8

・利用ポート

このアプリケーションは、WebSocket 通信に 8083 ポートを使用します。

...