2021-07-14 14:19:08 +08:00
#!/bin/bash
FILENAME = $1
2021-09-07 15:53:01 +08:00
2021-10-28 10:13:05 +08:00
# MODE be one of ['lite_train_lite_infer' 'lite_train_whole_infer' 'whole_train_whole_infer',
# 'whole_infer', 'klquant_whole_infer',
# 'cpp_infer', 'serving_infer', 'lite_infer']
2021-10-12 14:53:50 +08:00
2021-07-14 14:19:08 +08:00
MODE = $2
dataline = $( cat ${ FILENAME } )
# parser params
IFS = $'\n'
lines = ( ${ dataline } )
function func_parser_key( ) {
strs = $1
IFS = ":"
array = ( ${ strs } )
tmp = ${ array [0] }
echo ${ tmp }
}
function func_parser_value( ) {
strs = $1
IFS = ":"
array = ( ${ strs } )
tmp = ${ array [1] }
echo ${ tmp }
}
IFS = $'\n'
# The training params
2021-07-19 15:27:38 +08:00
model_name = $( func_parser_value " ${ lines [1] } " )
2021-07-14 14:19:08 +08:00
2021-07-19 15:27:38 +08:00
trainer_list = $( func_parser_value " ${ lines [14] } " )
2021-07-28 15:47:53 +08:00
2021-07-28 15:49:25 +08:00
# MODE be one of ['lite_train_infer' 'whole_infer' 'whole_train_infer']
MODE = $2
2021-07-14 14:19:08 +08:00
2021-10-28 10:13:05 +08:00
if [ ${ MODE } = "lite_train_lite_infer" ] ; then
2021-07-28 15:49:25 +08:00
# pretrain lite train data
wget -nc -P ./pretrain_models/ https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/MobileNetV3_large_x0_5_pretrained.pdparams
2021-08-26 17:40:32 +08:00
wget -nc -P ./pretrain_models/ https://paddleocr.bj.bcebos.com/dygraph_v2.0/en/det_mv3_db_v2.0_train.tar
2021-10-27 10:24:36 +08:00
if [ ${ model_name } = = "PPOCRv2_ocr_det" ] ; then
wget -nc -P ./pretrain_models/ https://paddleocr.bj.bcebos.com/PP-OCRv2/chinese/ch_PP-OCRv2_det_distill_train.tar
cd ./pretrain_models/ && tar xf ch_PP-OCRv2_det_distill_train.tar && cd ../
fi
2021-08-26 17:40:32 +08:00
cd ./pretrain_models/ && tar xf det_mv3_db_v2.0_train.tar && cd ../
2021-07-28 15:49:25 +08:00
rm -rf ./train_data/icdar2015
2021-08-05 14:18:44 +08:00
rm -rf ./train_data/ic15_data
2021-07-28 15:49:25 +08:00
wget -nc -P ./train_data/ https://paddleocr.bj.bcebos.com/dygraph_v2.0/test/icdar2015_lite.tar
2021-08-05 14:18:44 +08:00
wget -nc -P ./train_data/ https://paddleocr.bj.bcebos.com/dygraph_v2.0/test/ic15_data.tar # todo change to bcebos
2021-08-17 15:20:30 +08:00
wget -nc -P ./inference https://paddleocr.bj.bcebos.com/dygraph_v2.0/test/rec_inference.tar
2021-08-26 17:21:19 +08:00
wget -nc -P ./deploy/slim/prune https://paddleocr.bj.bcebos.com/dygraph_v2.0/test/sen.pickle
2021-08-05 14:18:44 +08:00
cd ./train_data/ && tar xf icdar2015_lite.tar && tar xf ic15_data.tar
2021-07-28 15:49:25 +08:00
ln -s ./icdar2015_lite ./icdar2015
cd ../
2021-08-17 15:20:30 +08:00
cd ./inference && tar xf rec_inference.tar && cd ../
2021-10-28 10:13:05 +08:00
elif [ ${ MODE } = "whole_train_whole_infer" ] ; then
2021-07-28 15:49:25 +08:00
wget -nc -P ./pretrain_models/ https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/MobileNetV3_large_x0_5_pretrained.pdparams
rm -rf ./train_data/icdar2015
2021-08-05 14:18:44 +08:00
rm -rf ./train_data/ic15_data
2021-07-28 15:49:25 +08:00
wget -nc -P ./train_data/ https://paddleocr.bj.bcebos.com/dygraph_v2.0/test/icdar2015.tar
2021-08-05 14:18:44 +08:00
wget -nc -P ./train_data/ https://paddleocr.bj.bcebos.com/dygraph_v2.0/test/ic15_data.tar
cd ./train_data/ && tar xf icdar2015.tar && tar xf ic15_data.tar && cd ../
2021-10-27 10:24:36 +08:00
if [ ${ model_name } = = "PPOCRv2_ocr_det" ] ; then
wget -nc -P ./pretrain_models/ https://paddleocr.bj.bcebos.com/PP-OCRv2/chinese/ch_PP-OCRv2_det_distill_train.tar
cd ./pretrain_models/ && tar xf ch_PP-OCRv2_det_distill_train.tar && cd ../
fi
2021-10-28 10:13:05 +08:00
elif [ ${ MODE } = "lite_train_whole_infer" ] ; then
2021-07-28 15:49:25 +08:00
wget -nc -P ./pretrain_models/ https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/MobileNetV3_large_x0_5_pretrained.pdparams
rm -rf ./train_data/icdar2015
2021-08-05 14:18:44 +08:00
rm -rf ./train_data/ic15_data
2021-07-28 15:49:25 +08:00
wget -nc -P ./train_data/ https://paddleocr.bj.bcebos.com/dygraph_v2.0/test/icdar2015_infer.tar
2021-08-05 14:18:44 +08:00
wget -nc -P ./train_data/ https://paddleocr.bj.bcebos.com/dygraph_v2.0/test/ic15_data.tar
cd ./train_data/ && tar xf icdar2015_infer.tar && tar xf ic15_data.tar
2021-07-28 15:49:25 +08:00
ln -s ./icdar2015_infer ./icdar2015
cd ../
2021-10-27 10:24:36 +08:00
if [ ${ model_name } = = "PPOCRv2_ocr_det" ] ; then
wget -nc -P ./pretrain_models/ https://paddleocr.bj.bcebos.com/PP-OCRv2/chinese/ch_PP-OCRv2_det_distill_train.tar
cd ./pretrain_models/ && tar xf ch_PP-OCRv2_det_distill_train.tar && cd ../
fi
2021-10-28 10:13:05 +08:00
elif [ ${ MODE } = "whole_infer" ] ; then
2021-08-05 14:18:44 +08:00
if [ ${ model_name } = "ocr_det" ] ; then
2021-08-27 10:35:32 +08:00
eval_model_name = "ch_ppocr_mobile_v2.0_det_train"
2021-08-05 14:18:44 +08:00
rm -rf ./train_data/icdar2015
2021-08-12 12:43:23 +08:00
wget -nc -P ./inference https://paddleocr.bj.bcebos.com/dygraph_v2.0/test/ch_det_data_50.tar
2021-08-27 10:35:32 +08:00
wget -nc -P ./inference https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_train.tar
2021-07-28 15:49:25 +08:00
cd ./inference && tar xf ${ eval_model_name } .tar && tar xf ch_det_data_50.tar && cd ../
2021-08-19 19:13:30 +08:00
elif [ ${ model_name } = "ocr_server_det" ] ; then
2021-10-12 11:09:16 +08:00
wget -nc -P ./inference https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_train.tar
2021-08-19 19:13:30 +08:00
wget -nc -P ./inference https://paddleocr.bj.bcebos.com/dygraph_v2.0/test/ch_det_data_50.tar
2021-10-12 11:09:16 +08:00
cd ./inference && tar xf ch_ppocr_server_v2.0_det_train.tar && tar xf ch_det_data_50.tar && cd ../
2021-09-08 15:57:18 +08:00
elif [ ${ model_name } = "ocr_system_mobile" ] ; then
2021-08-27 15:03:13 +08:00
wget -nc -P ./inference https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_infer.tar
wget -nc -P ./inference https://paddleocr.bj.bcebos.com/dygraph_v2.0/test/ch_det_data_50.tar
wget -nc -P ./inference https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_rec_infer.tar
cd ./inference && tar xf ch_ppocr_mobile_v2.0_det_infer.tar && tar xf ch_ppocr_mobile_v2.0_rec_infer.tar && tar xf ch_det_data_50.tar && cd ../
2021-09-08 15:57:18 +08:00
elif [ ${ model_name } = "ocr_system_server" ] ; then
wget -nc -P ./inference https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_infer.tar
wget -nc -P ./inference https://paddleocr.bj.bcebos.com/dygraph_v2.0/test/ch_det_data_50.tar
wget -nc -P ./inference https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_infer.tar
cd ./inference && tar xf ch_ppocr_server_v2.0_det_infer.tar && tar xf ch_ppocr_server_v2.0_rec_infer.tar && tar xf ch_det_data_50.tar && cd ../
2021-09-09 14:56:56 +08:00
elif [ ${ model_name } = "ocr_rec" ] ; then
2021-08-05 14:18:44 +08:00
rm -rf ./train_data/ic15_data
2021-08-05 15:02:17 +08:00
eval_model_name = "ch_ppocr_mobile_v2.0_rec_infer"
2021-08-17 15:20:30 +08:00
wget -nc -P ./inference/ https://paddleocr.bj.bcebos.com/dygraph_v2.0/test/rec_inference.tar
2021-08-05 15:02:17 +08:00
wget -nc -P ./inference https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_rec_infer.tar
2021-08-17 15:20:30 +08:00
cd ./inference && tar xf ${ eval_model_name } .tar && tar xf rec_inference.tar && cd ../
2021-09-09 14:56:56 +08:00
elif [ ${ model_name } = "ocr_server_rec" ] ; then
rm -rf ./train_data/ic15_data
eval_model_name = "ch_ppocr_server_v2.0_rec_infer"
wget -nc -P ./inference/ https://paddleocr.bj.bcebos.com/dygraph_v2.0/test/rec_inference.tar
wget -nc -P ./inference https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_infer.tar
cd ./inference && tar xf ${ eval_model_name } .tar && tar xf rec_inference.tar && cd ../
2021-07-28 15:49:25 +08:00
fi
2021-10-28 11:27:50 +08:00
2021-10-27 10:24:36 +08:00
elif [ ${ model_name } = "PPOCRv2_ocr_det" ] ; then
eval_model_name = "ch_PP-OCRv2_det_infer"
wget -nc -P ./inference https://paddleocr.bj.bcebos.com/dygraph_v2.0/test/ch_det_data_50.tar
wget -nc -P ./inference/ https://paddleocr.bj.bcebos.com/PP-OCRv2/chinese/ch_PP-OCRv2_det_infer.tar
cd ./inference && tar xf ${ eval_model_name } .tar && tar xf ch_det_data_50.tar && cd ../
fi
2021-10-28 11:27:50 +08:00
2021-10-28 10:13:05 +08:00
elif [ ${ MODE } = "klquant_whole_infer" ] ; then
2021-10-28 11:27:50 +08:00
2021-10-12 14:53:50 +08:00
if [ ${ model_name } = "ocr_det" ] ; then
wget -nc -P ./inference https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_infer.tar
wget -nc -P ./inference https://paddleocr.bj.bcebos.com/dygraph_v2.0/test/ch_det_data_50.tar
cd ./inference && tar xf ch_ppocr_mobile_v2.0_det_infer.tar && tar xf ch_det_data_50.tar && cd ../
fi
2021-10-27 10:24:36 +08:00
if [ ${ model_name } = "PPOCRv2_ocr_det" ] ; then
eval_model_name = "ch_PP-OCRv2_det_infer"
wget -nc -P ./inference https://paddleocr.bj.bcebos.com/dygraph_v2.0/test/ch_det_data_50.tar
wget -nc -P ./inference/ https://paddleocr.bj.bcebos.com/PP-OCRv2/chinese/ch_PP-OCRv2_det_infer.tar
cd ./inference && tar xf ${ eval_model_name } .tar && tar xf ch_det_data_50.tar && cd ../
fi
2021-09-07 21:16:35 +08:00
elif [ ${ MODE } = "cpp_infer" ] ; then
if [ ${ model_name } = "ocr_det" ] ; then
wget -nc -P ./inference https://paddleocr.bj.bcebos.com/dygraph_v2.0/test/ch_det_data_50.tar
wget -nc -P ./inference https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_infer.tar
cd ./inference && tar xf ch_ppocr_mobile_v2.0_det_infer.tar && tar xf ch_det_data_50.tar && cd ../
elif [ ${ model_name } = "ocr_rec" ] ; then
wget -nc -P ./inference/ https://paddleocr.bj.bcebos.com/dygraph_v2.0/test/rec_inference.tar
wget -nc -P ./inference https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_rec_infer.tar
cd ./inference && tar xf ch_ppocr_mobile_v2.0_rec_infer.tar && tar xf rec_inference.tar && cd ../
elif [ ${ model_name } = "ocr_system" ] ; then
wget -nc -P ./inference https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_infer.tar
wget -nc -P ./inference https://paddleocr.bj.bcebos.com/dygraph_v2.0/test/ch_det_data_50.tar
wget -nc -P ./inference https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_rec_infer.tar
cd ./inference && tar xf ch_ppocr_mobile_v2.0_det_infer.tar && tar xf ch_ppocr_mobile_v2.0_rec_infer.tar && tar xf ch_det_data_50.tar && cd ../
fi
2021-07-28 15:49:25 +08:00
fi
2021-08-05 14:18:44 +08:00
2021-09-07 15:50:04 +08:00
if [ ${ MODE } = "serving_infer" ] ; then
# prepare serving env
python_name = $( func_parser_value " ${ lines [2] } " )
2021-09-09 14:56:56 +08:00
wget https://paddle-serving.bj.bcebos.com/chain/paddle_serving_server_gpu-0.0.0.post101-py3-none-any.whl
${ python_name } -m pip install install paddle_serving_server_gpu-0.0.0.post101-py3-none-any.whl
2021-09-07 15:50:04 +08:00
${ python_name } -m pip install paddle_serving_client = = 0.6.1
2021-09-09 14:56:56 +08:00
${ python_name } -m pip install paddle-serving-app= = 0.6.3
2021-09-07 15:50:04 +08:00
wget -nc -P ./inference https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_infer.tar
wget -nc -P ./inference https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_rec_infer.tar
2021-09-09 14:56:56 +08:00
wget -nc -P ./inference https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_infer.tar
wget -nc -P ./inference https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_infer.tar
2021-10-18 13:47:18 +08:00
cd ./inference && tar xf ch_ppocr_mobile_v2.0_det_infer.tar && tar xf ch_ppocr_mobile_v2.0_rec_infer.tar && tar xf ch_ppocr_server_v2.0_rec_infer.tar && tar xf ch_ppocr_server_v2.0_det_infer.tar && cd ../
2021-09-07 15:50:04 +08:00
fi
2021-10-26 21:51:49 +08:00
if [ ${ MODE } = "lite_infer" ] ; then
# prepare lite nb model and test data
current_dir = ${ PWD }
wget -nc -P ./models https://paddleocr.bj.bcebos.com/dygraph_v2.0/lite/ch_ppocr_mobile_v2.0_det_opt.nb
wget -nc -P ./models https://paddleocr.bj.bcebos.com/dygraph_v2.0/lite/ch_ppocr_mobile_v2.0_det_slim_opt.nb
wget -nc -P ./test_data https://paddleocr.bj.bcebos.com/dygraph_v2.0/test/icdar2015_lite.tar
cd ./test_data && tar -xf icdar2015_lite.tar && rm icdar2015_lite.tar && cd ../
# prepare lite env
export http_proxy = http://172.19.57.45:3128
export https_proxy = http://172.19.57.45:3128
paddlelite_url = https://github.com/PaddlePaddle/Paddle-Lite/releases/download/v2.9/inference_lite_lib.android.armv8.gcc.c++_shared.with_extra.with_cv.tar.gz
paddlelite_zipfile = $( echo $paddlelite_url | awk -F "/" '{print $NF}' )
paddlelite_file = inference_lite_lib.android.armv8.gcc.c++_shared.with_extra.with_cv
wget ${ paddlelite_url }
tar -xf ${ paddlelite_zipfile }
mkdir -p ${ paddlelite_file } /demo/cxx/ocr/test_lite
mv models test_data ${ paddlelite_file } /demo/cxx/ocr/test_lite
cp ppocr/utils/ppocr_keys_v1.txt deploy/lite/config.txt ${ paddlelite_file } /demo/cxx/ocr/test_lite
cp ./deploy/lite/* ${ paddlelite_file } /demo/cxx/ocr/
cp ${ paddlelite_file } /cxx/lib/libpaddle_light_api_shared.so ${ paddlelite_file } /demo/cxx/ocr/test_lite
cp PTDN/configs/ppocr_det_mobile_params.txt PTDN/test_lite.sh PTDN/common_func.sh ${ paddlelite_file } /demo/cxx/ocr/test_lite
cd ${ paddlelite_file } /demo/cxx/ocr/
git clone https://github.com/LDOUBLEV/AutoLog.git
unset http_proxy
unset https_proxy
make -j
sleep 1
make -j
cp ocr_db_crnn test_lite && cp test_lite/libpaddle_light_api_shared.so test_lite/libc++_shared.so
tar -cf test_lite.tar ./test_lite && cp test_lite.tar ${ current_dir } && cd ${ current_dir }
fi