paddlex 2.1.0__py3-none-any.whl → 3.0.0__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 (1786) hide show
  1. paddlex/.version +1 -0
  2. paddlex/__init__.py +35 -19
  3. paddlex/__main__.py +39 -0
  4. paddlex/configs/modules/3d_bev_detection/BEVFusion.yaml +38 -0
  5. paddlex/configs/modules/chart_parsing/PP-Chart2Table.yaml +13 -0
  6. paddlex/configs/modules/doc_text_orientation/PP-LCNet_x1_0_doc_ori.yaml +41 -0
  7. paddlex/configs/modules/doc_vlm/PP-DocBee-2B.yaml +14 -0
  8. paddlex/configs/modules/doc_vlm/PP-DocBee-7B.yaml +14 -0
  9. paddlex/configs/modules/doc_vlm/PP-DocBee2-3B.yaml +14 -0
  10. paddlex/configs/modules/face_detection/BlazeFace-FPN-SSH.yaml +40 -0
  11. paddlex/configs/modules/face_detection/BlazeFace.yaml +40 -0
  12. paddlex/configs/modules/face_detection/PP-YOLOE_plus-S_face.yaml +40 -0
  13. paddlex/configs/modules/face_detection/PicoDet_LCNet_x2_5_face.yaml +40 -0
  14. paddlex/configs/modules/face_feature/MobileFaceNet.yaml +41 -0
  15. paddlex/configs/modules/face_feature/ResNet50_face.yaml +41 -0
  16. paddlex/configs/modules/formula_recognition/LaTeX_OCR_rec.yaml +40 -0
  17. paddlex/configs/modules/formula_recognition/PP-FormulaNet-L.yaml +40 -0
  18. paddlex/configs/modules/formula_recognition/PP-FormulaNet-S.yaml +40 -0
  19. paddlex/configs/modules/formula_recognition/PP-FormulaNet_plus-L.yaml +40 -0
  20. paddlex/configs/modules/formula_recognition/PP-FormulaNet_plus-M.yaml +40 -0
  21. paddlex/configs/modules/formula_recognition/PP-FormulaNet_plus-S.yaml +40 -0
  22. paddlex/configs/modules/formula_recognition/UniMERNet.yaml +40 -0
  23. paddlex/configs/modules/human_detection/PP-YOLOE-L_human.yaml +42 -0
  24. paddlex/configs/modules/human_detection/PP-YOLOE-S_human.yaml +42 -0
  25. paddlex/configs/modules/image_anomaly_detection/STFPM.yaml +41 -0
  26. paddlex/configs/modules/image_classification/CLIP_vit_base_patch16_224.yaml +41 -0
  27. paddlex/configs/modules/image_classification/CLIP_vit_large_patch14_224.yaml +41 -0
  28. paddlex/configs/modules/image_classification/ConvNeXt_base_224.yaml +41 -0
  29. paddlex/configs/modules/image_classification/ConvNeXt_base_384.yaml +41 -0
  30. paddlex/configs/modules/image_classification/ConvNeXt_large_224.yaml +41 -0
  31. paddlex/configs/modules/image_classification/ConvNeXt_large_384.yaml +41 -0
  32. paddlex/configs/modules/image_classification/ConvNeXt_small.yaml +41 -0
  33. paddlex/configs/modules/image_classification/ConvNeXt_tiny.yaml +41 -0
  34. paddlex/configs/modules/image_classification/FasterNet-L.yaml +40 -0
  35. paddlex/configs/modules/image_classification/FasterNet-M.yaml +40 -0
  36. paddlex/configs/modules/image_classification/FasterNet-S.yaml +40 -0
  37. paddlex/configs/modules/image_classification/FasterNet-T0.yaml +40 -0
  38. paddlex/configs/modules/image_classification/FasterNet-T1.yaml +40 -0
  39. paddlex/configs/modules/image_classification/FasterNet-T2.yaml +40 -0
  40. paddlex/configs/modules/image_classification/MobileNetV1_x0_25.yaml +41 -0
  41. paddlex/configs/modules/image_classification/MobileNetV1_x0_5.yaml +41 -0
  42. paddlex/configs/modules/image_classification/MobileNetV1_x0_75.yaml +41 -0
  43. paddlex/configs/modules/image_classification/MobileNetV1_x1_0.yaml +41 -0
  44. paddlex/configs/modules/image_classification/MobileNetV2_x0_25.yaml +41 -0
  45. paddlex/configs/modules/image_classification/MobileNetV2_x0_5.yaml +41 -0
  46. paddlex/configs/modules/image_classification/MobileNetV2_x1_0.yaml +41 -0
  47. paddlex/configs/modules/image_classification/MobileNetV2_x1_5.yaml +41 -0
  48. paddlex/configs/modules/image_classification/MobileNetV2_x2_0.yaml +41 -0
  49. paddlex/configs/modules/image_classification/MobileNetV3_large_x0_35.yaml +41 -0
  50. paddlex/configs/modules/image_classification/MobileNetV3_large_x0_5.yaml +41 -0
  51. paddlex/configs/modules/image_classification/MobileNetV3_large_x0_75.yaml +41 -0
  52. paddlex/configs/modules/image_classification/MobileNetV3_large_x1_0.yaml +41 -0
  53. paddlex/configs/modules/image_classification/MobileNetV3_large_x1_25.yaml +41 -0
  54. paddlex/configs/modules/image_classification/MobileNetV3_small_x0_35.yaml +41 -0
  55. paddlex/configs/modules/image_classification/MobileNetV3_small_x0_5.yaml +41 -0
  56. paddlex/configs/modules/image_classification/MobileNetV3_small_x0_75.yaml +41 -0
  57. paddlex/configs/modules/image_classification/MobileNetV3_small_x1_0.yaml +41 -0
  58. paddlex/configs/modules/image_classification/MobileNetV3_small_x1_25.yaml +41 -0
  59. paddlex/configs/modules/image_classification/MobileNetV4_conv_large.yaml +41 -0
  60. paddlex/configs/modules/image_classification/MobileNetV4_conv_medium.yaml +41 -0
  61. paddlex/configs/modules/image_classification/MobileNetV4_conv_small.yaml +41 -0
  62. paddlex/configs/modules/image_classification/MobileNetV4_hybrid_large.yaml +41 -0
  63. paddlex/configs/modules/image_classification/MobileNetV4_hybrid_medium.yaml +41 -0
  64. paddlex/configs/modules/image_classification/PP-HGNetV2-B0.yaml +41 -0
  65. paddlex/configs/modules/image_classification/PP-HGNetV2-B1.yaml +41 -0
  66. paddlex/configs/modules/image_classification/PP-HGNetV2-B2.yaml +41 -0
  67. paddlex/configs/modules/image_classification/PP-HGNetV2-B3.yaml +41 -0
  68. paddlex/configs/modules/image_classification/PP-HGNetV2-B4.yaml +41 -0
  69. paddlex/configs/modules/image_classification/PP-HGNetV2-B5.yaml +41 -0
  70. paddlex/configs/modules/image_classification/PP-HGNetV2-B6.yaml +41 -0
  71. paddlex/configs/modules/image_classification/PP-HGNet_base.yaml +41 -0
  72. paddlex/configs/modules/image_classification/PP-HGNet_small.yaml +41 -0
  73. paddlex/configs/modules/image_classification/PP-HGNet_tiny.yaml +41 -0
  74. paddlex/configs/modules/image_classification/PP-LCNetV2_base.yaml +41 -0
  75. paddlex/configs/modules/image_classification/PP-LCNetV2_large.yaml +41 -0
  76. paddlex/configs/modules/image_classification/PP-LCNetV2_small.yaml +41 -0
  77. paddlex/configs/modules/image_classification/PP-LCNet_x0_25.yaml +41 -0
  78. paddlex/configs/modules/image_classification/PP-LCNet_x0_35.yaml +41 -0
  79. paddlex/configs/modules/image_classification/PP-LCNet_x0_5.yaml +41 -0
  80. paddlex/configs/modules/image_classification/PP-LCNet_x0_75.yaml +41 -0
  81. paddlex/configs/modules/image_classification/PP-LCNet_x1_0.yaml +41 -0
  82. paddlex/configs/modules/image_classification/PP-LCNet_x1_5.yaml +41 -0
  83. paddlex/configs/modules/image_classification/PP-LCNet_x2_0.yaml +41 -0
  84. paddlex/configs/modules/image_classification/PP-LCNet_x2_5.yaml +41 -0
  85. paddlex/configs/modules/image_classification/ResNet101.yaml +41 -0
  86. paddlex/configs/modules/image_classification/ResNet101_vd.yaml +41 -0
  87. paddlex/configs/modules/image_classification/ResNet152.yaml +41 -0
  88. paddlex/configs/modules/image_classification/ResNet152_vd.yaml +41 -0
  89. paddlex/configs/modules/image_classification/ResNet18.yaml +41 -0
  90. paddlex/configs/modules/image_classification/ResNet18_vd.yaml +41 -0
  91. paddlex/configs/modules/image_classification/ResNet200_vd.yaml +41 -0
  92. paddlex/configs/modules/image_classification/ResNet34.yaml +41 -0
  93. paddlex/configs/modules/image_classification/ResNet34_vd.yaml +41 -0
  94. paddlex/configs/modules/image_classification/ResNet50.yaml +41 -0
  95. paddlex/configs/modules/image_classification/ResNet50_vd.yaml +41 -0
  96. paddlex/configs/modules/image_classification/StarNet-S1.yaml +41 -0
  97. paddlex/configs/modules/image_classification/StarNet-S2.yaml +41 -0
  98. paddlex/configs/modules/image_classification/StarNet-S3.yaml +41 -0
  99. paddlex/configs/modules/image_classification/StarNet-S4.yaml +41 -0
  100. paddlex/configs/modules/image_classification/SwinTransformer_base_patch4_window12_384.yaml +41 -0
  101. paddlex/configs/modules/image_classification/SwinTransformer_base_patch4_window7_224.yaml +41 -0
  102. paddlex/configs/modules/image_classification/SwinTransformer_large_patch4_window12_384.yaml +41 -0
  103. paddlex/configs/modules/image_classification/SwinTransformer_large_patch4_window7_224.yaml +41 -0
  104. paddlex/configs/modules/image_classification/SwinTransformer_small_patch4_window7_224.yaml +41 -0
  105. paddlex/configs/modules/image_classification/SwinTransformer_tiny_patch4_window7_224.yaml +41 -0
  106. paddlex/configs/modules/image_feature/PP-ShiTuV2_rec.yaml +42 -0
  107. paddlex/configs/modules/image_feature/PP-ShiTuV2_rec_CLIP_vit_base.yaml +42 -0
  108. paddlex/configs/modules/image_feature/PP-ShiTuV2_rec_CLIP_vit_large.yaml +41 -0
  109. paddlex/configs/modules/image_multilabel_classification/CLIP_vit_base_patch16_448_ML.yaml +41 -0
  110. paddlex/configs/modules/image_multilabel_classification/PP-HGNetV2-B0_ML.yaml +41 -0
  111. paddlex/configs/modules/image_multilabel_classification/PP-HGNetV2-B4_ML.yaml +41 -0
  112. paddlex/configs/modules/image_multilabel_classification/PP-HGNetV2-B6_ML.yaml +41 -0
  113. paddlex/configs/modules/image_multilabel_classification/PP-LCNet_x1_0_ML.yaml +41 -0
  114. paddlex/configs/modules/image_multilabel_classification/ResNet50_ML.yaml +41 -0
  115. paddlex/configs/modules/image_unwarping/UVDoc.yaml +12 -0
  116. paddlex/configs/modules/instance_segmentation/Cascade-MaskRCNN-ResNet50-FPN.yaml +40 -0
  117. paddlex/configs/modules/instance_segmentation/Cascade-MaskRCNN-ResNet50-vd-SSLDv2-FPN.yaml +40 -0
  118. paddlex/configs/modules/instance_segmentation/Mask-RT-DETR-H.yaml +40 -0
  119. paddlex/configs/modules/instance_segmentation/Mask-RT-DETR-L.yaml +40 -0
  120. paddlex/configs/modules/instance_segmentation/Mask-RT-DETR-M.yaml +40 -0
  121. paddlex/configs/modules/instance_segmentation/Mask-RT-DETR-S.yaml +40 -0
  122. paddlex/configs/modules/instance_segmentation/Mask-RT-DETR-X.yaml +40 -0
  123. paddlex/configs/modules/instance_segmentation/MaskRCNN-ResNeXt101-vd-FPN.yaml +39 -0
  124. paddlex/configs/modules/instance_segmentation/MaskRCNN-ResNet101-FPN.yaml +40 -0
  125. paddlex/configs/modules/instance_segmentation/MaskRCNN-ResNet101-vd-FPN.yaml +40 -0
  126. paddlex/configs/modules/instance_segmentation/MaskRCNN-ResNet50-FPN.yaml +40 -0
  127. paddlex/configs/modules/instance_segmentation/MaskRCNN-ResNet50-vd-FPN.yaml +40 -0
  128. paddlex/configs/modules/instance_segmentation/MaskRCNN-ResNet50.yaml +40 -0
  129. paddlex/configs/modules/instance_segmentation/PP-YOLOE_seg-S.yaml +40 -0
  130. paddlex/configs/modules/instance_segmentation/SOLOv2.yaml +40 -0
  131. paddlex/configs/modules/keypoint_detection/PP-TinyPose_128x96.yaml +40 -0
  132. paddlex/configs/modules/keypoint_detection/PP-TinyPose_256x192.yaml +40 -0
  133. paddlex/configs/modules/layout_detection/PP-DocBlockLayout.yaml +40 -0
  134. paddlex/configs/modules/layout_detection/PP-DocLayout-L.yaml +40 -0
  135. paddlex/configs/modules/layout_detection/PP-DocLayout-M.yaml +40 -0
  136. paddlex/configs/modules/layout_detection/PP-DocLayout-S.yaml +40 -0
  137. paddlex/configs/modules/layout_detection/PP-DocLayout_plus-L.yaml +40 -0
  138. paddlex/configs/modules/layout_detection/PicoDet-L_layout_17cls.yaml +40 -0
  139. paddlex/configs/modules/layout_detection/PicoDet-L_layout_3cls.yaml +40 -0
  140. paddlex/configs/modules/layout_detection/PicoDet-S_layout_17cls.yaml +40 -0
  141. paddlex/configs/modules/layout_detection/PicoDet-S_layout_3cls.yaml +40 -0
  142. paddlex/configs/modules/layout_detection/PicoDet_layout_1x.yaml +40 -0
  143. paddlex/configs/modules/layout_detection/PicoDet_layout_1x_table.yaml +40 -0
  144. paddlex/configs/modules/layout_detection/RT-DETR-H_layout_17cls.yaml +40 -0
  145. paddlex/configs/modules/layout_detection/RT-DETR-H_layout_3cls.yaml +40 -0
  146. paddlex/configs/modules/mainbody_detection/PP-ShiTuV2_det.yaml +41 -0
  147. paddlex/configs/modules/multilingual_speech_recognition/whisper_base.yaml +12 -0
  148. paddlex/configs/modules/multilingual_speech_recognition/whisper_large.yaml +12 -0
  149. paddlex/configs/modules/multilingual_speech_recognition/whisper_medium.yaml +12 -0
  150. paddlex/configs/modules/multilingual_speech_recognition/whisper_small.yaml +12 -0
  151. paddlex/configs/modules/multilingual_speech_recognition/whisper_tiny.yaml +12 -0
  152. paddlex/configs/modules/object_detection/Cascade-FasterRCNN-ResNet50-FPN.yaml +41 -0
  153. paddlex/configs/modules/object_detection/Cascade-FasterRCNN-ResNet50-vd-SSLDv2-FPN.yaml +42 -0
  154. paddlex/configs/modules/object_detection/CenterNet-DLA-34.yaml +41 -0
  155. paddlex/configs/modules/object_detection/CenterNet-ResNet50.yaml +41 -0
  156. paddlex/configs/modules/object_detection/Co-DINO-R50.yaml +40 -0
  157. paddlex/configs/modules/object_detection/Co-DINO-Swin-L.yaml +40 -0
  158. paddlex/configs/modules/object_detection/Co-Deformable-DETR-R50.yaml +40 -0
  159. paddlex/configs/modules/object_detection/Co-Deformable-DETR-Swin-T.yaml +40 -0
  160. paddlex/configs/modules/object_detection/DETR-R50.yaml +42 -0
  161. paddlex/configs/modules/object_detection/FCOS-ResNet50.yaml +41 -0
  162. paddlex/configs/modules/object_detection/FasterRCNN-ResNeXt101-vd-FPN.yaml +42 -0
  163. paddlex/configs/modules/object_detection/FasterRCNN-ResNet101-FPN.yaml +42 -0
  164. paddlex/configs/modules/object_detection/FasterRCNN-ResNet101.yaml +42 -0
  165. paddlex/configs/modules/object_detection/FasterRCNN-ResNet34-FPN.yaml +42 -0
  166. paddlex/configs/modules/object_detection/FasterRCNN-ResNet50-FPN.yaml +42 -0
  167. paddlex/configs/modules/object_detection/FasterRCNN-ResNet50-vd-FPN.yaml +42 -0
  168. paddlex/configs/modules/object_detection/FasterRCNN-ResNet50-vd-SSLDv2-FPN.yaml +42 -0
  169. paddlex/configs/modules/object_detection/FasterRCNN-ResNet50.yaml +42 -0
  170. paddlex/configs/modules/object_detection/FasterRCNN-Swin-Tiny-FPN.yaml +42 -0
  171. paddlex/configs/modules/object_detection/PP-YOLOE_plus-L.yaml +40 -0
  172. paddlex/configs/modules/object_detection/PP-YOLOE_plus-M.yaml +40 -0
  173. paddlex/configs/modules/object_detection/PP-YOLOE_plus-S.yaml +40 -0
  174. paddlex/configs/modules/object_detection/PP-YOLOE_plus-X.yaml +40 -0
  175. paddlex/configs/modules/object_detection/PicoDet-L.yaml +40 -0
  176. paddlex/configs/modules/object_detection/PicoDet-M.yaml +42 -0
  177. paddlex/configs/modules/object_detection/PicoDet-S.yaml +40 -0
  178. paddlex/configs/modules/object_detection/PicoDet-XS.yaml +42 -0
  179. paddlex/configs/modules/object_detection/RT-DETR-H.yaml +40 -0
  180. paddlex/configs/modules/object_detection/RT-DETR-L.yaml +40 -0
  181. paddlex/configs/modules/object_detection/RT-DETR-R18.yaml +40 -0
  182. paddlex/configs/modules/object_detection/RT-DETR-R50.yaml +40 -0
  183. paddlex/configs/modules/object_detection/RT-DETR-X.yaml +40 -0
  184. paddlex/configs/modules/object_detection/YOLOX-L.yaml +40 -0
  185. paddlex/configs/modules/object_detection/YOLOX-M.yaml +40 -0
  186. paddlex/configs/modules/object_detection/YOLOX-N.yaml +40 -0
  187. paddlex/configs/modules/object_detection/YOLOX-S.yaml +40 -0
  188. paddlex/configs/modules/object_detection/YOLOX-T.yaml +40 -0
  189. paddlex/configs/modules/object_detection/YOLOX-X.yaml +40 -0
  190. paddlex/configs/modules/object_detection/YOLOv3-DarkNet53.yaml +40 -0
  191. paddlex/configs/modules/object_detection/YOLOv3-MobileNetV3.yaml +40 -0
  192. paddlex/configs/modules/object_detection/YOLOv3-ResNet50_vd_DCN.yaml +40 -0
  193. paddlex/configs/modules/open_vocabulary_detection/GroundingDINO-T.yaml +13 -0
  194. paddlex/configs/modules/open_vocabulary_detection/YOLO-Worldv2-L.yaml +13 -0
  195. paddlex/configs/modules/open_vocabulary_segmentation/SAM-H_box.yaml +17 -0
  196. paddlex/configs/modules/open_vocabulary_segmentation/SAM-H_point.yaml +15 -0
  197. paddlex/configs/modules/pedestrian_attribute_recognition/PP-LCNet_x1_0_pedestrian_attribute.yaml +41 -0
  198. paddlex/configs/modules/rotated_object_detection/PP-YOLOE-R-L.yaml +40 -0
  199. paddlex/configs/modules/seal_text_detection/PP-OCRv4_mobile_seal_det.yaml +40 -0
  200. paddlex/configs/modules/seal_text_detection/PP-OCRv4_server_seal_det.yaml +40 -0
  201. paddlex/configs/modules/semantic_segmentation/Deeplabv3-R101.yaml +40 -0
  202. paddlex/configs/modules/semantic_segmentation/Deeplabv3-R50.yaml +40 -0
  203. paddlex/configs/modules/semantic_segmentation/Deeplabv3_Plus-R101.yaml +40 -0
  204. paddlex/configs/modules/semantic_segmentation/Deeplabv3_Plus-R50.yaml +40 -0
  205. paddlex/configs/modules/semantic_segmentation/MaskFormer_small.yaml +42 -0
  206. paddlex/configs/modules/semantic_segmentation/MaskFormer_tiny.yaml +42 -0
  207. paddlex/configs/modules/semantic_segmentation/OCRNet_HRNet-W18.yaml +40 -0
  208. paddlex/configs/modules/semantic_segmentation/OCRNet_HRNet-W48.yaml +40 -0
  209. paddlex/configs/modules/semantic_segmentation/PP-LiteSeg-B.yaml +41 -0
  210. paddlex/configs/modules/semantic_segmentation/PP-LiteSeg-T.yaml +40 -0
  211. paddlex/configs/modules/semantic_segmentation/SeaFormer_base.yaml +40 -0
  212. paddlex/configs/modules/semantic_segmentation/SeaFormer_large.yaml +40 -0
  213. paddlex/configs/modules/semantic_segmentation/SeaFormer_small.yaml +40 -0
  214. paddlex/configs/modules/semantic_segmentation/SeaFormer_tiny.yaml +40 -0
  215. paddlex/configs/modules/semantic_segmentation/SegFormer-B0.yaml +40 -0
  216. paddlex/configs/modules/semantic_segmentation/SegFormer-B1.yaml +40 -0
  217. paddlex/configs/modules/semantic_segmentation/SegFormer-B2.yaml +40 -0
  218. paddlex/configs/modules/semantic_segmentation/SegFormer-B3.yaml +40 -0
  219. paddlex/configs/modules/semantic_segmentation/SegFormer-B4.yaml +40 -0
  220. paddlex/configs/modules/semantic_segmentation/SegFormer-B5.yaml +40 -0
  221. paddlex/configs/modules/small_object_detection/PP-YOLOE_plus_SOD-L.yaml +42 -0
  222. paddlex/configs/modules/small_object_detection/PP-YOLOE_plus_SOD-S.yaml +42 -0
  223. paddlex/configs/modules/small_object_detection/PP-YOLOE_plus_SOD-largesize-L.yaml +42 -0
  224. paddlex/configs/modules/table_cells_detection/RT-DETR-L_wired_table_cell_det.yaml +40 -0
  225. paddlex/configs/modules/table_cells_detection/RT-DETR-L_wireless_table_cell_det.yaml +40 -0
  226. paddlex/configs/modules/table_classification/PP-LCNet_x1_0_table_cls.yaml +41 -0
  227. paddlex/configs/modules/table_structure_recognition/SLANeXt_wired.yaml +39 -0
  228. paddlex/configs/modules/table_structure_recognition/SLANeXt_wireless.yaml +39 -0
  229. paddlex/configs/modules/table_structure_recognition/SLANet.yaml +39 -0
  230. paddlex/configs/modules/table_structure_recognition/SLANet_plus.yaml +39 -0
  231. paddlex/configs/modules/text_detection/PP-OCRv3_mobile_det.yaml +40 -0
  232. paddlex/configs/modules/text_detection/PP-OCRv3_server_det.yaml +40 -0
  233. paddlex/configs/modules/text_detection/PP-OCRv4_mobile_det.yaml +40 -0
  234. paddlex/configs/modules/text_detection/PP-OCRv4_server_det.yaml +40 -0
  235. paddlex/configs/modules/text_detection/PP-OCRv5_mobile_det.yaml +40 -0
  236. paddlex/configs/modules/text_detection/PP-OCRv5_server_det.yaml +40 -0
  237. paddlex/configs/modules/text_recognition/PP-OCRv3_mobile_rec.yaml +39 -0
  238. paddlex/configs/modules/text_recognition/PP-OCRv4_mobile_rec.yaml +39 -0
  239. paddlex/configs/modules/text_recognition/PP-OCRv4_server_rec.yaml +39 -0
  240. paddlex/configs/modules/text_recognition/PP-OCRv4_server_rec_doc.yaml +39 -0
  241. paddlex/configs/modules/text_recognition/PP-OCRv5_mobile_rec.yaml +39 -0
  242. paddlex/configs/modules/text_recognition/PP-OCRv5_server_rec.yaml +39 -0
  243. paddlex/configs/modules/text_recognition/arabic_PP-OCRv3_mobile_rec.yaml +39 -0
  244. paddlex/configs/modules/text_recognition/ch_RepSVTR_rec.yaml +39 -0
  245. paddlex/configs/modules/text_recognition/ch_SVTRv2_rec.yaml +39 -0
  246. paddlex/configs/modules/text_recognition/chinese_cht_PP-OCRv3_mobile_rec.yaml +39 -0
  247. paddlex/configs/modules/text_recognition/cyrillic_PP-OCRv3_mobile_rec.yaml +39 -0
  248. paddlex/configs/modules/text_recognition/devanagari_PP-OCRv3_mobile_rec.yaml +39 -0
  249. paddlex/configs/modules/text_recognition/en_PP-OCRv3_mobile_rec.yaml +39 -0
  250. paddlex/configs/modules/text_recognition/en_PP-OCRv4_mobile_rec.yaml +39 -0
  251. paddlex/configs/modules/text_recognition/japan_PP-OCRv3_mobile_rec.yaml +39 -0
  252. paddlex/configs/modules/text_recognition/ka_PP-OCRv3_mobile_rec.yaml +39 -0
  253. paddlex/configs/modules/text_recognition/korean_PP-OCRv3_mobile_rec.yaml +39 -0
  254. paddlex/configs/modules/text_recognition/latin_PP-OCRv3_mobile_rec.yaml +39 -0
  255. paddlex/configs/modules/text_recognition/ta_PP-OCRv3_mobile_rec.yaml +39 -0
  256. paddlex/configs/modules/text_recognition/te_PP-OCRv3_mobile_rec.yaml +39 -0
  257. paddlex/configs/modules/textline_orientation/PP-LCNet_x0_25_textline_ori.yaml +41 -0
  258. paddlex/configs/modules/ts_anomaly_detection/AutoEncoder_ad.yaml +37 -0
  259. paddlex/configs/modules/ts_anomaly_detection/DLinear_ad.yaml +37 -0
  260. paddlex/configs/modules/ts_anomaly_detection/Nonstationary_ad.yaml +37 -0
  261. paddlex/configs/modules/ts_anomaly_detection/PatchTST_ad.yaml +37 -0
  262. paddlex/configs/modules/ts_anomaly_detection/TimesNet_ad.yaml +37 -0
  263. paddlex/configs/modules/ts_classification/TimesNet_cls.yaml +37 -0
  264. paddlex/configs/modules/ts_forecast/DLinear.yaml +38 -0
  265. paddlex/configs/modules/ts_forecast/NLinear.yaml +38 -0
  266. paddlex/configs/modules/ts_forecast/Nonstationary.yaml +38 -0
  267. paddlex/configs/modules/ts_forecast/PatchTST.yaml +38 -0
  268. paddlex/configs/modules/ts_forecast/RLinear.yaml +38 -0
  269. paddlex/configs/modules/ts_forecast/TiDE.yaml +38 -0
  270. paddlex/configs/modules/ts_forecast/TimesNet.yaml +38 -0
  271. paddlex/configs/modules/vehicle_attribute_recognition/PP-LCNet_x1_0_vehicle_attribute.yaml +41 -0
  272. paddlex/configs/modules/vehicle_detection/PP-YOLOE-L_vehicle.yaml +41 -0
  273. paddlex/configs/modules/vehicle_detection/PP-YOLOE-S_vehicle.yaml +42 -0
  274. paddlex/configs/modules/video_classification/PP-TSM-R50_8frames_uniform.yaml +42 -0
  275. paddlex/configs/modules/video_classification/PP-TSMv2-LCNetV2_16frames_uniform.yaml +42 -0
  276. paddlex/configs/modules/video_classification/PP-TSMv2-LCNetV2_8frames_uniform.yaml +42 -0
  277. paddlex/configs/modules/video_detection/YOWO.yaml +40 -0
  278. paddlex/configs/pipelines/3d_bev_detection.yaml +9 -0
  279. paddlex/configs/pipelines/OCR.yaml +45 -0
  280. paddlex/configs/pipelines/PP-ChatOCRv3-doc.yaml +151 -0
  281. paddlex/configs/pipelines/PP-ChatOCRv4-doc.yaml +237 -0
  282. paddlex/configs/pipelines/PP-ShiTuV2.yaml +18 -0
  283. paddlex/configs/pipelines/PP-StructureV3.yaml +226 -0
  284. paddlex/configs/pipelines/anomaly_detection.yaml +8 -0
  285. paddlex/configs/pipelines/doc_preprocessor.yaml +15 -0
  286. paddlex/configs/pipelines/doc_understanding.yaml +9 -0
  287. paddlex/configs/pipelines/face_recognition.yaml +18 -0
  288. paddlex/configs/pipelines/formula_recognition.yaml +39 -0
  289. paddlex/configs/pipelines/human_keypoint_detection.yaml +17 -0
  290. paddlex/configs/pipelines/image_classification.yaml +10 -0
  291. paddlex/configs/pipelines/image_multilabel_classification.yaml +9 -0
  292. paddlex/configs/pipelines/instance_segmentation.yaml +10 -0
  293. paddlex/configs/pipelines/layout_parsing.yaml +102 -0
  294. paddlex/configs/pipelines/multilingual_speech_recognition.yaml +9 -0
  295. paddlex/configs/pipelines/object_detection.yaml +10 -0
  296. paddlex/configs/pipelines/open_vocabulary_detection.yaml +12 -0
  297. paddlex/configs/pipelines/open_vocabulary_segmentation.yaml +13 -0
  298. paddlex/configs/pipelines/pedestrian_attribute_recognition.yaml +15 -0
  299. paddlex/configs/pipelines/rotated_object_detection.yaml +10 -0
  300. paddlex/configs/pipelines/seal_recognition.yaml +52 -0
  301. paddlex/configs/pipelines/semantic_segmentation.yaml +10 -0
  302. paddlex/configs/pipelines/small_object_detection.yaml +10 -0
  303. paddlex/configs/pipelines/table_recognition.yaml +57 -0
  304. paddlex/configs/pipelines/table_recognition_v2.yaml +82 -0
  305. paddlex/configs/pipelines/ts_anomaly_detection.yaml +8 -0
  306. paddlex/configs/pipelines/ts_classification.yaml +8 -0
  307. paddlex/configs/pipelines/ts_forecast.yaml +8 -0
  308. paddlex/configs/pipelines/vehicle_attribute_recognition.yaml +15 -0
  309. paddlex/configs/pipelines/video_classification.yaml +9 -0
  310. paddlex/configs/pipelines/video_detection.yaml +10 -0
  311. paddlex/constants.py +17 -0
  312. paddlex/engine.py +56 -0
  313. paddlex/hpip_links.html +31 -0
  314. paddlex/inference/__init__.py +19 -0
  315. paddlex/inference/common/__init__.py +13 -0
  316. paddlex/inference/common/batch_sampler/__init__.py +21 -0
  317. paddlex/inference/common/batch_sampler/audio_batch_sampler.py +83 -0
  318. paddlex/inference/common/batch_sampler/base_batch_sampler.py +94 -0
  319. paddlex/inference/common/batch_sampler/det_3d_batch_sampler.py +144 -0
  320. paddlex/inference/common/batch_sampler/doc_vlm_batch_sampler.py +87 -0
  321. paddlex/inference/common/batch_sampler/image_batch_sampler.py +121 -0
  322. paddlex/inference/common/batch_sampler/ts_batch_sampler.py +109 -0
  323. paddlex/inference/common/batch_sampler/video_batch_sampler.py +74 -0
  324. paddlex/inference/common/reader/__init__.py +19 -0
  325. paddlex/inference/common/reader/audio_reader.py +46 -0
  326. paddlex/inference/common/reader/det_3d_reader.py +241 -0
  327. paddlex/inference/common/reader/image_reader.py +73 -0
  328. paddlex/inference/common/reader/ts_reader.py +46 -0
  329. paddlex/inference/common/reader/video_reader.py +42 -0
  330. paddlex/inference/common/result/__init__.py +29 -0
  331. paddlex/inference/common/result/base_cv_result.py +41 -0
  332. paddlex/inference/common/result/base_result.py +72 -0
  333. paddlex/inference/common/result/base_ts_result.py +41 -0
  334. paddlex/inference/common/result/base_video_result.py +36 -0
  335. paddlex/inference/common/result/mixin.py +709 -0
  336. paddlex/inference/models/__init__.py +86 -0
  337. paddlex/inference/models/anomaly_detection/__init__.py +15 -0
  338. paddlex/inference/models/anomaly_detection/predictor.py +135 -0
  339. paddlex/inference/models/anomaly_detection/processors.py +53 -0
  340. paddlex/inference/models/anomaly_detection/result.py +71 -0
  341. paddlex/inference/models/base/__init__.py +15 -0
  342. paddlex/inference/models/base/predictor/__init__.py +15 -0
  343. paddlex/inference/models/base/predictor/base_predictor.py +414 -0
  344. paddlex/inference/models/common/__init__.py +26 -0
  345. paddlex/inference/models/common/static_infer.py +801 -0
  346. paddlex/inference/models/common/tokenizer/__init__.py +21 -0
  347. paddlex/inference/models/common/tokenizer/bert_tokenizer.py +655 -0
  348. paddlex/inference/models/common/tokenizer/clip_tokenizer.py +609 -0
  349. paddlex/inference/models/common/tokenizer/gpt_tokenizer.py +453 -0
  350. paddlex/inference/models/common/tokenizer/qwen2_5_tokenizer.py +112 -0
  351. paddlex/inference/models/common/tokenizer/qwen2_tokenizer.py +438 -0
  352. paddlex/inference/models/common/tokenizer/qwen_tokenizer.py +288 -0
  353. paddlex/inference/models/common/tokenizer/tokenizer_utils.py +2149 -0
  354. paddlex/inference/models/common/tokenizer/tokenizer_utils_base.py +3720 -0
  355. paddlex/inference/models/common/tokenizer/utils.py +66 -0
  356. paddlex/inference/models/common/tokenizer/vocab.py +647 -0
  357. paddlex/inference/models/common/ts/__init__.py +15 -0
  358. paddlex/inference/models/common/ts/funcs.py +540 -0
  359. paddlex/inference/models/common/ts/processors.py +322 -0
  360. paddlex/inference/models/common/vision/__init__.py +23 -0
  361. paddlex/inference/models/common/vision/funcs.py +98 -0
  362. paddlex/inference/models/common/vision/processors.py +285 -0
  363. paddlex/inference/models/common/vlm/__init__.py +13 -0
  364. paddlex/inference/models/common/vlm/activations.py +189 -0
  365. paddlex/inference/models/common/vlm/bert_padding.py +127 -0
  366. paddlex/inference/models/common/vlm/conversion_utils.py +99 -0
  367. paddlex/inference/models/common/vlm/distributed.py +229 -0
  368. paddlex/inference/models/common/vlm/flash_attn_utils.py +119 -0
  369. paddlex/inference/models/common/vlm/fusion_ops.py +205 -0
  370. paddlex/inference/models/common/vlm/generation/__init__.py +34 -0
  371. paddlex/inference/models/common/vlm/generation/configuration_utils.py +533 -0
  372. paddlex/inference/models/common/vlm/generation/logits_process.py +730 -0
  373. paddlex/inference/models/common/vlm/generation/stopping_criteria.py +106 -0
  374. paddlex/inference/models/common/vlm/generation/utils.py +2162 -0
  375. paddlex/inference/models/common/vlm/transformers/__init__.py +16 -0
  376. paddlex/inference/models/common/vlm/transformers/configuration_utils.py +1037 -0
  377. paddlex/inference/models/common/vlm/transformers/conversion_utils.py +408 -0
  378. paddlex/inference/models/common/vlm/transformers/model_outputs.py +1612 -0
  379. paddlex/inference/models/common/vlm/transformers/model_utils.py +2014 -0
  380. paddlex/inference/models/common/vlm/transformers/utils.py +178 -0
  381. paddlex/inference/models/common/vlm/utils.py +109 -0
  382. paddlex/inference/models/doc_vlm/__init__.py +15 -0
  383. paddlex/inference/models/doc_vlm/modeling/GOT_ocr_2_0.py +830 -0
  384. paddlex/inference/models/doc_vlm/modeling/__init__.py +17 -0
  385. paddlex/inference/models/doc_vlm/modeling/qwen2.py +1606 -0
  386. paddlex/inference/models/doc_vlm/modeling/qwen2_5_vl.py +3006 -0
  387. paddlex/inference/models/doc_vlm/modeling/qwen2_vl.py +2495 -0
  388. paddlex/inference/models/doc_vlm/predictor.py +253 -0
  389. paddlex/inference/models/doc_vlm/processors/GOT_ocr_2_0.py +97 -0
  390. paddlex/inference/models/doc_vlm/processors/__init__.py +17 -0
  391. paddlex/inference/models/doc_vlm/processors/common.py +561 -0
  392. paddlex/inference/models/doc_vlm/processors/qwen2_5_vl.py +548 -0
  393. paddlex/inference/models/doc_vlm/processors/qwen2_vl.py +543 -0
  394. paddlex/inference/models/doc_vlm/result.py +21 -0
  395. paddlex/inference/models/face_feature/__init__.py +15 -0
  396. paddlex/inference/models/face_feature/predictor.py +66 -0
  397. paddlex/inference/models/formula_recognition/__init__.py +15 -0
  398. paddlex/inference/models/formula_recognition/predictor.py +193 -0
  399. paddlex/inference/models/formula_recognition/processors.py +1015 -0
  400. paddlex/inference/models/formula_recognition/result.py +411 -0
  401. paddlex/inference/models/image_classification/__init__.py +15 -0
  402. paddlex/inference/models/image_classification/predictor.py +172 -0
  403. paddlex/inference/models/image_classification/processors.py +89 -0
  404. paddlex/inference/models/image_classification/result.py +93 -0
  405. paddlex/inference/models/image_feature/__init__.py +15 -0
  406. paddlex/inference/models/image_feature/predictor.py +146 -0
  407. paddlex/inference/models/image_feature/processors.py +31 -0
  408. paddlex/inference/models/image_feature/result.py +32 -0
  409. paddlex/inference/models/image_multilabel_classification/__init__.py +15 -0
  410. paddlex/inference/models/image_multilabel_classification/predictor.py +95 -0
  411. paddlex/inference/models/image_multilabel_classification/processors.py +89 -0
  412. paddlex/inference/models/image_multilabel_classification/result.py +96 -0
  413. paddlex/inference/models/image_unwarping/__init__.py +15 -0
  414. paddlex/inference/models/image_unwarping/predictor.py +97 -0
  415. paddlex/inference/models/image_unwarping/processors.py +92 -0
  416. paddlex/inference/models/image_unwarping/result.py +47 -0
  417. paddlex/inference/models/instance_segmentation/__init__.py +15 -0
  418. paddlex/inference/models/instance_segmentation/predictor.py +202 -0
  419. paddlex/inference/models/instance_segmentation/processors.py +102 -0
  420. paddlex/inference/models/instance_segmentation/result.py +162 -0
  421. paddlex/inference/models/keypoint_detection/__init__.py +15 -0
  422. paddlex/inference/models/keypoint_detection/predictor.py +190 -0
  423. paddlex/inference/models/keypoint_detection/processors.py +367 -0
  424. paddlex/inference/models/keypoint_detection/result.py +197 -0
  425. paddlex/inference/models/m_3d_bev_detection/__init__.py +15 -0
  426. paddlex/inference/models/m_3d_bev_detection/predictor.py +303 -0
  427. paddlex/inference/models/m_3d_bev_detection/processors.py +990 -0
  428. paddlex/inference/models/m_3d_bev_detection/result.py +68 -0
  429. paddlex/inference/models/m_3d_bev_detection/visualizer_3d.py +169 -0
  430. paddlex/inference/models/multilingual_speech_recognition/__init__.py +15 -0
  431. paddlex/inference/models/multilingual_speech_recognition/predictor.py +137 -0
  432. paddlex/inference/models/multilingual_speech_recognition/processors.py +1933 -0
  433. paddlex/inference/models/multilingual_speech_recognition/result.py +21 -0
  434. paddlex/inference/models/object_detection/__init__.py +15 -0
  435. paddlex/inference/models/object_detection/predictor.py +344 -0
  436. paddlex/inference/models/object_detection/processors.py +885 -0
  437. paddlex/inference/models/object_detection/result.py +114 -0
  438. paddlex/inference/models/object_detection/utils.py +70 -0
  439. paddlex/inference/models/open_vocabulary_detection/__init__.py +15 -0
  440. paddlex/inference/models/open_vocabulary_detection/predictor.py +172 -0
  441. paddlex/inference/models/open_vocabulary_detection/processors/__init__.py +16 -0
  442. paddlex/inference/models/open_vocabulary_detection/processors/common.py +114 -0
  443. paddlex/inference/models/open_vocabulary_detection/processors/groundingdino_processors.py +496 -0
  444. paddlex/inference/models/open_vocabulary_detection/processors/yoloworld_processors.py +209 -0
  445. paddlex/inference/models/open_vocabulary_segmentation/__init__.py +15 -0
  446. paddlex/inference/models/open_vocabulary_segmentation/predictor.py +113 -0
  447. paddlex/inference/models/open_vocabulary_segmentation/processors/__init__.py +15 -0
  448. paddlex/inference/models/open_vocabulary_segmentation/processors/sam_processer.py +249 -0
  449. paddlex/inference/models/open_vocabulary_segmentation/results/__init__.py +15 -0
  450. paddlex/inference/models/open_vocabulary_segmentation/results/sam_result.py +149 -0
  451. paddlex/inference/models/semantic_segmentation/__init__.py +15 -0
  452. paddlex/inference/models/semantic_segmentation/predictor.py +158 -0
  453. paddlex/inference/models/semantic_segmentation/processors.py +117 -0
  454. paddlex/inference/models/semantic_segmentation/result.py +73 -0
  455. paddlex/inference/models/table_structure_recognition/__init__.py +15 -0
  456. paddlex/inference/models/table_structure_recognition/predictor.py +161 -0
  457. paddlex/inference/models/table_structure_recognition/processors.py +229 -0
  458. paddlex/inference/models/table_structure_recognition/result.py +63 -0
  459. paddlex/inference/models/text_detection/__init__.py +15 -0
  460. paddlex/inference/models/text_detection/predictor.py +191 -0
  461. paddlex/inference/models/text_detection/processors.py +538 -0
  462. paddlex/inference/models/text_detection/result.py +46 -0
  463. paddlex/inference/models/text_recognition/__init__.py +15 -0
  464. paddlex/inference/models/text_recognition/predictor.py +98 -0
  465. paddlex/inference/models/text_recognition/processors.py +245 -0
  466. paddlex/inference/models/text_recognition/result.py +76 -0
  467. paddlex/inference/models/ts_anomaly_detection/__init__.py +15 -0
  468. paddlex/inference/models/ts_anomaly_detection/predictor.py +141 -0
  469. paddlex/inference/models/ts_anomaly_detection/processors.py +98 -0
  470. paddlex/inference/models/ts_anomaly_detection/result.py +83 -0
  471. paddlex/inference/models/ts_classification/__init__.py +15 -0
  472. paddlex/inference/models/ts_classification/predictor.py +122 -0
  473. paddlex/inference/models/ts_classification/processors.py +122 -0
  474. paddlex/inference/models/ts_classification/result.py +87 -0
  475. paddlex/inference/models/ts_forecasting/__init__.py +15 -0
  476. paddlex/inference/models/ts_forecasting/predictor.py +154 -0
  477. paddlex/inference/models/ts_forecasting/processors.py +158 -0
  478. paddlex/inference/models/ts_forecasting/result.py +96 -0
  479. paddlex/inference/models/video_classification/__init__.py +15 -0
  480. paddlex/inference/models/video_classification/predictor.py +141 -0
  481. paddlex/inference/models/video_classification/processors.py +409 -0
  482. paddlex/inference/models/video_classification/result.py +96 -0
  483. paddlex/inference/models/video_detection/__init__.py +15 -0
  484. paddlex/inference/models/video_detection/predictor.py +129 -0
  485. paddlex/inference/models/video_detection/processors.py +463 -0
  486. paddlex/inference/models/video_detection/result.py +109 -0
  487. paddlex/inference/pipelines/__init__.py +239 -0
  488. paddlex/inference/pipelines/_parallel.py +172 -0
  489. paddlex/inference/pipelines/anomaly_detection/__init__.py +15 -0
  490. paddlex/inference/pipelines/anomaly_detection/pipeline.py +82 -0
  491. paddlex/inference/pipelines/attribute_recognition/__init__.py +15 -0
  492. paddlex/inference/pipelines/attribute_recognition/pipeline.py +120 -0
  493. paddlex/inference/pipelines/attribute_recognition/result.py +102 -0
  494. paddlex/inference/pipelines/base.py +156 -0
  495. paddlex/inference/pipelines/components/__init__.py +29 -0
  496. paddlex/inference/pipelines/components/chat_server/__init__.py +16 -0
  497. paddlex/inference/pipelines/components/chat_server/base.py +39 -0
  498. paddlex/inference/pipelines/components/chat_server/openai_bot_chat.py +236 -0
  499. paddlex/inference/pipelines/components/common/__init__.py +19 -0
  500. paddlex/inference/pipelines/components/common/base_operator.py +37 -0
  501. paddlex/inference/pipelines/components/common/base_result.py +66 -0
  502. paddlex/inference/pipelines/components/common/convert_points_and_boxes.py +45 -0
  503. paddlex/inference/pipelines/components/common/crop_image_regions.py +556 -0
  504. paddlex/inference/pipelines/components/common/seal_det_warp.py +972 -0
  505. paddlex/inference/pipelines/components/common/sort_boxes.py +85 -0
  506. paddlex/inference/pipelines/components/common/warp_image.py +50 -0
  507. paddlex/inference/pipelines/components/faisser.py +357 -0
  508. paddlex/inference/pipelines/components/prompt_engineering/__init__.py +16 -0
  509. paddlex/inference/pipelines/components/prompt_engineering/base.py +35 -0
  510. paddlex/inference/pipelines/components/prompt_engineering/generate_ensemble_prompt.py +128 -0
  511. paddlex/inference/pipelines/components/prompt_engineering/generate_kie_prompt.py +148 -0
  512. paddlex/inference/pipelines/components/retriever/__init__.py +16 -0
  513. paddlex/inference/pipelines/components/retriever/base.py +228 -0
  514. paddlex/inference/pipelines/components/retriever/openai_bot_retriever.py +70 -0
  515. paddlex/inference/pipelines/components/retriever/qianfan_bot_retriever.py +166 -0
  516. paddlex/inference/pipelines/components/utils/__init__.py +13 -0
  517. paddlex/inference/pipelines/components/utils/mixin.py +206 -0
  518. paddlex/inference/pipelines/doc_preprocessor/__init__.py +15 -0
  519. paddlex/inference/pipelines/doc_preprocessor/pipeline.py +209 -0
  520. paddlex/inference/pipelines/doc_preprocessor/result.py +98 -0
  521. paddlex/inference/pipelines/doc_understanding/__init__.py +15 -0
  522. paddlex/inference/pipelines/doc_understanding/pipeline.py +71 -0
  523. paddlex/inference/pipelines/face_recognition/__init__.py +15 -0
  524. paddlex/inference/pipelines/face_recognition/pipeline.py +63 -0
  525. paddlex/inference/pipelines/face_recognition/result.py +44 -0
  526. paddlex/inference/pipelines/formula_recognition/__init__.py +15 -0
  527. paddlex/inference/pipelines/formula_recognition/pipeline.py +347 -0
  528. paddlex/inference/pipelines/formula_recognition/result.py +282 -0
  529. paddlex/inference/pipelines/image_classification/__init__.py +15 -0
  530. paddlex/inference/pipelines/image_classification/pipeline.py +90 -0
  531. paddlex/inference/pipelines/image_multilabel_classification/__init__.py +15 -0
  532. paddlex/inference/pipelines/image_multilabel_classification/pipeline.py +97 -0
  533. paddlex/inference/pipelines/instance_segmentation/__init__.py +15 -0
  534. paddlex/inference/pipelines/instance_segmentation/pipeline.py +91 -0
  535. paddlex/inference/pipelines/keypoint_detection/__init__.py +15 -0
  536. paddlex/inference/pipelines/keypoint_detection/pipeline.py +158 -0
  537. paddlex/inference/pipelines/layout_parsing/__init__.py +16 -0
  538. paddlex/inference/pipelines/layout_parsing/pipeline.py +568 -0
  539. paddlex/inference/pipelines/layout_parsing/pipeline_v2.py +1382 -0
  540. paddlex/inference/pipelines/layout_parsing/result.py +191 -0
  541. paddlex/inference/pipelines/layout_parsing/result_v2.py +745 -0
  542. paddlex/inference/pipelines/layout_parsing/setting.py +87 -0
  543. paddlex/inference/pipelines/layout_parsing/utils.py +951 -0
  544. paddlex/inference/pipelines/layout_parsing/xycut_enhanced/__init__.py +16 -0
  545. paddlex/inference/pipelines/layout_parsing/xycut_enhanced/utils.py +1143 -0
  546. paddlex/inference/pipelines/layout_parsing/xycut_enhanced/xycuts.py +562 -0
  547. paddlex/inference/pipelines/m_3d_bev_detection/__init__.py +15 -0
  548. paddlex/inference/pipelines/m_3d_bev_detection/pipeline.py +74 -0
  549. paddlex/inference/pipelines/multilingual_speech_recognition/__init__.py +15 -0
  550. paddlex/inference/pipelines/multilingual_speech_recognition/pipeline.py +78 -0
  551. paddlex/inference/pipelines/object_detection/__init__.py +15 -0
  552. paddlex/inference/pipelines/object_detection/pipeline.py +115 -0
  553. paddlex/inference/pipelines/ocr/__init__.py +15 -0
  554. paddlex/inference/pipelines/ocr/pipeline.py +463 -0
  555. paddlex/inference/pipelines/ocr/result.py +255 -0
  556. paddlex/inference/pipelines/open_vocabulary_detection/__init__.py +15 -0
  557. paddlex/inference/pipelines/open_vocabulary_detection/pipeline.py +86 -0
  558. paddlex/inference/pipelines/open_vocabulary_segmentation/__init__.py +15 -0
  559. paddlex/inference/pipelines/open_vocabulary_segmentation/pipeline.py +100 -0
  560. paddlex/inference/pipelines/pp_chatocr/__init__.py +16 -0
  561. paddlex/inference/pipelines/pp_chatocr/pipeline_base.py +111 -0
  562. paddlex/inference/pipelines/pp_chatocr/pipeline_v3.py +781 -0
  563. paddlex/inference/pipelines/pp_chatocr/pipeline_v4.py +992 -0
  564. paddlex/inference/pipelines/pp_shitu_v2/__init__.py +15 -0
  565. paddlex/inference/pipelines/pp_shitu_v2/pipeline.py +156 -0
  566. paddlex/inference/pipelines/pp_shitu_v2/result.py +126 -0
  567. paddlex/inference/pipelines/rotated_object_detection/__init__.py +15 -0
  568. paddlex/inference/pipelines/rotated_object_detection/pipeline.py +95 -0
  569. paddlex/inference/pipelines/seal_recognition/__init__.py +15 -0
  570. paddlex/inference/pipelines/seal_recognition/pipeline.py +335 -0
  571. paddlex/inference/pipelines/seal_recognition/result.py +89 -0
  572. paddlex/inference/pipelines/semantic_segmentation/__init__.py +15 -0
  573. paddlex/inference/pipelines/semantic_segmentation/pipeline.py +95 -0
  574. paddlex/inference/pipelines/small_object_detection/__init__.py +15 -0
  575. paddlex/inference/pipelines/small_object_detection/pipeline.py +95 -0
  576. paddlex/inference/pipelines/table_recognition/__init__.py +16 -0
  577. paddlex/inference/pipelines/table_recognition/pipeline.py +486 -0
  578. paddlex/inference/pipelines/table_recognition/pipeline_v2.py +1395 -0
  579. paddlex/inference/pipelines/table_recognition/result.py +218 -0
  580. paddlex/inference/pipelines/table_recognition/table_recognition_post_processing.py +366 -0
  581. paddlex/inference/pipelines/table_recognition/table_recognition_post_processing_v2.py +488 -0
  582. paddlex/inference/pipelines/table_recognition/utils.py +44 -0
  583. paddlex/inference/pipelines/ts_anomaly_detection/__init__.py +15 -0
  584. paddlex/inference/pipelines/ts_anomaly_detection/pipeline.py +72 -0
  585. paddlex/inference/pipelines/ts_classification/__init__.py +15 -0
  586. paddlex/inference/pipelines/ts_classification/pipeline.py +72 -0
  587. paddlex/inference/pipelines/ts_forecasting/__init__.py +15 -0
  588. paddlex/inference/pipelines/ts_forecasting/pipeline.py +72 -0
  589. paddlex/inference/pipelines/video_classification/__init__.py +15 -0
  590. paddlex/inference/pipelines/video_classification/pipeline.py +79 -0
  591. paddlex/inference/pipelines/video_detection/__init__.py +15 -0
  592. paddlex/inference/pipelines/video_detection/pipeline.py +86 -0
  593. paddlex/inference/serving/__init__.py +17 -0
  594. paddlex/inference/serving/basic_serving/__init__.py +18 -0
  595. paddlex/inference/serving/basic_serving/_app.py +221 -0
  596. paddlex/inference/serving/basic_serving/_pipeline_apps/__init__.py +44 -0
  597. paddlex/inference/serving/basic_serving/_pipeline_apps/_common/__init__.py +13 -0
  598. paddlex/inference/serving/basic_serving/_pipeline_apps/_common/common.py +104 -0
  599. paddlex/inference/serving/basic_serving/_pipeline_apps/_common/image_recognition.py +36 -0
  600. paddlex/inference/serving/basic_serving/_pipeline_apps/_common/ocr.py +95 -0
  601. paddlex/inference/serving/basic_serving/_pipeline_apps/anomaly_detection.py +67 -0
  602. paddlex/inference/serving/basic_serving/_pipeline_apps/doc_preprocessor.py +100 -0
  603. paddlex/inference/serving/basic_serving/_pipeline_apps/doc_understanding.py +153 -0
  604. paddlex/inference/serving/basic_serving/_pipeline_apps/face_recognition.py +226 -0
  605. paddlex/inference/serving/basic_serving/_pipeline_apps/formula_recognition.py +100 -0
  606. paddlex/inference/serving/basic_serving/_pipeline_apps/human_keypoint_detection.py +81 -0
  607. paddlex/inference/serving/basic_serving/_pipeline_apps/image_classification.py +69 -0
  608. paddlex/inference/serving/basic_serving/_pipeline_apps/image_multilabel_classification.py +73 -0
  609. paddlex/inference/serving/basic_serving/_pipeline_apps/instance_segmentation.py +87 -0
  610. paddlex/inference/serving/basic_serving/_pipeline_apps/layout_parsing.py +117 -0
  611. paddlex/inference/serving/basic_serving/_pipeline_apps/m_3d_bev_detection.py +79 -0
  612. paddlex/inference/serving/basic_serving/_pipeline_apps/multilingual_speech_recognition.py +92 -0
  613. paddlex/inference/serving/basic_serving/_pipeline_apps/object_detection.py +77 -0
  614. paddlex/inference/serving/basic_serving/_pipeline_apps/ocr.py +102 -0
  615. paddlex/inference/serving/basic_serving/_pipeline_apps/open_vocabulary_detection.py +81 -0
  616. paddlex/inference/serving/basic_serving/_pipeline_apps/open_vocabulary_segmentation.py +91 -0
  617. paddlex/inference/serving/basic_serving/_pipeline_apps/pedestrian_attribute_recognition.py +84 -0
  618. paddlex/inference/serving/basic_serving/_pipeline_apps/pp_chatocrv3_doc.py +193 -0
  619. paddlex/inference/serving/basic_serving/_pipeline_apps/pp_chatocrv4_doc.py +223 -0
  620. paddlex/inference/serving/basic_serving/_pipeline_apps/pp_shituv2.py +221 -0
  621. paddlex/inference/serving/basic_serving/_pipeline_apps/pp_structurev3.py +143 -0
  622. paddlex/inference/serving/basic_serving/_pipeline_apps/rotated_object_detection.py +81 -0
  623. paddlex/inference/serving/basic_serving/_pipeline_apps/seal_recognition.py +106 -0
  624. paddlex/inference/serving/basic_serving/_pipeline_apps/semantic_segmentation.py +67 -0
  625. paddlex/inference/serving/basic_serving/_pipeline_apps/small_object_detection.py +72 -0
  626. paddlex/inference/serving/basic_serving/_pipeline_apps/table_recognition.py +108 -0
  627. paddlex/inference/serving/basic_serving/_pipeline_apps/table_recognition_v2.py +113 -0
  628. paddlex/inference/serving/basic_serving/_pipeline_apps/ts_anomaly_detection.py +65 -0
  629. paddlex/inference/serving/basic_serving/_pipeline_apps/ts_classification.py +64 -0
  630. paddlex/inference/serving/basic_serving/_pipeline_apps/ts_forecast.py +65 -0
  631. paddlex/inference/serving/basic_serving/_pipeline_apps/vehicle_attribute_recognition.py +84 -0
  632. paddlex/inference/serving/basic_serving/_pipeline_apps/video_classification.py +76 -0
  633. paddlex/inference/serving/basic_serving/_pipeline_apps/video_detection.py +92 -0
  634. paddlex/inference/serving/basic_serving/_server.py +40 -0
  635. paddlex/inference/serving/infra/__init__.py +13 -0
  636. paddlex/inference/serving/infra/config.py +36 -0
  637. paddlex/inference/serving/infra/models.py +79 -0
  638. paddlex/inference/serving/infra/storage.py +180 -0
  639. paddlex/inference/serving/infra/utils.py +285 -0
  640. paddlex/inference/serving/schemas/__init__.py +13 -0
  641. paddlex/inference/serving/schemas/anomaly_detection.py +39 -0
  642. paddlex/inference/serving/schemas/doc_preprocessor.py +54 -0
  643. paddlex/inference/serving/schemas/doc_understanding.py +78 -0
  644. paddlex/inference/serving/schemas/face_recognition.py +124 -0
  645. paddlex/inference/serving/schemas/formula_recognition.py +56 -0
  646. paddlex/inference/serving/schemas/human_keypoint_detection.py +55 -0
  647. paddlex/inference/serving/schemas/image_classification.py +45 -0
  648. paddlex/inference/serving/schemas/image_multilabel_classification.py +47 -0
  649. paddlex/inference/serving/schemas/instance_segmentation.py +53 -0
  650. paddlex/inference/serving/schemas/layout_parsing.py +71 -0
  651. paddlex/inference/serving/schemas/m_3d_bev_detection.py +48 -0
  652. paddlex/inference/serving/schemas/multilingual_speech_recognition.py +57 -0
  653. paddlex/inference/serving/schemas/object_detection.py +52 -0
  654. paddlex/inference/serving/schemas/ocr.py +60 -0
  655. paddlex/inference/serving/schemas/open_vocabulary_detection.py +52 -0
  656. paddlex/inference/serving/schemas/open_vocabulary_segmentation.py +52 -0
  657. paddlex/inference/serving/schemas/pedestrian_attribute_recognition.py +61 -0
  658. paddlex/inference/serving/schemas/pp_chatocrv3_doc.py +133 -0
  659. paddlex/inference/serving/schemas/pp_chatocrv4_doc.py +150 -0
  660. paddlex/inference/serving/schemas/pp_shituv2.py +124 -0
  661. paddlex/inference/serving/schemas/pp_structurev3.py +88 -0
  662. paddlex/inference/serving/schemas/rotated_object_detection.py +52 -0
  663. paddlex/inference/serving/schemas/seal_recognition.py +62 -0
  664. paddlex/inference/serving/schemas/semantic_segmentation.py +45 -0
  665. paddlex/inference/serving/schemas/shared/__init__.py +13 -0
  666. paddlex/inference/serving/schemas/shared/classification.py +23 -0
  667. paddlex/inference/serving/schemas/shared/image_segmentation.py +28 -0
  668. paddlex/inference/serving/schemas/shared/object_detection.py +24 -0
  669. paddlex/inference/serving/schemas/shared/ocr.py +25 -0
  670. paddlex/inference/serving/schemas/small_object_detection.py +52 -0
  671. paddlex/inference/serving/schemas/table_recognition.py +64 -0
  672. paddlex/inference/serving/schemas/table_recognition_v2.py +69 -0
  673. paddlex/inference/serving/schemas/ts_anomaly_detection.py +37 -0
  674. paddlex/inference/serving/schemas/ts_classification.py +38 -0
  675. paddlex/inference/serving/schemas/ts_forecast.py +37 -0
  676. paddlex/inference/serving/schemas/vehicle_attribute_recognition.py +61 -0
  677. paddlex/inference/serving/schemas/video_classification.py +44 -0
  678. paddlex/inference/serving/schemas/video_detection.py +56 -0
  679. paddlex/inference/utils/__init__.py +13 -0
  680. paddlex/inference/utils/benchmark.py +379 -0
  681. paddlex/inference/utils/color_map.py +123 -0
  682. paddlex/inference/utils/get_pipeline_path.py +27 -0
  683. paddlex/inference/utils/hpi.py +254 -0
  684. paddlex/inference/utils/hpi_model_info_collection.json +2331 -0
  685. paddlex/inference/utils/io/__init__.py +36 -0
  686. paddlex/inference/utils/io/readers.py +504 -0
  687. paddlex/inference/utils/io/style.py +381 -0
  688. paddlex/inference/utils/io/tablepyxl.py +157 -0
  689. paddlex/inference/utils/io/writers.py +458 -0
  690. paddlex/inference/utils/model_paths.py +48 -0
  691. paddlex/inference/utils/new_ir_blocklist.py +27 -0
  692. paddlex/inference/utils/official_models.py +367 -0
  693. paddlex/inference/utils/pp_option.py +339 -0
  694. paddlex/inference/utils/trt_blocklist.py +43 -0
  695. paddlex/inference/utils/trt_config.py +420 -0
  696. paddlex/model.py +131 -0
  697. paddlex/modules/__init__.py +115 -0
  698. paddlex/modules/anomaly_detection/__init__.py +18 -0
  699. paddlex/modules/anomaly_detection/dataset_checker/__init__.py +94 -0
  700. paddlex/modules/anomaly_detection/dataset_checker/dataset_src/__init__.py +19 -0
  701. paddlex/modules/anomaly_detection/dataset_checker/dataset_src/analyse_dataset.py +82 -0
  702. paddlex/modules/anomaly_detection/dataset_checker/dataset_src/check_dataset.py +91 -0
  703. paddlex/modules/anomaly_detection/dataset_checker/dataset_src/convert_dataset.py +233 -0
  704. paddlex/modules/anomaly_detection/dataset_checker/dataset_src/split_dataset.py +87 -0
  705. paddlex/modules/anomaly_detection/dataset_checker/dataset_src/utils/__init__.py +13 -0
  706. paddlex/modules/anomaly_detection/dataset_checker/dataset_src/utils/visualizer.py +76 -0
  707. paddlex/modules/anomaly_detection/evaluator.py +58 -0
  708. paddlex/modules/anomaly_detection/exportor.py +22 -0
  709. paddlex/modules/anomaly_detection/model_list.py +16 -0
  710. paddlex/modules/anomaly_detection/trainer.py +70 -0
  711. paddlex/modules/base/__init__.py +18 -0
  712. paddlex/modules/base/build_model.py +33 -0
  713. paddlex/modules/base/dataset_checker/__init__.py +16 -0
  714. paddlex/modules/base/dataset_checker/dataset_checker.py +169 -0
  715. paddlex/modules/base/dataset_checker/utils.py +108 -0
  716. paddlex/modules/base/evaluator.py +170 -0
  717. paddlex/modules/base/exportor.py +145 -0
  718. paddlex/modules/base/trainer.py +144 -0
  719. paddlex/modules/base/utils/__init__.py +13 -0
  720. paddlex/modules/base/utils/cinn_setting.py +89 -0
  721. paddlex/modules/base/utils/coco_eval.py +94 -0
  722. paddlex/modules/base/utils/topk_eval.py +118 -0
  723. paddlex/modules/doc_vlm/__init__.py +18 -0
  724. paddlex/modules/doc_vlm/dataset_checker.py +29 -0
  725. paddlex/modules/doc_vlm/evaluator.py +29 -0
  726. paddlex/modules/doc_vlm/exportor.py +29 -0
  727. paddlex/modules/doc_vlm/model_list.py +16 -0
  728. paddlex/modules/doc_vlm/trainer.py +41 -0
  729. paddlex/modules/face_recognition/__init__.py +18 -0
  730. paddlex/modules/face_recognition/dataset_checker/__init__.py +71 -0
  731. paddlex/modules/face_recognition/dataset_checker/dataset_src/__init__.py +16 -0
  732. paddlex/modules/face_recognition/dataset_checker/dataset_src/check_dataset.py +172 -0
  733. paddlex/modules/face_recognition/dataset_checker/dataset_src/utils/__init__.py +13 -0
  734. paddlex/modules/face_recognition/dataset_checker/dataset_src/utils/visualizer.py +153 -0
  735. paddlex/modules/face_recognition/evaluator.py +52 -0
  736. paddlex/modules/face_recognition/exportor.py +22 -0
  737. paddlex/modules/face_recognition/model_list.py +15 -0
  738. paddlex/modules/face_recognition/trainer.py +75 -0
  739. paddlex/modules/formula_recognition/__init__.py +18 -0
  740. paddlex/modules/formula_recognition/dataset_checker/__init__.py +113 -0
  741. paddlex/modules/formula_recognition/dataset_checker/dataset_src/__init__.py +19 -0
  742. paddlex/modules/formula_recognition/dataset_checker/dataset_src/analyse_dataset.py +158 -0
  743. paddlex/modules/formula_recognition/dataset_checker/dataset_src/check_dataset.py +76 -0
  744. paddlex/modules/formula_recognition/dataset_checker/dataset_src/convert_dataset.py +95 -0
  745. paddlex/modules/formula_recognition/dataset_checker/dataset_src/split_dataset.py +80 -0
  746. paddlex/modules/formula_recognition/evaluator.py +80 -0
  747. paddlex/modules/formula_recognition/exportor.py +22 -0
  748. paddlex/modules/formula_recognition/model_list.py +23 -0
  749. paddlex/modules/formula_recognition/trainer.py +123 -0
  750. paddlex/modules/general_recognition/__init__.py +18 -0
  751. paddlex/modules/general_recognition/dataset_checker/__init__.py +107 -0
  752. paddlex/modules/general_recognition/dataset_checker/dataset_src/__init__.py +19 -0
  753. paddlex/modules/general_recognition/dataset_checker/dataset_src/analyse_dataset.py +96 -0
  754. paddlex/modules/general_recognition/dataset_checker/dataset_src/check_dataset.py +99 -0
  755. paddlex/modules/general_recognition/dataset_checker/dataset_src/convert_dataset.py +100 -0
  756. paddlex/modules/general_recognition/dataset_checker/dataset_src/split_dataset.py +82 -0
  757. paddlex/modules/general_recognition/dataset_checker/dataset_src/utils/__init__.py +13 -0
  758. paddlex/modules/general_recognition/dataset_checker/dataset_src/utils/visualizer.py +147 -0
  759. paddlex/modules/general_recognition/evaluator.py +31 -0
  760. paddlex/modules/general_recognition/exportor.py +22 -0
  761. paddlex/modules/general_recognition/model_list.py +19 -0
  762. paddlex/modules/general_recognition/trainer.py +52 -0
  763. paddlex/modules/image_classification/__init__.py +18 -0
  764. paddlex/modules/image_classification/dataset_checker/__init__.py +104 -0
  765. paddlex/modules/image_classification/dataset_checker/dataset_src/__init__.py +19 -0
  766. paddlex/modules/image_classification/dataset_checker/dataset_src/analyse_dataset.py +92 -0
  767. paddlex/modules/image_classification/dataset_checker/dataset_src/check_dataset.py +132 -0
  768. paddlex/modules/image_classification/dataset_checker/dataset_src/convert_dataset.py +51 -0
  769. paddlex/modules/image_classification/dataset_checker/dataset_src/split_dataset.py +81 -0
  770. paddlex/modules/image_classification/dataset_checker/dataset_src/utils/__init__.py +13 -0
  771. paddlex/modules/image_classification/dataset_checker/dataset_src/utils/visualizer.py +153 -0
  772. paddlex/modules/image_classification/evaluator.py +43 -0
  773. paddlex/modules/image_classification/exportor.py +22 -0
  774. paddlex/modules/image_classification/model_list.py +99 -0
  775. paddlex/modules/image_classification/trainer.py +82 -0
  776. paddlex/modules/image_unwarping/__init__.py +13 -0
  777. paddlex/modules/image_unwarping/model_list.py +17 -0
  778. paddlex/modules/instance_segmentation/__init__.py +18 -0
  779. paddlex/modules/instance_segmentation/dataset_checker/__init__.py +107 -0
  780. paddlex/modules/instance_segmentation/dataset_checker/dataset_src/__init__.py +19 -0
  781. paddlex/modules/instance_segmentation/dataset_checker/dataset_src/analyse_dataset.py +82 -0
  782. paddlex/modules/instance_segmentation/dataset_checker/dataset_src/check_dataset.py +95 -0
  783. paddlex/modules/instance_segmentation/dataset_checker/dataset_src/convert_dataset.py +241 -0
  784. paddlex/modules/instance_segmentation/dataset_checker/dataset_src/split_dataset.py +122 -0
  785. paddlex/modules/instance_segmentation/dataset_checker/dataset_src/utils/__init__.py +13 -0
  786. paddlex/modules/instance_segmentation/dataset_checker/dataset_src/utils/visualizer.py +223 -0
  787. paddlex/modules/instance_segmentation/evaluator.py +32 -0
  788. paddlex/modules/instance_segmentation/exportor.py +22 -0
  789. paddlex/modules/instance_segmentation/model_list.py +33 -0
  790. paddlex/modules/instance_segmentation/trainer.py +31 -0
  791. paddlex/modules/keypoint_detection/__init__.py +18 -0
  792. paddlex/modules/keypoint_detection/dataset_checker/__init__.py +56 -0
  793. paddlex/modules/keypoint_detection/dataset_checker/dataset_src/__init__.py +15 -0
  794. paddlex/modules/keypoint_detection/dataset_checker/dataset_src/check_dataset.py +91 -0
  795. paddlex/modules/keypoint_detection/dataset_checker/dataset_src/utils/__init__.py +13 -0
  796. paddlex/modules/keypoint_detection/dataset_checker/dataset_src/utils/visualizer.py +124 -0
  797. paddlex/modules/keypoint_detection/evaluator.py +41 -0
  798. paddlex/modules/keypoint_detection/exportor.py +22 -0
  799. paddlex/modules/keypoint_detection/model_list.py +16 -0
  800. paddlex/modules/keypoint_detection/trainer.py +39 -0
  801. paddlex/modules/m_3d_bev_detection/__init__.py +18 -0
  802. paddlex/modules/m_3d_bev_detection/dataset_checker/__init__.py +95 -0
  803. paddlex/modules/m_3d_bev_detection/dataset_checker/dataset_src/__init__.py +17 -0
  804. paddlex/modules/m_3d_bev_detection/dataset_checker/dataset_src/analyse_dataset.py +106 -0
  805. paddlex/modules/m_3d_bev_detection/dataset_checker/dataset_src/check_dataset.py +101 -0
  806. paddlex/modules/m_3d_bev_detection/evaluator.py +46 -0
  807. paddlex/modules/m_3d_bev_detection/exportor.py +22 -0
  808. paddlex/modules/m_3d_bev_detection/model_list.py +18 -0
  809. paddlex/modules/m_3d_bev_detection/trainer.py +68 -0
  810. paddlex/modules/multilabel_classification/__init__.py +18 -0
  811. paddlex/modules/multilabel_classification/dataset_checker/__init__.py +106 -0
  812. paddlex/modules/multilabel_classification/dataset_checker/dataset_src/__init__.py +19 -0
  813. paddlex/modules/multilabel_classification/dataset_checker/dataset_src/analyse_dataset.py +94 -0
  814. paddlex/modules/multilabel_classification/dataset_checker/dataset_src/check_dataset.py +132 -0
  815. paddlex/modules/multilabel_classification/dataset_checker/dataset_src/convert_dataset.py +120 -0
  816. paddlex/modules/multilabel_classification/dataset_checker/dataset_src/split_dataset.py +81 -0
  817. paddlex/modules/multilabel_classification/dataset_checker/dataset_src/utils/__init__.py +13 -0
  818. paddlex/modules/multilabel_classification/dataset_checker/dataset_src/utils/visualizer.py +149 -0
  819. paddlex/modules/multilabel_classification/evaluator.py +43 -0
  820. paddlex/modules/multilabel_classification/exportor.py +22 -0
  821. paddlex/modules/multilabel_classification/model_list.py +24 -0
  822. paddlex/modules/multilabel_classification/trainer.py +85 -0
  823. paddlex/modules/multilingual_speech_recognition/__init__.py +18 -0
  824. paddlex/modules/multilingual_speech_recognition/dataset_checker.py +27 -0
  825. paddlex/modules/multilingual_speech_recognition/evaluator.py +27 -0
  826. paddlex/modules/multilingual_speech_recognition/exportor.py +27 -0
  827. paddlex/modules/multilingual_speech_recognition/model_list.py +22 -0
  828. paddlex/modules/multilingual_speech_recognition/trainer.py +42 -0
  829. paddlex/modules/object_detection/__init__.py +18 -0
  830. paddlex/modules/object_detection/dataset_checker/__init__.py +106 -0
  831. paddlex/modules/object_detection/dataset_checker/dataset_src/__init__.py +19 -0
  832. paddlex/modules/object_detection/dataset_checker/dataset_src/analyse_dataset.py +82 -0
  833. paddlex/modules/object_detection/dataset_checker/dataset_src/check_dataset.py +91 -0
  834. paddlex/modules/object_detection/dataset_checker/dataset_src/convert_dataset.py +438 -0
  835. paddlex/modules/object_detection/dataset_checker/dataset_src/split_dataset.py +123 -0
  836. paddlex/modules/object_detection/dataset_checker/dataset_src/utils/__init__.py +13 -0
  837. paddlex/modules/object_detection/dataset_checker/dataset_src/utils/visualizer.py +193 -0
  838. paddlex/modules/object_detection/evaluator.py +57 -0
  839. paddlex/modules/object_detection/exportor.py +22 -0
  840. paddlex/modules/object_detection/model_list.py +86 -0
  841. paddlex/modules/object_detection/trainer.py +98 -0
  842. paddlex/modules/open_vocabulary_detection/__init__.py +18 -0
  843. paddlex/modules/open_vocabulary_detection/dataset_checker.py +29 -0
  844. paddlex/modules/open_vocabulary_detection/evaluator.py +29 -0
  845. paddlex/modules/open_vocabulary_detection/exportor.py +29 -0
  846. paddlex/modules/open_vocabulary_detection/model_list.py +16 -0
  847. paddlex/modules/open_vocabulary_detection/trainer.py +44 -0
  848. paddlex/modules/open_vocabulary_segmentation/__init__.py +18 -0
  849. paddlex/modules/open_vocabulary_segmentation/dataset_checker.py +29 -0
  850. paddlex/modules/open_vocabulary_segmentation/evaluator.py +29 -0
  851. paddlex/modules/open_vocabulary_segmentation/exportor.py +29 -0
  852. paddlex/modules/open_vocabulary_segmentation/model_list.py +19 -0
  853. paddlex/modules/open_vocabulary_segmentation/trainer.py +44 -0
  854. paddlex/modules/semantic_segmentation/__init__.py +18 -0
  855. paddlex/modules/semantic_segmentation/dataset_checker/__init__.py +109 -0
  856. paddlex/modules/semantic_segmentation/dataset_checker/dataset_src/__init__.py +19 -0
  857. paddlex/modules/semantic_segmentation/dataset_checker/dataset_src/analyse_dataset.py +76 -0
  858. paddlex/modules/semantic_segmentation/dataset_checker/dataset_src/check_dataset.py +80 -0
  859. paddlex/modules/semantic_segmentation/dataset_checker/dataset_src/convert_dataset.py +165 -0
  860. paddlex/modules/semantic_segmentation/dataset_checker/dataset_src/split_dataset.py +87 -0
  861. paddlex/modules/semantic_segmentation/dataset_checker/dataset_src/utils/__init__.py +13 -0
  862. paddlex/modules/semantic_segmentation/dataset_checker/dataset_src/utils/visualizer.py +75 -0
  863. paddlex/modules/semantic_segmentation/evaluator.py +58 -0
  864. paddlex/modules/semantic_segmentation/exportor.py +31 -0
  865. paddlex/modules/semantic_segmentation/model_list.py +37 -0
  866. paddlex/modules/semantic_segmentation/trainer.py +72 -0
  867. paddlex/modules/table_recognition/__init__.py +18 -0
  868. paddlex/modules/table_recognition/dataset_checker/__init__.py +98 -0
  869. paddlex/modules/table_recognition/dataset_checker/dataset_src/__init__.py +18 -0
  870. paddlex/modules/table_recognition/dataset_checker/dataset_src/analyse_dataset.py +59 -0
  871. paddlex/modules/table_recognition/dataset_checker/dataset_src/check_dataset.py +87 -0
  872. paddlex/modules/table_recognition/dataset_checker/dataset_src/split_dataset.py +80 -0
  873. paddlex/modules/table_recognition/evaluator.py +43 -0
  874. paddlex/modules/table_recognition/exportor.py +22 -0
  875. paddlex/modules/table_recognition/model_list.py +21 -0
  876. paddlex/modules/table_recognition/trainer.py +67 -0
  877. paddlex/modules/text_detection/__init__.py +18 -0
  878. paddlex/modules/text_detection/dataset_checker/__init__.py +107 -0
  879. paddlex/modules/text_detection/dataset_checker/dataset_src/__init__.py +18 -0
  880. paddlex/modules/text_detection/dataset_checker/dataset_src/analyse_dataset.py +220 -0
  881. paddlex/modules/text_detection/dataset_checker/dataset_src/check_dataset.py +106 -0
  882. paddlex/modules/text_detection/dataset_checker/dataset_src/split_dataset.py +140 -0
  883. paddlex/modules/text_detection/evaluator.py +41 -0
  884. paddlex/modules/text_detection/exportor.py +22 -0
  885. paddlex/modules/text_detection/model_list.py +26 -0
  886. paddlex/modules/text_detection/trainer.py +65 -0
  887. paddlex/modules/text_recognition/__init__.py +18 -0
  888. paddlex/modules/text_recognition/dataset_checker/__init__.py +125 -0
  889. paddlex/modules/text_recognition/dataset_checker/dataset_src/__init__.py +19 -0
  890. paddlex/modules/text_recognition/dataset_checker/dataset_src/analyse_dataset.py +162 -0
  891. paddlex/modules/text_recognition/dataset_checker/dataset_src/check_dataset.py +104 -0
  892. paddlex/modules/text_recognition/dataset_checker/dataset_src/convert_dataset.py +95 -0
  893. paddlex/modules/text_recognition/dataset_checker/dataset_src/split_dataset.py +80 -0
  894. paddlex/modules/text_recognition/evaluator.py +64 -0
  895. paddlex/modules/text_recognition/exportor.py +22 -0
  896. paddlex/modules/text_recognition/model_list.py +36 -0
  897. paddlex/modules/text_recognition/trainer.py +105 -0
  898. paddlex/modules/ts_anomaly_detection/__init__.py +19 -0
  899. paddlex/modules/ts_anomaly_detection/dataset_checker/__init__.py +111 -0
  900. paddlex/modules/ts_anomaly_detection/dataset_checker/dataset_src/__init__.py +19 -0
  901. paddlex/modules/ts_anomaly_detection/dataset_checker/dataset_src/analyse_dataset.py +19 -0
  902. paddlex/modules/ts_anomaly_detection/dataset_checker/dataset_src/check_dataset.py +64 -0
  903. paddlex/modules/ts_anomaly_detection/dataset_checker/dataset_src/convert_dataset.py +74 -0
  904. paddlex/modules/ts_anomaly_detection/dataset_checker/dataset_src/split_dataset.py +63 -0
  905. paddlex/modules/ts_anomaly_detection/evaluator.py +67 -0
  906. paddlex/modules/ts_anomaly_detection/exportor.py +44 -0
  907. paddlex/modules/ts_anomaly_detection/model_list.py +22 -0
  908. paddlex/modules/ts_anomaly_detection/trainer.py +113 -0
  909. paddlex/modules/ts_classification/__init__.py +19 -0
  910. paddlex/modules/ts_classification/dataset_checker/__init__.py +111 -0
  911. paddlex/modules/ts_classification/dataset_checker/dataset_src/__init__.py +19 -0
  912. paddlex/modules/ts_classification/dataset_checker/dataset_src/analyse_dataset.py +77 -0
  913. paddlex/modules/ts_classification/dataset_checker/dataset_src/check_dataset.py +64 -0
  914. paddlex/modules/ts_classification/dataset_checker/dataset_src/convert_dataset.py +74 -0
  915. paddlex/modules/ts_classification/dataset_checker/dataset_src/split_dataset.py +88 -0
  916. paddlex/modules/ts_classification/evaluator.py +66 -0
  917. paddlex/modules/ts_classification/exportor.py +44 -0
  918. paddlex/modules/ts_classification/model_list.py +18 -0
  919. paddlex/modules/ts_classification/trainer.py +108 -0
  920. paddlex/modules/ts_forecast/__init__.py +19 -0
  921. paddlex/modules/ts_forecast/dataset_checker/__init__.py +111 -0
  922. paddlex/modules/ts_forecast/dataset_checker/dataset_src/__init__.py +19 -0
  923. paddlex/modules/ts_forecast/dataset_checker/dataset_src/analyse_dataset.py +19 -0
  924. paddlex/modules/ts_forecast/dataset_checker/dataset_src/check_dataset.py +64 -0
  925. paddlex/modules/ts_forecast/dataset_checker/dataset_src/convert_dataset.py +73 -0
  926. paddlex/modules/ts_forecast/dataset_checker/dataset_src/split_dataset.py +63 -0
  927. paddlex/modules/ts_forecast/evaluator.py +66 -0
  928. paddlex/modules/ts_forecast/exportor.py +44 -0
  929. paddlex/modules/ts_forecast/model_list.py +24 -0
  930. paddlex/modules/ts_forecast/trainer.py +108 -0
  931. paddlex/modules/video_classification/__init__.py +18 -0
  932. paddlex/modules/video_classification/dataset_checker/__init__.py +93 -0
  933. paddlex/modules/video_classification/dataset_checker/dataset_src/__init__.py +18 -0
  934. paddlex/modules/video_classification/dataset_checker/dataset_src/analyse_dataset.py +93 -0
  935. paddlex/modules/video_classification/dataset_checker/dataset_src/check_dataset.py +120 -0
  936. paddlex/modules/video_classification/dataset_checker/dataset_src/split_dataset.py +82 -0
  937. paddlex/modules/video_classification/evaluator.py +44 -0
  938. paddlex/modules/video_classification/exportor.py +22 -0
  939. paddlex/modules/video_classification/model_list.py +19 -0
  940. paddlex/modules/video_classification/trainer.py +88 -0
  941. paddlex/modules/video_detection/__init__.py +18 -0
  942. paddlex/modules/video_detection/dataset_checker/__init__.py +86 -0
  943. paddlex/modules/video_detection/dataset_checker/dataset_src/__init__.py +17 -0
  944. paddlex/modules/video_detection/dataset_checker/dataset_src/analyse_dataset.py +100 -0
  945. paddlex/modules/video_detection/dataset_checker/dataset_src/check_dataset.py +132 -0
  946. paddlex/modules/video_detection/evaluator.py +42 -0
  947. paddlex/modules/video_detection/exportor.py +22 -0
  948. paddlex/modules/video_detection/model_list.py +15 -0
  949. paddlex/modules/video_detection/trainer.py +82 -0
  950. paddlex/ops/__init__.py +152 -0
  951. paddlex/ops/iou3d_nms/iou3d_cpu.cpp +266 -0
  952. paddlex/ops/iou3d_nms/iou3d_cpu.h +28 -0
  953. paddlex/ops/iou3d_nms/iou3d_nms.cpp +206 -0
  954. paddlex/ops/iou3d_nms/iou3d_nms.h +35 -0
  955. paddlex/ops/iou3d_nms/iou3d_nms_api.cpp +114 -0
  956. paddlex/ops/iou3d_nms/iou3d_nms_kernel.cu +484 -0
  957. paddlex/ops/setup.py +37 -0
  958. paddlex/ops/voxel/voxelize_op.cc +194 -0
  959. paddlex/ops/voxel/voxelize_op.cu +346 -0
  960. paddlex/paddlex_cli.py +476 -0
  961. paddlex/repo_apis/Paddle3D_api/__init__.py +17 -0
  962. paddlex/repo_apis/Paddle3D_api/bev_fusion/__init__.py +18 -0
  963. paddlex/repo_apis/Paddle3D_api/bev_fusion/config.py +118 -0
  964. paddlex/repo_apis/Paddle3D_api/bev_fusion/model.py +238 -0
  965. paddlex/repo_apis/Paddle3D_api/bev_fusion/register.py +55 -0
  966. paddlex/repo_apis/Paddle3D_api/bev_fusion/runner.py +104 -0
  967. paddlex/repo_apis/Paddle3D_api/pp3d_config.py +145 -0
  968. paddlex/repo_apis/PaddleClas_api/__init__.py +17 -0
  969. paddlex/repo_apis/PaddleClas_api/cls/__init__.py +19 -0
  970. paddlex/repo_apis/PaddleClas_api/cls/config.py +595 -0
  971. paddlex/repo_apis/PaddleClas_api/cls/model.py +355 -0
  972. paddlex/repo_apis/PaddleClas_api/cls/register.py +907 -0
  973. paddlex/repo_apis/PaddleClas_api/cls/runner.py +218 -0
  974. paddlex/repo_apis/PaddleClas_api/shitu_rec/__init__.py +18 -0
  975. paddlex/repo_apis/PaddleClas_api/shitu_rec/config.py +141 -0
  976. paddlex/repo_apis/PaddleClas_api/shitu_rec/model.py +20 -0
  977. paddlex/repo_apis/PaddleClas_api/shitu_rec/register.py +68 -0
  978. paddlex/repo_apis/PaddleClas_api/shitu_rec/runner.py +50 -0
  979. paddlex/repo_apis/PaddleDetection_api/__init__.py +17 -0
  980. paddlex/repo_apis/PaddleDetection_api/config_helper.py +280 -0
  981. paddlex/repo_apis/PaddleDetection_api/instance_seg/__init__.py +18 -0
  982. paddlex/repo_apis/PaddleDetection_api/instance_seg/config.py +457 -0
  983. paddlex/repo_apis/PaddleDetection_api/instance_seg/model.py +403 -0
  984. paddlex/repo_apis/PaddleDetection_api/instance_seg/register.py +262 -0
  985. paddlex/repo_apis/PaddleDetection_api/instance_seg/runner.py +225 -0
  986. paddlex/repo_apis/PaddleDetection_api/object_det/__init__.py +19 -0
  987. paddlex/repo_apis/PaddleDetection_api/object_det/config.py +540 -0
  988. paddlex/repo_apis/PaddleDetection_api/object_det/model.py +429 -0
  989. paddlex/repo_apis/PaddleDetection_api/object_det/official_categories.py +245 -0
  990. paddlex/repo_apis/PaddleDetection_api/object_det/register.py +1135 -0
  991. paddlex/repo_apis/PaddleDetection_api/object_det/runner.py +225 -0
  992. paddlex/repo_apis/PaddleNLP_api/__init__.py +13 -0
  993. paddlex/repo_apis/PaddleOCR_api/__init__.py +22 -0
  994. paddlex/repo_apis/PaddleOCR_api/config_utils.py +53 -0
  995. paddlex/repo_apis/PaddleOCR_api/formula_rec/__init__.py +16 -0
  996. paddlex/repo_apis/PaddleOCR_api/formula_rec/config.py +571 -0
  997. paddlex/repo_apis/PaddleOCR_api/formula_rec/model.py +398 -0
  998. paddlex/repo_apis/PaddleOCR_api/formula_rec/register.py +99 -0
  999. paddlex/repo_apis/PaddleOCR_api/formula_rec/runner.py +239 -0
  1000. paddlex/repo_apis/PaddleOCR_api/table_rec/__init__.py +16 -0
  1001. paddlex/repo_apis/PaddleOCR_api/table_rec/config.py +64 -0
  1002. paddlex/repo_apis/PaddleOCR_api/table_rec/model.py +126 -0
  1003. paddlex/repo_apis/PaddleOCR_api/table_rec/register.py +70 -0
  1004. paddlex/repo_apis/PaddleOCR_api/table_rec/runner.py +51 -0
  1005. paddlex/repo_apis/PaddleOCR_api/text_det/__init__.py +16 -0
  1006. paddlex/repo_apis/PaddleOCR_api/text_det/config.py +62 -0
  1007. paddlex/repo_apis/PaddleOCR_api/text_det/model.py +72 -0
  1008. paddlex/repo_apis/PaddleOCR_api/text_det/register.py +107 -0
  1009. paddlex/repo_apis/PaddleOCR_api/text_det/runner.py +53 -0
  1010. paddlex/repo_apis/PaddleOCR_api/text_rec/__init__.py +16 -0
  1011. paddlex/repo_apis/PaddleOCR_api/text_rec/config.py +564 -0
  1012. paddlex/repo_apis/PaddleOCR_api/text_rec/model.py +398 -0
  1013. paddlex/repo_apis/PaddleOCR_api/text_rec/register.py +216 -0
  1014. paddlex/repo_apis/PaddleOCR_api/text_rec/runner.py +239 -0
  1015. paddlex/repo_apis/PaddleSeg_api/__init__.py +16 -0
  1016. paddlex/repo_apis/PaddleSeg_api/base_seg_config.py +134 -0
  1017. paddlex/repo_apis/PaddleSeg_api/seg/__init__.py +16 -0
  1018. paddlex/repo_apis/PaddleSeg_api/seg/config.py +183 -0
  1019. paddlex/repo_apis/PaddleSeg_api/seg/model.py +491 -0
  1020. paddlex/repo_apis/PaddleSeg_api/seg/register.py +272 -0
  1021. paddlex/repo_apis/PaddleSeg_api/seg/runner.py +261 -0
  1022. paddlex/repo_apis/PaddleTS_api/__init__.py +20 -0
  1023. paddlex/repo_apis/PaddleTS_api/ts_ad/__init__.py +16 -0
  1024. paddlex/repo_apis/PaddleTS_api/ts_ad/config.py +88 -0
  1025. paddlex/repo_apis/PaddleTS_api/ts_ad/register.py +146 -0
  1026. paddlex/repo_apis/PaddleTS_api/ts_ad/runner.py +158 -0
  1027. paddlex/repo_apis/PaddleTS_api/ts_base/__init__.py +13 -0
  1028. paddlex/repo_apis/PaddleTS_api/ts_base/config.py +244 -0
  1029. paddlex/repo_apis/PaddleTS_api/ts_base/model.py +276 -0
  1030. paddlex/repo_apis/PaddleTS_api/ts_base/runner.py +158 -0
  1031. paddlex/repo_apis/PaddleTS_api/ts_cls/__init__.py +16 -0
  1032. paddlex/repo_apis/PaddleTS_api/ts_cls/config.py +72 -0
  1033. paddlex/repo_apis/PaddleTS_api/ts_cls/register.py +59 -0
  1034. paddlex/repo_apis/PaddleTS_api/ts_cls/runner.py +158 -0
  1035. paddlex/repo_apis/PaddleTS_api/ts_fc/__init__.py +16 -0
  1036. paddlex/repo_apis/PaddleTS_api/ts_fc/config.py +136 -0
  1037. paddlex/repo_apis/PaddleTS_api/ts_fc/register.py +186 -0
  1038. paddlex/repo_apis/PaddleVideo_api/__init__.py +17 -0
  1039. paddlex/repo_apis/PaddleVideo_api/config_utils.py +51 -0
  1040. paddlex/repo_apis/PaddleVideo_api/video_cls/__init__.py +19 -0
  1041. paddlex/repo_apis/PaddleVideo_api/video_cls/config.py +548 -0
  1042. paddlex/repo_apis/PaddleVideo_api/video_cls/model.py +346 -0
  1043. paddlex/repo_apis/PaddleVideo_api/video_cls/register.py +70 -0
  1044. paddlex/repo_apis/PaddleVideo_api/video_cls/runner.py +204 -0
  1045. paddlex/repo_apis/PaddleVideo_api/video_det/__init__.py +19 -0
  1046. paddlex/repo_apis/PaddleVideo_api/video_det/config.py +549 -0
  1047. paddlex/repo_apis/PaddleVideo_api/video_det/model.py +298 -0
  1048. paddlex/repo_apis/PaddleVideo_api/video_det/register.py +44 -0
  1049. paddlex/repo_apis/PaddleVideo_api/video_det/runner.py +199 -0
  1050. paddlex/repo_apis/__init__.py +13 -0
  1051. paddlex/repo_apis/base/__init__.py +22 -0
  1052. paddlex/repo_apis/base/config.py +237 -0
  1053. paddlex/repo_apis/base/model.py +563 -0
  1054. paddlex/repo_apis/base/register.py +135 -0
  1055. paddlex/repo_apis/base/runner.py +390 -0
  1056. paddlex/repo_apis/base/utils/__init__.py +13 -0
  1057. paddlex/repo_apis/base/utils/arg.py +64 -0
  1058. paddlex/repo_apis/base/utils/subprocess.py +107 -0
  1059. paddlex/repo_manager/__init__.py +17 -0
  1060. paddlex/repo_manager/core.py +253 -0
  1061. paddlex/repo_manager/meta.py +180 -0
  1062. paddlex/repo_manager/repo.py +425 -0
  1063. paddlex/repo_manager/utils.py +148 -0
  1064. paddlex/utils/__init__.py +1 -12
  1065. paddlex/utils/cache.py +146 -0
  1066. paddlex/utils/config.py +216 -0
  1067. paddlex/utils/custom_device_list.py +311 -0
  1068. paddlex/utils/deps.py +249 -0
  1069. paddlex/utils/device.py +195 -0
  1070. paddlex/utils/download.py +168 -182
  1071. paddlex/utils/env.py +32 -45
  1072. paddlex/utils/errors/__init__.py +17 -0
  1073. paddlex/utils/errors/dataset_checker.py +78 -0
  1074. paddlex/utils/errors/others.py +138 -0
  1075. paddlex/utils/file_interface.py +211 -0
  1076. paddlex/utils/flags.py +70 -0
  1077. paddlex/utils/fonts/__init__.py +97 -0
  1078. paddlex/utils/func_register.py +41 -0
  1079. paddlex/utils/install.py +87 -0
  1080. paddlex/utils/interactive_get_pipeline.py +55 -0
  1081. paddlex/utils/lazy_loader.py +68 -0
  1082. paddlex/utils/logging.py +140 -33
  1083. paddlex/utils/misc.py +201 -0
  1084. paddlex/utils/pipeline_arguments.py +719 -0
  1085. paddlex/utils/result_saver.py +58 -0
  1086. paddlex/utils/subclass_register.py +99 -0
  1087. paddlex/version.py +55 -0
  1088. paddlex-3.0.0.dist-info/METADATA +1168 -0
  1089. paddlex-3.0.0.dist-info/RECORD +1093 -0
  1090. paddlex-3.0.0.dist-info/WHEEL +5 -0
  1091. paddlex-3.0.0.dist-info/entry_points.txt +2 -0
  1092. paddlex-3.0.0.dist-info/licenses/LICENSE +169 -0
  1093. paddlex-3.0.0.dist-info/top_level.txt +1 -0
  1094. PaddleClas/__init__.py +0 -16
  1095. PaddleClas/deploy/__init__.py +0 -1
  1096. PaddleClas/deploy/paddleserving/__init__.py +0 -0
  1097. PaddleClas/deploy/paddleserving/classification_web_service.py +0 -74
  1098. PaddleClas/deploy/paddleserving/cpu_utilization.py +0 -4
  1099. PaddleClas/deploy/paddleserving/pipeline_http_client.py +0 -20
  1100. PaddleClas/deploy/paddleserving/pipeline_rpc_client.py +0 -33
  1101. PaddleClas/deploy/paddleserving/recognition/__init__.py +0 -0
  1102. PaddleClas/deploy/paddleserving/recognition/pipeline_http_client.py +0 -21
  1103. PaddleClas/deploy/paddleserving/recognition/pipeline_rpc_client.py +0 -34
  1104. PaddleClas/deploy/paddleserving/recognition/recognition_web_service.py +0 -209
  1105. PaddleClas/deploy/python/__init__.py +0 -0
  1106. PaddleClas/deploy/python/build_gallery.py +0 -214
  1107. PaddleClas/deploy/python/det_preprocess.py +0 -205
  1108. PaddleClas/deploy/python/postprocess.py +0 -161
  1109. PaddleClas/deploy/python/predict_cls.py +0 -142
  1110. PaddleClas/deploy/python/predict_det.py +0 -158
  1111. PaddleClas/deploy/python/predict_rec.py +0 -138
  1112. PaddleClas/deploy/python/predict_system.py +0 -144
  1113. PaddleClas/deploy/python/preprocess.py +0 -337
  1114. PaddleClas/deploy/utils/__init__.py +0 -5
  1115. PaddleClas/deploy/utils/config.py +0 -197
  1116. PaddleClas/deploy/utils/draw_bbox.py +0 -61
  1117. PaddleClas/deploy/utils/encode_decode.py +0 -31
  1118. PaddleClas/deploy/utils/get_image_list.py +0 -49
  1119. PaddleClas/deploy/utils/logger.py +0 -120
  1120. PaddleClas/deploy/utils/predictor.py +0 -71
  1121. PaddleClas/deploy/vector_search/__init__.py +0 -1
  1122. PaddleClas/deploy/vector_search/interface.py +0 -272
  1123. PaddleClas/deploy/vector_search/test.py +0 -34
  1124. PaddleClas/hubconf.py +0 -788
  1125. PaddleClas/paddleclas.py +0 -552
  1126. PaddleClas/ppcls/__init__.py +0 -20
  1127. PaddleClas/ppcls/arch/__init__.py +0 -127
  1128. PaddleClas/ppcls/arch/backbone/__init__.py +0 -80
  1129. PaddleClas/ppcls/arch/backbone/base/__init__.py +0 -0
  1130. PaddleClas/ppcls/arch/backbone/base/theseus_layer.py +0 -126
  1131. PaddleClas/ppcls/arch/backbone/legendary_models/__init__.py +0 -6
  1132. PaddleClas/ppcls/arch/backbone/legendary_models/esnet.py +0 -355
  1133. PaddleClas/ppcls/arch/backbone/legendary_models/hrnet.py +0 -744
  1134. PaddleClas/ppcls/arch/backbone/legendary_models/inception_v3.py +0 -539
  1135. PaddleClas/ppcls/arch/backbone/legendary_models/mobilenet_v1.py +0 -234
  1136. PaddleClas/ppcls/arch/backbone/legendary_models/mobilenet_v3.py +0 -561
  1137. PaddleClas/ppcls/arch/backbone/legendary_models/pp_lcnet.py +0 -399
  1138. PaddleClas/ppcls/arch/backbone/legendary_models/resnet.py +0 -534
  1139. PaddleClas/ppcls/arch/backbone/legendary_models/vgg.py +0 -231
  1140. PaddleClas/ppcls/arch/backbone/model_zoo/__init__.py +0 -0
  1141. PaddleClas/ppcls/arch/backbone/model_zoo/alexnet.py +0 -168
  1142. PaddleClas/ppcls/arch/backbone/model_zoo/cspnet.py +0 -376
  1143. PaddleClas/ppcls/arch/backbone/model_zoo/darknet.py +0 -197
  1144. PaddleClas/ppcls/arch/backbone/model_zoo/densenet.py +0 -344
  1145. PaddleClas/ppcls/arch/backbone/model_zoo/distilled_vision_transformer.py +0 -272
  1146. PaddleClas/ppcls/arch/backbone/model_zoo/dla.py +0 -528
  1147. PaddleClas/ppcls/arch/backbone/model_zoo/dpn.py +0 -451
  1148. PaddleClas/ppcls/arch/backbone/model_zoo/efficientnet.py +0 -976
  1149. PaddleClas/ppcls/arch/backbone/model_zoo/ghostnet.py +0 -363
  1150. PaddleClas/ppcls/arch/backbone/model_zoo/googlenet.py +0 -229
  1151. PaddleClas/ppcls/arch/backbone/model_zoo/gvt.py +0 -693
  1152. PaddleClas/ppcls/arch/backbone/model_zoo/hardnet.py +0 -293
  1153. PaddleClas/ppcls/arch/backbone/model_zoo/inception_v4.py +0 -477
  1154. PaddleClas/ppcls/arch/backbone/model_zoo/levit.py +0 -589
  1155. PaddleClas/ppcls/arch/backbone/model_zoo/mixnet.py +0 -815
  1156. PaddleClas/ppcls/arch/backbone/model_zoo/mobilenet_v2.py +0 -287
  1157. PaddleClas/ppcls/arch/backbone/model_zoo/rednet.py +0 -203
  1158. PaddleClas/ppcls/arch/backbone/model_zoo/regnet.py +0 -431
  1159. PaddleClas/ppcls/arch/backbone/model_zoo/repvgg.py +0 -422
  1160. PaddleClas/ppcls/arch/backbone/model_zoo/res2net.py +0 -264
  1161. PaddleClas/ppcls/arch/backbone/model_zoo/res2net_vd.py +0 -305
  1162. PaddleClas/ppcls/arch/backbone/model_zoo/resnest.py +0 -740
  1163. PaddleClas/ppcls/arch/backbone/model_zoo/resnet_vc.py +0 -309
  1164. PaddleClas/ppcls/arch/backbone/model_zoo/resnext.py +0 -298
  1165. PaddleClas/ppcls/arch/backbone/model_zoo/resnext101_wsl.py +0 -490
  1166. PaddleClas/ppcls/arch/backbone/model_zoo/resnext_vd.py +0 -317
  1167. PaddleClas/ppcls/arch/backbone/model_zoo/rexnet.py +0 -281
  1168. PaddleClas/ppcls/arch/backbone/model_zoo/se_resnet_vd.py +0 -390
  1169. PaddleClas/ppcls/arch/backbone/model_zoo/se_resnext.py +0 -364
  1170. PaddleClas/ppcls/arch/backbone/model_zoo/se_resnext_vd.py +0 -309
  1171. PaddleClas/ppcls/arch/backbone/model_zoo/shufflenet_v2.py +0 -362
  1172. PaddleClas/ppcls/arch/backbone/model_zoo/squeezenet.py +0 -194
  1173. PaddleClas/ppcls/arch/backbone/model_zoo/swin_transformer.py +0 -857
  1174. PaddleClas/ppcls/arch/backbone/model_zoo/tnt.py +0 -385
  1175. PaddleClas/ppcls/arch/backbone/model_zoo/vision_transformer.py +0 -495
  1176. PaddleClas/ppcls/arch/backbone/model_zoo/xception.py +0 -377
  1177. PaddleClas/ppcls/arch/backbone/model_zoo/xception_deeplab.py +0 -421
  1178. PaddleClas/ppcls/arch/backbone/variant_models/__init__.py +0 -3
  1179. PaddleClas/ppcls/arch/backbone/variant_models/pp_lcnet_variant.py +0 -29
  1180. PaddleClas/ppcls/arch/backbone/variant_models/resnet_variant.py +0 -23
  1181. PaddleClas/ppcls/arch/backbone/variant_models/vgg_variant.py +0 -28
  1182. PaddleClas/ppcls/arch/gears/__init__.py +0 -32
  1183. PaddleClas/ppcls/arch/gears/arcmargin.py +0 -72
  1184. PaddleClas/ppcls/arch/gears/circlemargin.py +0 -59
  1185. PaddleClas/ppcls/arch/gears/cosmargin.py +0 -55
  1186. PaddleClas/ppcls/arch/gears/fc.py +0 -35
  1187. PaddleClas/ppcls/arch/gears/identity_head.py +0 -9
  1188. PaddleClas/ppcls/arch/gears/vehicle_neck.py +0 -52
  1189. PaddleClas/ppcls/arch/utils.py +0 -53
  1190. PaddleClas/ppcls/data/__init__.py +0 -144
  1191. PaddleClas/ppcls/data/dataloader/DistributedRandomIdentitySampler.py +0 -90
  1192. PaddleClas/ppcls/data/dataloader/__init__.py +0 -9
  1193. PaddleClas/ppcls/data/dataloader/common_dataset.py +0 -84
  1194. PaddleClas/ppcls/data/dataloader/dali.py +0 -319
  1195. PaddleClas/ppcls/data/dataloader/icartoon_dataset.py +0 -36
  1196. PaddleClas/ppcls/data/dataloader/imagenet_dataset.py +0 -38
  1197. PaddleClas/ppcls/data/dataloader/logo_dataset.py +0 -46
  1198. PaddleClas/ppcls/data/dataloader/mix_dataset.py +0 -49
  1199. PaddleClas/ppcls/data/dataloader/mix_sampler.py +0 -79
  1200. PaddleClas/ppcls/data/dataloader/multilabel_dataset.py +0 -59
  1201. PaddleClas/ppcls/data/dataloader/pk_sampler.py +0 -105
  1202. PaddleClas/ppcls/data/dataloader/vehicle_dataset.py +0 -138
  1203. PaddleClas/ppcls/data/postprocess/__init__.py +0 -41
  1204. PaddleClas/ppcls/data/postprocess/topk.py +0 -85
  1205. PaddleClas/ppcls/data/preprocess/__init__.py +0 -100
  1206. PaddleClas/ppcls/data/preprocess/batch_ops/__init__.py +0 -1
  1207. PaddleClas/ppcls/data/preprocess/batch_ops/batch_operators.py +0 -231
  1208. PaddleClas/ppcls/data/preprocess/ops/__init__.py +0 -1
  1209. PaddleClas/ppcls/data/preprocess/ops/autoaugment.py +0 -264
  1210. PaddleClas/ppcls/data/preprocess/ops/cutout.py +0 -41
  1211. PaddleClas/ppcls/data/preprocess/ops/fmix.py +0 -217
  1212. PaddleClas/ppcls/data/preprocess/ops/functional.py +0 -138
  1213. PaddleClas/ppcls/data/preprocess/ops/grid.py +0 -89
  1214. PaddleClas/ppcls/data/preprocess/ops/hide_and_seek.py +0 -44
  1215. PaddleClas/ppcls/data/preprocess/ops/operators.py +0 -384
  1216. PaddleClas/ppcls/data/preprocess/ops/randaugment.py +0 -106
  1217. PaddleClas/ppcls/data/preprocess/ops/random_erasing.py +0 -90
  1218. PaddleClas/ppcls/data/preprocess/ops/timm_autoaugment.py +0 -877
  1219. PaddleClas/ppcls/data/utils/__init__.py +0 -13
  1220. PaddleClas/ppcls/data/utils/get_image_list.py +0 -49
  1221. PaddleClas/ppcls/engine/__init__.py +0 -0
  1222. PaddleClas/ppcls/engine/engine.py +0 -436
  1223. PaddleClas/ppcls/engine/evaluation/__init__.py +0 -16
  1224. PaddleClas/ppcls/engine/evaluation/classification.py +0 -143
  1225. PaddleClas/ppcls/engine/evaluation/retrieval.py +0 -169
  1226. PaddleClas/ppcls/engine/slim/__init__.py +0 -16
  1227. PaddleClas/ppcls/engine/slim/prune.py +0 -66
  1228. PaddleClas/ppcls/engine/slim/quant.py +0 -55
  1229. PaddleClas/ppcls/engine/train/__init__.py +0 -14
  1230. PaddleClas/ppcls/engine/train/train.py +0 -79
  1231. PaddleClas/ppcls/engine/train/utils.py +0 -72
  1232. PaddleClas/ppcls/loss/__init__.py +0 -65
  1233. PaddleClas/ppcls/loss/celoss.py +0 -67
  1234. PaddleClas/ppcls/loss/centerloss.py +0 -54
  1235. PaddleClas/ppcls/loss/comfunc.py +0 -45
  1236. PaddleClas/ppcls/loss/deephashloss.py +0 -92
  1237. PaddleClas/ppcls/loss/distanceloss.py +0 -43
  1238. PaddleClas/ppcls/loss/distillationloss.py +0 -141
  1239. PaddleClas/ppcls/loss/dmlloss.py +0 -46
  1240. PaddleClas/ppcls/loss/emlloss.py +0 -97
  1241. PaddleClas/ppcls/loss/googlenetloss.py +0 -41
  1242. PaddleClas/ppcls/loss/msmloss.py +0 -78
  1243. PaddleClas/ppcls/loss/multilabelloss.py +0 -43
  1244. PaddleClas/ppcls/loss/npairsloss.py +0 -38
  1245. PaddleClas/ppcls/loss/pairwisecosface.py +0 -55
  1246. PaddleClas/ppcls/loss/supconloss.py +0 -108
  1247. PaddleClas/ppcls/loss/trihardloss.py +0 -82
  1248. PaddleClas/ppcls/loss/triplet.py +0 -137
  1249. PaddleClas/ppcls/metric/__init__.py +0 -51
  1250. PaddleClas/ppcls/metric/metrics.py +0 -308
  1251. PaddleClas/ppcls/optimizer/__init__.py +0 -72
  1252. PaddleClas/ppcls/optimizer/learning_rate.py +0 -326
  1253. PaddleClas/ppcls/optimizer/optimizer.py +0 -207
  1254. PaddleClas/ppcls/utils/__init__.py +0 -27
  1255. PaddleClas/ppcls/utils/check.py +0 -151
  1256. PaddleClas/ppcls/utils/config.py +0 -210
  1257. PaddleClas/ppcls/utils/download.py +0 -319
  1258. PaddleClas/ppcls/utils/ema.py +0 -63
  1259. PaddleClas/ppcls/utils/logger.py +0 -137
  1260. PaddleClas/ppcls/utils/metrics.py +0 -107
  1261. PaddleClas/ppcls/utils/misc.py +0 -63
  1262. PaddleClas/ppcls/utils/model_zoo.py +0 -213
  1263. PaddleClas/ppcls/utils/profiler.py +0 -111
  1264. PaddleClas/ppcls/utils/save_load.py +0 -136
  1265. PaddleClas/setup.py +0 -58
  1266. PaddleClas/tools/__init__.py +0 -15
  1267. PaddleClas/tools/eval.py +0 -31
  1268. PaddleClas/tools/export_model.py +0 -34
  1269. PaddleClas/tools/infer.py +0 -31
  1270. PaddleClas/tools/train.py +0 -32
  1271. paddlex/cls.py +0 -82
  1272. paddlex/command.py +0 -215
  1273. paddlex/cv/__init__.py +0 -17
  1274. paddlex/cv/datasets/__init__.py +0 -18
  1275. paddlex/cv/datasets/coco.py +0 -208
  1276. paddlex/cv/datasets/imagenet.py +0 -88
  1277. paddlex/cv/datasets/seg_dataset.py +0 -91
  1278. paddlex/cv/datasets/voc.py +0 -445
  1279. paddlex/cv/models/__init__.py +0 -18
  1280. paddlex/cv/models/base.py +0 -631
  1281. paddlex/cv/models/classifier.py +0 -989
  1282. paddlex/cv/models/detector.py +0 -2292
  1283. paddlex/cv/models/load_model.py +0 -148
  1284. paddlex/cv/models/segmenter.py +0 -768
  1285. paddlex/cv/models/slim/__init__.py +0 -13
  1286. paddlex/cv/models/slim/prune.py +0 -55
  1287. paddlex/cv/models/utils/__init__.py +0 -13
  1288. paddlex/cv/models/utils/det_metrics/__init__.py +0 -15
  1289. paddlex/cv/models/utils/det_metrics/coco_utils.py +0 -476
  1290. paddlex/cv/models/utils/det_metrics/metrics.py +0 -220
  1291. paddlex/cv/models/utils/infer_nets.py +0 -45
  1292. paddlex/cv/models/utils/seg_metrics.py +0 -62
  1293. paddlex/cv/models/utils/visualize.py +0 -399
  1294. paddlex/cv/transforms/__init__.py +0 -46
  1295. paddlex/cv/transforms/batch_operators.py +0 -286
  1296. paddlex/cv/transforms/box_utils.py +0 -41
  1297. paddlex/cv/transforms/functions.py +0 -193
  1298. paddlex/cv/transforms/operators.py +0 -1402
  1299. paddlex/deploy.py +0 -268
  1300. paddlex/det.py +0 -49
  1301. paddlex/paddleseg/__init__.py +0 -17
  1302. paddlex/paddleseg/core/__init__.py +0 -20
  1303. paddlex/paddleseg/core/infer.py +0 -289
  1304. paddlex/paddleseg/core/predict.py +0 -145
  1305. paddlex/paddleseg/core/train.py +0 -258
  1306. paddlex/paddleseg/core/val.py +0 -172
  1307. paddlex/paddleseg/cvlibs/__init__.py +0 -17
  1308. paddlex/paddleseg/cvlibs/callbacks.py +0 -279
  1309. paddlex/paddleseg/cvlibs/config.py +0 -359
  1310. paddlex/paddleseg/cvlibs/manager.py +0 -142
  1311. paddlex/paddleseg/cvlibs/param_init.py +0 -91
  1312. paddlex/paddleseg/datasets/__init__.py +0 -21
  1313. paddlex/paddleseg/datasets/ade.py +0 -112
  1314. paddlex/paddleseg/datasets/cityscapes.py +0 -86
  1315. paddlex/paddleseg/datasets/cocostuff.py +0 -79
  1316. paddlex/paddleseg/datasets/dataset.py +0 -164
  1317. paddlex/paddleseg/datasets/mini_deep_globe_road_extraction.py +0 -95
  1318. paddlex/paddleseg/datasets/optic_disc_seg.py +0 -97
  1319. paddlex/paddleseg/datasets/pascal_context.py +0 -80
  1320. paddlex/paddleseg/datasets/voc.py +0 -113
  1321. paddlex/paddleseg/models/__init__.py +0 -39
  1322. paddlex/paddleseg/models/ann.py +0 -436
  1323. paddlex/paddleseg/models/attention_unet.py +0 -189
  1324. paddlex/paddleseg/models/backbones/__init__.py +0 -18
  1325. paddlex/paddleseg/models/backbones/hrnet.py +0 -815
  1326. paddlex/paddleseg/models/backbones/mobilenetv3.py +0 -365
  1327. paddlex/paddleseg/models/backbones/resnet_vd.py +0 -364
  1328. paddlex/paddleseg/models/backbones/xception_deeplab.py +0 -415
  1329. paddlex/paddleseg/models/bisenet.py +0 -311
  1330. paddlex/paddleseg/models/danet.py +0 -220
  1331. paddlex/paddleseg/models/decoupled_segnet.py +0 -233
  1332. paddlex/paddleseg/models/deeplab.py +0 -258
  1333. paddlex/paddleseg/models/dnlnet.py +0 -231
  1334. paddlex/paddleseg/models/emanet.py +0 -219
  1335. paddlex/paddleseg/models/fast_scnn.py +0 -318
  1336. paddlex/paddleseg/models/fcn.py +0 -135
  1337. paddlex/paddleseg/models/gcnet.py +0 -223
  1338. paddlex/paddleseg/models/gscnn.py +0 -357
  1339. paddlex/paddleseg/models/hardnet.py +0 -309
  1340. paddlex/paddleseg/models/isanet.py +0 -202
  1341. paddlex/paddleseg/models/layers/__init__.py +0 -19
  1342. paddlex/paddleseg/models/layers/activation.py +0 -73
  1343. paddlex/paddleseg/models/layers/attention.py +0 -146
  1344. paddlex/paddleseg/models/layers/layer_libs.py +0 -168
  1345. paddlex/paddleseg/models/layers/nonlocal2d.py +0 -155
  1346. paddlex/paddleseg/models/layers/pyramid_pool.py +0 -182
  1347. paddlex/paddleseg/models/losses/__init__.py +0 -27
  1348. paddlex/paddleseg/models/losses/binary_cross_entropy_loss.py +0 -174
  1349. paddlex/paddleseg/models/losses/bootstrapped_cross_entropy.py +0 -73
  1350. paddlex/paddleseg/models/losses/cross_entropy_loss.py +0 -94
  1351. paddlex/paddleseg/models/losses/decoupledsegnet_relax_boundary_loss.py +0 -129
  1352. paddlex/paddleseg/models/losses/dice_loss.py +0 -61
  1353. paddlex/paddleseg/models/losses/edge_attention_loss.py +0 -78
  1354. paddlex/paddleseg/models/losses/gscnn_dual_task_loss.py +0 -141
  1355. paddlex/paddleseg/models/losses/l1_loss.py +0 -76
  1356. paddlex/paddleseg/models/losses/lovasz_loss.py +0 -222
  1357. paddlex/paddleseg/models/losses/mean_square_error_loss.py +0 -65
  1358. paddlex/paddleseg/models/losses/mixed_loss.py +0 -58
  1359. paddlex/paddleseg/models/losses/ohem_cross_entropy_loss.py +0 -99
  1360. paddlex/paddleseg/models/losses/ohem_edge_attention_loss.py +0 -114
  1361. paddlex/paddleseg/models/ocrnet.py +0 -248
  1362. paddlex/paddleseg/models/pspnet.py +0 -147
  1363. paddlex/paddleseg/models/sfnet.py +0 -236
  1364. paddlex/paddleseg/models/shufflenet_slim.py +0 -268
  1365. paddlex/paddleseg/models/u2net.py +0 -574
  1366. paddlex/paddleseg/models/unet.py +0 -155
  1367. paddlex/paddleseg/models/unet_3plus.py +0 -316
  1368. paddlex/paddleseg/models/unet_plusplus.py +0 -237
  1369. paddlex/paddleseg/transforms/__init__.py +0 -16
  1370. paddlex/paddleseg/transforms/functional.py +0 -161
  1371. paddlex/paddleseg/transforms/transforms.py +0 -937
  1372. paddlex/paddleseg/utils/__init__.py +0 -22
  1373. paddlex/paddleseg/utils/config_check.py +0 -60
  1374. paddlex/paddleseg/utils/download.py +0 -163
  1375. paddlex/paddleseg/utils/env/__init__.py +0 -16
  1376. paddlex/paddleseg/utils/env/seg_env.py +0 -56
  1377. paddlex/paddleseg/utils/env/sys_env.py +0 -122
  1378. paddlex/paddleseg/utils/logger.py +0 -48
  1379. paddlex/paddleseg/utils/metrics.py +0 -146
  1380. paddlex/paddleseg/utils/progbar.py +0 -212
  1381. paddlex/paddleseg/utils/timer.py +0 -53
  1382. paddlex/paddleseg/utils/utils.py +0 -120
  1383. paddlex/paddleseg/utils/visualize.py +0 -90
  1384. paddlex/ppcls/__init__.py +0 -20
  1385. paddlex/ppcls/arch/__init__.py +0 -127
  1386. paddlex/ppcls/arch/backbone/__init__.py +0 -80
  1387. paddlex/ppcls/arch/backbone/base/__init__.py +0 -0
  1388. paddlex/ppcls/arch/backbone/base/theseus_layer.py +0 -130
  1389. paddlex/ppcls/arch/backbone/legendary_models/__init__.py +0 -6
  1390. paddlex/ppcls/arch/backbone/legendary_models/esnet.py +0 -355
  1391. paddlex/ppcls/arch/backbone/legendary_models/hrnet.py +0 -748
  1392. paddlex/ppcls/arch/backbone/legendary_models/inception_v3.py +0 -539
  1393. paddlex/ppcls/arch/backbone/legendary_models/mobilenet_v1.py +0 -234
  1394. paddlex/ppcls/arch/backbone/legendary_models/mobilenet_v3.py +0 -561
  1395. paddlex/ppcls/arch/backbone/legendary_models/pp_lcnet.py +0 -399
  1396. paddlex/ppcls/arch/backbone/legendary_models/resnet.py +0 -534
  1397. paddlex/ppcls/arch/backbone/legendary_models/vgg.py +0 -235
  1398. paddlex/ppcls/arch/backbone/model_zoo/__init__.py +0 -0
  1399. paddlex/ppcls/arch/backbone/model_zoo/alexnet.py +0 -168
  1400. paddlex/ppcls/arch/backbone/model_zoo/cspnet.py +0 -376
  1401. paddlex/ppcls/arch/backbone/model_zoo/darknet.py +0 -197
  1402. paddlex/ppcls/arch/backbone/model_zoo/densenet.py +0 -344
  1403. paddlex/ppcls/arch/backbone/model_zoo/distilled_vision_transformer.py +0 -272
  1404. paddlex/ppcls/arch/backbone/model_zoo/dla.py +0 -528
  1405. paddlex/ppcls/arch/backbone/model_zoo/dpn.py +0 -451
  1406. paddlex/ppcls/arch/backbone/model_zoo/efficientnet.py +0 -976
  1407. paddlex/ppcls/arch/backbone/model_zoo/ghostnet.py +0 -363
  1408. paddlex/ppcls/arch/backbone/model_zoo/googlenet.py +0 -229
  1409. paddlex/ppcls/arch/backbone/model_zoo/gvt.py +0 -693
  1410. paddlex/ppcls/arch/backbone/model_zoo/hardnet.py +0 -293
  1411. paddlex/ppcls/arch/backbone/model_zoo/inception_v4.py +0 -477
  1412. paddlex/ppcls/arch/backbone/model_zoo/levit.py +0 -589
  1413. paddlex/ppcls/arch/backbone/model_zoo/mixnet.py +0 -815
  1414. paddlex/ppcls/arch/backbone/model_zoo/mobilenet_v2.py +0 -287
  1415. paddlex/ppcls/arch/backbone/model_zoo/rednet.py +0 -203
  1416. paddlex/ppcls/arch/backbone/model_zoo/regnet.py +0 -431
  1417. paddlex/ppcls/arch/backbone/model_zoo/repvgg.py +0 -422
  1418. paddlex/ppcls/arch/backbone/model_zoo/res2net.py +0 -264
  1419. paddlex/ppcls/arch/backbone/model_zoo/res2net_vd.py +0 -305
  1420. paddlex/ppcls/arch/backbone/model_zoo/resnest.py +0 -740
  1421. paddlex/ppcls/arch/backbone/model_zoo/resnet_vc.py +0 -309
  1422. paddlex/ppcls/arch/backbone/model_zoo/resnext.py +0 -298
  1423. paddlex/ppcls/arch/backbone/model_zoo/resnext101_wsl.py +0 -490
  1424. paddlex/ppcls/arch/backbone/model_zoo/resnext_vd.py +0 -317
  1425. paddlex/ppcls/arch/backbone/model_zoo/rexnet.py +0 -281
  1426. paddlex/ppcls/arch/backbone/model_zoo/se_resnet_vd.py +0 -390
  1427. paddlex/ppcls/arch/backbone/model_zoo/se_resnext.py +0 -364
  1428. paddlex/ppcls/arch/backbone/model_zoo/se_resnext_vd.py +0 -309
  1429. paddlex/ppcls/arch/backbone/model_zoo/shufflenet_v2.py +0 -362
  1430. paddlex/ppcls/arch/backbone/model_zoo/squeezenet.py +0 -194
  1431. paddlex/ppcls/arch/backbone/model_zoo/swin_transformer.py +0 -857
  1432. paddlex/ppcls/arch/backbone/model_zoo/tnt.py +0 -385
  1433. paddlex/ppcls/arch/backbone/model_zoo/vision_transformer.py +0 -495
  1434. paddlex/ppcls/arch/backbone/model_zoo/xception.py +0 -377
  1435. paddlex/ppcls/arch/backbone/model_zoo/xception_deeplab.py +0 -421
  1436. paddlex/ppcls/arch/backbone/variant_models/__init__.py +0 -3
  1437. paddlex/ppcls/arch/backbone/variant_models/pp_lcnet_variant.py +0 -29
  1438. paddlex/ppcls/arch/backbone/variant_models/resnet_variant.py +0 -23
  1439. paddlex/ppcls/arch/backbone/variant_models/vgg_variant.py +0 -28
  1440. paddlex/ppcls/arch/gears/__init__.py +0 -32
  1441. paddlex/ppcls/arch/gears/arcmargin.py +0 -72
  1442. paddlex/ppcls/arch/gears/circlemargin.py +0 -59
  1443. paddlex/ppcls/arch/gears/cosmargin.py +0 -55
  1444. paddlex/ppcls/arch/gears/fc.py +0 -35
  1445. paddlex/ppcls/arch/gears/identity_head.py +0 -9
  1446. paddlex/ppcls/arch/gears/vehicle_neck.py +0 -52
  1447. paddlex/ppcls/arch/utils.py +0 -53
  1448. paddlex/ppcls/data/__init__.py +0 -144
  1449. paddlex/ppcls/data/dataloader/DistributedRandomIdentitySampler.py +0 -90
  1450. paddlex/ppcls/data/dataloader/__init__.py +0 -9
  1451. paddlex/ppcls/data/dataloader/common_dataset.py +0 -84
  1452. paddlex/ppcls/data/dataloader/dali.py +0 -319
  1453. paddlex/ppcls/data/dataloader/icartoon_dataset.py +0 -36
  1454. paddlex/ppcls/data/dataloader/imagenet_dataset.py +0 -38
  1455. paddlex/ppcls/data/dataloader/logo_dataset.py +0 -46
  1456. paddlex/ppcls/data/dataloader/mix_dataset.py +0 -49
  1457. paddlex/ppcls/data/dataloader/mix_sampler.py +0 -79
  1458. paddlex/ppcls/data/dataloader/multilabel_dataset.py +0 -59
  1459. paddlex/ppcls/data/dataloader/pk_sampler.py +0 -105
  1460. paddlex/ppcls/data/dataloader/vehicle_dataset.py +0 -138
  1461. paddlex/ppcls/data/postprocess/__init__.py +0 -41
  1462. paddlex/ppcls/data/postprocess/topk.py +0 -85
  1463. paddlex/ppcls/data/preprocess/__init__.py +0 -100
  1464. paddlex/ppcls/data/preprocess/batch_ops/__init__.py +0 -0
  1465. paddlex/ppcls/data/preprocess/batch_ops/batch_operators.py +0 -231
  1466. paddlex/ppcls/data/preprocess/ops/__init__.py +0 -0
  1467. paddlex/ppcls/data/preprocess/ops/autoaugment.py +0 -264
  1468. paddlex/ppcls/data/preprocess/ops/cutout.py +0 -41
  1469. paddlex/ppcls/data/preprocess/ops/fmix.py +0 -217
  1470. paddlex/ppcls/data/preprocess/ops/functional.py +0 -141
  1471. paddlex/ppcls/data/preprocess/ops/grid.py +0 -89
  1472. paddlex/ppcls/data/preprocess/ops/hide_and_seek.py +0 -44
  1473. paddlex/ppcls/data/preprocess/ops/operators.py +0 -384
  1474. paddlex/ppcls/data/preprocess/ops/randaugment.py +0 -106
  1475. paddlex/ppcls/data/preprocess/ops/random_erasing.py +0 -90
  1476. paddlex/ppcls/data/preprocess/ops/timm_autoaugment.py +0 -877
  1477. paddlex/ppcls/data/utils/__init__.py +0 -13
  1478. paddlex/ppcls/data/utils/get_image_list.py +0 -49
  1479. paddlex/ppcls/engine/__init__.py +0 -0
  1480. paddlex/ppcls/engine/engine.py +0 -436
  1481. paddlex/ppcls/engine/evaluation/__init__.py +0 -16
  1482. paddlex/ppcls/engine/evaluation/classification.py +0 -143
  1483. paddlex/ppcls/engine/evaluation/retrieval.py +0 -169
  1484. paddlex/ppcls/engine/slim/__init__.py +0 -16
  1485. paddlex/ppcls/engine/slim/prune.py +0 -66
  1486. paddlex/ppcls/engine/slim/quant.py +0 -55
  1487. paddlex/ppcls/engine/train/__init__.py +0 -14
  1488. paddlex/ppcls/engine/train/train.py +0 -79
  1489. paddlex/ppcls/engine/train/utils.py +0 -72
  1490. paddlex/ppcls/loss/__init__.py +0 -65
  1491. paddlex/ppcls/loss/celoss.py +0 -67
  1492. paddlex/ppcls/loss/centerloss.py +0 -54
  1493. paddlex/ppcls/loss/comfunc.py +0 -45
  1494. paddlex/ppcls/loss/deephashloss.py +0 -96
  1495. paddlex/ppcls/loss/distanceloss.py +0 -43
  1496. paddlex/ppcls/loss/distillationloss.py +0 -141
  1497. paddlex/ppcls/loss/dmlloss.py +0 -46
  1498. paddlex/ppcls/loss/emlloss.py +0 -97
  1499. paddlex/ppcls/loss/googlenetloss.py +0 -42
  1500. paddlex/ppcls/loss/msmloss.py +0 -78
  1501. paddlex/ppcls/loss/multilabelloss.py +0 -43
  1502. paddlex/ppcls/loss/npairsloss.py +0 -38
  1503. paddlex/ppcls/loss/pairwisecosface.py +0 -59
  1504. paddlex/ppcls/loss/supconloss.py +0 -108
  1505. paddlex/ppcls/loss/trihardloss.py +0 -82
  1506. paddlex/ppcls/loss/triplet.py +0 -137
  1507. paddlex/ppcls/metric/__init__.py +0 -51
  1508. paddlex/ppcls/metric/metrics.py +0 -308
  1509. paddlex/ppcls/optimizer/__init__.py +0 -72
  1510. paddlex/ppcls/optimizer/learning_rate.py +0 -326
  1511. paddlex/ppcls/optimizer/optimizer.py +0 -208
  1512. paddlex/ppcls/utils/__init__.py +0 -27
  1513. paddlex/ppcls/utils/check.py +0 -151
  1514. paddlex/ppcls/utils/config.py +0 -210
  1515. paddlex/ppcls/utils/download.py +0 -319
  1516. paddlex/ppcls/utils/ema.py +0 -63
  1517. paddlex/ppcls/utils/logger.py +0 -137
  1518. paddlex/ppcls/utils/metrics.py +0 -112
  1519. paddlex/ppcls/utils/misc.py +0 -63
  1520. paddlex/ppcls/utils/model_zoo.py +0 -213
  1521. paddlex/ppcls/utils/profiler.py +0 -111
  1522. paddlex/ppcls/utils/save_load.py +0 -136
  1523. paddlex/ppdet/__init__.py +0 -16
  1524. paddlex/ppdet/core/__init__.py +0 -15
  1525. paddlex/ppdet/core/config/__init__.py +0 -13
  1526. paddlex/ppdet/core/config/schema.py +0 -248
  1527. paddlex/ppdet/core/config/yaml_helpers.py +0 -118
  1528. paddlex/ppdet/core/workspace.py +0 -278
  1529. paddlex/ppdet/data/__init__.py +0 -21
  1530. paddlex/ppdet/data/crop_utils/__init__.py +0 -13
  1531. paddlex/ppdet/data/crop_utils/annotation_cropper.py +0 -585
  1532. paddlex/ppdet/data/crop_utils/chip_box_utils.py +0 -170
  1533. paddlex/ppdet/data/reader.py +0 -302
  1534. paddlex/ppdet/data/shm_utils.py +0 -67
  1535. paddlex/ppdet/data/source/__init__.py +0 -29
  1536. paddlex/ppdet/data/source/category.py +0 -904
  1537. paddlex/ppdet/data/source/coco.py +0 -251
  1538. paddlex/ppdet/data/source/dataset.py +0 -197
  1539. paddlex/ppdet/data/source/keypoint_coco.py +0 -669
  1540. paddlex/ppdet/data/source/mot.py +0 -636
  1541. paddlex/ppdet/data/source/sniper_coco.py +0 -191
  1542. paddlex/ppdet/data/source/voc.py +0 -231
  1543. paddlex/ppdet/data/source/widerface.py +0 -180
  1544. paddlex/ppdet/data/transform/__init__.py +0 -28
  1545. paddlex/ppdet/data/transform/atss_assigner.py +0 -270
  1546. paddlex/ppdet/data/transform/autoaugment_utils.py +0 -1591
  1547. paddlex/ppdet/data/transform/batch_operators.py +0 -1080
  1548. paddlex/ppdet/data/transform/gridmask_utils.py +0 -86
  1549. paddlex/ppdet/data/transform/keypoint_operators.py +0 -868
  1550. paddlex/ppdet/data/transform/mot_operators.py +0 -628
  1551. paddlex/ppdet/data/transform/op_helper.py +0 -498
  1552. paddlex/ppdet/data/transform/operators.py +0 -3025
  1553. paddlex/ppdet/engine/__init__.py +0 -30
  1554. paddlex/ppdet/engine/callbacks.py +0 -340
  1555. paddlex/ppdet/engine/env.py +0 -50
  1556. paddlex/ppdet/engine/export_utils.py +0 -177
  1557. paddlex/ppdet/engine/tracker.py +0 -538
  1558. paddlex/ppdet/engine/trainer.py +0 -723
  1559. paddlex/ppdet/metrics/__init__.py +0 -29
  1560. paddlex/ppdet/metrics/coco_utils.py +0 -184
  1561. paddlex/ppdet/metrics/json_results.py +0 -149
  1562. paddlex/ppdet/metrics/keypoint_metrics.py +0 -401
  1563. paddlex/ppdet/metrics/map_utils.py +0 -444
  1564. paddlex/ppdet/metrics/mcmot_metrics.py +0 -470
  1565. paddlex/ppdet/metrics/metrics.py +0 -434
  1566. paddlex/ppdet/metrics/mot_metrics.py +0 -1236
  1567. paddlex/ppdet/metrics/munkres.py +0 -428
  1568. paddlex/ppdet/metrics/widerface_utils.py +0 -393
  1569. paddlex/ppdet/model_zoo/__init__.py +0 -18
  1570. paddlex/ppdet/model_zoo/model_zoo.py +0 -84
  1571. paddlex/ppdet/modeling/__init__.py +0 -45
  1572. paddlex/ppdet/modeling/architectures/__init__.py +0 -51
  1573. paddlex/ppdet/modeling/architectures/blazeface.py +0 -91
  1574. paddlex/ppdet/modeling/architectures/cascade_rcnn.py +0 -144
  1575. paddlex/ppdet/modeling/architectures/centernet.py +0 -108
  1576. paddlex/ppdet/modeling/architectures/deepsort.py +0 -69
  1577. paddlex/ppdet/modeling/architectures/detr.py +0 -93
  1578. paddlex/ppdet/modeling/architectures/fairmot.py +0 -100
  1579. paddlex/ppdet/modeling/architectures/faster_rcnn.py +0 -106
  1580. paddlex/ppdet/modeling/architectures/fcos.py +0 -105
  1581. paddlex/ppdet/modeling/architectures/gfl.py +0 -87
  1582. paddlex/ppdet/modeling/architectures/jde.py +0 -111
  1583. paddlex/ppdet/modeling/architectures/keypoint_hrhrnet.py +0 -287
  1584. paddlex/ppdet/modeling/architectures/keypoint_hrnet.py +0 -267
  1585. paddlex/ppdet/modeling/architectures/mask_rcnn.py +0 -135
  1586. paddlex/ppdet/modeling/architectures/meta_arch.py +0 -128
  1587. paddlex/ppdet/modeling/architectures/picodet.py +0 -91
  1588. paddlex/ppdet/modeling/architectures/s2anet.py +0 -102
  1589. paddlex/ppdet/modeling/architectures/solov2.py +0 -110
  1590. paddlex/ppdet/modeling/architectures/sparse_rcnn.py +0 -99
  1591. paddlex/ppdet/modeling/architectures/ssd.py +0 -93
  1592. paddlex/ppdet/modeling/architectures/tood.py +0 -78
  1593. paddlex/ppdet/modeling/architectures/ttfnet.py +0 -98
  1594. paddlex/ppdet/modeling/architectures/yolo.py +0 -124
  1595. paddlex/ppdet/modeling/assigners/__init__.py +0 -23
  1596. paddlex/ppdet/modeling/assigners/atss_assigner.py +0 -211
  1597. paddlex/ppdet/modeling/assigners/simota_assigner.py +0 -262
  1598. paddlex/ppdet/modeling/assigners/task_aligned_assigner.py +0 -158
  1599. paddlex/ppdet/modeling/assigners/utils.py +0 -195
  1600. paddlex/ppdet/modeling/backbones/__init__.py +0 -49
  1601. paddlex/ppdet/modeling/backbones/blazenet.py +0 -323
  1602. paddlex/ppdet/modeling/backbones/darknet.py +0 -340
  1603. paddlex/ppdet/modeling/backbones/dla.py +0 -244
  1604. paddlex/ppdet/modeling/backbones/esnet.py +0 -290
  1605. paddlex/ppdet/modeling/backbones/ghostnet.py +0 -470
  1606. paddlex/ppdet/modeling/backbones/hardnet.py +0 -224
  1607. paddlex/ppdet/modeling/backbones/hrnet.py +0 -727
  1608. paddlex/ppdet/modeling/backbones/lcnet.py +0 -259
  1609. paddlex/ppdet/modeling/backbones/lite_hrnet.py +0 -886
  1610. paddlex/ppdet/modeling/backbones/mobilenet_v1.py +0 -418
  1611. paddlex/ppdet/modeling/backbones/mobilenet_v3.py +0 -483
  1612. paddlex/ppdet/modeling/backbones/name_adapter.py +0 -69
  1613. paddlex/ppdet/modeling/backbones/res2net.py +0 -358
  1614. paddlex/ppdet/modeling/backbones/resnet.py +0 -613
  1615. paddlex/ppdet/modeling/backbones/senet.py +0 -139
  1616. paddlex/ppdet/modeling/backbones/shufflenet_v2.py +0 -246
  1617. paddlex/ppdet/modeling/backbones/swin_transformer.py +0 -743
  1618. paddlex/ppdet/modeling/backbones/vgg.py +0 -210
  1619. paddlex/ppdet/modeling/bbox_utils.py +0 -778
  1620. paddlex/ppdet/modeling/heads/__init__.py +0 -53
  1621. paddlex/ppdet/modeling/heads/bbox_head.py +0 -377
  1622. paddlex/ppdet/modeling/heads/cascade_head.py +0 -284
  1623. paddlex/ppdet/modeling/heads/centernet_head.py +0 -292
  1624. paddlex/ppdet/modeling/heads/detr_head.py +0 -368
  1625. paddlex/ppdet/modeling/heads/face_head.py +0 -110
  1626. paddlex/ppdet/modeling/heads/fcos_head.py +0 -259
  1627. paddlex/ppdet/modeling/heads/gfl_head.py +0 -487
  1628. paddlex/ppdet/modeling/heads/keypoint_hrhrnet_head.py +0 -108
  1629. paddlex/ppdet/modeling/heads/mask_head.py +0 -250
  1630. paddlex/ppdet/modeling/heads/pico_head.py +0 -278
  1631. paddlex/ppdet/modeling/heads/roi_extractor.py +0 -111
  1632. paddlex/ppdet/modeling/heads/s2anet_head.py +0 -1056
  1633. paddlex/ppdet/modeling/heads/simota_head.py +0 -506
  1634. paddlex/ppdet/modeling/heads/solov2_head.py +0 -560
  1635. paddlex/ppdet/modeling/heads/sparsercnn_head.py +0 -375
  1636. paddlex/ppdet/modeling/heads/ssd_head.py +0 -215
  1637. paddlex/ppdet/modeling/heads/tood_head.py +0 -366
  1638. paddlex/ppdet/modeling/heads/ttf_head.py +0 -316
  1639. paddlex/ppdet/modeling/heads/yolo_head.py +0 -124
  1640. paddlex/ppdet/modeling/initializer.py +0 -317
  1641. paddlex/ppdet/modeling/keypoint_utils.py +0 -342
  1642. paddlex/ppdet/modeling/layers.py +0 -1430
  1643. paddlex/ppdet/modeling/losses/__init__.py +0 -43
  1644. paddlex/ppdet/modeling/losses/ctfocal_loss.py +0 -68
  1645. paddlex/ppdet/modeling/losses/detr_loss.py +0 -233
  1646. paddlex/ppdet/modeling/losses/fairmot_loss.py +0 -41
  1647. paddlex/ppdet/modeling/losses/fcos_loss.py +0 -225
  1648. paddlex/ppdet/modeling/losses/gfocal_loss.py +0 -217
  1649. paddlex/ppdet/modeling/losses/iou_aware_loss.py +0 -47
  1650. paddlex/ppdet/modeling/losses/iou_loss.py +0 -210
  1651. paddlex/ppdet/modeling/losses/jde_loss.py +0 -193
  1652. paddlex/ppdet/modeling/losses/keypoint_loss.py +0 -229
  1653. paddlex/ppdet/modeling/losses/solov2_loss.py +0 -101
  1654. paddlex/ppdet/modeling/losses/sparsercnn_loss.py +0 -425
  1655. paddlex/ppdet/modeling/losses/ssd_loss.py +0 -170
  1656. paddlex/ppdet/modeling/losses/varifocal_loss.py +0 -152
  1657. paddlex/ppdet/modeling/losses/yolo_loss.py +0 -212
  1658. paddlex/ppdet/modeling/mot/__init__.py +0 -25
  1659. paddlex/ppdet/modeling/mot/matching/__init__.py +0 -19
  1660. paddlex/ppdet/modeling/mot/matching/deepsort_matching.py +0 -382
  1661. paddlex/ppdet/modeling/mot/matching/jde_matching.py +0 -144
  1662. paddlex/ppdet/modeling/mot/motion/__init__.py +0 -17
  1663. paddlex/ppdet/modeling/mot/motion/kalman_filter.py +0 -270
  1664. paddlex/ppdet/modeling/mot/tracker/__init__.py +0 -23
  1665. paddlex/ppdet/modeling/mot/tracker/base_jde_tracker.py +0 -297
  1666. paddlex/ppdet/modeling/mot/tracker/base_sde_tracker.py +0 -156
  1667. paddlex/ppdet/modeling/mot/tracker/deepsort_tracker.py +0 -188
  1668. paddlex/ppdet/modeling/mot/tracker/jde_tracker.py +0 -277
  1669. paddlex/ppdet/modeling/mot/utils.py +0 -263
  1670. paddlex/ppdet/modeling/mot/visualization.py +0 -150
  1671. paddlex/ppdet/modeling/necks/__init__.py +0 -30
  1672. paddlex/ppdet/modeling/necks/bifpn.py +0 -302
  1673. paddlex/ppdet/modeling/necks/blazeface_fpn.py +0 -216
  1674. paddlex/ppdet/modeling/necks/centernet_fpn.py +0 -426
  1675. paddlex/ppdet/modeling/necks/csp_pan.py +0 -364
  1676. paddlex/ppdet/modeling/necks/fpn.py +0 -231
  1677. paddlex/ppdet/modeling/necks/hrfpn.py +0 -126
  1678. paddlex/ppdet/modeling/necks/ttf_fpn.py +0 -242
  1679. paddlex/ppdet/modeling/necks/yolo_fpn.py +0 -988
  1680. paddlex/ppdet/modeling/ops.py +0 -1611
  1681. paddlex/ppdet/modeling/post_process.py +0 -731
  1682. paddlex/ppdet/modeling/proposal_generator/__init__.py +0 -2
  1683. paddlex/ppdet/modeling/proposal_generator/anchor_generator.py +0 -135
  1684. paddlex/ppdet/modeling/proposal_generator/proposal_generator.py +0 -77
  1685. paddlex/ppdet/modeling/proposal_generator/rpn_head.py +0 -260
  1686. paddlex/ppdet/modeling/proposal_generator/target.py +0 -681
  1687. paddlex/ppdet/modeling/proposal_generator/target_layer.py +0 -491
  1688. paddlex/ppdet/modeling/reid/__init__.py +0 -25
  1689. paddlex/ppdet/modeling/reid/fairmot_embedding_head.py +0 -225
  1690. paddlex/ppdet/modeling/reid/jde_embedding_head.py +0 -214
  1691. paddlex/ppdet/modeling/reid/pplcnet_embedding.py +0 -282
  1692. paddlex/ppdet/modeling/reid/pyramidal_embedding.py +0 -144
  1693. paddlex/ppdet/modeling/reid/resnet.py +0 -310
  1694. paddlex/ppdet/modeling/shape_spec.py +0 -25
  1695. paddlex/ppdet/modeling/transformers/__init__.py +0 -25
  1696. paddlex/ppdet/modeling/transformers/deformable_transformer.py +0 -517
  1697. paddlex/ppdet/modeling/transformers/detr_transformer.py +0 -353
  1698. paddlex/ppdet/modeling/transformers/matchers.py +0 -127
  1699. paddlex/ppdet/modeling/transformers/position_encoding.py +0 -108
  1700. paddlex/ppdet/modeling/transformers/utils.py +0 -110
  1701. paddlex/ppdet/optimizer.py +0 -335
  1702. paddlex/ppdet/slim/__init__.py +0 -82
  1703. paddlex/ppdet/slim/distill.py +0 -110
  1704. paddlex/ppdet/slim/prune.py +0 -85
  1705. paddlex/ppdet/slim/quant.py +0 -84
  1706. paddlex/ppdet/slim/unstructured_prune.py +0 -66
  1707. paddlex/ppdet/utils/__init__.py +0 -13
  1708. paddlex/ppdet/utils/check.py +0 -112
  1709. paddlex/ppdet/utils/checkpoint.py +0 -226
  1710. paddlex/ppdet/utils/cli.py +0 -151
  1711. paddlex/ppdet/utils/colormap.py +0 -58
  1712. paddlex/ppdet/utils/download.py +0 -558
  1713. paddlex/ppdet/utils/logger.py +0 -70
  1714. paddlex/ppdet/utils/profiler.py +0 -111
  1715. paddlex/ppdet/utils/stats.py +0 -94
  1716. paddlex/ppdet/utils/visualizer.py +0 -321
  1717. paddlex/ppdet/utils/voc_utils.py +0 -86
  1718. paddlex/seg.py +0 -41
  1719. paddlex/tools/__init__.py +0 -17
  1720. paddlex/tools/anchor_clustering/__init__.py +0 -15
  1721. paddlex/tools/anchor_clustering/yolo_cluster.py +0 -178
  1722. paddlex/tools/convert.py +0 -52
  1723. paddlex/tools/dataset_conversion/__init__.py +0 -24
  1724. paddlex/tools/dataset_conversion/x2coco.py +0 -379
  1725. paddlex/tools/dataset_conversion/x2imagenet.py +0 -82
  1726. paddlex/tools/dataset_conversion/x2seg.py +0 -343
  1727. paddlex/tools/dataset_conversion/x2voc.py +0 -230
  1728. paddlex/tools/dataset_split/__init__.py +0 -23
  1729. paddlex/tools/dataset_split/coco_split.py +0 -69
  1730. paddlex/tools/dataset_split/imagenet_split.py +0 -75
  1731. paddlex/tools/dataset_split/seg_split.py +0 -96
  1732. paddlex/tools/dataset_split/utils.py +0 -75
  1733. paddlex/tools/dataset_split/voc_split.py +0 -91
  1734. paddlex/tools/split.py +0 -41
  1735. paddlex/utils/checkpoint.py +0 -492
  1736. paddlex/utils/shm.py +0 -67
  1737. paddlex/utils/stats.py +0 -68
  1738. paddlex/utils/utils.py +0 -229
  1739. paddlex-2.1.0.data/data/paddlex_restful/restful/templates/paddlex_restful_demo.html +0 -5205
  1740. paddlex-2.1.0.dist-info/LICENSE +0 -201
  1741. paddlex-2.1.0.dist-info/METADATA +0 -32
  1742. paddlex-2.1.0.dist-info/RECORD +0 -698
  1743. paddlex-2.1.0.dist-info/WHEEL +0 -5
  1744. paddlex-2.1.0.dist-info/entry_points.txt +0 -4
  1745. paddlex-2.1.0.dist-info/top_level.txt +0 -3
  1746. paddlex_restful/__init__.py +0 -15
  1747. paddlex_restful/command.py +0 -63
  1748. paddlex_restful/restful/__init__.py +0 -15
  1749. paddlex_restful/restful/app.py +0 -969
  1750. paddlex_restful/restful/dataset/__init__.py +0 -13
  1751. paddlex_restful/restful/dataset/cls_dataset.py +0 -159
  1752. paddlex_restful/restful/dataset/dataset.py +0 -266
  1753. paddlex_restful/restful/dataset/datasetbase.py +0 -86
  1754. paddlex_restful/restful/dataset/det_dataset.py +0 -190
  1755. paddlex_restful/restful/dataset/ins_seg_dataset.py +0 -312
  1756. paddlex_restful/restful/dataset/operate.py +0 -155
  1757. paddlex_restful/restful/dataset/seg_dataset.py +0 -222
  1758. paddlex_restful/restful/dataset/utils.py +0 -267
  1759. paddlex_restful/restful/demo.py +0 -202
  1760. paddlex_restful/restful/dir.py +0 -45
  1761. paddlex_restful/restful/model.py +0 -312
  1762. paddlex_restful/restful/project/__init__.py +0 -13
  1763. paddlex_restful/restful/project/evaluate/__init__.py +0 -13
  1764. paddlex_restful/restful/project/evaluate/classification.py +0 -126
  1765. paddlex_restful/restful/project/evaluate/detection.py +0 -789
  1766. paddlex_restful/restful/project/evaluate/draw_pred_result.py +0 -181
  1767. paddlex_restful/restful/project/evaluate/segmentation.py +0 -122
  1768. paddlex_restful/restful/project/operate.py +0 -931
  1769. paddlex_restful/restful/project/project.py +0 -143
  1770. paddlex_restful/restful/project/prune/__init__.py +0 -13
  1771. paddlex_restful/restful/project/prune/classification.py +0 -32
  1772. paddlex_restful/restful/project/prune/detection.py +0 -48
  1773. paddlex_restful/restful/project/prune/segmentation.py +0 -34
  1774. paddlex_restful/restful/project/task.py +0 -884
  1775. paddlex_restful/restful/project/train/__init__.py +0 -13
  1776. paddlex_restful/restful/project/train/classification.py +0 -141
  1777. paddlex_restful/restful/project/train/detection.py +0 -263
  1778. paddlex_restful/restful/project/train/params.py +0 -432
  1779. paddlex_restful/restful/project/train/params_v2.py +0 -326
  1780. paddlex_restful/restful/project/train/segmentation.py +0 -191
  1781. paddlex_restful/restful/project/visualize.py +0 -244
  1782. paddlex_restful/restful/system.py +0 -102
  1783. paddlex_restful/restful/templates/paddlex_restful_demo.html +0 -5205
  1784. paddlex_restful/restful/utils.py +0 -841
  1785. paddlex_restful/restful/workspace.py +0 -343
  1786. paddlex_restful/restful/workspace_pb2.py +0 -1411
@@ -0,0 +1,1395 @@
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
+ import re
17
+ from typing import Any, Dict, List, Optional, Tuple, Union
18
+
19
+ import numpy as np
20
+
21
+ from ....utils import logging
22
+ from ....utils.deps import (
23
+ function_requires_deps,
24
+ is_dep_available,
25
+ pipeline_requires_extra,
26
+ )
27
+ from ...common.batch_sampler import ImageBatchSampler
28
+ from ...common.reader import ReadImage
29
+ from ...models.object_detection.result import DetResult
30
+ from ...utils.hpi import HPIConfig
31
+ from ...utils.pp_option import PaddlePredictorOption
32
+ from .._parallel import AutoParallelImageSimpleInferencePipeline
33
+ from ..base import BasePipeline
34
+ from ..components import CropByBoxes
35
+ from ..doc_preprocessor.result import DocPreprocessorResult
36
+ from ..layout_parsing.utils import get_sub_regions_ocr_res
37
+ from ..ocr.result import OCRResult
38
+ from .result import SingleTableRecognitionResult, TableRecognitionResult
39
+ from .table_recognition_post_processing import (
40
+ get_table_recognition_res as get_table_recognition_res_e2e,
41
+ )
42
+ from .table_recognition_post_processing_v2 import get_table_recognition_res
43
+ from .utils import get_neighbor_boxes_idx
44
+
45
+ if is_dep_available("scikit-learn"):
46
+ from sklearn.cluster import KMeans
47
+
48
+
49
+ class _TableRecognitionPipelineV2(BasePipeline):
50
+ """Table Recognition Pipeline"""
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) by default. Defaults to False.
68
+ hpi_config (Optional[Union[Dict[str, Any], HPIConfig]], optional):
69
+ The default 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
+ self.general_ocr_pipeline = None
137
+ if self.use_ocr_model:
138
+ general_ocr_config = config.get("SubPipelines", {}).get(
139
+ "GeneralOCR",
140
+ {"pipeline_config_error": "config error for general_ocr_pipeline!"},
141
+ )
142
+ self.general_ocr_pipeline = self.create_pipeline(general_ocr_config)
143
+ else:
144
+ self.general_ocr_config_bak = config.get("SubPipelines", {}).get(
145
+ "GeneralOCR", None
146
+ )
147
+
148
+ self.table_orientation_classify_model = None
149
+ self.table_orientation_classify_config = config.get("SubModules", {}).get(
150
+ "TableOrientationClassify", None
151
+ )
152
+
153
+ self._crop_by_boxes = CropByBoxes()
154
+ self.batch_sampler = ImageBatchSampler(batch_size=1)
155
+ self.img_reader = ReadImage(format="BGR")
156
+
157
+ def get_model_settings(
158
+ self,
159
+ use_doc_orientation_classify: Optional[bool],
160
+ use_doc_unwarping: Optional[bool],
161
+ use_layout_detection: Optional[bool],
162
+ use_ocr_model: Optional[bool],
163
+ ) -> dict:
164
+ """
165
+ Get the model settings based on the provided parameters or default values.
166
+
167
+ Args:
168
+ use_doc_orientation_classify (Optional[bool]): Whether to use document orientation classification.
169
+ use_doc_unwarping (Optional[bool]): Whether to use document unwarping.
170
+ use_layout_detection (Optional[bool]): Whether to use layout detection.
171
+ use_ocr_model (Optional[bool]): Whether to use OCR model.
172
+
173
+ Returns:
174
+ dict: A dictionary containing the model settings.
175
+ """
176
+ if use_doc_orientation_classify is None and use_doc_unwarping is None:
177
+ use_doc_preprocessor = self.use_doc_preprocessor
178
+ else:
179
+ if use_doc_orientation_classify is True or use_doc_unwarping is True:
180
+ use_doc_preprocessor = True
181
+ else:
182
+ use_doc_preprocessor = False
183
+
184
+ if use_layout_detection is None:
185
+ use_layout_detection = self.use_layout_detection
186
+
187
+ if use_ocr_model is None:
188
+ use_ocr_model = self.use_ocr_model
189
+
190
+ return dict(
191
+ use_doc_preprocessor=use_doc_preprocessor,
192
+ use_layout_detection=use_layout_detection,
193
+ use_ocr_model=use_ocr_model,
194
+ )
195
+
196
+ def check_model_settings_valid(
197
+ self,
198
+ model_settings: Dict,
199
+ overall_ocr_res: OCRResult,
200
+ layout_det_res: DetResult,
201
+ ) -> bool:
202
+ """
203
+ Check if the input parameters are valid based on the initialized models.
204
+
205
+ Args:
206
+ model_settings (Dict): A dictionary containing input parameters.
207
+ overall_ocr_res (OCRResult): Overall OCR result obtained after running the OCR pipeline.
208
+ The overall OCR result with convert_points_to_boxes information.
209
+ layout_det_res (DetResult): The layout detection result.
210
+ Returns:
211
+ bool: True if all required models are initialized according to input parameters, False otherwise.
212
+ """
213
+
214
+ if model_settings["use_doc_preprocessor"] and not self.use_doc_preprocessor:
215
+ logging.error(
216
+ "Set use_doc_preprocessor, but the models for doc preprocessor are not initialized."
217
+ )
218
+ return False
219
+
220
+ if model_settings["use_layout_detection"]:
221
+ if layout_det_res is not None:
222
+ logging.error(
223
+ "The layout detection model has already been initialized, please set use_layout_detection=False"
224
+ )
225
+ return False
226
+
227
+ if not self.use_layout_detection:
228
+ logging.error(
229
+ "Set use_layout_detection, but the models for layout detection are not initialized."
230
+ )
231
+ return False
232
+
233
+ if model_settings["use_ocr_model"]:
234
+ if overall_ocr_res is not None:
235
+ logging.error(
236
+ "The OCR models have already been initialized, please set use_ocr_model=False"
237
+ )
238
+ return False
239
+
240
+ if not self.use_ocr_model:
241
+ logging.error(
242
+ "Set use_ocr_model, but the models for OCR are not initialized."
243
+ )
244
+ return False
245
+ else:
246
+ if overall_ocr_res is None:
247
+ logging.error("Set use_ocr_model=False, but no OCR results were found.")
248
+ return False
249
+ return True
250
+
251
+ def predict_doc_preprocessor_res(
252
+ self, image_array: np.ndarray, input_params: dict
253
+ ) -> Tuple[DocPreprocessorResult, np.ndarray]:
254
+ """
255
+ Preprocess the document image based on input parameters.
256
+
257
+ Args:
258
+ image_array (np.ndarray): The input image array.
259
+ input_params (dict): Dictionary containing preprocessing parameters.
260
+
261
+ Returns:
262
+ tuple[DocPreprocessorResult, np.ndarray]: A tuple containing the preprocessing
263
+ result dictionary and the processed image array.
264
+ """
265
+ if input_params["use_doc_preprocessor"]:
266
+ use_doc_orientation_classify = input_params["use_doc_orientation_classify"]
267
+ use_doc_unwarping = input_params["use_doc_unwarping"]
268
+ doc_preprocessor_res = next(
269
+ self.doc_preprocessor_pipeline(
270
+ image_array,
271
+ use_doc_orientation_classify=use_doc_orientation_classify,
272
+ use_doc_unwarping=use_doc_unwarping,
273
+ )
274
+ )
275
+ doc_preprocessor_image = doc_preprocessor_res["output_img"]
276
+ else:
277
+ doc_preprocessor_res = {}
278
+ doc_preprocessor_image = image_array
279
+ return doc_preprocessor_res, doc_preprocessor_image
280
+
281
+ def extract_results(self, pred, task):
282
+ if task == "cls":
283
+ return pred["label_names"][np.argmax(pred["scores"])]
284
+ elif task == "det":
285
+ threshold = 0.0
286
+ result = []
287
+ cell_score = []
288
+ if "boxes" in pred and isinstance(pred["boxes"], list):
289
+ for box in pred["boxes"]:
290
+ if isinstance(box, dict) and "score" in box and "coordinate" in box:
291
+ score = box["score"]
292
+ coordinate = box["coordinate"]
293
+ if isinstance(score, float) and score > threshold:
294
+ result.append(coordinate)
295
+ cell_score.append(score)
296
+ return result, cell_score
297
+ elif task == "table_stru":
298
+ return pred["structure"]
299
+ else:
300
+ return None
301
+
302
+ def cells_det_results_nms(
303
+ self, cells_det_results, cells_det_scores, cells_det_threshold=0.3
304
+ ):
305
+ """
306
+ Apply Non-Maximum Suppression (NMS) on detection results to remove redundant overlapping bounding boxes.
307
+
308
+ Args:
309
+ cells_det_results (list): List of bounding boxes, each box is in format [x1, y1, x2, y2].
310
+ cells_det_scores (list): List of confidence scores corresponding to the bounding boxes.
311
+ cells_det_threshold (float): IoU threshold for suppression. Boxes with IoU greater than this threshold
312
+ will be suppressed. Default is 0.5.
313
+
314
+ Returns:
315
+ Tuple[list, list]: A tuple containing the list of bounding boxes and confidence scores after NMS,
316
+ while maintaining one-to-one correspondence.
317
+ """
318
+ # Convert lists to numpy arrays for efficient computation
319
+ boxes = np.array(cells_det_results)
320
+ scores = np.array(cells_det_scores)
321
+ # Initialize list for picked indices
322
+ picked_indices = []
323
+ # Get coordinates of bounding boxes
324
+ x1 = boxes[:, 0]
325
+ y1 = boxes[:, 1]
326
+ x2 = boxes[:, 2]
327
+ y2 = boxes[:, 3]
328
+ # Compute the area of the bounding boxes
329
+ areas = (x2 - x1) * (y2 - y1)
330
+ # Sort the bounding boxes by the confidence scores in descending order
331
+ order = scores.argsort()[::-1]
332
+ # Process the boxes
333
+ while order.size > 0:
334
+ # Index of the current highest score box
335
+ i = order[0]
336
+ picked_indices.append(i)
337
+ # Compute IoU between the highest score box and the rest
338
+ xx1 = np.maximum(x1[i], x1[order[1:]])
339
+ yy1 = np.maximum(y1[i], y1[order[1:]])
340
+ xx2 = np.minimum(x2[i], x2[order[1:]])
341
+ yy2 = np.minimum(y2[i], y2[order[1:]])
342
+ # Compute the width and height of the overlapping area
343
+ w = np.maximum(0.0, xx2 - xx1)
344
+ h = np.maximum(0.0, yy2 - yy1)
345
+ # Compute the ratio of overlap (IoU)
346
+ inter = w * h
347
+ ovr = inter / (areas[i] + areas[order[1:]] - inter)
348
+ # Indices of boxes with IoU less than threshold
349
+ inds = np.where(ovr <= cells_det_threshold)[0]
350
+ # Update order, only keep boxes with IoU less than threshold
351
+ order = order[
352
+ inds + 1
353
+ ] # inds shifted by 1 because order[0] is the current box
354
+ # Select the boxes and scores based on picked indices
355
+ final_boxes = boxes[picked_indices].tolist()
356
+ final_scores = scores[picked_indices].tolist()
357
+ return final_boxes, final_scores
358
+
359
+ def get_region_ocr_det_boxes(self, ocr_det_boxes, table_box):
360
+ """Adjust the coordinates of ocr_det_boxes that are fully inside table_box relative to table_box.
361
+
362
+ Args:
363
+ ocr_det_boxes (list of list): List of bounding boxes [x1, y1, x2, y2] in the original image.
364
+ table_box (list): Bounding box [x1, y1, x2, y2] of the target region in the original image.
365
+
366
+ Returns:
367
+ list of list: List of adjusted bounding boxes relative to table_box, for boxes fully inside table_box.
368
+ """
369
+ tol = 0
370
+ # Extract coordinates from table_box
371
+ x_min_t, y_min_t, x_max_t, y_max_t = table_box
372
+ adjusted_boxes = []
373
+ for box in ocr_det_boxes:
374
+ x_min_b, y_min_b, x_max_b, y_max_b = box
375
+ # Check if the box is fully inside table_box
376
+ if (
377
+ x_min_b + tol >= x_min_t
378
+ and y_min_b + tol >= y_min_t
379
+ and x_max_b - tol <= x_max_t
380
+ and y_max_b - tol <= y_max_t
381
+ ):
382
+ # Adjust the coordinates to be relative to table_box
383
+ adjusted_box = [
384
+ x_min_b - x_min_t, # Adjust x1
385
+ y_min_b - y_min_t, # Adjust y1
386
+ x_max_b - x_min_t, # Adjust x2
387
+ y_max_b - y_min_t, # Adjust y2
388
+ ]
389
+ adjusted_boxes.append(adjusted_box)
390
+ # Discard boxes not fully inside table_box
391
+ return adjusted_boxes
392
+
393
+ def cells_det_results_reprocessing(
394
+ self, cells_det_results, cells_det_scores, ocr_det_results, html_pred_boxes_nums
395
+ ):
396
+ """
397
+ Process and filter cells_det_results based on ocr_det_results and html_pred_boxes_nums.
398
+
399
+ Args:
400
+ cells_det_results (List[List[float]]): List of detected cell rectangles [[x1, y1, x2, y2], ...].
401
+ cells_det_scores (List[float]): List of confidence scores for each rectangle in cells_det_results.
402
+ ocr_det_results (List[List[float]]): List of OCR detected rectangles [[x1, y1, x2, y2], ...].
403
+ html_pred_boxes_nums (int): The desired number of rectangles in the final output.
404
+
405
+ Returns:
406
+ List[List[float]]: The processed list of rectangles.
407
+ """
408
+
409
+ # Function to compute IoU between two rectangles
410
+ def compute_iou(box1, box2):
411
+ """
412
+ Compute the Intersection over Union (IoU) between two rectangles.
413
+
414
+ Args:
415
+ box1 (array-like): [x1, y1, x2, y2] of the first rectangle.
416
+ box2 (array-like): [x1, y1, x2, y2] of the second rectangle.
417
+
418
+ Returns:
419
+ float: The IoU between the two rectangles.
420
+ """
421
+ # Determine the coordinates of the intersection rectangle
422
+ x_left = max(box1[0], box2[0])
423
+ y_top = max(box1[1], box2[1])
424
+ x_right = min(box1[2], box2[2])
425
+ y_bottom = min(box1[3], box2[3])
426
+ if x_right <= x_left or y_bottom <= y_top:
427
+ return 0.0
428
+ # Calculate the area of intersection rectangle
429
+ intersection_area = (x_right - x_left) * (y_bottom - y_top)
430
+ # Calculate the area of both rectangles
431
+ box1_area = (box1[2] - box1[0]) * (box1[3] - box1[1])
432
+ (box2[2] - box2[0]) * (box2[3] - box2[1])
433
+ # Calculate the IoU
434
+ iou = intersection_area / float(box1_area)
435
+ return iou
436
+
437
+ # Function to combine rectangles into N rectangles
438
+ @function_requires_deps("scikit-learn")
439
+ def combine_rectangles(rectangles, N):
440
+ """
441
+ Combine rectangles into N rectangles based on geometric proximity.
442
+
443
+ Args:
444
+ rectangles (list of list of int): A list of rectangles, each represented by [x1, y1, x2, y2].
445
+ N (int): The desired number of combined rectangles.
446
+
447
+ Returns:
448
+ list of list of int: A list of N combined rectangles.
449
+ """
450
+ # Number of input rectangles
451
+ num_rects = len(rectangles)
452
+ # If N is greater than or equal to the number of rectangles, return the original rectangles
453
+ if N >= num_rects:
454
+ return rectangles
455
+ # Compute the center points of the rectangles
456
+ centers = np.array(
457
+ [
458
+ [
459
+ (rect[0] + rect[2]) / 2, # Center x-coordinate
460
+ (rect[1] + rect[3]) / 2, # Center y-coordinate
461
+ ]
462
+ for rect in rectangles
463
+ ]
464
+ )
465
+ # Perform KMeans clustering on the center points to group them into N clusters
466
+ kmeans = KMeans(n_clusters=N, random_state=0, n_init="auto")
467
+ labels = kmeans.fit_predict(centers)
468
+ # Initialize a list to store the combined rectangles
469
+ combined_rectangles = []
470
+ # For each cluster, compute the minimal bounding rectangle that covers all rectangles in the cluster
471
+ for i in range(N):
472
+ # Get the indices of rectangles that belong to cluster i
473
+ indices = np.where(labels == i)[0]
474
+ if len(indices) == 0:
475
+ # If no rectangles in this cluster, skip it
476
+ continue
477
+ # Extract the rectangles in cluster i
478
+ cluster_rects = np.array([rectangles[idx] for idx in indices])
479
+ # Compute the minimal x1, y1 (top-left corner) and maximal x2, y2 (bottom-right corner)
480
+ x1_min = np.min(cluster_rects[:, 0])
481
+ y1_min = np.min(cluster_rects[:, 1])
482
+ x2_max = np.max(cluster_rects[:, 2])
483
+ y2_max = np.max(cluster_rects[:, 3])
484
+ # Append the combined rectangle to the list
485
+ combined_rectangles.append([x1_min, y1_min, x2_max, y2_max])
486
+ return combined_rectangles
487
+
488
+ # Ensure that the inputs are numpy arrays for efficient computation
489
+ cells_det_results = np.array(cells_det_results)
490
+ cells_det_scores = np.array(cells_det_scores)
491
+ ocr_det_results = np.array(ocr_det_results)
492
+ more_cells_flag = False
493
+ if len(cells_det_results) == html_pred_boxes_nums:
494
+ return cells_det_results
495
+ # Step 1: If cells_det_results has more rectangles than html_pred_boxes_nums
496
+ elif len(cells_det_results) > html_pred_boxes_nums:
497
+ more_cells_flag = True
498
+ # Select the indices of the top html_pred_boxes_nums scores
499
+ top_indices = np.argsort(-cells_det_scores)[:html_pred_boxes_nums]
500
+ # Adjust the corresponding rectangles
501
+ cells_det_results = cells_det_results[top_indices].tolist()
502
+ # Threshold for IoU
503
+ iou_threshold = 0.6
504
+ # List to store ocr_miss_boxes
505
+ ocr_miss_boxes = []
506
+ # For each rectangle in ocr_det_results
507
+ for ocr_rect in ocr_det_results:
508
+ merge_ocr_box_iou = []
509
+ # Flag to indicate if ocr_rect has IoU >= threshold with any cell_rect
510
+ has_large_iou = False
511
+ # For each rectangle in cells_det_results
512
+ for cell_rect in cells_det_results:
513
+ # Compute IoU
514
+ iou = compute_iou(ocr_rect, cell_rect)
515
+ if iou > 0:
516
+ merge_ocr_box_iou.append(iou)
517
+ if (iou >= iou_threshold) or (sum(merge_ocr_box_iou) >= iou_threshold):
518
+ has_large_iou = True
519
+ break
520
+ if not has_large_iou:
521
+ ocr_miss_boxes.append(ocr_rect)
522
+ # If no ocr_miss_boxes, return cells_det_results
523
+ if len(ocr_miss_boxes) == 0:
524
+ final_results = (
525
+ cells_det_results
526
+ if more_cells_flag == True
527
+ else cells_det_results.tolist()
528
+ )
529
+ else:
530
+ if more_cells_flag == True:
531
+ final_results = combine_rectangles(
532
+ cells_det_results + ocr_miss_boxes, html_pred_boxes_nums
533
+ )
534
+ else:
535
+ # Need to combine ocr_miss_boxes into N rectangles
536
+ N = html_pred_boxes_nums - len(cells_det_results)
537
+ # Combine ocr_miss_boxes into N rectangles
538
+ ocr_supp_boxes = combine_rectangles(ocr_miss_boxes, N)
539
+ # Combine cells_det_results and ocr_supp_boxes
540
+ final_results = np.concatenate(
541
+ (cells_det_results, ocr_supp_boxes), axis=0
542
+ ).tolist()
543
+ if len(final_results) <= 0.6 * html_pred_boxes_nums:
544
+ final_results = combine_rectangles(ocr_det_results, html_pred_boxes_nums)
545
+ return final_results
546
+
547
+ def split_ocr_bboxes_by_table_cells(
548
+ self, cells_det_results, overall_ocr_res, ori_img, k=2
549
+ ):
550
+ """
551
+ Split OCR bounding boxes based on table cell boundaries when they span multiple cells horizontally.
552
+
553
+ Args:
554
+ cells_det_results (list): List of cell bounding boxes in format [x1, y1, x2, y2]
555
+ overall_ocr_res (dict): Dictionary containing OCR results with keys:
556
+ - 'rec_boxes': OCR bounding boxes (will be converted to list)
557
+ - 'rec_texts': OCR recognized texts
558
+ ori_img (np.array): Original input image array
559
+ k (int): Threshold for determining when to split (minimum number of cells spanned)
560
+
561
+ Returns:
562
+ dict: Modified overall_ocr_res with split boxes and texts
563
+ """
564
+
565
+ def calculate_iou(box1, box2):
566
+ """
567
+ Calculate Intersection over Union (IoU) between two bounding boxes.
568
+
569
+ Args:
570
+ box1 (list): [x1, y1, x2, y2]
571
+ box2 (list): [x1, y1, x2, y2]
572
+
573
+ Returns:
574
+ float: IoU value
575
+ """
576
+ # Determine intersection coordinates
577
+ x_left = max(box1[0], box2[0])
578
+ y_top = max(box1[1], box2[1])
579
+ x_right = min(box1[2], box2[2])
580
+ y_bottom = min(box1[3], box2[3])
581
+ if x_right < x_left or y_bottom < y_top:
582
+ return 0.0
583
+ # Calculate areas
584
+ intersection_area = (x_right - x_left) * (y_bottom - y_top)
585
+ box1_area = (box1[2] - box1[0]) * (box1[3] - box1[1])
586
+ box2_area = (box2[2] - box2[0]) * (box2[3] - box2[1])
587
+ # return intersection_area / float(box1_area + box2_area - intersection_area)
588
+ return intersection_area / box2_area
589
+
590
+ def get_overlapping_cells(ocr_box, cells):
591
+ """
592
+ Find cells that overlap significantly with the OCR box (IoU > 0.5).
593
+
594
+ Args:
595
+ ocr_box (list): OCR bounding box [x1, y1, x2, y2]
596
+ cells (list): List of cell bounding boxes
597
+
598
+ Returns:
599
+ list: Indices of overlapping cells, sorted by x-coordinate
600
+ """
601
+ overlapping = []
602
+ for idx, cell in enumerate(cells):
603
+ if calculate_iou(ocr_box, cell) > 0.5:
604
+ overlapping.append(idx)
605
+ # Sort overlapping cells by their x-coordinate (left to right)
606
+ overlapping.sort(key=lambda i: cells[i][0])
607
+ return overlapping
608
+
609
+ def split_box_by_cells(ocr_box, cell_indices, cells):
610
+ """
611
+ Split OCR box vertically at cell boundaries.
612
+
613
+ Args:
614
+ ocr_box (list): Original OCR box [x1, y1, x2, y2]
615
+ cell_indices (list): Indices of cells to split by
616
+ cells (list): All cell bounding boxes
617
+
618
+ Returns:
619
+ list: List of split boxes
620
+ """
621
+ if not cell_indices:
622
+ return [ocr_box]
623
+ split_boxes = []
624
+ cells_to_split = [cells[i] for i in cell_indices]
625
+ if ocr_box[0] < cells_to_split[0][0]:
626
+ split_boxes.append(
627
+ [ocr_box[0], ocr_box[1], cells_to_split[0][0], ocr_box[3]]
628
+ )
629
+ for i in range(len(cells_to_split)):
630
+ current_cell = cells_to_split[i]
631
+ split_boxes.append(
632
+ [
633
+ max(ocr_box[0], current_cell[0]),
634
+ ocr_box[1],
635
+ min(ocr_box[2], current_cell[2]),
636
+ ocr_box[3],
637
+ ]
638
+ )
639
+ if i < len(cells_to_split) - 1:
640
+ next_cell = cells_to_split[i + 1]
641
+ if current_cell[2] < next_cell[0]:
642
+ split_boxes.append(
643
+ [current_cell[2], ocr_box[1], next_cell[0], ocr_box[3]]
644
+ )
645
+ last_cell = cells_to_split[-1]
646
+ if last_cell[2] < ocr_box[2]:
647
+ split_boxes.append([last_cell[2], ocr_box[1], ocr_box[2], ocr_box[3]])
648
+ unique_boxes = []
649
+ seen = set()
650
+ for box in split_boxes:
651
+ box_tuple = tuple(box)
652
+ if box_tuple not in seen:
653
+ seen.add(box_tuple)
654
+ unique_boxes.append(box)
655
+
656
+ return unique_boxes
657
+
658
+ # Convert OCR boxes to list if needed
659
+ if hasattr(overall_ocr_res["rec_boxes"], "tolist"):
660
+ ocr_det_results = overall_ocr_res["rec_boxes"].tolist()
661
+ else:
662
+ ocr_det_results = overall_ocr_res["rec_boxes"]
663
+ ocr_texts = overall_ocr_res["rec_texts"]
664
+
665
+ # Make copies to modify
666
+ new_boxes = []
667
+ new_texts = []
668
+
669
+ # Process each OCR box
670
+ i = 0
671
+ while i < len(ocr_det_results):
672
+ ocr_box = ocr_det_results[i]
673
+ text = ocr_texts[i]
674
+ # Find cells that significantly overlap with this OCR box
675
+ overlapping_cells = get_overlapping_cells(ocr_box, cells_det_results)
676
+ # Check if we need to split (spans >= k cells)
677
+ if len(overlapping_cells) >= k:
678
+ # Split the box at cell boundaries
679
+ split_boxes = split_box_by_cells(
680
+ ocr_box, overlapping_cells, cells_det_results
681
+ )
682
+ # Process each split box
683
+ split_texts = []
684
+ for box in split_boxes:
685
+ x1, y1, x2, y2 = int(box[0]), int(box[1]), int(box[2]), int(box[3])
686
+ if y2 - y1 > 1 and x2 - x1 > 1:
687
+ ocr_result = next(
688
+ self.general_ocr_pipeline.text_rec_model(
689
+ ori_img[y1:y2, x1:x2, :]
690
+ )
691
+ )
692
+ # Extract the recognized text from the OCR result
693
+ if "rec_text" in ocr_result:
694
+ result = ocr_result[
695
+ "rec_text"
696
+ ] # Assumes "rec_texts" contains a single string
697
+ else:
698
+ result = ""
699
+ else:
700
+ result = ""
701
+ split_texts.append(result)
702
+ # Add split boxes and texts to results
703
+ new_boxes.extend(split_boxes)
704
+ new_texts.extend(split_texts)
705
+ else:
706
+ # Keep original box and text
707
+ new_boxes.append(ocr_box)
708
+ new_texts.append(text)
709
+ i += 1
710
+
711
+ # Update the results dictionary
712
+ overall_ocr_res["rec_boxes"] = new_boxes
713
+ overall_ocr_res["rec_texts"] = new_texts
714
+
715
+ return overall_ocr_res
716
+
717
+ def gen_ocr_with_table_cells(self, ori_img, cells_bboxes):
718
+ """
719
+ Splits OCR bounding boxes by table cells and retrieves text.
720
+
721
+ Args:
722
+ ori_img (ndarray): The original image from which text regions will be extracted.
723
+ cells_bboxes (list or ndarray): Detected cell bounding boxes to extract text from.
724
+
725
+ Returns:
726
+ list: A list containing the recognized texts from each cell.
727
+ """
728
+
729
+ # Check if cells_bboxes is a list and convert it if not.
730
+ if not isinstance(cells_bboxes, list):
731
+ cells_bboxes = cells_bboxes.tolist()
732
+ texts_list = [] # Initialize a list to store the recognized texts.
733
+ # Process each bounding box provided in cells_bboxes.
734
+ for i in range(len(cells_bboxes)):
735
+ # Extract and round up the coordinates of the bounding box.
736
+ x1, y1, x2, y2 = [math.ceil(k) for k in cells_bboxes[i]]
737
+ # Perform OCR on the defined region of the image and get the recognized text.
738
+ if y2 - y1 > 1 and x2 - x1 > 1:
739
+ rec_te = next(self.general_ocr_pipeline(ori_img[y1:y2, x1:x2, :]))
740
+ # Concatenate the texts and append them to the texts_list.
741
+ texts_list.append("".join(rec_te["rec_texts"]))
742
+ # Return the list of recognized texts from each cell.
743
+ return texts_list
744
+
745
+ def map_cells_to_original_image(
746
+ self, detections, table_angle, img_width, img_height
747
+ ):
748
+ """
749
+ Map bounding boxes from the rotated image back to the original image.
750
+
751
+ Parameters:
752
+ - detections: list of numpy arrays, each containing bounding box coordinates [x1, y1, x2, y2]
753
+ - table_angle: rotation angle in degrees (90, 180, or 270)
754
+ - width_orig: width of the original image (img1)
755
+ - height_orig: height of the original image (img1)
756
+
757
+ Returns:
758
+ - mapped_detections: list of numpy arrays with mapped bounding box coordinates
759
+ """
760
+
761
+ mapped_detections = []
762
+ for i in range(len(detections)):
763
+ tbx1, tby1, tbx2, tby2 = (
764
+ detections[i][0],
765
+ detections[i][1],
766
+ detections[i][2],
767
+ detections[i][3],
768
+ )
769
+ if table_angle == "270":
770
+ new_x1, new_y1 = tby1, img_width - tbx2
771
+ new_x2, new_y2 = tby2, img_width - tbx1
772
+ elif table_angle == "180":
773
+ new_x1, new_y1 = img_width - tbx2, img_height - tby2
774
+ new_x2, new_y2 = img_width - tbx1, img_height - tby1
775
+ elif table_angle == "90":
776
+ new_x1, new_y1 = img_height - tby2, tbx1
777
+ new_x2, new_y2 = img_height - tby1, tbx2
778
+ new_box = np.array([new_x1, new_y1, new_x2, new_y2])
779
+ mapped_detections.append(new_box)
780
+ return mapped_detections
781
+
782
+ def split_string_by_keywords(self, html_string):
783
+ """
784
+ Split HTML string by keywords.
785
+
786
+ Args:
787
+ html_string (str): The HTML string.
788
+ Returns:
789
+ split_html (list): The list of html keywords.
790
+ """
791
+
792
+ keywords = [
793
+ "<thead>",
794
+ "</thead>",
795
+ "<tbody>",
796
+ "</tbody>",
797
+ "<tr>",
798
+ "</tr>",
799
+ "<td>",
800
+ "<td",
801
+ ">",
802
+ "</td>",
803
+ 'colspan="2"',
804
+ 'colspan="3"',
805
+ 'colspan="4"',
806
+ 'colspan="5"',
807
+ 'colspan="6"',
808
+ 'colspan="7"',
809
+ 'colspan="8"',
810
+ 'colspan="9"',
811
+ 'colspan="10"',
812
+ 'colspan="11"',
813
+ 'colspan="12"',
814
+ 'colspan="13"',
815
+ 'colspan="14"',
816
+ 'colspan="15"',
817
+ 'colspan="16"',
818
+ 'colspan="17"',
819
+ 'colspan="18"',
820
+ 'colspan="19"',
821
+ 'colspan="20"',
822
+ 'rowspan="2"',
823
+ 'rowspan="3"',
824
+ 'rowspan="4"',
825
+ 'rowspan="5"',
826
+ 'rowspan="6"',
827
+ 'rowspan="7"',
828
+ 'rowspan="8"',
829
+ 'rowspan="9"',
830
+ 'rowspan="10"',
831
+ 'rowspan="11"',
832
+ 'rowspan="12"',
833
+ 'rowspan="13"',
834
+ 'rowspan="14"',
835
+ 'rowspan="15"',
836
+ 'rowspan="16"',
837
+ 'rowspan="17"',
838
+ 'rowspan="18"',
839
+ 'rowspan="19"',
840
+ 'rowspan="20"',
841
+ ]
842
+ regex_pattern = "|".join(re.escape(keyword) for keyword in keywords)
843
+ split_result = re.split(f"({regex_pattern})", html_string)
844
+ split_html = [part for part in split_result if part]
845
+ return split_html
846
+
847
+ def cluster_positions(self, positions, tolerance):
848
+ if not positions:
849
+ return []
850
+ positions = sorted(set(positions))
851
+ clustered = []
852
+ current_cluster = [positions[0]]
853
+ for pos in positions[1:]:
854
+ if abs(pos - current_cluster[-1]) <= tolerance:
855
+ current_cluster.append(pos)
856
+ else:
857
+ clustered.append(sum(current_cluster) / len(current_cluster))
858
+ current_cluster = [pos]
859
+ clustered.append(sum(current_cluster) / len(current_cluster))
860
+ return clustered
861
+
862
+ def trans_cells_det_results_to_html(self, cells_det_results):
863
+ """
864
+ Trans table cells bboxes to HTML.
865
+
866
+ Args:
867
+ cells_det_results (list): The table cells detection results.
868
+ Returns:
869
+ html (list): The list of html keywords.
870
+ """
871
+
872
+ tolerance = 5
873
+ x_coords = [x for cell in cells_det_results for x in (cell[0], cell[2])]
874
+ y_coords = [y for cell in cells_det_results for y in (cell[1], cell[3])]
875
+ x_positions = self.cluster_positions(x_coords, tolerance)
876
+ y_positions = self.cluster_positions(y_coords, tolerance)
877
+ x_position_to_index = {x: i for i, x in enumerate(x_positions)}
878
+ y_position_to_index = {y: i for i, y in enumerate(y_positions)}
879
+ num_rows = len(y_positions) - 1
880
+ num_cols = len(x_positions) - 1
881
+ grid = [[None for _ in range(num_cols)] for _ in range(num_rows)]
882
+ cells_info = []
883
+ cell_index = 0
884
+ cell_map = {}
885
+ for index, cell in enumerate(cells_det_results):
886
+ x1, y1, x2, y2 = cell
887
+ x1_idx = min(
888
+ range(len(x_positions)), key=lambda i: abs(x_positions[i] - x1)
889
+ )
890
+ x2_idx = min(
891
+ range(len(x_positions)), key=lambda i: abs(x_positions[i] - x2)
892
+ )
893
+ y1_idx = min(
894
+ range(len(y_positions)), key=lambda i: abs(y_positions[i] - y1)
895
+ )
896
+ y2_idx = min(
897
+ range(len(y_positions)), key=lambda i: abs(y_positions[i] - y2)
898
+ )
899
+ col_start = min(x1_idx, x2_idx)
900
+ col_end = max(x1_idx, x2_idx)
901
+ row_start = min(y1_idx, y2_idx)
902
+ row_end = max(y1_idx, y2_idx)
903
+ rowspan = row_end - row_start
904
+ colspan = col_end - col_start
905
+ if rowspan == 0:
906
+ rowspan = 1
907
+ if colspan == 0:
908
+ colspan = 1
909
+ cells_info.append(
910
+ {
911
+ "row_start": row_start,
912
+ "col_start": col_start,
913
+ "rowspan": rowspan,
914
+ "colspan": colspan,
915
+ "content": "",
916
+ }
917
+ )
918
+ for r in range(row_start, row_start + rowspan):
919
+ for c in range(col_start, col_start + colspan):
920
+ key = (r, c)
921
+ if key in cell_map:
922
+ continue
923
+ else:
924
+ cell_map[key] = index
925
+ html = "<table><tbody>"
926
+ for r in range(num_rows):
927
+ html += "<tr>"
928
+ c = 0
929
+ while c < num_cols:
930
+ key = (r, c)
931
+ if key in cell_map:
932
+ cell_index = cell_map[key]
933
+ cell_info = cells_info[cell_index]
934
+ if cell_info["row_start"] == r and cell_info["col_start"] == c:
935
+ rowspan = cell_info["rowspan"]
936
+ colspan = cell_info["colspan"]
937
+ rowspan_attr = f' rowspan="{rowspan}"' if rowspan > 1 else ""
938
+ colspan_attr = f' colspan="{colspan}"' if colspan > 1 else ""
939
+ content = cell_info["content"]
940
+ html += f"<td{rowspan_attr}{colspan_attr}>{content}</td>"
941
+ c += cell_info["colspan"]
942
+ else:
943
+ html += "<td></td>"
944
+ c += 1
945
+ html += "</tr>"
946
+ html += "</tbody></table>"
947
+ html = self.split_string_by_keywords(html)
948
+ return html
949
+
950
+ def predict_single_table_recognition_res(
951
+ self,
952
+ image_array: np.ndarray,
953
+ overall_ocr_res: OCRResult,
954
+ table_box: list,
955
+ use_e2e_wired_table_rec_model: bool = False,
956
+ use_e2e_wireless_table_rec_model: bool = False,
957
+ use_wired_table_cells_trans_to_html: bool = False,
958
+ use_wireless_table_cells_trans_to_html: bool = False,
959
+ use_ocr_results_with_table_cells: bool = True,
960
+ flag_find_nei_text: bool = True,
961
+ ) -> SingleTableRecognitionResult:
962
+ """
963
+ Predict table recognition results from an image array, layout detection results, and OCR results.
964
+
965
+ Args:
966
+ image_array (np.ndarray): The input image represented as a numpy array.
967
+ overall_ocr_res (OCRResult): Overall OCR result obtained after running the OCR pipeline.
968
+ The overall OCR results containing text recognition information.
969
+ table_box (list): The table box coordinates.
970
+ use_e2e_wired_table_rec_model (bool): Whether to use end-to-end wired table recognition model.
971
+ use_e2e_wireless_table_rec_model (bool): Whether to use end-to-end wireless table recognition model.
972
+ use_wired_table_cells_trans_to_html (bool): Whether to use wired table cells trans to HTML.
973
+ use_wireless_table_cells_trans_to_html (bool): Whether to use wireless table cells trans to HTML.
974
+ use_ocr_results_with_table_cells (bool): Whether to use OCR results processed by table cells.
975
+ flag_find_nei_text (bool): Whether to find neighboring text.
976
+ Returns:
977
+ SingleTableRecognitionResult: single table recognition result.
978
+ """
979
+
980
+ table_cls_pred = next(self.table_cls_model(image_array))
981
+ table_cls_result = self.extract_results(table_cls_pred, "cls")
982
+ use_e2e_model = False
983
+ cells_trans_to_html = False
984
+
985
+ if table_cls_result == "wired_table":
986
+ if use_wired_table_cells_trans_to_html == True:
987
+ cells_trans_to_html = True
988
+ else:
989
+ table_structure_pred = next(self.wired_table_rec_model(image_array))
990
+ if use_e2e_wired_table_rec_model == True:
991
+ use_e2e_model = True
992
+ if cells_trans_to_html == True:
993
+ table_structure_pred = next(self.wired_table_rec_model(image_array))
994
+ else:
995
+ table_cells_pred = next(
996
+ self.wired_table_cells_detection_model(image_array, threshold=0.3)
997
+ ) # Setting the threshold to 0.3 can improve the accuracy of table cells detection.
998
+ # If you really want more or fewer table cells detection boxes, the threshold can be adjusted.
999
+ elif table_cls_result == "wireless_table":
1000
+ if use_wireless_table_cells_trans_to_html == True:
1001
+ cells_trans_to_html = True
1002
+ else:
1003
+ table_structure_pred = next(self.wireless_table_rec_model(image_array))
1004
+ if use_e2e_wireless_table_rec_model == True:
1005
+ use_e2e_model = True
1006
+ if cells_trans_to_html == True:
1007
+ table_structure_pred = next(
1008
+ self.wireless_table_rec_model(image_array)
1009
+ )
1010
+ else:
1011
+ table_cells_pred = next(
1012
+ self.wireless_table_cells_detection_model(
1013
+ image_array, threshold=0.3
1014
+ )
1015
+ ) # Setting the threshold to 0.3 can improve the accuracy of table cells detection.
1016
+ # If you really want more or fewer table cells detection boxes, the threshold can be adjusted.
1017
+
1018
+ if use_e2e_model == False:
1019
+ table_cells_result, table_cells_score = self.extract_results(
1020
+ table_cells_pred, "det"
1021
+ )
1022
+ table_cells_result, table_cells_score = self.cells_det_results_nms(
1023
+ table_cells_result, table_cells_score
1024
+ )
1025
+ if cells_trans_to_html == True:
1026
+ table_structure_result = self.trans_cells_det_results_to_html(
1027
+ table_cells_result
1028
+ )
1029
+ else:
1030
+ table_structure_result = self.extract_results(
1031
+ table_structure_pred, "table_stru"
1032
+ )
1033
+ ocr_det_boxes = self.get_region_ocr_det_boxes(
1034
+ overall_ocr_res["rec_boxes"].tolist(), table_box
1035
+ )
1036
+ table_cells_result = self.cells_det_results_reprocessing(
1037
+ table_cells_result,
1038
+ table_cells_score,
1039
+ ocr_det_boxes,
1040
+ len(table_structure_pred["bbox"]),
1041
+ )
1042
+ if use_ocr_results_with_table_cells == True:
1043
+ if self.cells_split_ocr == True:
1044
+ table_box_copy = np.array([table_box])
1045
+ table_ocr_pred = get_sub_regions_ocr_res(
1046
+ overall_ocr_res, table_box_copy
1047
+ )
1048
+ table_ocr_pred = self.split_ocr_bboxes_by_table_cells(
1049
+ table_cells_result, table_ocr_pred, image_array
1050
+ )
1051
+ cells_texts_list = []
1052
+ else:
1053
+ cells_texts_list = self.gen_ocr_with_table_cells(
1054
+ image_array, table_cells_result
1055
+ )
1056
+ table_ocr_pred = {}
1057
+ else:
1058
+ table_ocr_pred = {}
1059
+ cells_texts_list = []
1060
+ single_table_recognition_res = get_table_recognition_res(
1061
+ table_box,
1062
+ table_structure_result,
1063
+ table_cells_result,
1064
+ overall_ocr_res,
1065
+ table_ocr_pred,
1066
+ cells_texts_list,
1067
+ use_ocr_results_with_table_cells,
1068
+ self.cells_split_ocr,
1069
+ )
1070
+ else:
1071
+ cells_texts_list = []
1072
+ use_ocr_results_with_table_cells = False
1073
+ table_cells_result_e2e = table_structure_pred["bbox"]
1074
+ table_cells_result_e2e = [
1075
+ [rect[0], rect[1], rect[4], rect[5]] for rect in table_cells_result_e2e
1076
+ ]
1077
+ if cells_trans_to_html == True:
1078
+ table_structure_pred["structure"] = (
1079
+ self.trans_cells_det_results_to_html(table_cells_result_e2e)
1080
+ )
1081
+ single_table_recognition_res = get_table_recognition_res_e2e(
1082
+ table_box,
1083
+ table_structure_pred,
1084
+ overall_ocr_res,
1085
+ cells_texts_list,
1086
+ use_ocr_results_with_table_cells,
1087
+ )
1088
+
1089
+ neighbor_text = ""
1090
+ if flag_find_nei_text:
1091
+ match_idx_list = get_neighbor_boxes_idx(
1092
+ overall_ocr_res["rec_boxes"], table_box
1093
+ )
1094
+ if len(match_idx_list) > 0:
1095
+ for idx in match_idx_list:
1096
+ neighbor_text += overall_ocr_res["rec_texts"][idx] + "; "
1097
+ single_table_recognition_res["neighbor_texts"] = neighbor_text
1098
+ return single_table_recognition_res
1099
+
1100
+ def predict(
1101
+ self,
1102
+ input: Union[str, List[str], np.ndarray, List[np.ndarray]],
1103
+ use_doc_orientation_classify: Optional[bool] = None,
1104
+ use_doc_unwarping: Optional[bool] = None,
1105
+ use_layout_detection: Optional[bool] = None,
1106
+ use_ocr_model: Optional[bool] = None,
1107
+ overall_ocr_res: Optional[OCRResult] = None,
1108
+ layout_det_res: Optional[DetResult] = None,
1109
+ text_det_limit_side_len: Optional[int] = None,
1110
+ text_det_limit_type: Optional[str] = None,
1111
+ text_det_thresh: Optional[float] = None,
1112
+ text_det_box_thresh: Optional[float] = None,
1113
+ text_det_unclip_ratio: Optional[float] = None,
1114
+ text_rec_score_thresh: Optional[float] = None,
1115
+ use_e2e_wired_table_rec_model: bool = False,
1116
+ use_e2e_wireless_table_rec_model: bool = False,
1117
+ use_wired_table_cells_trans_to_html: bool = False,
1118
+ use_wireless_table_cells_trans_to_html: bool = False,
1119
+ use_table_orientation_classify: bool = True,
1120
+ use_ocr_results_with_table_cells: bool = True,
1121
+ **kwargs,
1122
+ ) -> TableRecognitionResult:
1123
+ """
1124
+ This function predicts the layout parsing result for the given input.
1125
+
1126
+ Args:
1127
+ input (Union[str, list[str], np.ndarray, list[np.ndarray]]): The input image(s) of pdf(s) to be processed.
1128
+ use_layout_detection (bool): Whether to use layout detection.
1129
+ use_doc_orientation_classify (bool): Whether to use document orientation classification.
1130
+ use_doc_unwarping (bool): Whether to use document unwarping.
1131
+ overall_ocr_res (OCRResult): The overall OCR result with convert_points_to_boxes information.
1132
+ It will be used if it is not None and use_ocr_model is False.
1133
+ layout_det_res (DetResult): The layout detection result.
1134
+ It will be used if it is not None and use_layout_detection is False.
1135
+ use_e2e_wired_table_rec_model (bool): Whether to use end-to-end wired table recognition model.
1136
+ use_e2e_wireless_table_rec_model (bool): Whether to use end-to-end wireless table recognition model.
1137
+ use_wired_table_cells_trans_to_html (bool): Whether to use wired table cells trans to HTML.
1138
+ use_wireless_table_cells_trans_to_html (bool): Whether to use wireless table cells trans to HTML.
1139
+ use_table_orientation_classify (bool): Whether to use table orientation classification.
1140
+ use_ocr_results_with_table_cells (bool): Whether to use OCR results processed by table cells.
1141
+ **kwargs: Additional keyword arguments.
1142
+
1143
+ Returns:
1144
+ TableRecognitionResult: The predicted table recognition result.
1145
+ """
1146
+
1147
+ self.cells_split_ocr = True
1148
+
1149
+ if use_table_orientation_classify == True and (
1150
+ self.table_orientation_classify_model is None
1151
+ ):
1152
+ assert self.table_orientation_classify_config != None
1153
+ self.table_orientation_classify_model = self.create_model(
1154
+ self.table_orientation_classify_config
1155
+ )
1156
+
1157
+ model_settings = self.get_model_settings(
1158
+ use_doc_orientation_classify,
1159
+ use_doc_unwarping,
1160
+ use_layout_detection,
1161
+ use_ocr_model,
1162
+ )
1163
+
1164
+ if not self.check_model_settings_valid(
1165
+ model_settings, overall_ocr_res, layout_det_res
1166
+ ):
1167
+ yield {"error": "the input params for model settings are invalid!"}
1168
+
1169
+ for img_id, batch_data in enumerate(self.batch_sampler(input)):
1170
+ image_array = self.img_reader(batch_data.instances)[0]
1171
+
1172
+ if model_settings["use_doc_preprocessor"]:
1173
+ doc_preprocessor_res = next(
1174
+ self.doc_preprocessor_pipeline(
1175
+ image_array,
1176
+ use_doc_orientation_classify=use_doc_orientation_classify,
1177
+ use_doc_unwarping=use_doc_unwarping,
1178
+ )
1179
+ )
1180
+ else:
1181
+ doc_preprocessor_res = {"output_img": image_array}
1182
+
1183
+ doc_preprocessor_image = doc_preprocessor_res["output_img"]
1184
+
1185
+ if model_settings["use_ocr_model"]:
1186
+ overall_ocr_res = next(
1187
+ self.general_ocr_pipeline(
1188
+ doc_preprocessor_image,
1189
+ text_det_limit_side_len=text_det_limit_side_len,
1190
+ text_det_limit_type=text_det_limit_type,
1191
+ text_det_thresh=text_det_thresh,
1192
+ text_det_box_thresh=text_det_box_thresh,
1193
+ text_det_unclip_ratio=text_det_unclip_ratio,
1194
+ text_rec_score_thresh=text_rec_score_thresh,
1195
+ )
1196
+ )
1197
+ elif self.general_ocr_pipeline is None and (
1198
+ (
1199
+ use_ocr_results_with_table_cells == True
1200
+ and self.cells_split_ocr == False
1201
+ )
1202
+ or use_table_orientation_classify == True
1203
+ ):
1204
+ assert self.general_ocr_config_bak != None
1205
+ self.general_ocr_pipeline = self.create_pipeline(
1206
+ self.general_ocr_config_bak
1207
+ )
1208
+
1209
+ if use_table_orientation_classify == False:
1210
+ table_angle = "0"
1211
+
1212
+ table_res_list = []
1213
+ table_region_id = 1
1214
+
1215
+ if not model_settings["use_layout_detection"] and layout_det_res is None:
1216
+ img_height, img_width = doc_preprocessor_image.shape[:2]
1217
+ table_box = [0, 0, img_width - 1, img_height - 1]
1218
+ if use_table_orientation_classify == True:
1219
+ table_angle = next(
1220
+ self.table_orientation_classify_model(doc_preprocessor_image)
1221
+ )["label_names"][0]
1222
+ if table_angle == "90":
1223
+ doc_preprocessor_image = np.rot90(doc_preprocessor_image, k=1)
1224
+ elif table_angle == "180":
1225
+ doc_preprocessor_image = np.rot90(doc_preprocessor_image, k=2)
1226
+ elif table_angle == "270":
1227
+ doc_preprocessor_image = np.rot90(doc_preprocessor_image, k=3)
1228
+ if table_angle in ["90", "180", "270"]:
1229
+ overall_ocr_res = next(
1230
+ self.general_ocr_pipeline(
1231
+ doc_preprocessor_image,
1232
+ text_det_limit_side_len=text_det_limit_side_len,
1233
+ text_det_limit_type=text_det_limit_type,
1234
+ text_det_thresh=text_det_thresh,
1235
+ text_det_box_thresh=text_det_box_thresh,
1236
+ text_det_unclip_ratio=text_det_unclip_ratio,
1237
+ text_rec_score_thresh=text_rec_score_thresh,
1238
+ )
1239
+ )
1240
+ tbx1, tby1, tbx2, tby2 = (
1241
+ table_box[0],
1242
+ table_box[1],
1243
+ table_box[2],
1244
+ table_box[3],
1245
+ )
1246
+ if table_angle == "90":
1247
+ new_x1, new_y1 = tby1, img_width - tbx2
1248
+ new_x2, new_y2 = tby2, img_width - tbx1
1249
+ elif table_angle == "180":
1250
+ new_x1, new_y1 = img_width - tbx2, img_height - tby2
1251
+ new_x2, new_y2 = img_width - tbx1, img_height - tby1
1252
+ elif table_angle == "270":
1253
+ new_x1, new_y1 = img_height - tby2, tbx1
1254
+ new_x2, new_y2 = img_height - tby1, tbx2
1255
+ table_box = [new_x1, new_y1, new_x2, new_y2]
1256
+ layout_det_res = {}
1257
+ single_table_rec_res = self.predict_single_table_recognition_res(
1258
+ doc_preprocessor_image,
1259
+ overall_ocr_res,
1260
+ table_box,
1261
+ use_e2e_wired_table_rec_model,
1262
+ use_e2e_wireless_table_rec_model,
1263
+ use_wired_table_cells_trans_to_html,
1264
+ use_wireless_table_cells_trans_to_html,
1265
+ use_ocr_results_with_table_cells,
1266
+ flag_find_nei_text=False,
1267
+ )
1268
+ single_table_rec_res["table_region_id"] = table_region_id
1269
+ if use_table_orientation_classify == True and table_angle != "0":
1270
+ img_height, img_width = doc_preprocessor_image.shape[:2]
1271
+ single_table_rec_res["cell_box_list"] = (
1272
+ self.map_cells_to_original_image(
1273
+ single_table_rec_res["cell_box_list"],
1274
+ table_angle,
1275
+ img_width,
1276
+ img_height,
1277
+ )
1278
+ )
1279
+ table_res_list.append(single_table_rec_res)
1280
+ table_region_id += 1
1281
+ else:
1282
+ if model_settings["use_layout_detection"]:
1283
+ layout_det_res = next(self.layout_det_model(doc_preprocessor_image))
1284
+ img_height, img_width = doc_preprocessor_image.shape[:2]
1285
+ for box_info in layout_det_res["boxes"]:
1286
+ if box_info["label"].lower() in ["table"]:
1287
+ crop_img_info = self._crop_by_boxes(
1288
+ doc_preprocessor_image, [box_info]
1289
+ )
1290
+ crop_img_info = crop_img_info[0]
1291
+ table_box = crop_img_info["box"]
1292
+ if use_table_orientation_classify == True:
1293
+ doc_preprocessor_image_copy = doc_preprocessor_image.copy()
1294
+ table_angle = next(
1295
+ self.table_orientation_classify_model(
1296
+ crop_img_info["img"]
1297
+ )
1298
+ )["label_names"][0]
1299
+ if table_angle == "90":
1300
+ crop_img_info["img"] = np.rot90(crop_img_info["img"], k=1)
1301
+ doc_preprocessor_image_copy = np.rot90(
1302
+ doc_preprocessor_image_copy, k=1
1303
+ )
1304
+ elif table_angle == "180":
1305
+ crop_img_info["img"] = np.rot90(crop_img_info["img"], k=2)
1306
+ doc_preprocessor_image_copy = np.rot90(
1307
+ doc_preprocessor_image_copy, k=2
1308
+ )
1309
+ elif table_angle == "270":
1310
+ crop_img_info["img"] = np.rot90(crop_img_info["img"], k=3)
1311
+ doc_preprocessor_image_copy = np.rot90(
1312
+ doc_preprocessor_image_copy, k=3
1313
+ )
1314
+ if table_angle in ["90", "180", "270"]:
1315
+ overall_ocr_res = next(
1316
+ self.general_ocr_pipeline(
1317
+ doc_preprocessor_image_copy,
1318
+ text_det_limit_side_len=text_det_limit_side_len,
1319
+ text_det_limit_type=text_det_limit_type,
1320
+ text_det_thresh=text_det_thresh,
1321
+ text_det_box_thresh=text_det_box_thresh,
1322
+ text_det_unclip_ratio=text_det_unclip_ratio,
1323
+ text_rec_score_thresh=text_rec_score_thresh,
1324
+ )
1325
+ )
1326
+ tbx1, tby1, tbx2, tby2 = (
1327
+ table_box[0],
1328
+ table_box[1],
1329
+ table_box[2],
1330
+ table_box[3],
1331
+ )
1332
+ if table_angle == "90":
1333
+ new_x1, new_y1 = tby1, img_width - tbx2
1334
+ new_x2, new_y2 = tby2, img_width - tbx1
1335
+ elif table_angle == "180":
1336
+ new_x1, new_y1 = img_width - tbx2, img_height - tby2
1337
+ new_x2, new_y2 = img_width - tbx1, img_height - tby1
1338
+ elif table_angle == "270":
1339
+ new_x1, new_y1 = img_height - tby2, tbx1
1340
+ new_x2, new_y2 = img_height - tby1, tbx2
1341
+ table_box = [new_x1, new_y1, new_x2, new_y2]
1342
+ single_table_rec_res = (
1343
+ self.predict_single_table_recognition_res(
1344
+ crop_img_info["img"],
1345
+ overall_ocr_res,
1346
+ table_box,
1347
+ use_e2e_wired_table_rec_model,
1348
+ use_e2e_wireless_table_rec_model,
1349
+ use_wired_table_cells_trans_to_html,
1350
+ use_wireless_table_cells_trans_to_html,
1351
+ use_ocr_results_with_table_cells,
1352
+ )
1353
+ )
1354
+ single_table_rec_res["table_region_id"] = table_region_id
1355
+ if (
1356
+ use_table_orientation_classify == True
1357
+ and table_angle != "0"
1358
+ ):
1359
+ img_height_copy, img_width_copy = (
1360
+ doc_preprocessor_image_copy.shape[:2]
1361
+ )
1362
+ single_table_rec_res["cell_box_list"] = (
1363
+ self.map_cells_to_original_image(
1364
+ single_table_rec_res["cell_box_list"],
1365
+ table_angle,
1366
+ img_width_copy,
1367
+ img_height_copy,
1368
+ )
1369
+ )
1370
+ table_res_list.append(single_table_rec_res)
1371
+ table_region_id += 1
1372
+
1373
+ single_img_res = {
1374
+ "input_path": batch_data.input_paths[0],
1375
+ "page_index": batch_data.page_indexes[0],
1376
+ "doc_preprocessor_res": doc_preprocessor_res,
1377
+ "layout_det_res": layout_det_res,
1378
+ "overall_ocr_res": overall_ocr_res,
1379
+ "table_res_list": table_res_list,
1380
+ "model_settings": model_settings,
1381
+ }
1382
+
1383
+ yield TableRecognitionResult(single_img_res)
1384
+
1385
+
1386
+ @pipeline_requires_extra("ocr")
1387
+ class TableRecognitionPipelineV2(AutoParallelImageSimpleInferencePipeline):
1388
+ entities = ["table_recognition_v2"]
1389
+
1390
+ @property
1391
+ def _pipeline_cls(self):
1392
+ return _TableRecognitionPipelineV2
1393
+
1394
+ def _get_batch_size(self, config):
1395
+ return 1