目次
Table of Contents | ||||
---|---|---|---|---|
|
環境構築
環境構築手順はこちらをご参照ください。
モデルを変換する
モデル変換を行います。
...
Preparation
...
Please refer here for the environment construction procedure.
Convert sample model
...
inception_v4
Download sample model.
Code Block |
---|
$ cd /home/cvtool/conversion/tensorflow/inception_v4
$ wget https://storage.googleapis.com/download.tensorflow.org/models/tflite/model_zoo/upload_20180427/inception_v4_2018_04_27.tgz
$ tar -xvf inception_v4_2018_04_27.tgz
$ mv inception_v4.pb sample/model
$ rm inception_v4_2018_04_27.tgz |
Convert the model.
Code Block |
---|
$ ./tf_conversion.sh setting.conf |
mobilenetv2ssd
Download sample model.
Code Block |
---|
$ cd /home/cvtool/conversion/tensorflow/mobilenetv2ssd $ wget http://download.tensorflow.org/models/object_detection/ssd_mobilenet_v2_coco_2018_03_29.tar.gz $ tar -xvzf ssd_mobilenet_v2_coco_2018_03_29.tar.gz $ mv ssd_mobilenet_v2_coco_2018_03_29/frozen_inference_graph.pb sample/model $ rm ssd_mobilenet_v2_coco_2018_03_29.tar.gz |
Convert the model.
Code Block |
---|
$ ./tf_conversion.sh setting_coco20180329.conf |
...
The model after conversion is output to the following directory.
For ambaCV2X camera
${OUTPUT_DIR}/${NET_NAME}/${PARSER_OPTION}/[model name]
For ambaCV5X camera
${OUTPUT_DIR}/${NET_NAME}_ambaCV5X/${PARSER_OPTION}/[モデル名model name]
SSDを使用するモデルの場合、以下のディレクトリにもう一つバイナリが出力されます。
SSDを使用するモデルは、2つのバイナリファイルをアプリケーションで使用します。For models that use SSD, another binary is output to the following directory.
Models with SSD use two binary files in the application.
${OUTPUT_DIR}/${NET_NAME}/
Conversion
...
Note |
---|
tensorflow v2.xのモデルは事前にtfliteに変換が必要です。 |
...
The model of tensorflow v2.x needs to be converted to tflite in advance. |
Copy either directory under
/home/cvtool/conversion/tensorflow
.
Code Block |
---|
$ cd /home/cvtool/conversion/tensorflow
$ cp -r inception_v4 foo
$ cd foo |
Change the parameter of "setting.conf" according to the model to be converted.
Convert the model.
Code Block |
---|
$ ./tf_conversion.sh setting.conf |
setting.conf
...
Note |
---|
From v1.20, parameter "CAVALRY_VER" is removed that existed in setting.conf until v1.19. |
Code Block |
---|
# Network Name NET_NAME=inception_v4 # SSD Model or Not (0:not SSD, 1:SSD) IS_SSD=0 # Path to Directory for (frozen) Protobuf File PB_DIR=./sample/model # 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=0 # Input Data Channel IN_DATA_CHANNEL=3 # Input Data Width IN_DATA_WIDTH=299 # Input Data Height IN_DATA_HEIGHT=299 # Input Data Mean Vector IN_MEAN=127.5,127.5,127.5 # Input Data Scale # IN_SCALE=1/Scale IN_SCALE=127.5 # RGB or BGR (0:RGB, 1:BGR) IS_BGR=1 # Input Nodes Name IN_NODE=input # Output Nodes Name OUT_NODE=InceptionV4/Logits/Predictions # (Need to Set When IS_SSD=1) Node Name as "priorbox" PRIORBOX_NODE=Concatenate/concat #cavalry version #if not specified -> "" CAVALRY_VER="2.1.7" # Unique preprocess # if use im2bin -> NONE # if use unique preprocess -> script path PREPRO=NONE PREPRO_ARG="" # Parser Data Format (0:NHWC, 1:NCHW) PARSER_IN_DATA_FORMAT=1 # 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:ネットワーク名
任意の名前を設定できます。: The name of network
Any name can be set.
IS_SSD:SSDを使用するモデルの場合、1を指定: Set 1, if target model uses SSD
PB_DIR:(freeze処理済みの)pbファイルが格納されたディレクトリ
ディレクトリ下の全てのモデルに対して、変換処理を実行します。: Path to directory which includes frozen .pb files
All .pb files under the directory are converted.
IMAGE_DIR:量子化の最適化処理で使用する、画像ファイルが格納されたディレクトリ
学習に使った画像を格納してください。100~200枚が推奨枚数です。
画像フォーマットはJPEGやPNGなど、OpenCVで対応しているものです。
任意サイズの画像を使用可能です。
OUTPUT_DIR:変換後のデータ出力先ディレクトリ
PARSER_OPTION:量子化モード
: Path to directory that includes image files for optimizing quantization
Please put the directory image files for training. Recommended number of image files is 100 to 200.
Available image file format is what OpenCV can handle, for example, JPEG, PNG and so on.
Any resolution is available.
OUTPUT_DIR: Path to directory to which the converted data is placed
PARSER_OPTION: Quantization mode
Select from FIX8/FIX16/MIX (FIX8/FIX16混合)から選択します。FIX16 mixed).
IN_DATA_FORMAT:モデルの入力データフォーマット: Format of input data for target model (NHWC or NCHW)
IN_DATA_CHANNEL:モデルの入力画像チャネル数: Number of input image channel for target model
N_DATA_WIDTH:モデルの入力画像サイズ(幅): Width of input image for target model
IN_DATA_HEIGHT:モデルの入力画像サイズ(高さ): Height of input image for target model
IN_MEAN:入力画像の正規化パラメータ(平均値)
以下のように”,”の間に空白を入れないようにしてください。: Normalization parameter (mean) of input image
Please refrain from using space between “,” as shown below if using numerical value.
IN_MEAN=127.5,127.5,127.5
IN_SCALE:入力画像の正規化パラメータ(スケール)
チャネルごとに異なる設定値にする場合は、”,”で値を区切ってください。”,”の間には空白を入れないようにしてください。: Normalization parameter (scale) of input image
Please refrain from using space between “,” and only use “,” to separate values when setting different values for each channel.
IS_BGR:入力画像のフォーマット(RGB or BGR): Format of input image (RGB or BGR)
IN_NODE:ネットワークの入力ノード名
OUT_NODE:ネットワークの出力ノード名
複数指定する場合は”,”で区切ってください。
PRIORBOX_NODE:”priorbox”に相当するノード
IS_SSD=1の時に、設定が必要です。
CAVALRY_VER:使用するcavalryバージョン
PREPRO:前処理スクリプトパス(python)
スクリプトの作り方は“: The name of input node for target network
When the following symbols are contained in the name of input node, conversion may not be successful.
: | ; , ‘
OUT_NODE: The name of output node for target network
If two or more nodes exists, separate layers by “,”.
When the following symbols are contained in the name of output node, conversion may not be successful.
: | ; , ‘
PRIORBOX_NODE: Node equivalent to “priorbox”
Need to set when IS_SSD=1
PREPRO: Path of preprocessing script (python script)
Refer to “/home/cvtool/ common/prepro.py”を参照してください。py” for how to create a script
PREPRO_ARG:前処理スクリプトの引数: Argument of preprocessing script (python script)
PARSER_IN_DATA_FORMAT:モデルの入力データフォーマット(tfparser実行時: Format of input data for target model (when tfparser run) (NHWC or NCHW)
IN_DATA_FILEFORMAT:入力データのフォーマット
例:uint8-> 0: Input data format
Examples : uint8->0,0,0,0, float32-> 1>1,2,0,7, float16-> 1>1,1,0,4)
NWhen the value of IN_DATA_FILEFORMAT を”0changes from “0,0,0,0”から変更した場合はPREPROの設定が必要になります。
0”, setting PREPRO is needed.
IN_DATA_TRANSPOSE:入力データに対してTRANSPOSE を行う場合指定する
サンプルモデルの変換
inception_v4
サンプルモデルをダウンロードします。
Code Block |
---|
$ cd /home/cvtool/conversion/tensorflow/inception_v4
$ wget https://storage.googleapis.com/download.tensorflow.org/models/tflite/model_zoo/upload_20180427/inception_v4_2018_04_27.tgz
$ tar -xvf inception_v4_2018_04_27.tgz
$ mv inception_v4.pb sample/model
$ rm inception_v4_2018_04_27.tgz |
モデル変換を実行します。
Code Block |
---|
$ ./tf_conversion.sh setting.conf |
mobilenetv2ssd
サンプルモデルをダウンロードします。
Code Block |
---|
$ cd /home/cvtool/conversion/tensorflow/mobilenetv2ssd
$ wget http://download.tensorflow.org/models/object_detection/ssd_mobilenet_v2_coco_2018_03_29.tar.gz
$ tar -xvzf ssd_mobilenet_v2_coco_2018_03_29.tar.gz
$ mv ssd_mobilenet_v2_coco_2018_03_29/frozen_inference_graph.pb sample/model
$ rm ssd_mobilenet_v2_coco_2018_03_29.tar.gz |
モデル変換を実行します。
...
: Specify when performing TRANSPOSE on the input data