[Benchmark] Add ppocr && ppseg benchmark (#1344)

* add GPL lisence

* add GPL-3.0 lisence

* add GPL-3.0 lisence

* add GPL-3.0 lisence

* support yolov8

* add pybind for yolov8

* add yolov8 readme

* add cpp benchmark

* add cpu and gpu mem

* public part split

* add runtime mode

* fixed bugs

* add cpu_thread_nums

* deal with comments

* deal with comments

* deal with comments

* rm useless code

* add FASTDEPLOY_DECL

* add FASTDEPLOY_DECL

* fixed for windows

* mv rss to pss

* mv rss to pss

* Update utils.cc

* use thread to collect mem

* Add ResourceUsageMonitor

* rm useless code

* fixed bug

* fixed typo

* update ResourceUsageMonitor

* fixed bug

* fixed bug

* add note for ResourceUsageMonitor

* deal with comments

* add macros

* deal with comments

* deal with comments

* deal with comments

* re-lint

* rm pmap and use mem api

* rm pmap and use mem api

* add mem api

* Add PrintBenchmarkInfo func

* Add PrintBenchmarkInfo func

* Add PrintBenchmarkInfo func

* deal with comments

* fixed enable_paddle_to_trt

* add log for paddle_trt

* support ppcls benchmark

* use new trt option api

* update benchmark info

* simplify benchmark.cc

* simplify benchmark.cc

* deal with comments

* Add ppseg && ppocr benchmark

* add OCR rec img

* add ocr benchmark

* fixed trt shape

* add trt shape

* resolve conflict

* add ENABLE_BENCHMARK define

---------

Co-authored-by: DefTruth <31974251+DefTruth@users.noreply.github.com>
This commit is contained in:
WJJ1995
2023-02-20 15:59:27 +08:00
committed by GitHub
parent 1b499f3de2
commit b6658b8094
11 changed files with 182 additions and 22 deletions

View File

@@ -38,7 +38,7 @@ def parse_arguments():
parser.add_argument(
"--rec_label_file",
required=True,
help="Path of Recognization model of PPOCR.")
help="Path of Recognization label file of PPOCR.")
parser.add_argument(
"--image", type=str, required=False, help="Path of test image file.")
parser.add_argument(
@@ -272,19 +272,19 @@ if __name__ == '__main__':
if "OCRv2" in args.model_dir:
det_option = option
if args.backend in ["trt", "paddle_trt"]:
det_option.set_trt_input_shape(
det_option.trt_option.set_shape(
"x", [1, 3, 64, 64], [1, 3, 640, 640], [1, 3, 960, 960])
det_model = fd.vision.ocr.DBDetector(
det_model_file, det_params_file, runtime_option=det_option)
cls_option = option
if args.backend in ["trt", "paddle_trt"]:
cls_option.set_trt_input_shape(
cls_option.trt_option.set_shape(
"x", [1, 3, 48, 10], [10, 3, 48, 320], [64, 3, 48, 1024])
cls_model = fd.vision.ocr.Classifier(
cls_model_file, cls_params_file, runtime_option=cls_option)
rec_option = option
if args.backend in ["trt", "paddle_trt"]:
rec_option.set_trt_input_shape(
rec_option.trt_option.set_shape(
"x", [1, 3, 32, 10], [10, 3, 32, 320], [32, 3, 32, 2304])
rec_model = fd.vision.ocr.Recognizer(
rec_model_file,
@@ -296,19 +296,19 @@ if __name__ == '__main__':
elif "OCRv3" in args.model_dir:
det_option = option
if args.backend in ["trt", "paddle_trt"]:
det_option.set_trt_input_shape(
det_option.trt_option.set_shape(
"x", [1, 3, 64, 64], [1, 3, 640, 640], [1, 3, 960, 960])
det_model = fd.vision.ocr.DBDetector(
det_model_file, det_params_file, runtime_option=det_option)
cls_option = option
if args.backend in ["trt", "paddle_trt"]:
cls_option.set_trt_input_shape(
cls_option.trt_option.set_shape(
"x", [1, 3, 48, 10], [10, 3, 48, 320], [64, 3, 48, 1024])
cls_model = fd.vision.ocr.Classifier(
cls_model_file, cls_params_file, runtime_option=cls_option)
rec_option = option
if args.backend in ["trt", "paddle_trt"]:
rec_option.set_trt_input_shape(
rec_option.trt_option.set_shape(
"x", [1, 3, 48, 10], [10, 3, 48, 320], [64, 3, 48, 2304])
rec_model = fd.vision.ocr.Recognizer(
rec_model_file,

View File

@@ -83,18 +83,18 @@ def build_option(args):
elif backend in ["trt", "paddle_trt"]:
option.use_trt_backend()
if "Deeplabv3_ResNet101" in args.model or "FCN_HRNet_W18" in args.model or "Unet_cityscapes" in args.model or "PP_LiteSeg_B_STDC2_cityscapes" in args.model:
option.set_trt_input_shape("x", [1, 3, 1024, 2048],
[1, 3, 1024,
2048], [1, 3, 1024, 2048])
option.trt_option.set_shape("x", [1, 3, 1024, 2048],
[1, 3, 1024, 2048],
[1, 3, 1024, 2048])
elif "Portrait_PP_HumanSegV2_Lite_256x144" in args.model:
option.set_trt_input_shape("x", [1, 3, 144, 256],
[1, 3, 144, 256], [1, 3, 144, 256])
option.trt_option.set_shape(
"x", [1, 3, 144, 256], [1, 3, 144, 256], [1, 3, 144, 256])
elif "PP_HumanSegV1_Server" in args.model:
option.set_trt_input_shape("x", [1, 3, 512, 512],
[1, 3, 512, 512], [1, 3, 512, 512])
option.trt_option.set_shape(
"x", [1, 3, 512, 512], [1, 3, 512, 512], [1, 3, 512, 512])
else:
option.set_trt_input_shape("x", [1, 3, 192, 192],
[1, 3, 192, 192], [1, 3, 192, 192])
option.trt_option.set_shape(
"x", [1, 3, 192, 192], [1, 3, 192, 192], [1, 3, 192, 192])
if backend == "paddle_trt":
option.paddle_infer_option.collect_trt_shape = True
option.use_paddle_infer_backend()

View File

@@ -80,22 +80,22 @@ def build_option(args):
option.use_paddle_infer_backend()
option.paddle_infer_option.enable_trt = True
trt_file = os.path.join(args.model_dir, "infer.trt")
option.set_trt_input_shape(
option.trt_option.set_shape(
'input_ids',
min_shape=[1, 1],
opt_shape=[args.batch_size, args.max_length // 2],
max_shape=[args.batch_size, args.max_length])
option.set_trt_input_shape(
option.trt_option.set_shape(
'token_type_ids',
min_shape=[1, 1],
opt_shape=[args.batch_size, args.max_length // 2],
max_shape=[args.batch_size, args.max_length])
option.set_trt_input_shape(
option.trt_option.set_shape(
'pos_ids',
min_shape=[1, 1],
opt_shape=[args.batch_size, args.max_length // 2],
max_shape=[args.batch_size, args.max_length])
option.set_trt_input_shape(
option.trt_option.set_shape(
'att_mask',
min_shape=[1, 1],
opt_shape=[args.batch_size, args.max_length // 2],