mirror of
https://github.com/PaddlePaddle/FastDeploy.git
synced 2025-10-05 16:48:03 +08:00
[Other] Set TRT dynamic input shape for PPOCR examples. (#566)
* Imporve OCR Readme * Improve OCR Readme * Improve OCR Readme * Improve OCR Readme * Improve OCR Readme * Add Initialize function to PP-OCR * Add Initialize function to PP-OCR * Add Initialize function to PP-OCR * Make all the model links come from PaddleOCR * Improve OCR readme * Improve OCR readme * Improve OCR readme * Improve OCR readme * Add Readme for vision results * Add Readme for vision results * Add Readme for vision results * Add Readme for vision results * Add Readme for vision results * Add Readme for vision results * Add Readme for vision results * Add Readme for vision results * Add Readme for vision results * Add Readme for vision results * Add check for label file in postprocess of Rec model * Add check for label file in postprocess of Rec model * Add check for label file in postprocess of Rec model * Add check for label file in postprocess of Rec model * Add check for label file in postprocess of Rec model * Add check for label file in postprocess of Rec model * Add comments to create API docs * Improve OCR comments * Rename OCR and add comments * Make sure previous python example works * Make sure previous python example works * Fix Rec model bug * Fix Rec model bug * Fix rec model bug * Add SetTrtMaxBatchSize function for TensorRT * Add SetTrtMaxBatchSize Pybind * Add set_trt_max_batch_size python function * Set TRT dynamic shape in PPOCR examples * Set TRT dynamic shape in PPOCR examples * Set TRT dynamic shape in PPOCR examples Co-authored-by: Jason <jiangjiajun@baidu.com>
This commit is contained in:
@@ -29,9 +29,25 @@ void InitAndInfer(const std::string& det_model_dir, const std::string& cls_model
|
||||
auto rec_model_file = rec_model_dir + sep + "inference.pdmodel";
|
||||
auto rec_params_file = rec_model_dir + sep + "inference.pdiparams";
|
||||
|
||||
auto det_model = fastdeploy::vision::ocr::DBDetector(det_model_file, det_params_file, option);
|
||||
auto cls_model = fastdeploy::vision::ocr::Classifier(cls_model_file, cls_params_file, option);
|
||||
auto rec_model = fastdeploy::vision::ocr::Recognizer(rec_model_file, rec_params_file, rec_label_file, option);
|
||||
auto det_option = option;
|
||||
auto cls_option = option;
|
||||
auto rec_option = option;
|
||||
|
||||
// If use TRT backend, the dynamic shape will be set as follow.
|
||||
det_option.SetTrtInputShape("x", {1, 3, 50, 50}, {1, 3, 640, 640},
|
||||
{1, 3, 1536, 1536});
|
||||
cls_option.SetTrtInputShape("x", {1, 3, 48, 10}, {1, 3, 48, 320}, {1, 3, 48, 1024});
|
||||
rec_option.SetTrtInputShape("x", {1, 3, 32, 10}, {1, 3, 32, 320},
|
||||
{1, 3, 32, 2304});
|
||||
|
||||
// Users could save TRT cache file to disk as follow.
|
||||
// det_option.SetTrtCacheFile(det_model_dir + sep + "det_trt_cache.trt");
|
||||
// cls_option.SetTrtCacheFile(cls_model_dir + sep + "cls_trt_cache.trt");
|
||||
// rec_option.SetTrtCacheFile(rec_model_dir + sep + "rec_trt_cache.trt");
|
||||
|
||||
auto det_model = fastdeploy::vision::ocr::DBDetector(det_model_file, det_params_file, det_option);
|
||||
auto cls_model = fastdeploy::vision::ocr::Classifier(cls_model_file, cls_params_file, cls_option);
|
||||
auto rec_model = fastdeploy::vision::ocr::Recognizer(rec_model_file, rec_params_file, rec_label_file, rec_option);
|
||||
|
||||
assert(det_model.Initialized());
|
||||
assert(cls_model.Initialized());
|
||||
|
@@ -96,19 +96,29 @@ rec_model_file = os.path.join(args.rec_model, "inference.pdmodel")
|
||||
rec_params_file = os.path.join(args.rec_model, "inference.pdiparams")
|
||||
rec_label_file = args.rec_label_file
|
||||
|
||||
# 对于三个模型,均采用同样的部署配置
|
||||
# 用户也可根据自行需求分别配置
|
||||
runtime_option = build_option(args)
|
||||
det_option = runtime_option
|
||||
cls_option = runtime_option
|
||||
rec_option = runtime_option
|
||||
|
||||
# 当使用TRT时,分别给三个Runtime设置动态shape
|
||||
det_option.set_trt_input_shape("x", [1, 3, 50, 50], [1, 3, 640, 640],
|
||||
[1, 3, 1536, 1536])
|
||||
cls_option.set_trt_input_shape("x", [1, 3, 48, 10], [1, 3, 48, 320],
|
||||
[1, 3, 48, 1024])
|
||||
rec_option.set_trt_input_shape("x", [1, 3, 32, 10], [1, 3, 32, 320],
|
||||
[1, 3, 32, 2304])
|
||||
|
||||
# 用户可以把TRT引擎文件保存至本地
|
||||
# det_option.set_trt_cache_file(args.det_model + "/det_trt_cache.trt")
|
||||
# cls_option.set_trt_cache_file(args.cls_model + "/cls_trt_cache.trt")
|
||||
# rec_option.set_trt_cache_file(args.rec_model + "/rec_trt_cache.trt")
|
||||
|
||||
det_model = fd.vision.ocr.DBDetector(
|
||||
det_model_file, det_params_file, runtime_option=runtime_option)
|
||||
det_model_file, det_params_file, runtime_option=det_option)
|
||||
cls_model = fd.vision.ocr.Classifier(
|
||||
cls_model_file, cls_params_file, runtime_option=runtime_option)
|
||||
cls_model_file, cls_params_file, runtime_option=cls_option)
|
||||
rec_model = fd.vision.ocr.Recognizer(
|
||||
rec_model_file,
|
||||
rec_params_file,
|
||||
rec_label_file,
|
||||
runtime_option=runtime_option)
|
||||
rec_model_file, rec_params_file, rec_label_file, runtime_option=rec_option)
|
||||
|
||||
# 创建PP-OCR,串联3个模型,其中cls_model可选,如无需求,可设置为None
|
||||
ppocr_v2 = fd.vision.ocr.PPOCRv2(
|
||||
|
@@ -29,9 +29,25 @@ void InitAndInfer(const std::string& det_model_dir, const std::string& cls_model
|
||||
auto rec_model_file = rec_model_dir + sep + "inference.pdmodel";
|
||||
auto rec_params_file = rec_model_dir + sep + "inference.pdiparams";
|
||||
|
||||
auto det_model = fastdeploy::vision::ocr::DBDetector(det_model_file, det_params_file, option);
|
||||
auto cls_model = fastdeploy::vision::ocr::Classifier(cls_model_file, cls_params_file, option);
|
||||
auto rec_model = fastdeploy::vision::ocr::Recognizer(rec_model_file, rec_params_file, rec_label_file, option);
|
||||
auto det_option = option;
|
||||
auto cls_option = option;
|
||||
auto rec_option = option;
|
||||
|
||||
// If use TRT backend, the dynamic shape will be set as follow.
|
||||
det_option.SetTrtInputShape("x", {1, 3, 50, 50}, {1, 3, 640, 640},
|
||||
{1, 3, 1536, 1536});
|
||||
cls_option.SetTrtInputShape("x", {1, 3, 48, 10}, {1, 3, 48, 320}, {1, 3, 48, 1024});
|
||||
rec_option.SetTrtInputShape("x", {1, 3, 48, 10}, {1, 3, 48, 320},
|
||||
{1, 3, 48, 2304});
|
||||
|
||||
// Users could save TRT cache file to disk as follow.
|
||||
// det_option.SetTrtCacheFile(det_model_dir + sep + "det_trt_cache.trt");
|
||||
// cls_option.SetTrtCacheFile(cls_model_dir + sep + "cls_trt_cache.trt");
|
||||
// rec_option.SetTrtCacheFile(rec_model_dir + sep + "rec_trt_cache.trt");
|
||||
|
||||
auto det_model = fastdeploy::vision::ocr::DBDetector(det_model_file, det_params_file, det_option);
|
||||
auto cls_model = fastdeploy::vision::ocr::Classifier(cls_model_file, cls_params_file, cls_option);
|
||||
auto rec_model = fastdeploy::vision::ocr::Recognizer(rec_model_file, rec_params_file, rec_label_file, rec_option);
|
||||
|
||||
assert(det_model.Initialized());
|
||||
assert(cls_model.Initialized());
|
||||
|
@@ -100,15 +100,29 @@ rec_label_file = args.rec_label_file
|
||||
# 用户也可根据自行需求分别配置
|
||||
runtime_option = build_option(args)
|
||||
|
||||
det_option = runtime_option
|
||||
cls_option = runtime_option
|
||||
rec_option = runtime_option
|
||||
|
||||
# 当使用TRT时,分别给三个Runtime设置动态shape
|
||||
det_option.set_trt_input_shape("x", [1, 3, 50, 50], [1, 3, 640, 640],
|
||||
[1, 3, 1536, 1536])
|
||||
cls_option.set_trt_input_shape("x", [1, 3, 48, 10], [1, 3, 48, 320],
|
||||
[1, 3, 48, 1024])
|
||||
rec_option.set_trt_input_shape("x", [1, 3, 48, 10], [1, 3, 48, 320],
|
||||
[1, 3, 48, 2304])
|
||||
|
||||
# 用户可以把TRT引擎文件保存至本地
|
||||
# det_option.set_trt_cache_file(args.det_model + "/det_trt_cache.trt")
|
||||
# cls_option.set_trt_cache_file(args.cls_model + "/cls_trt_cache.trt")
|
||||
# rec_option.set_trt_cache_file(args.rec_model + "/rec_trt_cache.trt")
|
||||
|
||||
det_model = fd.vision.ocr.DBDetector(
|
||||
det_model_file, det_params_file, runtime_option=runtime_option)
|
||||
det_model_file, det_params_file, runtime_option=det_option)
|
||||
cls_model = fd.vision.ocr.Classifier(
|
||||
cls_model_file, cls_params_file, runtime_option=runtime_option)
|
||||
cls_model_file, cls_params_file, runtime_option=cls_option)
|
||||
rec_model = fd.vision.ocr.Recognizer(
|
||||
rec_model_file,
|
||||
rec_params_file,
|
||||
rec_label_file,
|
||||
runtime_option=runtime_option)
|
||||
rec_model_file, rec_params_file, rec_label_file, runtime_option=rec_option)
|
||||
|
||||
# 创建PP-OCR,串联3个模型,其中cls_model可选,如无需求,可设置为None
|
||||
ppocr_v3 = fd.vision.ocr.PPOCRv3(
|
||||
|
Reference in New Issue
Block a user