目次
...
Table of Contents | ||||
---|---|---|---|---|
|
環境構築
環境構築手順はこちらをご参照ください。
モデルを変換する
モデル変換を行います。
...
Preparation
...
Please refer here for the environment construction procedure.
Convert
...
Convert the model.
Please change the parameter "setting.conf" of the argument according to the model to be converted.
Code Block |
---|
$ cd /home/cvtool/conversion/caffe $ ./caffe_conversion.sh setting.conf |
変換後のモデルは以下のディレクトリに出力されます。The model after conversion is output to the following directory.
${OUTPUT_DIR}/${NET_NAME}/${PARSER_OPTION}/[モデル名model name]
Setting.
...
conf
...
Code Block |
---|
# Network Name NET_NAME=mobilenetv1 # Path to Deploy Prototxt DEPLOY_PROTOTXT=./sample/mobilenet_v1/mobilenet_deploy.prototxt # Path to Directory for (Deploy) Caffe Models MODEL_DIR=./sample/mobilenet_v1/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=FIX8 # 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 or Name of .binaryproto 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 # Input Layer Name IN_LAYER=data # Output Layers Name OUT_LAYER=mbox_loc,mbox_conf_flatten #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="" # 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.
DEPLOY_PROTOTXT:deploy用prototxtファイルへのパス: Path to deploy prototxt file
MODEL_DIR:caffemodelが格納されたディレクトリ
ディレクトリ下の全てのモデルに対して、変換処理を実行します。: Path to directory which includes caffemodel
All caffemodels under the directory are converted
DRA_IMAGE_DIR:量子化の最適化処理で使用する、画像ファイルが格納されたディレクトリ
学習に使った画像を格納してください。100~200枚が推奨枚数です。
画像フォーマットはJPEGやPNGなど、OpenCVで対応しているものです。
任意サイズの画像を使用可能です。
OUTPUT_DIR:変換後のデータ出力先ディレクトリ
PARSER_OPTION:量子化モード
: Path to directory which 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 which converted data will be put
PARSER_OPTION: Quantization mode
Select from FIX8/FIX16/MIX (FIX8/FIX16混合)から選択します。FIX16 mixed).
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:入力画像の正規化パラメータ(平均値)
数値またはbinaryprotoファイルでの設定が可能です。
数値で設定する場合には、以下のように”,”の間に空白を入れないようにしてください。It can be set by numerical value or .binaryproto file
n case of setting by numerical value, do not put space between “,” as following.
IN_MEAN=127.5,127.5,127.5binaryprotoファイルで設定する場合には、以下のようにファイルへのパスを設定してください。In case of setting by .binaryproto file, please set path to the file as following.
IN_MEAN=./model/mean.binaryprotoIN_SCALE:入力画像の正規化パラメータ(スケール)
チャネルごとに異なる設定値にする場合は、”,”で値を区切ってください。”,”の間には空白を入れないようにしてください。: Normalization parameter (scale) of input image
In case of setting different value for each channel, split values by “,”. Do not put space between “,”.
IS_BGR:入力画像のフォーマット(RGB or BGR): Format of input image (RGB or BGR)
IN_LAYER:ネットワークの入力レイヤ名
変換後のモデルでは入力レイヤ名が: The name of input layer for target network
In the converted model, the name of input layer changes to “${IN_LAYER}_0” に変わります。.
したがって追加アプリ上で変換後のモデルを動かす際も、モデルの入力レイヤとして Therefore, “_0” を付ける必要があります。is needed to be added to the name of input layer, when the converted model will be run on AdamApp.
OUT_LAYER:ネットワークの出力レイヤ名
複数指定する場合は”,”で区切ってください: The name of output layer for target network
If two or more layers exists, separate layers by “,”.
CAVALRY_VER:使用するcavalryバージョン: Version of cavalry to use
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)
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.
N_DATA_TRANSPOSE:入力データに対してTRANSPOSE を行う場合指定する
: Normalization parameter (mean) of input image
...
TRANSPOSE: Specify when performing TRANSPOSE on the input data
If input layer is not defined in deploy prototxt file, add the layer as following.
...
サンプルモデルの変換
...
Convert sample model
...
Download sample model.
Code Block |
---|
$ wget https://github.com/shicai/MobileNet-Caffe/blob/master/mobilenet.caffemodel $ mv mobilenet.caffemodel sample/mobilenet_v1/models |
モデル変換を実行します。Conver the model.
Code Block |
---|
$ ./caffe_conversion.sh setting.conf |
...