2021-07-14 06:19:08 +00:00
#!/bin/bash
FILENAME = $1
2021-09-07 15:53:01 +08:00
# MODE be one of ['lite_train_infer' 'whole_infer' 'whole_train_infer', 'infer', 'cpp_infer', 'serving_infer']
2021-07-14 06:19:08 +00: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 07:27:38 +00:00
model_name = $( func_parser_value " ${ lines [1] } " )
2021-07-14 06:19:08 +00:00
2021-07-19 07:27:38 +00: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 06:19:08 +00:00
2021-07-28 15:49:25 +08:00
if [ ${ MODE } = "lite_train_infer" ] ; then
# 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 09:40:32 +00:00
wget -nc -P ./pretrain_models/ https://paddleocr.bj.bcebos.com/dygraph_v2.0/en/det_mv3_db_v2.0_train.tar
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 06:18:44 +00: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 06:18:44 +00: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 07:20:30 +00:00
wget -nc -P ./inference https://paddleocr.bj.bcebos.com/dygraph_v2.0/test/rec_inference.tar
2021-08-26 09:21:19 +00:00
wget -nc -P ./deploy/slim/prune https://paddleocr.bj.bcebos.com/dygraph_v2.0/test/sen.pickle
2021-08-05 06:18:44 +00: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 07:20:30 +00:00
cd ./inference && tar xf rec_inference.tar && cd ../
2021-07-28 15:49:25 +08:00
elif [ ${ MODE } = "whole_train_infer" ] ; then
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 06:18:44 +00: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 06:18:44 +00: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-07-28 15:49:25 +08:00
elif [ ${ MODE } = "whole_infer" ] ; then
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 06:18:44 +00: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 06:18:44 +00: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-09-07 13:16:35 +00:00
elif [ ${ MODE } = "infer" ] ; then
2021-08-05 06:18:44 +00:00
if [ ${ model_name } = "ocr_det" ] ; then
2021-08-27 02:35:32 +00:00
eval_model_name = "ch_ppocr_mobile_v2.0_det_train"
2021-08-05 06:18:44 +00:00
rm -rf ./train_data/icdar2015
2021-08-12 04:43:23 +00:00
wget -nc -P ./inference https://paddleocr.bj.bcebos.com/dygraph_v2.0/test/ch_det_data_50.tar
2021-08-27 02:35:32 +00: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 11:13:30 +00: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 11:13:30 +00: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 07:03:13 +00: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 06:18:44 +00:00
rm -rf ./train_data/ic15_data
2021-08-05 07:02:17 +00:00
eval_model_name = "ch_ppocr_mobile_v2.0_rec_infer"
2021-08-17 07:20:30 +00:00
wget -nc -P ./inference/ https://paddleocr.bj.bcebos.com/dygraph_v2.0/test/rec_inference.tar
2021-08-05 07:02:17 +00: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 07:20:30 +00: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-09-07 13:16:35 +00: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 06:18:44 +00: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
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-08-13 13:41:25 +00:00
2021-08-19 07:27:55 +00:00
if [ ${ MODE } = "cpp_infer" ] ; then
cd deploy/cpp_infer
2021-08-24 06:27:47 +00:00
use_opencv = $( func_parser_value " ${ lines [52] } " )
if [ ${ use_opencv } = "True" ] ; then
2021-09-06 09:39:42 +00:00
if [ -d "opencv-3.4.7/opencv3/" ] && [ $( md5sum opencv-3.4.7.tar.gz | awk -F ' ' '{print $1}' ) = "faa2b5950f8bee3f03118e600c74746a" ] ; then
echo "################### build opencv skipped ###################"
else
echo "################### build opencv ###################"
rm -rf opencv-3.4.7.tar.gz opencv-3.4.7/
wget https://paddleocr.bj.bcebos.com/dygraph_v2.0/test/opencv-3.4.7.tar.gz
tar -xf opencv-3.4.7.tar.gz
2021-08-19 07:27:55 +00:00
2021-09-06 09:39:42 +00:00
cd opencv-3.4.7/
install_path = $( pwd ) /opencv3
2021-08-19 07:27:55 +00:00
2021-09-06 09:39:42 +00:00
rm -rf build
mkdir build
cd build
2021-08-19 07:27:55 +00:00
2021-09-06 09:39:42 +00:00
cmake .. \
-DCMAKE_INSTALL_PREFIX= ${ install_path } \
-DCMAKE_BUILD_TYPE= Release \
-DBUILD_SHARED_LIBS= OFF \
-DWITH_IPP= OFF \
-DBUILD_IPP_IW= OFF \
-DWITH_LAPACK= OFF \
-DWITH_EIGEN= OFF \
-DCMAKE_INSTALL_LIBDIR= lib64 \
-DWITH_ZLIB= ON \
-DBUILD_ZLIB= ON \
-DWITH_JPEG= ON \
-DBUILD_JPEG= ON \
-DWITH_PNG= ON \
-DBUILD_PNG= ON \
-DWITH_TIFF= ON \
-DBUILD_TIFF= ON
2021-08-19 07:27:55 +00:00
2021-09-06 09:39:42 +00:00
make -j
make install
cd ../
echo "################### build opencv finished ###################"
fi
2021-08-24 06:27:47 +00:00
fi
2021-08-19 07:27:55 +00:00
2021-08-19 08:48:12 +00:00
echo "################### build PaddleOCR demo ####################"
2021-08-24 06:27:47 +00:00
if [ ${ use_opencv } = "True" ] ; then
OPENCV_DIR = $( pwd ) /opencv-3.4.7/opencv3/
else
OPENCV_DIR = ''
fi
2021-08-19 07:27:55 +00:00
LIB_DIR = $( pwd ) /Paddle/build/paddle_inference_install_dir/
2021-08-24 06:27:47 +00:00
CUDA_LIB_DIR = $( dirname ` find /usr -name libcudart.so` )
CUDNN_LIB_DIR = $( dirname ` find /usr -name libcudnn.so` )
2021-08-19 07:27:55 +00:00
BUILD_DIR = build
rm -rf ${ BUILD_DIR }
mkdir ${ BUILD_DIR }
cd ${ BUILD_DIR }
cmake .. \
-DPADDLE_LIB= ${ LIB_DIR } \
-DWITH_MKL= ON \
-DWITH_GPU= OFF \
-DWITH_STATIC_LIB= OFF \
-DWITH_TENSORRT= OFF \
-DOPENCV_DIR= ${ OPENCV_DIR } \
-DCUDNN_LIB= ${ CUDNN_LIB_DIR } \
-DCUDA_LIB= ${ CUDA_LIB_DIR } \
-DTENSORRT_DIR= ${ TENSORRT_DIR } \
make -j
2021-08-19 08:48:12 +00:00
echo "################### build PaddleOCR demo finished ###################"
2021-08-27 07:03:13 +00:00
fi