Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 9 Next »

目次


環境構築


環境構築手順はこちらをご参照ください。

Setting.conf仕様


# Network Name
NET_NAME=mobilenet_v2

# Path to Directory for ONNX Models
MODEL_DIR=./sample/mobilenet_v2/models

# Path to Directory for DRA Images
DRA_IMAGE_DIR=../../dra_img

# Path to Directory for Output Data
OUTPUT_DIR=./out

# Quantization Mode
#  FIX8  : Fixed-point  8bit
#  FIX16 : Fixed-point 16bit
#  MIX   : FIX8/FIX16 mixed
PARSER_OPTION=MIX

# Input Data Format (0:NHWC, 1:NCHW)
IN_DATA_FORMAT=1

# Input Data Channel
IN_DATA_CHANNEL=3

# Input Data Width
IN_DATA_WIDTH=224

# Input Data Height
IN_DATA_HEIGHT=224

# Input Data Mean Vector
IN_MEAN=103.94,116.78,123.68

# Input Data Scale
# IN_SCALE=1/Scale
IN_SCALE=58.823529411

# RGB or BGR (0:RGB, 1:BGR)
IS_BGR=1

# Output Layers Name
OUT_LAYER=mobilenetv20_output_flatten0_reshape0

# Unique preprocess
# if use im2bin -> NONE
# if use unique preprocess -> script path
PREPRO=NONE
PREPRO_ARG=""

# Input file data format
IN_DATA_FILEFORMAT=0,0,0,0

# Transpose indices(NONE:without transpose , 0,3,1,2:transpose (EX))
IN_DATA_TRANSPOSE=NONE
  • NET_NAME:ネットワーク名

    • 任意の名前を設定できます。

  • MODEL_DIR:onnxファイルが格納されたディレクトリ

    • ディレクトリ下の全てのモデルに対して、変換処理を実行します。

  • IMAGE_DIR:量子化の最適化処理で使用する、画像ファイルが格納されたディレクトリ

    • 学習に使った画像を格納してください。100~200枚が推奨枚数です。

    • 画像フォーマットはJPEGやPNGなど、OpenCVで対応しているものです。

    • 任意サイズの画像を使用可能です。

  • OUTPUT_DIR:変換後のデータ出力先ディレクトリ

  • PARSER_OPTION:量子化モード

    • FIX8/FIX16/MIX(FIX8/FIX16混合)から選択します。

  • IN_DATA_CHANNEL:モデルの入力画像チャネル数

  • N_DATA_WIDTH:モデルの入力画像サイズ(幅)

  • IN_DATA_HEIGHT:モデルの入力画像サイズ(高さ)

  • IN_MEAN:入力画像の正規化パラメータ(平均値)

    • 以下のように”,”の間に空白を入れないようにしてください。
      IN_MEAN=127.5,127.5,127.5

  • IN_SCALE:入力画像の正規化パラメータ(スケール)

    • チャネルごとに異なる設定値にする場合は、”,”で値を区切ってください。”,”の間には空白を入れないようにしてください。

  • IS_BGR:入力画像のフォーマット(RGB or BGR)

  • OUT_LAYER:ネットワークの出力ノード名

    • 複数指定する場合は”,”で区切ってください。

    • 以下の記号が入出力ノード名に含まれている場合、正常に変換できない可能性があります。

      • | ; , ‘

  • PREPRO:前処理スクリプトパス(python)

    • スクリプトの作り方は“/home/cvtool/common/prepro.py”を参照してください。

  • PREPRO_ARG:前処理スクリプトの引数

  • IN_DATA_FILEFORMAT:入力データのフォーマット

    • 例:uint8-> 0,0,0,0,float32-> 1,2,0,7,float16-> 1,1,0,4)

    • N_DATA_FILEFORMAT を”0,0,0,0”から変更した場合はPREPROの設定が必要になります。

  • IN_DATA_TRANSPOSE:入力データに対してTRANSPOSE を行う場合指定する

定数でないノードがある場合、正常に変換ができません。

その場合、下記コマンドを使ってモデルの変換を行い、変換後のモデルで量子化を行ってください。

 -m : 変換前モデル

 -o : 変換後モデル

$ graph_surgery.py onnx -m mobilenetv210.onnx -o mobilenetv210_mod.onnx -t Default

モデルを変換する


モデル変換を行います。

引数の「setting.conf」は変換するモデルに合わせてパラメータを変更してください。

変換後のモデルは以下のディレクトリに出力されます。

  • ambaCV2Xカメラ用のモデル

${OUTPUT_DIR}/${NET_NAME}/${PARSER_OPTION}/[モデル名]

  • ambaCV5Xカメラ用のモデル

${OUTPUT_DIR}/${NET_NAME}_ambaCV5X/${PARSER_OPTION}/[モデル名]

PyTorchのモデルは事前にONNXに変換が必要です。

サンプルモデルの変換


mobilenetv2

ディレクトリを移動します。

$ cd /home/cvtool/conversion/onnx/mobilenetv2

モデル変換を実行します。

$ ./onnx_conversion.sh setting.conf

yolov5

サンプルモデルをダウンロードします。

$ cd /home/cvtool/conversion/onnx/yolov5
$ ./setup_yolov5.sh

ダウンロードするファイルサイズは数GBになります。十分な容量を確保して行ってください。

モデル変換を実行します。

$ ./onnx_conversion.sh setting.conf

PCの環境によっては、メモリ(RAM)は8GBほど必要になります。失敗する場合はメモリ容量を確認ください。

  • No labels