Versions Compared

Key

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

Table of contents

Table of Contents
minLevel1
maxLevel4

Preparation

...

Please refer here for the environment construction procedure.

Convert

...

sample model

...

...

Change directory.

Code Block
$ cd /home/cvtool/conversion/caffe

Download sample model.

Code Block
$ wget https://github.com/shicai/MobileNet-Caffe/raw/master/mobilenet.caffemodel
$ mv mobilenet.caffemodel sample/mobilenet_v1/models

Conver the model.

Code Block
$ ./caffe_conversion.sh setting.conf


The model after conversion is output to the following directory.

  • For ambaCV2X camera

${OUTPUT_DIR}/${NET_NAME}/${PARSER_OPTION}/[model name]

Setting.conf

  • For ambaCV5X camera

${OUTPUT_DIR}/${NET_NAME}_ambaCV5X/${PARSER_OPTION}/[model name]

Conversion

...

  1. Copy /home/cvtool/conversion/caffe .

Code Block
$ cd /home/cvtool/conversion
$ cp -r caffe foo
$ cd foo
  1. Change the parameter of "setting.conf" according to the model to be converted.

  2. Convert the model.

Code Block
$ ./caffe_conversion.sh setting.conf

setting.conf

...

Note

From v1.20, parameter "CAVALRY_VER" is removed that existed in setting.conf until v1.19.
If you use setting.conf from v1.19 or earlier, please remove "CAVALRY_VER" from it.

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: Path to deploy prototxt file

  • MODEL_DIR: Path to directory which includes caffemodel

    • All caffemodels under the converted directory are converted

  • DRA_IMAGE_DIR: 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 Image file format is what OpenCV can handle, for example, should be the format that are supported by OpenCV (Ex. JPEG, PNG and so onetc…).

    • Any resolution is availablesupported.

  • OUTPUT_DIR: Path to directory to which the converted data will be putis placed

  • PARSER_OPTION: Quantization mode

    • Select from FIX8/FIX16/MIX (FIX8/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: Normalization parameter (mean) of input image

    • It can be set by numerical value or .binaryproto file

    • In case of setting by numerical value, do not put Please refrain from using space between “,” as followingshown below if using numerical value.
      IN_MEAN=127.5,127.5,127.5

    • In case of setting by .binaryproto file, please set Please set a path to the file as followingshown below when setting by .binaryproto file.
      IN_MEAN=./model/mean.binaryproto

  • IN_SCALE: Normalization parameter (scale) of input image

    • In case of setting different value for each channel, split values by “,”. Do not put space between “,”Please refrain from using space between “,” and only use “,” to separate values when setting different values for each channel.

  • IS_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 needs to be added to the name of input layer, when the converted model will be run on AdamApp.executes AdamApp.

    • When the following symbols are contained in the name of input layer, conversion may not be successful.
      : | ; , ‘

  • OUT_LAYER: The name of output layer for target network

    • If two or more layers exists, separate layers by “,”.

    CAVALRY_VER: Version of cavalry to use
    • When the following symbols are contained in the name of output layer, conversion may not be successful.
      : | ; , ‘

  • PREPRO: Path of preprocessing script (python script)

    • Refer to “/home/cvtool/ common/prepro.py” for how to create a script.

  • PREPRO_ARG: Argument of preprocessing script (python script)

  • IN_DATA_FILEFORMAT: Input data format

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

    • When the value of IN_DATA_FILEFORMAT changes from “0,0,0,0”, setting PREPRO is needed.

  • NIN_DATA_TRANSPOSE: Specify when performing TRANSPOSE on the input data


If input layer is not defined in deploy deployed prototxt file, add the layer as followingshown below.

...

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.

...