MTCNN-Caffe(三)生成lmdb

2390 ワード


 #!/usr/bin/env sh
 # Create the imagenet lmdb inputs
 # N.B. set the path to the imagenet train + val data dirs
 EXAMPLE=.
 TOOLS=/data2/zxli/CODE/caffe_multilabel/build/tools
 DATA=.
 TRAIN_DATA_ROOT=/.
 VAL_DATA_ROOT=/.
 # Set RESIZE=true to resize the images to 256x256. Leave as false if images have
 # already been resized using another tool.
 RESIZE=true
 if $RESIZE; then
    RESIZE_HEIGHT=24
    RESIZE_WIDTH=24
 else
    RESIZE_HEIGHT=0
    RESIZE_WIDTH=0
 fi
 if [ ! -d "$TRAIN_DATA_ROOT" ]; then
   echo "Error: TRAIN_DATA_ROOT is not a path to a directory: $TRAIN_DATA_ROOT"
   echo "Set the TRAIN_DATA_ROOT variable in create_imagenet.sh to the path" \
       "where the ImageNet training data is stored."
   exit 1
 fi
 if [ ! -d "$VAL_DATA_ROOT" ]; then
    echo "Error: VAL_DATA_ROOT is not a path to a directory: $VAL_DATA_ROOT"
    echo "Set the VAL_DATA_ROOT variable in create_imagenet.sh to the path" \
       "where the ImageNet validation data is stored."
 exit 1
 fi
 echo "Creating train lmdb..."
 GLOG_logtostderr=1 $TOOLS/convert_imageset_multilabel \
    --resize_height=$RESIZE_HEIGHT \
    --resize_width=$RESIZE_WIDTH \
     $TRAIN_DATA_ROOT \
      $DATA/train_list.txt \
     $EXAMPLE/mtcnn_train_20190121_lmdb
 
 echo "Creating val lmdb..."
 GLOG_logtostderr=1 $TOOLS/convert_imageset_multilabel \
    --resize_height=$RESIZE_HEIGHT \
    --resize_width=$RESIZE_WIDTH \
      $VAL_DATA_ROOT \
      $DATA/val_list.txt \
     $EXAMPLE/mtcnn_val_20190121_lmdb
 
 echo "Done."

lmdbを生成して後続のトレーニングで使用
2 shell言語の理解について
(1)$はスクリプト言語で変数を表します.例えば、$varはvar変数を呼び出すことも、変数の値を出力することもできます.
(2)if-then文とtestコマンドの使用
(2.1)基本構造化コマンドif-then文フォーマット:
if  command
then
    command
fi
(2.2)testコマンド
if[condition]
then command
fi
(2.2.1)判定整数:整数1-eq整数2判定整数1と2が等しいか否か;整数1-ge整数2は、整数1が整数2以上であるか否かを判断する.
整数1-gt整数2は、整数1が整数2より大きいと判断する.整数1-le整数2整数1が整数2以下であるか否かを判断する
(2.2.2)判断文字列:-n str 1はstr 1の長さが0でないと判断する;-z str 2はstr 2の長さを0と判断する.
(2.2.3)判定ファイル:-d FIleファイルが存在し、ディレクトリである.-eファイルが存在する
参考ブログ:https://blog.csdn.net/weixin_36586564/article/details/78843172
3 ubuntuでよく使われるコマンド
(1)フォルダls-lrtを時間昇順に並べ替える(lは長いリストで表示され、tは修正時間で並べ替えられ、r reverse order whilt sorting)
(2)フォルダls-ltを時間降順に並べ替える