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,1143 @@
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
+ from typing import List, Tuple
16
+
17
+ import numpy as np
18
+
19
+ from ..result_v2 import LayoutParsingBlock, LayoutParsingRegion
20
+ from ..setting import BLOCK_LABEL_MAP, XYCUT_SETTINGS
21
+ from ..utils import calculate_projection_overlap_ratio
22
+
23
+
24
+ def get_nearest_edge_distance(
25
+ bbox1: List[int],
26
+ bbox2: List[int],
27
+ weight: List[float] = [1.0, 1.0, 1.0, 1.0],
28
+ ) -> Tuple[float]:
29
+ """
30
+ Calculate the nearest edge distance between two bounding boxes, considering directional weights.
31
+
32
+ Args:
33
+ bbox1 (list): The bounding box coordinates [x1, y1, x2, y2] of the input object.
34
+ bbox2 (list): The bounding box coordinates [x1', y1', x2', y2'] of the object to match against.
35
+ weight (list, optional): directional weights for the edge distances [left, right, up, down]. Defaults to [1, 1, 1, 1].
36
+
37
+ Returns:
38
+ float: The calculated minimum edge distance between the bounding boxes.
39
+ """
40
+ x1, y1, x2, y2 = bbox1
41
+ x1_prime, y1_prime, x2_prime, y2_prime = bbox2
42
+ min_x_distance, min_y_distance = 0, 0
43
+ horizontal_iou = calculate_projection_overlap_ratio(bbox1, bbox2, "horizontal")
44
+ vertical_iou = calculate_projection_overlap_ratio(bbox1, bbox2, "vertical")
45
+ if horizontal_iou > 0 and vertical_iou > 0:
46
+ return 0.0
47
+ if horizontal_iou == 0:
48
+ min_x_distance = min(abs(x1 - x2_prime), abs(x2 - x1_prime)) * (
49
+ weight[0] if x2 < x1_prime else weight[1]
50
+ )
51
+ if vertical_iou == 0:
52
+ min_y_distance = min(abs(y1 - y2_prime), abs(y2 - y1_prime)) * (
53
+ weight[2] if y2 < y1_prime else weight[3]
54
+ )
55
+
56
+ return min_x_distance + min_y_distance
57
+
58
+
59
+ def projection_by_bboxes(boxes: np.ndarray, axis: int) -> np.ndarray:
60
+ """
61
+ Generate a 1D projection histogram from bounding boxes along a specified axis.
62
+
63
+ Args:
64
+ boxes: A (N, 4) array of bounding boxes defined by [x_min, y_min, x_max, y_max].
65
+ axis: Axis for projection; 0 for horizontal (x-axis), 1 for vertical (y-axis).
66
+
67
+ Returns:
68
+ A 1D numpy array representing the projection histogram based on bounding box intervals.
69
+ """
70
+ assert axis in [0, 1]
71
+
72
+ max_length = np.max(boxes[:, axis::2])
73
+ if max_length < 0:
74
+ max_length = abs(np.min(boxes[:, axis::2]))
75
+
76
+ projection = np.zeros(max_length, dtype=int)
77
+
78
+ # Increment projection histogram over the interval defined by each bounding box
79
+ for start, end in boxes[:, axis::2]:
80
+ start = abs(start)
81
+ end = abs(end)
82
+ projection[start:end] += 1
83
+
84
+ return projection
85
+
86
+
87
+ def split_projection_profile(arr_values: np.ndarray, min_value: float, min_gap: float):
88
+ """
89
+ Split the projection profile into segments based on specified thresholds.
90
+
91
+ Args:
92
+ arr_values: 1D array representing the projection profile.
93
+ min_value: Minimum value threshold to consider a profile segment significant.
94
+ min_gap: Minimum gap width to consider a separation between segments.
95
+
96
+ Returns:
97
+ A tuple of start and end indices for each segment that meets the criteria.
98
+ """
99
+ # Identify indices where the projection exceeds the minimum value
100
+ significant_indices = np.where(arr_values > min_value)[0]
101
+ if not len(significant_indices):
102
+ return
103
+
104
+ # Calculate gaps between significant indices
105
+ index_diffs = significant_indices[1:] - significant_indices[:-1]
106
+ gap_indices = np.where(index_diffs > min_gap)[0]
107
+
108
+ # Determine start and end indices of segments
109
+ segment_starts = np.insert(
110
+ significant_indices[gap_indices + 1],
111
+ 0,
112
+ significant_indices[0],
113
+ )
114
+ segment_ends = np.append(
115
+ significant_indices[gap_indices],
116
+ significant_indices[-1] + 1,
117
+ )
118
+
119
+ return segment_starts, segment_ends
120
+
121
+
122
+ def recursive_yx_cut(
123
+ boxes: np.ndarray, indices: List[int], res: List[int], min_gap: int = 1
124
+ ):
125
+ """
126
+ Recursively project and segment bounding boxes, starting with Y-axis and followed by X-axis.
127
+
128
+ Args:
129
+ boxes: A (N, 4) array representing bounding boxes.
130
+ indices: List of indices indicating the original position of boxes.
131
+ res: List to store indices of the final segmented bounding boxes.
132
+ min_gap (int): Minimum gap width to consider a separation between segments on the X-axis. Defaults to 1.
133
+
134
+ Returns:
135
+ None: This function modifies the `res` list in place.
136
+ """
137
+ assert len(boxes) == len(
138
+ indices
139
+ ), "The length of boxes and indices must be the same."
140
+
141
+ # Sort by y_min for Y-axis projection
142
+ y_sorted_indices = boxes[:, 1].argsort()
143
+ y_sorted_boxes = boxes[y_sorted_indices]
144
+ y_sorted_indices = np.array(indices)[y_sorted_indices]
145
+
146
+ # Perform Y-axis projection
147
+ y_projection = projection_by_bboxes(boxes=y_sorted_boxes, axis=1)
148
+ y_intervals = split_projection_profile(y_projection, 0, 1)
149
+
150
+ if not y_intervals:
151
+ return
152
+
153
+ # Process each segment defined by Y-axis projection
154
+ for y_start, y_end in zip(*y_intervals):
155
+ # Select boxes within the current y interval
156
+ y_interval_indices = (y_start <= y_sorted_boxes[:, 1]) & (
157
+ y_sorted_boxes[:, 1] < y_end
158
+ )
159
+ y_boxes_chunk = y_sorted_boxes[y_interval_indices]
160
+ y_indices_chunk = y_sorted_indices[y_interval_indices]
161
+
162
+ # Sort by x_min for X-axis projection
163
+ x_sorted_indices = y_boxes_chunk[:, 0].argsort()
164
+ x_sorted_boxes_chunk = y_boxes_chunk[x_sorted_indices]
165
+ x_sorted_indices_chunk = y_indices_chunk[x_sorted_indices]
166
+
167
+ # Perform X-axis projection
168
+ x_projection = projection_by_bboxes(boxes=x_sorted_boxes_chunk, axis=0)
169
+ x_intervals = split_projection_profile(x_projection, 0, min_gap)
170
+
171
+ if not x_intervals:
172
+ continue
173
+
174
+ # If X-axis cannot be further segmented, add current indices to results
175
+ if len(x_intervals[0]) == 1:
176
+ res.extend(x_sorted_indices_chunk)
177
+ continue
178
+
179
+ if np.min(x_sorted_boxes_chunk[:, 0]) < 0:
180
+ x_intervals = np.flip(x_intervals, axis=1)
181
+ # Recursively process each segment defined by X-axis projection
182
+ for x_start, x_end in zip(*x_intervals):
183
+ x_interval_indices = (x_start <= abs(x_sorted_boxes_chunk[:, 0])) & (
184
+ abs(x_sorted_boxes_chunk[:, 0]) < x_end
185
+ )
186
+ recursive_yx_cut(
187
+ x_sorted_boxes_chunk[x_interval_indices],
188
+ x_sorted_indices_chunk[x_interval_indices],
189
+ res,
190
+ )
191
+
192
+
193
+ def recursive_xy_cut(
194
+ boxes: np.ndarray, indices: List[int], res: List[int], min_gap: int = 1
195
+ ):
196
+ """
197
+ Recursively performs X-axis projection followed by Y-axis projection to segment bounding boxes.
198
+
199
+ Args:
200
+ boxes: A (N, 4) array representing bounding boxes with [x_min, y_min, x_max, y_max].
201
+ indices: A list of indices representing the position of boxes in the original data.
202
+ res: A list to store indices of bounding boxes that meet the criteria.
203
+ min_gap (int): Minimum gap width to consider a separation between segments on the X-axis. Defaults to 1.
204
+
205
+ Returns:
206
+ None: This function modifies the `res` list in place.
207
+ """
208
+ # Ensure boxes and indices have the same length
209
+ assert len(boxes) == len(
210
+ indices
211
+ ), "The length of boxes and indices must be the same."
212
+
213
+ # Sort by x_min to prepare for X-axis projection
214
+ x_sorted_indices = boxes[:, 0].argsort()
215
+ x_sorted_boxes = boxes[x_sorted_indices]
216
+ x_sorted_indices = np.array(indices)[x_sorted_indices]
217
+
218
+ # Perform X-axis projection
219
+ x_projection = projection_by_bboxes(boxes=x_sorted_boxes, axis=0)
220
+ x_intervals = split_projection_profile(x_projection, 0, 1)
221
+
222
+ if not x_intervals:
223
+ return
224
+
225
+ if np.min(x_sorted_boxes[:, 0]) < 0:
226
+ x_intervals = np.flip(x_intervals, axis=1)
227
+ # Process each segment defined by X-axis projection
228
+ for x_start, x_end in zip(*x_intervals):
229
+ # Select boxes within the current x interval
230
+ x_interval_indices = (x_start <= abs(x_sorted_boxes[:, 0])) & (
231
+ abs(x_sorted_boxes[:, 0]) < x_end
232
+ )
233
+ x_boxes_chunk = x_sorted_boxes[x_interval_indices]
234
+ x_indices_chunk = x_sorted_indices[x_interval_indices]
235
+
236
+ # Sort selected boxes by y_min to prepare for Y-axis projection
237
+ y_sorted_indices = x_boxes_chunk[:, 1].argsort()
238
+ y_sorted_boxes_chunk = x_boxes_chunk[y_sorted_indices]
239
+ y_sorted_indices_chunk = x_indices_chunk[y_sorted_indices]
240
+
241
+ # Perform Y-axis projection
242
+ y_projection = projection_by_bboxes(boxes=y_sorted_boxes_chunk, axis=1)
243
+ y_intervals = split_projection_profile(y_projection, 0, min_gap)
244
+
245
+ if not y_intervals:
246
+ continue
247
+
248
+ # If Y-axis cannot be further segmented, add current indices to results
249
+ if len(y_intervals[0]) == 1:
250
+ res.extend(y_sorted_indices_chunk)
251
+ continue
252
+
253
+ # Recursively process each segment defined by Y-axis projection
254
+ for y_start, y_end in zip(*y_intervals):
255
+ y_interval_indices = (y_start <= y_sorted_boxes_chunk[:, 1]) & (
256
+ y_sorted_boxes_chunk[:, 1] < y_end
257
+ )
258
+ recursive_xy_cut(
259
+ y_sorted_boxes_chunk[y_interval_indices],
260
+ y_sorted_indices_chunk[y_interval_indices],
261
+ res,
262
+ )
263
+
264
+
265
+ def reference_insert(
266
+ block: LayoutParsingBlock,
267
+ sorted_blocks: List[LayoutParsingBlock],
268
+ **kwargs,
269
+ ):
270
+ """
271
+ Insert reference block into sorted blocks based on the distance between the block and the nearest sorted block.
272
+
273
+ Args:
274
+ block: The block to insert into the sorted blocks.
275
+ sorted_blocks: The sorted blocks where the new block will be inserted.
276
+ config: Configuration dictionary containing parameters related to the layout parsing.
277
+ median_width: Median width of the document. Defaults to 0.0.
278
+
279
+ Returns:
280
+ sorted_blocks: The updated sorted blocks after insertion.
281
+ """
282
+ min_distance = float("inf")
283
+ nearest_sorted_block_index = 0
284
+ for sorted_block_idx, sorted_block in enumerate(sorted_blocks):
285
+ if sorted_block.bbox[3] <= block.bbox[1]:
286
+ distance = -(sorted_block.bbox[2] * 10 + sorted_block.bbox[3])
287
+ if distance < min_distance:
288
+ min_distance = distance
289
+ nearest_sorted_block_index = sorted_block_idx
290
+
291
+ sorted_blocks.insert(nearest_sorted_block_index + 1, block)
292
+ return sorted_blocks
293
+
294
+
295
+ def manhattan_insert(
296
+ block: LayoutParsingBlock,
297
+ sorted_blocks: List[LayoutParsingBlock],
298
+ **kwargs,
299
+ ):
300
+ """
301
+ Insert a block into a sorted list of blocks based on the Manhattan distance between the block and the nearest sorted block.
302
+
303
+ Args:
304
+ block: The block to insert into the sorted blocks.
305
+ sorted_blocks: The sorted blocks where the new block will be inserted.
306
+ config: Configuration dictionary containing parameters related to the layout parsing.
307
+ median_width: Median width of the document. Defaults to 0.0.
308
+
309
+ Returns:
310
+ sorted_blocks: The updated sorted blocks after insertion.
311
+ """
312
+ min_distance = float("inf")
313
+ nearest_sorted_block_index = 0
314
+ for sorted_block_idx, sorted_block in enumerate(sorted_blocks):
315
+ distance = _manhattan_distance(block.bbox, sorted_block.bbox)
316
+ if distance < min_distance:
317
+ min_distance = distance
318
+ nearest_sorted_block_index = sorted_block_idx
319
+
320
+ sorted_blocks.insert(nearest_sorted_block_index + 1, block)
321
+ return sorted_blocks
322
+
323
+
324
+ def weighted_distance_insert(
325
+ block: LayoutParsingBlock,
326
+ sorted_blocks: List[LayoutParsingBlock],
327
+ region: LayoutParsingRegion,
328
+ ):
329
+ """
330
+ Insert a block into a sorted list of blocks based on the weighted distance between the block and the nearest sorted block.
331
+
332
+ Args:
333
+ block: The block to insert into the sorted blocks.
334
+ sorted_blocks: The sorted blocks where the new block will be inserted.
335
+ config: Configuration dictionary containing parameters related to the layout parsing.
336
+ median_width: Median width of the document. Defaults to 0.0.
337
+
338
+ Returns:
339
+ sorted_blocks: The updated sorted blocks after insertion.
340
+ """
341
+
342
+ tolerance_len = XYCUT_SETTINGS["edge_distance_compare_tolerance_len"]
343
+ x1, y1, x2, y2 = block.bbox
344
+ min_weighted_distance, min_edge_distance, min_up_edge_distance = (
345
+ float("inf"),
346
+ float("inf"),
347
+ float("inf"),
348
+ )
349
+ nearest_sorted_block_index = 0
350
+ for sorted_block_idx, sorted_block in enumerate(sorted_blocks):
351
+
352
+ x1_prime, y1_prime, x2_prime, y2_prime = sorted_block.bbox
353
+
354
+ # Calculate edge distance
355
+ weight = _get_weights(block.order_label, block.direction)
356
+ edge_distance = get_nearest_edge_distance(block.bbox, sorted_block.bbox, weight)
357
+
358
+ if block.label in BLOCK_LABEL_MAP["doc_title_labels"]:
359
+ disperse = max(1, region.text_line_width)
360
+ tolerance_len = max(tolerance_len, disperse)
361
+ if block.label == "abstract":
362
+ tolerance_len *= 2
363
+ edge_distance = max(0.1, edge_distance) * 10
364
+
365
+ # Calculate up edge distances
366
+ up_edge_distance = y1_prime if region.direction == "horizontal" else -x2_prime
367
+ left_edge_distance = x1_prime if region.direction == "horizontal" else y1_prime
368
+ is_below_sorted_block = (
369
+ y2_prime < y1 if region.direction == "horizontal" else x1_prime > x2
370
+ )
371
+
372
+ if (
373
+ block.label not in BLOCK_LABEL_MAP["unordered_labels"]
374
+ or block.label in BLOCK_LABEL_MAP["doc_title_labels"]
375
+ or block.label in BLOCK_LABEL_MAP["paragraph_title_labels"]
376
+ or block.label in BLOCK_LABEL_MAP["vision_labels"]
377
+ ) and is_below_sorted_block:
378
+ up_edge_distance = -up_edge_distance
379
+ left_edge_distance = -left_edge_distance
380
+
381
+ if abs(min_up_edge_distance - up_edge_distance) <= tolerance_len:
382
+ up_edge_distance = min_up_edge_distance
383
+
384
+ # Calculate weighted distance
385
+ weighted_distance = (
386
+ +edge_distance
387
+ * XYCUT_SETTINGS["distance_weight_map"].get("edge_weight", 10**4)
388
+ + up_edge_distance
389
+ * XYCUT_SETTINGS["distance_weight_map"].get("up_edge_weight", 1)
390
+ + left_edge_distance
391
+ * XYCUT_SETTINGS["distance_weight_map"].get("left_edge_weight", 0.0001)
392
+ )
393
+
394
+ min_edge_distance = min(edge_distance, min_edge_distance)
395
+ min_up_edge_distance = min(up_edge_distance, min_up_edge_distance)
396
+
397
+ if weighted_distance < min_weighted_distance:
398
+ nearest_sorted_block_index = sorted_block_idx
399
+ min_weighted_distance = weighted_distance
400
+ if y1 > y1_prime or (y1 == y1_prime and x1 > x1_prime):
401
+ nearest_sorted_block_index = sorted_block_idx + 1
402
+
403
+ sorted_blocks.insert(nearest_sorted_block_index, block)
404
+ return sorted_blocks
405
+
406
+
407
+ def insert_child_blocks(
408
+ block: LayoutParsingBlock,
409
+ block_idx: int,
410
+ sorted_blocks: List[LayoutParsingBlock],
411
+ ) -> List[LayoutParsingBlock]:
412
+ """
413
+ Insert child blocks of a block into the sorted blocks list.
414
+
415
+ Args:
416
+ block: The parent block whose child blocks need to be inserted.
417
+ block_idx: Index at which the parent block exists in the sorted blocks list.
418
+ sorted_blocks: Sorted blocks list where the child blocks are to be inserted.
419
+
420
+ Returns:
421
+ sorted_blocks: Updated sorted blocks list after inserting child blocks.
422
+ """
423
+ if block.child_blocks:
424
+ sub_blocks = block.get_child_blocks()
425
+ sub_blocks.append(block)
426
+ sub_blocks = sort_child_blocks(sub_blocks, sub_blocks[0].direction)
427
+ sorted_blocks[block_idx] = sub_blocks[0]
428
+ for block in sub_blocks[1:]:
429
+ block_idx += 1
430
+ sorted_blocks.insert(block_idx, block)
431
+ return sorted_blocks
432
+
433
+
434
+ def sort_child_blocks(blocks, direction="horizontal") -> List[LayoutParsingBlock]:
435
+ """
436
+ Sort child blocks based on their bounding box coordinates.
437
+
438
+ Args:
439
+ blocks: A list of LayoutParsingBlock objects representing the child blocks.
440
+ direction: direction of the blocks ('horizontal' or 'vertical'). Default is 'horizontal'.
441
+ Returns:
442
+ sorted_blocks: A sorted list of LayoutParsingBlock objects.
443
+ """
444
+ if direction == "horizontal":
445
+ # from top to bottom
446
+ blocks.sort(
447
+ key=lambda x: (
448
+ x.bbox[1], # y_min
449
+ x.bbox[0], # x_min
450
+ x.bbox[1] ** 2 + x.bbox[0] ** 2, # distance with (0,0)
451
+ ),
452
+ )
453
+ else:
454
+ # from right to left
455
+ blocks.sort(
456
+ key=lambda x: (
457
+ -x.bbox[0], # x_min
458
+ x.bbox[1], # y_min
459
+ x.bbox[1] ** 2 - x.bbox[0] ** 2, # distance with (max,0)
460
+ ),
461
+ )
462
+ return blocks
463
+
464
+
465
+ def _get_weights(label, direction="horizontal"):
466
+ """Define weights based on the label and direction."""
467
+ if label == "doc_title":
468
+ return (
469
+ [1, 0.1, 0.1, 1] if direction == "horizontal" else [0.2, 0.1, 1, 1]
470
+ ) # left-down , right-left
471
+ elif label in [
472
+ "paragraph_title",
473
+ "table_title",
474
+ "abstract",
475
+ "image",
476
+ "seal",
477
+ "chart",
478
+ "figure",
479
+ ]:
480
+ return [1, 1, 0.1, 1] # down
481
+ else:
482
+ return [1, 1, 1, 0.1] # up
483
+
484
+
485
+ def _manhattan_distance(
486
+ point1: Tuple[float, float],
487
+ point2: Tuple[float, float],
488
+ weight_x: float = 1.0,
489
+ weight_y: float = 1.0,
490
+ ) -> float:
491
+ """
492
+ Calculate the weighted Manhattan distance between two points.
493
+
494
+ Args:
495
+ point1 (Tuple[float, float]): The first point as (x, y).
496
+ point2 (Tuple[float, float]): The second point as (x, y).
497
+ weight_x (float): The weight for the x-axis distance. Default is 1.0.
498
+ weight_y (float): The weight for the y-axis distance. Default is 1.0.
499
+
500
+ Returns:
501
+ float: The weighted Manhattan distance between the two points.
502
+ """
503
+ return weight_x * abs(point1[0] - point2[0]) + weight_y * abs(point1[1] - point2[1])
504
+
505
+
506
+ def sort_normal_blocks(blocks, text_line_height, text_line_width, region_direction):
507
+ if region_direction == "horizontal":
508
+ blocks.sort(
509
+ key=lambda x: (
510
+ x.bbox[1] // text_line_height,
511
+ x.bbox[0] // text_line_width,
512
+ x.bbox[1] ** 2 + x.bbox[0] ** 2,
513
+ ),
514
+ )
515
+ else:
516
+ blocks.sort(
517
+ key=lambda x: (
518
+ -x.bbox[0] // text_line_width,
519
+ x.bbox[1] // text_line_height,
520
+ x.bbox[1] ** 2 - x.bbox[2] ** 2, # distance with (max,0)
521
+ ),
522
+ )
523
+ return blocks
524
+
525
+
526
+ def sort_normal_blocks(blocks, text_line_height, text_line_width, region_direction):
527
+ if region_direction == "horizontal":
528
+ blocks.sort(
529
+ key=lambda x: (
530
+ x.bbox[1] // text_line_height,
531
+ x.bbox[0] // text_line_width,
532
+ x.bbox[1] ** 2 + x.bbox[0] ** 2,
533
+ ),
534
+ )
535
+ else:
536
+ blocks.sort(
537
+ key=lambda x: (
538
+ -x.bbox[0] // text_line_width,
539
+ x.bbox[1] // text_line_height,
540
+ -(x.bbox[2] ** 2 + x.bbox[1] ** 2),
541
+ ),
542
+ )
543
+ return blocks
544
+
545
+
546
+ def get_cut_blocks(blocks, cut_direction, cut_coordinates, mask_labels=[]):
547
+ """
548
+ Cut blocks based on the given cut direction and coordinates.
549
+
550
+ Args:
551
+ blocks (list): list of blocks to be cut.
552
+ cut_direction (str): cut direction, either "horizontal" or "vertical".
553
+ cut_coordinates (list): list of cut coordinates.
554
+
555
+ Returns:
556
+ list: a list of tuples containing the cutted blocks and their corresponding mean width。
557
+ """
558
+ cuted_list = []
559
+ # filter out mask blocks,including header, footer, unordered and child_blocks
560
+
561
+ # 0: horizontal, 1: vertical
562
+ cut_aixis = 0 if cut_direction == "horizontal" else 1
563
+ blocks.sort(key=lambda x: x.bbox[cut_aixis + 2])
564
+ cut_coordinates.append(float("inf"))
565
+
566
+ cut_coordinates = list(set(cut_coordinates))
567
+ cut_coordinates.sort()
568
+
569
+ cut_idx = 0
570
+ for cut_coordinate in cut_coordinates:
571
+ group_blocks = []
572
+ block_idx = cut_idx
573
+ while block_idx < len(blocks):
574
+ block = blocks[block_idx]
575
+ if block.bbox[cut_aixis + 2] > cut_coordinate:
576
+ break
577
+ elif block.order_label not in mask_labels:
578
+ group_blocks.append(block)
579
+ block_idx += 1
580
+ cut_idx = block_idx
581
+ if group_blocks:
582
+ cuted_list.append(group_blocks)
583
+
584
+ return cuted_list
585
+
586
+
587
+ def add_split_block(
588
+ blocks: List[LayoutParsingBlock], region_bbox: List[int]
589
+ ) -> List[LayoutParsingBlock]:
590
+ block_bboxes = np.array([block.bbox for block in blocks])
591
+ discontinuous = calculate_discontinuous_projection(
592
+ block_bboxes, direction="vertical"
593
+ )
594
+ current_interval = discontinuous[0]
595
+ for interval in discontinuous[1:]:
596
+ gap_len = interval[0] - current_interval[1]
597
+ if gap_len > 40:
598
+ x1, _, x2, __ = region_bbox
599
+ y1 = current_interval[1] + 5
600
+ y2 = interval[0] - 5
601
+ bbox = [x1, y1, x2, y2]
602
+ split_block = LayoutParsingBlock(label="split", bbox=bbox)
603
+ blocks.append(split_block)
604
+ current_interval = interval
605
+
606
+
607
+ def get_nearest_blocks(
608
+ block: LayoutParsingBlock,
609
+ ref_blocks: List[LayoutParsingBlock],
610
+ overlap_threshold,
611
+ direction="horizontal",
612
+ ) -> List:
613
+ """
614
+ Get the adjacent blocks with the same direction as the current block.
615
+ Args:
616
+ block (LayoutParsingBlock): The current block.
617
+ blocks (List[LayoutParsingBlock]): A list of all blocks.
618
+ ref_block_idxes (List[int]): A list of indices of reference blocks.
619
+ iou_threshold (float): The IOU threshold to determine if two blocks are considered adjacent.
620
+ Returns:
621
+ Int: The index of the previous block with same direction.
622
+ Int: The index of the following block with same direction.
623
+ """
624
+ prev_blocks: List[LayoutParsingBlock] = []
625
+ post_blocks: List[LayoutParsingBlock] = []
626
+ sort_index = 1 if direction == "horizontal" else 0
627
+ for ref_block in ref_blocks:
628
+ if ref_block.index == block.index:
629
+ continue
630
+ overlap_ratio = calculate_projection_overlap_ratio(
631
+ block.bbox, ref_block.bbox, direction, mode="small"
632
+ )
633
+ if overlap_ratio > overlap_threshold:
634
+ if ref_block.bbox[sort_index] <= block.bbox[sort_index]:
635
+ prev_blocks.append(ref_block)
636
+ else:
637
+ post_blocks.append(ref_block)
638
+
639
+ if prev_blocks:
640
+ prev_blocks.sort(key=lambda x: x.bbox[sort_index], reverse=True)
641
+ if post_blocks:
642
+ post_blocks.sort(key=lambda x: x.bbox[sort_index])
643
+
644
+ return prev_blocks, post_blocks
645
+
646
+
647
+ def get_adjacent_blocks_by_direction(
648
+ blocks: List[LayoutParsingBlock],
649
+ block_idx: int,
650
+ ref_block_idxes: List[int],
651
+ iou_threshold,
652
+ ) -> List:
653
+ """
654
+ Get the adjacent blocks with the same direction as the current block.
655
+ Args:
656
+ block (LayoutParsingBlock): The current block.
657
+ blocks (List[LayoutParsingBlock]): A list of all blocks.
658
+ ref_block_idxes (List[int]): A list of indices of reference blocks.
659
+ iou_threshold (float): The IOU threshold to determine if two blocks are considered adjacent.
660
+ Returns:
661
+ Int: The index of the previous block with same direction.
662
+ Int: The index of the following block with same direction.
663
+ """
664
+ min_prev_block_distance = float("inf")
665
+ prev_block_index = None
666
+ min_post_block_distance = float("inf")
667
+ post_block_index = None
668
+ block = blocks[block_idx]
669
+ child_labels = [
670
+ "vision_footnote",
671
+ "sub_paragraph_title",
672
+ "doc_title_text",
673
+ "vision_title",
674
+ ]
675
+
676
+ # find the nearest text block with same direction to the current block
677
+ for ref_block_idx in ref_block_idxes:
678
+ ref_block = blocks[ref_block_idx]
679
+ ref_block_direction = ref_block.direction
680
+ if ref_block.order_label in child_labels:
681
+ continue
682
+ match_block_iou = calculate_projection_overlap_ratio(
683
+ block.bbox,
684
+ ref_block.bbox,
685
+ ref_block_direction,
686
+ )
687
+
688
+ child_match_distance_tolerance_len = block.short_side_length / 10
689
+
690
+ if block.order_label == "vision":
691
+ if ref_block.num_of_lines == 1:
692
+ gap_tolerance_len = ref_block.short_side_length * 2
693
+ else:
694
+ gap_tolerance_len = block.short_side_length / 10
695
+ else:
696
+ gap_tolerance_len = block.short_side_length * 2
697
+
698
+ if match_block_iou >= iou_threshold:
699
+ prev_distance = (
700
+ block.secondary_direction_start_coordinate
701
+ - ref_block.secondary_direction_end_coordinate
702
+ + child_match_distance_tolerance_len
703
+ ) // 5 + ref_block.start_coordinate / 5000
704
+ next_distance = (
705
+ ref_block.secondary_direction_start_coordinate
706
+ - block.secondary_direction_end_coordinate
707
+ + child_match_distance_tolerance_len
708
+ ) // 5 + ref_block.start_coordinate / 5000
709
+ if (
710
+ ref_block.secondary_direction_end_coordinate
711
+ <= block.secondary_direction_start_coordinate
712
+ + child_match_distance_tolerance_len
713
+ and prev_distance < min_prev_block_distance
714
+ ):
715
+ min_prev_block_distance = prev_distance
716
+ if (
717
+ block.secondary_direction_start_coordinate
718
+ - ref_block.secondary_direction_end_coordinate
719
+ < gap_tolerance_len
720
+ ):
721
+ prev_block_index = ref_block_idx
722
+ elif (
723
+ ref_block.secondary_direction_start_coordinate
724
+ > block.secondary_direction_end_coordinate
725
+ - child_match_distance_tolerance_len
726
+ and next_distance < min_post_block_distance
727
+ ):
728
+ min_post_block_distance = next_distance
729
+ if (
730
+ ref_block.secondary_direction_start_coordinate
731
+ - block.secondary_direction_end_coordinate
732
+ < gap_tolerance_len
733
+ ):
734
+ post_block_index = ref_block_idx
735
+
736
+ diff_dist = abs(min_prev_block_distance - min_post_block_distance)
737
+
738
+ # if the difference in distance is too large, only consider the nearest one
739
+ if diff_dist * 5 > block.short_side_length:
740
+ if min_prev_block_distance < min_post_block_distance:
741
+ post_block_index = None
742
+ else:
743
+ prev_block_index = None
744
+
745
+ return prev_block_index, post_block_index
746
+
747
+
748
+ def update_doc_title_child_blocks(
749
+ block: LayoutParsingBlock,
750
+ region: LayoutParsingRegion,
751
+ ) -> None:
752
+ """
753
+ Update the child blocks of a document title block.
754
+
755
+ The child blocks need to meet the following conditions:
756
+ 1. They must be adjacent
757
+ 2. They must have the same direction as the parent block.
758
+ 3. Their short side length should be less than 80% of the parent's short side length.
759
+ 4. Their long side length should be less than 150% of the parent's long side length.
760
+ 5. The child block must be text block.
761
+ 6. The nearest edge distance should be less than 2 times of the text line height.
762
+
763
+ Args:
764
+ blocks (List[LayoutParsingBlock]): overall blocks.
765
+ block (LayoutParsingBlock): document title block.
766
+ prev_idx (int): previous block index, None if not exist.
767
+ post_idx (int): post block index, None if not exist.
768
+ config (dict): configurations.
769
+
770
+ Returns:
771
+ None
772
+
773
+ """
774
+ ref_blocks = [region.block_map[idx] for idx in region.normal_text_block_idxes]
775
+ overlap_threshold = XYCUT_SETTINGS["child_block_overlap_ratio_threshold"]
776
+ prev_blocks, post_blocks = get_nearest_blocks(
777
+ block, ref_blocks, overlap_threshold, block.direction
778
+ )
779
+ prev_block = None
780
+ post_block = None
781
+
782
+ if prev_blocks:
783
+ prev_block = prev_blocks[0]
784
+ if post_blocks:
785
+ post_block = post_blocks[0]
786
+
787
+ for ref_block in [prev_block, post_block]:
788
+ if ref_block is None:
789
+ continue
790
+ with_seem_direction = ref_block.direction == block.direction
791
+
792
+ short_side_length_condition = (
793
+ ref_block.short_side_length < block.short_side_length * 0.8
794
+ )
795
+
796
+ long_side_length_condition = (
797
+ ref_block.long_side_length < block.long_side_length
798
+ or ref_block.long_side_length > 1.5 * block.long_side_length
799
+ )
800
+
801
+ nearest_edge_distance = get_nearest_edge_distance(block.bbox, ref_block.bbox)
802
+
803
+ if (
804
+ with_seem_direction
805
+ and ref_block.label in BLOCK_LABEL_MAP["text_labels"]
806
+ and short_side_length_condition
807
+ and long_side_length_condition
808
+ and ref_block.num_of_lines < 3
809
+ and nearest_edge_distance < ref_block.text_line_height * 2
810
+ ):
811
+ ref_block.order_label = "doc_title_text"
812
+ block.append_child_block(ref_block)
813
+ region.normal_text_block_idxes.remove(ref_block.index)
814
+
815
+
816
+ def update_paragraph_title_child_blocks(
817
+ block: LayoutParsingBlock,
818
+ region: LayoutParsingRegion,
819
+ ) -> None:
820
+ """
821
+ Update the child blocks of a paragraph title block.
822
+
823
+ The child blocks need to meet the following conditions:
824
+ 1. They must be adjacent
825
+ 2. They must have the same direction as the parent block.
826
+ 3. The child block must be paragraph title block.
827
+
828
+ Args:
829
+ blocks (List[LayoutParsingBlock]): overall blocks.
830
+ block (LayoutParsingBlock): document title block.
831
+ prev_idx (int): previous block index, None if not exist.
832
+ post_idx (int): post block index, None if not exist.
833
+ config (dict): configurations.
834
+
835
+ Returns:
836
+ None
837
+
838
+ """
839
+ if block.order_label == "sub_paragraph_title":
840
+ return
841
+ ref_blocks = [
842
+ region.block_map[idx]
843
+ for idx in region.paragraph_title_block_idxes + region.normal_text_block_idxes
844
+ ]
845
+ overlap_threshold = XYCUT_SETTINGS["child_block_overlap_ratio_threshold"]
846
+ prev_blocks, post_blocks = get_nearest_blocks(
847
+ block, ref_blocks, overlap_threshold, block.direction
848
+ )
849
+ for ref_blocks in [prev_blocks, post_blocks]:
850
+ for ref_block in ref_blocks:
851
+ if ref_block.label not in BLOCK_LABEL_MAP["paragraph_title_labels"]:
852
+ break
853
+ min_text_line_height = min(
854
+ block.text_line_height, ref_block.text_line_height
855
+ )
856
+ nearest_edge_distance = get_nearest_edge_distance(
857
+ block.bbox, ref_block.bbox
858
+ )
859
+ with_seem_direction = ref_block.direction == block.direction
860
+ if (
861
+ with_seem_direction
862
+ and nearest_edge_distance <= min_text_line_height * 1.5
863
+ ):
864
+ ref_block.order_label = "sub_paragraph_title"
865
+ block.append_child_block(ref_block)
866
+ region.paragraph_title_block_idxes.remove(ref_block.index)
867
+
868
+
869
+ def update_vision_child_blocks(
870
+ block: LayoutParsingBlock,
871
+ region: LayoutParsingRegion,
872
+ ) -> None:
873
+ """
874
+ Update the child blocks of a paragraph title block.
875
+
876
+ The child blocks need to meet the following conditions:
877
+ - For Both:
878
+ 1. They must be adjacent
879
+ 2. The child block must be vision_title or text block.
880
+ - For vision_title:
881
+ 1. The distance between the child block and the parent block should be less than 1/2 of the parent's height.
882
+ - For text block:
883
+ 1. The distance between the child block and the parent block should be less than 15.
884
+ 2. The child short_side_length should be less than the parent's short side length.
885
+ 3. The child long_side_length should be less than 50% of the parent's long side length.
886
+ 4. The difference between their centers is very small.
887
+
888
+ Args:
889
+ blocks (List[LayoutParsingBlock]): overall blocks.
890
+ block (LayoutParsingBlock): document title block.
891
+ ref_block_idxes (List[int]): A list of indices of reference blocks.
892
+ prev_idx (int): previous block index, None if not exist.
893
+ post_idx (int): post block index, None if not exist.
894
+ config (dict): configurations.
895
+
896
+ Returns:
897
+ None
898
+
899
+ """
900
+ ref_blocks = [
901
+ region.block_map[idx]
902
+ for idx in region.normal_text_block_idxes + region.vision_title_block_idxes
903
+ ]
904
+ overlap_threshold = XYCUT_SETTINGS["child_block_overlap_ratio_threshold"]
905
+ has_vision_footnote = False
906
+ has_vision_title = False
907
+ for direction in [block.direction, block.secondary_direction]:
908
+ prev_blocks, post_blocks = get_nearest_blocks(
909
+ block, ref_blocks, overlap_threshold, direction
910
+ )
911
+ for ref_block in prev_blocks:
912
+ if (
913
+ ref_block.label
914
+ not in BLOCK_LABEL_MAP["text_labels"]
915
+ + BLOCK_LABEL_MAP["vision_title_labels"]
916
+ ):
917
+ break
918
+ nearest_edge_distance = get_nearest_edge_distance(
919
+ block.bbox, ref_block.bbox
920
+ )
921
+ block_center = block.get_centroid()
922
+ ref_block_center = ref_block.get_centroid()
923
+ if (
924
+ ref_block.label in BLOCK_LABEL_MAP["vision_title_labels"]
925
+ and nearest_edge_distance <= ref_block.text_line_height * 2
926
+ ):
927
+ has_vision_title = True
928
+ ref_block.order_label = "vision_title"
929
+ block.append_child_block(ref_block)
930
+ region.vision_title_block_idxes.remove(ref_block.index)
931
+ if ref_block.label in BLOCK_LABEL_MAP["text_labels"]:
932
+ if (
933
+ not has_vision_footnote
934
+ and ref_block.direction == block.direction
935
+ and ref_block.long_side_length < block.long_side_length
936
+ ):
937
+ if (
938
+ (
939
+ nearest_edge_distance <= block.text_line_height * 2
940
+ and ref_block.short_side_length < block.short_side_length
941
+ and ref_block.long_side_length
942
+ < 0.5 * block.long_side_length
943
+ and abs(block_center[0] - ref_block_center[0]) < 10
944
+ )
945
+ or (
946
+ block.bbox[0] - ref_block.bbox[0] < 10
947
+ and ref_block.num_of_lines == 1
948
+ )
949
+ or (
950
+ block.bbox[2] - ref_block.bbox[2] < 10
951
+ and ref_block.num_of_lines == 1
952
+ )
953
+ ):
954
+ has_vision_footnote = True
955
+ ref_block.order_label = "vision_footnote"
956
+ block.append_child_block(ref_block)
957
+ region.normal_text_block_idxes.remove(ref_block.index)
958
+ break
959
+ for ref_block in post_blocks:
960
+ if (
961
+ has_vision_footnote
962
+ and ref_block.label in BLOCK_LABEL_MAP["text_labels"]
963
+ ):
964
+ break
965
+ nearest_edge_distance = get_nearest_edge_distance(
966
+ block.bbox, ref_block.bbox
967
+ )
968
+ block_center = block.get_centroid()
969
+ ref_block_center = ref_block.get_centroid()
970
+ if (
971
+ ref_block.label in BLOCK_LABEL_MAP["vision_title_labels"]
972
+ and nearest_edge_distance <= ref_block.text_line_height * 2
973
+ ):
974
+ has_vision_title = True
975
+ ref_block.order_label = "vision_title"
976
+ block.append_child_block(ref_block)
977
+ region.vision_title_block_idxes.remove(ref_block.index)
978
+ if ref_block.label in BLOCK_LABEL_MAP["text_labels"]:
979
+ if (
980
+ not has_vision_footnote
981
+ and nearest_edge_distance <= block.text_line_height * 2
982
+ and ref_block.short_side_length < block.short_side_length
983
+ and ref_block.long_side_length < 0.5 * block.long_side_length
984
+ and ref_block.direction == block.direction
985
+ and (
986
+ abs(block_center[0] - ref_block_center[0]) < 10
987
+ or (
988
+ block.bbox[0] - ref_block.bbox[0] < 10
989
+ and ref_block.num_of_lines == 1
990
+ )
991
+ or (
992
+ block.bbox[2] - ref_block.bbox[2] < 10
993
+ and ref_block.num_of_lines == 1
994
+ )
995
+ )
996
+ ):
997
+ has_vision_footnote = True
998
+ ref_block.order_label = "vision_footnote"
999
+ block.append_child_block(ref_block)
1000
+ region.normal_text_block_idxes.remove(ref_block.index)
1001
+ break
1002
+ if has_vision_title:
1003
+ break
1004
+
1005
+
1006
+ def calculate_discontinuous_projection(
1007
+ boxes, direction="horizontal", return_num=False
1008
+ ) -> List:
1009
+ """
1010
+ Calculate the discontinuous projection of boxes along the specified direction.
1011
+
1012
+ Args:
1013
+ boxes (ndarray): Array of bounding boxes represented by [[x_min, y_min, x_max, y_max]].
1014
+ direction (str): direction along which to perform the projection ('horizontal' or 'vertical').
1015
+
1016
+ Returns:
1017
+ list: List of tuples representing the merged intervals.
1018
+ """
1019
+ boxes = np.array(boxes)
1020
+ if direction == "horizontal":
1021
+ intervals = boxes[:, [0, 2]]
1022
+ elif direction == "vertical":
1023
+ intervals = boxes[:, [1, 3]]
1024
+ else:
1025
+ raise ValueError("direction must be 'horizontal' or 'vertical'")
1026
+
1027
+ intervals = intervals[np.argsort(intervals[:, 0])]
1028
+
1029
+ merged_intervals = []
1030
+ num = 1
1031
+ current_start, current_end = intervals[0]
1032
+ num_list = []
1033
+
1034
+ for start, end in intervals[1:]:
1035
+ if start <= current_end:
1036
+ num += 1
1037
+ current_end = max(current_end, end)
1038
+ else:
1039
+ num_list.append(num)
1040
+ merged_intervals.append((current_start, current_end))
1041
+ num = 1
1042
+ current_start, current_end = start, end
1043
+
1044
+ num_list.append(num)
1045
+ merged_intervals.append((current_start, current_end))
1046
+ if return_num:
1047
+ return merged_intervals, num_list
1048
+ return merged_intervals
1049
+
1050
+
1051
+ def is_projection_consistent(blocks, intervals, direction="horizontal"):
1052
+
1053
+ for interval in intervals:
1054
+ if direction == "horizontal":
1055
+ start_index, stop_index = 0, 2
1056
+ interval_box = [interval[0], 0, interval[1], 1]
1057
+ else:
1058
+ start_index, stop_index = 1, 3
1059
+ interval_box = [0, interval[0], 1, interval[1]]
1060
+ same_interval_bboxes = []
1061
+ for block in blocks:
1062
+ overlap_ratio = calculate_projection_overlap_ratio(
1063
+ interval_box, block.bbox, direction=direction
1064
+ )
1065
+ if overlap_ratio > 0 and block.label in BLOCK_LABEL_MAP["text_labels"]:
1066
+ same_interval_bboxes.append(block.bbox)
1067
+ start_coordinates = [bbox[start_index] for bbox in same_interval_bboxes]
1068
+ if start_coordinates:
1069
+ min_start_coordinate = min(start_coordinates)
1070
+ max_start_coordinate = max(start_coordinates)
1071
+ is_start_consistent = (
1072
+ False
1073
+ if max_start_coordinate - min_start_coordinate
1074
+ >= abs(interval[0] - interval[1]) * 0.05
1075
+ else True
1076
+ )
1077
+ stop_coordinates = [bbox[stop_index] for bbox in same_interval_bboxes]
1078
+ min_stop_coordinate = min(stop_coordinates)
1079
+ max_stop_coordinate = max(stop_coordinates)
1080
+ if (
1081
+ max_stop_coordinate - min_stop_coordinate
1082
+ >= abs(interval[0] - interval[1]) * 0.05
1083
+ and is_start_consistent
1084
+ ):
1085
+ return False
1086
+ return True
1087
+
1088
+
1089
+ def shrink_overlapping_boxes(
1090
+ boxes, direction="horizontal", min_threshold=0, max_threshold=0.1
1091
+ ) -> List:
1092
+ """
1093
+ Shrink overlapping boxes along the specified direction.
1094
+
1095
+ Args:
1096
+ boxes (ndarray): Array of bounding boxes represented by [[x_min, y_min, x_max, y_max]].
1097
+ direction (str): direction along which to perform the shrinking ('horizontal' or 'vertical').
1098
+ min_threshold (float): Minimum threshold for shrinking. Default is 0.
1099
+ max_threshold (float): Maximum threshold for shrinking. Default is 0.2.
1100
+
1101
+ Returns:
1102
+ list: List of tuples representing the merged intervals.
1103
+ """
1104
+ current_block = boxes[0]
1105
+ for block in boxes[1:]:
1106
+ x1, y1, x2, y2 = current_block.bbox
1107
+ x1_prime, y1_prime, x2_prime, y2_prime = block.bbox
1108
+ cut_iou = calculate_projection_overlap_ratio(
1109
+ current_block.bbox, block.bbox, direction=direction
1110
+ )
1111
+ match_iou = calculate_projection_overlap_ratio(
1112
+ current_block.bbox,
1113
+ block.bbox,
1114
+ direction="horizontal" if direction == "vertical" else "vertical",
1115
+ )
1116
+ if direction == "vertical":
1117
+ if (
1118
+ (match_iou > 0 and cut_iou > min_threshold and cut_iou < max_threshold)
1119
+ or y2 == y1_prime
1120
+ or abs(y2 - y1_prime) <= 3
1121
+ ):
1122
+ overlap_y_min = max(y1, y1_prime)
1123
+ overlap_y_max = min(y2, y2_prime)
1124
+ split_y = int((overlap_y_min + overlap_y_max) / 2)
1125
+ overlap_y_min = split_y - 1
1126
+ overlap_y_max = split_y + 1
1127
+ current_block.bbox = [x1, y1, x2, overlap_y_min]
1128
+ block.bbox = [x1_prime, overlap_y_max, x2_prime, y2_prime]
1129
+ else:
1130
+ if (
1131
+ (match_iou > 0 and cut_iou > min_threshold and cut_iou < max_threshold)
1132
+ or x2 == x1_prime
1133
+ or abs(x2 - x1_prime) <= 3
1134
+ ):
1135
+ overlap_x_min = max(x1, x1_prime)
1136
+ overlap_x_max = min(x2, x2_prime)
1137
+ split_x = int((overlap_x_min + overlap_x_max) / 2)
1138
+ overlap_x_min = split_x - 1
1139
+ overlap_x_max = split_x + 1
1140
+ current_block.bbox = [x1, y1, overlap_x_min, y2]
1141
+ block.bbox = [overlap_x_max, y1_prime, x2_prime, y2_prime]
1142
+ current_block = block
1143
+ return boxes