paddlex 3.0.0b2__py3-none-any.whl → 3.0.0rc1__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 (1211) hide show
  1. paddlex/.version +1 -1
  2. paddlex/__init__.py +17 -33
  3. paddlex/__main__.py +4 -5
  4. paddlex/configs/modules/3d_bev_detection/BEVFusion.yaml +38 -0
  5. paddlex/configs/modules/doc_vlm/PP-DocBee-2B.yaml +14 -0
  6. paddlex/configs/modules/doc_vlm/PP-DocBee-7B.yaml +14 -0
  7. paddlex/configs/modules/face_feature/MobileFaceNet.yaml +41 -0
  8. paddlex/configs/modules/face_feature/ResNet50_face.yaml +41 -0
  9. paddlex/configs/modules/formula_recognition/LaTeX_OCR_rec.yaml +40 -0
  10. paddlex/configs/modules/formula_recognition/PP-FormulaNet-L.yaml +40 -0
  11. paddlex/configs/modules/formula_recognition/PP-FormulaNet-S.yaml +40 -0
  12. paddlex/configs/modules/formula_recognition/UniMERNet.yaml +40 -0
  13. paddlex/configs/modules/image_classification/CLIP_vit_base_patch16_224.yaml +41 -0
  14. paddlex/configs/modules/image_classification/CLIP_vit_large_patch14_224.yaml +41 -0
  15. paddlex/configs/modules/image_classification/ConvNeXt_large_384.yaml +41 -0
  16. paddlex/configs/modules/keypoint_detection/PP-TinyPose_128x96.yaml +40 -0
  17. paddlex/configs/modules/keypoint_detection/PP-TinyPose_256x192.yaml +40 -0
  18. paddlex/configs/modules/layout_detection/PP-DocLayout-L.yaml +40 -0
  19. paddlex/configs/modules/layout_detection/PP-DocLayout-M.yaml +40 -0
  20. paddlex/configs/modules/layout_detection/PP-DocLayout-S.yaml +40 -0
  21. paddlex/configs/modules/multilingual_speech_recognition/whisper_base.yaml +12 -0
  22. paddlex/configs/modules/multilingual_speech_recognition/whisper_large.yaml +12 -0
  23. paddlex/configs/modules/multilingual_speech_recognition/whisper_medium.yaml +12 -0
  24. paddlex/configs/modules/multilingual_speech_recognition/whisper_small.yaml +12 -0
  25. paddlex/configs/modules/multilingual_speech_recognition/whisper_tiny.yaml +12 -0
  26. paddlex/configs/modules/object_detection/Co-DINO-R50.yaml +40 -0
  27. paddlex/configs/modules/object_detection/Co-DINO-Swin-L.yaml +40 -0
  28. paddlex/configs/modules/object_detection/Co-Deformable-DETR-R50.yaml +40 -0
  29. paddlex/configs/modules/object_detection/Co-Deformable-DETR-Swin-T.yaml +40 -0
  30. paddlex/configs/modules/object_detection/YOLOX-X.yaml +40 -0
  31. paddlex/configs/modules/open_vocabulary_detection/GroundingDINO-T.yaml +13 -0
  32. paddlex/configs/modules/open_vocabulary_detection/YOLO-Worldv2-L.yaml +13 -0
  33. paddlex/configs/modules/open_vocabulary_segmentation/SAM-H_box.yaml +17 -0
  34. paddlex/configs/modules/open_vocabulary_segmentation/SAM-H_point.yaml +15 -0
  35. paddlex/configs/modules/rotated_object_detection/PP-YOLOE-R-L.yaml +40 -0
  36. paddlex/configs/modules/semantic_segmentation/MaskFormer_small.yaml +42 -0
  37. paddlex/configs/modules/semantic_segmentation/MaskFormer_tiny.yaml +42 -0
  38. paddlex/configs/modules/semantic_segmentation/SeaFormer_base.yaml +40 -0
  39. paddlex/configs/modules/semantic_segmentation/SeaFormer_large.yaml +40 -0
  40. paddlex/configs/modules/semantic_segmentation/SeaFormer_small.yaml +40 -0
  41. paddlex/configs/modules/semantic_segmentation/SeaFormer_tiny.yaml +40 -0
  42. paddlex/configs/modules/table_cells_detection/RT-DETR-L_wired_table_cell_det.yaml +40 -0
  43. paddlex/configs/modules/table_cells_detection/RT-DETR-L_wireless_table_cell_det.yaml +40 -0
  44. paddlex/configs/modules/table_classification/PP-LCNet_x1_0_table_cls.yaml +41 -0
  45. paddlex/configs/modules/table_structure_recognition/SLANeXt_wired.yaml +39 -0
  46. paddlex/configs/modules/table_structure_recognition/SLANeXt_wireless.yaml +39 -0
  47. paddlex/configs/modules/text_detection/PP-OCRv3_mobile_det.yaml +40 -0
  48. paddlex/configs/modules/text_detection/PP-OCRv3_server_det.yaml +40 -0
  49. paddlex/configs/modules/text_recognition/PP-OCRv3_mobile_rec.yaml +39 -0
  50. paddlex/configs/modules/text_recognition/PP-OCRv4_server_rec_doc.yaml +39 -0
  51. paddlex/configs/modules/text_recognition/arabic_PP-OCRv3_mobile_rec.yaml +39 -0
  52. paddlex/configs/modules/text_recognition/chinese_cht_PP-OCRv3_mobile_rec.yaml +39 -0
  53. paddlex/configs/modules/text_recognition/cyrillic_PP-OCRv3_mobile_rec.yaml +39 -0
  54. paddlex/configs/modules/text_recognition/devanagari_PP-OCRv3_mobile_rec.yaml +39 -0
  55. paddlex/configs/modules/text_recognition/en_PP-OCRv3_mobile_rec.yaml +39 -0
  56. paddlex/configs/modules/text_recognition/en_PP-OCRv4_mobile_rec.yaml +39 -0
  57. paddlex/configs/modules/text_recognition/japan_PP-OCRv3_mobile_rec.yaml +39 -0
  58. paddlex/configs/modules/text_recognition/ka_PP-OCRv3_mobile_rec.yaml +39 -0
  59. paddlex/configs/modules/text_recognition/korean_PP-OCRv3_mobile_rec.yaml +39 -0
  60. paddlex/configs/modules/text_recognition/latin_PP-OCRv3_mobile_rec.yaml +39 -0
  61. paddlex/configs/modules/text_recognition/ta_PP-OCRv3_mobile_rec.yaml +39 -0
  62. paddlex/configs/modules/text_recognition/te_PP-OCRv3_mobile_rec.yaml +39 -0
  63. paddlex/configs/modules/textline_orientation/PP-LCNet_x0_25_textline_ori.yaml +41 -0
  64. paddlex/configs/modules/video_classification/PP-TSM-R50_8frames_uniform.yaml +42 -0
  65. paddlex/configs/modules/video_classification/PP-TSMv2-LCNetV2_16frames_uniform.yaml +42 -0
  66. paddlex/configs/modules/video_classification/PP-TSMv2-LCNetV2_8frames_uniform.yaml +42 -0
  67. paddlex/configs/modules/video_detection/YOWO.yaml +40 -0
  68. paddlex/configs/pipelines/3d_bev_detection.yaml +9 -0
  69. paddlex/configs/pipelines/OCR.yaml +44 -0
  70. paddlex/configs/pipelines/PP-ChatOCRv3-doc.yaml +149 -0
  71. paddlex/configs/pipelines/PP-ChatOCRv4-doc.yaml +184 -0
  72. paddlex/configs/pipelines/PP-ShiTuV2.yaml +18 -0
  73. paddlex/configs/pipelines/PP-StructureV3.yaml +226 -0
  74. paddlex/configs/pipelines/anomaly_detection.yaml +8 -0
  75. paddlex/configs/pipelines/doc_preprocessor.yaml +15 -0
  76. paddlex/configs/pipelines/doc_understanding.yaml +9 -0
  77. paddlex/configs/pipelines/face_recognition.yaml +18 -0
  78. paddlex/configs/pipelines/formula_recognition.yaml +39 -0
  79. paddlex/configs/pipelines/human_keypoint_detection.yaml +17 -0
  80. paddlex/configs/pipelines/image_classification.yaml +10 -0
  81. paddlex/configs/pipelines/image_multilabel_classification.yaml +9 -0
  82. paddlex/configs/pipelines/instance_segmentation.yaml +10 -0
  83. paddlex/configs/pipelines/layout_parsing.yaml +101 -0
  84. paddlex/configs/pipelines/multilingual_speech_recognition.yaml +9 -0
  85. paddlex/configs/pipelines/object_detection.yaml +10 -0
  86. paddlex/configs/pipelines/open_vocabulary_detection.yaml +12 -0
  87. paddlex/configs/pipelines/open_vocabulary_segmentation.yaml +13 -0
  88. paddlex/configs/pipelines/pedestrian_attribute_recognition.yaml +15 -0
  89. paddlex/configs/pipelines/rotated_object_detection.yaml +10 -0
  90. paddlex/configs/pipelines/seal_recognition.yaml +51 -0
  91. paddlex/configs/pipelines/semantic_segmentation.yaml +10 -0
  92. paddlex/configs/pipelines/small_object_detection.yaml +10 -0
  93. paddlex/configs/pipelines/table_recognition.yaml +56 -0
  94. paddlex/configs/pipelines/table_recognition_v2.yaml +76 -0
  95. paddlex/configs/pipelines/ts_anomaly_detection.yaml +8 -0
  96. paddlex/configs/pipelines/ts_classification.yaml +8 -0
  97. paddlex/configs/pipelines/ts_forecast.yaml +8 -0
  98. paddlex/configs/pipelines/vehicle_attribute_recognition.yaml +15 -0
  99. paddlex/configs/pipelines/video_classification.yaml +9 -0
  100. paddlex/configs/pipelines/video_detection.yaml +10 -0
  101. paddlex/constants.py +17 -0
  102. paddlex/engine.py +8 -6
  103. paddlex/hpip_links.html +31 -0
  104. paddlex/inference/__init__.py +4 -2
  105. paddlex/inference/common/__init__.py +13 -0
  106. paddlex/inference/common/batch_sampler/__init__.py +21 -0
  107. paddlex/inference/common/batch_sampler/audio_batch_sampler.py +83 -0
  108. paddlex/inference/common/batch_sampler/base_batch_sampler.py +94 -0
  109. paddlex/inference/common/batch_sampler/det_3d_batch_sampler.py +144 -0
  110. paddlex/inference/common/batch_sampler/doc_vlm_batch_sampler.py +64 -0
  111. paddlex/inference/common/batch_sampler/image_batch_sampler.py +112 -0
  112. paddlex/inference/common/batch_sampler/ts_batch_sampler.py +109 -0
  113. paddlex/inference/common/batch_sampler/video_batch_sampler.py +74 -0
  114. paddlex/inference/common/reader/__init__.py +19 -0
  115. paddlex/inference/common/reader/audio_reader.py +46 -0
  116. paddlex/inference/common/reader/det_3d_reader.py +241 -0
  117. paddlex/inference/common/reader/image_reader.py +73 -0
  118. paddlex/inference/common/reader/ts_reader.py +46 -0
  119. paddlex/inference/common/reader/video_reader.py +42 -0
  120. paddlex/inference/common/result/__init__.py +29 -0
  121. paddlex/inference/common/result/base_cv_result.py +41 -0
  122. paddlex/inference/common/result/base_result.py +72 -0
  123. paddlex/inference/common/result/base_ts_result.py +41 -0
  124. paddlex/inference/common/result/base_video_result.py +36 -0
  125. paddlex/inference/common/result/mixin.py +702 -0
  126. paddlex/inference/models/__init__.py +55 -75
  127. paddlex/inference/models/anomaly_detection/__init__.py +15 -0
  128. paddlex/inference/models/anomaly_detection/predictor.py +135 -0
  129. paddlex/inference/models/anomaly_detection/processors.py +53 -0
  130. paddlex/inference/models/anomaly_detection/result.py +71 -0
  131. paddlex/inference/models/base/__init__.py +2 -3
  132. paddlex/inference/models/base/predictor/__init__.py +15 -0
  133. paddlex/inference/models/base/predictor/base_predictor.py +420 -0
  134. paddlex/inference/models/common/__init__.py +26 -0
  135. paddlex/inference/models/common/static_infer.py +850 -0
  136. paddlex/inference/models/common/tokenizer/__init__.py +19 -0
  137. paddlex/inference/models/common/tokenizer/bert_tokenizer.py +655 -0
  138. paddlex/inference/models/common/tokenizer/clip_tokenizer.py +609 -0
  139. paddlex/inference/models/common/tokenizer/gpt_tokenizer.py +453 -0
  140. paddlex/inference/models/common/tokenizer/qwen2_tokenizer.py +432 -0
  141. paddlex/inference/models/common/tokenizer/tokenizer_utils.py +2149 -0
  142. paddlex/inference/models/common/tokenizer/tokenizer_utils_base.py +3720 -0
  143. paddlex/inference/models/common/tokenizer/utils.py +66 -0
  144. paddlex/inference/models/common/tokenizer/vocab.py +647 -0
  145. paddlex/inference/models/common/ts/__init__.py +15 -0
  146. paddlex/inference/models/common/ts/funcs.py +540 -0
  147. paddlex/inference/models/common/ts/processors.py +322 -0
  148. paddlex/inference/models/common/vision/__init__.py +23 -0
  149. paddlex/inference/models/common/vision/funcs.py +98 -0
  150. paddlex/inference/models/common/vision/processors.py +285 -0
  151. paddlex/inference/models/common/vlm/__init__.py +13 -0
  152. paddlex/inference/models/common/vlm/activations.py +189 -0
  153. paddlex/inference/models/common/vlm/bert_padding.py +127 -0
  154. paddlex/inference/models/common/vlm/distributed.py +229 -0
  155. paddlex/inference/models/common/vlm/flash_attn_utils.py +119 -0
  156. paddlex/inference/models/common/vlm/generation/__init__.py +34 -0
  157. paddlex/inference/models/common/vlm/generation/configuration_utils.py +533 -0
  158. paddlex/inference/models/common/vlm/generation/logits_process.py +730 -0
  159. paddlex/inference/models/common/vlm/generation/stopping_criteria.py +106 -0
  160. paddlex/inference/models/common/vlm/generation/utils.py +2162 -0
  161. paddlex/inference/models/common/vlm/transformers/__init__.py +16 -0
  162. paddlex/inference/models/common/vlm/transformers/configuration_utils.py +1037 -0
  163. paddlex/inference/models/common/vlm/transformers/conversion_utils.py +408 -0
  164. paddlex/inference/models/common/vlm/transformers/model_outputs.py +1612 -0
  165. paddlex/inference/models/common/vlm/transformers/model_utils.py +2038 -0
  166. paddlex/inference/models/common/vlm/transformers/utils.py +178 -0
  167. paddlex/inference/models/common/vlm/utils.py +109 -0
  168. paddlex/inference/models/doc_vlm/__init__.py +15 -0
  169. paddlex/inference/models/doc_vlm/modeling/__init__.py +15 -0
  170. paddlex/inference/models/doc_vlm/modeling/qwen2_vl.py +2600 -0
  171. paddlex/inference/models/doc_vlm/predictor.py +198 -0
  172. paddlex/inference/models/doc_vlm/processors/__init__.py +15 -0
  173. paddlex/inference/models/doc_vlm/processors/common.py +372 -0
  174. paddlex/inference/models/doc_vlm/processors/qwen2_vl.py +698 -0
  175. paddlex/inference/models/doc_vlm/result.py +21 -0
  176. paddlex/inference/models/face_feature/__init__.py +15 -0
  177. paddlex/inference/models/face_feature/predictor.py +66 -0
  178. paddlex/inference/models/formula_recognition/__init__.py +15 -0
  179. paddlex/inference/models/formula_recognition/predictor.py +187 -0
  180. paddlex/inference/models/formula_recognition/processors.py +1002 -0
  181. paddlex/inference/models/formula_recognition/result.py +410 -0
  182. paddlex/inference/models/image_classification/__init__.py +15 -0
  183. paddlex/inference/models/image_classification/predictor.py +172 -0
  184. paddlex/inference/models/image_classification/processors.py +89 -0
  185. paddlex/inference/models/image_classification/result.py +93 -0
  186. paddlex/inference/models/image_feature/__init__.py +15 -0
  187. paddlex/inference/models/image_feature/predictor.py +146 -0
  188. paddlex/inference/models/image_feature/processors.py +32 -0
  189. paddlex/inference/models/image_feature/result.py +32 -0
  190. paddlex/inference/models/image_multilabel_classification/__init__.py +15 -0
  191. paddlex/inference/models/image_multilabel_classification/predictor.py +95 -0
  192. paddlex/inference/models/image_multilabel_classification/processors.py +89 -0
  193. paddlex/inference/models/image_multilabel_classification/result.py +96 -0
  194. paddlex/inference/models/image_unwarping/__init__.py +15 -0
  195. paddlex/inference/models/image_unwarping/predictor.py +97 -0
  196. paddlex/inference/models/image_unwarping/processors.py +92 -0
  197. paddlex/inference/models/image_unwarping/result.py +47 -0
  198. paddlex/inference/models/instance_segmentation/__init__.py +15 -0
  199. paddlex/inference/models/instance_segmentation/predictor.py +202 -0
  200. paddlex/inference/models/instance_segmentation/processors.py +102 -0
  201. paddlex/inference/models/instance_segmentation/result.py +162 -0
  202. paddlex/inference/models/keypoint_detection/__init__.py +15 -0
  203. paddlex/inference/models/keypoint_detection/predictor.py +187 -0
  204. paddlex/inference/models/keypoint_detection/processors.py +367 -0
  205. paddlex/inference/models/keypoint_detection/result.py +197 -0
  206. paddlex/inference/models/m_3d_bev_detection/__init__.py +15 -0
  207. paddlex/inference/models/m_3d_bev_detection/predictor.py +303 -0
  208. paddlex/inference/models/m_3d_bev_detection/processors.py +990 -0
  209. paddlex/inference/models/m_3d_bev_detection/result.py +68 -0
  210. paddlex/inference/models/m_3d_bev_detection/visualizer_3d.py +169 -0
  211. paddlex/inference/models/multilingual_speech_recognition/__init__.py +15 -0
  212. paddlex/inference/models/multilingual_speech_recognition/predictor.py +137 -0
  213. paddlex/inference/models/multilingual_speech_recognition/processors.py +1933 -0
  214. paddlex/inference/models/multilingual_speech_recognition/result.py +21 -0
  215. paddlex/inference/models/object_detection/__init__.py +15 -0
  216. paddlex/inference/models/object_detection/predictor.py +342 -0
  217. paddlex/inference/models/object_detection/processors.py +860 -0
  218. paddlex/inference/models/object_detection/result.py +114 -0
  219. paddlex/inference/models/object_detection/utils.py +68 -0
  220. paddlex/inference/models/open_vocabulary_detection/__init__.py +15 -0
  221. paddlex/inference/models/open_vocabulary_detection/predictor.py +172 -0
  222. paddlex/inference/models/open_vocabulary_detection/processors/__init__.py +16 -0
  223. paddlex/inference/models/open_vocabulary_detection/processors/common.py +114 -0
  224. paddlex/inference/models/open_vocabulary_detection/processors/groundingdino_processors.py +496 -0
  225. paddlex/inference/models/open_vocabulary_detection/processors/yoloworld_processors.py +209 -0
  226. paddlex/inference/models/open_vocabulary_segmentation/__init__.py +15 -0
  227. paddlex/inference/models/open_vocabulary_segmentation/predictor.py +113 -0
  228. paddlex/inference/models/open_vocabulary_segmentation/processors/__init__.py +15 -0
  229. paddlex/inference/models/open_vocabulary_segmentation/processors/sam_processer.py +249 -0
  230. paddlex/inference/models/open_vocabulary_segmentation/results/__init__.py +15 -0
  231. paddlex/inference/models/open_vocabulary_segmentation/results/sam_result.py +149 -0
  232. paddlex/inference/models/semantic_segmentation/__init__.py +15 -0
  233. paddlex/inference/models/semantic_segmentation/predictor.py +158 -0
  234. paddlex/inference/models/semantic_segmentation/processors.py +117 -0
  235. paddlex/inference/models/semantic_segmentation/result.py +73 -0
  236. paddlex/inference/models/table_structure_recognition/__init__.py +15 -0
  237. paddlex/inference/models/table_structure_recognition/predictor.py +161 -0
  238. paddlex/inference/models/table_structure_recognition/processors.py +229 -0
  239. paddlex/inference/models/table_structure_recognition/result.py +73 -0
  240. paddlex/inference/models/text_detection/__init__.py +15 -0
  241. paddlex/inference/models/text_detection/predictor.py +183 -0
  242. paddlex/inference/models/text_detection/processors.py +504 -0
  243. paddlex/inference/models/text_detection/result.py +56 -0
  244. paddlex/inference/models/text_recognition/__init__.py +15 -0
  245. paddlex/inference/models/text_recognition/predictor.py +98 -0
  246. paddlex/inference/models/text_recognition/processors.py +245 -0
  247. paddlex/inference/models/text_recognition/result.py +76 -0
  248. paddlex/inference/models/ts_anomaly_detection/__init__.py +15 -0
  249. paddlex/inference/models/ts_anomaly_detection/predictor.py +141 -0
  250. paddlex/inference/models/ts_anomaly_detection/processors.py +98 -0
  251. paddlex/inference/models/ts_anomaly_detection/result.py +83 -0
  252. paddlex/inference/models/ts_classification/__init__.py +15 -0
  253. paddlex/inference/models/ts_classification/predictor.py +122 -0
  254. paddlex/inference/models/ts_classification/processors.py +122 -0
  255. paddlex/inference/models/ts_classification/result.py +87 -0
  256. paddlex/inference/models/ts_forecasting/__init__.py +15 -0
  257. paddlex/inference/models/ts_forecasting/predictor.py +154 -0
  258. paddlex/inference/models/ts_forecasting/processors.py +158 -0
  259. paddlex/inference/models/ts_forecasting/result.py +96 -0
  260. paddlex/inference/models/video_classification/__init__.py +15 -0
  261. paddlex/inference/models/video_classification/predictor.py +141 -0
  262. paddlex/inference/models/video_classification/processors.py +409 -0
  263. paddlex/inference/models/video_classification/result.py +96 -0
  264. paddlex/inference/models/video_detection/__init__.py +15 -0
  265. paddlex/inference/models/video_detection/predictor.py +129 -0
  266. paddlex/inference/models/video_detection/processors.py +463 -0
  267. paddlex/inference/models/video_detection/result.py +109 -0
  268. paddlex/inference/pipelines/__init__.py +186 -78
  269. paddlex/inference/pipelines/anomaly_detection/__init__.py +15 -0
  270. paddlex/inference/pipelines/anomaly_detection/pipeline.py +72 -0
  271. paddlex/inference/pipelines/attribute_recognition/__init__.py +15 -0
  272. paddlex/inference/pipelines/attribute_recognition/pipeline.py +110 -0
  273. paddlex/inference/pipelines/attribute_recognition/result.py +102 -0
  274. paddlex/inference/pipelines/base.py +125 -59
  275. paddlex/inference/pipelines/components/__init__.py +29 -0
  276. paddlex/inference/pipelines/components/chat_server/__init__.py +16 -0
  277. paddlex/inference/pipelines/components/chat_server/base.py +39 -0
  278. paddlex/inference/pipelines/components/chat_server/openai_bot_chat.py +236 -0
  279. paddlex/inference/pipelines/components/common/__init__.py +19 -0
  280. paddlex/inference/pipelines/components/common/base_operator.py +37 -0
  281. paddlex/inference/pipelines/components/common/base_result.py +66 -0
  282. paddlex/inference/pipelines/components/common/convert_points_and_boxes.py +45 -0
  283. paddlex/inference/pipelines/components/common/crop_image_regions.py +556 -0
  284. paddlex/inference/pipelines/components/common/seal_det_warp.py +972 -0
  285. paddlex/inference/pipelines/components/common/sort_boxes.py +85 -0
  286. paddlex/inference/pipelines/components/common/warp_image.py +50 -0
  287. paddlex/inference/pipelines/components/faisser.py +357 -0
  288. paddlex/inference/pipelines/components/prompt_engineering/__init__.py +16 -0
  289. paddlex/inference/pipelines/components/prompt_engineering/base.py +35 -0
  290. paddlex/inference/pipelines/components/prompt_engineering/generate_ensemble_prompt.py +128 -0
  291. paddlex/inference/pipelines/components/prompt_engineering/generate_kie_prompt.py +148 -0
  292. paddlex/inference/pipelines/components/retriever/__init__.py +16 -0
  293. paddlex/inference/pipelines/components/retriever/base.py +228 -0
  294. paddlex/inference/pipelines/components/retriever/openai_bot_retriever.py +70 -0
  295. paddlex/inference/pipelines/components/retriever/qianfan_bot_retriever.py +166 -0
  296. paddlex/inference/pipelines/components/utils/__init__.py +13 -0
  297. paddlex/inference/pipelines/components/utils/mixin.py +206 -0
  298. paddlex/inference/pipelines/doc_preprocessor/__init__.py +15 -0
  299. paddlex/inference/pipelines/doc_preprocessor/pipeline.py +183 -0
  300. paddlex/inference/pipelines/doc_preprocessor/result.py +98 -0
  301. paddlex/inference/pipelines/doc_understanding/__init__.py +15 -0
  302. paddlex/inference/pipelines/doc_understanding/pipeline.py +71 -0
  303. paddlex/inference/pipelines/face_recognition/__init__.py +15 -0
  304. paddlex/inference/pipelines/face_recognition/pipeline.py +63 -0
  305. paddlex/inference/pipelines/face_recognition/result.py +44 -0
  306. paddlex/inference/pipelines/formula_recognition/__init__.py +15 -0
  307. paddlex/inference/pipelines/formula_recognition/pipeline.py +309 -0
  308. paddlex/inference/pipelines/formula_recognition/result.py +292 -0
  309. paddlex/inference/pipelines/image_classification/__init__.py +15 -0
  310. paddlex/inference/pipelines/image_classification/pipeline.py +80 -0
  311. paddlex/inference/pipelines/image_multilabel_classification/__init__.py +15 -0
  312. paddlex/inference/pipelines/image_multilabel_classification/pipeline.py +87 -0
  313. paddlex/inference/pipelines/instance_segmentation/__init__.py +15 -0
  314. paddlex/inference/pipelines/instance_segmentation/pipeline.py +81 -0
  315. paddlex/inference/pipelines/keypoint_detection/__init__.py +15 -0
  316. paddlex/inference/pipelines/keypoint_detection/pipeline.py +148 -0
  317. paddlex/inference/pipelines/layout_parsing/__init__.py +3 -2
  318. paddlex/inference/pipelines/layout_parsing/pipeline.py +581 -0
  319. paddlex/inference/pipelines/layout_parsing/pipeline_v2.py +749 -0
  320. paddlex/inference/pipelines/layout_parsing/result.py +204 -0
  321. paddlex/inference/pipelines/layout_parsing/result_v2.py +467 -0
  322. paddlex/inference/pipelines/layout_parsing/utils.py +2384 -0
  323. paddlex/inference/pipelines/m_3d_bev_detection/__init__.py +15 -0
  324. paddlex/inference/pipelines/m_3d_bev_detection/pipeline.py +74 -0
  325. paddlex/inference/pipelines/multilingual_speech_recognition/__init__.py +15 -0
  326. paddlex/inference/pipelines/multilingual_speech_recognition/pipeline.py +78 -0
  327. paddlex/inference/pipelines/object_detection/__init__.py +15 -0
  328. paddlex/inference/pipelines/object_detection/pipeline.py +105 -0
  329. paddlex/inference/pipelines/ocr/__init__.py +15 -0
  330. paddlex/inference/pipelines/ocr/pipeline.py +406 -0
  331. paddlex/inference/pipelines/ocr/result.py +252 -0
  332. paddlex/inference/pipelines/open_vocabulary_detection/__init__.py +15 -0
  333. paddlex/inference/pipelines/open_vocabulary_detection/pipeline.py +86 -0
  334. paddlex/inference/pipelines/open_vocabulary_segmentation/__init__.py +15 -0
  335. paddlex/inference/pipelines/open_vocabulary_segmentation/pipeline.py +100 -0
  336. paddlex/inference/pipelines/pp_chatocr/__init__.py +16 -0
  337. paddlex/inference/pipelines/pp_chatocr/pipeline_base.py +111 -0
  338. paddlex/inference/pipelines/pp_chatocr/pipeline_v3.py +784 -0
  339. paddlex/inference/pipelines/pp_chatocr/pipeline_v4.py +995 -0
  340. paddlex/inference/pipelines/pp_shitu_v2/__init__.py +15 -0
  341. paddlex/inference/pipelines/pp_shitu_v2/pipeline.py +156 -0
  342. paddlex/inference/pipelines/pp_shitu_v2/result.py +126 -0
  343. paddlex/inference/pipelines/rotated_object_detection/__init__.py +15 -0
  344. paddlex/inference/pipelines/rotated_object_detection/pipeline.py +85 -0
  345. paddlex/inference/pipelines/seal_recognition/__init__.py +15 -0
  346. paddlex/inference/pipelines/seal_recognition/pipeline.py +279 -0
  347. paddlex/inference/pipelines/seal_recognition/result.py +89 -0
  348. paddlex/inference/pipelines/semantic_segmentation/__init__.py +15 -0
  349. paddlex/inference/pipelines/semantic_segmentation/pipeline.py +85 -0
  350. paddlex/inference/pipelines/small_object_detection/__init__.py +15 -0
  351. paddlex/inference/pipelines/small_object_detection/pipeline.py +85 -0
  352. paddlex/inference/pipelines/table_recognition/__init__.py +3 -2
  353. paddlex/inference/pipelines/table_recognition/pipeline.py +478 -0
  354. paddlex/inference/pipelines/table_recognition/pipeline_v2.py +824 -0
  355. paddlex/inference/pipelines/table_recognition/result.py +218 -0
  356. paddlex/inference/pipelines/table_recognition/table_recognition_post_processing.py +366 -0
  357. paddlex/inference/pipelines/table_recognition/table_recognition_post_processing_v2.py +484 -0
  358. paddlex/inference/pipelines/table_recognition/utils.py +24 -437
  359. paddlex/inference/pipelines/ts_anomaly_detection/__init__.py +15 -0
  360. paddlex/inference/pipelines/ts_anomaly_detection/pipeline.py +72 -0
  361. paddlex/inference/pipelines/ts_classification/__init__.py +15 -0
  362. paddlex/inference/pipelines/ts_classification/pipeline.py +72 -0
  363. paddlex/inference/pipelines/ts_forecasting/__init__.py +15 -0
  364. paddlex/inference/pipelines/ts_forecasting/pipeline.py +72 -0
  365. paddlex/inference/pipelines/video_classification/__init__.py +15 -0
  366. paddlex/inference/pipelines/video_classification/pipeline.py +79 -0
  367. paddlex/inference/pipelines/video_detection/__init__.py +15 -0
  368. paddlex/inference/pipelines/video_detection/pipeline.py +86 -0
  369. paddlex/inference/serving/__init__.py +17 -0
  370. paddlex/inference/serving/basic_serving/__init__.py +18 -0
  371. paddlex/inference/serving/basic_serving/_app.py +221 -0
  372. paddlex/inference/serving/basic_serving/_pipeline_apps/__init__.py +44 -0
  373. paddlex/inference/serving/basic_serving/_pipeline_apps/_common/__init__.py +13 -0
  374. paddlex/inference/serving/basic_serving/_pipeline_apps/_common/common.py +100 -0
  375. paddlex/inference/serving/basic_serving/_pipeline_apps/_common/image_recognition.py +36 -0
  376. paddlex/inference/serving/basic_serving/_pipeline_apps/_common/ocr.py +95 -0
  377. paddlex/inference/serving/basic_serving/_pipeline_apps/anomaly_detection.py +67 -0
  378. paddlex/inference/serving/basic_serving/_pipeline_apps/doc_preprocessor.py +100 -0
  379. paddlex/inference/serving/basic_serving/_pipeline_apps/doc_understanding.py +153 -0
  380. paddlex/inference/serving/basic_serving/_pipeline_apps/face_recognition.py +226 -0
  381. paddlex/inference/serving/basic_serving/_pipeline_apps/formula_recognition.py +100 -0
  382. paddlex/inference/serving/basic_serving/_pipeline_apps/human_keypoint_detection.py +81 -0
  383. paddlex/inference/serving/basic_serving/_pipeline_apps/image_classification.py +69 -0
  384. paddlex/inference/serving/basic_serving/_pipeline_apps/image_multilabel_classification.py +73 -0
  385. paddlex/inference/serving/basic_serving/_pipeline_apps/instance_segmentation.py +87 -0
  386. paddlex/inference/serving/basic_serving/_pipeline_apps/layout_parsing.py +118 -0
  387. paddlex/inference/serving/basic_serving/_pipeline_apps/m_3d_bev_detection.py +79 -0
  388. paddlex/inference/serving/basic_serving/_pipeline_apps/multilingual_speech_recognition.py +92 -0
  389. paddlex/inference/serving/basic_serving/_pipeline_apps/object_detection.py +77 -0
  390. paddlex/inference/serving/basic_serving/_pipeline_apps/ocr.py +102 -0
  391. paddlex/inference/serving/basic_serving/_pipeline_apps/open_vocabulary_detection.py +81 -0
  392. paddlex/inference/serving/basic_serving/_pipeline_apps/open_vocabulary_segmentation.py +91 -0
  393. paddlex/inference/serving/basic_serving/_pipeline_apps/pedestrian_attribute_recognition.py +84 -0
  394. paddlex/inference/serving/basic_serving/_pipeline_apps/pp_chatocrv3_doc.py +194 -0
  395. paddlex/inference/serving/basic_serving/_pipeline_apps/pp_chatocrv4_doc.py +224 -0
  396. paddlex/inference/serving/basic_serving/_pipeline_apps/pp_shituv2.py +221 -0
  397. paddlex/inference/serving/basic_serving/_pipeline_apps/pp_structurev3.py +139 -0
  398. paddlex/inference/serving/basic_serving/_pipeline_apps/rotated_object_detection.py +81 -0
  399. paddlex/inference/serving/basic_serving/_pipeline_apps/seal_recognition.py +106 -0
  400. paddlex/inference/serving/basic_serving/_pipeline_apps/semantic_segmentation.py +67 -0
  401. paddlex/inference/serving/basic_serving/_pipeline_apps/small_object_detection.py +72 -0
  402. paddlex/inference/serving/basic_serving/_pipeline_apps/table_recognition.py +108 -0
  403. paddlex/inference/serving/basic_serving/_pipeline_apps/table_recognition_v2.py +110 -0
  404. paddlex/inference/serving/basic_serving/_pipeline_apps/ts_anomaly_detection.py +65 -0
  405. paddlex/inference/serving/basic_serving/_pipeline_apps/ts_classification.py +64 -0
  406. paddlex/inference/serving/basic_serving/_pipeline_apps/ts_forecast.py +65 -0
  407. paddlex/inference/serving/basic_serving/_pipeline_apps/vehicle_attribute_recognition.py +84 -0
  408. paddlex/inference/serving/basic_serving/_pipeline_apps/video_classification.py +76 -0
  409. paddlex/inference/serving/basic_serving/_pipeline_apps/video_detection.py +92 -0
  410. paddlex/inference/serving/basic_serving/_server.py +40 -0
  411. paddlex/inference/serving/infra/__init__.py +13 -0
  412. paddlex/inference/serving/infra/config.py +36 -0
  413. paddlex/inference/serving/infra/models.py +79 -0
  414. paddlex/inference/serving/infra/storage.py +180 -0
  415. paddlex/inference/serving/infra/utils.py +287 -0
  416. paddlex/inference/serving/schemas/__init__.py +13 -0
  417. paddlex/inference/serving/schemas/anomaly_detection.py +39 -0
  418. paddlex/inference/serving/schemas/doc_preprocessor.py +54 -0
  419. paddlex/inference/serving/schemas/doc_understanding.py +78 -0
  420. paddlex/inference/serving/schemas/face_recognition.py +124 -0
  421. paddlex/inference/serving/schemas/formula_recognition.py +56 -0
  422. paddlex/inference/serving/schemas/human_keypoint_detection.py +55 -0
  423. paddlex/inference/serving/schemas/image_classification.py +45 -0
  424. paddlex/inference/serving/schemas/image_multilabel_classification.py +47 -0
  425. paddlex/inference/serving/schemas/instance_segmentation.py +53 -0
  426. paddlex/inference/serving/schemas/layout_parsing.py +72 -0
  427. paddlex/inference/serving/schemas/m_3d_bev_detection.py +48 -0
  428. paddlex/inference/serving/schemas/multilingual_speech_recognition.py +57 -0
  429. paddlex/inference/serving/schemas/object_detection.py +52 -0
  430. paddlex/inference/serving/schemas/ocr.py +60 -0
  431. paddlex/inference/serving/schemas/open_vocabulary_detection.py +52 -0
  432. paddlex/inference/serving/schemas/open_vocabulary_segmentation.py +52 -0
  433. paddlex/inference/serving/schemas/pedestrian_attribute_recognition.py +61 -0
  434. paddlex/inference/serving/schemas/pp_chatocrv3_doc.py +134 -0
  435. paddlex/inference/serving/schemas/pp_chatocrv4_doc.py +151 -0
  436. paddlex/inference/serving/schemas/pp_shituv2.py +124 -0
  437. paddlex/inference/serving/schemas/pp_structurev3.py +84 -0
  438. paddlex/inference/serving/schemas/rotated_object_detection.py +52 -0
  439. paddlex/inference/serving/schemas/seal_recognition.py +62 -0
  440. paddlex/inference/serving/schemas/semantic_segmentation.py +45 -0
  441. paddlex/inference/serving/schemas/shared/__init__.py +13 -0
  442. paddlex/inference/serving/schemas/shared/classification.py +23 -0
  443. paddlex/inference/serving/schemas/shared/image_segmentation.py +28 -0
  444. paddlex/inference/serving/schemas/shared/object_detection.py +24 -0
  445. paddlex/inference/serving/schemas/shared/ocr.py +25 -0
  446. paddlex/inference/serving/schemas/small_object_detection.py +52 -0
  447. paddlex/inference/serving/schemas/table_recognition.py +64 -0
  448. paddlex/inference/serving/schemas/table_recognition_v2.py +66 -0
  449. paddlex/inference/serving/schemas/ts_anomaly_detection.py +37 -0
  450. paddlex/inference/serving/schemas/ts_classification.py +38 -0
  451. paddlex/inference/serving/schemas/ts_forecast.py +37 -0
  452. paddlex/inference/serving/schemas/vehicle_attribute_recognition.py +61 -0
  453. paddlex/inference/serving/schemas/video_classification.py +44 -0
  454. paddlex/inference/serving/schemas/video_detection.py +56 -0
  455. paddlex/inference/utils/__init__.py +1 -1
  456. paddlex/inference/utils/benchmark.py +333 -168
  457. paddlex/inference/utils/color_map.py +1 -1
  458. paddlex/inference/utils/get_pipeline_path.py +3 -2
  459. paddlex/inference/utils/hpi.py +251 -0
  460. paddlex/inference/utils/hpi_model_info_collection.json +2252 -0
  461. paddlex/inference/utils/io/__init__.py +11 -8
  462. paddlex/inference/utils/io/readers.py +178 -27
  463. paddlex/inference/utils/io/style.py +21 -14
  464. paddlex/inference/utils/io/tablepyxl.py +13 -5
  465. paddlex/inference/utils/io/writers.py +92 -10
  466. paddlex/inference/utils/model_paths.py +48 -0
  467. paddlex/inference/utils/new_ir_blocklist.py +27 -0
  468. paddlex/inference/utils/official_models.py +281 -213
  469. paddlex/inference/utils/pp_option.py +168 -77
  470. paddlex/inference/utils/trt_blocklist.py +43 -0
  471. paddlex/inference/utils/trt_config.py +420 -0
  472. paddlex/model.py +39 -14
  473. paddlex/modules/__init__.py +67 -57
  474. paddlex/modules/anomaly_detection/__init__.py +2 -2
  475. paddlex/modules/anomaly_detection/dataset_checker/__init__.py +2 -3
  476. paddlex/modules/anomaly_detection/dataset_checker/dataset_src/__init__.py +2 -2
  477. paddlex/modules/anomaly_detection/dataset_checker/dataset_src/analyse_dataset.py +6 -3
  478. paddlex/modules/anomaly_detection/dataset_checker/dataset_src/check_dataset.py +8 -4
  479. paddlex/modules/anomaly_detection/dataset_checker/dataset_src/convert_dataset.py +7 -4
  480. paddlex/modules/anomaly_detection/dataset_checker/dataset_src/split_dataset.py +2 -2
  481. paddlex/modules/anomaly_detection/dataset_checker/dataset_src/utils/__init__.py +1 -1
  482. paddlex/modules/anomaly_detection/dataset_checker/dataset_src/utils/visualizer.py +7 -2
  483. paddlex/modules/anomaly_detection/evaluator.py +1 -1
  484. paddlex/modules/anomaly_detection/exportor.py +1 -1
  485. paddlex/modules/anomaly_detection/model_list.py +1 -1
  486. paddlex/modules/anomaly_detection/trainer.py +3 -4
  487. paddlex/modules/base/__init__.py +5 -5
  488. paddlex/modules/base/build_model.py +2 -3
  489. paddlex/modules/base/dataset_checker/__init__.py +2 -2
  490. paddlex/modules/base/dataset_checker/dataset_checker.py +9 -4
  491. paddlex/modules/base/dataset_checker/utils.py +1 -3
  492. paddlex/modules/base/evaluator.py +24 -8
  493. paddlex/modules/base/exportor.py +36 -12
  494. paddlex/modules/base/trainer.py +43 -10
  495. paddlex/modules/base/utils/__init__.py +13 -0
  496. paddlex/modules/base/utils/cinn_setting.py +89 -0
  497. paddlex/modules/base/utils/coco_eval.py +94 -0
  498. paddlex/modules/base/utils/topk_eval.py +118 -0
  499. paddlex/modules/doc_vlm/__init__.py +18 -0
  500. paddlex/modules/doc_vlm/dataset_checker.py +29 -0
  501. paddlex/modules/doc_vlm/evaluator.py +29 -0
  502. paddlex/modules/doc_vlm/exportor.py +29 -0
  503. paddlex/modules/doc_vlm/model_list.py +16 -0
  504. paddlex/modules/doc_vlm/trainer.py +41 -0
  505. paddlex/modules/face_recognition/__init__.py +2 -2
  506. paddlex/modules/face_recognition/dataset_checker/__init__.py +2 -2
  507. paddlex/modules/face_recognition/dataset_checker/dataset_src/__init__.py +1 -1
  508. paddlex/modules/face_recognition/dataset_checker/dataset_src/check_dataset.py +3 -5
  509. paddlex/modules/face_recognition/dataset_checker/dataset_src/utils/__init__.py +1 -1
  510. paddlex/modules/face_recognition/dataset_checker/dataset_src/utils/visualizer.py +2 -5
  511. paddlex/modules/face_recognition/evaluator.py +1 -1
  512. paddlex/modules/face_recognition/exportor.py +1 -1
  513. paddlex/modules/face_recognition/model_list.py +1 -1
  514. paddlex/modules/face_recognition/trainer.py +2 -24
  515. paddlex/modules/formula_recognition/__init__.py +6 -1
  516. paddlex/modules/formula_recognition/dataset_checker/__init__.py +113 -0
  517. paddlex/modules/formula_recognition/dataset_checker/dataset_src/__init__.py +19 -0
  518. paddlex/modules/formula_recognition/dataset_checker/dataset_src/analyse_dataset.py +158 -0
  519. paddlex/modules/formula_recognition/dataset_checker/dataset_src/check_dataset.py +76 -0
  520. paddlex/modules/formula_recognition/dataset_checker/dataset_src/convert_dataset.py +95 -0
  521. paddlex/modules/formula_recognition/dataset_checker/dataset_src/split_dataset.py +80 -0
  522. paddlex/modules/formula_recognition/evaluator.py +77 -0
  523. paddlex/modules/formula_recognition/exportor.py +22 -0
  524. paddlex/modules/formula_recognition/model_list.py +4 -1
  525. paddlex/modules/formula_recognition/trainer.py +120 -0
  526. paddlex/modules/general_recognition/__init__.py +2 -2
  527. paddlex/modules/general_recognition/dataset_checker/__init__.py +2 -2
  528. paddlex/modules/general_recognition/dataset_checker/dataset_src/__init__.py +2 -2
  529. paddlex/modules/general_recognition/dataset_checker/dataset_src/analyse_dataset.py +7 -9
  530. paddlex/modules/general_recognition/dataset_checker/dataset_src/check_dataset.py +4 -5
  531. paddlex/modules/general_recognition/dataset_checker/dataset_src/convert_dataset.py +6 -5
  532. paddlex/modules/general_recognition/dataset_checker/dataset_src/split_dataset.py +1 -1
  533. paddlex/modules/general_recognition/dataset_checker/dataset_src/utils/__init__.py +1 -1
  534. paddlex/modules/general_recognition/dataset_checker/dataset_src/utils/visualizer.py +2 -5
  535. paddlex/modules/general_recognition/evaluator.py +1 -1
  536. paddlex/modules/general_recognition/exportor.py +1 -1
  537. paddlex/modules/general_recognition/model_list.py +1 -1
  538. paddlex/modules/general_recognition/trainer.py +1 -1
  539. paddlex/modules/image_classification/__init__.py +2 -2
  540. paddlex/modules/image_classification/dataset_checker/__init__.py +2 -2
  541. paddlex/modules/image_classification/dataset_checker/dataset_src/__init__.py +2 -2
  542. paddlex/modules/image_classification/dataset_checker/dataset_src/analyse_dataset.py +8 -9
  543. paddlex/modules/image_classification/dataset_checker/dataset_src/check_dataset.py +4 -3
  544. paddlex/modules/image_classification/dataset_checker/dataset_src/convert_dataset.py +4 -4
  545. paddlex/modules/image_classification/dataset_checker/dataset_src/split_dataset.py +1 -1
  546. paddlex/modules/image_classification/dataset_checker/dataset_src/utils/__init__.py +1 -1
  547. paddlex/modules/image_classification/dataset_checker/dataset_src/utils/visualizer.py +2 -5
  548. paddlex/modules/image_classification/evaluator.py +1 -1
  549. paddlex/modules/image_classification/exportor.py +1 -1
  550. paddlex/modules/image_classification/model_list.py +3 -1
  551. paddlex/modules/image_classification/trainer.py +3 -3
  552. paddlex/modules/image_unwarping/__init__.py +1 -1
  553. paddlex/modules/image_unwarping/model_list.py +1 -1
  554. paddlex/modules/instance_segmentation/__init__.py +2 -2
  555. paddlex/modules/instance_segmentation/dataset_checker/__init__.py +17 -3
  556. paddlex/modules/instance_segmentation/dataset_checker/dataset_src/__init__.py +2 -2
  557. paddlex/modules/instance_segmentation/dataset_checker/dataset_src/analyse_dataset.py +9 -5
  558. paddlex/modules/instance_segmentation/dataset_checker/dataset_src/check_dataset.py +8 -5
  559. paddlex/modules/instance_segmentation/dataset_checker/dataset_src/convert_dataset.py +8 -8
  560. paddlex/modules/instance_segmentation/dataset_checker/dataset_src/split_dataset.py +7 -4
  561. paddlex/modules/instance_segmentation/dataset_checker/dataset_src/utils/__init__.py +1 -1
  562. paddlex/modules/instance_segmentation/dataset_checker/dataset_src/utils/visualizer.py +10 -8
  563. paddlex/modules/instance_segmentation/evaluator.py +1 -1
  564. paddlex/modules/instance_segmentation/exportor.py +1 -1
  565. paddlex/modules/instance_segmentation/model_list.py +1 -1
  566. paddlex/modules/instance_segmentation/trainer.py +1 -1
  567. paddlex/modules/keypoint_detection/__init__.py +18 -0
  568. paddlex/modules/keypoint_detection/dataset_checker/__init__.py +56 -0
  569. paddlex/modules/keypoint_detection/dataset_checker/dataset_src/__init__.py +15 -0
  570. paddlex/modules/keypoint_detection/dataset_checker/dataset_src/check_dataset.py +91 -0
  571. paddlex/modules/keypoint_detection/dataset_checker/dataset_src/utils/__init__.py +13 -0
  572. paddlex/modules/keypoint_detection/dataset_checker/dataset_src/utils/visualizer.py +124 -0
  573. paddlex/modules/keypoint_detection/evaluator.py +41 -0
  574. paddlex/modules/keypoint_detection/exportor.py +22 -0
  575. paddlex/modules/keypoint_detection/model_list.py +16 -0
  576. paddlex/modules/keypoint_detection/trainer.py +39 -0
  577. paddlex/modules/m_3d_bev_detection/__init__.py +18 -0
  578. paddlex/modules/m_3d_bev_detection/dataset_checker/__init__.py +95 -0
  579. paddlex/modules/m_3d_bev_detection/dataset_checker/dataset_src/__init__.py +17 -0
  580. paddlex/modules/m_3d_bev_detection/dataset_checker/dataset_src/analyse_dataset.py +106 -0
  581. paddlex/modules/m_3d_bev_detection/dataset_checker/dataset_src/check_dataset.py +101 -0
  582. paddlex/modules/m_3d_bev_detection/evaluator.py +46 -0
  583. paddlex/modules/m_3d_bev_detection/exportor.py +22 -0
  584. paddlex/modules/m_3d_bev_detection/model_list.py +18 -0
  585. paddlex/modules/m_3d_bev_detection/trainer.py +68 -0
  586. paddlex/modules/multilabel_classification/__init__.py +2 -2
  587. paddlex/modules/multilabel_classification/dataset_checker/__init__.py +2 -2
  588. paddlex/modules/multilabel_classification/dataset_checker/dataset_src/__init__.py +2 -2
  589. paddlex/modules/multilabel_classification/dataset_checker/dataset_src/analyse_dataset.py +8 -9
  590. paddlex/modules/multilabel_classification/dataset_checker/dataset_src/check_dataset.py +4 -3
  591. paddlex/modules/multilabel_classification/dataset_checker/dataset_src/convert_dataset.py +10 -7
  592. paddlex/modules/multilabel_classification/dataset_checker/dataset_src/split_dataset.py +1 -1
  593. paddlex/modules/multilabel_classification/dataset_checker/dataset_src/utils/__init__.py +1 -1
  594. paddlex/modules/multilabel_classification/dataset_checker/dataset_src/utils/visualizer.py +1 -5
  595. paddlex/modules/multilabel_classification/evaluator.py +1 -1
  596. paddlex/modules/multilabel_classification/exportor.py +1 -1
  597. paddlex/modules/multilabel_classification/model_list.py +1 -1
  598. paddlex/modules/multilabel_classification/trainer.py +3 -3
  599. paddlex/modules/multilingual_speech_recognition/__init__.py +18 -0
  600. paddlex/modules/multilingual_speech_recognition/dataset_checker.py +27 -0
  601. paddlex/modules/multilingual_speech_recognition/evaluator.py +27 -0
  602. paddlex/modules/multilingual_speech_recognition/exportor.py +27 -0
  603. paddlex/modules/multilingual_speech_recognition/model_list.py +22 -0
  604. paddlex/modules/multilingual_speech_recognition/trainer.py +42 -0
  605. paddlex/modules/object_detection/__init__.py +2 -2
  606. paddlex/modules/object_detection/dataset_checker/__init__.py +2 -11
  607. paddlex/modules/object_detection/dataset_checker/dataset_src/__init__.py +2 -2
  608. paddlex/modules/object_detection/dataset_checker/dataset_src/analyse_dataset.py +10 -8
  609. paddlex/modules/object_detection/dataset_checker/dataset_src/check_dataset.py +10 -5
  610. paddlex/modules/object_detection/dataset_checker/dataset_src/convert_dataset.py +13 -8
  611. paddlex/modules/object_detection/dataset_checker/dataset_src/split_dataset.py +8 -4
  612. paddlex/modules/object_detection/dataset_checker/dataset_src/utils/__init__.py +1 -1
  613. paddlex/modules/object_detection/dataset_checker/dataset_src/utils/visualizer.py +9 -8
  614. paddlex/modules/object_detection/evaluator.py +18 -2
  615. paddlex/modules/object_detection/exportor.py +1 -1
  616. paddlex/modules/object_detection/model_list.py +11 -1
  617. paddlex/modules/object_detection/trainer.py +19 -6
  618. paddlex/modules/open_vocabulary_detection/__init__.py +18 -0
  619. paddlex/modules/open_vocabulary_detection/dataset_checker.py +29 -0
  620. paddlex/modules/open_vocabulary_detection/evaluator.py +29 -0
  621. paddlex/modules/open_vocabulary_detection/exportor.py +29 -0
  622. paddlex/modules/open_vocabulary_detection/model_list.py +16 -0
  623. paddlex/modules/open_vocabulary_detection/trainer.py +44 -0
  624. paddlex/modules/open_vocabulary_segmentation/__init__.py +18 -0
  625. paddlex/modules/open_vocabulary_segmentation/dataset_checker.py +29 -0
  626. paddlex/modules/open_vocabulary_segmentation/evaluator.py +29 -0
  627. paddlex/modules/open_vocabulary_segmentation/exportor.py +29 -0
  628. paddlex/modules/open_vocabulary_segmentation/model_list.py +19 -0
  629. paddlex/modules/open_vocabulary_segmentation/trainer.py +44 -0
  630. paddlex/modules/semantic_segmentation/__init__.py +2 -2
  631. paddlex/modules/semantic_segmentation/dataset_checker/__init__.py +17 -3
  632. paddlex/modules/semantic_segmentation/dataset_checker/dataset_src/__init__.py +2 -2
  633. paddlex/modules/semantic_segmentation/dataset_checker/dataset_src/analyse_dataset.py +6 -3
  634. paddlex/modules/semantic_segmentation/dataset_checker/dataset_src/check_dataset.py +2 -2
  635. paddlex/modules/semantic_segmentation/dataset_checker/dataset_src/convert_dataset.py +7 -4
  636. paddlex/modules/semantic_segmentation/dataset_checker/dataset_src/split_dataset.py +2 -2
  637. paddlex/modules/semantic_segmentation/dataset_checker/dataset_src/utils/__init__.py +1 -1
  638. paddlex/modules/semantic_segmentation/dataset_checker/dataset_src/utils/visualizer.py +6 -2
  639. paddlex/modules/semantic_segmentation/evaluator.py +1 -1
  640. paddlex/modules/semantic_segmentation/exportor.py +10 -1
  641. paddlex/modules/semantic_segmentation/model_list.py +3 -1
  642. paddlex/modules/semantic_segmentation/trainer.py +5 -4
  643. paddlex/modules/table_recognition/__init__.py +2 -2
  644. paddlex/modules/table_recognition/dataset_checker/__init__.py +21 -6
  645. paddlex/modules/table_recognition/dataset_checker/dataset_src/__init__.py +2 -2
  646. paddlex/modules/table_recognition/dataset_checker/dataset_src/analyse_dataset.py +3 -2
  647. paddlex/modules/table_recognition/dataset_checker/dataset_src/check_dataset.py +20 -20
  648. paddlex/modules/table_recognition/dataset_checker/dataset_src/split_dataset.py +2 -1
  649. paddlex/modules/table_recognition/evaluator.py +1 -1
  650. paddlex/modules/table_recognition/exportor.py +1 -1
  651. paddlex/modules/table_recognition/model_list.py +3 -1
  652. paddlex/modules/table_recognition/trainer.py +2 -5
  653. paddlex/modules/text_detection/__init__.py +2 -2
  654. paddlex/modules/text_detection/dataset_checker/__init__.py +20 -7
  655. paddlex/modules/text_detection/dataset_checker/dataset_src/__init__.py +2 -2
  656. paddlex/modules/text_detection/dataset_checker/dataset_src/analyse_dataset.py +12 -9
  657. paddlex/modules/text_detection/dataset_checker/dataset_src/check_dataset.py +15 -5
  658. paddlex/modules/text_detection/dataset_checker/dataset_src/split_dataset.py +3 -3
  659. paddlex/modules/text_detection/evaluator.py +1 -1
  660. paddlex/modules/text_detection/exportor.py +1 -1
  661. paddlex/modules/text_detection/model_list.py +3 -1
  662. paddlex/modules/text_detection/trainer.py +2 -5
  663. paddlex/modules/text_recognition/__init__.py +2 -2
  664. paddlex/modules/text_recognition/dataset_checker/__init__.py +20 -9
  665. paddlex/modules/text_recognition/dataset_checker/dataset_src/__init__.py +2 -2
  666. paddlex/modules/text_recognition/dataset_checker/dataset_src/analyse_dataset.py +13 -12
  667. paddlex/modules/text_recognition/dataset_checker/dataset_src/check_dataset.py +15 -8
  668. paddlex/modules/text_recognition/dataset_checker/dataset_src/convert_dataset.py +11 -10
  669. paddlex/modules/text_recognition/dataset_checker/dataset_src/split_dataset.py +1 -2
  670. paddlex/modules/text_recognition/evaluator.py +5 -4
  671. paddlex/modules/text_recognition/exportor.py +1 -4
  672. paddlex/modules/text_recognition/model_list.py +15 -1
  673. paddlex/modules/text_recognition/trainer.py +6 -6
  674. paddlex/modules/ts_anomaly_detection/__init__.py +2 -2
  675. paddlex/modules/ts_anomaly_detection/dataset_checker/__init__.py +19 -5
  676. paddlex/modules/ts_anomaly_detection/dataset_checker/dataset_src/__init__.py +2 -2
  677. paddlex/modules/ts_anomaly_detection/dataset_checker/dataset_src/analyse_dataset.py +1 -9
  678. paddlex/modules/ts_anomaly_detection/dataset_checker/dataset_src/check_dataset.py +2 -2
  679. paddlex/modules/ts_anomaly_detection/dataset_checker/dataset_src/convert_dataset.py +2 -6
  680. paddlex/modules/ts_anomaly_detection/dataset_checker/dataset_src/split_dataset.py +4 -4
  681. paddlex/modules/ts_anomaly_detection/evaluator.py +1 -1
  682. paddlex/modules/ts_anomaly_detection/exportor.py +2 -3
  683. paddlex/modules/ts_anomaly_detection/model_list.py +1 -1
  684. paddlex/modules/ts_anomaly_detection/trainer.py +22 -6
  685. paddlex/modules/ts_classification/__init__.py +2 -2
  686. paddlex/modules/ts_classification/dataset_checker/__init__.py +19 -5
  687. paddlex/modules/ts_classification/dataset_checker/dataset_src/__init__.py +2 -2
  688. paddlex/modules/ts_classification/dataset_checker/dataset_src/analyse_dataset.py +8 -5
  689. paddlex/modules/ts_classification/dataset_checker/dataset_src/check_dataset.py +2 -2
  690. paddlex/modules/ts_classification/dataset_checker/dataset_src/convert_dataset.py +2 -6
  691. paddlex/modules/ts_classification/dataset_checker/dataset_src/split_dataset.py +4 -4
  692. paddlex/modules/ts_classification/evaluator.py +1 -1
  693. paddlex/modules/ts_classification/exportor.py +2 -3
  694. paddlex/modules/ts_classification/model_list.py +1 -1
  695. paddlex/modules/ts_classification/trainer.py +21 -5
  696. paddlex/modules/ts_forecast/__init__.py +2 -2
  697. paddlex/modules/ts_forecast/dataset_checker/__init__.py +19 -5
  698. paddlex/modules/ts_forecast/dataset_checker/dataset_src/__init__.py +2 -2
  699. paddlex/modules/ts_forecast/dataset_checker/dataset_src/analyse_dataset.py +1 -9
  700. paddlex/modules/ts_forecast/dataset_checker/dataset_src/check_dataset.py +2 -2
  701. paddlex/modules/ts_forecast/dataset_checker/dataset_src/convert_dataset.py +2 -6
  702. paddlex/modules/ts_forecast/dataset_checker/dataset_src/split_dataset.py +4 -4
  703. paddlex/modules/ts_forecast/evaluator.py +1 -1
  704. paddlex/modules/ts_forecast/exportor.py +2 -3
  705. paddlex/modules/ts_forecast/model_list.py +1 -1
  706. paddlex/modules/ts_forecast/trainer.py +21 -5
  707. paddlex/modules/video_classification/__init__.py +18 -0
  708. paddlex/modules/video_classification/dataset_checker/__init__.py +93 -0
  709. paddlex/modules/video_classification/dataset_checker/dataset_src/__init__.py +18 -0
  710. paddlex/modules/video_classification/dataset_checker/dataset_src/analyse_dataset.py +93 -0
  711. paddlex/modules/video_classification/dataset_checker/dataset_src/check_dataset.py +120 -0
  712. paddlex/modules/video_classification/dataset_checker/dataset_src/split_dataset.py +82 -0
  713. paddlex/modules/video_classification/evaluator.py +44 -0
  714. paddlex/modules/video_classification/exportor.py +22 -0
  715. paddlex/modules/video_classification/model_list.py +19 -0
  716. paddlex/modules/video_classification/trainer.py +88 -0
  717. paddlex/modules/video_detection/__init__.py +18 -0
  718. paddlex/modules/video_detection/dataset_checker/__init__.py +86 -0
  719. paddlex/modules/video_detection/dataset_checker/dataset_src/__init__.py +17 -0
  720. paddlex/modules/video_detection/dataset_checker/dataset_src/analyse_dataset.py +100 -0
  721. paddlex/modules/video_detection/dataset_checker/dataset_src/check_dataset.py +132 -0
  722. paddlex/modules/video_detection/evaluator.py +42 -0
  723. paddlex/modules/video_detection/exportor.py +22 -0
  724. paddlex/modules/video_detection/model_list.py +15 -0
  725. paddlex/modules/video_detection/trainer.py +82 -0
  726. paddlex/ops/__init__.py +152 -0
  727. paddlex/ops/iou3d_nms/iou3d_cpu.cpp +266 -0
  728. paddlex/ops/iou3d_nms/iou3d_cpu.h +28 -0
  729. paddlex/ops/iou3d_nms/iou3d_nms.cpp +206 -0
  730. paddlex/ops/iou3d_nms/iou3d_nms.h +35 -0
  731. paddlex/ops/iou3d_nms/iou3d_nms_api.cpp +114 -0
  732. paddlex/ops/iou3d_nms/iou3d_nms_kernel.cu +484 -0
  733. paddlex/ops/setup.py +37 -0
  734. paddlex/ops/voxel/voxelize_op.cc +194 -0
  735. paddlex/ops/voxel/voxelize_op.cu +346 -0
  736. paddlex/paddlex_cli.py +352 -74
  737. paddlex/repo_apis/Paddle3D_api/__init__.py +17 -0
  738. paddlex/repo_apis/Paddle3D_api/bev_fusion/__init__.py +18 -0
  739. paddlex/repo_apis/Paddle3D_api/bev_fusion/config.py +118 -0
  740. paddlex/repo_apis/Paddle3D_api/bev_fusion/model.py +238 -0
  741. paddlex/repo_apis/Paddle3D_api/bev_fusion/register.py +55 -0
  742. paddlex/repo_apis/Paddle3D_api/bev_fusion/runner.py +104 -0
  743. paddlex/repo_apis/Paddle3D_api/pp3d_config.py +145 -0
  744. paddlex/repo_apis/PaddleClas_api/__init__.py +1 -1
  745. paddlex/repo_apis/PaddleClas_api/cls/__init__.py +3 -3
  746. paddlex/repo_apis/PaddleClas_api/cls/config.py +4 -3
  747. paddlex/repo_apis/PaddleClas_api/cls/model.py +9 -3
  748. paddlex/repo_apis/PaddleClas_api/cls/register.py +22 -5
  749. paddlex/repo_apis/PaddleClas_api/cls/runner.py +1 -2
  750. paddlex/repo_apis/PaddleClas_api/shitu_rec/__init__.py +2 -2
  751. paddlex/repo_apis/PaddleClas_api/shitu_rec/config.py +2 -2
  752. paddlex/repo_apis/PaddleClas_api/shitu_rec/model.py +1 -4
  753. paddlex/repo_apis/PaddleClas_api/shitu_rec/register.py +2 -2
  754. paddlex/repo_apis/PaddleClas_api/shitu_rec/runner.py +1 -6
  755. paddlex/repo_apis/PaddleDetection_api/__init__.py +2 -2
  756. paddlex/repo_apis/PaddleDetection_api/config_helper.py +3 -3
  757. paddlex/repo_apis/PaddleDetection_api/instance_seg/__init__.py +2 -2
  758. paddlex/repo_apis/PaddleDetection_api/instance_seg/config.py +10 -7
  759. paddlex/repo_apis/PaddleDetection_api/instance_seg/model.py +9 -3
  760. paddlex/repo_apis/PaddleDetection_api/instance_seg/register.py +2 -3
  761. paddlex/repo_apis/PaddleDetection_api/instance_seg/runner.py +1 -2
  762. paddlex/repo_apis/PaddleDetection_api/object_det/__init__.py +3 -3
  763. paddlex/repo_apis/PaddleDetection_api/object_det/config.py +31 -8
  764. paddlex/repo_apis/PaddleDetection_api/object_det/model.py +11 -6
  765. paddlex/repo_apis/PaddleDetection_api/object_det/official_categories.py +82 -1
  766. paddlex/repo_apis/PaddleDetection_api/object_det/register.py +184 -6
  767. paddlex/repo_apis/PaddleDetection_api/object_det/runner.py +1 -2
  768. paddlex/repo_apis/PaddleNLP_api/__init__.py +1 -1
  769. paddlex/repo_apis/PaddleOCR_api/__init__.py +4 -2
  770. paddlex/repo_apis/PaddleOCR_api/config_utils.py +1 -1
  771. paddlex/repo_apis/PaddleOCR_api/formula_rec/__init__.py +16 -0
  772. paddlex/repo_apis/PaddleOCR_api/formula_rec/config.py +571 -0
  773. paddlex/repo_apis/PaddleOCR_api/formula_rec/model.py +402 -0
  774. paddlex/repo_apis/PaddleOCR_api/formula_rec/register.py +72 -0
  775. paddlex/repo_apis/PaddleOCR_api/formula_rec/runner.py +239 -0
  776. paddlex/repo_apis/PaddleOCR_api/table_rec/__init__.py +1 -1
  777. paddlex/repo_apis/PaddleOCR_api/table_rec/config.py +1 -1
  778. paddlex/repo_apis/PaddleOCR_api/table_rec/model.py +3 -3
  779. paddlex/repo_apis/PaddleOCR_api/table_rec/register.py +20 -3
  780. paddlex/repo_apis/PaddleOCR_api/table_rec/runner.py +2 -2
  781. paddlex/repo_apis/PaddleOCR_api/text_det/__init__.py +1 -1
  782. paddlex/repo_apis/PaddleOCR_api/text_det/config.py +1 -1
  783. paddlex/repo_apis/PaddleOCR_api/text_det/model.py +3 -3
  784. paddlex/repo_apis/PaddleOCR_api/text_det/register.py +20 -3
  785. paddlex/repo_apis/PaddleOCR_api/text_det/runner.py +2 -2
  786. paddlex/repo_apis/PaddleOCR_api/text_rec/__init__.py +1 -1
  787. paddlex/repo_apis/PaddleOCR_api/text_rec/config.py +25 -3
  788. paddlex/repo_apis/PaddleOCR_api/text_rec/model.py +10 -4
  789. paddlex/repo_apis/PaddleOCR_api/text_rec/register.py +128 -10
  790. paddlex/repo_apis/PaddleOCR_api/text_rec/runner.py +1 -2
  791. paddlex/repo_apis/PaddleSeg_api/__init__.py +1 -1
  792. paddlex/repo_apis/PaddleSeg_api/base_seg_config.py +2 -2
  793. paddlex/repo_apis/PaddleSeg_api/seg/__init__.py +1 -1
  794. paddlex/repo_apis/PaddleSeg_api/seg/config.py +12 -6
  795. paddlex/repo_apis/PaddleSeg_api/seg/model.py +15 -5
  796. paddlex/repo_apis/PaddleSeg_api/seg/register.py +22 -3
  797. paddlex/repo_apis/PaddleSeg_api/seg/runner.py +1 -2
  798. paddlex/repo_apis/PaddleTS_api/__init__.py +4 -3
  799. paddlex/repo_apis/PaddleTS_api/ts_ad/__init__.py +1 -1
  800. paddlex/repo_apis/PaddleTS_api/ts_ad/config.py +2 -3
  801. paddlex/repo_apis/PaddleTS_api/ts_ad/register.py +2 -2
  802. paddlex/repo_apis/PaddleTS_api/ts_ad/runner.py +2 -2
  803. paddlex/repo_apis/PaddleTS_api/ts_base/__init__.py +1 -1
  804. paddlex/repo_apis/PaddleTS_api/ts_base/config.py +25 -3
  805. paddlex/repo_apis/PaddleTS_api/ts_base/model.py +15 -11
  806. paddlex/repo_apis/PaddleTS_api/ts_base/runner.py +2 -2
  807. paddlex/repo_apis/PaddleTS_api/ts_cls/__init__.py +1 -1
  808. paddlex/repo_apis/PaddleTS_api/ts_cls/config.py +2 -3
  809. paddlex/repo_apis/PaddleTS_api/ts_cls/register.py +2 -2
  810. paddlex/repo_apis/PaddleTS_api/ts_cls/runner.py +2 -2
  811. paddlex/repo_apis/PaddleTS_api/ts_fc/__init__.py +1 -1
  812. paddlex/repo_apis/PaddleTS_api/ts_fc/config.py +2 -3
  813. paddlex/repo_apis/PaddleTS_api/ts_fc/register.py +1 -1
  814. paddlex/repo_apis/PaddleVideo_api/__init__.py +17 -0
  815. paddlex/repo_apis/PaddleVideo_api/config_utils.py +51 -0
  816. paddlex/repo_apis/PaddleVideo_api/video_cls/__init__.py +19 -0
  817. paddlex/repo_apis/PaddleVideo_api/video_cls/config.py +548 -0
  818. paddlex/repo_apis/PaddleVideo_api/video_cls/model.py +346 -0
  819. paddlex/repo_apis/PaddleVideo_api/video_cls/register.py +70 -0
  820. paddlex/repo_apis/PaddleVideo_api/video_cls/runner.py +204 -0
  821. paddlex/repo_apis/PaddleVideo_api/video_det/__init__.py +19 -0
  822. paddlex/repo_apis/PaddleVideo_api/video_det/config.py +549 -0
  823. paddlex/repo_apis/PaddleVideo_api/video_det/model.py +298 -0
  824. paddlex/repo_apis/PaddleVideo_api/video_det/register.py +44 -0
  825. paddlex/repo_apis/PaddleVideo_api/video_det/runner.py +199 -0
  826. paddlex/repo_apis/__init__.py +1 -1
  827. paddlex/repo_apis/base/__init__.py +4 -5
  828. paddlex/repo_apis/base/config.py +2 -3
  829. paddlex/repo_apis/base/model.py +11 -19
  830. paddlex/repo_apis/base/register.py +1 -1
  831. paddlex/repo_apis/base/runner.py +13 -13
  832. paddlex/repo_apis/base/utils/__init__.py +1 -1
  833. paddlex/repo_apis/base/utils/arg.py +1 -1
  834. paddlex/repo_apis/base/utils/subprocess.py +1 -1
  835. paddlex/repo_manager/__init__.py +2 -9
  836. paddlex/repo_manager/core.py +9 -27
  837. paddlex/repo_manager/meta.py +58 -25
  838. paddlex/repo_manager/repo.py +169 -141
  839. paddlex/repo_manager/utils.py +72 -222
  840. paddlex/utils/__init__.py +1 -1
  841. paddlex/utils/cache.py +8 -10
  842. paddlex/utils/config.py +10 -8
  843. paddlex/utils/custom_device_list.py +287 -0
  844. paddlex/utils/deps.py +249 -0
  845. paddlex/utils/device.py +125 -33
  846. paddlex/utils/download.py +4 -4
  847. paddlex/utils/env.py +54 -0
  848. paddlex/utils/errors/__init__.py +1 -1
  849. paddlex/utils/errors/dataset_checker.py +1 -1
  850. paddlex/utils/errors/others.py +2 -16
  851. paddlex/utils/file_interface.py +4 -5
  852. paddlex/utils/flags.py +22 -11
  853. paddlex/utils/fonts/__init__.py +50 -6
  854. paddlex/utils/func_register.py +1 -1
  855. paddlex/utils/install.py +87 -0
  856. paddlex/utils/interactive_get_pipeline.py +3 -3
  857. paddlex/utils/lazy_loader.py +4 -2
  858. paddlex/utils/logging.py +11 -3
  859. paddlex/utils/misc.py +5 -5
  860. paddlex/utils/pipeline_arguments.py +719 -0
  861. paddlex/utils/result_saver.py +4 -5
  862. paddlex/utils/subclass_register.py +2 -4
  863. paddlex/version.py +2 -1
  864. paddlex-3.0.0rc1.dist-info/METADATA +1174 -0
  865. paddlex-3.0.0rc1.dist-info/RECORD +1068 -0
  866. paddlex-3.0.0rc1.dist-info/WHEEL +5 -0
  867. paddlex/configs/face_recognition/MobileFaceNet.yaml +0 -44
  868. paddlex/configs/face_recognition/ResNet50_face.yaml +0 -44
  869. paddlex/configs/formula_recognition/LaTeX_OCR_rec.yaml +0 -40
  870. paddlex/configs/image_classification/CLIP_vit_base_patch16_224.yaml +0 -41
  871. paddlex/configs/image_classification/CLIP_vit_large_patch14_224.yaml +0 -41
  872. paddlex/configs/image_classification/ConvNeXt_large_384.yaml +0 -41
  873. paddlex/configs/object_detection/YOLOX-X.yaml +0 -40
  874. paddlex/configs/semantic_segmentation/SeaFormer_base.yaml +0 -40
  875. paddlex/configs/semantic_segmentation/SeaFormer_large.yaml +0 -40
  876. paddlex/configs/semantic_segmentation/SeaFormer_small.yaml +0 -40
  877. paddlex/configs/semantic_segmentation/SeaFormer_tiny.yaml +0 -40
  878. paddlex/inference/components/__init__.py +0 -18
  879. paddlex/inference/components/base.py +0 -292
  880. paddlex/inference/components/llm/__init__.py +0 -25
  881. paddlex/inference/components/llm/base.py +0 -65
  882. paddlex/inference/components/llm/erniebot.py +0 -212
  883. paddlex/inference/components/paddle_predictor/__init__.py +0 -20
  884. paddlex/inference/components/paddle_predictor/predictor.py +0 -332
  885. paddlex/inference/components/retrieval/__init__.py +0 -15
  886. paddlex/inference/components/retrieval/faiss.py +0 -359
  887. paddlex/inference/components/task_related/__init__.py +0 -33
  888. paddlex/inference/components/task_related/clas.py +0 -124
  889. paddlex/inference/components/task_related/det.py +0 -284
  890. paddlex/inference/components/task_related/instance_seg.py +0 -89
  891. paddlex/inference/components/task_related/seal_det_warp.py +0 -940
  892. paddlex/inference/components/task_related/seg.py +0 -40
  893. paddlex/inference/components/task_related/table_rec.py +0 -191
  894. paddlex/inference/components/task_related/text_det.py +0 -895
  895. paddlex/inference/components/task_related/text_rec.py +0 -353
  896. paddlex/inference/components/task_related/warp.py +0 -43
  897. paddlex/inference/components/transforms/__init__.py +0 -16
  898. paddlex/inference/components/transforms/image/__init__.py +0 -15
  899. paddlex/inference/components/transforms/image/common.py +0 -598
  900. paddlex/inference/components/transforms/image/funcs.py +0 -58
  901. paddlex/inference/components/transforms/read_data.py +0 -67
  902. paddlex/inference/components/transforms/ts/__init__.py +0 -15
  903. paddlex/inference/components/transforms/ts/common.py +0 -393
  904. paddlex/inference/components/transforms/ts/funcs.py +0 -424
  905. paddlex/inference/models/anomaly_detection.py +0 -87
  906. paddlex/inference/models/base/base_predictor.py +0 -76
  907. paddlex/inference/models/base/basic_predictor.py +0 -122
  908. paddlex/inference/models/face_recognition.py +0 -21
  909. paddlex/inference/models/formula_recognition.py +0 -55
  910. paddlex/inference/models/general_recognition.py +0 -99
  911. paddlex/inference/models/image_classification.py +0 -101
  912. paddlex/inference/models/image_unwarping.py +0 -43
  913. paddlex/inference/models/instance_segmentation.py +0 -66
  914. paddlex/inference/models/multilabel_classification.py +0 -33
  915. paddlex/inference/models/object_detection.py +0 -129
  916. paddlex/inference/models/semantic_segmentation.py +0 -86
  917. paddlex/inference/models/table_recognition.py +0 -106
  918. paddlex/inference/models/text_detection.py +0 -105
  919. paddlex/inference/models/text_recognition.py +0 -78
  920. paddlex/inference/models/ts_ad.py +0 -68
  921. paddlex/inference/models/ts_cls.py +0 -57
  922. paddlex/inference/models/ts_fc.py +0 -73
  923. paddlex/inference/pipelines/attribute_recognition.py +0 -92
  924. paddlex/inference/pipelines/face_recognition.py +0 -49
  925. paddlex/inference/pipelines/formula_recognition.py +0 -102
  926. paddlex/inference/pipelines/layout_parsing/layout_parsing.py +0 -362
  927. paddlex/inference/pipelines/ocr.py +0 -80
  928. paddlex/inference/pipelines/pp_shitu_v2.py +0 -152
  929. paddlex/inference/pipelines/ppchatocrv3/__init__.py +0 -15
  930. paddlex/inference/pipelines/ppchatocrv3/ch_prompt.yaml +0 -14
  931. paddlex/inference/pipelines/ppchatocrv3/ppchatocrv3.py +0 -717
  932. paddlex/inference/pipelines/ppchatocrv3/utils.py +0 -168
  933. paddlex/inference/pipelines/seal_recognition.py +0 -152
  934. paddlex/inference/pipelines/serving/__init__.py +0 -17
  935. paddlex/inference/pipelines/serving/_pipeline_apps/__init__.py +0 -205
  936. paddlex/inference/pipelines/serving/_pipeline_apps/anomaly_detection.py +0 -80
  937. paddlex/inference/pipelines/serving/_pipeline_apps/face_recognition.py +0 -317
  938. paddlex/inference/pipelines/serving/_pipeline_apps/formula_recognition.py +0 -119
  939. paddlex/inference/pipelines/serving/_pipeline_apps/image_classification.py +0 -101
  940. paddlex/inference/pipelines/serving/_pipeline_apps/instance_segmentation.py +0 -112
  941. paddlex/inference/pipelines/serving/_pipeline_apps/layout_parsing.py +0 -205
  942. paddlex/inference/pipelines/serving/_pipeline_apps/multi_label_image_classification.py +0 -90
  943. paddlex/inference/pipelines/serving/_pipeline_apps/object_detection.py +0 -90
  944. paddlex/inference/pipelines/serving/_pipeline_apps/ocr.py +0 -98
  945. paddlex/inference/pipelines/serving/_pipeline_apps/pedestrian_attribute_recognition.py +0 -102
  946. paddlex/inference/pipelines/serving/_pipeline_apps/pp_shitu_v2.py +0 -319
  947. paddlex/inference/pipelines/serving/_pipeline_apps/ppchatocrv3.py +0 -445
  948. paddlex/inference/pipelines/serving/_pipeline_apps/seal_recognition.py +0 -110
  949. paddlex/inference/pipelines/serving/_pipeline_apps/semantic_segmentation.py +0 -82
  950. paddlex/inference/pipelines/serving/_pipeline_apps/small_object_detection.py +0 -92
  951. paddlex/inference/pipelines/serving/_pipeline_apps/table_recognition.py +0 -110
  952. paddlex/inference/pipelines/serving/_pipeline_apps/ts_ad.py +0 -68
  953. paddlex/inference/pipelines/serving/_pipeline_apps/ts_cls.py +0 -68
  954. paddlex/inference/pipelines/serving/_pipeline_apps/ts_fc.py +0 -68
  955. paddlex/inference/pipelines/serving/_pipeline_apps/vehicle_attribute_recognition.py +0 -102
  956. paddlex/inference/pipelines/serving/app.py +0 -164
  957. paddlex/inference/pipelines/serving/models.py +0 -30
  958. paddlex/inference/pipelines/serving/server.py +0 -25
  959. paddlex/inference/pipelines/serving/storage.py +0 -161
  960. paddlex/inference/pipelines/serving/utils.py +0 -190
  961. paddlex/inference/pipelines/single_model_pipeline.py +0 -76
  962. paddlex/inference/pipelines/table_recognition/table_recognition.py +0 -193
  963. paddlex/inference/results/__init__.py +0 -31
  964. paddlex/inference/results/attribute_rec.py +0 -89
  965. paddlex/inference/results/base.py +0 -43
  966. paddlex/inference/results/chat_ocr.py +0 -158
  967. paddlex/inference/results/clas.py +0 -133
  968. paddlex/inference/results/det.py +0 -86
  969. paddlex/inference/results/face_rec.py +0 -34
  970. paddlex/inference/results/formula_rec.py +0 -363
  971. paddlex/inference/results/instance_seg.py +0 -152
  972. paddlex/inference/results/ocr.py +0 -157
  973. paddlex/inference/results/seal_rec.py +0 -50
  974. paddlex/inference/results/seg.py +0 -72
  975. paddlex/inference/results/shitu.py +0 -35
  976. paddlex/inference/results/table_rec.py +0 -109
  977. paddlex/inference/results/text_det.py +0 -33
  978. paddlex/inference/results/text_rec.py +0 -66
  979. paddlex/inference/results/ts.py +0 -37
  980. paddlex/inference/results/utils/__init__.py +0 -13
  981. paddlex/inference/results/utils/mixin.py +0 -204
  982. paddlex/inference/results/warp.py +0 -31
  983. paddlex/inference/utils/new_ir_blacklist.py +0 -22
  984. paddlex/inference/utils/process_hook.py +0 -54
  985. paddlex/pipelines/OCR.yaml +0 -8
  986. paddlex/pipelines/PP-ChatOCRv3-doc.yaml +0 -27
  987. paddlex/pipelines/PP-ShiTuV2.yaml +0 -13
  988. paddlex/pipelines/anomaly_detection.yaml +0 -7
  989. paddlex/pipelines/face_recognition.yaml +0 -13
  990. paddlex/pipelines/formula_recognition.yaml +0 -8
  991. paddlex/pipelines/image_classification.yaml +0 -7
  992. paddlex/pipelines/instance_segmentation.yaml +0 -7
  993. paddlex/pipelines/layout_parsing.yaml +0 -14
  994. paddlex/pipelines/multi_label_image_classification.yaml +0 -7
  995. paddlex/pipelines/object_detection.yaml +0 -7
  996. paddlex/pipelines/pedestrian_attribute_recognition.yaml +0 -7
  997. paddlex/pipelines/seal_recognition.yaml +0 -10
  998. paddlex/pipelines/semantic_segmentation.yaml +0 -7
  999. paddlex/pipelines/small_object_detection.yaml +0 -7
  1000. paddlex/pipelines/table_recognition.yaml +0 -12
  1001. paddlex/pipelines/ts_ad.yaml +0 -7
  1002. paddlex/pipelines/ts_cls.yaml +0 -7
  1003. paddlex/pipelines/ts_fc.yaml +0 -7
  1004. paddlex/pipelines/vehicle_attribute_recognition.yaml +0 -7
  1005. paddlex/repo_manager/requirements.txt +0 -18
  1006. paddlex/utils/fonts/PingFang-SC-Regular.ttf +0 -0
  1007. paddlex-3.0.0b2.dist-info/METADATA +0 -760
  1008. paddlex-3.0.0b2.dist-info/RECORD +0 -646
  1009. paddlex-3.0.0b2.dist-info/WHEEL +0 -5
  1010. /paddlex/configs/{doc_text_orientation → modules/doc_text_orientation}/PP-LCNet_x1_0_doc_ori.yaml +0 -0
  1011. /paddlex/configs/{face_detection → modules/face_detection}/BlazeFace-FPN-SSH.yaml +0 -0
  1012. /paddlex/configs/{face_detection → modules/face_detection}/BlazeFace.yaml +0 -0
  1013. /paddlex/configs/{face_detection → modules/face_detection}/PP-YOLOE_plus-S_face.yaml +0 -0
  1014. /paddlex/configs/{face_detection → modules/face_detection}/PicoDet_LCNet_x2_5_face.yaml +0 -0
  1015. /paddlex/configs/{human_detection → modules/human_detection}/PP-YOLOE-L_human.yaml +0 -0
  1016. /paddlex/configs/{human_detection → modules/human_detection}/PP-YOLOE-S_human.yaml +0 -0
  1017. /paddlex/configs/{anomaly_detection → modules/image_anomaly_detection}/STFPM.yaml +0 -0
  1018. /paddlex/configs/{image_classification → modules/image_classification}/ConvNeXt_base_224.yaml +0 -0
  1019. /paddlex/configs/{image_classification → modules/image_classification}/ConvNeXt_base_384.yaml +0 -0
  1020. /paddlex/configs/{image_classification → modules/image_classification}/ConvNeXt_large_224.yaml +0 -0
  1021. /paddlex/configs/{image_classification → modules/image_classification}/ConvNeXt_small.yaml +0 -0
  1022. /paddlex/configs/{image_classification → modules/image_classification}/ConvNeXt_tiny.yaml +0 -0
  1023. /paddlex/configs/{image_classification → modules/image_classification}/FasterNet-L.yaml +0 -0
  1024. /paddlex/configs/{image_classification → modules/image_classification}/FasterNet-M.yaml +0 -0
  1025. /paddlex/configs/{image_classification → modules/image_classification}/FasterNet-S.yaml +0 -0
  1026. /paddlex/configs/{image_classification → modules/image_classification}/FasterNet-T0.yaml +0 -0
  1027. /paddlex/configs/{image_classification → modules/image_classification}/FasterNet-T1.yaml +0 -0
  1028. /paddlex/configs/{image_classification → modules/image_classification}/FasterNet-T2.yaml +0 -0
  1029. /paddlex/configs/{image_classification → modules/image_classification}/MobileNetV1_x0_25.yaml +0 -0
  1030. /paddlex/configs/{image_classification → modules/image_classification}/MobileNetV1_x0_5.yaml +0 -0
  1031. /paddlex/configs/{image_classification → modules/image_classification}/MobileNetV1_x0_75.yaml +0 -0
  1032. /paddlex/configs/{image_classification → modules/image_classification}/MobileNetV1_x1_0.yaml +0 -0
  1033. /paddlex/configs/{image_classification → modules/image_classification}/MobileNetV2_x0_25.yaml +0 -0
  1034. /paddlex/configs/{image_classification → modules/image_classification}/MobileNetV2_x0_5.yaml +0 -0
  1035. /paddlex/configs/{image_classification → modules/image_classification}/MobileNetV2_x1_0.yaml +0 -0
  1036. /paddlex/configs/{image_classification → modules/image_classification}/MobileNetV2_x1_5.yaml +0 -0
  1037. /paddlex/configs/{image_classification → modules/image_classification}/MobileNetV2_x2_0.yaml +0 -0
  1038. /paddlex/configs/{image_classification → modules/image_classification}/MobileNetV3_large_x0_35.yaml +0 -0
  1039. /paddlex/configs/{image_classification → modules/image_classification}/MobileNetV3_large_x0_5.yaml +0 -0
  1040. /paddlex/configs/{image_classification → modules/image_classification}/MobileNetV3_large_x0_75.yaml +0 -0
  1041. /paddlex/configs/{image_classification → modules/image_classification}/MobileNetV3_large_x1_0.yaml +0 -0
  1042. /paddlex/configs/{image_classification → modules/image_classification}/MobileNetV3_large_x1_25.yaml +0 -0
  1043. /paddlex/configs/{image_classification → modules/image_classification}/MobileNetV3_small_x0_35.yaml +0 -0
  1044. /paddlex/configs/{image_classification → modules/image_classification}/MobileNetV3_small_x0_5.yaml +0 -0
  1045. /paddlex/configs/{image_classification → modules/image_classification}/MobileNetV3_small_x0_75.yaml +0 -0
  1046. /paddlex/configs/{image_classification → modules/image_classification}/MobileNetV3_small_x1_0.yaml +0 -0
  1047. /paddlex/configs/{image_classification → modules/image_classification}/MobileNetV3_small_x1_25.yaml +0 -0
  1048. /paddlex/configs/{image_classification → modules/image_classification}/MobileNetV4_conv_large.yaml +0 -0
  1049. /paddlex/configs/{image_classification → modules/image_classification}/MobileNetV4_conv_medium.yaml +0 -0
  1050. /paddlex/configs/{image_classification → modules/image_classification}/MobileNetV4_conv_small.yaml +0 -0
  1051. /paddlex/configs/{image_classification → modules/image_classification}/MobileNetV4_hybrid_large.yaml +0 -0
  1052. /paddlex/configs/{image_classification → modules/image_classification}/MobileNetV4_hybrid_medium.yaml +0 -0
  1053. /paddlex/configs/{image_classification → modules/image_classification}/PP-HGNetV2-B0.yaml +0 -0
  1054. /paddlex/configs/{image_classification → modules/image_classification}/PP-HGNetV2-B1.yaml +0 -0
  1055. /paddlex/configs/{image_classification → modules/image_classification}/PP-HGNetV2-B2.yaml +0 -0
  1056. /paddlex/configs/{image_classification → modules/image_classification}/PP-HGNetV2-B3.yaml +0 -0
  1057. /paddlex/configs/{image_classification → modules/image_classification}/PP-HGNetV2-B4.yaml +0 -0
  1058. /paddlex/configs/{image_classification → modules/image_classification}/PP-HGNetV2-B5.yaml +0 -0
  1059. /paddlex/configs/{image_classification → modules/image_classification}/PP-HGNetV2-B6.yaml +0 -0
  1060. /paddlex/configs/{image_classification → modules/image_classification}/PP-HGNet_base.yaml +0 -0
  1061. /paddlex/configs/{image_classification → modules/image_classification}/PP-HGNet_small.yaml +0 -0
  1062. /paddlex/configs/{image_classification → modules/image_classification}/PP-HGNet_tiny.yaml +0 -0
  1063. /paddlex/configs/{image_classification → modules/image_classification}/PP-LCNetV2_base.yaml +0 -0
  1064. /paddlex/configs/{image_classification → modules/image_classification}/PP-LCNetV2_large.yaml +0 -0
  1065. /paddlex/configs/{image_classification → modules/image_classification}/PP-LCNetV2_small.yaml +0 -0
  1066. /paddlex/configs/{image_classification → modules/image_classification}/PP-LCNet_x0_25.yaml +0 -0
  1067. /paddlex/configs/{image_classification → modules/image_classification}/PP-LCNet_x0_35.yaml +0 -0
  1068. /paddlex/configs/{image_classification → modules/image_classification}/PP-LCNet_x0_5.yaml +0 -0
  1069. /paddlex/configs/{image_classification → modules/image_classification}/PP-LCNet_x0_75.yaml +0 -0
  1070. /paddlex/configs/{image_classification → modules/image_classification}/PP-LCNet_x1_0.yaml +0 -0
  1071. /paddlex/configs/{image_classification → modules/image_classification}/PP-LCNet_x1_5.yaml +0 -0
  1072. /paddlex/configs/{image_classification → modules/image_classification}/PP-LCNet_x2_0.yaml +0 -0
  1073. /paddlex/configs/{image_classification → modules/image_classification}/PP-LCNet_x2_5.yaml +0 -0
  1074. /paddlex/configs/{image_classification → modules/image_classification}/ResNet101.yaml +0 -0
  1075. /paddlex/configs/{image_classification → modules/image_classification}/ResNet101_vd.yaml +0 -0
  1076. /paddlex/configs/{image_classification → modules/image_classification}/ResNet152.yaml +0 -0
  1077. /paddlex/configs/{image_classification → modules/image_classification}/ResNet152_vd.yaml +0 -0
  1078. /paddlex/configs/{image_classification → modules/image_classification}/ResNet18.yaml +0 -0
  1079. /paddlex/configs/{image_classification → modules/image_classification}/ResNet18_vd.yaml +0 -0
  1080. /paddlex/configs/{image_classification → modules/image_classification}/ResNet200_vd.yaml +0 -0
  1081. /paddlex/configs/{image_classification → modules/image_classification}/ResNet34.yaml +0 -0
  1082. /paddlex/configs/{image_classification → modules/image_classification}/ResNet34_vd.yaml +0 -0
  1083. /paddlex/configs/{image_classification → modules/image_classification}/ResNet50.yaml +0 -0
  1084. /paddlex/configs/{image_classification → modules/image_classification}/ResNet50_vd.yaml +0 -0
  1085. /paddlex/configs/{image_classification → modules/image_classification}/StarNet-S1.yaml +0 -0
  1086. /paddlex/configs/{image_classification → modules/image_classification}/StarNet-S2.yaml +0 -0
  1087. /paddlex/configs/{image_classification → modules/image_classification}/StarNet-S3.yaml +0 -0
  1088. /paddlex/configs/{image_classification → modules/image_classification}/StarNet-S4.yaml +0 -0
  1089. /paddlex/configs/{image_classification → modules/image_classification}/SwinTransformer_base_patch4_window12_384.yaml +0 -0
  1090. /paddlex/configs/{image_classification → modules/image_classification}/SwinTransformer_base_patch4_window7_224.yaml +0 -0
  1091. /paddlex/configs/{image_classification → modules/image_classification}/SwinTransformer_large_patch4_window12_384.yaml +0 -0
  1092. /paddlex/configs/{image_classification → modules/image_classification}/SwinTransformer_large_patch4_window7_224.yaml +0 -0
  1093. /paddlex/configs/{image_classification → modules/image_classification}/SwinTransformer_small_patch4_window7_224.yaml +0 -0
  1094. /paddlex/configs/{image_classification → modules/image_classification}/SwinTransformer_tiny_patch4_window7_224.yaml +0 -0
  1095. /paddlex/configs/{general_recognition → modules/image_feature}/PP-ShiTuV2_rec.yaml +0 -0
  1096. /paddlex/configs/{general_recognition → modules/image_feature}/PP-ShiTuV2_rec_CLIP_vit_base.yaml +0 -0
  1097. /paddlex/configs/{general_recognition → modules/image_feature}/PP-ShiTuV2_rec_CLIP_vit_large.yaml +0 -0
  1098. /paddlex/configs/{multilabel_classification → modules/image_multilabel_classification}/CLIP_vit_base_patch16_448_ML.yaml +0 -0
  1099. /paddlex/configs/{multilabel_classification → modules/image_multilabel_classification}/PP-HGNetV2-B0_ML.yaml +0 -0
  1100. /paddlex/configs/{multilabel_classification → modules/image_multilabel_classification}/PP-HGNetV2-B4_ML.yaml +0 -0
  1101. /paddlex/configs/{multilabel_classification → modules/image_multilabel_classification}/PP-HGNetV2-B6_ML.yaml +0 -0
  1102. /paddlex/configs/{multilabel_classification → modules/image_multilabel_classification}/PP-LCNet_x1_0_ML.yaml +0 -0
  1103. /paddlex/configs/{multilabel_classification → modules/image_multilabel_classification}/ResNet50_ML.yaml +0 -0
  1104. /paddlex/configs/{image_unwarping → modules/image_unwarping}/UVDoc.yaml +0 -0
  1105. /paddlex/configs/{instance_segmentation → modules/instance_segmentation}/Cascade-MaskRCNN-ResNet50-FPN.yaml +0 -0
  1106. /paddlex/configs/{instance_segmentation → modules/instance_segmentation}/Cascade-MaskRCNN-ResNet50-vd-SSLDv2-FPN.yaml +0 -0
  1107. /paddlex/configs/{instance_segmentation → modules/instance_segmentation}/Mask-RT-DETR-H.yaml +0 -0
  1108. /paddlex/configs/{instance_segmentation → modules/instance_segmentation}/Mask-RT-DETR-L.yaml +0 -0
  1109. /paddlex/configs/{instance_segmentation → modules/instance_segmentation}/Mask-RT-DETR-M.yaml +0 -0
  1110. /paddlex/configs/{instance_segmentation → modules/instance_segmentation}/Mask-RT-DETR-S.yaml +0 -0
  1111. /paddlex/configs/{instance_segmentation → modules/instance_segmentation}/Mask-RT-DETR-X.yaml +0 -0
  1112. /paddlex/configs/{instance_segmentation → modules/instance_segmentation}/MaskRCNN-ResNeXt101-vd-FPN.yaml +0 -0
  1113. /paddlex/configs/{instance_segmentation → modules/instance_segmentation}/MaskRCNN-ResNet101-FPN.yaml +0 -0
  1114. /paddlex/configs/{instance_segmentation → modules/instance_segmentation}/MaskRCNN-ResNet101-vd-FPN.yaml +0 -0
  1115. /paddlex/configs/{instance_segmentation → modules/instance_segmentation}/MaskRCNN-ResNet50-FPN.yaml +0 -0
  1116. /paddlex/configs/{instance_segmentation → modules/instance_segmentation}/MaskRCNN-ResNet50-vd-FPN.yaml +0 -0
  1117. /paddlex/configs/{instance_segmentation → modules/instance_segmentation}/MaskRCNN-ResNet50.yaml +0 -0
  1118. /paddlex/configs/{instance_segmentation → modules/instance_segmentation}/PP-YOLOE_seg-S.yaml +0 -0
  1119. /paddlex/configs/{instance_segmentation → modules/instance_segmentation}/SOLOv2.yaml +0 -0
  1120. /paddlex/configs/{structure_analysis → modules/layout_detection}/PicoDet-L_layout_17cls.yaml +0 -0
  1121. /paddlex/configs/{structure_analysis → modules/layout_detection}/PicoDet-L_layout_3cls.yaml +0 -0
  1122. /paddlex/configs/{structure_analysis → modules/layout_detection}/PicoDet-S_layout_17cls.yaml +0 -0
  1123. /paddlex/configs/{structure_analysis → modules/layout_detection}/PicoDet-S_layout_3cls.yaml +0 -0
  1124. /paddlex/configs/{structure_analysis → modules/layout_detection}/PicoDet_layout_1x.yaml +0 -0
  1125. /paddlex/configs/{structure_analysis → modules/layout_detection}/PicoDet_layout_1x_table.yaml +0 -0
  1126. /paddlex/configs/{structure_analysis → modules/layout_detection}/RT-DETR-H_layout_17cls.yaml +0 -0
  1127. /paddlex/configs/{structure_analysis → modules/layout_detection}/RT-DETR-H_layout_3cls.yaml +0 -0
  1128. /paddlex/configs/{mainbody_detection → modules/mainbody_detection}/PP-ShiTuV2_det.yaml +0 -0
  1129. /paddlex/configs/{object_detection → modules/object_detection}/Cascade-FasterRCNN-ResNet50-FPN.yaml +0 -0
  1130. /paddlex/configs/{object_detection → modules/object_detection}/Cascade-FasterRCNN-ResNet50-vd-SSLDv2-FPN.yaml +0 -0
  1131. /paddlex/configs/{object_detection → modules/object_detection}/CenterNet-DLA-34.yaml +0 -0
  1132. /paddlex/configs/{object_detection → modules/object_detection}/CenterNet-ResNet50.yaml +0 -0
  1133. /paddlex/configs/{object_detection → modules/object_detection}/DETR-R50.yaml +0 -0
  1134. /paddlex/configs/{object_detection → modules/object_detection}/FCOS-ResNet50.yaml +0 -0
  1135. /paddlex/configs/{object_detection → modules/object_detection}/FasterRCNN-ResNeXt101-vd-FPN.yaml +0 -0
  1136. /paddlex/configs/{object_detection → modules/object_detection}/FasterRCNN-ResNet101-FPN.yaml +0 -0
  1137. /paddlex/configs/{object_detection → modules/object_detection}/FasterRCNN-ResNet101.yaml +0 -0
  1138. /paddlex/configs/{object_detection → modules/object_detection}/FasterRCNN-ResNet34-FPN.yaml +0 -0
  1139. /paddlex/configs/{object_detection → modules/object_detection}/FasterRCNN-ResNet50-FPN.yaml +0 -0
  1140. /paddlex/configs/{object_detection → modules/object_detection}/FasterRCNN-ResNet50-vd-FPN.yaml +0 -0
  1141. /paddlex/configs/{object_detection → modules/object_detection}/FasterRCNN-ResNet50-vd-SSLDv2-FPN.yaml +0 -0
  1142. /paddlex/configs/{object_detection → modules/object_detection}/FasterRCNN-ResNet50.yaml +0 -0
  1143. /paddlex/configs/{object_detection → modules/object_detection}/FasterRCNN-Swin-Tiny-FPN.yaml +0 -0
  1144. /paddlex/configs/{object_detection → modules/object_detection}/PP-YOLOE_plus-L.yaml +0 -0
  1145. /paddlex/configs/{object_detection → modules/object_detection}/PP-YOLOE_plus-M.yaml +0 -0
  1146. /paddlex/configs/{object_detection → modules/object_detection}/PP-YOLOE_plus-S.yaml +0 -0
  1147. /paddlex/configs/{object_detection → modules/object_detection}/PP-YOLOE_plus-X.yaml +0 -0
  1148. /paddlex/configs/{object_detection → modules/object_detection}/PicoDet-L.yaml +0 -0
  1149. /paddlex/configs/{object_detection → modules/object_detection}/PicoDet-M.yaml +0 -0
  1150. /paddlex/configs/{object_detection → modules/object_detection}/PicoDet-S.yaml +0 -0
  1151. /paddlex/configs/{object_detection → modules/object_detection}/PicoDet-XS.yaml +0 -0
  1152. /paddlex/configs/{object_detection → modules/object_detection}/RT-DETR-H.yaml +0 -0
  1153. /paddlex/configs/{object_detection → modules/object_detection}/RT-DETR-L.yaml +0 -0
  1154. /paddlex/configs/{object_detection → modules/object_detection}/RT-DETR-R18.yaml +0 -0
  1155. /paddlex/configs/{object_detection → modules/object_detection}/RT-DETR-R50.yaml +0 -0
  1156. /paddlex/configs/{object_detection → modules/object_detection}/RT-DETR-X.yaml +0 -0
  1157. /paddlex/configs/{object_detection → modules/object_detection}/YOLOX-L.yaml +0 -0
  1158. /paddlex/configs/{object_detection → modules/object_detection}/YOLOX-M.yaml +0 -0
  1159. /paddlex/configs/{object_detection → modules/object_detection}/YOLOX-N.yaml +0 -0
  1160. /paddlex/configs/{object_detection → modules/object_detection}/YOLOX-S.yaml +0 -0
  1161. /paddlex/configs/{object_detection → modules/object_detection}/YOLOX-T.yaml +0 -0
  1162. /paddlex/configs/{object_detection → modules/object_detection}/YOLOv3-DarkNet53.yaml +0 -0
  1163. /paddlex/configs/{object_detection → modules/object_detection}/YOLOv3-MobileNetV3.yaml +0 -0
  1164. /paddlex/configs/{object_detection → modules/object_detection}/YOLOv3-ResNet50_vd_DCN.yaml +0 -0
  1165. /paddlex/configs/{pedestrian_attribute → modules/pedestrian_attribute_recognition}/PP-LCNet_x1_0_pedestrian_attribute.yaml +0 -0
  1166. /paddlex/configs/{text_detection_seal → modules/seal_text_detection}/PP-OCRv4_mobile_seal_det.yaml +0 -0
  1167. /paddlex/configs/{text_detection_seal → modules/seal_text_detection}/PP-OCRv4_server_seal_det.yaml +0 -0
  1168. /paddlex/configs/{semantic_segmentation → modules/semantic_segmentation}/Deeplabv3-R101.yaml +0 -0
  1169. /paddlex/configs/{semantic_segmentation → modules/semantic_segmentation}/Deeplabv3-R50.yaml +0 -0
  1170. /paddlex/configs/{semantic_segmentation → modules/semantic_segmentation}/Deeplabv3_Plus-R101.yaml +0 -0
  1171. /paddlex/configs/{semantic_segmentation → modules/semantic_segmentation}/Deeplabv3_Plus-R50.yaml +0 -0
  1172. /paddlex/configs/{semantic_segmentation → modules/semantic_segmentation}/OCRNet_HRNet-W18.yaml +0 -0
  1173. /paddlex/configs/{semantic_segmentation → modules/semantic_segmentation}/OCRNet_HRNet-W48.yaml +0 -0
  1174. /paddlex/configs/{semantic_segmentation → modules/semantic_segmentation}/PP-LiteSeg-B.yaml +0 -0
  1175. /paddlex/configs/{semantic_segmentation → modules/semantic_segmentation}/PP-LiteSeg-T.yaml +0 -0
  1176. /paddlex/configs/{semantic_segmentation → modules/semantic_segmentation}/SegFormer-B0.yaml +0 -0
  1177. /paddlex/configs/{semantic_segmentation → modules/semantic_segmentation}/SegFormer-B1.yaml +0 -0
  1178. /paddlex/configs/{semantic_segmentation → modules/semantic_segmentation}/SegFormer-B2.yaml +0 -0
  1179. /paddlex/configs/{semantic_segmentation → modules/semantic_segmentation}/SegFormer-B3.yaml +0 -0
  1180. /paddlex/configs/{semantic_segmentation → modules/semantic_segmentation}/SegFormer-B4.yaml +0 -0
  1181. /paddlex/configs/{semantic_segmentation → modules/semantic_segmentation}/SegFormer-B5.yaml +0 -0
  1182. /paddlex/configs/{small_object_detection → modules/small_object_detection}/PP-YOLOE_plus_SOD-L.yaml +0 -0
  1183. /paddlex/configs/{small_object_detection → modules/small_object_detection}/PP-YOLOE_plus_SOD-S.yaml +0 -0
  1184. /paddlex/configs/{small_object_detection → modules/small_object_detection}/PP-YOLOE_plus_SOD-largesize-L.yaml +0 -0
  1185. /paddlex/configs/{table_recognition → modules/table_structure_recognition}/SLANet.yaml +0 -0
  1186. /paddlex/configs/{table_recognition → modules/table_structure_recognition}/SLANet_plus.yaml +0 -0
  1187. /paddlex/configs/{text_detection → modules/text_detection}/PP-OCRv4_mobile_det.yaml +0 -0
  1188. /paddlex/configs/{text_detection → modules/text_detection}/PP-OCRv4_server_det.yaml +0 -0
  1189. /paddlex/configs/{text_recognition → modules/text_recognition}/PP-OCRv4_mobile_rec.yaml +0 -0
  1190. /paddlex/configs/{text_recognition → modules/text_recognition}/PP-OCRv4_server_rec.yaml +0 -0
  1191. /paddlex/configs/{text_recognition → modules/text_recognition}/ch_RepSVTR_rec.yaml +0 -0
  1192. /paddlex/configs/{text_recognition → modules/text_recognition}/ch_SVTRv2_rec.yaml +0 -0
  1193. /paddlex/configs/{ts_anomaly_detection → modules/ts_anomaly_detection}/AutoEncoder_ad.yaml +0 -0
  1194. /paddlex/configs/{ts_anomaly_detection → modules/ts_anomaly_detection}/DLinear_ad.yaml +0 -0
  1195. /paddlex/configs/{ts_anomaly_detection → modules/ts_anomaly_detection}/Nonstationary_ad.yaml +0 -0
  1196. /paddlex/configs/{ts_anomaly_detection → modules/ts_anomaly_detection}/PatchTST_ad.yaml +0 -0
  1197. /paddlex/configs/{ts_anomaly_detection → modules/ts_anomaly_detection}/TimesNet_ad.yaml +0 -0
  1198. /paddlex/configs/{ts_classification → modules/ts_classification}/TimesNet_cls.yaml +0 -0
  1199. /paddlex/configs/{ts_forecast → modules/ts_forecast}/DLinear.yaml +0 -0
  1200. /paddlex/configs/{ts_forecast → modules/ts_forecast}/NLinear.yaml +0 -0
  1201. /paddlex/configs/{ts_forecast → modules/ts_forecast}/Nonstationary.yaml +0 -0
  1202. /paddlex/configs/{ts_forecast → modules/ts_forecast}/PatchTST.yaml +0 -0
  1203. /paddlex/configs/{ts_forecast → modules/ts_forecast}/RLinear.yaml +0 -0
  1204. /paddlex/configs/{ts_forecast → modules/ts_forecast}/TiDE.yaml +0 -0
  1205. /paddlex/configs/{ts_forecast → modules/ts_forecast}/TimesNet.yaml +0 -0
  1206. /paddlex/configs/{vehicle_attribute → modules/vehicle_attribute_recognition}/PP-LCNet_x1_0_vehicle_attribute.yaml +0 -0
  1207. /paddlex/configs/{vehicle_detection → modules/vehicle_detection}/PP-YOLOE-L_vehicle.yaml +0 -0
  1208. /paddlex/configs/{vehicle_detection → modules/vehicle_detection}/PP-YOLOE-S_vehicle.yaml +0 -0
  1209. {paddlex-3.0.0b2.dist-info → paddlex-3.0.0rc1.dist-info}/entry_points.txt +0 -0
  1210. {paddlex-3.0.0b2.dist-info → paddlex-3.0.0rc1.dist-info/licenses}/LICENSE +0 -0
  1211. {paddlex-3.0.0b2.dist-info → paddlex-3.0.0rc1.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,824 @@
1
+ # Copyright (c) 2024 PaddlePaddle Authors. All Rights Reserved.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ import math
16
+ from typing import Any, Dict, List, Optional, Tuple, Union
17
+
18
+ import numpy as np
19
+
20
+ from ....utils import logging
21
+ from ....utils.deps import (
22
+ function_requires_deps,
23
+ is_dep_available,
24
+ pipeline_requires_extra,
25
+ )
26
+ from ...common.batch_sampler import ImageBatchSampler
27
+ from ...common.reader import ReadImage
28
+ from ...models.object_detection.result import DetResult
29
+ from ...utils.hpi import HPIConfig
30
+ from ...utils.pp_option import PaddlePredictorOption
31
+ from ..base import BasePipeline
32
+ from ..components import CropByBoxes
33
+ from ..doc_preprocessor.result import DocPreprocessorResult
34
+ from ..ocr.result import OCRResult
35
+ from .result import SingleTableRecognitionResult, TableRecognitionResult
36
+ from .table_recognition_post_processing import (
37
+ get_table_recognition_res as get_table_recognition_res_e2e,
38
+ )
39
+ from .table_recognition_post_processing_v2 import get_table_recognition_res
40
+ from .utils import get_neighbor_boxes_idx
41
+
42
+ if is_dep_available("scikit-learn"):
43
+ from sklearn.cluster import KMeans
44
+
45
+
46
+ @pipeline_requires_extra("ocr")
47
+ class TableRecognitionPipelineV2(BasePipeline):
48
+ """Table Recognition Pipeline"""
49
+
50
+ entities = ["table_recognition_v2"]
51
+
52
+ def __init__(
53
+ self,
54
+ config: Dict,
55
+ device: str = None,
56
+ pp_option: PaddlePredictorOption = None,
57
+ use_hpip: bool = False,
58
+ hpi_config: Optional[Union[Dict[str, Any], HPIConfig]] = None,
59
+ ) -> None:
60
+ """Initializes the layout parsing pipeline.
61
+
62
+ Args:
63
+ config (Dict): Configuration dictionary containing various settings.
64
+ device (str, optional): Device to run the predictions on. Defaults to None.
65
+ pp_option (PaddlePredictorOption, optional): PaddlePredictor options. Defaults to None.
66
+ use_hpip (bool, optional): Whether to use the high-performance
67
+ inference plugin (HPIP). Defaults to False.
68
+ hpi_config (Optional[Union[Dict[str, Any], HPIConfig]], optional):
69
+ The high-performance inference configuration dictionary.
70
+ Defaults to None.
71
+ """
72
+
73
+ super().__init__(
74
+ device=device, pp_option=pp_option, use_hpip=use_hpip, hpi_config=hpi_config
75
+ )
76
+
77
+ self.use_doc_preprocessor = config.get("use_doc_preprocessor", True)
78
+ if self.use_doc_preprocessor:
79
+ doc_preprocessor_config = config.get("SubPipelines", {}).get(
80
+ "DocPreprocessor",
81
+ {
82
+ "pipeline_config_error": "config error for doc_preprocessor_pipeline!"
83
+ },
84
+ )
85
+ self.doc_preprocessor_pipeline = self.create_pipeline(
86
+ doc_preprocessor_config
87
+ )
88
+
89
+ self.use_layout_detection = config.get("use_layout_detection", True)
90
+ if self.use_layout_detection:
91
+ layout_det_config = config.get("SubModules", {}).get(
92
+ "LayoutDetection",
93
+ {"model_config_error": "config error for layout_det_model!"},
94
+ )
95
+ self.layout_det_model = self.create_model(layout_det_config)
96
+
97
+ table_cls_config = config.get("SubModules", {}).get(
98
+ "TableClassification",
99
+ {"model_config_error": "config error for table_classification_model!"},
100
+ )
101
+ self.table_cls_model = self.create_model(table_cls_config)
102
+
103
+ wired_table_rec_config = config.get("SubModules", {}).get(
104
+ "WiredTableStructureRecognition",
105
+ {"model_config_error": "config error for wired_table_structure_model!"},
106
+ )
107
+ self.wired_table_rec_model = self.create_model(wired_table_rec_config)
108
+
109
+ wireless_table_rec_config = config.get("SubModules", {}).get(
110
+ "WirelessTableStructureRecognition",
111
+ {"model_config_error": "config error for wireless_table_structure_model!"},
112
+ )
113
+ self.wireless_table_rec_model = self.create_model(wireless_table_rec_config)
114
+
115
+ wired_table_cells_det_config = config.get("SubModules", {}).get(
116
+ "WiredTableCellsDetection",
117
+ {
118
+ "model_config_error": "config error for wired_table_cells_detection_model!"
119
+ },
120
+ )
121
+ self.wired_table_cells_detection_model = self.create_model(
122
+ wired_table_cells_det_config
123
+ )
124
+
125
+ wireless_table_cells_det_config = config.get("SubModules", {}).get(
126
+ "WirelessTableCellsDetection",
127
+ {
128
+ "model_config_error": "config error for wireless_table_cells_detection_model!"
129
+ },
130
+ )
131
+ self.wireless_table_cells_detection_model = self.create_model(
132
+ wireless_table_cells_det_config
133
+ )
134
+
135
+ self.use_ocr_model = config.get("use_ocr_model", True)
136
+ if self.use_ocr_model:
137
+ general_ocr_config = config.get("SubPipelines", {}).get(
138
+ "GeneralOCR",
139
+ {"pipeline_config_error": "config error for general_ocr_pipeline!"},
140
+ )
141
+ self.general_ocr_pipeline = self.create_pipeline(general_ocr_config)
142
+ else:
143
+ self.general_ocr_config_bak = config.get("SubPipelines", {}).get(
144
+ "GeneralOCR", None
145
+ )
146
+
147
+ self._crop_by_boxes = CropByBoxes()
148
+
149
+ self.batch_sampler = ImageBatchSampler(batch_size=1)
150
+ self.img_reader = ReadImage(format="BGR")
151
+
152
+ def get_model_settings(
153
+ self,
154
+ use_doc_orientation_classify: Optional[bool],
155
+ use_doc_unwarping: Optional[bool],
156
+ use_layout_detection: Optional[bool],
157
+ use_ocr_model: Optional[bool],
158
+ ) -> dict:
159
+ """
160
+ Get the model settings based on the provided parameters or default values.
161
+
162
+ Args:
163
+ use_doc_orientation_classify (Optional[bool]): Whether to use document orientation classification.
164
+ use_doc_unwarping (Optional[bool]): Whether to use document unwarping.
165
+ use_layout_detection (Optional[bool]): Whether to use layout detection.
166
+ use_ocr_model (Optional[bool]): Whether to use OCR model.
167
+
168
+ Returns:
169
+ dict: A dictionary containing the model settings.
170
+ """
171
+ if use_doc_orientation_classify is None and use_doc_unwarping is None:
172
+ use_doc_preprocessor = self.use_doc_preprocessor
173
+ else:
174
+ if use_doc_orientation_classify is True or use_doc_unwarping is True:
175
+ use_doc_preprocessor = True
176
+ else:
177
+ use_doc_preprocessor = False
178
+
179
+ if use_layout_detection is None:
180
+ use_layout_detection = self.use_layout_detection
181
+
182
+ if use_ocr_model is None:
183
+ use_ocr_model = self.use_ocr_model
184
+
185
+ return dict(
186
+ use_doc_preprocessor=use_doc_preprocessor,
187
+ use_layout_detection=use_layout_detection,
188
+ use_ocr_model=use_ocr_model,
189
+ )
190
+
191
+ def check_model_settings_valid(
192
+ self,
193
+ model_settings: Dict,
194
+ overall_ocr_res: OCRResult,
195
+ layout_det_res: DetResult,
196
+ ) -> bool:
197
+ """
198
+ Check if the input parameters are valid based on the initialized models.
199
+
200
+ Args:
201
+ model_settings (Dict): A dictionary containing input parameters.
202
+ overall_ocr_res (OCRResult): Overall OCR result obtained after running the OCR pipeline.
203
+ The overall OCR result with convert_points_to_boxes information.
204
+ layout_det_res (DetResult): The layout detection result.
205
+ Returns:
206
+ bool: True if all required models are initialized according to input parameters, False otherwise.
207
+ """
208
+
209
+ if model_settings["use_doc_preprocessor"] and not self.use_doc_preprocessor:
210
+ logging.error(
211
+ "Set use_doc_preprocessor, but the models for doc preprocessor are not initialized."
212
+ )
213
+ return False
214
+
215
+ if model_settings["use_layout_detection"]:
216
+ if layout_det_res is not None:
217
+ logging.error(
218
+ "The layout detection model has already been initialized, please set use_layout_detection=False"
219
+ )
220
+ return False
221
+
222
+ if not self.use_layout_detection:
223
+ logging.error(
224
+ "Set use_layout_detection, but the models for layout detection are not initialized."
225
+ )
226
+ return False
227
+
228
+ if model_settings["use_ocr_model"]:
229
+ if overall_ocr_res is not None:
230
+ logging.error(
231
+ "The OCR models have already been initialized, please set use_ocr_model=False"
232
+ )
233
+ return False
234
+
235
+ if not self.use_ocr_model:
236
+ logging.error(
237
+ "Set use_ocr_model, but the models for OCR are not initialized."
238
+ )
239
+ return False
240
+ else:
241
+ if overall_ocr_res is None:
242
+ logging.error("Set use_ocr_model=False, but no OCR results were found.")
243
+ return False
244
+ return True
245
+
246
+ def predict_doc_preprocessor_res(
247
+ self, image_array: np.ndarray, input_params: dict
248
+ ) -> Tuple[DocPreprocessorResult, np.ndarray]:
249
+ """
250
+ Preprocess the document image based on input parameters.
251
+
252
+ Args:
253
+ image_array (np.ndarray): The input image array.
254
+ input_params (dict): Dictionary containing preprocessing parameters.
255
+
256
+ Returns:
257
+ tuple[DocPreprocessorResult, np.ndarray]: A tuple containing the preprocessing
258
+ result dictionary and the processed image array.
259
+ """
260
+ if input_params["use_doc_preprocessor"]:
261
+ use_doc_orientation_classify = input_params["use_doc_orientation_classify"]
262
+ use_doc_unwarping = input_params["use_doc_unwarping"]
263
+ doc_preprocessor_res = next(
264
+ self.doc_preprocessor_pipeline(
265
+ image_array,
266
+ use_doc_orientation_classify=use_doc_orientation_classify,
267
+ use_doc_unwarping=use_doc_unwarping,
268
+ )
269
+ )
270
+ doc_preprocessor_image = doc_preprocessor_res["output_img"]
271
+ else:
272
+ doc_preprocessor_res = {}
273
+ doc_preprocessor_image = image_array
274
+ return doc_preprocessor_res, doc_preprocessor_image
275
+
276
+ def extract_results(self, pred, task):
277
+ if task == "cls":
278
+ return pred["label_names"][np.argmax(pred["scores"])]
279
+ elif task == "det":
280
+ threshold = 0.0
281
+ result = []
282
+ cell_score = []
283
+ if "boxes" in pred and isinstance(pred["boxes"], list):
284
+ for box in pred["boxes"]:
285
+ if isinstance(box, dict) and "score" in box and "coordinate" in box:
286
+ score = box["score"]
287
+ coordinate = box["coordinate"]
288
+ if isinstance(score, float) and score > threshold:
289
+ result.append(coordinate)
290
+ cell_score.append(score)
291
+ return result, cell_score
292
+ elif task == "table_stru":
293
+ return pred["structure"]
294
+ else:
295
+ return None
296
+
297
+ def cells_det_results_nms(
298
+ self, cells_det_results, cells_det_scores, cells_det_threshold=0.3
299
+ ):
300
+ """
301
+ Apply Non-Maximum Suppression (NMS) on detection results to remove redundant overlapping bounding boxes.
302
+
303
+ Args:
304
+ cells_det_results (list): List of bounding boxes, each box is in format [x1, y1, x2, y2].
305
+ cells_det_scores (list): List of confidence scores corresponding to the bounding boxes.
306
+ cells_det_threshold (float): IoU threshold for suppression. Boxes with IoU greater than this threshold
307
+ will be suppressed. Default is 0.5.
308
+
309
+ Returns:
310
+ Tuple[list, list]: A tuple containing the list of bounding boxes and confidence scores after NMS,
311
+ while maintaining one-to-one correspondence.
312
+ """
313
+ # Convert lists to numpy arrays for efficient computation
314
+ boxes = np.array(cells_det_results)
315
+ scores = np.array(cells_det_scores)
316
+ # Initialize list for picked indices
317
+ picked_indices = []
318
+ # Get coordinates of bounding boxes
319
+ x1 = boxes[:, 0]
320
+ y1 = boxes[:, 1]
321
+ x2 = boxes[:, 2]
322
+ y2 = boxes[:, 3]
323
+ # Compute the area of the bounding boxes
324
+ areas = (x2 - x1) * (y2 - y1)
325
+ # Sort the bounding boxes by the confidence scores in descending order
326
+ order = scores.argsort()[::-1]
327
+ # Process the boxes
328
+ while order.size > 0:
329
+ # Index of the current highest score box
330
+ i = order[0]
331
+ picked_indices.append(i)
332
+ # Compute IoU between the highest score box and the rest
333
+ xx1 = np.maximum(x1[i], x1[order[1:]])
334
+ yy1 = np.maximum(y1[i], y1[order[1:]])
335
+ xx2 = np.minimum(x2[i], x2[order[1:]])
336
+ yy2 = np.minimum(y2[i], y2[order[1:]])
337
+ # Compute the width and height of the overlapping area
338
+ w = np.maximum(0.0, xx2 - xx1)
339
+ h = np.maximum(0.0, yy2 - yy1)
340
+ # Compute the ratio of overlap (IoU)
341
+ inter = w * h
342
+ ovr = inter / (areas[i] + areas[order[1:]] - inter)
343
+ # Indices of boxes with IoU less than threshold
344
+ inds = np.where(ovr <= cells_det_threshold)[0]
345
+ # Update order, only keep boxes with IoU less than threshold
346
+ order = order[
347
+ inds + 1
348
+ ] # inds shifted by 1 because order[0] is the current box
349
+ # Select the boxes and scores based on picked indices
350
+ final_boxes = boxes[picked_indices].tolist()
351
+ final_scores = scores[picked_indices].tolist()
352
+ return final_boxes, final_scores
353
+
354
+ def get_region_ocr_det_boxes(self, ocr_det_boxes, table_box):
355
+ """Adjust the coordinates of ocr_det_boxes that are fully inside table_box relative to table_box.
356
+
357
+ Args:
358
+ ocr_det_boxes (list of list): List of bounding boxes [x1, y1, x2, y2] in the original image.
359
+ table_box (list): Bounding box [x1, y1, x2, y2] of the target region in the original image.
360
+
361
+ Returns:
362
+ list of list: List of adjusted bounding boxes relative to table_box, for boxes fully inside table_box.
363
+ """
364
+ tol = 0
365
+ # Extract coordinates from table_box
366
+ x_min_t, y_min_t, x_max_t, y_max_t = table_box
367
+ adjusted_boxes = []
368
+ for box in ocr_det_boxes:
369
+ x_min_b, y_min_b, x_max_b, y_max_b = box
370
+ # Check if the box is fully inside table_box
371
+ if (
372
+ x_min_b + tol >= x_min_t
373
+ and y_min_b + tol >= y_min_t
374
+ and x_max_b - tol <= x_max_t
375
+ and y_max_b - tol <= y_max_t
376
+ ):
377
+ # Adjust the coordinates to be relative to table_box
378
+ adjusted_box = [
379
+ x_min_b - x_min_t, # Adjust x1
380
+ y_min_b - y_min_t, # Adjust y1
381
+ x_max_b - x_min_t, # Adjust x2
382
+ y_max_b - y_min_t, # Adjust y2
383
+ ]
384
+ adjusted_boxes.append(adjusted_box)
385
+ # Discard boxes not fully inside table_box
386
+ return adjusted_boxes
387
+
388
+ def cells_det_results_reprocessing(
389
+ self, cells_det_results, cells_det_scores, ocr_det_results, html_pred_boxes_nums
390
+ ):
391
+ """
392
+ Process and filter cells_det_results based on ocr_det_results and html_pred_boxes_nums.
393
+
394
+ Args:
395
+ cells_det_results (List[List[float]]): List of detected cell rectangles [[x1, y1, x2, y2], ...].
396
+ cells_det_scores (List[float]): List of confidence scores for each rectangle in cells_det_results.
397
+ ocr_det_results (List[List[float]]): List of OCR detected rectangles [[x1, y1, x2, y2], ...].
398
+ html_pred_boxes_nums (int): The desired number of rectangles in the final output.
399
+
400
+ Returns:
401
+ List[List[float]]: The processed list of rectangles.
402
+ """
403
+
404
+ # Function to compute IoU between two rectangles
405
+ def compute_iou(box1, box2):
406
+ """
407
+ Compute the Intersection over Union (IoU) between two rectangles.
408
+
409
+ Args:
410
+ box1 (array-like): [x1, y1, x2, y2] of the first rectangle.
411
+ box2 (array-like): [x1, y1, x2, y2] of the second rectangle.
412
+
413
+ Returns:
414
+ float: The IoU between the two rectangles.
415
+ """
416
+ # Determine the coordinates of the intersection rectangle
417
+ x_left = max(box1[0], box2[0])
418
+ y_top = max(box1[1], box2[1])
419
+ x_right = min(box1[2], box2[2])
420
+ y_bottom = min(box1[3], box2[3])
421
+ if x_right <= x_left or y_bottom <= y_top:
422
+ return 0.0
423
+ # Calculate the area of intersection rectangle
424
+ intersection_area = (x_right - x_left) * (y_bottom - y_top)
425
+ # Calculate the area of both rectangles
426
+ box1_area = (box1[2] - box1[0]) * (box1[3] - box1[1])
427
+ (box2[2] - box2[0]) * (box2[3] - box2[1])
428
+ # Calculate the IoU
429
+ iou = intersection_area / float(box1_area)
430
+ return iou
431
+
432
+ # Function to combine rectangles into N rectangles
433
+ @function_requires_deps("scikit-learn")
434
+ def combine_rectangles(rectangles, N):
435
+ """
436
+ Combine rectangles into N rectangles based on geometric proximity.
437
+
438
+ Args:
439
+ rectangles (list of list of int): A list of rectangles, each represented by [x1, y1, x2, y2].
440
+ N (int): The desired number of combined rectangles.
441
+
442
+ Returns:
443
+ list of list of int: A list of N combined rectangles.
444
+ """
445
+ # Number of input rectangles
446
+ num_rects = len(rectangles)
447
+ # If N is greater than or equal to the number of rectangles, return the original rectangles
448
+ if N >= num_rects:
449
+ return rectangles
450
+ # Compute the center points of the rectangles
451
+ centers = np.array(
452
+ [
453
+ [
454
+ (rect[0] + rect[2]) / 2, # Center x-coordinate
455
+ (rect[1] + rect[3]) / 2, # Center y-coordinate
456
+ ]
457
+ for rect in rectangles
458
+ ]
459
+ )
460
+ # Perform KMeans clustering on the center points to group them into N clusters
461
+ kmeans = KMeans(n_clusters=N, random_state=0, n_init="auto")
462
+ labels = kmeans.fit_predict(centers)
463
+ # Initialize a list to store the combined rectangles
464
+ combined_rectangles = []
465
+ # For each cluster, compute the minimal bounding rectangle that covers all rectangles in the cluster
466
+ for i in range(N):
467
+ # Get the indices of rectangles that belong to cluster i
468
+ indices = np.where(labels == i)[0]
469
+ if len(indices) == 0:
470
+ # If no rectangles in this cluster, skip it
471
+ continue
472
+ # Extract the rectangles in cluster i
473
+ cluster_rects = np.array([rectangles[idx] for idx in indices])
474
+ # Compute the minimal x1, y1 (top-left corner) and maximal x2, y2 (bottom-right corner)
475
+ x1_min = np.min(cluster_rects[:, 0])
476
+ y1_min = np.min(cluster_rects[:, 1])
477
+ x2_max = np.max(cluster_rects[:, 2])
478
+ y2_max = np.max(cluster_rects[:, 3])
479
+ # Append the combined rectangle to the list
480
+ combined_rectangles.append([x1_min, y1_min, x2_max, y2_max])
481
+ return combined_rectangles
482
+
483
+ # Ensure that the inputs are numpy arrays for efficient computation
484
+ cells_det_results = np.array(cells_det_results)
485
+ cells_det_scores = np.array(cells_det_scores)
486
+ ocr_det_results = np.array(ocr_det_results)
487
+ more_cells_flag = False
488
+ if len(cells_det_results) == html_pred_boxes_nums:
489
+ return cells_det_results
490
+ # Step 1: If cells_det_results has more rectangles than html_pred_boxes_nums
491
+ elif len(cells_det_results) > html_pred_boxes_nums:
492
+ more_cells_flag = True
493
+ # Select the indices of the top html_pred_boxes_nums scores
494
+ top_indices = np.argsort(-cells_det_scores)[:html_pred_boxes_nums]
495
+ # Adjust the corresponding rectangles
496
+ cells_det_results = cells_det_results[top_indices].tolist()
497
+ # Threshold for IoU
498
+ iou_threshold = 0.6
499
+ # List to store ocr_miss_boxes
500
+ ocr_miss_boxes = []
501
+ # For each rectangle in ocr_det_results
502
+ for ocr_rect in ocr_det_results:
503
+ merge_ocr_box_iou = []
504
+ # Flag to indicate if ocr_rect has IoU >= threshold with any cell_rect
505
+ has_large_iou = False
506
+ # For each rectangle in cells_det_results
507
+ for cell_rect in cells_det_results:
508
+ # Compute IoU
509
+ iou = compute_iou(ocr_rect, cell_rect)
510
+ if iou > 0:
511
+ merge_ocr_box_iou.append(iou)
512
+ if (iou >= iou_threshold) or (sum(merge_ocr_box_iou) >= iou_threshold):
513
+ has_large_iou = True
514
+ break
515
+ if not has_large_iou:
516
+ ocr_miss_boxes.append(ocr_rect)
517
+ # If no ocr_miss_boxes, return cells_det_results
518
+ if len(ocr_miss_boxes) == 0:
519
+ final_results = (
520
+ cells_det_results
521
+ if more_cells_flag == True
522
+ else cells_det_results.tolist()
523
+ )
524
+ else:
525
+ if more_cells_flag == True:
526
+ final_results = combine_rectangles(
527
+ cells_det_results + ocr_miss_boxes, html_pred_boxes_nums
528
+ )
529
+ else:
530
+ # Need to combine ocr_miss_boxes into N rectangles
531
+ N = html_pred_boxes_nums - len(cells_det_results)
532
+ # Combine ocr_miss_boxes into N rectangles
533
+ ocr_supp_boxes = combine_rectangles(ocr_miss_boxes, N)
534
+ # Combine cells_det_results and ocr_supp_boxes
535
+ final_results = np.concatenate(
536
+ (cells_det_results, ocr_supp_boxes), axis=0
537
+ ).tolist()
538
+ if len(final_results) <= 0.6 * html_pred_boxes_nums:
539
+ final_results = combine_rectangles(ocr_det_results, html_pred_boxes_nums)
540
+ return final_results
541
+
542
+ def split_ocr_bboxes_by_table_cells(self, ori_img, cells_bboxes):
543
+ """
544
+ Splits OCR bounding boxes by table cells and retrieves text.
545
+
546
+ Args:
547
+ ori_img (ndarray): The original image from which text regions will be extracted.
548
+ cells_bboxes (list or ndarray): Detected cell bounding boxes to extract text from.
549
+
550
+ Returns:
551
+ list: A list containing the recognized texts from each cell.
552
+ """
553
+
554
+ # Check if cells_bboxes is a list and convert it if not.
555
+ if not isinstance(cells_bboxes, list):
556
+ cells_bboxes = cells_bboxes.tolist()
557
+ texts_list = [] # Initialize a list to store the recognized texts.
558
+ # Process each bounding box provided in cells_bboxes.
559
+ for i in range(len(cells_bboxes)):
560
+ # Extract and round up the coordinates of the bounding box.
561
+ x1, y1, x2, y2 = [math.ceil(k) for k in cells_bboxes[i]]
562
+ # Perform OCR on the defined region of the image and get the recognized text.
563
+ rec_te = next(self.general_ocr_pipeline(ori_img[y1:y2, x1:x2, :]))
564
+ # Concatenate the texts and append them to the texts_list.
565
+ texts_list.append("".join(rec_te["rec_texts"]))
566
+ # Return the list of recognized texts from each cell.
567
+ return texts_list
568
+
569
+ def predict_single_table_recognition_res(
570
+ self,
571
+ image_array: np.ndarray,
572
+ overall_ocr_res: OCRResult,
573
+ table_box: list,
574
+ use_table_cells_ocr_results: bool = False,
575
+ use_e2e_wired_table_rec_model: bool = False,
576
+ use_e2e_wireless_table_rec_model: bool = False,
577
+ flag_find_nei_text: bool = True,
578
+ ) -> SingleTableRecognitionResult:
579
+ """
580
+ Predict table recognition results from an image array, layout detection results, and OCR results.
581
+
582
+ Args:
583
+ image_array (np.ndarray): The input image represented as a numpy array.
584
+ overall_ocr_res (OCRResult): Overall OCR result obtained after running the OCR pipeline.
585
+ The overall OCR results containing text recognition information.
586
+ table_box (list): The table box coordinates.
587
+ use_table_cells_ocr_results (bool): whether to use OCR results with cells.
588
+ use_e2e_wired_table_rec_model (bool): Whether to use end-to-end wired table recognition model.
589
+ use_e2e_wireless_table_rec_model (bool): Whether to use end-to-end wireless table recognition model.
590
+ flag_find_nei_text (bool): Whether to find neighboring text.
591
+ Returns:
592
+ SingleTableRecognitionResult: single table recognition result.
593
+ """
594
+
595
+ table_cls_pred = next(self.table_cls_model(image_array))
596
+ table_cls_result = self.extract_results(table_cls_pred, "cls")
597
+ use_e2e_model = False
598
+
599
+ if table_cls_result == "wired_table":
600
+ table_structure_pred = next(self.wired_table_rec_model(image_array))
601
+ if use_e2e_wired_table_rec_model == True:
602
+ use_e2e_model = True
603
+ else:
604
+ table_cells_pred = next(
605
+ self.wired_table_cells_detection_model(image_array, threshold=0.3)
606
+ ) # Setting the threshold to 0.3 can improve the accuracy of table cells detection.
607
+ # If you really want more or fewer table cells detection boxes, the threshold can be adjusted.
608
+ elif table_cls_result == "wireless_table":
609
+ table_structure_pred = next(self.wireless_table_rec_model(image_array))
610
+ if use_e2e_wireless_table_rec_model == True:
611
+ use_e2e_model = True
612
+ else:
613
+ table_cells_pred = next(
614
+ self.wireless_table_cells_detection_model(
615
+ image_array, threshold=0.3
616
+ )
617
+ ) # Setting the threshold to 0.3 can improve the accuracy of table cells detection.
618
+ # If you really want more or fewer table cells detection boxes, the threshold can be adjusted.
619
+
620
+ if use_e2e_model == False:
621
+ table_structure_result = self.extract_results(
622
+ table_structure_pred, "table_stru"
623
+ )
624
+ table_cells_result, table_cells_score = self.extract_results(
625
+ table_cells_pred, "det"
626
+ )
627
+ table_cells_result, table_cells_score = self.cells_det_results_nms(
628
+ table_cells_result, table_cells_score
629
+ )
630
+ ocr_det_boxes = self.get_region_ocr_det_boxes(
631
+ overall_ocr_res["rec_boxes"].tolist(), table_box
632
+ )
633
+ table_cells_result = self.cells_det_results_reprocessing(
634
+ table_cells_result,
635
+ table_cells_score,
636
+ ocr_det_boxes,
637
+ len(table_structure_pred["bbox"]),
638
+ )
639
+ if use_table_cells_ocr_results == True:
640
+ cells_texts_list = self.split_ocr_bboxes_by_table_cells(
641
+ image_array, table_cells_result
642
+ )
643
+ else:
644
+ cells_texts_list = []
645
+ single_table_recognition_res = get_table_recognition_res(
646
+ table_box,
647
+ table_structure_result,
648
+ table_cells_result,
649
+ overall_ocr_res,
650
+ cells_texts_list,
651
+ use_table_cells_ocr_results,
652
+ )
653
+ else:
654
+ if use_table_cells_ocr_results == True:
655
+ table_cells_result_e2e = list(
656
+ map(lambda arr: arr.tolist(), table_structure_pred["bbox"])
657
+ )
658
+ table_cells_result_e2e = [
659
+ [rect[0], rect[1], rect[4], rect[5]]
660
+ for rect in table_cells_result_e2e
661
+ ]
662
+ cells_texts_list = self.split_ocr_bboxes_by_table_cells(
663
+ image_array, table_cells_result_e2e
664
+ )
665
+ else:
666
+ cells_texts_list = []
667
+ single_table_recognition_res = get_table_recognition_res_e2e(
668
+ table_box,
669
+ table_structure_pred,
670
+ overall_ocr_res,
671
+ cells_texts_list,
672
+ use_table_cells_ocr_results,
673
+ )
674
+
675
+ neighbor_text = ""
676
+ if flag_find_nei_text:
677
+ match_idx_list = get_neighbor_boxes_idx(
678
+ overall_ocr_res["rec_boxes"], table_box
679
+ )
680
+ if len(match_idx_list) > 0:
681
+ for idx in match_idx_list:
682
+ neighbor_text += overall_ocr_res["rec_texts"][idx] + "; "
683
+ single_table_recognition_res["neighbor_texts"] = neighbor_text
684
+ return single_table_recognition_res
685
+
686
+ def predict(
687
+ self,
688
+ input: Union[str, List[str], np.ndarray, List[np.ndarray]],
689
+ use_doc_orientation_classify: Optional[bool] = None,
690
+ use_doc_unwarping: Optional[bool] = None,
691
+ use_layout_detection: Optional[bool] = None,
692
+ use_ocr_model: Optional[bool] = None,
693
+ overall_ocr_res: Optional[OCRResult] = None,
694
+ layout_det_res: Optional[DetResult] = None,
695
+ text_det_limit_side_len: Optional[int] = None,
696
+ text_det_limit_type: Optional[str] = None,
697
+ text_det_thresh: Optional[float] = None,
698
+ text_det_box_thresh: Optional[float] = None,
699
+ text_det_unclip_ratio: Optional[float] = None,
700
+ text_rec_score_thresh: Optional[float] = None,
701
+ use_table_cells_ocr_results: bool = False,
702
+ use_e2e_wired_table_rec_model: bool = False,
703
+ use_e2e_wireless_table_rec_model: bool = False,
704
+ **kwargs,
705
+ ) -> TableRecognitionResult:
706
+ """
707
+ This function predicts the layout parsing result for the given input.
708
+
709
+ Args:
710
+ input (Union[str, list[str], np.ndarray, list[np.ndarray]]): The input image(s) of pdf(s) to be processed.
711
+ use_layout_detection (bool): Whether to use layout detection.
712
+ use_doc_orientation_classify (bool): Whether to use document orientation classification.
713
+ use_doc_unwarping (bool): Whether to use document unwarping.
714
+ overall_ocr_res (OCRResult): The overall OCR result with convert_points_to_boxes information.
715
+ It will be used if it is not None and use_ocr_model is False.
716
+ layout_det_res (DetResult): The layout detection result.
717
+ It will be used if it is not None and use_layout_detection is False.
718
+ use_table_cells_ocr_results (bool): whether to use OCR results with cells.
719
+ use_e2e_wired_table_rec_model (bool): Whether to use end-to-end wired table recognition model.
720
+ use_e2e_wireless_table_rec_model (bool): Whether to use end-to-end wireless table recognition model.
721
+ flag_find_nei_text (bool): Whether to find neighboring text.
722
+ **kwargs: Additional keyword arguments.
723
+
724
+ Returns:
725
+ TableRecognitionResult: The predicted table recognition result.
726
+ """
727
+
728
+ model_settings = self.get_model_settings(
729
+ use_doc_orientation_classify,
730
+ use_doc_unwarping,
731
+ use_layout_detection,
732
+ use_ocr_model,
733
+ )
734
+
735
+ if not self.check_model_settings_valid(
736
+ model_settings, overall_ocr_res, layout_det_res
737
+ ):
738
+ yield {"error": "the input params for model settings are invalid!"}
739
+
740
+ for img_id, batch_data in enumerate(self.batch_sampler(input)):
741
+ image_array = self.img_reader(batch_data.instances)[0]
742
+
743
+ if model_settings["use_doc_preprocessor"]:
744
+ doc_preprocessor_res = next(
745
+ self.doc_preprocessor_pipeline(
746
+ image_array,
747
+ use_doc_orientation_classify=use_doc_orientation_classify,
748
+ use_doc_unwarping=use_doc_unwarping,
749
+ )
750
+ )
751
+ else:
752
+ doc_preprocessor_res = {"output_img": image_array}
753
+
754
+ doc_preprocessor_image = doc_preprocessor_res["output_img"]
755
+
756
+ if model_settings["use_ocr_model"]:
757
+ overall_ocr_res = next(
758
+ self.general_ocr_pipeline(
759
+ doc_preprocessor_image,
760
+ text_det_limit_side_len=text_det_limit_side_len,
761
+ text_det_limit_type=text_det_limit_type,
762
+ text_det_thresh=text_det_thresh,
763
+ text_det_box_thresh=text_det_box_thresh,
764
+ text_det_unclip_ratio=text_det_unclip_ratio,
765
+ text_rec_score_thresh=text_rec_score_thresh,
766
+ )
767
+ )
768
+ elif use_table_cells_ocr_results == True:
769
+ assert self.general_ocr_config_bak != None
770
+ self.general_ocr_pipeline = self.create_pipeline(
771
+ self.general_ocr_config_bak
772
+ )
773
+
774
+ table_res_list = []
775
+ table_region_id = 1
776
+ if not model_settings["use_layout_detection"] and layout_det_res is None:
777
+ layout_det_res = {}
778
+ img_height, img_width = doc_preprocessor_image.shape[:2]
779
+ table_box = [0, 0, img_width - 1, img_height - 1]
780
+ single_table_rec_res = self.predict_single_table_recognition_res(
781
+ doc_preprocessor_image,
782
+ overall_ocr_res,
783
+ table_box,
784
+ use_table_cells_ocr_results,
785
+ use_e2e_wired_table_rec_model,
786
+ use_e2e_wireless_table_rec_model,
787
+ flag_find_nei_text=False,
788
+ )
789
+ single_table_rec_res["table_region_id"] = table_region_id
790
+ table_res_list.append(single_table_rec_res)
791
+ table_region_id += 1
792
+ else:
793
+ if model_settings["use_layout_detection"]:
794
+ layout_det_res = next(self.layout_det_model(doc_preprocessor_image))
795
+
796
+ for box_info in layout_det_res["boxes"]:
797
+ if box_info["label"].lower() in ["table"]:
798
+ crop_img_info = self._crop_by_boxes(image_array, [box_info])
799
+ crop_img_info = crop_img_info[0]
800
+ table_box = crop_img_info["box"]
801
+ single_table_rec_res = (
802
+ self.predict_single_table_recognition_res(
803
+ crop_img_info["img"],
804
+ overall_ocr_res,
805
+ table_box,
806
+ use_table_cells_ocr_results,
807
+ use_e2e_wired_table_rec_model,
808
+ use_e2e_wireless_table_rec_model,
809
+ )
810
+ )
811
+ single_table_rec_res["table_region_id"] = table_region_id
812
+ table_res_list.append(single_table_rec_res)
813
+ table_region_id += 1
814
+
815
+ single_img_res = {
816
+ "input_path": batch_data.input_paths[0],
817
+ "page_index": batch_data.page_indexes[0],
818
+ "doc_preprocessor_res": doc_preprocessor_res,
819
+ "layout_det_res": layout_det_res,
820
+ "overall_ocr_res": overall_ocr_res,
821
+ "table_res_list": table_res_list,
822
+ "model_settings": model_settings,
823
+ }
824
+ yield TableRecognitionResult(single_img_res)