123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- # This file tests the whole process from training to deployment
- # Usage:
- # 1. Install PaddlePaddle that supports TenorRT
- # 2. `export CUDA_VISIBLE_DEVICES=id`
- # 3. `cd ./PaddleSeg/Matting`
- #. 4. `bash tests/test_whole_process.sh`
- save_root="output/tests"
- mkdir -p ${save_root}
- video_path="${save_root}/v1.mov"
- # Obtain dataset to test
- dataset_root="data/PPM-100"
- if [ ! -d ${dataset_root} ]; then
- mkdir -p data && cd data
- wget https://paddleseg.bj.bcebos.com/matting/datasets/PPM-100.zip
- unzip PPM-100.zip
- rm PPM-100.zip
- cd ..
- fi
- # Obtaion video to test
- if [ ! -a ${video_path} ]; then
- wget https://paddleseg.bj.bcebos.com/matting/demo/v1.mov
- mv v1.mov ${save_root}
- fi
- # Training
- echo "Test training..."
- python tools/train.py \
- --config configs/quick_start/ppmattingv2-stdc1-human_512.yml \
- --learning_rate 0.0001 \
- --iters 10 \
- --batch_size 1 \
- --log_iters 1 \
- --use_vdl \
- --save_interval 10 \
- --do_eval \
- --num_workers 1 \
- --save_dir ${save_root} \
- --opts model.pretrained="https://paddleseg.bj.bcebos.com/matting/models/ppmattingv2-stdc1-human_512.pdparams"
- # Evaluation
- echo "Test evaluation..."
- python tools/val.py \
- --config configs/quick_start/ppmattingv2-stdc1-human_512.yml \
- --model_path ${save_root}/best_model/model.pdparams \
- --metrics sad mse grad conn \
- --save_dir ${save_root}/results/evaluation \
- --save_results
- # Predictions
- echo "Test prediction..."
- python tools/predict.py \
- --config configs/quick_start/ppmattingv2-stdc1-human_512.yml \
- --model_path ${save_root}/best_model/model.pdparams \
- --image_path demo/human.jpg \
- --save_dir ${save_root}/results/prediction \
- --fg_estimate True
- python tools/predict.py --config configs/quick_start/ppmattingv2-stdc1-human_512.yml --model_path ${save_root}/best_model/model.pdparams --image_path demo/human.jpg --fg_estimate True
- # Video prediction
- echo "Test video predcition..."
- python tools/predict_video.py \
- --config configs/quick_start/ppmattingv2-stdc1-human_512.yml \
- --model_path ${save_root}/best_model/model.pdparams \
- --video_path ${video_path} \
- --save_dir ${save_root}/results/video_prediction \
- --fg_estimate False
- # Background replacement
- echo "Test background replacement..."
- python tools/bg_replace.py \
- --config configs/quick_start/ppmattingv2-stdc1-human_512.yml \
- --model_path ${save_root}/best_model/model.pdparams \
- --image_path demo/human.jpg \
- --background g \
- --save_dir ${save_root}/results/background_replacement \
- --fg_estimate True
- # Video background replacement
- echo "Test video background replacement..."
- python tools/bg_replace_video.py \
- --config configs/quick_start/ppmattingv2-stdc1-human_512.yml \
- --model_path ${save_root}/best_model/model.pdparams \
- --video_path ${video_path} \
- --background 'g' \
- --save_dir ${save_root}/results/video_background_replacement \
- --fg_estimate False
- # Export
- echo "Test exportment..."
- python tools/export.py \
- --config configs/quick_start/ppmattingv2-stdc1-human_512.yml \
- --model_path ${save_root}/best_model/model.pdparams \
- --save_dir ${save_root}/export \
- --input_shape 1 3 512 512
- # Deployment
- echo "Test deployment"
- python deploy/python/infer.py \
- --config ${save_root}/export/deploy.yaml \
- --image_path demo/human.jpg \
- --save_dir ${save_root}/results/deploy \
- python deploy/python/infer.py \
- --config ${save_root}/export/deploy.yaml \
- --video_path ${video_path} \
- --save_dir ${save_root}/results/deploy \
- --fg_estimate False
|