| #!/bin/bash
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| set -e
|
|
|
|
|
| cd ..
|
|
|
|
|
| export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slim
|
|
|
|
|
| CURRENT_DIR=$(pwd)
|
| WORK_DIR="${CURRENT_DIR}/deeplab"
|
|
|
|
|
| python "${WORK_DIR}"/model_test.py
|
|
|
|
|
| DATASET_DIR="datasets"
|
| cd "${WORK_DIR}/${DATASET_DIR}"
|
| bash download_and_convert_voc2012.sh
|
|
|
|
|
| cd "${CURRENT_DIR}"
|
|
|
|
|
| PASCAL_FOLDER="pascal_voc_seg"
|
| EXP_FOLDER="exp/train_on_trainval_set"
|
| INIT_FOLDER="${WORK_DIR}/${DATASET_DIR}/${PASCAL_FOLDER}/init_models"
|
| TRAIN_LOGDIR="${WORK_DIR}/${DATASET_DIR}/${PASCAL_FOLDER}/${EXP_FOLDER}/train"
|
| EVAL_LOGDIR="${WORK_DIR}/${DATASET_DIR}/${PASCAL_FOLDER}/${EXP_FOLDER}/eval"
|
| VIS_LOGDIR="${WORK_DIR}/${DATASET_DIR}/${PASCAL_FOLDER}/${EXP_FOLDER}/vis"
|
| EXPORT_DIR="${WORK_DIR}/${DATASET_DIR}/${PASCAL_FOLDER}/${EXP_FOLDER}/export"
|
| mkdir -p "${INIT_FOLDER}"
|
| mkdir -p "${TRAIN_LOGDIR}"
|
| mkdir -p "${EVAL_LOGDIR}"
|
| mkdir -p "${VIS_LOGDIR}"
|
| mkdir -p "${EXPORT_DIR}"
|
|
|
|
|
| TF_INIT_ROOT="http://download.tensorflow.org/models"
|
| TF_INIT_CKPT="deeplabv3_pascal_train_aug_2018_01_04.tar.gz"
|
| cd "${INIT_FOLDER}"
|
| wget -nd -c "${TF_INIT_ROOT}/${TF_INIT_CKPT}"
|
| tar -xf "${TF_INIT_CKPT}"
|
| cd "${CURRENT_DIR}"
|
|
|
| PASCAL_DATASET="${WORK_DIR}/${DATASET_DIR}/${PASCAL_FOLDER}/tfrecord"
|
|
|
|
|
| NUM_ITERATIONS=10
|
| python "${WORK_DIR}"/train.py \
|
| --logtostderr \
|
| --train_split="trainval" \
|
| --model_variant="xception_65" \
|
| --atrous_rates=6 \
|
| --atrous_rates=12 \
|
| --atrous_rates=18 \
|
| --output_stride=16 \
|
| --decoder_output_stride=4 \
|
| --train_crop_size="513,513" \
|
| --train_batch_size=4 \
|
| --training_number_of_steps="${NUM_ITERATIONS}" \
|
| --fine_tune_batch_norm=true \
|
| --tf_initial_checkpoint="${INIT_FOLDER}/deeplabv3_pascal_train_aug/model.ckpt" \
|
| --train_logdir="${TRAIN_LOGDIR}" \
|
| --dataset_dir="${PASCAL_DATASET}"
|
|
|
|
|
|
|
|
|
| python "${WORK_DIR}"/eval.py \
|
| --logtostderr \
|
| --eval_split="val" \
|
| --model_variant="xception_65" \
|
| --atrous_rates=6 \
|
| --atrous_rates=12 \
|
| --atrous_rates=18 \
|
| --output_stride=16 \
|
| --decoder_output_stride=4 \
|
| --eval_crop_size="513,513" \
|
| --checkpoint_dir="${TRAIN_LOGDIR}" \
|
| --eval_logdir="${EVAL_LOGDIR}" \
|
| --dataset_dir="${PASCAL_DATASET}" \
|
| --max_number_of_evaluations=1
|
|
|
|
|
| python "${WORK_DIR}"/vis.py \
|
| --logtostderr \
|
| --vis_split="val" \
|
| --model_variant="xception_65" \
|
| --atrous_rates=6 \
|
| --atrous_rates=12 \
|
| --atrous_rates=18 \
|
| --output_stride=16 \
|
| --decoder_output_stride=4 \
|
| --vis_crop_size="513,513" \
|
| --checkpoint_dir="${TRAIN_LOGDIR}" \
|
| --vis_logdir="${VIS_LOGDIR}" \
|
| --dataset_dir="${PASCAL_DATASET}" \
|
| --max_number_of_iterations=1
|
|
|
|
|
| CKPT_PATH="${TRAIN_LOGDIR}/model.ckpt-${NUM_ITERATIONS}"
|
| EXPORT_PATH="${EXPORT_DIR}/frozen_inference_graph.pb"
|
|
|
| python "${WORK_DIR}"/export_model.py \
|
| --logtostderr \
|
| --checkpoint_path="${CKPT_PATH}" \
|
| --export_path="${EXPORT_PATH}" \
|
| --model_variant="xception_65" \
|
| --atrous_rates=6 \
|
| --atrous_rates=12 \
|
| --atrous_rates=18 \
|
| --output_stride=16 \
|
| --decoder_output_stride=4 \
|
| --num_classes=21 \
|
| --crop_size=513 \
|
| --crop_size=513 \
|
| --inference_scales=1.0
|
|
|
|
|
|
|
|
|