paddlex 3.0.0rc1__py3-none-any.whl → 3.0.2__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.
Files changed (240) hide show
  1. paddlex/.version +1 -1
  2. paddlex/__init__.py +1 -1
  3. paddlex/configs/modules/chart_parsing/PP-Chart2Table.yaml +13 -0
  4. paddlex/configs/modules/doc_vlm/PP-DocBee2-3B.yaml +14 -0
  5. paddlex/configs/modules/formula_recognition/PP-FormulaNet_plus-L.yaml +40 -0
  6. paddlex/configs/modules/formula_recognition/PP-FormulaNet_plus-M.yaml +40 -0
  7. paddlex/configs/modules/formula_recognition/PP-FormulaNet_plus-S.yaml +40 -0
  8. paddlex/configs/modules/layout_detection/PP-DocBlockLayout.yaml +40 -0
  9. paddlex/configs/modules/layout_detection/PP-DocLayout-L.yaml +2 -2
  10. paddlex/configs/modules/layout_detection/PP-DocLayout-M.yaml +2 -2
  11. paddlex/configs/modules/layout_detection/PP-DocLayout-S.yaml +2 -2
  12. paddlex/configs/modules/layout_detection/PP-DocLayout_plus-L.yaml +40 -0
  13. paddlex/configs/modules/text_detection/PP-OCRv5_mobile_det.yaml +40 -0
  14. paddlex/configs/modules/text_detection/PP-OCRv5_server_det.yaml +40 -0
  15. paddlex/configs/modules/text_recognition/PP-OCRv5_mobile_rec.yaml +39 -0
  16. paddlex/configs/modules/text_recognition/PP-OCRv5_server_rec.yaml +39 -0
  17. paddlex/configs/modules/textline_orientation/PP-LCNet_x1_0_textline_ori.yaml +41 -0
  18. paddlex/configs/pipelines/OCR.yaml +7 -6
  19. paddlex/configs/pipelines/PP-ChatOCRv3-doc.yaml +3 -1
  20. paddlex/configs/pipelines/PP-ChatOCRv4-doc.yaml +91 -34
  21. paddlex/configs/pipelines/PP-StructureV3.yaml +72 -72
  22. paddlex/configs/pipelines/doc_understanding.yaml +1 -1
  23. paddlex/configs/pipelines/formula_recognition.yaml +2 -2
  24. paddlex/configs/pipelines/layout_parsing.yaml +3 -2
  25. paddlex/configs/pipelines/seal_recognition.yaml +1 -0
  26. paddlex/configs/pipelines/table_recognition.yaml +2 -1
  27. paddlex/configs/pipelines/table_recognition_v2.yaml +7 -1
  28. paddlex/hpip_links.html +20 -20
  29. paddlex/inference/common/batch_sampler/doc_vlm_batch_sampler.py +33 -10
  30. paddlex/inference/common/batch_sampler/image_batch_sampler.py +34 -25
  31. paddlex/inference/common/result/mixin.py +19 -12
  32. paddlex/inference/models/base/predictor/base_predictor.py +2 -8
  33. paddlex/inference/models/common/static_infer.py +29 -73
  34. paddlex/inference/models/common/tokenizer/__init__.py +2 -0
  35. paddlex/inference/models/common/tokenizer/clip_tokenizer.py +1 -1
  36. paddlex/inference/models/common/tokenizer/gpt_tokenizer.py +2 -2
  37. paddlex/inference/models/common/tokenizer/qwen2_5_tokenizer.py +112 -0
  38. paddlex/inference/models/common/tokenizer/qwen2_tokenizer.py +7 -1
  39. paddlex/inference/models/common/tokenizer/qwen_tokenizer.py +288 -0
  40. paddlex/inference/models/common/tokenizer/tokenizer_utils.py +13 -13
  41. paddlex/inference/models/common/tokenizer/tokenizer_utils_base.py +3 -3
  42. paddlex/inference/models/common/tokenizer/vocab.py +7 -7
  43. paddlex/inference/models/common/ts/funcs.py +19 -8
  44. paddlex/inference/models/common/vlm/conversion_utils.py +99 -0
  45. paddlex/inference/models/common/vlm/fusion_ops.py +205 -0
  46. paddlex/inference/models/common/vlm/generation/configuration_utils.py +1 -1
  47. paddlex/inference/models/common/vlm/generation/logits_process.py +1 -1
  48. paddlex/inference/models/common/vlm/generation/utils.py +1 -1
  49. paddlex/inference/models/common/vlm/transformers/configuration_utils.py +3 -3
  50. paddlex/inference/models/common/vlm/transformers/conversion_utils.py +3 -3
  51. paddlex/inference/models/common/vlm/transformers/model_outputs.py +2 -2
  52. paddlex/inference/models/common/vlm/transformers/model_utils.py +7 -31
  53. paddlex/inference/models/doc_vlm/modeling/GOT_ocr_2_0.py +830 -0
  54. paddlex/inference/models/doc_vlm/modeling/__init__.py +2 -0
  55. paddlex/inference/models/doc_vlm/modeling/qwen2.py +1606 -0
  56. paddlex/inference/models/doc_vlm/modeling/qwen2_5_vl.py +3006 -0
  57. paddlex/inference/models/doc_vlm/modeling/qwen2_vl.py +0 -105
  58. paddlex/inference/models/doc_vlm/predictor.py +79 -24
  59. paddlex/inference/models/doc_vlm/processors/GOT_ocr_2_0.py +97 -0
  60. paddlex/inference/models/doc_vlm/processors/__init__.py +2 -0
  61. paddlex/inference/models/doc_vlm/processors/common.py +189 -0
  62. paddlex/inference/models/doc_vlm/processors/qwen2_5_vl.py +548 -0
  63. paddlex/inference/models/doc_vlm/processors/qwen2_vl.py +21 -176
  64. paddlex/inference/models/formula_recognition/predictor.py +8 -2
  65. paddlex/inference/models/formula_recognition/processors.py +90 -77
  66. paddlex/inference/models/formula_recognition/result.py +28 -27
  67. paddlex/inference/models/image_feature/processors.py +3 -4
  68. paddlex/inference/models/keypoint_detection/predictor.py +3 -0
  69. paddlex/inference/models/object_detection/predictor.py +2 -0
  70. paddlex/inference/models/object_detection/processors.py +28 -3
  71. paddlex/inference/models/object_detection/utils.py +2 -0
  72. paddlex/inference/models/table_structure_recognition/result.py +0 -10
  73. paddlex/inference/models/text_detection/predictor.py +8 -0
  74. paddlex/inference/models/text_detection/processors.py +44 -10
  75. paddlex/inference/models/text_detection/result.py +0 -10
  76. paddlex/inference/models/text_recognition/result.py +1 -1
  77. paddlex/inference/pipelines/__init__.py +9 -5
  78. paddlex/inference/pipelines/_parallel.py +172 -0
  79. paddlex/inference/pipelines/anomaly_detection/pipeline.py +16 -6
  80. paddlex/inference/pipelines/attribute_recognition/pipeline.py +11 -1
  81. paddlex/inference/pipelines/base.py +14 -4
  82. paddlex/inference/pipelines/components/faisser.py +1 -1
  83. paddlex/inference/pipelines/doc_preprocessor/pipeline.py +53 -27
  84. paddlex/inference/pipelines/formula_recognition/pipeline.py +120 -82
  85. paddlex/inference/pipelines/formula_recognition/result.py +1 -11
  86. paddlex/inference/pipelines/image_classification/pipeline.py +16 -6
  87. paddlex/inference/pipelines/image_multilabel_classification/pipeline.py +16 -6
  88. paddlex/inference/pipelines/instance_segmentation/pipeline.py +16 -6
  89. paddlex/inference/pipelines/keypoint_detection/pipeline.py +16 -6
  90. paddlex/inference/pipelines/layout_parsing/layout_objects.py +859 -0
  91. paddlex/inference/pipelines/layout_parsing/pipeline.py +34 -47
  92. paddlex/inference/pipelines/layout_parsing/pipeline_v2.py +832 -260
  93. paddlex/inference/pipelines/layout_parsing/result.py +4 -17
  94. paddlex/inference/pipelines/layout_parsing/result_v2.py +259 -245
  95. paddlex/inference/pipelines/layout_parsing/setting.py +88 -0
  96. paddlex/inference/pipelines/layout_parsing/utils.py +391 -2028
  97. paddlex/inference/pipelines/layout_parsing/xycut_enhanced/__init__.py +16 -0
  98. paddlex/inference/pipelines/layout_parsing/xycut_enhanced/utils.py +1199 -0
  99. paddlex/inference/pipelines/layout_parsing/xycut_enhanced/xycuts.py +615 -0
  100. paddlex/inference/pipelines/m_3d_bev_detection/pipeline.py +2 -2
  101. paddlex/inference/pipelines/multilingual_speech_recognition/pipeline.py +2 -2
  102. paddlex/inference/pipelines/object_detection/pipeline.py +16 -6
  103. paddlex/inference/pipelines/ocr/pipeline.py +127 -70
  104. paddlex/inference/pipelines/ocr/result.py +21 -18
  105. paddlex/inference/pipelines/open_vocabulary_detection/pipeline.py +2 -2
  106. paddlex/inference/pipelines/open_vocabulary_segmentation/pipeline.py +2 -2
  107. paddlex/inference/pipelines/pp_chatocr/pipeline_base.py +2 -2
  108. paddlex/inference/pipelines/pp_chatocr/pipeline_v3.py +2 -5
  109. paddlex/inference/pipelines/pp_chatocr/pipeline_v4.py +6 -6
  110. paddlex/inference/pipelines/rotated_object_detection/pipeline.py +16 -6
  111. paddlex/inference/pipelines/seal_recognition/pipeline.py +109 -53
  112. paddlex/inference/pipelines/semantic_segmentation/pipeline.py +16 -6
  113. paddlex/inference/pipelines/small_object_detection/pipeline.py +16 -6
  114. paddlex/inference/pipelines/table_recognition/pipeline.py +26 -18
  115. paddlex/inference/pipelines/table_recognition/pipeline_v2.py +624 -53
  116. paddlex/inference/pipelines/table_recognition/result.py +1 -1
  117. paddlex/inference/pipelines/table_recognition/table_recognition_post_processing_v2.py +9 -5
  118. paddlex/inference/pipelines/ts_anomaly_detection/pipeline.py +2 -2
  119. paddlex/inference/pipelines/ts_classification/pipeline.py +2 -2
  120. paddlex/inference/pipelines/ts_forecasting/pipeline.py +2 -2
  121. paddlex/inference/pipelines/video_classification/pipeline.py +2 -2
  122. paddlex/inference/pipelines/video_detection/pipeline.py +2 -2
  123. paddlex/inference/serving/basic_serving/_app.py +46 -13
  124. paddlex/inference/serving/basic_serving/_pipeline_apps/_common/common.py +5 -1
  125. paddlex/inference/serving/basic_serving/_pipeline_apps/layout_parsing.py +0 -1
  126. paddlex/inference/serving/basic_serving/_pipeline_apps/pp_chatocrv3_doc.py +0 -1
  127. paddlex/inference/serving/basic_serving/_pipeline_apps/pp_chatocrv4_doc.py +1 -1
  128. paddlex/inference/serving/basic_serving/_pipeline_apps/pp_structurev3.py +6 -2
  129. paddlex/inference/serving/basic_serving/_pipeline_apps/table_recognition.py +1 -5
  130. paddlex/inference/serving/basic_serving/_pipeline_apps/table_recognition_v2.py +4 -5
  131. paddlex/inference/serving/infra/utils.py +20 -22
  132. paddlex/inference/serving/schemas/formula_recognition.py +1 -1
  133. paddlex/inference/serving/schemas/layout_parsing.py +1 -2
  134. paddlex/inference/serving/schemas/pp_chatocrv3_doc.py +1 -2
  135. paddlex/inference/serving/schemas/pp_chatocrv4_doc.py +2 -2
  136. paddlex/inference/serving/schemas/pp_structurev3.py +10 -6
  137. paddlex/inference/serving/schemas/seal_recognition.py +1 -1
  138. paddlex/inference/serving/schemas/table_recognition.py +2 -6
  139. paddlex/inference/serving/schemas/table_recognition_v2.py +5 -6
  140. paddlex/inference/utils/hpi.py +30 -16
  141. paddlex/inference/utils/hpi_model_info_collection.json +666 -162
  142. paddlex/inference/utils/io/readers.py +12 -12
  143. paddlex/inference/utils/misc.py +20 -0
  144. paddlex/inference/utils/mkldnn_blocklist.py +59 -0
  145. paddlex/inference/utils/official_models.py +140 -5
  146. paddlex/inference/utils/pp_option.py +74 -9
  147. paddlex/model.py +2 -2
  148. paddlex/modules/__init__.py +1 -1
  149. paddlex/modules/anomaly_detection/evaluator.py +2 -2
  150. paddlex/modules/base/__init__.py +1 -1
  151. paddlex/modules/base/evaluator.py +5 -5
  152. paddlex/modules/base/trainer.py +1 -1
  153. paddlex/modules/doc_vlm/dataset_checker.py +2 -2
  154. paddlex/modules/doc_vlm/evaluator.py +2 -2
  155. paddlex/modules/doc_vlm/exportor.py +2 -2
  156. paddlex/modules/doc_vlm/model_list.py +1 -1
  157. paddlex/modules/doc_vlm/trainer.py +2 -2
  158. paddlex/modules/face_recognition/evaluator.py +2 -2
  159. paddlex/modules/formula_recognition/evaluator.py +5 -2
  160. paddlex/modules/formula_recognition/model_list.py +3 -0
  161. paddlex/modules/formula_recognition/trainer.py +3 -0
  162. paddlex/modules/general_recognition/evaluator.py +1 -1
  163. paddlex/modules/image_classification/evaluator.py +2 -2
  164. paddlex/modules/image_classification/model_list.py +1 -0
  165. paddlex/modules/instance_segmentation/evaluator.py +1 -1
  166. paddlex/modules/keypoint_detection/evaluator.py +1 -1
  167. paddlex/modules/m_3d_bev_detection/evaluator.py +2 -2
  168. paddlex/modules/multilabel_classification/evaluator.py +2 -2
  169. paddlex/modules/object_detection/dataset_checker/dataset_src/convert_dataset.py +4 -4
  170. paddlex/modules/object_detection/evaluator.py +2 -2
  171. paddlex/modules/object_detection/model_list.py +2 -0
  172. paddlex/modules/semantic_segmentation/dataset_checker/__init__.py +12 -2
  173. paddlex/modules/semantic_segmentation/evaluator.py +2 -2
  174. paddlex/modules/table_recognition/evaluator.py +2 -2
  175. paddlex/modules/text_detection/evaluator.py +2 -2
  176. paddlex/modules/text_detection/model_list.py +2 -0
  177. paddlex/modules/text_recognition/evaluator.py +2 -2
  178. paddlex/modules/text_recognition/model_list.py +2 -0
  179. paddlex/modules/ts_anomaly_detection/evaluator.py +2 -2
  180. paddlex/modules/ts_classification/dataset_checker/dataset_src/split_dataset.py +1 -1
  181. paddlex/modules/ts_classification/evaluator.py +2 -2
  182. paddlex/modules/ts_forecast/evaluator.py +2 -2
  183. paddlex/modules/video_classification/evaluator.py +2 -2
  184. paddlex/modules/video_detection/evaluator.py +2 -2
  185. paddlex/ops/__init__.py +8 -5
  186. paddlex/paddlex_cli.py +19 -13
  187. paddlex/repo_apis/Paddle3D_api/bev_fusion/model.py +2 -2
  188. paddlex/repo_apis/PaddleClas_api/cls/config.py +1 -1
  189. paddlex/repo_apis/PaddleClas_api/cls/model.py +1 -1
  190. paddlex/repo_apis/PaddleClas_api/cls/register.py +10 -0
  191. paddlex/repo_apis/PaddleClas_api/cls/runner.py +1 -1
  192. paddlex/repo_apis/PaddleDetection_api/instance_seg/model.py +1 -1
  193. paddlex/repo_apis/PaddleDetection_api/instance_seg/runner.py +1 -1
  194. paddlex/repo_apis/PaddleDetection_api/object_det/config.py +1 -1
  195. paddlex/repo_apis/PaddleDetection_api/object_det/model.py +1 -1
  196. paddlex/repo_apis/PaddleDetection_api/object_det/official_categories.py +25 -0
  197. paddlex/repo_apis/PaddleDetection_api/object_det/register.py +30 -0
  198. paddlex/repo_apis/PaddleDetection_api/object_det/runner.py +1 -1
  199. paddlex/repo_apis/PaddleOCR_api/formula_rec/config.py +3 -3
  200. paddlex/repo_apis/PaddleOCR_api/formula_rec/model.py +5 -9
  201. paddlex/repo_apis/PaddleOCR_api/formula_rec/register.py +27 -0
  202. paddlex/repo_apis/PaddleOCR_api/formula_rec/runner.py +1 -1
  203. paddlex/repo_apis/PaddleOCR_api/table_rec/model.py +1 -1
  204. paddlex/repo_apis/PaddleOCR_api/table_rec/runner.py +1 -1
  205. paddlex/repo_apis/PaddleOCR_api/text_det/model.py +1 -1
  206. paddlex/repo_apis/PaddleOCR_api/text_det/register.py +18 -0
  207. paddlex/repo_apis/PaddleOCR_api/text_det/runner.py +1 -1
  208. paddlex/repo_apis/PaddleOCR_api/text_rec/config.py +3 -3
  209. paddlex/repo_apis/PaddleOCR_api/text_rec/model.py +5 -9
  210. paddlex/repo_apis/PaddleOCR_api/text_rec/register.py +18 -0
  211. paddlex/repo_apis/PaddleOCR_api/text_rec/runner.py +1 -1
  212. paddlex/repo_apis/PaddleSeg_api/seg/model.py +1 -1
  213. paddlex/repo_apis/PaddleSeg_api/seg/runner.py +1 -1
  214. paddlex/repo_apis/PaddleTS_api/ts_ad/config.py +3 -3
  215. paddlex/repo_apis/PaddleTS_api/ts_cls/config.py +2 -2
  216. paddlex/repo_apis/PaddleTS_api/ts_fc/config.py +4 -4
  217. paddlex/repo_apis/PaddleVideo_api/video_cls/config.py +1 -1
  218. paddlex/repo_apis/PaddleVideo_api/video_cls/model.py +1 -1
  219. paddlex/repo_apis/PaddleVideo_api/video_cls/runner.py +1 -1
  220. paddlex/repo_apis/PaddleVideo_api/video_det/config.py +1 -1
  221. paddlex/repo_apis/PaddleVideo_api/video_det/model.py +1 -1
  222. paddlex/repo_apis/PaddleVideo_api/video_det/runner.py +1 -1
  223. paddlex/repo_apis/base/config.py +1 -1
  224. paddlex/repo_manager/core.py +3 -3
  225. paddlex/repo_manager/meta.py +6 -2
  226. paddlex/repo_manager/repo.py +17 -16
  227. paddlex/utils/custom_device_list.py +26 -2
  228. paddlex/utils/deps.py +3 -3
  229. paddlex/utils/device.py +5 -13
  230. paddlex/utils/env.py +4 -0
  231. paddlex/utils/flags.py +11 -4
  232. paddlex/utils/fonts/__init__.py +34 -4
  233. paddlex/utils/misc.py +1 -1
  234. paddlex/utils/subclass_register.py +2 -2
  235. {paddlex-3.0.0rc1.dist-info → paddlex-3.0.2.dist-info}/METADATA +349 -208
  236. {paddlex-3.0.0rc1.dist-info → paddlex-3.0.2.dist-info}/RECORD +240 -211
  237. {paddlex-3.0.0rc1.dist-info → paddlex-3.0.2.dist-info}/WHEEL +1 -1
  238. {paddlex-3.0.0rc1.dist-info → paddlex-3.0.2.dist-info}/entry_points.txt +1 -0
  239. {paddlex-3.0.0rc1.dist-info/licenses → paddlex-3.0.2.dist-info}/LICENSE +0 -0
  240. {paddlex-3.0.0rc1.dist-info → paddlex-3.0.2.dist-info}/top_level.txt +0 -0
@@ -23,6 +23,7 @@ from ...common.reader import ReadImage
23
23
  from ...models.object_detection.result import DetResult
24
24
  from ...utils.hpi import HPIConfig
25
25
  from ...utils.pp_option import PaddlePredictorOption
26
+ from .._parallel import AutoParallelImageSimpleInferencePipeline
26
27
  from ..base import BasePipeline
27
28
  from ..components import CropByBoxes
28
29
  from ..ocr.result import OCRResult
@@ -30,12 +31,9 @@ from .result import LayoutParsingResult
30
31
  from .utils import get_sub_regions_ocr_res, sorted_layout_boxes
31
32
 
32
33
 
33
- @pipeline_requires_extra("ocr")
34
- class LayoutParsingPipeline(BasePipeline):
34
+ class _LayoutParsingPipeline(BasePipeline):
35
35
  """Layout Parsing Pipeline"""
36
36
 
37
- entities = ["layout_parsing"]
38
-
39
37
  def __init__(
40
38
  self,
41
39
  config: Dict,
@@ -51,9 +49,9 @@ class LayoutParsingPipeline(BasePipeline):
51
49
  device (str, optional): Device to run the predictions on. Defaults to None.
52
50
  pp_option (PaddlePredictorOption, optional): PaddlePredictor options. Defaults to None.
53
51
  use_hpip (bool, optional): Whether to use the high-performance
54
- inference plugin (HPIP). Defaults to False.
52
+ inference plugin (HPIP) by default. Defaults to False.
55
53
  hpi_config (Optional[Union[Dict[str, Any], HPIConfig]], optional):
56
- The high-performance inference configuration dictionary.
54
+ The default high-performance inference configuration dictionary.
57
55
  Defaults to None.
58
56
  """
59
57
 
@@ -79,7 +77,6 @@ class LayoutParsingPipeline(BasePipeline):
79
77
  """
80
78
 
81
79
  self.use_doc_preprocessor = config.get("use_doc_preprocessor", True)
82
- self.use_general_ocr = config.get("use_general_ocr", True)
83
80
  self.use_table_recognition = config.get("use_table_recognition", True)
84
81
  self.use_seal_recognition = config.get("use_seal_recognition", True)
85
82
  self.use_formula_recognition = config.get("use_formula_recognition", True)
@@ -116,12 +113,11 @@ class LayoutParsingPipeline(BasePipeline):
116
113
  layout_kwargs["layout_merge_bboxes_mode"] = layout_merge_bboxes_mode
117
114
  self.layout_det_model = self.create_model(layout_det_config, **layout_kwargs)
118
115
 
119
- if self.use_general_ocr or self.use_table_recognition:
120
- general_ocr_config = config.get("SubPipelines", {}).get(
121
- "GeneralOCR",
122
- {"pipeline_config_error": "config error for general_ocr_pipeline!"},
123
- )
124
- self.general_ocr_pipeline = self.create_pipeline(general_ocr_config)
116
+ general_ocr_config = config.get("SubPipelines", {}).get(
117
+ "GeneralOCR",
118
+ {"pipeline_config_error": "config error for general_ocr_pipeline!"},
119
+ )
120
+ self.general_ocr_pipeline = self.create_pipeline(general_ocr_config)
125
121
 
126
122
  if self.use_seal_recognition:
127
123
  seal_recognition_config = config.get("SubPipelines", {}).get(
@@ -240,10 +236,10 @@ class LayoutParsingPipeline(BasePipeline):
240
236
  )
241
237
  seal_index += 1
242
238
  else:
243
- ocr_res_in_box, matched_idxs = get_sub_regions_ocr_res(
239
+ ocr_res_in_box, matched_idxes = get_sub_regions_ocr_res(
244
240
  overall_ocr_res, [box], return_match_idx=True
245
241
  )
246
- for matched_idx in matched_idxs:
242
+ for matched_idx in matched_idxes:
247
243
  if matched_ocr_dict.get(matched_idx, None) is None:
248
244
  matched_ocr_dict[matched_idx] = [object_box_idx]
249
245
  else:
@@ -307,12 +303,6 @@ class LayoutParsingPipeline(BasePipeline):
307
303
  )
308
304
  return False
309
305
 
310
- if input_params["use_general_ocr"] and not self.use_general_ocr:
311
- logging.error(
312
- "Set use_general_ocr, but the models for general OCR are not initialized."
313
- )
314
- return False
315
-
316
306
  if input_params["use_seal_recognition"] and not self.use_seal_recognition:
317
307
  logging.error(
318
308
  "Set use_seal_recognition, but the models for seal recognition are not initialized."
@@ -331,7 +321,6 @@ class LayoutParsingPipeline(BasePipeline):
331
321
  self,
332
322
  use_doc_orientation_classify: Optional[bool],
333
323
  use_doc_unwarping: Optional[bool],
334
- use_general_ocr: Optional[bool],
335
324
  use_seal_recognition: Optional[bool],
336
325
  use_table_recognition: Optional[bool],
337
326
  use_formula_recognition: Optional[bool],
@@ -342,7 +331,6 @@ class LayoutParsingPipeline(BasePipeline):
342
331
  Args:
343
332
  use_doc_orientation_classify (Optional[bool]): Whether to use document orientation classification.
344
333
  use_doc_unwarping (Optional[bool]): Whether to use document unwarping.
345
- use_general_ocr (Optional[bool]): Whether to use general OCR.
346
334
  use_seal_recognition (Optional[bool]): Whether to use seal recognition.
347
335
  use_table_recognition (Optional[bool]): Whether to use table recognition.
348
336
 
@@ -357,9 +345,6 @@ class LayoutParsingPipeline(BasePipeline):
357
345
  else:
358
346
  use_doc_preprocessor = False
359
347
 
360
- if use_general_ocr is None:
361
- use_general_ocr = self.use_general_ocr
362
-
363
348
  if use_seal_recognition is None:
364
349
  use_seal_recognition = self.use_seal_recognition
365
350
 
@@ -371,7 +356,6 @@ class LayoutParsingPipeline(BasePipeline):
371
356
 
372
357
  return dict(
373
358
  use_doc_preprocessor=use_doc_preprocessor,
374
- use_general_ocr=use_general_ocr,
375
359
  use_seal_recognition=use_seal_recognition,
376
360
  use_table_recognition=use_table_recognition,
377
361
  use_formula_recognition=use_formula_recognition,
@@ -383,7 +367,6 @@ class LayoutParsingPipeline(BasePipeline):
383
367
  use_doc_orientation_classify: Optional[bool] = None,
384
368
  use_doc_unwarping: Optional[bool] = None,
385
369
  use_textline_orientation: Optional[bool] = None,
386
- use_general_ocr: Optional[bool] = None,
387
370
  use_seal_recognition: Optional[bool] = None,
388
371
  use_table_recognition: Optional[bool] = None,
389
372
  use_formula_recognition: Optional[bool] = None,
@@ -413,7 +396,6 @@ class LayoutParsingPipeline(BasePipeline):
413
396
  use_doc_orientation_classify (Optional[bool]): Whether to use document orientation classification.
414
397
  use_doc_unwarping (Optional[bool]): Whether to use document unwarping.
415
398
  use_textline_orientation (Optional[bool]): Whether to use textline orientation prediction.
416
- use_general_ocr (Optional[bool]): Whether to use general OCR.
417
399
  use_seal_recognition (Optional[bool]): Whether to use seal recognition.
418
400
  use_table_recognition (Optional[bool]): Whether to use table recognition.
419
401
  use_formula_recognition (Optional[bool]): Whether to use formula recognition.
@@ -447,7 +429,6 @@ class LayoutParsingPipeline(BasePipeline):
447
429
  model_settings = self.get_model_settings(
448
430
  use_doc_orientation_classify,
449
431
  use_doc_unwarping,
450
- use_general_ocr,
451
432
  use_seal_recognition,
452
433
  use_table_recognition,
453
434
  use_formula_recognition,
@@ -482,24 +463,18 @@ class LayoutParsingPipeline(BasePipeline):
482
463
  )
483
464
  )
484
465
 
485
- if (
486
- model_settings["use_general_ocr"]
487
- or model_settings["use_table_recognition"]
488
- ):
489
- overall_ocr_res = next(
490
- self.general_ocr_pipeline(
491
- doc_preprocessor_image,
492
- use_textline_orientation=use_textline_orientation,
493
- text_det_limit_side_len=text_det_limit_side_len,
494
- text_det_limit_type=text_det_limit_type,
495
- text_det_thresh=text_det_thresh,
496
- text_det_box_thresh=text_det_box_thresh,
497
- text_det_unclip_ratio=text_det_unclip_ratio,
498
- text_rec_score_thresh=text_rec_score_thresh,
499
- )
466
+ overall_ocr_res = next(
467
+ self.general_ocr_pipeline(
468
+ doc_preprocessor_image,
469
+ use_textline_orientation=use_textline_orientation,
470
+ text_det_limit_side_len=text_det_limit_side_len,
471
+ text_det_limit_type=text_det_limit_type,
472
+ text_det_thresh=text_det_thresh,
473
+ text_det_box_thresh=text_det_box_thresh,
474
+ text_det_unclip_ratio=text_det_unclip_ratio,
475
+ text_rec_score_thresh=text_rec_score_thresh,
500
476
  )
501
- else:
502
- overall_ocr_res = {}
477
+ )
503
478
 
504
479
  if model_settings["use_table_recognition"]:
505
480
  table_res_all = next(
@@ -579,3 +554,15 @@ class LayoutParsingPipeline(BasePipeline):
579
554
  "model_settings": model_settings,
580
555
  }
581
556
  yield LayoutParsingResult(single_img_res)
557
+
558
+
559
+ @pipeline_requires_extra("ocr")
560
+ class LayoutParsingPipeline(AutoParallelImageSimpleInferencePipeline):
561
+ entities = ["layout_parsing"]
562
+
563
+ @property
564
+ def _pipeline_cls(self):
565
+ return _LayoutParsingPipeline
566
+
567
+ def _get_batch_size(self, config):
568
+ return 1