paddlex 3.0.0rc1__py3-none-any.whl → 3.0.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- paddlex/.version +1 -1
- paddlex/__init__.py +1 -1
- paddlex/configs/modules/chart_parsing/PP-Chart2Table.yaml +13 -0
- paddlex/configs/modules/doc_vlm/PP-DocBee2-3B.yaml +14 -0
- paddlex/configs/modules/formula_recognition/PP-FormulaNet_plus-L.yaml +40 -0
- paddlex/configs/modules/formula_recognition/PP-FormulaNet_plus-M.yaml +40 -0
- paddlex/configs/modules/formula_recognition/PP-FormulaNet_plus-S.yaml +40 -0
- paddlex/configs/modules/layout_detection/PP-DocBlockLayout.yaml +40 -0
- paddlex/configs/modules/layout_detection/PP-DocLayout-L.yaml +2 -2
- paddlex/configs/modules/layout_detection/PP-DocLayout-M.yaml +2 -2
- paddlex/configs/modules/layout_detection/PP-DocLayout-S.yaml +2 -2
- paddlex/configs/modules/layout_detection/PP-DocLayout_plus-L.yaml +40 -0
- paddlex/configs/modules/text_detection/PP-OCRv5_mobile_det.yaml +40 -0
- paddlex/configs/modules/text_detection/PP-OCRv5_server_det.yaml +40 -0
- paddlex/configs/modules/text_recognition/PP-OCRv5_mobile_rec.yaml +39 -0
- paddlex/configs/modules/text_recognition/PP-OCRv5_server_rec.yaml +39 -0
- paddlex/configs/modules/textline_orientation/PP-LCNet_x1_0_textline_ori.yaml +41 -0
- paddlex/configs/pipelines/OCR.yaml +7 -6
- paddlex/configs/pipelines/PP-ChatOCRv3-doc.yaml +3 -1
- paddlex/configs/pipelines/PP-ChatOCRv4-doc.yaml +91 -34
- paddlex/configs/pipelines/PP-StructureV3.yaml +72 -72
- paddlex/configs/pipelines/doc_understanding.yaml +1 -1
- paddlex/configs/pipelines/formula_recognition.yaml +2 -2
- paddlex/configs/pipelines/layout_parsing.yaml +3 -2
- paddlex/configs/pipelines/seal_recognition.yaml +1 -0
- paddlex/configs/pipelines/table_recognition.yaml +2 -1
- paddlex/configs/pipelines/table_recognition_v2.yaml +7 -1
- paddlex/hpip_links.html +20 -20
- paddlex/inference/common/batch_sampler/doc_vlm_batch_sampler.py +33 -10
- paddlex/inference/common/batch_sampler/image_batch_sampler.py +34 -25
- paddlex/inference/common/result/mixin.py +19 -12
- paddlex/inference/models/base/predictor/base_predictor.py +2 -8
- paddlex/inference/models/common/static_infer.py +11 -59
- paddlex/inference/models/common/tokenizer/__init__.py +2 -0
- paddlex/inference/models/common/tokenizer/clip_tokenizer.py +1 -1
- paddlex/inference/models/common/tokenizer/gpt_tokenizer.py +2 -2
- paddlex/inference/models/common/tokenizer/qwen2_5_tokenizer.py +112 -0
- paddlex/inference/models/common/tokenizer/qwen2_tokenizer.py +7 -1
- paddlex/inference/models/common/tokenizer/qwen_tokenizer.py +288 -0
- paddlex/inference/models/common/tokenizer/tokenizer_utils.py +13 -13
- paddlex/inference/models/common/tokenizer/tokenizer_utils_base.py +3 -3
- paddlex/inference/models/common/tokenizer/vocab.py +7 -7
- paddlex/inference/models/common/vlm/conversion_utils.py +99 -0
- paddlex/inference/models/common/vlm/fusion_ops.py +205 -0
- paddlex/inference/models/common/vlm/generation/configuration_utils.py +1 -1
- paddlex/inference/models/common/vlm/generation/logits_process.py +1 -1
- paddlex/inference/models/common/vlm/generation/utils.py +1 -1
- paddlex/inference/models/common/vlm/transformers/configuration_utils.py +3 -3
- paddlex/inference/models/common/vlm/transformers/conversion_utils.py +3 -3
- paddlex/inference/models/common/vlm/transformers/model_outputs.py +2 -2
- paddlex/inference/models/common/vlm/transformers/model_utils.py +7 -31
- paddlex/inference/models/doc_vlm/modeling/GOT_ocr_2_0.py +830 -0
- paddlex/inference/models/doc_vlm/modeling/__init__.py +2 -0
- paddlex/inference/models/doc_vlm/modeling/qwen2.py +1606 -0
- paddlex/inference/models/doc_vlm/modeling/qwen2_5_vl.py +3006 -0
- paddlex/inference/models/doc_vlm/modeling/qwen2_vl.py +0 -105
- paddlex/inference/models/doc_vlm/predictor.py +79 -24
- paddlex/inference/models/doc_vlm/processors/GOT_ocr_2_0.py +97 -0
- paddlex/inference/models/doc_vlm/processors/__init__.py +2 -0
- paddlex/inference/models/doc_vlm/processors/common.py +189 -0
- paddlex/inference/models/doc_vlm/processors/qwen2_5_vl.py +548 -0
- paddlex/inference/models/doc_vlm/processors/qwen2_vl.py +21 -176
- paddlex/inference/models/formula_recognition/predictor.py +7 -1
- paddlex/inference/models/formula_recognition/processors.py +92 -79
- paddlex/inference/models/formula_recognition/result.py +28 -27
- paddlex/inference/models/image_feature/processors.py +3 -4
- paddlex/inference/models/keypoint_detection/predictor.py +3 -0
- paddlex/inference/models/object_detection/predictor.py +2 -0
- paddlex/inference/models/object_detection/processors.py +28 -3
- paddlex/inference/models/object_detection/utils.py +2 -0
- paddlex/inference/models/table_structure_recognition/result.py +0 -10
- paddlex/inference/models/text_detection/predictor.py +8 -0
- paddlex/inference/models/text_detection/processors.py +44 -10
- paddlex/inference/models/text_detection/result.py +0 -10
- paddlex/inference/pipelines/__init__.py +9 -5
- paddlex/inference/pipelines/_parallel.py +172 -0
- paddlex/inference/pipelines/anomaly_detection/pipeline.py +16 -6
- paddlex/inference/pipelines/attribute_recognition/pipeline.py +11 -1
- paddlex/inference/pipelines/base.py +14 -4
- paddlex/inference/pipelines/components/faisser.py +1 -1
- paddlex/inference/pipelines/doc_preprocessor/pipeline.py +53 -27
- paddlex/inference/pipelines/formula_recognition/pipeline.py +120 -82
- paddlex/inference/pipelines/formula_recognition/result.py +1 -11
- paddlex/inference/pipelines/image_classification/pipeline.py +16 -6
- paddlex/inference/pipelines/image_multilabel_classification/pipeline.py +16 -6
- paddlex/inference/pipelines/instance_segmentation/pipeline.py +16 -6
- paddlex/inference/pipelines/keypoint_detection/pipeline.py +16 -6
- paddlex/inference/pipelines/layout_parsing/pipeline.py +34 -47
- paddlex/inference/pipelines/layout_parsing/pipeline_v2.py +893 -260
- paddlex/inference/pipelines/layout_parsing/result.py +4 -17
- paddlex/inference/pipelines/layout_parsing/result_v2.py +523 -245
- paddlex/inference/pipelines/layout_parsing/setting.py +87 -0
- paddlex/inference/pipelines/layout_parsing/utils.py +565 -1998
- paddlex/inference/pipelines/layout_parsing/xycut_enhanced/__init__.py +16 -0
- paddlex/inference/pipelines/layout_parsing/xycut_enhanced/utils.py +1144 -0
- paddlex/inference/pipelines/layout_parsing/xycut_enhanced/xycuts.py +563 -0
- paddlex/inference/pipelines/m_3d_bev_detection/pipeline.py +2 -2
- paddlex/inference/pipelines/multilingual_speech_recognition/pipeline.py +2 -2
- paddlex/inference/pipelines/object_detection/pipeline.py +16 -6
- paddlex/inference/pipelines/ocr/pipeline.py +127 -70
- paddlex/inference/pipelines/ocr/result.py +19 -16
- paddlex/inference/pipelines/open_vocabulary_detection/pipeline.py +2 -2
- paddlex/inference/pipelines/open_vocabulary_segmentation/pipeline.py +2 -2
- paddlex/inference/pipelines/pp_chatocr/pipeline_base.py +2 -2
- paddlex/inference/pipelines/pp_chatocr/pipeline_v3.py +2 -5
- paddlex/inference/pipelines/pp_chatocr/pipeline_v4.py +5 -5
- paddlex/inference/pipelines/rotated_object_detection/pipeline.py +16 -6
- paddlex/inference/pipelines/seal_recognition/pipeline.py +109 -53
- paddlex/inference/pipelines/semantic_segmentation/pipeline.py +16 -6
- paddlex/inference/pipelines/small_object_detection/pipeline.py +16 -6
- paddlex/inference/pipelines/table_recognition/pipeline.py +26 -18
- paddlex/inference/pipelines/table_recognition/pipeline_v2.py +624 -53
- paddlex/inference/pipelines/table_recognition/result.py +1 -1
- paddlex/inference/pipelines/table_recognition/table_recognition_post_processing_v2.py +9 -5
- paddlex/inference/pipelines/ts_anomaly_detection/pipeline.py +2 -2
- paddlex/inference/pipelines/ts_classification/pipeline.py +2 -2
- paddlex/inference/pipelines/ts_forecasting/pipeline.py +2 -2
- paddlex/inference/pipelines/video_classification/pipeline.py +2 -2
- paddlex/inference/pipelines/video_detection/pipeline.py +2 -2
- paddlex/inference/serving/basic_serving/_pipeline_apps/_common/common.py +5 -1
- paddlex/inference/serving/basic_serving/_pipeline_apps/layout_parsing.py +0 -1
- paddlex/inference/serving/basic_serving/_pipeline_apps/pp_chatocrv3_doc.py +0 -1
- paddlex/inference/serving/basic_serving/_pipeline_apps/pp_chatocrv4_doc.py +1 -1
- paddlex/inference/serving/basic_serving/_pipeline_apps/pp_structurev3.py +6 -2
- paddlex/inference/serving/basic_serving/_pipeline_apps/table_recognition.py +1 -5
- paddlex/inference/serving/basic_serving/_pipeline_apps/table_recognition_v2.py +4 -5
- paddlex/inference/serving/infra/utils.py +20 -22
- paddlex/inference/serving/schemas/formula_recognition.py +1 -1
- paddlex/inference/serving/schemas/layout_parsing.py +1 -2
- paddlex/inference/serving/schemas/pp_chatocrv3_doc.py +1 -2
- paddlex/inference/serving/schemas/pp_chatocrv4_doc.py +2 -2
- paddlex/inference/serving/schemas/pp_structurev3.py +10 -6
- paddlex/inference/serving/schemas/seal_recognition.py +1 -1
- paddlex/inference/serving/schemas/table_recognition.py +2 -6
- paddlex/inference/serving/schemas/table_recognition_v2.py +5 -6
- paddlex/inference/utils/hpi.py +8 -1
- paddlex/inference/utils/hpi_model_info_collection.json +81 -2
- paddlex/inference/utils/io/readers.py +12 -12
- paddlex/inference/utils/mkldnn_blocklist.py +25 -0
- paddlex/inference/utils/official_models.py +14 -0
- paddlex/inference/utils/pp_option.py +29 -8
- paddlex/model.py +2 -2
- paddlex/modules/__init__.py +1 -1
- paddlex/modules/anomaly_detection/evaluator.py +2 -2
- paddlex/modules/base/__init__.py +1 -1
- paddlex/modules/base/evaluator.py +5 -5
- paddlex/modules/base/trainer.py +1 -1
- paddlex/modules/doc_vlm/dataset_checker.py +2 -2
- paddlex/modules/doc_vlm/evaluator.py +2 -2
- paddlex/modules/doc_vlm/exportor.py +2 -2
- paddlex/modules/doc_vlm/model_list.py +1 -1
- paddlex/modules/doc_vlm/trainer.py +2 -2
- paddlex/modules/face_recognition/evaluator.py +2 -2
- paddlex/modules/formula_recognition/evaluator.py +5 -2
- paddlex/modules/formula_recognition/model_list.py +3 -0
- paddlex/modules/formula_recognition/trainer.py +3 -0
- paddlex/modules/general_recognition/evaluator.py +1 -1
- paddlex/modules/image_classification/evaluator.py +2 -2
- paddlex/modules/image_classification/model_list.py +1 -0
- paddlex/modules/instance_segmentation/evaluator.py +1 -1
- paddlex/modules/keypoint_detection/evaluator.py +1 -1
- paddlex/modules/m_3d_bev_detection/evaluator.py +2 -2
- paddlex/modules/multilabel_classification/evaluator.py +2 -2
- paddlex/modules/object_detection/dataset_checker/dataset_src/convert_dataset.py +4 -4
- paddlex/modules/object_detection/evaluator.py +2 -2
- paddlex/modules/object_detection/model_list.py +2 -0
- paddlex/modules/semantic_segmentation/evaluator.py +2 -2
- paddlex/modules/table_recognition/evaluator.py +2 -2
- paddlex/modules/text_detection/evaluator.py +2 -2
- paddlex/modules/text_detection/model_list.py +2 -0
- paddlex/modules/text_recognition/evaluator.py +2 -2
- paddlex/modules/text_recognition/model_list.py +2 -0
- paddlex/modules/ts_anomaly_detection/evaluator.py +2 -2
- paddlex/modules/ts_classification/dataset_checker/dataset_src/split_dataset.py +1 -1
- paddlex/modules/ts_classification/evaluator.py +2 -2
- paddlex/modules/ts_forecast/evaluator.py +2 -2
- paddlex/modules/video_classification/evaluator.py +2 -2
- paddlex/modules/video_detection/evaluator.py +2 -2
- paddlex/ops/__init__.py +2 -2
- paddlex/paddlex_cli.py +19 -13
- paddlex/repo_apis/Paddle3D_api/bev_fusion/model.py +2 -2
- paddlex/repo_apis/PaddleClas_api/cls/config.py +1 -1
- paddlex/repo_apis/PaddleClas_api/cls/model.py +1 -1
- paddlex/repo_apis/PaddleClas_api/cls/register.py +10 -0
- paddlex/repo_apis/PaddleClas_api/cls/runner.py +1 -1
- paddlex/repo_apis/PaddleDetection_api/instance_seg/model.py +1 -1
- paddlex/repo_apis/PaddleDetection_api/instance_seg/runner.py +1 -1
- paddlex/repo_apis/PaddleDetection_api/object_det/config.py +1 -1
- paddlex/repo_apis/PaddleDetection_api/object_det/model.py +1 -1
- paddlex/repo_apis/PaddleDetection_api/object_det/official_categories.py +25 -0
- paddlex/repo_apis/PaddleDetection_api/object_det/register.py +30 -0
- paddlex/repo_apis/PaddleDetection_api/object_det/runner.py +1 -1
- paddlex/repo_apis/PaddleOCR_api/formula_rec/config.py +3 -3
- paddlex/repo_apis/PaddleOCR_api/formula_rec/model.py +5 -9
- paddlex/repo_apis/PaddleOCR_api/formula_rec/register.py +27 -0
- paddlex/repo_apis/PaddleOCR_api/formula_rec/runner.py +1 -1
- paddlex/repo_apis/PaddleOCR_api/table_rec/model.py +1 -1
- paddlex/repo_apis/PaddleOCR_api/table_rec/runner.py +1 -1
- paddlex/repo_apis/PaddleOCR_api/text_det/model.py +1 -1
- paddlex/repo_apis/PaddleOCR_api/text_det/register.py +18 -0
- paddlex/repo_apis/PaddleOCR_api/text_det/runner.py +1 -1
- paddlex/repo_apis/PaddleOCR_api/text_rec/config.py +3 -3
- paddlex/repo_apis/PaddleOCR_api/text_rec/model.py +5 -9
- paddlex/repo_apis/PaddleOCR_api/text_rec/register.py +18 -0
- paddlex/repo_apis/PaddleOCR_api/text_rec/runner.py +1 -1
- paddlex/repo_apis/PaddleSeg_api/seg/model.py +1 -1
- paddlex/repo_apis/PaddleSeg_api/seg/runner.py +1 -1
- paddlex/repo_apis/PaddleTS_api/ts_ad/config.py +3 -3
- paddlex/repo_apis/PaddleTS_api/ts_cls/config.py +2 -2
- paddlex/repo_apis/PaddleTS_api/ts_fc/config.py +4 -4
- paddlex/repo_apis/PaddleVideo_api/video_cls/config.py +1 -1
- paddlex/repo_apis/PaddleVideo_api/video_cls/model.py +1 -1
- paddlex/repo_apis/PaddleVideo_api/video_cls/runner.py +1 -1
- paddlex/repo_apis/PaddleVideo_api/video_det/config.py +1 -1
- paddlex/repo_apis/PaddleVideo_api/video_det/model.py +1 -1
- paddlex/repo_apis/PaddleVideo_api/video_det/runner.py +1 -1
- paddlex/repo_apis/base/config.py +1 -1
- paddlex/repo_manager/core.py +3 -3
- paddlex/repo_manager/meta.py +6 -2
- paddlex/repo_manager/repo.py +17 -16
- paddlex/utils/custom_device_list.py +26 -2
- paddlex/utils/deps.py +1 -1
- paddlex/utils/device.py +15 -8
- paddlex/utils/env.py +4 -0
- paddlex/utils/flags.py +2 -4
- paddlex/utils/fonts/__init__.py +34 -4
- paddlex/utils/misc.py +1 -1
- {paddlex-3.0.0rc1.dist-info → paddlex-3.0.1.dist-info}/METADATA +52 -56
- {paddlex-3.0.0rc1.dist-info → paddlex-3.0.1.dist-info}/RECORD +233 -206
- {paddlex-3.0.0rc1.dist-info → paddlex-3.0.1.dist-info}/WHEEL +1 -1
- {paddlex-3.0.0rc1.dist-info → paddlex-3.0.1.dist-info}/entry_points.txt +0 -0
- {paddlex-3.0.0rc1.dist-info → paddlex-3.0.1.dist-info}/licenses/LICENSE +0 -0
- {paddlex-3.0.0rc1.dist-info → paddlex-3.0.1.dist-info}/top_level.txt +0 -0
@@ -120,7 +120,7 @@ class TableRecognitionResult(BaseCVResult, HtmlMixin, XlsxMixin):
|
|
120
120
|
|
121
121
|
if len(self["table_res_list"]) > 0:
|
122
122
|
table_cell_img = Image.fromarray(
|
123
|
-
copy.deepcopy(self["doc_preprocessor_res"]["output_img"])
|
123
|
+
copy.deepcopy(self["doc_preprocessor_res"]["output_img"][:, :, ::-1])
|
124
124
|
)
|
125
125
|
table_draw = ImageDraw.Draw(table_cell_img)
|
126
126
|
rectangle_color = (255, 0, 0)
|
@@ -131,8 +131,8 @@ def compute_inter(rec1, rec2):
|
|
131
131
|
Returns:
|
132
132
|
float: Intersection over rec2_area
|
133
133
|
"""
|
134
|
-
x1_1, y1_1, x2_1, y2_1 = rec1
|
135
|
-
x1_2, y1_2, x2_2, y2_2 = rec2
|
134
|
+
x1_1, y1_1, x2_1, y2_1 = map(float, rec1)
|
135
|
+
x1_2, y1_2, x2_2, y2_2 = map(float, rec2)
|
136
136
|
x_left = max(x1_1, x1_2)
|
137
137
|
y_top = max(y1_1, y1_2)
|
138
138
|
x_right = min(x2_1, x2_2)
|
@@ -413,8 +413,10 @@ def get_table_recognition_res(
|
|
413
413
|
table_structure_result: list,
|
414
414
|
table_cells_result: list,
|
415
415
|
overall_ocr_res: OCRResult,
|
416
|
+
table_ocr_pred: dict,
|
416
417
|
cells_texts_list: list,
|
417
418
|
use_table_cells_ocr_results: bool,
|
419
|
+
use_table_cells_split_ocr: bool,
|
418
420
|
) -> SingleTableRecognitionResult:
|
419
421
|
"""
|
420
422
|
Retrieve table recognition result from cropped image info, table structure prediction, and overall OCR result.
|
@@ -424,6 +426,7 @@ def get_table_recognition_res(
|
|
424
426
|
table_structure_result (list): Predicted table structure.
|
425
427
|
table_cells_result (list): Predicted table cells.
|
426
428
|
overall_ocr_res (OCRResult): Overall OCR result from the input image.
|
429
|
+
table_ocr_pred (dict): Table OCR result from the input image.
|
427
430
|
cells_texts_list (list): OCR results with cells.
|
428
431
|
use_table_cells_ocr_results (bool): whether to use OCR results with cells.
|
429
432
|
|
@@ -432,9 +435,10 @@ def get_table_recognition_res(
|
|
432
435
|
"""
|
433
436
|
|
434
437
|
table_cells_result = convert_to_four_point_coordinates(table_cells_result)
|
435
|
-
|
436
438
|
table_box = np.array([table_box])
|
437
|
-
|
439
|
+
|
440
|
+
if not (use_table_cells_ocr_results == True and use_table_cells_split_ocr == True):
|
441
|
+
table_ocr_pred = get_sub_regions_ocr_res(overall_ocr_res, table_box)
|
438
442
|
|
439
443
|
crop_start_point = [table_box[0][0], table_box[0][1]]
|
440
444
|
img_shape = overall_ocr_res["doc_preprocessor_res"]["output_img"].shape[0:2]
|
@@ -456,7 +460,7 @@ def get_table_recognition_res(
|
|
456
460
|
table_cells_result, crop_start_point, img_shape
|
457
461
|
)
|
458
462
|
|
459
|
-
if use_table_cells_ocr_results == True:
|
463
|
+
if use_table_cells_ocr_results == True and use_table_cells_split_ocr == False:
|
460
464
|
ocr_dt_boxes = table_cells_result
|
461
465
|
ocr_texts_res = cells_texts_list
|
462
466
|
else:
|
@@ -44,9 +44,9 @@ class TSAnomalyDetPipeline(BasePipeline):
|
|
44
44
|
device (str, optional): Device to run the predictions on. Defaults to None.
|
45
45
|
pp_option (PaddlePredictorOption, optional): PaddlePredictor options. Defaults to None.
|
46
46
|
use_hpip (bool, optional): Whether to use the high-performance
|
47
|
-
inference plugin (HPIP). Defaults to False.
|
47
|
+
inference plugin (HPIP) by default. Defaults to False.
|
48
48
|
hpi_config (Optional[Union[Dict[str, Any], HPIConfig]], optional):
|
49
|
-
The high-performance inference configuration dictionary.
|
49
|
+
The default high-performance inference configuration dictionary.
|
50
50
|
Defaults to None.
|
51
51
|
"""
|
52
52
|
|
@@ -44,9 +44,9 @@ class TSClsPipeline(BasePipeline):
|
|
44
44
|
device (str, optional): Device to run the predictions on. Defaults to None.
|
45
45
|
pp_option (PaddlePredictorOption, optional): PaddlePredictor options. Defaults to None.
|
46
46
|
use_hpip (bool, optional): Whether to use the high-performance
|
47
|
-
inference plugin (HPIP). Defaults to False.
|
47
|
+
inference plugin (HPIP) by default. Defaults to False.
|
48
48
|
hpi_config (Optional[Union[Dict[str, Any], HPIConfig]], optional):
|
49
|
-
The high-performance inference configuration dictionary.
|
49
|
+
The default high-performance inference configuration dictionary.
|
50
50
|
Defaults to None.
|
51
51
|
"""
|
52
52
|
|
@@ -44,9 +44,9 @@ class TSFcPipeline(BasePipeline):
|
|
44
44
|
device (str, optional): Device to run the predictions on. Defaults to None.
|
45
45
|
pp_option (PaddlePredictorOption, optional): PaddlePredictor options. Defaults to None.
|
46
46
|
use_hpip (bool, optional): Whether to use the high-performance
|
47
|
-
inference plugin (HPIP). Defaults to False.
|
47
|
+
inference plugin (HPIP) by default. Defaults to False.
|
48
48
|
hpi_config (Optional[Union[Dict[str, Any], HPIConfig]], optional):
|
49
|
-
The high-performance inference configuration dictionary.
|
49
|
+
The default high-performance inference configuration dictionary.
|
50
50
|
Defaults to None.
|
51
51
|
"""
|
52
52
|
|
@@ -45,9 +45,9 @@ class VideoClassificationPipeline(BasePipeline):
|
|
45
45
|
device (str): The device to run the prediction on. Default is None.
|
46
46
|
pp_option (PaddlePredictorOption): Options for PaddlePaddle predictor. Default is None.
|
47
47
|
use_hpip (bool, optional): Whether to use the high-performance
|
48
|
-
inference plugin (HPIP). Defaults to False.
|
48
|
+
inference plugin (HPIP) by default. Defaults to False.
|
49
49
|
hpi_config (Optional[Union[Dict[str, Any], HPIConfig]], optional):
|
50
|
-
The high-performance inference configuration dictionary.
|
50
|
+
The default high-performance inference configuration dictionary.
|
51
51
|
Defaults to None.
|
52
52
|
"""
|
53
53
|
super().__init__(
|
@@ -45,9 +45,9 @@ class VideoDetectionPipeline(BasePipeline):
|
|
45
45
|
device (str): The device to run the prediction on. Default is None.
|
46
46
|
pp_option (PaddlePredictorOption): Options for PaddlePaddle predictor. Default is None.
|
47
47
|
use_hpip (bool, optional): Whether to use the high-performance
|
48
|
-
inference plugin (HPIP). Defaults to False.
|
48
|
+
inference plugin (HPIP) by default. Defaults to False.
|
49
49
|
hpi_config (Optional[Union[Dict[str, Any], HPIConfig]], optional):
|
50
|
-
The high-performance inference configuration dictionary.
|
50
|
+
The default high-performance inference configuration dictionary.
|
51
51
|
Defaults to None.
|
52
52
|
"""
|
53
53
|
super().__init__(
|
@@ -90,7 +90,11 @@ def postprocess_images(
|
|
90
90
|
output_images: Dict[str, str] = {}
|
91
91
|
for key, img in images.items():
|
92
92
|
output_images[key] = postprocess_image(
|
93
|
-
|
93
|
+
(
|
94
|
+
cv2.cvtColor(np.array(img.convert("RGB")), cv2.COLOR_RGB2BGR)
|
95
|
+
if isinstance(img, Image)
|
96
|
+
else img
|
97
|
+
),
|
94
98
|
log_id=log_id,
|
95
99
|
filename=filename_template.format(key=key),
|
96
100
|
file_storage=file_storage,
|
@@ -54,7 +54,6 @@ def create_pipeline_app(pipeline: Any, app_config: AppConfig) -> "FastAPI":
|
|
54
54
|
use_doc_orientation_classify=request.useDocOrientationClassify,
|
55
55
|
use_doc_unwarping=request.useDocUnwarping,
|
56
56
|
use_textline_orientation=request.useTextlineOrientation,
|
57
|
-
use_general_ocr=request.useGeneralOcr,
|
58
57
|
use_seal_recognition=request.useSealRecognition,
|
59
58
|
use_table_recognition=request.useTableRecognition,
|
60
59
|
use_formula_recognition=request.useFormulaRecognition,
|
@@ -54,7 +54,6 @@ def create_pipeline_app(pipeline: Any, app_config: AppConfig) -> "FastAPI":
|
|
54
54
|
images,
|
55
55
|
use_doc_orientation_classify=request.useDocOrientationClassify,
|
56
56
|
use_doc_unwarping=request.useDocUnwarping,
|
57
|
-
use_general_ocr=request.useGeneralOcr,
|
58
57
|
use_seal_recognition=request.useSealRecognition,
|
59
58
|
use_table_recognition=request.useTableRecognition,
|
60
59
|
layout_threshold=request.layoutThreshold,
|
@@ -54,7 +54,7 @@ def create_pipeline_app(pipeline: Any, app_config: AppConfig) -> "FastAPI":
|
|
54
54
|
images,
|
55
55
|
use_doc_orientation_classify=request.useDocOrientationClassify,
|
56
56
|
use_doc_unwarping=request.useDocUnwarping,
|
57
|
-
|
57
|
+
use_textline_orientation=request.useTextlineOrientation,
|
58
58
|
use_seal_recognition=request.useSealRecognition,
|
59
59
|
use_table_recognition=request.useTableRecognition,
|
60
60
|
layout_threshold=request.layoutThreshold,
|
@@ -54,10 +54,11 @@ def create_pipeline_app(pipeline: Any, app_config: AppConfig) -> "FastAPI":
|
|
54
54
|
use_doc_orientation_classify=request.useDocOrientationClassify,
|
55
55
|
use_doc_unwarping=request.useDocUnwarping,
|
56
56
|
use_textline_orientation=request.useTextlineOrientation,
|
57
|
-
use_general_ocr=request.useGeneralOcr,
|
58
57
|
use_seal_recognition=request.useSealRecognition,
|
59
58
|
use_table_recognition=request.useTableRecognition,
|
60
59
|
use_formula_recognition=request.useFormulaRecognition,
|
60
|
+
use_chart_recognition=request.useChartRecognition,
|
61
|
+
use_region_detection=request.useRegionDetection,
|
61
62
|
layout_threshold=request.layoutThreshold,
|
62
63
|
layout_nms=request.layoutNms,
|
63
64
|
layout_unclip_ratio=request.layoutUnclipRatio,
|
@@ -74,7 +75,10 @@ def create_pipeline_app(pipeline: Any, app_config: AppConfig) -> "FastAPI":
|
|
74
75
|
seal_det_box_thresh=request.sealDetBoxThresh,
|
75
76
|
seal_det_unclip_ratio=request.sealDetUnclipRatio,
|
76
77
|
seal_rec_score_thresh=request.sealRecScoreThresh,
|
77
|
-
|
78
|
+
use_wired_table_cells_trans_to_html=request.useWiredTableCellsTransToHtml,
|
79
|
+
use_wireless_table_cells_trans_to_html=request.useWirelessTableCellsTransToHtml,
|
80
|
+
use_table_orientation_classify=request.useTableOrientationClassify,
|
81
|
+
use_ocr_results_with_table_cells=request.useOcrResultsWithTableCells,
|
78
82
|
use_e2e_wired_table_rec_model=request.useE2eWiredTableRecModel,
|
79
83
|
use_e2e_wireless_table_rec_model=request.useE2eWirelessTableRecModel,
|
80
84
|
)
|
@@ -53,17 +53,13 @@ def create_pipeline_app(pipeline: Any, app_config: AppConfig) -> "FastAPI":
|
|
53
53
|
use_doc_unwarping=request.useDocUnwarping,
|
54
54
|
use_layout_detection=request.useLayoutDetection,
|
55
55
|
use_ocr_model=request.useOcrModel,
|
56
|
-
layout_threshold=request.layoutThreshold,
|
57
|
-
layout_nms=request.layoutNms,
|
58
|
-
layout_unclip_ratio=request.layoutUnclipRatio,
|
59
|
-
layout_merge_bboxes_mode=request.layoutMergeBboxesMode,
|
60
56
|
text_det_limit_side_len=request.textDetLimitSideLen,
|
61
57
|
text_det_limit_type=request.textDetLimitType,
|
62
58
|
text_det_thresh=request.textDetThresh,
|
63
59
|
text_det_box_thresh=request.textDetBoxThresh,
|
64
60
|
text_det_unclip_ratio=request.textDetUnclipRatio,
|
65
61
|
text_rec_score_thresh=request.textRecScoreThresh,
|
66
|
-
|
62
|
+
use_ocr_results_with_table_cells=request.useOcrResultsWithTableCells,
|
67
63
|
)
|
68
64
|
|
69
65
|
table_rec_results: List[Dict[str, Any]] = []
|
@@ -53,19 +53,18 @@ def create_pipeline_app(pipeline: Any, app_config: AppConfig) -> "FastAPI":
|
|
53
53
|
use_doc_unwarping=request.useDocUnwarping,
|
54
54
|
use_layout_detection=request.useLayoutDetection,
|
55
55
|
use_ocr_model=request.useOcrModel,
|
56
|
-
layout_threshold=request.layoutThreshold,
|
57
|
-
layout_nms=request.layoutNms,
|
58
|
-
layout_unclip_ratio=request.layoutUnclipRatio,
|
59
|
-
layout_merge_bboxes_mode=request.layoutMergeBboxesMode,
|
60
56
|
text_det_limit_side_len=request.textDetLimitSideLen,
|
61
57
|
text_det_limit_type=request.textDetLimitType,
|
62
58
|
text_det_thresh=request.textDetThresh,
|
63
59
|
text_det_box_thresh=request.textDetBoxThresh,
|
64
60
|
text_det_unclip_ratio=request.textDetUnclipRatio,
|
65
61
|
text_rec_score_thresh=request.textRecScoreThresh,
|
66
|
-
use_table_cells_ocr_results=request.useTableCellsOcrResults,
|
67
62
|
use_e2e_wired_table_rec_model=request.useE2eWiredTableRecModel,
|
68
63
|
use_e2e_wireless_table_rec_model=request.useE2eWirelessTableRecModel,
|
64
|
+
use_wired_table_cells_trans_to_html=request.useWiredTableCellsTransToHtml,
|
65
|
+
use_wireless_table_cells_trans_to_html=request.useWirelessTableCellsTransToHtml,
|
66
|
+
use_table_orientation_classify=request.useTableOrientationClassify,
|
67
|
+
use_ocr_results_with_table_cells=request.useOcrResultsWithTableCells,
|
69
68
|
)
|
70
69
|
|
71
70
|
table_rec_results: List[Dict[str, Any]] = []
|
@@ -38,8 +38,8 @@ if is_dep_available("opencv-contrib-python"):
|
|
38
38
|
import cv2
|
39
39
|
if is_dep_available("filetype"):
|
40
40
|
import filetype
|
41
|
-
if is_dep_available("
|
42
|
-
import
|
41
|
+
if is_dep_available("pypdfium2"):
|
42
|
+
import pypdfium2 as pdfium
|
43
43
|
if is_dep_available("yarl"):
|
44
44
|
import yarl
|
45
45
|
|
@@ -176,31 +176,29 @@ def base64_encode(data: bytes) -> str:
|
|
176
176
|
return base64.b64encode(data).decode("ascii")
|
177
177
|
|
178
178
|
|
179
|
-
@function_requires_deps("
|
179
|
+
@function_requires_deps("pypdfium2", "opencv-contrib-python")
|
180
180
|
def read_pdf(
|
181
181
|
bytes_: bytes, max_num_imgs: Optional[int] = None
|
182
182
|
) -> Tuple[List[np.ndarray], PDFInfo]:
|
183
183
|
images: List[np.ndarray] = []
|
184
184
|
page_info_list: List[PDFPageInfo] = []
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
)
|
203
|
-
page_info_list.append(page_info)
|
185
|
+
doc = pdfium.PdfDocument(bytes_)
|
186
|
+
for page in doc:
|
187
|
+
if max_num_imgs is not None and len(images) >= max_num_imgs:
|
188
|
+
break
|
189
|
+
# TODO: Do not always use zoom=2.0
|
190
|
+
zoom = 2.0
|
191
|
+
deg = 0
|
192
|
+
image = page.render(scale=zoom, rotation=deg).to_pil()
|
193
|
+
image = image.convert("RGB")
|
194
|
+
image = np.array(image)
|
195
|
+
image = cv2.cvtColor(image, cv2.COLOR_RGB2BGR)
|
196
|
+
images.append(image)
|
197
|
+
page_info = PDFPageInfo(
|
198
|
+
width=image.shape[1],
|
199
|
+
height=image.shape[0],
|
200
|
+
)
|
201
|
+
page_info_list.append(page_info)
|
204
202
|
pdf_info = PDFInfo(
|
205
203
|
numPages=len(page_info_list),
|
206
204
|
pages=page_info_list,
|
@@ -34,7 +34,7 @@ class InferRequest(ocr.BaseInferRequest):
|
|
34
34
|
useLayoutDetection: Optional[bool] = None
|
35
35
|
useDocOrientationClassify: Optional[bool] = None
|
36
36
|
useDocUnwarping: Optional[bool] = None
|
37
|
-
layoutThreshold: Optional[float] = None
|
37
|
+
layoutThreshold: Optional[Union[float, dict]] = None
|
38
38
|
layoutNms: Optional[bool] = None
|
39
39
|
layoutUnclipRatio: Optional[Union[float, Tuple[float, float]]] = None
|
40
40
|
layoutMergeBboxesMode: Optional[str] = None
|
@@ -34,11 +34,10 @@ class InferRequest(ocr.BaseInferRequest):
|
|
34
34
|
useDocOrientationClassify: Optional[bool] = None
|
35
35
|
useDocUnwarping: Optional[bool] = None
|
36
36
|
useTextlineOrientation: Optional[bool] = None
|
37
|
-
useGeneralOcr: Optional[bool] = None
|
38
37
|
useSealRecognition: Optional[bool] = None
|
39
38
|
useTableRecognition: Optional[bool] = None
|
40
39
|
useFormulaRecognition: Optional[bool] = None
|
41
|
-
layoutThreshold: Optional[float] = None
|
40
|
+
layoutThreshold: Optional[Union[float, dict]] = None
|
42
41
|
layoutNms: Optional[bool] = None
|
43
42
|
layoutUnclipRatio: Optional[Union[float, Tuple[float, float]]] = None
|
44
43
|
layoutMergeBboxesMode: Optional[str] = None
|
@@ -39,10 +39,9 @@ ANALYZE_IMAGES_ENDPOINT: Final[str] = "/chatocr-visual"
|
|
39
39
|
class AnalyzeImagesRequest(ocr.BaseInferRequest):
|
40
40
|
useDocOrientationClassify: Optional[bool] = None
|
41
41
|
useDocUnwarping: Optional[bool] = None
|
42
|
-
useGeneralOcr: Optional[bool] = None
|
43
42
|
useSealRecognition: Optional[bool] = None
|
44
43
|
useTableRecognition: Optional[bool] = None
|
45
|
-
layoutThreshold: Optional[float] = None
|
44
|
+
layoutThreshold: Optional[Union[float, dict]] = None
|
46
45
|
layoutNms: Optional[bool] = None
|
47
46
|
layoutUnclipRatio: Optional[Union[float, Tuple[float, float], dict]] = None
|
48
47
|
layoutMergeBboxesMode: Optional[Union[str, dict]] = None
|
@@ -42,10 +42,10 @@ ANALYZE_IMAGES_ENDPOINT: Final[str] = "/chatocr-visual"
|
|
42
42
|
class AnalyzeImagesRequest(ocr.BaseInferRequest):
|
43
43
|
useDocOrientationClassify: Optional[bool] = None
|
44
44
|
useDocUnwarping: Optional[bool] = None
|
45
|
-
|
45
|
+
useTextlineOrientation: Optional[bool] = None
|
46
46
|
useSealRecognition: Optional[bool] = None
|
47
47
|
useTableRecognition: Optional[bool] = None
|
48
|
-
layoutThreshold: Optional[float] = None
|
48
|
+
layoutThreshold: Optional[Union[float, dict]] = None
|
49
49
|
layoutNms: Optional[bool] = None
|
50
50
|
layoutUnclipRatio: Optional[Union[float, Tuple[float, float], dict]] = None
|
51
51
|
layoutMergeBboxesMode: Optional[Union[str, dict]] = None
|
@@ -32,14 +32,15 @@ INFER_ENDPOINT: Final[str] = "/layout-parsing"
|
|
32
32
|
|
33
33
|
|
34
34
|
class InferRequest(ocr.BaseInferRequest):
|
35
|
-
useDocOrientationClassify: Optional[bool] =
|
36
|
-
useDocUnwarping: Optional[bool] =
|
35
|
+
useDocOrientationClassify: Optional[bool] = False
|
36
|
+
useDocUnwarping: Optional[bool] = False
|
37
37
|
useTextlineOrientation: Optional[bool] = None
|
38
|
-
useGeneralOcr: Optional[bool] = None
|
39
38
|
useSealRecognition: Optional[bool] = None
|
40
39
|
useTableRecognition: Optional[bool] = None
|
41
40
|
useFormulaRecognition: Optional[bool] = None
|
42
|
-
|
41
|
+
useChartRecognition: Optional[bool] = False
|
42
|
+
useRegionDetection: Optional[bool] = None
|
43
|
+
layoutThreshold: Optional[Union[float, dict]] = None
|
43
44
|
layoutNms: Optional[bool] = None
|
44
45
|
layoutUnclipRatio: Optional[Union[float, Tuple[float, float], dict]] = None
|
45
46
|
layoutMergeBboxesMode: Optional[Union[str, dict]] = None
|
@@ -55,9 +56,12 @@ class InferRequest(ocr.BaseInferRequest):
|
|
55
56
|
sealDetBoxThresh: Optional[float] = None
|
56
57
|
sealDetUnclipRatio: Optional[float] = None
|
57
58
|
sealRecScoreThresh: Optional[float] = None
|
58
|
-
|
59
|
+
useWiredTableCellsTransToHtml: bool = False
|
60
|
+
useWirelessTableCellsTransToHtml: bool = False
|
61
|
+
useTableOrientationClassify: bool = True
|
62
|
+
useOcrResultsWithTableCells: bool = True
|
59
63
|
useE2eWiredTableRecModel: bool = False
|
60
|
-
useE2eWirelessTableRecModel: bool =
|
64
|
+
useE2eWirelessTableRecModel: bool = True
|
61
65
|
|
62
66
|
|
63
67
|
class MarkdownData(BaseModel):
|
@@ -34,7 +34,7 @@ class InferRequest(ocr.BaseInferRequest):
|
|
34
34
|
useDocOrientationClassify: Optional[bool] = None
|
35
35
|
useDocUnwarping: Optional[bool] = None
|
36
36
|
useLayoutDetection: Optional[bool] = None
|
37
|
-
layoutThreshold: Optional[float] = None
|
37
|
+
layoutThreshold: Optional[Union[float, dict]] = None
|
38
38
|
layoutNms: Optional[bool] = None
|
39
39
|
layoutUnclipRatio: Optional[Union[float, Tuple[float, float]]] = None
|
40
40
|
layoutMergeBboxesMode: Optional[str] = None
|
@@ -12,7 +12,7 @@
|
|
12
12
|
# See the License for the specific language governing permissions and
|
13
13
|
# limitations under the License.
|
14
14
|
|
15
|
-
from typing import Dict, Final, List, Optional
|
15
|
+
from typing import Dict, Final, List, Optional
|
16
16
|
|
17
17
|
from pydantic import BaseModel
|
18
18
|
|
@@ -35,17 +35,13 @@ class InferRequest(ocr.BaseInferRequest):
|
|
35
35
|
useDocUnwarping: Optional[bool] = None
|
36
36
|
useLayoutDetection: Optional[bool] = None
|
37
37
|
useOcrModel: Optional[bool] = None
|
38
|
-
layoutThreshold: Optional[float] = None
|
39
|
-
layoutNms: Optional[bool] = None
|
40
|
-
layoutUnclipRatio: Optional[Union[float, Tuple[float, float]]] = None
|
41
|
-
layoutMergeBboxesMode: Optional[str] = None
|
42
38
|
textDetLimitSideLen: Optional[int] = None
|
43
39
|
textDetLimitType: Optional[str] = None
|
44
40
|
textDetThresh: Optional[float] = None
|
45
41
|
textDetBoxThresh: Optional[float] = None
|
46
42
|
textDetUnclipRatio: Optional[float] = None
|
47
43
|
textRecScoreThresh: Optional[float] = None
|
48
|
-
|
44
|
+
useOcrResultsWithTableCells: bool = False
|
49
45
|
|
50
46
|
|
51
47
|
class TableRecResult(BaseModel):
|
@@ -12,7 +12,7 @@
|
|
12
12
|
# See the License for the specific language governing permissions and
|
13
13
|
# limitations under the License.
|
14
14
|
|
15
|
-
from typing import Dict, Final, List, Optional
|
15
|
+
from typing import Dict, Final, List, Optional
|
16
16
|
|
17
17
|
from pydantic import BaseModel
|
18
18
|
|
@@ -35,19 +35,18 @@ class InferRequest(ocr.BaseInferRequest):
|
|
35
35
|
useDocUnwarping: Optional[bool] = None
|
36
36
|
useLayoutDetection: Optional[bool] = None
|
37
37
|
useOcrModel: Optional[bool] = None
|
38
|
-
layoutThreshold: Optional[float] = None
|
39
|
-
layoutNms: Optional[bool] = None
|
40
|
-
layoutUnclipRatio: Optional[Union[float, Tuple[float, float], dict]] = None
|
41
|
-
layoutMergeBboxesMode: Optional[Union[str, dict]] = None
|
42
38
|
textDetLimitSideLen: Optional[int] = None
|
43
39
|
textDetLimitType: Optional[str] = None
|
44
40
|
textDetThresh: Optional[float] = None
|
45
41
|
textDetBoxThresh: Optional[float] = None
|
46
42
|
textDetUnclipRatio: Optional[float] = None
|
47
43
|
textRecScoreThresh: Optional[float] = None
|
48
|
-
useTableCellsOcrResults: bool = False
|
49
44
|
useE2eWiredTableRecModel: bool = False
|
50
45
|
useE2eWirelessTableRecModel: bool = False
|
46
|
+
useWiredTableCellsTransToHtml: bool = False
|
47
|
+
useWirelessTableCellsTransToHtml: bool = False
|
48
|
+
useTableOrientationClassify: bool = True
|
49
|
+
useOcrResultsWithTableCells: bool = True
|
51
50
|
|
52
51
|
|
53
52
|
class TableRecResult(BaseModel):
|
paddlex/inference/utils/hpi.py
CHANGED
@@ -163,8 +163,12 @@ def suggest_inference_backend_and_config(
|
|
163
163
|
# TODO: Is it better to also check the runtime versions of CUDA and
|
164
164
|
# cuDNN, and the versions of CUDA and cuDNN used to build `ultra-infer`?
|
165
165
|
cuda_version = get_paddle_cuda_version()
|
166
|
+
if not cuda_version:
|
167
|
+
return None, "No CUDA version was found."
|
166
168
|
cuda_version = "".join(map(str, cuda_version))
|
167
169
|
cudnn_version = get_paddle_cudnn_version()
|
170
|
+
if not cudnn_version:
|
171
|
+
return None, "No cuDNN version was found."
|
168
172
|
cudnn_version = "".join(map(str, cudnn_version[:-1]))
|
169
173
|
key = f"gpu_cuda{cuda_version}_cudnn{cudnn_version}"
|
170
174
|
else:
|
@@ -231,10 +235,13 @@ def suggest_inference_backend_and_config(
|
|
231
235
|
pseudo_backend = backend_to_pseudo_backend["paddle"]
|
232
236
|
assert pseudo_backend in (
|
233
237
|
"paddle",
|
238
|
+
"paddle_fp16",
|
234
239
|
"paddle_tensorrt",
|
235
240
|
"paddle_tensorrt_fp16",
|
236
241
|
), pseudo_backend
|
237
|
-
if pseudo_backend == "
|
242
|
+
if pseudo_backend == "paddle_fp16":
|
243
|
+
suggested_backend_config.update({"run_mode": "paddle_fp16"})
|
244
|
+
elif pseudo_backend == "paddle_tensorrt":
|
238
245
|
suggested_backend_config.update({"run_mode": "trt_fp32"})
|
239
246
|
elif pseudo_backend == "paddle_tensorrt_fp16":
|
240
247
|
# TODO: Check if the target device supports FP16.
|
@@ -445,6 +445,14 @@
|
|
445
445
|
"onnxruntime",
|
446
446
|
"paddle"
|
447
447
|
],
|
448
|
+
"PP-DocLayout_plus-L": [
|
449
|
+
"onnxruntime",
|
450
|
+
"paddle"
|
451
|
+
],
|
452
|
+
"PP-DocBlockLayout": [
|
453
|
+
"onnxruntime",
|
454
|
+
"paddle"
|
455
|
+
],
|
448
456
|
"RT-DETR-H_layout_17cls": [
|
449
457
|
"onnxruntime",
|
450
458
|
"paddle"
|
@@ -571,9 +579,9 @@
|
|
571
579
|
"paddle"
|
572
580
|
],
|
573
581
|
"PP-OCRv4_server_det": [
|
582
|
+
"paddle",
|
574
583
|
"openvino",
|
575
|
-
"onnxruntime"
|
576
|
-
"paddle"
|
584
|
+
"onnxruntime"
|
577
585
|
],
|
578
586
|
"PP-OCRv3_mobile_rec": [
|
579
587
|
"openvino",
|
@@ -1136,6 +1144,38 @@
|
|
1136
1144
|
],
|
1137
1145
|
"YOLO-Worldv2-L": [
|
1138
1146
|
"paddle"
|
1147
|
+
],
|
1148
|
+
"PP-OCRv5_server_rec": [
|
1149
|
+
"paddle",
|
1150
|
+
"openvino",
|
1151
|
+
"onnxruntime"
|
1152
|
+
],
|
1153
|
+
"PP-OCRv5_mobile_rec": [
|
1154
|
+
"openvino",
|
1155
|
+
"onnxruntime",
|
1156
|
+
"paddle"
|
1157
|
+
],
|
1158
|
+
"PP-OCRv5_server_det": [
|
1159
|
+
"openvino",
|
1160
|
+
"onnxruntime",
|
1161
|
+
"paddle"
|
1162
|
+
],
|
1163
|
+
"PP-OCRv5_mobile_det": [
|
1164
|
+
"openvino",
|
1165
|
+
"onnxruntime",
|
1166
|
+
"paddle"
|
1167
|
+
],
|
1168
|
+
"PP-FormulaNet_plus-L": [
|
1169
|
+
"onnxruntime",
|
1170
|
+
"paddle"
|
1171
|
+
],
|
1172
|
+
"PP-FormulaNet_plus-M": [
|
1173
|
+
"onnxruntime",
|
1174
|
+
"paddle"
|
1175
|
+
],
|
1176
|
+
"PP-FormulaNet_plus-S": [
|
1177
|
+
"onnxruntime",
|
1178
|
+
"paddle"
|
1139
1179
|
]
|
1140
1180
|
},
|
1141
1181
|
"gpu_cuda118_cudnn89": {
|
@@ -2247,6 +2287,45 @@
|
|
2247
2287
|
],
|
2248
2288
|
"YOLO-Worldv2-L": [
|
2249
2289
|
"paddle"
|
2290
|
+
],
|
2291
|
+
"PP-DocBlockLayout": [
|
2292
|
+
"tensorrt",
|
2293
|
+
"paddle",
|
2294
|
+
"onnxruntime"
|
2295
|
+
],
|
2296
|
+
"PP-DocLayout_plus-L": [
|
2297
|
+
"tensorrt_fp16",
|
2298
|
+
"paddle",
|
2299
|
+
"onnxruntime"
|
2300
|
+
],
|
2301
|
+
"PP-OCRv5_server_rec": [
|
2302
|
+
"paddle_tensorrt_fp16",
|
2303
|
+
"tensorrt_fp16",
|
2304
|
+
"onnxruntime"
|
2305
|
+
],
|
2306
|
+
"PP-OCRv5_mobile_rec": [
|
2307
|
+
"paddle_tensorrt_fp16",
|
2308
|
+
"tensorrt",
|
2309
|
+
"onnxruntime"
|
2310
|
+
],
|
2311
|
+
"PP-OCRv5_server_det": [
|
2312
|
+
"tensorrt",
|
2313
|
+
"onnxruntime",
|
2314
|
+
"paddle"
|
2315
|
+
],
|
2316
|
+
"PP-OCRv5_mobile_det": [
|
2317
|
+
"paddle_tensorrt",
|
2318
|
+
"tensorrt",
|
2319
|
+
"onnxruntime"
|
2320
|
+
],
|
2321
|
+
"PP-FormulaNet_plus-L": [
|
2322
|
+
"paddle"
|
2323
|
+
],
|
2324
|
+
"PP-FormulaNet_plus-M": [
|
2325
|
+
"paddle"
|
2326
|
+
],
|
2327
|
+
"PP-FormulaNet_plus-S": [
|
2328
|
+
"paddle"
|
2250
2329
|
]
|
2251
2330
|
}
|
2252
2331
|
}
|