paddlex 2.1.0__py3-none-any.whl → 3.0.0b2__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 (1340) hide show
  1. paddlex/.version +1 -0
  2. paddlex/__init__.py +51 -19
  3. paddlex/__main__.py +40 -0
  4. paddlex/configs/anomaly_detection/STFPM.yaml +41 -0
  5. paddlex/configs/doc_text_orientation/PP-LCNet_x1_0_doc_ori.yaml +41 -0
  6. paddlex/configs/face_detection/BlazeFace-FPN-SSH.yaml +40 -0
  7. paddlex/configs/face_detection/BlazeFace.yaml +40 -0
  8. paddlex/configs/face_detection/PP-YOLOE_plus-S_face.yaml +40 -0
  9. paddlex/configs/face_detection/PicoDet_LCNet_x2_5_face.yaml +40 -0
  10. paddlex/configs/face_recognition/MobileFaceNet.yaml +44 -0
  11. paddlex/configs/face_recognition/ResNet50_face.yaml +44 -0
  12. paddlex/configs/formula_recognition/LaTeX_OCR_rec.yaml +40 -0
  13. paddlex/configs/general_recognition/PP-ShiTuV2_rec.yaml +42 -0
  14. paddlex/configs/general_recognition/PP-ShiTuV2_rec_CLIP_vit_base.yaml +42 -0
  15. paddlex/configs/general_recognition/PP-ShiTuV2_rec_CLIP_vit_large.yaml +41 -0
  16. paddlex/configs/human_detection/PP-YOLOE-L_human.yaml +42 -0
  17. paddlex/configs/human_detection/PP-YOLOE-S_human.yaml +42 -0
  18. paddlex/configs/image_classification/CLIP_vit_base_patch16_224.yaml +41 -0
  19. paddlex/configs/image_classification/CLIP_vit_large_patch14_224.yaml +41 -0
  20. paddlex/configs/image_classification/ConvNeXt_base_224.yaml +41 -0
  21. paddlex/configs/image_classification/ConvNeXt_base_384.yaml +41 -0
  22. paddlex/configs/image_classification/ConvNeXt_large_224.yaml +41 -0
  23. paddlex/configs/image_classification/ConvNeXt_large_384.yaml +41 -0
  24. paddlex/configs/image_classification/ConvNeXt_small.yaml +41 -0
  25. paddlex/configs/image_classification/ConvNeXt_tiny.yaml +41 -0
  26. paddlex/configs/image_classification/FasterNet-L.yaml +40 -0
  27. paddlex/configs/image_classification/FasterNet-M.yaml +40 -0
  28. paddlex/configs/image_classification/FasterNet-S.yaml +40 -0
  29. paddlex/configs/image_classification/FasterNet-T0.yaml +40 -0
  30. paddlex/configs/image_classification/FasterNet-T1.yaml +40 -0
  31. paddlex/configs/image_classification/FasterNet-T2.yaml +40 -0
  32. paddlex/configs/image_classification/MobileNetV1_x0_25.yaml +41 -0
  33. paddlex/configs/image_classification/MobileNetV1_x0_5.yaml +41 -0
  34. paddlex/configs/image_classification/MobileNetV1_x0_75.yaml +41 -0
  35. paddlex/configs/image_classification/MobileNetV1_x1_0.yaml +41 -0
  36. paddlex/configs/image_classification/MobileNetV2_x0_25.yaml +41 -0
  37. paddlex/configs/image_classification/MobileNetV2_x0_5.yaml +41 -0
  38. paddlex/configs/image_classification/MobileNetV2_x1_0.yaml +41 -0
  39. paddlex/configs/image_classification/MobileNetV2_x1_5.yaml +41 -0
  40. paddlex/configs/image_classification/MobileNetV2_x2_0.yaml +41 -0
  41. paddlex/configs/image_classification/MobileNetV3_large_x0_35.yaml +41 -0
  42. paddlex/configs/image_classification/MobileNetV3_large_x0_5.yaml +41 -0
  43. paddlex/configs/image_classification/MobileNetV3_large_x0_75.yaml +41 -0
  44. paddlex/configs/image_classification/MobileNetV3_large_x1_0.yaml +41 -0
  45. paddlex/configs/image_classification/MobileNetV3_large_x1_25.yaml +41 -0
  46. paddlex/configs/image_classification/MobileNetV3_small_x0_35.yaml +41 -0
  47. paddlex/configs/image_classification/MobileNetV3_small_x0_5.yaml +41 -0
  48. paddlex/configs/image_classification/MobileNetV3_small_x0_75.yaml +41 -0
  49. paddlex/configs/image_classification/MobileNetV3_small_x1_0.yaml +41 -0
  50. paddlex/configs/image_classification/MobileNetV3_small_x1_25.yaml +41 -0
  51. paddlex/configs/image_classification/MobileNetV4_conv_large.yaml +41 -0
  52. paddlex/configs/image_classification/MobileNetV4_conv_medium.yaml +41 -0
  53. paddlex/configs/image_classification/MobileNetV4_conv_small.yaml +41 -0
  54. paddlex/configs/image_classification/MobileNetV4_hybrid_large.yaml +41 -0
  55. paddlex/configs/image_classification/MobileNetV4_hybrid_medium.yaml +41 -0
  56. paddlex/configs/image_classification/PP-HGNetV2-B0.yaml +41 -0
  57. paddlex/configs/image_classification/PP-HGNetV2-B1.yaml +41 -0
  58. paddlex/configs/image_classification/PP-HGNetV2-B2.yaml +41 -0
  59. paddlex/configs/image_classification/PP-HGNetV2-B3.yaml +41 -0
  60. paddlex/configs/image_classification/PP-HGNetV2-B4.yaml +41 -0
  61. paddlex/configs/image_classification/PP-HGNetV2-B5.yaml +41 -0
  62. paddlex/configs/image_classification/PP-HGNetV2-B6.yaml +41 -0
  63. paddlex/configs/image_classification/PP-HGNet_base.yaml +41 -0
  64. paddlex/configs/image_classification/PP-HGNet_small.yaml +41 -0
  65. paddlex/configs/image_classification/PP-HGNet_tiny.yaml +41 -0
  66. paddlex/configs/image_classification/PP-LCNetV2_base.yaml +41 -0
  67. paddlex/configs/image_classification/PP-LCNetV2_large.yaml +41 -0
  68. paddlex/configs/image_classification/PP-LCNetV2_small.yaml +41 -0
  69. paddlex/configs/image_classification/PP-LCNet_x0_25.yaml +41 -0
  70. paddlex/configs/image_classification/PP-LCNet_x0_35.yaml +41 -0
  71. paddlex/configs/image_classification/PP-LCNet_x0_5.yaml +41 -0
  72. paddlex/configs/image_classification/PP-LCNet_x0_75.yaml +41 -0
  73. paddlex/configs/image_classification/PP-LCNet_x1_0.yaml +41 -0
  74. paddlex/configs/image_classification/PP-LCNet_x1_5.yaml +41 -0
  75. paddlex/configs/image_classification/PP-LCNet_x2_0.yaml +41 -0
  76. paddlex/configs/image_classification/PP-LCNet_x2_5.yaml +41 -0
  77. paddlex/configs/image_classification/ResNet101.yaml +41 -0
  78. paddlex/configs/image_classification/ResNet101_vd.yaml +41 -0
  79. paddlex/configs/image_classification/ResNet152.yaml +41 -0
  80. paddlex/configs/image_classification/ResNet152_vd.yaml +41 -0
  81. paddlex/configs/image_classification/ResNet18.yaml +41 -0
  82. paddlex/configs/image_classification/ResNet18_vd.yaml +41 -0
  83. paddlex/configs/image_classification/ResNet200_vd.yaml +41 -0
  84. paddlex/configs/image_classification/ResNet34.yaml +41 -0
  85. paddlex/configs/image_classification/ResNet34_vd.yaml +41 -0
  86. paddlex/configs/image_classification/ResNet50.yaml +41 -0
  87. paddlex/configs/image_classification/ResNet50_vd.yaml +41 -0
  88. paddlex/configs/image_classification/StarNet-S1.yaml +41 -0
  89. paddlex/configs/image_classification/StarNet-S2.yaml +41 -0
  90. paddlex/configs/image_classification/StarNet-S3.yaml +41 -0
  91. paddlex/configs/image_classification/StarNet-S4.yaml +41 -0
  92. paddlex/configs/image_classification/SwinTransformer_base_patch4_window12_384.yaml +41 -0
  93. paddlex/configs/image_classification/SwinTransformer_base_patch4_window7_224.yaml +41 -0
  94. paddlex/configs/image_classification/SwinTransformer_large_patch4_window12_384.yaml +41 -0
  95. paddlex/configs/image_classification/SwinTransformer_large_patch4_window7_224.yaml +41 -0
  96. paddlex/configs/image_classification/SwinTransformer_small_patch4_window7_224.yaml +41 -0
  97. paddlex/configs/image_classification/SwinTransformer_tiny_patch4_window7_224.yaml +41 -0
  98. paddlex/configs/image_unwarping/UVDoc.yaml +12 -0
  99. paddlex/configs/instance_segmentation/Cascade-MaskRCNN-ResNet50-FPN.yaml +40 -0
  100. paddlex/configs/instance_segmentation/Cascade-MaskRCNN-ResNet50-vd-SSLDv2-FPN.yaml +40 -0
  101. paddlex/configs/instance_segmentation/Mask-RT-DETR-H.yaml +40 -0
  102. paddlex/configs/instance_segmentation/Mask-RT-DETR-L.yaml +40 -0
  103. paddlex/configs/instance_segmentation/Mask-RT-DETR-M.yaml +40 -0
  104. paddlex/configs/instance_segmentation/Mask-RT-DETR-S.yaml +40 -0
  105. paddlex/configs/instance_segmentation/Mask-RT-DETR-X.yaml +40 -0
  106. paddlex/configs/instance_segmentation/MaskRCNN-ResNeXt101-vd-FPN.yaml +39 -0
  107. paddlex/configs/instance_segmentation/MaskRCNN-ResNet101-FPN.yaml +40 -0
  108. paddlex/configs/instance_segmentation/MaskRCNN-ResNet101-vd-FPN.yaml +40 -0
  109. paddlex/configs/instance_segmentation/MaskRCNN-ResNet50-FPN.yaml +40 -0
  110. paddlex/configs/instance_segmentation/MaskRCNN-ResNet50-vd-FPN.yaml +40 -0
  111. paddlex/configs/instance_segmentation/MaskRCNN-ResNet50.yaml +40 -0
  112. paddlex/configs/instance_segmentation/PP-YOLOE_seg-S.yaml +40 -0
  113. paddlex/configs/instance_segmentation/SOLOv2.yaml +40 -0
  114. paddlex/configs/mainbody_detection/PP-ShiTuV2_det.yaml +41 -0
  115. paddlex/configs/multilabel_classification/CLIP_vit_base_patch16_448_ML.yaml +41 -0
  116. paddlex/configs/multilabel_classification/PP-HGNetV2-B0_ML.yaml +41 -0
  117. paddlex/configs/multilabel_classification/PP-HGNetV2-B4_ML.yaml +41 -0
  118. paddlex/configs/multilabel_classification/PP-HGNetV2-B6_ML.yaml +41 -0
  119. paddlex/configs/multilabel_classification/PP-LCNet_x1_0_ML.yaml +41 -0
  120. paddlex/configs/multilabel_classification/ResNet50_ML.yaml +41 -0
  121. paddlex/configs/object_detection/Cascade-FasterRCNN-ResNet50-FPN.yaml +41 -0
  122. paddlex/configs/object_detection/Cascade-FasterRCNN-ResNet50-vd-SSLDv2-FPN.yaml +42 -0
  123. paddlex/configs/object_detection/CenterNet-DLA-34.yaml +41 -0
  124. paddlex/configs/object_detection/CenterNet-ResNet50.yaml +41 -0
  125. paddlex/configs/object_detection/DETR-R50.yaml +42 -0
  126. paddlex/configs/object_detection/FCOS-ResNet50.yaml +41 -0
  127. paddlex/configs/object_detection/FasterRCNN-ResNeXt101-vd-FPN.yaml +42 -0
  128. paddlex/configs/object_detection/FasterRCNN-ResNet101-FPN.yaml +42 -0
  129. paddlex/configs/object_detection/FasterRCNN-ResNet101.yaml +42 -0
  130. paddlex/configs/object_detection/FasterRCNN-ResNet34-FPN.yaml +42 -0
  131. paddlex/configs/object_detection/FasterRCNN-ResNet50-FPN.yaml +42 -0
  132. paddlex/configs/object_detection/FasterRCNN-ResNet50-vd-FPN.yaml +42 -0
  133. paddlex/configs/object_detection/FasterRCNN-ResNet50-vd-SSLDv2-FPN.yaml +42 -0
  134. paddlex/configs/object_detection/FasterRCNN-ResNet50.yaml +42 -0
  135. paddlex/configs/object_detection/FasterRCNN-Swin-Tiny-FPN.yaml +42 -0
  136. paddlex/configs/object_detection/PP-YOLOE_plus-L.yaml +40 -0
  137. paddlex/configs/object_detection/PP-YOLOE_plus-M.yaml +40 -0
  138. paddlex/configs/object_detection/PP-YOLOE_plus-S.yaml +40 -0
  139. paddlex/configs/object_detection/PP-YOLOE_plus-X.yaml +40 -0
  140. paddlex/configs/object_detection/PicoDet-L.yaml +40 -0
  141. paddlex/configs/object_detection/PicoDet-M.yaml +42 -0
  142. paddlex/configs/object_detection/PicoDet-S.yaml +40 -0
  143. paddlex/configs/object_detection/PicoDet-XS.yaml +42 -0
  144. paddlex/configs/object_detection/RT-DETR-H.yaml +40 -0
  145. paddlex/configs/object_detection/RT-DETR-L.yaml +40 -0
  146. paddlex/configs/object_detection/RT-DETR-R18.yaml +40 -0
  147. paddlex/configs/object_detection/RT-DETR-R50.yaml +40 -0
  148. paddlex/configs/object_detection/RT-DETR-X.yaml +40 -0
  149. paddlex/configs/object_detection/YOLOX-L.yaml +40 -0
  150. paddlex/configs/object_detection/YOLOX-M.yaml +40 -0
  151. paddlex/configs/object_detection/YOLOX-N.yaml +40 -0
  152. paddlex/configs/object_detection/YOLOX-S.yaml +40 -0
  153. paddlex/configs/object_detection/YOLOX-T.yaml +40 -0
  154. paddlex/configs/object_detection/YOLOX-X.yaml +40 -0
  155. paddlex/configs/object_detection/YOLOv3-DarkNet53.yaml +40 -0
  156. paddlex/configs/object_detection/YOLOv3-MobileNetV3.yaml +40 -0
  157. paddlex/configs/object_detection/YOLOv3-ResNet50_vd_DCN.yaml +40 -0
  158. paddlex/configs/pedestrian_attribute/PP-LCNet_x1_0_pedestrian_attribute.yaml +41 -0
  159. paddlex/configs/semantic_segmentation/Deeplabv3-R101.yaml +40 -0
  160. paddlex/configs/semantic_segmentation/Deeplabv3-R50.yaml +40 -0
  161. paddlex/configs/semantic_segmentation/Deeplabv3_Plus-R101.yaml +40 -0
  162. paddlex/configs/semantic_segmentation/Deeplabv3_Plus-R50.yaml +40 -0
  163. paddlex/configs/semantic_segmentation/OCRNet_HRNet-W18.yaml +40 -0
  164. paddlex/configs/semantic_segmentation/OCRNet_HRNet-W48.yaml +40 -0
  165. paddlex/configs/semantic_segmentation/PP-LiteSeg-B.yaml +41 -0
  166. paddlex/configs/semantic_segmentation/PP-LiteSeg-T.yaml +40 -0
  167. paddlex/configs/semantic_segmentation/SeaFormer_base.yaml +40 -0
  168. paddlex/configs/semantic_segmentation/SeaFormer_large.yaml +40 -0
  169. paddlex/configs/semantic_segmentation/SeaFormer_small.yaml +40 -0
  170. paddlex/configs/semantic_segmentation/SeaFormer_tiny.yaml +40 -0
  171. paddlex/configs/semantic_segmentation/SegFormer-B0.yaml +40 -0
  172. paddlex/configs/semantic_segmentation/SegFormer-B1.yaml +40 -0
  173. paddlex/configs/semantic_segmentation/SegFormer-B2.yaml +40 -0
  174. paddlex/configs/semantic_segmentation/SegFormer-B3.yaml +40 -0
  175. paddlex/configs/semantic_segmentation/SegFormer-B4.yaml +40 -0
  176. paddlex/configs/semantic_segmentation/SegFormer-B5.yaml +40 -0
  177. paddlex/configs/small_object_detection/PP-YOLOE_plus_SOD-L.yaml +42 -0
  178. paddlex/configs/small_object_detection/PP-YOLOE_plus_SOD-S.yaml +42 -0
  179. paddlex/configs/small_object_detection/PP-YOLOE_plus_SOD-largesize-L.yaml +42 -0
  180. paddlex/configs/structure_analysis/PicoDet-L_layout_17cls.yaml +40 -0
  181. paddlex/configs/structure_analysis/PicoDet-L_layout_3cls.yaml +40 -0
  182. paddlex/configs/structure_analysis/PicoDet-S_layout_17cls.yaml +40 -0
  183. paddlex/configs/structure_analysis/PicoDet-S_layout_3cls.yaml +40 -0
  184. paddlex/configs/structure_analysis/PicoDet_layout_1x.yaml +40 -0
  185. paddlex/configs/structure_analysis/PicoDet_layout_1x_table.yaml +40 -0
  186. paddlex/configs/structure_analysis/RT-DETR-H_layout_17cls.yaml +40 -0
  187. paddlex/configs/structure_analysis/RT-DETR-H_layout_3cls.yaml +40 -0
  188. paddlex/configs/table_recognition/SLANet.yaml +39 -0
  189. paddlex/configs/table_recognition/SLANet_plus.yaml +39 -0
  190. paddlex/configs/text_detection/PP-OCRv4_mobile_det.yaml +40 -0
  191. paddlex/configs/text_detection/PP-OCRv4_server_det.yaml +40 -0
  192. paddlex/configs/text_detection_seal/PP-OCRv4_mobile_seal_det.yaml +40 -0
  193. paddlex/configs/text_detection_seal/PP-OCRv4_server_seal_det.yaml +40 -0
  194. paddlex/configs/text_recognition/PP-OCRv4_mobile_rec.yaml +39 -0
  195. paddlex/configs/text_recognition/PP-OCRv4_server_rec.yaml +39 -0
  196. paddlex/configs/text_recognition/ch_RepSVTR_rec.yaml +39 -0
  197. paddlex/configs/text_recognition/ch_SVTRv2_rec.yaml +39 -0
  198. paddlex/configs/ts_anomaly_detection/AutoEncoder_ad.yaml +37 -0
  199. paddlex/configs/ts_anomaly_detection/DLinear_ad.yaml +37 -0
  200. paddlex/configs/ts_anomaly_detection/Nonstationary_ad.yaml +37 -0
  201. paddlex/configs/ts_anomaly_detection/PatchTST_ad.yaml +37 -0
  202. paddlex/configs/ts_anomaly_detection/TimesNet_ad.yaml +37 -0
  203. paddlex/configs/ts_classification/TimesNet_cls.yaml +37 -0
  204. paddlex/configs/ts_forecast/DLinear.yaml +38 -0
  205. paddlex/configs/ts_forecast/NLinear.yaml +38 -0
  206. paddlex/configs/ts_forecast/Nonstationary.yaml +38 -0
  207. paddlex/configs/ts_forecast/PatchTST.yaml +38 -0
  208. paddlex/configs/ts_forecast/RLinear.yaml +38 -0
  209. paddlex/configs/ts_forecast/TiDE.yaml +38 -0
  210. paddlex/configs/ts_forecast/TimesNet.yaml +38 -0
  211. paddlex/configs/vehicle_attribute/PP-LCNet_x1_0_vehicle_attribute.yaml +41 -0
  212. paddlex/configs/vehicle_detection/PP-YOLOE-L_vehicle.yaml +41 -0
  213. paddlex/configs/vehicle_detection/PP-YOLOE-S_vehicle.yaml +42 -0
  214. paddlex/engine.py +54 -0
  215. paddlex/inference/__init__.py +17 -0
  216. paddlex/inference/components/__init__.py +18 -0
  217. paddlex/inference/components/base.py +292 -0
  218. paddlex/inference/components/llm/__init__.py +25 -0
  219. paddlex/inference/components/llm/base.py +65 -0
  220. paddlex/inference/components/llm/erniebot.py +212 -0
  221. paddlex/inference/components/paddle_predictor/__init__.py +20 -0
  222. paddlex/inference/components/paddle_predictor/predictor.py +332 -0
  223. paddlex/inference/components/retrieval/__init__.py +15 -0
  224. paddlex/inference/components/retrieval/faiss.py +359 -0
  225. paddlex/inference/components/task_related/__init__.py +33 -0
  226. paddlex/inference/components/task_related/clas.py +124 -0
  227. paddlex/inference/components/task_related/det.py +284 -0
  228. paddlex/inference/components/task_related/instance_seg.py +89 -0
  229. paddlex/inference/components/task_related/seal_det_warp.py +940 -0
  230. paddlex/inference/components/task_related/seg.py +40 -0
  231. paddlex/inference/components/task_related/table_rec.py +191 -0
  232. paddlex/inference/components/task_related/text_det.py +895 -0
  233. paddlex/inference/components/task_related/text_rec.py +353 -0
  234. paddlex/inference/components/task_related/warp.py +43 -0
  235. paddlex/inference/components/transforms/__init__.py +16 -0
  236. paddlex/inference/components/transforms/image/__init__.py +15 -0
  237. paddlex/inference/components/transforms/image/common.py +598 -0
  238. paddlex/inference/components/transforms/image/funcs.py +58 -0
  239. paddlex/inference/components/transforms/read_data.py +67 -0
  240. paddlex/inference/components/transforms/ts/__init__.py +15 -0
  241. paddlex/inference/components/transforms/ts/common.py +393 -0
  242. paddlex/inference/components/transforms/ts/funcs.py +424 -0
  243. paddlex/inference/models/__init__.py +106 -0
  244. paddlex/inference/models/anomaly_detection.py +87 -0
  245. paddlex/inference/models/base/__init__.py +16 -0
  246. paddlex/inference/models/base/base_predictor.py +76 -0
  247. paddlex/inference/models/base/basic_predictor.py +122 -0
  248. paddlex/inference/models/face_recognition.py +21 -0
  249. paddlex/inference/models/formula_recognition.py +55 -0
  250. paddlex/inference/models/general_recognition.py +99 -0
  251. paddlex/inference/models/image_classification.py +101 -0
  252. paddlex/inference/models/image_unwarping.py +43 -0
  253. paddlex/inference/models/instance_segmentation.py +66 -0
  254. paddlex/inference/models/multilabel_classification.py +33 -0
  255. paddlex/inference/models/object_detection.py +129 -0
  256. paddlex/inference/models/semantic_segmentation.py +86 -0
  257. paddlex/inference/models/table_recognition.py +106 -0
  258. paddlex/inference/models/text_detection.py +105 -0
  259. paddlex/inference/models/text_recognition.py +78 -0
  260. paddlex/inference/models/ts_ad.py +68 -0
  261. paddlex/inference/models/ts_cls.py +57 -0
  262. paddlex/inference/models/ts_fc.py +73 -0
  263. paddlex/inference/pipelines/__init__.py +127 -0
  264. paddlex/inference/pipelines/attribute_recognition.py +92 -0
  265. paddlex/inference/pipelines/base.py +86 -0
  266. paddlex/inference/pipelines/face_recognition.py +49 -0
  267. paddlex/inference/pipelines/formula_recognition.py +102 -0
  268. paddlex/inference/pipelines/layout_parsing/__init__.py +15 -0
  269. paddlex/inference/pipelines/layout_parsing/layout_parsing.py +362 -0
  270. paddlex/inference/pipelines/ocr.py +80 -0
  271. paddlex/inference/pipelines/pp_shitu_v2.py +152 -0
  272. paddlex/inference/pipelines/ppchatocrv3/__init__.py +15 -0
  273. paddlex/inference/pipelines/ppchatocrv3/ch_prompt.yaml +14 -0
  274. paddlex/inference/pipelines/ppchatocrv3/ppchatocrv3.py +717 -0
  275. paddlex/inference/pipelines/ppchatocrv3/utils.py +168 -0
  276. paddlex/inference/pipelines/seal_recognition.py +152 -0
  277. paddlex/inference/pipelines/serving/__init__.py +17 -0
  278. paddlex/inference/pipelines/serving/_pipeline_apps/__init__.py +205 -0
  279. paddlex/inference/pipelines/serving/_pipeline_apps/anomaly_detection.py +80 -0
  280. paddlex/inference/pipelines/serving/_pipeline_apps/face_recognition.py +317 -0
  281. paddlex/inference/pipelines/serving/_pipeline_apps/formula_recognition.py +119 -0
  282. paddlex/inference/pipelines/serving/_pipeline_apps/image_classification.py +101 -0
  283. paddlex/inference/pipelines/serving/_pipeline_apps/instance_segmentation.py +112 -0
  284. paddlex/inference/pipelines/serving/_pipeline_apps/layout_parsing.py +205 -0
  285. paddlex/inference/pipelines/serving/_pipeline_apps/multi_label_image_classification.py +90 -0
  286. paddlex/inference/pipelines/serving/_pipeline_apps/object_detection.py +90 -0
  287. paddlex/inference/pipelines/serving/_pipeline_apps/ocr.py +98 -0
  288. paddlex/inference/pipelines/serving/_pipeline_apps/pedestrian_attribute_recognition.py +102 -0
  289. paddlex/inference/pipelines/serving/_pipeline_apps/pp_shitu_v2.py +319 -0
  290. paddlex/inference/pipelines/serving/_pipeline_apps/ppchatocrv3.py +445 -0
  291. paddlex/inference/pipelines/serving/_pipeline_apps/seal_recognition.py +110 -0
  292. paddlex/inference/pipelines/serving/_pipeline_apps/semantic_segmentation.py +82 -0
  293. paddlex/inference/pipelines/serving/_pipeline_apps/small_object_detection.py +92 -0
  294. paddlex/inference/pipelines/serving/_pipeline_apps/table_recognition.py +110 -0
  295. paddlex/inference/pipelines/serving/_pipeline_apps/ts_ad.py +68 -0
  296. paddlex/inference/pipelines/serving/_pipeline_apps/ts_cls.py +68 -0
  297. paddlex/inference/pipelines/serving/_pipeline_apps/ts_fc.py +68 -0
  298. paddlex/inference/pipelines/serving/_pipeline_apps/vehicle_attribute_recognition.py +102 -0
  299. paddlex/inference/pipelines/serving/app.py +164 -0
  300. paddlex/inference/pipelines/serving/models.py +30 -0
  301. paddlex/inference/pipelines/serving/server.py +25 -0
  302. paddlex/inference/pipelines/serving/storage.py +161 -0
  303. paddlex/inference/pipelines/serving/utils.py +190 -0
  304. paddlex/inference/pipelines/single_model_pipeline.py +76 -0
  305. paddlex/inference/pipelines/table_recognition/__init__.py +15 -0
  306. paddlex/inference/pipelines/table_recognition/table_recognition.py +193 -0
  307. paddlex/inference/pipelines/table_recognition/utils.py +457 -0
  308. paddlex/inference/results/__init__.py +31 -0
  309. paddlex/inference/results/attribute_rec.py +89 -0
  310. paddlex/inference/results/base.py +43 -0
  311. paddlex/inference/results/chat_ocr.py +158 -0
  312. paddlex/inference/results/clas.py +133 -0
  313. paddlex/inference/results/det.py +86 -0
  314. paddlex/inference/results/face_rec.py +34 -0
  315. paddlex/inference/results/formula_rec.py +363 -0
  316. paddlex/inference/results/instance_seg.py +152 -0
  317. paddlex/inference/results/ocr.py +157 -0
  318. paddlex/inference/results/seal_rec.py +50 -0
  319. paddlex/inference/results/seg.py +72 -0
  320. paddlex/inference/results/shitu.py +35 -0
  321. paddlex/inference/results/table_rec.py +109 -0
  322. paddlex/inference/results/text_det.py +33 -0
  323. paddlex/inference/results/text_rec.py +66 -0
  324. paddlex/inference/results/ts.py +37 -0
  325. paddlex/inference/results/utils/__init__.py +13 -0
  326. paddlex/inference/results/utils/mixin.py +204 -0
  327. paddlex/inference/results/warp.py +31 -0
  328. paddlex/inference/utils/__init__.py +13 -0
  329. paddlex/inference/utils/benchmark.py +214 -0
  330. paddlex/inference/utils/color_map.py +123 -0
  331. paddlex/inference/utils/get_pipeline_path.py +26 -0
  332. paddlex/inference/utils/io/__init__.py +33 -0
  333. paddlex/inference/utils/io/readers.py +353 -0
  334. paddlex/inference/utils/io/style.py +374 -0
  335. paddlex/inference/utils/io/tablepyxl.py +149 -0
  336. paddlex/inference/utils/io/writers.py +376 -0
  337. paddlex/inference/utils/new_ir_blacklist.py +22 -0
  338. paddlex/inference/utils/official_models.py +286 -0
  339. paddlex/inference/utils/pp_option.py +236 -0
  340. paddlex/inference/utils/process_hook.py +54 -0
  341. paddlex/model.py +106 -0
  342. paddlex/modules/__init__.py +105 -0
  343. paddlex/modules/anomaly_detection/__init__.py +18 -0
  344. paddlex/modules/anomaly_detection/dataset_checker/__init__.py +95 -0
  345. paddlex/modules/anomaly_detection/dataset_checker/dataset_src/__init__.py +19 -0
  346. paddlex/modules/anomaly_detection/dataset_checker/dataset_src/analyse_dataset.py +79 -0
  347. paddlex/modules/anomaly_detection/dataset_checker/dataset_src/check_dataset.py +87 -0
  348. paddlex/modules/anomaly_detection/dataset_checker/dataset_src/convert_dataset.py +230 -0
  349. paddlex/modules/anomaly_detection/dataset_checker/dataset_src/split_dataset.py +87 -0
  350. paddlex/modules/anomaly_detection/dataset_checker/dataset_src/utils/__init__.py +13 -0
  351. paddlex/modules/anomaly_detection/dataset_checker/dataset_src/utils/visualizer.py +71 -0
  352. paddlex/modules/anomaly_detection/evaluator.py +58 -0
  353. paddlex/modules/anomaly_detection/exportor.py +22 -0
  354. paddlex/modules/anomaly_detection/model_list.py +16 -0
  355. paddlex/modules/anomaly_detection/trainer.py +71 -0
  356. paddlex/modules/base/__init__.py +18 -0
  357. paddlex/modules/base/build_model.py +34 -0
  358. paddlex/modules/base/dataset_checker/__init__.py +16 -0
  359. paddlex/modules/base/dataset_checker/dataset_checker.py +164 -0
  360. paddlex/modules/base/dataset_checker/utils.py +110 -0
  361. paddlex/modules/base/evaluator.py +154 -0
  362. paddlex/modules/base/exportor.py +121 -0
  363. paddlex/modules/base/trainer.py +111 -0
  364. paddlex/modules/face_recognition/__init__.py +18 -0
  365. paddlex/modules/face_recognition/dataset_checker/__init__.py +71 -0
  366. paddlex/modules/face_recognition/dataset_checker/dataset_src/__init__.py +16 -0
  367. paddlex/modules/face_recognition/dataset_checker/dataset_src/check_dataset.py +174 -0
  368. paddlex/modules/face_recognition/dataset_checker/dataset_src/utils/__init__.py +13 -0
  369. paddlex/modules/face_recognition/dataset_checker/dataset_src/utils/visualizer.py +156 -0
  370. paddlex/modules/face_recognition/evaluator.py +52 -0
  371. paddlex/modules/face_recognition/exportor.py +22 -0
  372. paddlex/modules/face_recognition/model_list.py +15 -0
  373. paddlex/modules/face_recognition/trainer.py +97 -0
  374. paddlex/modules/formula_recognition/__init__.py +13 -0
  375. paddlex/modules/formula_recognition/model_list.py +17 -0
  376. paddlex/modules/general_recognition/__init__.py +18 -0
  377. paddlex/modules/general_recognition/dataset_checker/__init__.py +107 -0
  378. paddlex/modules/general_recognition/dataset_checker/dataset_src/__init__.py +19 -0
  379. paddlex/modules/general_recognition/dataset_checker/dataset_src/analyse_dataset.py +98 -0
  380. paddlex/modules/general_recognition/dataset_checker/dataset_src/check_dataset.py +100 -0
  381. paddlex/modules/general_recognition/dataset_checker/dataset_src/convert_dataset.py +99 -0
  382. paddlex/modules/general_recognition/dataset_checker/dataset_src/split_dataset.py +82 -0
  383. paddlex/modules/general_recognition/dataset_checker/dataset_src/utils/__init__.py +13 -0
  384. paddlex/modules/general_recognition/dataset_checker/dataset_src/utils/visualizer.py +150 -0
  385. paddlex/modules/general_recognition/evaluator.py +31 -0
  386. paddlex/modules/general_recognition/exportor.py +22 -0
  387. paddlex/modules/general_recognition/model_list.py +19 -0
  388. paddlex/modules/general_recognition/trainer.py +52 -0
  389. paddlex/modules/image_classification/__init__.py +18 -0
  390. paddlex/modules/image_classification/dataset_checker/__init__.py +104 -0
  391. paddlex/modules/image_classification/dataset_checker/dataset_src/__init__.py +19 -0
  392. paddlex/modules/image_classification/dataset_checker/dataset_src/analyse_dataset.py +93 -0
  393. paddlex/modules/image_classification/dataset_checker/dataset_src/check_dataset.py +131 -0
  394. paddlex/modules/image_classification/dataset_checker/dataset_src/convert_dataset.py +51 -0
  395. paddlex/modules/image_classification/dataset_checker/dataset_src/split_dataset.py +81 -0
  396. paddlex/modules/image_classification/dataset_checker/dataset_src/utils/__init__.py +13 -0
  397. paddlex/modules/image_classification/dataset_checker/dataset_src/utils/visualizer.py +156 -0
  398. paddlex/modules/image_classification/evaluator.py +43 -0
  399. paddlex/modules/image_classification/exportor.py +22 -0
  400. paddlex/modules/image_classification/model_list.py +97 -0
  401. paddlex/modules/image_classification/trainer.py +82 -0
  402. paddlex/modules/image_unwarping/__init__.py +13 -0
  403. paddlex/modules/image_unwarping/model_list.py +17 -0
  404. paddlex/modules/instance_segmentation/__init__.py +18 -0
  405. paddlex/modules/instance_segmentation/dataset_checker/__init__.py +93 -0
  406. paddlex/modules/instance_segmentation/dataset_checker/dataset_src/__init__.py +19 -0
  407. paddlex/modules/instance_segmentation/dataset_checker/dataset_src/analyse_dataset.py +78 -0
  408. paddlex/modules/instance_segmentation/dataset_checker/dataset_src/check_dataset.py +92 -0
  409. paddlex/modules/instance_segmentation/dataset_checker/dataset_src/convert_dataset.py +241 -0
  410. paddlex/modules/instance_segmentation/dataset_checker/dataset_src/split_dataset.py +119 -0
  411. paddlex/modules/instance_segmentation/dataset_checker/dataset_src/utils/__init__.py +13 -0
  412. paddlex/modules/instance_segmentation/dataset_checker/dataset_src/utils/visualizer.py +221 -0
  413. paddlex/modules/instance_segmentation/evaluator.py +32 -0
  414. paddlex/modules/instance_segmentation/exportor.py +22 -0
  415. paddlex/modules/instance_segmentation/model_list.py +33 -0
  416. paddlex/modules/instance_segmentation/trainer.py +31 -0
  417. paddlex/modules/multilabel_classification/__init__.py +18 -0
  418. paddlex/modules/multilabel_classification/dataset_checker/__init__.py +106 -0
  419. paddlex/modules/multilabel_classification/dataset_checker/dataset_src/__init__.py +19 -0
  420. paddlex/modules/multilabel_classification/dataset_checker/dataset_src/analyse_dataset.py +95 -0
  421. paddlex/modules/multilabel_classification/dataset_checker/dataset_src/check_dataset.py +131 -0
  422. paddlex/modules/multilabel_classification/dataset_checker/dataset_src/convert_dataset.py +117 -0
  423. paddlex/modules/multilabel_classification/dataset_checker/dataset_src/split_dataset.py +81 -0
  424. paddlex/modules/multilabel_classification/dataset_checker/dataset_src/utils/__init__.py +13 -0
  425. paddlex/modules/multilabel_classification/dataset_checker/dataset_src/utils/visualizer.py +153 -0
  426. paddlex/modules/multilabel_classification/evaluator.py +43 -0
  427. paddlex/modules/multilabel_classification/exportor.py +22 -0
  428. paddlex/modules/multilabel_classification/model_list.py +24 -0
  429. paddlex/modules/multilabel_classification/trainer.py +85 -0
  430. paddlex/modules/object_detection/__init__.py +18 -0
  431. paddlex/modules/object_detection/dataset_checker/__init__.py +115 -0
  432. paddlex/modules/object_detection/dataset_checker/dataset_src/__init__.py +19 -0
  433. paddlex/modules/object_detection/dataset_checker/dataset_src/analyse_dataset.py +80 -0
  434. paddlex/modules/object_detection/dataset_checker/dataset_src/check_dataset.py +86 -0
  435. paddlex/modules/object_detection/dataset_checker/dataset_src/convert_dataset.py +433 -0
  436. paddlex/modules/object_detection/dataset_checker/dataset_src/split_dataset.py +119 -0
  437. paddlex/modules/object_detection/dataset_checker/dataset_src/utils/__init__.py +13 -0
  438. paddlex/modules/object_detection/dataset_checker/dataset_src/utils/visualizer.py +192 -0
  439. paddlex/modules/object_detection/evaluator.py +41 -0
  440. paddlex/modules/object_detection/exportor.py +22 -0
  441. paddlex/modules/object_detection/model_list.py +74 -0
  442. paddlex/modules/object_detection/trainer.py +85 -0
  443. paddlex/modules/semantic_segmentation/__init__.py +18 -0
  444. paddlex/modules/semantic_segmentation/dataset_checker/__init__.py +95 -0
  445. paddlex/modules/semantic_segmentation/dataset_checker/dataset_src/__init__.py +19 -0
  446. paddlex/modules/semantic_segmentation/dataset_checker/dataset_src/analyse_dataset.py +73 -0
  447. paddlex/modules/semantic_segmentation/dataset_checker/dataset_src/check_dataset.py +80 -0
  448. paddlex/modules/semantic_segmentation/dataset_checker/dataset_src/convert_dataset.py +162 -0
  449. paddlex/modules/semantic_segmentation/dataset_checker/dataset_src/split_dataset.py +87 -0
  450. paddlex/modules/semantic_segmentation/dataset_checker/dataset_src/utils/__init__.py +13 -0
  451. paddlex/modules/semantic_segmentation/dataset_checker/dataset_src/utils/visualizer.py +71 -0
  452. paddlex/modules/semantic_segmentation/evaluator.py +58 -0
  453. paddlex/modules/semantic_segmentation/exportor.py +22 -0
  454. paddlex/modules/semantic_segmentation/model_list.py +35 -0
  455. paddlex/modules/semantic_segmentation/trainer.py +71 -0
  456. paddlex/modules/table_recognition/__init__.py +18 -0
  457. paddlex/modules/table_recognition/dataset_checker/__init__.py +83 -0
  458. paddlex/modules/table_recognition/dataset_checker/dataset_src/__init__.py +18 -0
  459. paddlex/modules/table_recognition/dataset_checker/dataset_src/analyse_dataset.py +58 -0
  460. paddlex/modules/table_recognition/dataset_checker/dataset_src/check_dataset.py +87 -0
  461. paddlex/modules/table_recognition/dataset_checker/dataset_src/split_dataset.py +79 -0
  462. paddlex/modules/table_recognition/evaluator.py +43 -0
  463. paddlex/modules/table_recognition/exportor.py +22 -0
  464. paddlex/modules/table_recognition/model_list.py +19 -0
  465. paddlex/modules/table_recognition/trainer.py +70 -0
  466. paddlex/modules/text_detection/__init__.py +18 -0
  467. paddlex/modules/text_detection/dataset_checker/__init__.py +94 -0
  468. paddlex/modules/text_detection/dataset_checker/dataset_src/__init__.py +18 -0
  469. paddlex/modules/text_detection/dataset_checker/dataset_src/analyse_dataset.py +217 -0
  470. paddlex/modules/text_detection/dataset_checker/dataset_src/check_dataset.py +96 -0
  471. paddlex/modules/text_detection/dataset_checker/dataset_src/split_dataset.py +140 -0
  472. paddlex/modules/text_detection/evaluator.py +41 -0
  473. paddlex/modules/text_detection/exportor.py +22 -0
  474. paddlex/modules/text_detection/model_list.py +22 -0
  475. paddlex/modules/text_detection/trainer.py +68 -0
  476. paddlex/modules/text_recognition/__init__.py +18 -0
  477. paddlex/modules/text_recognition/dataset_checker/__init__.py +114 -0
  478. paddlex/modules/text_recognition/dataset_checker/dataset_src/__init__.py +19 -0
  479. paddlex/modules/text_recognition/dataset_checker/dataset_src/analyse_dataset.py +161 -0
  480. paddlex/modules/text_recognition/dataset_checker/dataset_src/check_dataset.py +97 -0
  481. paddlex/modules/text_recognition/dataset_checker/dataset_src/convert_dataset.py +94 -0
  482. paddlex/modules/text_recognition/dataset_checker/dataset_src/split_dataset.py +81 -0
  483. paddlex/modules/text_recognition/evaluator.py +63 -0
  484. paddlex/modules/text_recognition/exportor.py +25 -0
  485. paddlex/modules/text_recognition/model_list.py +20 -0
  486. paddlex/modules/text_recognition/trainer.py +105 -0
  487. paddlex/modules/ts_anomaly_detection/__init__.py +19 -0
  488. paddlex/modules/ts_anomaly_detection/dataset_checker/__init__.py +97 -0
  489. paddlex/modules/ts_anomaly_detection/dataset_checker/dataset_src/__init__.py +19 -0
  490. paddlex/modules/ts_anomaly_detection/dataset_checker/dataset_src/analyse_dataset.py +27 -0
  491. paddlex/modules/ts_anomaly_detection/dataset_checker/dataset_src/check_dataset.py +64 -0
  492. paddlex/modules/ts_anomaly_detection/dataset_checker/dataset_src/convert_dataset.py +78 -0
  493. paddlex/modules/ts_anomaly_detection/dataset_checker/dataset_src/split_dataset.py +63 -0
  494. paddlex/modules/ts_anomaly_detection/evaluator.py +67 -0
  495. paddlex/modules/ts_anomaly_detection/exportor.py +45 -0
  496. paddlex/modules/ts_anomaly_detection/model_list.py +22 -0
  497. paddlex/modules/ts_anomaly_detection/trainer.py +97 -0
  498. paddlex/modules/ts_classification/__init__.py +19 -0
  499. paddlex/modules/ts_classification/dataset_checker/__init__.py +97 -0
  500. paddlex/modules/ts_classification/dataset_checker/dataset_src/__init__.py +19 -0
  501. paddlex/modules/ts_classification/dataset_checker/dataset_src/analyse_dataset.py +74 -0
  502. paddlex/modules/ts_classification/dataset_checker/dataset_src/check_dataset.py +64 -0
  503. paddlex/modules/ts_classification/dataset_checker/dataset_src/convert_dataset.py +78 -0
  504. paddlex/modules/ts_classification/dataset_checker/dataset_src/split_dataset.py +88 -0
  505. paddlex/modules/ts_classification/evaluator.py +66 -0
  506. paddlex/modules/ts_classification/exportor.py +45 -0
  507. paddlex/modules/ts_classification/model_list.py +18 -0
  508. paddlex/modules/ts_classification/trainer.py +92 -0
  509. paddlex/modules/ts_forecast/__init__.py +19 -0
  510. paddlex/modules/ts_forecast/dataset_checker/__init__.py +97 -0
  511. paddlex/modules/ts_forecast/dataset_checker/dataset_src/__init__.py +19 -0
  512. paddlex/modules/ts_forecast/dataset_checker/dataset_src/analyse_dataset.py +27 -0
  513. paddlex/modules/ts_forecast/dataset_checker/dataset_src/check_dataset.py +64 -0
  514. paddlex/modules/ts_forecast/dataset_checker/dataset_src/convert_dataset.py +77 -0
  515. paddlex/modules/ts_forecast/dataset_checker/dataset_src/split_dataset.py +63 -0
  516. paddlex/modules/ts_forecast/evaluator.py +66 -0
  517. paddlex/modules/ts_forecast/exportor.py +45 -0
  518. paddlex/modules/ts_forecast/model_list.py +24 -0
  519. paddlex/modules/ts_forecast/trainer.py +92 -0
  520. paddlex/paddlex_cli.py +197 -0
  521. paddlex/pipelines/OCR.yaml +8 -0
  522. paddlex/pipelines/PP-ChatOCRv3-doc.yaml +27 -0
  523. paddlex/pipelines/PP-ShiTuV2.yaml +13 -0
  524. paddlex/pipelines/anomaly_detection.yaml +7 -0
  525. paddlex/pipelines/face_recognition.yaml +13 -0
  526. paddlex/pipelines/formula_recognition.yaml +8 -0
  527. paddlex/pipelines/image_classification.yaml +7 -0
  528. paddlex/pipelines/instance_segmentation.yaml +7 -0
  529. paddlex/pipelines/layout_parsing.yaml +14 -0
  530. paddlex/pipelines/multi_label_image_classification.yaml +7 -0
  531. paddlex/pipelines/object_detection.yaml +7 -0
  532. paddlex/pipelines/pedestrian_attribute_recognition.yaml +7 -0
  533. paddlex/pipelines/seal_recognition.yaml +10 -0
  534. paddlex/pipelines/semantic_segmentation.yaml +7 -0
  535. paddlex/pipelines/small_object_detection.yaml +7 -0
  536. paddlex/pipelines/table_recognition.yaml +12 -0
  537. paddlex/pipelines/ts_ad.yaml +7 -0
  538. paddlex/pipelines/ts_cls.yaml +7 -0
  539. paddlex/pipelines/ts_fc.yaml +7 -0
  540. paddlex/pipelines/vehicle_attribute_recognition.yaml +7 -0
  541. paddlex/repo_apis/PaddleClas_api/__init__.py +17 -0
  542. paddlex/repo_apis/PaddleClas_api/cls/__init__.py +19 -0
  543. paddlex/repo_apis/PaddleClas_api/cls/config.py +594 -0
  544. paddlex/repo_apis/PaddleClas_api/cls/model.py +349 -0
  545. paddlex/repo_apis/PaddleClas_api/cls/register.py +890 -0
  546. paddlex/repo_apis/PaddleClas_api/cls/runner.py +219 -0
  547. paddlex/repo_apis/PaddleClas_api/shitu_rec/__init__.py +18 -0
  548. paddlex/repo_apis/PaddleClas_api/shitu_rec/config.py +141 -0
  549. paddlex/repo_apis/PaddleClas_api/shitu_rec/model.py +23 -0
  550. paddlex/repo_apis/PaddleClas_api/shitu_rec/register.py +68 -0
  551. paddlex/repo_apis/PaddleClas_api/shitu_rec/runner.py +55 -0
  552. paddlex/repo_apis/PaddleDetection_api/__init__.py +17 -0
  553. paddlex/repo_apis/PaddleDetection_api/config_helper.py +280 -0
  554. paddlex/repo_apis/PaddleDetection_api/instance_seg/__init__.py +18 -0
  555. paddlex/repo_apis/PaddleDetection_api/instance_seg/config.py +454 -0
  556. paddlex/repo_apis/PaddleDetection_api/instance_seg/model.py +397 -0
  557. paddlex/repo_apis/PaddleDetection_api/instance_seg/register.py +263 -0
  558. paddlex/repo_apis/PaddleDetection_api/instance_seg/runner.py +226 -0
  559. paddlex/repo_apis/PaddleDetection_api/object_det/__init__.py +19 -0
  560. paddlex/repo_apis/PaddleDetection_api/object_det/config.py +517 -0
  561. paddlex/repo_apis/PaddleDetection_api/object_det/model.py +424 -0
  562. paddlex/repo_apis/PaddleDetection_api/object_det/official_categories.py +139 -0
  563. paddlex/repo_apis/PaddleDetection_api/object_det/register.py +927 -0
  564. paddlex/repo_apis/PaddleDetection_api/object_det/runner.py +226 -0
  565. paddlex/repo_apis/PaddleNLP_api/__init__.py +13 -0
  566. paddlex/repo_apis/PaddleOCR_api/__init__.py +20 -0
  567. paddlex/repo_apis/PaddleOCR_api/config_utils.py +53 -0
  568. paddlex/repo_apis/PaddleOCR_api/table_rec/__init__.py +16 -0
  569. paddlex/repo_apis/PaddleOCR_api/table_rec/config.py +64 -0
  570. paddlex/repo_apis/PaddleOCR_api/table_rec/model.py +126 -0
  571. paddlex/repo_apis/PaddleOCR_api/table_rec/register.py +53 -0
  572. paddlex/repo_apis/PaddleOCR_api/table_rec/runner.py +51 -0
  573. paddlex/repo_apis/PaddleOCR_api/text_det/__init__.py +16 -0
  574. paddlex/repo_apis/PaddleOCR_api/text_det/config.py +62 -0
  575. paddlex/repo_apis/PaddleOCR_api/text_det/model.py +72 -0
  576. paddlex/repo_apis/PaddleOCR_api/text_det/register.py +72 -0
  577. paddlex/repo_apis/PaddleOCR_api/text_det/runner.py +53 -0
  578. paddlex/repo_apis/PaddleOCR_api/text_rec/__init__.py +16 -0
  579. paddlex/repo_apis/PaddleOCR_api/text_rec/config.py +542 -0
  580. paddlex/repo_apis/PaddleOCR_api/text_rec/model.py +396 -0
  581. paddlex/repo_apis/PaddleOCR_api/text_rec/register.py +80 -0
  582. paddlex/repo_apis/PaddleOCR_api/text_rec/runner.py +240 -0
  583. paddlex/repo_apis/PaddleSeg_api/__init__.py +16 -0
  584. paddlex/repo_apis/PaddleSeg_api/base_seg_config.py +134 -0
  585. paddlex/repo_apis/PaddleSeg_api/seg/__init__.py +16 -0
  586. paddlex/repo_apis/PaddleSeg_api/seg/config.py +177 -0
  587. paddlex/repo_apis/PaddleSeg_api/seg/model.py +481 -0
  588. paddlex/repo_apis/PaddleSeg_api/seg/register.py +253 -0
  589. paddlex/repo_apis/PaddleSeg_api/seg/runner.py +262 -0
  590. paddlex/repo_apis/PaddleTS_api/__init__.py +19 -0
  591. paddlex/repo_apis/PaddleTS_api/ts_ad/__init__.py +16 -0
  592. paddlex/repo_apis/PaddleTS_api/ts_ad/config.py +89 -0
  593. paddlex/repo_apis/PaddleTS_api/ts_ad/register.py +146 -0
  594. paddlex/repo_apis/PaddleTS_api/ts_ad/runner.py +158 -0
  595. paddlex/repo_apis/PaddleTS_api/ts_base/__init__.py +13 -0
  596. paddlex/repo_apis/PaddleTS_api/ts_base/config.py +222 -0
  597. paddlex/repo_apis/PaddleTS_api/ts_base/model.py +272 -0
  598. paddlex/repo_apis/PaddleTS_api/ts_base/runner.py +158 -0
  599. paddlex/repo_apis/PaddleTS_api/ts_cls/__init__.py +16 -0
  600. paddlex/repo_apis/PaddleTS_api/ts_cls/config.py +73 -0
  601. paddlex/repo_apis/PaddleTS_api/ts_cls/register.py +59 -0
  602. paddlex/repo_apis/PaddleTS_api/ts_cls/runner.py +158 -0
  603. paddlex/repo_apis/PaddleTS_api/ts_fc/__init__.py +16 -0
  604. paddlex/repo_apis/PaddleTS_api/ts_fc/config.py +137 -0
  605. paddlex/repo_apis/PaddleTS_api/ts_fc/register.py +186 -0
  606. paddlex/repo_apis/__init__.py +13 -0
  607. paddlex/repo_apis/base/__init__.py +23 -0
  608. paddlex/repo_apis/base/config.py +238 -0
  609. paddlex/repo_apis/base/model.py +571 -0
  610. paddlex/repo_apis/base/register.py +135 -0
  611. paddlex/repo_apis/base/runner.py +390 -0
  612. paddlex/repo_apis/base/utils/__init__.py +13 -0
  613. paddlex/repo_apis/base/utils/arg.py +64 -0
  614. paddlex/repo_apis/base/utils/subprocess.py +107 -0
  615. paddlex/repo_manager/__init__.py +24 -0
  616. paddlex/repo_manager/core.py +271 -0
  617. paddlex/repo_manager/meta.py +143 -0
  618. paddlex/repo_manager/repo.py +396 -0
  619. paddlex/repo_manager/requirements.txt +18 -0
  620. paddlex/repo_manager/utils.py +298 -0
  621. paddlex/utils/__init__.py +1 -12
  622. paddlex/utils/cache.py +148 -0
  623. paddlex/utils/config.py +214 -0
  624. paddlex/utils/device.py +103 -0
  625. paddlex/utils/download.py +168 -182
  626. paddlex/utils/errors/__init__.py +17 -0
  627. paddlex/utils/errors/dataset_checker.py +78 -0
  628. paddlex/utils/errors/others.py +152 -0
  629. paddlex/utils/file_interface.py +212 -0
  630. paddlex/utils/flags.py +61 -0
  631. paddlex/utils/fonts/PingFang-SC-Regular.ttf +0 -0
  632. paddlex/utils/fonts/__init__.py +24 -0
  633. paddlex/utils/func_register.py +41 -0
  634. paddlex/utils/interactive_get_pipeline.py +55 -0
  635. paddlex/utils/lazy_loader.py +66 -0
  636. paddlex/utils/logging.py +132 -33
  637. paddlex/utils/misc.py +201 -0
  638. paddlex/utils/result_saver.py +59 -0
  639. paddlex/utils/subclass_register.py +101 -0
  640. paddlex/version.py +54 -0
  641. paddlex-3.0.0b2.dist-info/LICENSE +169 -0
  642. paddlex-3.0.0b2.dist-info/METADATA +760 -0
  643. paddlex-3.0.0b2.dist-info/RECORD +646 -0
  644. paddlex-3.0.0b2.dist-info/WHEEL +5 -0
  645. paddlex-3.0.0b2.dist-info/entry_points.txt +2 -0
  646. paddlex-3.0.0b2.dist-info/top_level.txt +1 -0
  647. PaddleClas/__init__.py +0 -16
  648. PaddleClas/deploy/__init__.py +0 -1
  649. PaddleClas/deploy/paddleserving/__init__.py +0 -0
  650. PaddleClas/deploy/paddleserving/classification_web_service.py +0 -74
  651. PaddleClas/deploy/paddleserving/cpu_utilization.py +0 -4
  652. PaddleClas/deploy/paddleserving/pipeline_http_client.py +0 -20
  653. PaddleClas/deploy/paddleserving/pipeline_rpc_client.py +0 -33
  654. PaddleClas/deploy/paddleserving/recognition/__init__.py +0 -0
  655. PaddleClas/deploy/paddleserving/recognition/pipeline_http_client.py +0 -21
  656. PaddleClas/deploy/paddleserving/recognition/pipeline_rpc_client.py +0 -34
  657. PaddleClas/deploy/paddleserving/recognition/recognition_web_service.py +0 -209
  658. PaddleClas/deploy/python/__init__.py +0 -0
  659. PaddleClas/deploy/python/build_gallery.py +0 -214
  660. PaddleClas/deploy/python/det_preprocess.py +0 -205
  661. PaddleClas/deploy/python/postprocess.py +0 -161
  662. PaddleClas/deploy/python/predict_cls.py +0 -142
  663. PaddleClas/deploy/python/predict_det.py +0 -158
  664. PaddleClas/deploy/python/predict_rec.py +0 -138
  665. PaddleClas/deploy/python/predict_system.py +0 -144
  666. PaddleClas/deploy/python/preprocess.py +0 -337
  667. PaddleClas/deploy/utils/__init__.py +0 -5
  668. PaddleClas/deploy/utils/config.py +0 -197
  669. PaddleClas/deploy/utils/draw_bbox.py +0 -61
  670. PaddleClas/deploy/utils/encode_decode.py +0 -31
  671. PaddleClas/deploy/utils/get_image_list.py +0 -49
  672. PaddleClas/deploy/utils/logger.py +0 -120
  673. PaddleClas/deploy/utils/predictor.py +0 -71
  674. PaddleClas/deploy/vector_search/__init__.py +0 -1
  675. PaddleClas/deploy/vector_search/interface.py +0 -272
  676. PaddleClas/deploy/vector_search/test.py +0 -34
  677. PaddleClas/hubconf.py +0 -788
  678. PaddleClas/paddleclas.py +0 -552
  679. PaddleClas/ppcls/__init__.py +0 -20
  680. PaddleClas/ppcls/arch/__init__.py +0 -127
  681. PaddleClas/ppcls/arch/backbone/__init__.py +0 -80
  682. PaddleClas/ppcls/arch/backbone/base/__init__.py +0 -0
  683. PaddleClas/ppcls/arch/backbone/base/theseus_layer.py +0 -126
  684. PaddleClas/ppcls/arch/backbone/legendary_models/__init__.py +0 -6
  685. PaddleClas/ppcls/arch/backbone/legendary_models/esnet.py +0 -355
  686. PaddleClas/ppcls/arch/backbone/legendary_models/hrnet.py +0 -744
  687. PaddleClas/ppcls/arch/backbone/legendary_models/inception_v3.py +0 -539
  688. PaddleClas/ppcls/arch/backbone/legendary_models/mobilenet_v1.py +0 -234
  689. PaddleClas/ppcls/arch/backbone/legendary_models/mobilenet_v3.py +0 -561
  690. PaddleClas/ppcls/arch/backbone/legendary_models/pp_lcnet.py +0 -399
  691. PaddleClas/ppcls/arch/backbone/legendary_models/resnet.py +0 -534
  692. PaddleClas/ppcls/arch/backbone/legendary_models/vgg.py +0 -231
  693. PaddleClas/ppcls/arch/backbone/model_zoo/__init__.py +0 -0
  694. PaddleClas/ppcls/arch/backbone/model_zoo/alexnet.py +0 -168
  695. PaddleClas/ppcls/arch/backbone/model_zoo/cspnet.py +0 -376
  696. PaddleClas/ppcls/arch/backbone/model_zoo/darknet.py +0 -197
  697. PaddleClas/ppcls/arch/backbone/model_zoo/densenet.py +0 -344
  698. PaddleClas/ppcls/arch/backbone/model_zoo/distilled_vision_transformer.py +0 -272
  699. PaddleClas/ppcls/arch/backbone/model_zoo/dla.py +0 -528
  700. PaddleClas/ppcls/arch/backbone/model_zoo/dpn.py +0 -451
  701. PaddleClas/ppcls/arch/backbone/model_zoo/efficientnet.py +0 -976
  702. PaddleClas/ppcls/arch/backbone/model_zoo/ghostnet.py +0 -363
  703. PaddleClas/ppcls/arch/backbone/model_zoo/googlenet.py +0 -229
  704. PaddleClas/ppcls/arch/backbone/model_zoo/gvt.py +0 -693
  705. PaddleClas/ppcls/arch/backbone/model_zoo/hardnet.py +0 -293
  706. PaddleClas/ppcls/arch/backbone/model_zoo/inception_v4.py +0 -477
  707. PaddleClas/ppcls/arch/backbone/model_zoo/levit.py +0 -589
  708. PaddleClas/ppcls/arch/backbone/model_zoo/mixnet.py +0 -815
  709. PaddleClas/ppcls/arch/backbone/model_zoo/mobilenet_v2.py +0 -287
  710. PaddleClas/ppcls/arch/backbone/model_zoo/rednet.py +0 -203
  711. PaddleClas/ppcls/arch/backbone/model_zoo/regnet.py +0 -431
  712. PaddleClas/ppcls/arch/backbone/model_zoo/repvgg.py +0 -422
  713. PaddleClas/ppcls/arch/backbone/model_zoo/res2net.py +0 -264
  714. PaddleClas/ppcls/arch/backbone/model_zoo/res2net_vd.py +0 -305
  715. PaddleClas/ppcls/arch/backbone/model_zoo/resnest.py +0 -740
  716. PaddleClas/ppcls/arch/backbone/model_zoo/resnet_vc.py +0 -309
  717. PaddleClas/ppcls/arch/backbone/model_zoo/resnext.py +0 -298
  718. PaddleClas/ppcls/arch/backbone/model_zoo/resnext101_wsl.py +0 -490
  719. PaddleClas/ppcls/arch/backbone/model_zoo/resnext_vd.py +0 -317
  720. PaddleClas/ppcls/arch/backbone/model_zoo/rexnet.py +0 -281
  721. PaddleClas/ppcls/arch/backbone/model_zoo/se_resnet_vd.py +0 -390
  722. PaddleClas/ppcls/arch/backbone/model_zoo/se_resnext.py +0 -364
  723. PaddleClas/ppcls/arch/backbone/model_zoo/se_resnext_vd.py +0 -309
  724. PaddleClas/ppcls/arch/backbone/model_zoo/shufflenet_v2.py +0 -362
  725. PaddleClas/ppcls/arch/backbone/model_zoo/squeezenet.py +0 -194
  726. PaddleClas/ppcls/arch/backbone/model_zoo/swin_transformer.py +0 -857
  727. PaddleClas/ppcls/arch/backbone/model_zoo/tnt.py +0 -385
  728. PaddleClas/ppcls/arch/backbone/model_zoo/vision_transformer.py +0 -495
  729. PaddleClas/ppcls/arch/backbone/model_zoo/xception.py +0 -377
  730. PaddleClas/ppcls/arch/backbone/model_zoo/xception_deeplab.py +0 -421
  731. PaddleClas/ppcls/arch/backbone/variant_models/__init__.py +0 -3
  732. PaddleClas/ppcls/arch/backbone/variant_models/pp_lcnet_variant.py +0 -29
  733. PaddleClas/ppcls/arch/backbone/variant_models/resnet_variant.py +0 -23
  734. PaddleClas/ppcls/arch/backbone/variant_models/vgg_variant.py +0 -28
  735. PaddleClas/ppcls/arch/gears/__init__.py +0 -32
  736. PaddleClas/ppcls/arch/gears/arcmargin.py +0 -72
  737. PaddleClas/ppcls/arch/gears/circlemargin.py +0 -59
  738. PaddleClas/ppcls/arch/gears/cosmargin.py +0 -55
  739. PaddleClas/ppcls/arch/gears/fc.py +0 -35
  740. PaddleClas/ppcls/arch/gears/identity_head.py +0 -9
  741. PaddleClas/ppcls/arch/gears/vehicle_neck.py +0 -52
  742. PaddleClas/ppcls/arch/utils.py +0 -53
  743. PaddleClas/ppcls/data/__init__.py +0 -144
  744. PaddleClas/ppcls/data/dataloader/DistributedRandomIdentitySampler.py +0 -90
  745. PaddleClas/ppcls/data/dataloader/__init__.py +0 -9
  746. PaddleClas/ppcls/data/dataloader/common_dataset.py +0 -84
  747. PaddleClas/ppcls/data/dataloader/dali.py +0 -319
  748. PaddleClas/ppcls/data/dataloader/icartoon_dataset.py +0 -36
  749. PaddleClas/ppcls/data/dataloader/imagenet_dataset.py +0 -38
  750. PaddleClas/ppcls/data/dataloader/logo_dataset.py +0 -46
  751. PaddleClas/ppcls/data/dataloader/mix_dataset.py +0 -49
  752. PaddleClas/ppcls/data/dataloader/mix_sampler.py +0 -79
  753. PaddleClas/ppcls/data/dataloader/multilabel_dataset.py +0 -59
  754. PaddleClas/ppcls/data/dataloader/pk_sampler.py +0 -105
  755. PaddleClas/ppcls/data/dataloader/vehicle_dataset.py +0 -138
  756. PaddleClas/ppcls/data/postprocess/__init__.py +0 -41
  757. PaddleClas/ppcls/data/postprocess/topk.py +0 -85
  758. PaddleClas/ppcls/data/preprocess/__init__.py +0 -100
  759. PaddleClas/ppcls/data/preprocess/batch_ops/__init__.py +0 -1
  760. PaddleClas/ppcls/data/preprocess/batch_ops/batch_operators.py +0 -231
  761. PaddleClas/ppcls/data/preprocess/ops/__init__.py +0 -1
  762. PaddleClas/ppcls/data/preprocess/ops/autoaugment.py +0 -264
  763. PaddleClas/ppcls/data/preprocess/ops/cutout.py +0 -41
  764. PaddleClas/ppcls/data/preprocess/ops/fmix.py +0 -217
  765. PaddleClas/ppcls/data/preprocess/ops/functional.py +0 -138
  766. PaddleClas/ppcls/data/preprocess/ops/grid.py +0 -89
  767. PaddleClas/ppcls/data/preprocess/ops/hide_and_seek.py +0 -44
  768. PaddleClas/ppcls/data/preprocess/ops/operators.py +0 -384
  769. PaddleClas/ppcls/data/preprocess/ops/randaugment.py +0 -106
  770. PaddleClas/ppcls/data/preprocess/ops/random_erasing.py +0 -90
  771. PaddleClas/ppcls/data/preprocess/ops/timm_autoaugment.py +0 -877
  772. PaddleClas/ppcls/data/utils/__init__.py +0 -13
  773. PaddleClas/ppcls/data/utils/get_image_list.py +0 -49
  774. PaddleClas/ppcls/engine/__init__.py +0 -0
  775. PaddleClas/ppcls/engine/engine.py +0 -436
  776. PaddleClas/ppcls/engine/evaluation/__init__.py +0 -16
  777. PaddleClas/ppcls/engine/evaluation/classification.py +0 -143
  778. PaddleClas/ppcls/engine/evaluation/retrieval.py +0 -169
  779. PaddleClas/ppcls/engine/slim/__init__.py +0 -16
  780. PaddleClas/ppcls/engine/slim/prune.py +0 -66
  781. PaddleClas/ppcls/engine/slim/quant.py +0 -55
  782. PaddleClas/ppcls/engine/train/__init__.py +0 -14
  783. PaddleClas/ppcls/engine/train/train.py +0 -79
  784. PaddleClas/ppcls/engine/train/utils.py +0 -72
  785. PaddleClas/ppcls/loss/__init__.py +0 -65
  786. PaddleClas/ppcls/loss/celoss.py +0 -67
  787. PaddleClas/ppcls/loss/centerloss.py +0 -54
  788. PaddleClas/ppcls/loss/comfunc.py +0 -45
  789. PaddleClas/ppcls/loss/deephashloss.py +0 -92
  790. PaddleClas/ppcls/loss/distanceloss.py +0 -43
  791. PaddleClas/ppcls/loss/distillationloss.py +0 -141
  792. PaddleClas/ppcls/loss/dmlloss.py +0 -46
  793. PaddleClas/ppcls/loss/emlloss.py +0 -97
  794. PaddleClas/ppcls/loss/googlenetloss.py +0 -41
  795. PaddleClas/ppcls/loss/msmloss.py +0 -78
  796. PaddleClas/ppcls/loss/multilabelloss.py +0 -43
  797. PaddleClas/ppcls/loss/npairsloss.py +0 -38
  798. PaddleClas/ppcls/loss/pairwisecosface.py +0 -55
  799. PaddleClas/ppcls/loss/supconloss.py +0 -108
  800. PaddleClas/ppcls/loss/trihardloss.py +0 -82
  801. PaddleClas/ppcls/loss/triplet.py +0 -137
  802. PaddleClas/ppcls/metric/__init__.py +0 -51
  803. PaddleClas/ppcls/metric/metrics.py +0 -308
  804. PaddleClas/ppcls/optimizer/__init__.py +0 -72
  805. PaddleClas/ppcls/optimizer/learning_rate.py +0 -326
  806. PaddleClas/ppcls/optimizer/optimizer.py +0 -207
  807. PaddleClas/ppcls/utils/__init__.py +0 -27
  808. PaddleClas/ppcls/utils/check.py +0 -151
  809. PaddleClas/ppcls/utils/config.py +0 -210
  810. PaddleClas/ppcls/utils/download.py +0 -319
  811. PaddleClas/ppcls/utils/ema.py +0 -63
  812. PaddleClas/ppcls/utils/logger.py +0 -137
  813. PaddleClas/ppcls/utils/metrics.py +0 -107
  814. PaddleClas/ppcls/utils/misc.py +0 -63
  815. PaddleClas/ppcls/utils/model_zoo.py +0 -213
  816. PaddleClas/ppcls/utils/profiler.py +0 -111
  817. PaddleClas/ppcls/utils/save_load.py +0 -136
  818. PaddleClas/setup.py +0 -58
  819. PaddleClas/tools/__init__.py +0 -15
  820. PaddleClas/tools/eval.py +0 -31
  821. PaddleClas/tools/export_model.py +0 -34
  822. PaddleClas/tools/infer.py +0 -31
  823. PaddleClas/tools/train.py +0 -32
  824. paddlex/cls.py +0 -82
  825. paddlex/command.py +0 -215
  826. paddlex/cv/__init__.py +0 -17
  827. paddlex/cv/datasets/__init__.py +0 -18
  828. paddlex/cv/datasets/coco.py +0 -208
  829. paddlex/cv/datasets/imagenet.py +0 -88
  830. paddlex/cv/datasets/seg_dataset.py +0 -91
  831. paddlex/cv/datasets/voc.py +0 -445
  832. paddlex/cv/models/__init__.py +0 -18
  833. paddlex/cv/models/base.py +0 -631
  834. paddlex/cv/models/classifier.py +0 -989
  835. paddlex/cv/models/detector.py +0 -2292
  836. paddlex/cv/models/load_model.py +0 -148
  837. paddlex/cv/models/segmenter.py +0 -768
  838. paddlex/cv/models/slim/__init__.py +0 -13
  839. paddlex/cv/models/slim/prune.py +0 -55
  840. paddlex/cv/models/utils/__init__.py +0 -13
  841. paddlex/cv/models/utils/det_metrics/__init__.py +0 -15
  842. paddlex/cv/models/utils/det_metrics/coco_utils.py +0 -476
  843. paddlex/cv/models/utils/det_metrics/metrics.py +0 -220
  844. paddlex/cv/models/utils/infer_nets.py +0 -45
  845. paddlex/cv/models/utils/seg_metrics.py +0 -62
  846. paddlex/cv/models/utils/visualize.py +0 -399
  847. paddlex/cv/transforms/__init__.py +0 -46
  848. paddlex/cv/transforms/batch_operators.py +0 -286
  849. paddlex/cv/transforms/box_utils.py +0 -41
  850. paddlex/cv/transforms/functions.py +0 -193
  851. paddlex/cv/transforms/operators.py +0 -1402
  852. paddlex/deploy.py +0 -268
  853. paddlex/det.py +0 -49
  854. paddlex/paddleseg/__init__.py +0 -17
  855. paddlex/paddleseg/core/__init__.py +0 -20
  856. paddlex/paddleseg/core/infer.py +0 -289
  857. paddlex/paddleseg/core/predict.py +0 -145
  858. paddlex/paddleseg/core/train.py +0 -258
  859. paddlex/paddleseg/core/val.py +0 -172
  860. paddlex/paddleseg/cvlibs/__init__.py +0 -17
  861. paddlex/paddleseg/cvlibs/callbacks.py +0 -279
  862. paddlex/paddleseg/cvlibs/config.py +0 -359
  863. paddlex/paddleseg/cvlibs/manager.py +0 -142
  864. paddlex/paddleseg/cvlibs/param_init.py +0 -91
  865. paddlex/paddleseg/datasets/__init__.py +0 -21
  866. paddlex/paddleseg/datasets/ade.py +0 -112
  867. paddlex/paddleseg/datasets/cityscapes.py +0 -86
  868. paddlex/paddleseg/datasets/cocostuff.py +0 -79
  869. paddlex/paddleseg/datasets/dataset.py +0 -164
  870. paddlex/paddleseg/datasets/mini_deep_globe_road_extraction.py +0 -95
  871. paddlex/paddleseg/datasets/optic_disc_seg.py +0 -97
  872. paddlex/paddleseg/datasets/pascal_context.py +0 -80
  873. paddlex/paddleseg/datasets/voc.py +0 -113
  874. paddlex/paddleseg/models/__init__.py +0 -39
  875. paddlex/paddleseg/models/ann.py +0 -436
  876. paddlex/paddleseg/models/attention_unet.py +0 -189
  877. paddlex/paddleseg/models/backbones/__init__.py +0 -18
  878. paddlex/paddleseg/models/backbones/hrnet.py +0 -815
  879. paddlex/paddleseg/models/backbones/mobilenetv3.py +0 -365
  880. paddlex/paddleseg/models/backbones/resnet_vd.py +0 -364
  881. paddlex/paddleseg/models/backbones/xception_deeplab.py +0 -415
  882. paddlex/paddleseg/models/bisenet.py +0 -311
  883. paddlex/paddleseg/models/danet.py +0 -220
  884. paddlex/paddleseg/models/decoupled_segnet.py +0 -233
  885. paddlex/paddleseg/models/deeplab.py +0 -258
  886. paddlex/paddleseg/models/dnlnet.py +0 -231
  887. paddlex/paddleseg/models/emanet.py +0 -219
  888. paddlex/paddleseg/models/fast_scnn.py +0 -318
  889. paddlex/paddleseg/models/fcn.py +0 -135
  890. paddlex/paddleseg/models/gcnet.py +0 -223
  891. paddlex/paddleseg/models/gscnn.py +0 -357
  892. paddlex/paddleseg/models/hardnet.py +0 -309
  893. paddlex/paddleseg/models/isanet.py +0 -202
  894. paddlex/paddleseg/models/layers/__init__.py +0 -19
  895. paddlex/paddleseg/models/layers/activation.py +0 -73
  896. paddlex/paddleseg/models/layers/attention.py +0 -146
  897. paddlex/paddleseg/models/layers/layer_libs.py +0 -168
  898. paddlex/paddleseg/models/layers/nonlocal2d.py +0 -155
  899. paddlex/paddleseg/models/layers/pyramid_pool.py +0 -182
  900. paddlex/paddleseg/models/losses/__init__.py +0 -27
  901. paddlex/paddleseg/models/losses/binary_cross_entropy_loss.py +0 -174
  902. paddlex/paddleseg/models/losses/bootstrapped_cross_entropy.py +0 -73
  903. paddlex/paddleseg/models/losses/cross_entropy_loss.py +0 -94
  904. paddlex/paddleseg/models/losses/decoupledsegnet_relax_boundary_loss.py +0 -129
  905. paddlex/paddleseg/models/losses/dice_loss.py +0 -61
  906. paddlex/paddleseg/models/losses/edge_attention_loss.py +0 -78
  907. paddlex/paddleseg/models/losses/gscnn_dual_task_loss.py +0 -141
  908. paddlex/paddleseg/models/losses/l1_loss.py +0 -76
  909. paddlex/paddleseg/models/losses/lovasz_loss.py +0 -222
  910. paddlex/paddleseg/models/losses/mean_square_error_loss.py +0 -65
  911. paddlex/paddleseg/models/losses/mixed_loss.py +0 -58
  912. paddlex/paddleseg/models/losses/ohem_cross_entropy_loss.py +0 -99
  913. paddlex/paddleseg/models/losses/ohem_edge_attention_loss.py +0 -114
  914. paddlex/paddleseg/models/ocrnet.py +0 -248
  915. paddlex/paddleseg/models/pspnet.py +0 -147
  916. paddlex/paddleseg/models/sfnet.py +0 -236
  917. paddlex/paddleseg/models/shufflenet_slim.py +0 -268
  918. paddlex/paddleseg/models/u2net.py +0 -574
  919. paddlex/paddleseg/models/unet.py +0 -155
  920. paddlex/paddleseg/models/unet_3plus.py +0 -316
  921. paddlex/paddleseg/models/unet_plusplus.py +0 -237
  922. paddlex/paddleseg/transforms/__init__.py +0 -16
  923. paddlex/paddleseg/transforms/functional.py +0 -161
  924. paddlex/paddleseg/transforms/transforms.py +0 -937
  925. paddlex/paddleseg/utils/__init__.py +0 -22
  926. paddlex/paddleseg/utils/config_check.py +0 -60
  927. paddlex/paddleseg/utils/download.py +0 -163
  928. paddlex/paddleseg/utils/env/__init__.py +0 -16
  929. paddlex/paddleseg/utils/env/seg_env.py +0 -56
  930. paddlex/paddleseg/utils/env/sys_env.py +0 -122
  931. paddlex/paddleseg/utils/logger.py +0 -48
  932. paddlex/paddleseg/utils/metrics.py +0 -146
  933. paddlex/paddleseg/utils/progbar.py +0 -212
  934. paddlex/paddleseg/utils/timer.py +0 -53
  935. paddlex/paddleseg/utils/utils.py +0 -120
  936. paddlex/paddleseg/utils/visualize.py +0 -90
  937. paddlex/ppcls/__init__.py +0 -20
  938. paddlex/ppcls/arch/__init__.py +0 -127
  939. paddlex/ppcls/arch/backbone/__init__.py +0 -80
  940. paddlex/ppcls/arch/backbone/base/__init__.py +0 -0
  941. paddlex/ppcls/arch/backbone/base/theseus_layer.py +0 -130
  942. paddlex/ppcls/arch/backbone/legendary_models/__init__.py +0 -6
  943. paddlex/ppcls/arch/backbone/legendary_models/esnet.py +0 -355
  944. paddlex/ppcls/arch/backbone/legendary_models/hrnet.py +0 -748
  945. paddlex/ppcls/arch/backbone/legendary_models/inception_v3.py +0 -539
  946. paddlex/ppcls/arch/backbone/legendary_models/mobilenet_v1.py +0 -234
  947. paddlex/ppcls/arch/backbone/legendary_models/mobilenet_v3.py +0 -561
  948. paddlex/ppcls/arch/backbone/legendary_models/pp_lcnet.py +0 -399
  949. paddlex/ppcls/arch/backbone/legendary_models/resnet.py +0 -534
  950. paddlex/ppcls/arch/backbone/legendary_models/vgg.py +0 -235
  951. paddlex/ppcls/arch/backbone/model_zoo/__init__.py +0 -0
  952. paddlex/ppcls/arch/backbone/model_zoo/alexnet.py +0 -168
  953. paddlex/ppcls/arch/backbone/model_zoo/cspnet.py +0 -376
  954. paddlex/ppcls/arch/backbone/model_zoo/darknet.py +0 -197
  955. paddlex/ppcls/arch/backbone/model_zoo/densenet.py +0 -344
  956. paddlex/ppcls/arch/backbone/model_zoo/distilled_vision_transformer.py +0 -272
  957. paddlex/ppcls/arch/backbone/model_zoo/dla.py +0 -528
  958. paddlex/ppcls/arch/backbone/model_zoo/dpn.py +0 -451
  959. paddlex/ppcls/arch/backbone/model_zoo/efficientnet.py +0 -976
  960. paddlex/ppcls/arch/backbone/model_zoo/ghostnet.py +0 -363
  961. paddlex/ppcls/arch/backbone/model_zoo/googlenet.py +0 -229
  962. paddlex/ppcls/arch/backbone/model_zoo/gvt.py +0 -693
  963. paddlex/ppcls/arch/backbone/model_zoo/hardnet.py +0 -293
  964. paddlex/ppcls/arch/backbone/model_zoo/inception_v4.py +0 -477
  965. paddlex/ppcls/arch/backbone/model_zoo/levit.py +0 -589
  966. paddlex/ppcls/arch/backbone/model_zoo/mixnet.py +0 -815
  967. paddlex/ppcls/arch/backbone/model_zoo/mobilenet_v2.py +0 -287
  968. paddlex/ppcls/arch/backbone/model_zoo/rednet.py +0 -203
  969. paddlex/ppcls/arch/backbone/model_zoo/regnet.py +0 -431
  970. paddlex/ppcls/arch/backbone/model_zoo/repvgg.py +0 -422
  971. paddlex/ppcls/arch/backbone/model_zoo/res2net.py +0 -264
  972. paddlex/ppcls/arch/backbone/model_zoo/res2net_vd.py +0 -305
  973. paddlex/ppcls/arch/backbone/model_zoo/resnest.py +0 -740
  974. paddlex/ppcls/arch/backbone/model_zoo/resnet_vc.py +0 -309
  975. paddlex/ppcls/arch/backbone/model_zoo/resnext.py +0 -298
  976. paddlex/ppcls/arch/backbone/model_zoo/resnext101_wsl.py +0 -490
  977. paddlex/ppcls/arch/backbone/model_zoo/resnext_vd.py +0 -317
  978. paddlex/ppcls/arch/backbone/model_zoo/rexnet.py +0 -281
  979. paddlex/ppcls/arch/backbone/model_zoo/se_resnet_vd.py +0 -390
  980. paddlex/ppcls/arch/backbone/model_zoo/se_resnext.py +0 -364
  981. paddlex/ppcls/arch/backbone/model_zoo/se_resnext_vd.py +0 -309
  982. paddlex/ppcls/arch/backbone/model_zoo/shufflenet_v2.py +0 -362
  983. paddlex/ppcls/arch/backbone/model_zoo/squeezenet.py +0 -194
  984. paddlex/ppcls/arch/backbone/model_zoo/swin_transformer.py +0 -857
  985. paddlex/ppcls/arch/backbone/model_zoo/tnt.py +0 -385
  986. paddlex/ppcls/arch/backbone/model_zoo/vision_transformer.py +0 -495
  987. paddlex/ppcls/arch/backbone/model_zoo/xception.py +0 -377
  988. paddlex/ppcls/arch/backbone/model_zoo/xception_deeplab.py +0 -421
  989. paddlex/ppcls/arch/backbone/variant_models/__init__.py +0 -3
  990. paddlex/ppcls/arch/backbone/variant_models/pp_lcnet_variant.py +0 -29
  991. paddlex/ppcls/arch/backbone/variant_models/resnet_variant.py +0 -23
  992. paddlex/ppcls/arch/backbone/variant_models/vgg_variant.py +0 -28
  993. paddlex/ppcls/arch/gears/__init__.py +0 -32
  994. paddlex/ppcls/arch/gears/arcmargin.py +0 -72
  995. paddlex/ppcls/arch/gears/circlemargin.py +0 -59
  996. paddlex/ppcls/arch/gears/cosmargin.py +0 -55
  997. paddlex/ppcls/arch/gears/fc.py +0 -35
  998. paddlex/ppcls/arch/gears/identity_head.py +0 -9
  999. paddlex/ppcls/arch/gears/vehicle_neck.py +0 -52
  1000. paddlex/ppcls/arch/utils.py +0 -53
  1001. paddlex/ppcls/data/__init__.py +0 -144
  1002. paddlex/ppcls/data/dataloader/DistributedRandomIdentitySampler.py +0 -90
  1003. paddlex/ppcls/data/dataloader/__init__.py +0 -9
  1004. paddlex/ppcls/data/dataloader/common_dataset.py +0 -84
  1005. paddlex/ppcls/data/dataloader/dali.py +0 -319
  1006. paddlex/ppcls/data/dataloader/icartoon_dataset.py +0 -36
  1007. paddlex/ppcls/data/dataloader/imagenet_dataset.py +0 -38
  1008. paddlex/ppcls/data/dataloader/logo_dataset.py +0 -46
  1009. paddlex/ppcls/data/dataloader/mix_dataset.py +0 -49
  1010. paddlex/ppcls/data/dataloader/mix_sampler.py +0 -79
  1011. paddlex/ppcls/data/dataloader/multilabel_dataset.py +0 -59
  1012. paddlex/ppcls/data/dataloader/pk_sampler.py +0 -105
  1013. paddlex/ppcls/data/dataloader/vehicle_dataset.py +0 -138
  1014. paddlex/ppcls/data/postprocess/__init__.py +0 -41
  1015. paddlex/ppcls/data/postprocess/topk.py +0 -85
  1016. paddlex/ppcls/data/preprocess/__init__.py +0 -100
  1017. paddlex/ppcls/data/preprocess/batch_ops/__init__.py +0 -0
  1018. paddlex/ppcls/data/preprocess/batch_ops/batch_operators.py +0 -231
  1019. paddlex/ppcls/data/preprocess/ops/__init__.py +0 -0
  1020. paddlex/ppcls/data/preprocess/ops/autoaugment.py +0 -264
  1021. paddlex/ppcls/data/preprocess/ops/cutout.py +0 -41
  1022. paddlex/ppcls/data/preprocess/ops/fmix.py +0 -217
  1023. paddlex/ppcls/data/preprocess/ops/functional.py +0 -141
  1024. paddlex/ppcls/data/preprocess/ops/grid.py +0 -89
  1025. paddlex/ppcls/data/preprocess/ops/hide_and_seek.py +0 -44
  1026. paddlex/ppcls/data/preprocess/ops/operators.py +0 -384
  1027. paddlex/ppcls/data/preprocess/ops/randaugment.py +0 -106
  1028. paddlex/ppcls/data/preprocess/ops/random_erasing.py +0 -90
  1029. paddlex/ppcls/data/preprocess/ops/timm_autoaugment.py +0 -877
  1030. paddlex/ppcls/data/utils/__init__.py +0 -13
  1031. paddlex/ppcls/data/utils/get_image_list.py +0 -49
  1032. paddlex/ppcls/engine/__init__.py +0 -0
  1033. paddlex/ppcls/engine/engine.py +0 -436
  1034. paddlex/ppcls/engine/evaluation/__init__.py +0 -16
  1035. paddlex/ppcls/engine/evaluation/classification.py +0 -143
  1036. paddlex/ppcls/engine/evaluation/retrieval.py +0 -169
  1037. paddlex/ppcls/engine/slim/__init__.py +0 -16
  1038. paddlex/ppcls/engine/slim/prune.py +0 -66
  1039. paddlex/ppcls/engine/slim/quant.py +0 -55
  1040. paddlex/ppcls/engine/train/__init__.py +0 -14
  1041. paddlex/ppcls/engine/train/train.py +0 -79
  1042. paddlex/ppcls/engine/train/utils.py +0 -72
  1043. paddlex/ppcls/loss/__init__.py +0 -65
  1044. paddlex/ppcls/loss/celoss.py +0 -67
  1045. paddlex/ppcls/loss/centerloss.py +0 -54
  1046. paddlex/ppcls/loss/comfunc.py +0 -45
  1047. paddlex/ppcls/loss/deephashloss.py +0 -96
  1048. paddlex/ppcls/loss/distanceloss.py +0 -43
  1049. paddlex/ppcls/loss/distillationloss.py +0 -141
  1050. paddlex/ppcls/loss/dmlloss.py +0 -46
  1051. paddlex/ppcls/loss/emlloss.py +0 -97
  1052. paddlex/ppcls/loss/googlenetloss.py +0 -42
  1053. paddlex/ppcls/loss/msmloss.py +0 -78
  1054. paddlex/ppcls/loss/multilabelloss.py +0 -43
  1055. paddlex/ppcls/loss/npairsloss.py +0 -38
  1056. paddlex/ppcls/loss/pairwisecosface.py +0 -59
  1057. paddlex/ppcls/loss/supconloss.py +0 -108
  1058. paddlex/ppcls/loss/trihardloss.py +0 -82
  1059. paddlex/ppcls/loss/triplet.py +0 -137
  1060. paddlex/ppcls/metric/__init__.py +0 -51
  1061. paddlex/ppcls/metric/metrics.py +0 -308
  1062. paddlex/ppcls/optimizer/__init__.py +0 -72
  1063. paddlex/ppcls/optimizer/learning_rate.py +0 -326
  1064. paddlex/ppcls/optimizer/optimizer.py +0 -208
  1065. paddlex/ppcls/utils/__init__.py +0 -27
  1066. paddlex/ppcls/utils/check.py +0 -151
  1067. paddlex/ppcls/utils/config.py +0 -210
  1068. paddlex/ppcls/utils/download.py +0 -319
  1069. paddlex/ppcls/utils/ema.py +0 -63
  1070. paddlex/ppcls/utils/logger.py +0 -137
  1071. paddlex/ppcls/utils/metrics.py +0 -112
  1072. paddlex/ppcls/utils/misc.py +0 -63
  1073. paddlex/ppcls/utils/model_zoo.py +0 -213
  1074. paddlex/ppcls/utils/profiler.py +0 -111
  1075. paddlex/ppcls/utils/save_load.py +0 -136
  1076. paddlex/ppdet/__init__.py +0 -16
  1077. paddlex/ppdet/core/__init__.py +0 -15
  1078. paddlex/ppdet/core/config/__init__.py +0 -13
  1079. paddlex/ppdet/core/config/schema.py +0 -248
  1080. paddlex/ppdet/core/config/yaml_helpers.py +0 -118
  1081. paddlex/ppdet/core/workspace.py +0 -278
  1082. paddlex/ppdet/data/__init__.py +0 -21
  1083. paddlex/ppdet/data/crop_utils/__init__.py +0 -13
  1084. paddlex/ppdet/data/crop_utils/annotation_cropper.py +0 -585
  1085. paddlex/ppdet/data/crop_utils/chip_box_utils.py +0 -170
  1086. paddlex/ppdet/data/reader.py +0 -302
  1087. paddlex/ppdet/data/shm_utils.py +0 -67
  1088. paddlex/ppdet/data/source/__init__.py +0 -29
  1089. paddlex/ppdet/data/source/category.py +0 -904
  1090. paddlex/ppdet/data/source/coco.py +0 -251
  1091. paddlex/ppdet/data/source/dataset.py +0 -197
  1092. paddlex/ppdet/data/source/keypoint_coco.py +0 -669
  1093. paddlex/ppdet/data/source/mot.py +0 -636
  1094. paddlex/ppdet/data/source/sniper_coco.py +0 -191
  1095. paddlex/ppdet/data/source/voc.py +0 -231
  1096. paddlex/ppdet/data/source/widerface.py +0 -180
  1097. paddlex/ppdet/data/transform/__init__.py +0 -28
  1098. paddlex/ppdet/data/transform/atss_assigner.py +0 -270
  1099. paddlex/ppdet/data/transform/autoaugment_utils.py +0 -1591
  1100. paddlex/ppdet/data/transform/batch_operators.py +0 -1080
  1101. paddlex/ppdet/data/transform/gridmask_utils.py +0 -86
  1102. paddlex/ppdet/data/transform/keypoint_operators.py +0 -868
  1103. paddlex/ppdet/data/transform/mot_operators.py +0 -628
  1104. paddlex/ppdet/data/transform/op_helper.py +0 -498
  1105. paddlex/ppdet/data/transform/operators.py +0 -3025
  1106. paddlex/ppdet/engine/__init__.py +0 -30
  1107. paddlex/ppdet/engine/callbacks.py +0 -340
  1108. paddlex/ppdet/engine/env.py +0 -50
  1109. paddlex/ppdet/engine/export_utils.py +0 -177
  1110. paddlex/ppdet/engine/tracker.py +0 -538
  1111. paddlex/ppdet/engine/trainer.py +0 -723
  1112. paddlex/ppdet/metrics/__init__.py +0 -29
  1113. paddlex/ppdet/metrics/coco_utils.py +0 -184
  1114. paddlex/ppdet/metrics/json_results.py +0 -149
  1115. paddlex/ppdet/metrics/keypoint_metrics.py +0 -401
  1116. paddlex/ppdet/metrics/map_utils.py +0 -444
  1117. paddlex/ppdet/metrics/mcmot_metrics.py +0 -470
  1118. paddlex/ppdet/metrics/metrics.py +0 -434
  1119. paddlex/ppdet/metrics/mot_metrics.py +0 -1236
  1120. paddlex/ppdet/metrics/munkres.py +0 -428
  1121. paddlex/ppdet/metrics/widerface_utils.py +0 -393
  1122. paddlex/ppdet/model_zoo/__init__.py +0 -18
  1123. paddlex/ppdet/model_zoo/model_zoo.py +0 -84
  1124. paddlex/ppdet/modeling/__init__.py +0 -45
  1125. paddlex/ppdet/modeling/architectures/__init__.py +0 -51
  1126. paddlex/ppdet/modeling/architectures/blazeface.py +0 -91
  1127. paddlex/ppdet/modeling/architectures/cascade_rcnn.py +0 -144
  1128. paddlex/ppdet/modeling/architectures/centernet.py +0 -108
  1129. paddlex/ppdet/modeling/architectures/deepsort.py +0 -69
  1130. paddlex/ppdet/modeling/architectures/detr.py +0 -93
  1131. paddlex/ppdet/modeling/architectures/fairmot.py +0 -100
  1132. paddlex/ppdet/modeling/architectures/faster_rcnn.py +0 -106
  1133. paddlex/ppdet/modeling/architectures/fcos.py +0 -105
  1134. paddlex/ppdet/modeling/architectures/gfl.py +0 -87
  1135. paddlex/ppdet/modeling/architectures/jde.py +0 -111
  1136. paddlex/ppdet/modeling/architectures/keypoint_hrhrnet.py +0 -287
  1137. paddlex/ppdet/modeling/architectures/keypoint_hrnet.py +0 -267
  1138. paddlex/ppdet/modeling/architectures/mask_rcnn.py +0 -135
  1139. paddlex/ppdet/modeling/architectures/meta_arch.py +0 -128
  1140. paddlex/ppdet/modeling/architectures/picodet.py +0 -91
  1141. paddlex/ppdet/modeling/architectures/s2anet.py +0 -102
  1142. paddlex/ppdet/modeling/architectures/solov2.py +0 -110
  1143. paddlex/ppdet/modeling/architectures/sparse_rcnn.py +0 -99
  1144. paddlex/ppdet/modeling/architectures/ssd.py +0 -93
  1145. paddlex/ppdet/modeling/architectures/tood.py +0 -78
  1146. paddlex/ppdet/modeling/architectures/ttfnet.py +0 -98
  1147. paddlex/ppdet/modeling/architectures/yolo.py +0 -124
  1148. paddlex/ppdet/modeling/assigners/__init__.py +0 -23
  1149. paddlex/ppdet/modeling/assigners/atss_assigner.py +0 -211
  1150. paddlex/ppdet/modeling/assigners/simota_assigner.py +0 -262
  1151. paddlex/ppdet/modeling/assigners/task_aligned_assigner.py +0 -158
  1152. paddlex/ppdet/modeling/assigners/utils.py +0 -195
  1153. paddlex/ppdet/modeling/backbones/__init__.py +0 -49
  1154. paddlex/ppdet/modeling/backbones/blazenet.py +0 -323
  1155. paddlex/ppdet/modeling/backbones/darknet.py +0 -340
  1156. paddlex/ppdet/modeling/backbones/dla.py +0 -244
  1157. paddlex/ppdet/modeling/backbones/esnet.py +0 -290
  1158. paddlex/ppdet/modeling/backbones/ghostnet.py +0 -470
  1159. paddlex/ppdet/modeling/backbones/hardnet.py +0 -224
  1160. paddlex/ppdet/modeling/backbones/hrnet.py +0 -727
  1161. paddlex/ppdet/modeling/backbones/lcnet.py +0 -259
  1162. paddlex/ppdet/modeling/backbones/lite_hrnet.py +0 -886
  1163. paddlex/ppdet/modeling/backbones/mobilenet_v1.py +0 -418
  1164. paddlex/ppdet/modeling/backbones/mobilenet_v3.py +0 -483
  1165. paddlex/ppdet/modeling/backbones/name_adapter.py +0 -69
  1166. paddlex/ppdet/modeling/backbones/res2net.py +0 -358
  1167. paddlex/ppdet/modeling/backbones/resnet.py +0 -613
  1168. paddlex/ppdet/modeling/backbones/senet.py +0 -139
  1169. paddlex/ppdet/modeling/backbones/shufflenet_v2.py +0 -246
  1170. paddlex/ppdet/modeling/backbones/swin_transformer.py +0 -743
  1171. paddlex/ppdet/modeling/backbones/vgg.py +0 -210
  1172. paddlex/ppdet/modeling/bbox_utils.py +0 -778
  1173. paddlex/ppdet/modeling/heads/__init__.py +0 -53
  1174. paddlex/ppdet/modeling/heads/bbox_head.py +0 -377
  1175. paddlex/ppdet/modeling/heads/cascade_head.py +0 -284
  1176. paddlex/ppdet/modeling/heads/centernet_head.py +0 -292
  1177. paddlex/ppdet/modeling/heads/detr_head.py +0 -368
  1178. paddlex/ppdet/modeling/heads/face_head.py +0 -110
  1179. paddlex/ppdet/modeling/heads/fcos_head.py +0 -259
  1180. paddlex/ppdet/modeling/heads/gfl_head.py +0 -487
  1181. paddlex/ppdet/modeling/heads/keypoint_hrhrnet_head.py +0 -108
  1182. paddlex/ppdet/modeling/heads/mask_head.py +0 -250
  1183. paddlex/ppdet/modeling/heads/pico_head.py +0 -278
  1184. paddlex/ppdet/modeling/heads/roi_extractor.py +0 -111
  1185. paddlex/ppdet/modeling/heads/s2anet_head.py +0 -1056
  1186. paddlex/ppdet/modeling/heads/simota_head.py +0 -506
  1187. paddlex/ppdet/modeling/heads/solov2_head.py +0 -560
  1188. paddlex/ppdet/modeling/heads/sparsercnn_head.py +0 -375
  1189. paddlex/ppdet/modeling/heads/ssd_head.py +0 -215
  1190. paddlex/ppdet/modeling/heads/tood_head.py +0 -366
  1191. paddlex/ppdet/modeling/heads/ttf_head.py +0 -316
  1192. paddlex/ppdet/modeling/heads/yolo_head.py +0 -124
  1193. paddlex/ppdet/modeling/initializer.py +0 -317
  1194. paddlex/ppdet/modeling/keypoint_utils.py +0 -342
  1195. paddlex/ppdet/modeling/layers.py +0 -1430
  1196. paddlex/ppdet/modeling/losses/__init__.py +0 -43
  1197. paddlex/ppdet/modeling/losses/ctfocal_loss.py +0 -68
  1198. paddlex/ppdet/modeling/losses/detr_loss.py +0 -233
  1199. paddlex/ppdet/modeling/losses/fairmot_loss.py +0 -41
  1200. paddlex/ppdet/modeling/losses/fcos_loss.py +0 -225
  1201. paddlex/ppdet/modeling/losses/gfocal_loss.py +0 -217
  1202. paddlex/ppdet/modeling/losses/iou_aware_loss.py +0 -47
  1203. paddlex/ppdet/modeling/losses/iou_loss.py +0 -210
  1204. paddlex/ppdet/modeling/losses/jde_loss.py +0 -193
  1205. paddlex/ppdet/modeling/losses/keypoint_loss.py +0 -229
  1206. paddlex/ppdet/modeling/losses/solov2_loss.py +0 -101
  1207. paddlex/ppdet/modeling/losses/sparsercnn_loss.py +0 -425
  1208. paddlex/ppdet/modeling/losses/ssd_loss.py +0 -170
  1209. paddlex/ppdet/modeling/losses/varifocal_loss.py +0 -152
  1210. paddlex/ppdet/modeling/losses/yolo_loss.py +0 -212
  1211. paddlex/ppdet/modeling/mot/__init__.py +0 -25
  1212. paddlex/ppdet/modeling/mot/matching/__init__.py +0 -19
  1213. paddlex/ppdet/modeling/mot/matching/deepsort_matching.py +0 -382
  1214. paddlex/ppdet/modeling/mot/matching/jde_matching.py +0 -144
  1215. paddlex/ppdet/modeling/mot/motion/__init__.py +0 -17
  1216. paddlex/ppdet/modeling/mot/motion/kalman_filter.py +0 -270
  1217. paddlex/ppdet/modeling/mot/tracker/__init__.py +0 -23
  1218. paddlex/ppdet/modeling/mot/tracker/base_jde_tracker.py +0 -297
  1219. paddlex/ppdet/modeling/mot/tracker/base_sde_tracker.py +0 -156
  1220. paddlex/ppdet/modeling/mot/tracker/deepsort_tracker.py +0 -188
  1221. paddlex/ppdet/modeling/mot/tracker/jde_tracker.py +0 -277
  1222. paddlex/ppdet/modeling/mot/utils.py +0 -263
  1223. paddlex/ppdet/modeling/mot/visualization.py +0 -150
  1224. paddlex/ppdet/modeling/necks/__init__.py +0 -30
  1225. paddlex/ppdet/modeling/necks/bifpn.py +0 -302
  1226. paddlex/ppdet/modeling/necks/blazeface_fpn.py +0 -216
  1227. paddlex/ppdet/modeling/necks/centernet_fpn.py +0 -426
  1228. paddlex/ppdet/modeling/necks/csp_pan.py +0 -364
  1229. paddlex/ppdet/modeling/necks/fpn.py +0 -231
  1230. paddlex/ppdet/modeling/necks/hrfpn.py +0 -126
  1231. paddlex/ppdet/modeling/necks/ttf_fpn.py +0 -242
  1232. paddlex/ppdet/modeling/necks/yolo_fpn.py +0 -988
  1233. paddlex/ppdet/modeling/ops.py +0 -1611
  1234. paddlex/ppdet/modeling/post_process.py +0 -731
  1235. paddlex/ppdet/modeling/proposal_generator/__init__.py +0 -2
  1236. paddlex/ppdet/modeling/proposal_generator/anchor_generator.py +0 -135
  1237. paddlex/ppdet/modeling/proposal_generator/proposal_generator.py +0 -77
  1238. paddlex/ppdet/modeling/proposal_generator/rpn_head.py +0 -260
  1239. paddlex/ppdet/modeling/proposal_generator/target.py +0 -681
  1240. paddlex/ppdet/modeling/proposal_generator/target_layer.py +0 -491
  1241. paddlex/ppdet/modeling/reid/__init__.py +0 -25
  1242. paddlex/ppdet/modeling/reid/fairmot_embedding_head.py +0 -225
  1243. paddlex/ppdet/modeling/reid/jde_embedding_head.py +0 -214
  1244. paddlex/ppdet/modeling/reid/pplcnet_embedding.py +0 -282
  1245. paddlex/ppdet/modeling/reid/pyramidal_embedding.py +0 -144
  1246. paddlex/ppdet/modeling/reid/resnet.py +0 -310
  1247. paddlex/ppdet/modeling/shape_spec.py +0 -25
  1248. paddlex/ppdet/modeling/transformers/__init__.py +0 -25
  1249. paddlex/ppdet/modeling/transformers/deformable_transformer.py +0 -517
  1250. paddlex/ppdet/modeling/transformers/detr_transformer.py +0 -353
  1251. paddlex/ppdet/modeling/transformers/matchers.py +0 -127
  1252. paddlex/ppdet/modeling/transformers/position_encoding.py +0 -108
  1253. paddlex/ppdet/modeling/transformers/utils.py +0 -110
  1254. paddlex/ppdet/optimizer.py +0 -335
  1255. paddlex/ppdet/slim/__init__.py +0 -82
  1256. paddlex/ppdet/slim/distill.py +0 -110
  1257. paddlex/ppdet/slim/prune.py +0 -85
  1258. paddlex/ppdet/slim/quant.py +0 -84
  1259. paddlex/ppdet/slim/unstructured_prune.py +0 -66
  1260. paddlex/ppdet/utils/__init__.py +0 -13
  1261. paddlex/ppdet/utils/check.py +0 -112
  1262. paddlex/ppdet/utils/checkpoint.py +0 -226
  1263. paddlex/ppdet/utils/cli.py +0 -151
  1264. paddlex/ppdet/utils/colormap.py +0 -58
  1265. paddlex/ppdet/utils/download.py +0 -558
  1266. paddlex/ppdet/utils/logger.py +0 -70
  1267. paddlex/ppdet/utils/profiler.py +0 -111
  1268. paddlex/ppdet/utils/stats.py +0 -94
  1269. paddlex/ppdet/utils/visualizer.py +0 -321
  1270. paddlex/ppdet/utils/voc_utils.py +0 -86
  1271. paddlex/seg.py +0 -41
  1272. paddlex/tools/__init__.py +0 -17
  1273. paddlex/tools/anchor_clustering/__init__.py +0 -15
  1274. paddlex/tools/anchor_clustering/yolo_cluster.py +0 -178
  1275. paddlex/tools/convert.py +0 -52
  1276. paddlex/tools/dataset_conversion/__init__.py +0 -24
  1277. paddlex/tools/dataset_conversion/x2coco.py +0 -379
  1278. paddlex/tools/dataset_conversion/x2imagenet.py +0 -82
  1279. paddlex/tools/dataset_conversion/x2seg.py +0 -343
  1280. paddlex/tools/dataset_conversion/x2voc.py +0 -230
  1281. paddlex/tools/dataset_split/__init__.py +0 -23
  1282. paddlex/tools/dataset_split/coco_split.py +0 -69
  1283. paddlex/tools/dataset_split/imagenet_split.py +0 -75
  1284. paddlex/tools/dataset_split/seg_split.py +0 -96
  1285. paddlex/tools/dataset_split/utils.py +0 -75
  1286. paddlex/tools/dataset_split/voc_split.py +0 -91
  1287. paddlex/tools/split.py +0 -41
  1288. paddlex/utils/checkpoint.py +0 -492
  1289. paddlex/utils/env.py +0 -67
  1290. paddlex/utils/shm.py +0 -67
  1291. paddlex/utils/stats.py +0 -68
  1292. paddlex/utils/utils.py +0 -229
  1293. paddlex-2.1.0.data/data/paddlex_restful/restful/templates/paddlex_restful_demo.html +0 -5205
  1294. paddlex-2.1.0.dist-info/LICENSE +0 -201
  1295. paddlex-2.1.0.dist-info/METADATA +0 -32
  1296. paddlex-2.1.0.dist-info/RECORD +0 -698
  1297. paddlex-2.1.0.dist-info/WHEEL +0 -5
  1298. paddlex-2.1.0.dist-info/entry_points.txt +0 -4
  1299. paddlex-2.1.0.dist-info/top_level.txt +0 -3
  1300. paddlex_restful/__init__.py +0 -15
  1301. paddlex_restful/command.py +0 -63
  1302. paddlex_restful/restful/__init__.py +0 -15
  1303. paddlex_restful/restful/app.py +0 -969
  1304. paddlex_restful/restful/dataset/__init__.py +0 -13
  1305. paddlex_restful/restful/dataset/cls_dataset.py +0 -159
  1306. paddlex_restful/restful/dataset/dataset.py +0 -266
  1307. paddlex_restful/restful/dataset/datasetbase.py +0 -86
  1308. paddlex_restful/restful/dataset/det_dataset.py +0 -190
  1309. paddlex_restful/restful/dataset/ins_seg_dataset.py +0 -312
  1310. paddlex_restful/restful/dataset/operate.py +0 -155
  1311. paddlex_restful/restful/dataset/seg_dataset.py +0 -222
  1312. paddlex_restful/restful/dataset/utils.py +0 -267
  1313. paddlex_restful/restful/demo.py +0 -202
  1314. paddlex_restful/restful/dir.py +0 -45
  1315. paddlex_restful/restful/model.py +0 -312
  1316. paddlex_restful/restful/project/__init__.py +0 -13
  1317. paddlex_restful/restful/project/evaluate/__init__.py +0 -13
  1318. paddlex_restful/restful/project/evaluate/classification.py +0 -126
  1319. paddlex_restful/restful/project/evaluate/detection.py +0 -789
  1320. paddlex_restful/restful/project/evaluate/draw_pred_result.py +0 -181
  1321. paddlex_restful/restful/project/evaluate/segmentation.py +0 -122
  1322. paddlex_restful/restful/project/operate.py +0 -931
  1323. paddlex_restful/restful/project/project.py +0 -143
  1324. paddlex_restful/restful/project/prune/__init__.py +0 -13
  1325. paddlex_restful/restful/project/prune/classification.py +0 -32
  1326. paddlex_restful/restful/project/prune/detection.py +0 -48
  1327. paddlex_restful/restful/project/prune/segmentation.py +0 -34
  1328. paddlex_restful/restful/project/task.py +0 -884
  1329. paddlex_restful/restful/project/train/__init__.py +0 -13
  1330. paddlex_restful/restful/project/train/classification.py +0 -141
  1331. paddlex_restful/restful/project/train/detection.py +0 -263
  1332. paddlex_restful/restful/project/train/params.py +0 -432
  1333. paddlex_restful/restful/project/train/params_v2.py +0 -326
  1334. paddlex_restful/restful/project/train/segmentation.py +0 -191
  1335. paddlex_restful/restful/project/visualize.py +0 -244
  1336. paddlex_restful/restful/system.py +0 -102
  1337. paddlex_restful/restful/templates/paddlex_restful_demo.html +0 -5205
  1338. paddlex_restful/restful/utils.py +0 -841
  1339. paddlex_restful/restful/workspace.py +0 -343
  1340. paddlex_restful/restful/workspace_pb2.py +0 -1411
@@ -1,1080 +0,0 @@
1
- # Copyright (c) 2020 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 __future__ import absolute_import
16
- from __future__ import division
17
- from __future__ import print_function
18
-
19
- import typing
20
-
21
- try:
22
- from collections.abc import Sequence
23
- except Exception:
24
- from collections import Sequence
25
-
26
- import cv2
27
- import math
28
- import numpy as np
29
- from .operators import register_op, BaseOperator, Resize
30
- from .op_helper import jaccard_overlap, gaussian2D, gaussian_radius, draw_umich_gaussian
31
- from .atss_assigner import ATSSAssigner
32
- from scipy import ndimage
33
-
34
- from paddlex.ppdet.modeling import bbox_utils
35
- from paddlex.ppdet.utils.logger import setup_logger
36
- from paddlex.ppdet.modeling.keypoint_utils import get_affine_transform, affine_transform
37
- logger = setup_logger(__name__)
38
-
39
- __all__ = [
40
- 'PadBatch',
41
- 'BatchRandomResize',
42
- 'Gt2YoloTarget',
43
- 'Gt2FCOSTarget',
44
- 'Gt2TTFTarget',
45
- 'Gt2Solov2Target',
46
- 'Gt2SparseRCNNTarget',
47
- 'PadMaskBatch',
48
- 'Gt2GFLTarget',
49
- 'Gt2CenterNetTarget',
50
- ]
51
-
52
-
53
- @register_op
54
- class PadBatch(BaseOperator):
55
- """
56
- Pad a batch of samples so they can be divisible by a stride.
57
- The layout of each image should be 'CHW'.
58
- Args:
59
- pad_to_stride (int): If `pad_to_stride > 0`, pad zeros to ensure
60
- height and width is divisible by `pad_to_stride`.
61
- """
62
-
63
- def __init__(self, pad_to_stride=0):
64
- super(PadBatch, self).__init__()
65
- self.pad_to_stride = pad_to_stride
66
-
67
- def __call__(self, samples, context=None):
68
- """
69
- Args:
70
- samples (list): a batch of sample, each is dict.
71
- """
72
- coarsest_stride = self.pad_to_stride
73
-
74
- # multi scale input is nested list
75
- if isinstance(samples,
76
- typing.Sequence) and len(samples) > 0 and isinstance(
77
- samples[0], typing.Sequence):
78
- inner_samples = samples[0]
79
- else:
80
- inner_samples = samples
81
-
82
- max_shape = np.array(
83
- [data['image'].shape for data in inner_samples]).max(axis=0)
84
- if coarsest_stride > 0:
85
- max_shape[1] = int(
86
- np.ceil(max_shape[1] / coarsest_stride) * coarsest_stride)
87
- max_shape[2] = int(
88
- np.ceil(max_shape[2] / coarsest_stride) * coarsest_stride)
89
-
90
- for data in inner_samples:
91
- im = data['image']
92
- im_c, im_h, im_w = im.shape[:]
93
- padding_im = np.zeros(
94
- (im_c, max_shape[1], max_shape[2]), dtype=np.float32)
95
- padding_im[:, :im_h, :im_w] = im
96
- data['image'] = padding_im
97
- if 'semantic' in data and data['semantic'] is not None:
98
- semantic = data['semantic']
99
- padding_sem = np.zeros(
100
- (1, max_shape[1], max_shape[2]), dtype=np.float32)
101
- padding_sem[:, :im_h, :im_w] = semantic
102
- data['semantic'] = padding_sem
103
- if 'gt_segm' in data and data['gt_segm'] is not None:
104
- gt_segm = data['gt_segm']
105
- padding_segm = np.zeros(
106
- (gt_segm.shape[0], max_shape[1], max_shape[2]),
107
- dtype=np.uint8)
108
- padding_segm[:, :im_h, :im_w] = gt_segm
109
- data['gt_segm'] = padding_segm
110
-
111
- if 'gt_rbox2poly' in data and data['gt_rbox2poly'] is not None:
112
- # ploy to rbox
113
- polys = data['gt_rbox2poly']
114
- rbox = bbox_utils.poly2rbox(polys)
115
- data['gt_rbox'] = rbox
116
-
117
- return samples
118
-
119
-
120
- @register_op
121
- class BatchRandomResize(BaseOperator):
122
- """
123
- Resize image to target size randomly. random target_size and interpolation method
124
- Args:
125
- target_size (int, list, tuple): image target size, if random size is True, must be list or tuple
126
- keep_ratio (bool): whether keep_raio or not, default true
127
- interp (int): the interpolation method
128
- random_size (bool): whether random select target size of image
129
- random_interp (bool): whether random select interpolation method
130
- """
131
-
132
- def __init__(self,
133
- target_size,
134
- keep_ratio,
135
- interp=cv2.INTER_NEAREST,
136
- random_size=True,
137
- random_interp=False):
138
- super(BatchRandomResize, self).__init__()
139
- self.keep_ratio = keep_ratio
140
- self.interps = [
141
- cv2.INTER_NEAREST,
142
- cv2.INTER_LINEAR,
143
- cv2.INTER_AREA,
144
- cv2.INTER_CUBIC,
145
- cv2.INTER_LANCZOS4,
146
- ]
147
- self.interp = interp
148
- assert isinstance(target_size, (
149
- int, Sequence)), "target_size must be int, list or tuple"
150
- if random_size and not isinstance(target_size, list):
151
- raise TypeError(
152
- "Type of target_size is invalid when random_size is True. Must be List, now is {}".
153
- format(type(target_size)))
154
- self.target_size = target_size
155
- self.random_size = random_size
156
- self.random_interp = random_interp
157
-
158
- def __call__(self, samples, context=None):
159
- if self.random_size:
160
- index = np.random.choice(len(self.target_size))
161
- target_size = self.target_size[index]
162
- else:
163
- target_size = self.target_size
164
-
165
- if self.random_interp:
166
- interp = np.random.choice(self.interps)
167
- else:
168
- interp = self.interp
169
-
170
- resizer = Resize(
171
- target_size, keep_ratio=self.keep_ratio, interp=interp)
172
- return resizer(samples, context=context)
173
-
174
-
175
- @register_op
176
- class Gt2YoloTarget(BaseOperator):
177
- """
178
- Generate YOLOv3 targets by groud truth data, this operator is only used in
179
- fine grained YOLOv3 loss mode
180
- """
181
-
182
- def __init__(self,
183
- anchors,
184
- anchor_masks,
185
- downsample_ratios,
186
- num_classes=80,
187
- iou_thresh=1.):
188
- super(Gt2YoloTarget, self).__init__()
189
- self.anchors = anchors
190
- self.anchor_masks = anchor_masks
191
- self.downsample_ratios = downsample_ratios
192
- self.num_classes = num_classes
193
- self.iou_thresh = iou_thresh
194
-
195
- def __call__(self, samples, context=None):
196
- assert len(self.anchor_masks) == len(self.downsample_ratios), \
197
- "anchor_masks', and 'downsample_ratios' should have same length."
198
-
199
- h, w = samples[0]['image'].shape[1:3]
200
- an_hw = np.array(self.anchors) / np.array([[w, h]])
201
- for sample in samples:
202
- gt_bbox = sample['gt_bbox']
203
- gt_class = sample['gt_class']
204
- if 'gt_score' not in sample:
205
- sample['gt_score'] = np.ones(
206
- (gt_bbox.shape[0], 1), dtype=np.float32)
207
- gt_score = sample['gt_score']
208
- for i, (
209
- mask, downsample_ratio
210
- ) in enumerate(zip(self.anchor_masks, self.downsample_ratios)):
211
- grid_h = int(h / downsample_ratio)
212
- grid_w = int(w / downsample_ratio)
213
- target = np.zeros(
214
- (len(mask), 6 + self.num_classes, grid_h, grid_w),
215
- dtype=np.float32)
216
- for b in range(gt_bbox.shape[0]):
217
- gx, gy, gw, gh = gt_bbox[b, :]
218
- cls = gt_class[b]
219
- score = gt_score[b]
220
- if gw <= 0. or gh <= 0. or score <= 0.:
221
- continue
222
-
223
- # find best match anchor index
224
- best_iou = 0.
225
- best_idx = -1
226
- for an_idx in range(an_hw.shape[0]):
227
- iou = jaccard_overlap(
228
- [0., 0., gw, gh],
229
- [0., 0., an_hw[an_idx, 0], an_hw[an_idx, 1]])
230
- if iou > best_iou:
231
- best_iou = iou
232
- best_idx = an_idx
233
-
234
- gi = int(gx * grid_w)
235
- gj = int(gy * grid_h)
236
-
237
- # gtbox should be regresed in this layes if best match
238
- # anchor index in anchor mask of this layer
239
- if best_idx in mask:
240
- best_n = mask.index(best_idx)
241
-
242
- # x, y, w, h, scale
243
- target[best_n, 0, gj, gi] = gx * grid_w - gi
244
- target[best_n, 1, gj, gi] = gy * grid_h - gj
245
- target[best_n, 2, gj, gi] = np.log(
246
- gw * w / self.anchors[best_idx][0])
247
- target[best_n, 3, gj, gi] = np.log(
248
- gh * h / self.anchors[best_idx][1])
249
- target[best_n, 4, gj, gi] = 2.0 - gw * gh
250
-
251
- # objectness record gt_score
252
- target[best_n, 5, gj, gi] = score
253
-
254
- # classification
255
- target[best_n, 6 + cls, gj, gi] = 1.
256
-
257
- # For non-matched anchors, calculate the target if the iou
258
- # between anchor and gt is larger than iou_thresh
259
- if self.iou_thresh < 1:
260
- for idx, mask_i in enumerate(mask):
261
- if mask_i == best_idx: continue
262
- iou = jaccard_overlap(
263
- [0., 0., gw, gh],
264
- [0., 0., an_hw[mask_i, 0], an_hw[mask_i, 1]])
265
- if iou > self.iou_thresh and target[idx, 5, gj,
266
- gi] == 0.:
267
- # x, y, w, h, scale
268
- target[idx, 0, gj, gi] = gx * grid_w - gi
269
- target[idx, 1, gj, gi] = gy * grid_h - gj
270
- target[idx, 2, gj, gi] = np.log(
271
- gw * w / self.anchors[mask_i][0])
272
- target[idx, 3, gj, gi] = np.log(
273
- gh * h / self.anchors[mask_i][1])
274
- target[idx, 4, gj, gi] = 2.0 - gw * gh
275
-
276
- # objectness record gt_score
277
- target[idx, 5, gj, gi] = score
278
-
279
- # classification
280
- target[idx, 6 + cls, gj, gi] = 1.
281
- sample['target{}'.format(i)] = target
282
-
283
- # remove useless gt_class and gt_score after target calculated
284
- sample.pop('gt_class')
285
- sample.pop('gt_score')
286
-
287
- return samples
288
-
289
-
290
- @register_op
291
- class Gt2FCOSTarget(BaseOperator):
292
- """
293
- Generate FCOS targets by groud truth data
294
- """
295
-
296
- def __init__(self,
297
- object_sizes_boundary,
298
- center_sampling_radius,
299
- downsample_ratios,
300
- norm_reg_targets=False):
301
- super(Gt2FCOSTarget, self).__init__()
302
- self.center_sampling_radius = center_sampling_radius
303
- self.downsample_ratios = downsample_ratios
304
- self.INF = np.inf
305
- self.object_sizes_boundary = [-1] + object_sizes_boundary + [self.INF]
306
- object_sizes_of_interest = []
307
- for i in range(len(self.object_sizes_boundary) - 1):
308
- object_sizes_of_interest.append([
309
- self.object_sizes_boundary[i],
310
- self.object_sizes_boundary[i + 1]
311
- ])
312
- self.object_sizes_of_interest = object_sizes_of_interest
313
- self.norm_reg_targets = norm_reg_targets
314
-
315
- def _compute_points(self, w, h):
316
- """
317
- compute the corresponding points in each feature map
318
- :param h: image height
319
- :param w: image width
320
- :return: points from all feature map
321
- """
322
- locations = []
323
- for stride in self.downsample_ratios:
324
- shift_x = np.arange(0, w, stride).astype(np.float32)
325
- shift_y = np.arange(0, h, stride).astype(np.float32)
326
- shift_x, shift_y = np.meshgrid(shift_x, shift_y)
327
- shift_x = shift_x.flatten()
328
- shift_y = shift_y.flatten()
329
- location = np.stack([shift_x, shift_y], axis=1) + stride // 2
330
- locations.append(location)
331
- num_points_each_level = [len(location) for location in locations]
332
- locations = np.concatenate(locations, axis=0)
333
- return locations, num_points_each_level
334
-
335
- def _convert_xywh2xyxy(self, gt_bbox, w, h):
336
- """
337
- convert the bounding box from style xywh to xyxy
338
- :param gt_bbox: bounding boxes normalized into [0, 1]
339
- :param w: image width
340
- :param h: image height
341
- :return: bounding boxes in xyxy style
342
- """
343
- bboxes = gt_bbox.copy()
344
- bboxes[:, [0, 2]] = bboxes[:, [0, 2]] * w
345
- bboxes[:, [1, 3]] = bboxes[:, [1, 3]] * h
346
- bboxes[:, 2] = bboxes[:, 0] + bboxes[:, 2]
347
- bboxes[:, 3] = bboxes[:, 1] + bboxes[:, 3]
348
- return bboxes
349
-
350
- def _check_inside_boxes_limited(self, gt_bbox, xs, ys,
351
- num_points_each_level):
352
- """
353
- check if points is within the clipped boxes
354
- :param gt_bbox: bounding boxes
355
- :param xs: horizontal coordinate of points
356
- :param ys: vertical coordinate of points
357
- :return: the mask of points is within gt_box or not
358
- """
359
- bboxes = np.reshape(
360
- gt_bbox, newshape=[1, gt_bbox.shape[0], gt_bbox.shape[1]])
361
- bboxes = np.tile(bboxes, reps=[xs.shape[0], 1, 1])
362
- ct_x = (bboxes[:, :, 0] + bboxes[:, :, 2]) / 2
363
- ct_y = (bboxes[:, :, 1] + bboxes[:, :, 3]) / 2
364
- beg = 0
365
- clipped_box = bboxes.copy()
366
- for lvl, stride in enumerate(self.downsample_ratios):
367
- end = beg + num_points_each_level[lvl]
368
- stride_exp = self.center_sampling_radius * stride
369
- clipped_box[beg:end, :, 0] = np.maximum(
370
- bboxes[beg:end, :, 0], ct_x[beg:end, :] - stride_exp)
371
- clipped_box[beg:end, :, 1] = np.maximum(
372
- bboxes[beg:end, :, 1], ct_y[beg:end, :] - stride_exp)
373
- clipped_box[beg:end, :, 2] = np.minimum(
374
- bboxes[beg:end, :, 2], ct_x[beg:end, :] + stride_exp)
375
- clipped_box[beg:end, :, 3] = np.minimum(
376
- bboxes[beg:end, :, 3], ct_y[beg:end, :] + stride_exp)
377
- beg = end
378
- l_res = xs - clipped_box[:, :, 0]
379
- r_res = clipped_box[:, :, 2] - xs
380
- t_res = ys - clipped_box[:, :, 1]
381
- b_res = clipped_box[:, :, 3] - ys
382
- clipped_box_reg_targets = np.stack(
383
- [l_res, t_res, r_res, b_res], axis=2)
384
- inside_gt_box = np.min(clipped_box_reg_targets, axis=2) > 0
385
- return inside_gt_box
386
-
387
- def __call__(self, samples, context=None):
388
- assert len(self.object_sizes_of_interest) == len(self.downsample_ratios), \
389
- "object_sizes_of_interest', and 'downsample_ratios' should have same length."
390
-
391
- for sample in samples:
392
- im = sample['image']
393
- bboxes = sample['gt_bbox']
394
- gt_class = sample['gt_class']
395
- # calculate the locations
396
- h, w = im.shape[1:3]
397
- points, num_points_each_level = self._compute_points(w, h)
398
- object_scale_exp = []
399
- for i, num_pts in enumerate(num_points_each_level):
400
- object_scale_exp.append(
401
- np.tile(
402
- np.array([self.object_sizes_of_interest[i]]),
403
- reps=[num_pts, 1]))
404
- object_scale_exp = np.concatenate(object_scale_exp, axis=0)
405
-
406
- gt_area = (bboxes[:, 2] - bboxes[:, 0]) * (
407
- bboxes[:, 3] - bboxes[:, 1])
408
- xs, ys = points[:, 0], points[:, 1]
409
- xs = np.reshape(xs, newshape=[xs.shape[0], 1])
410
- xs = np.tile(xs, reps=[1, bboxes.shape[0]])
411
- ys = np.reshape(ys, newshape=[ys.shape[0], 1])
412
- ys = np.tile(ys, reps=[1, bboxes.shape[0]])
413
-
414
- l_res = xs - bboxes[:, 0]
415
- r_res = bboxes[:, 2] - xs
416
- t_res = ys - bboxes[:, 1]
417
- b_res = bboxes[:, 3] - ys
418
- reg_targets = np.stack([l_res, t_res, r_res, b_res], axis=2)
419
- if self.center_sampling_radius > 0:
420
- is_inside_box = self._check_inside_boxes_limited(
421
- bboxes, xs, ys, num_points_each_level)
422
- else:
423
- is_inside_box = np.min(reg_targets, axis=2) > 0
424
- # check if the targets is inside the corresponding level
425
- max_reg_targets = np.max(reg_targets, axis=2)
426
- lower_bound = np.tile(
427
- np.expand_dims(
428
- object_scale_exp[:, 0], axis=1),
429
- reps=[1, max_reg_targets.shape[1]])
430
- high_bound = np.tile(
431
- np.expand_dims(
432
- object_scale_exp[:, 1], axis=1),
433
- reps=[1, max_reg_targets.shape[1]])
434
- is_match_current_level = \
435
- (max_reg_targets > lower_bound) & \
436
- (max_reg_targets < high_bound)
437
- points2gtarea = np.tile(
438
- np.expand_dims(
439
- gt_area, axis=0), reps=[xs.shape[0], 1])
440
- points2gtarea[is_inside_box == 0] = self.INF
441
- points2gtarea[is_match_current_level == 0] = self.INF
442
- points2min_area = points2gtarea.min(axis=1)
443
- points2min_area_ind = points2gtarea.argmin(axis=1)
444
- labels = gt_class[points2min_area_ind] + 1
445
- labels[points2min_area == self.INF] = 0
446
- reg_targets = reg_targets[range(xs.shape[0]), points2min_area_ind]
447
- ctn_targets = np.sqrt((reg_targets[:, [0, 2]].min(axis=1) / \
448
- reg_targets[:, [0, 2]].max(axis=1)) * \
449
- (reg_targets[:, [1, 3]].min(axis=1) / \
450
- reg_targets[:, [1, 3]].max(axis=1))).astype(np.float32)
451
- ctn_targets = np.reshape(
452
- ctn_targets, newshape=[ctn_targets.shape[0], 1])
453
- ctn_targets[labels <= 0] = 0
454
- pos_ind = np.nonzero(labels != 0)
455
- reg_targets_pos = reg_targets[pos_ind[0], :]
456
- split_sections = []
457
- beg = 0
458
- for lvl in range(len(num_points_each_level)):
459
- end = beg + num_points_each_level[lvl]
460
- split_sections.append(end)
461
- beg = end
462
- labels_by_level = np.split(labels, split_sections, axis=0)
463
- reg_targets_by_level = np.split(
464
- reg_targets, split_sections, axis=0)
465
- ctn_targets_by_level = np.split(
466
- ctn_targets, split_sections, axis=0)
467
- for lvl in range(len(self.downsample_ratios)):
468
- grid_w = int(np.ceil(w / self.downsample_ratios[lvl]))
469
- grid_h = int(np.ceil(h / self.downsample_ratios[lvl]))
470
- if self.norm_reg_targets:
471
- sample['reg_target{}'.format(lvl)] = \
472
- np.reshape(
473
- reg_targets_by_level[lvl] / \
474
- self.downsample_ratios[lvl],
475
- newshape=[grid_h, grid_w, 4])
476
- else:
477
- sample['reg_target{}'.format(lvl)] = np.reshape(
478
- reg_targets_by_level[lvl],
479
- newshape=[grid_h, grid_w, 4])
480
- sample['labels{}'.format(lvl)] = np.reshape(
481
- labels_by_level[lvl], newshape=[grid_h, grid_w, 1])
482
- sample['centerness{}'.format(lvl)] = np.reshape(
483
- ctn_targets_by_level[lvl], newshape=[grid_h, grid_w, 1])
484
-
485
- sample.pop('is_crowd', None)
486
- sample.pop('difficult', None)
487
- sample.pop('gt_class', None)
488
- sample.pop('gt_bbox', None)
489
- return samples
490
-
491
-
492
- @register_op
493
- class Gt2GFLTarget(BaseOperator):
494
- """
495
- Generate GFocal loss targets by groud truth data
496
- """
497
-
498
- def __init__(self,
499
- num_classes=80,
500
- downsample_ratios=[8, 16, 32, 64, 128],
501
- grid_cell_scale=4,
502
- cell_offset=0):
503
- super(Gt2GFLTarget, self).__init__()
504
- self.num_classes = num_classes
505
- self.downsample_ratios = downsample_ratios
506
- self.grid_cell_scale = grid_cell_scale
507
- self.cell_offset = cell_offset
508
-
509
- self.assigner = ATSSAssigner()
510
-
511
- def get_grid_cells(self, featmap_size, scale, stride, offset=0):
512
- """
513
- Generate grid cells of a feature map for target assignment.
514
- Args:
515
- featmap_size: Size of a single level feature map.
516
- scale: Grid cell scale.
517
- stride: Down sample stride of the feature map.
518
- offset: Offset of grid cells.
519
- return:
520
- Grid_cells xyxy position. Size should be [feat_w * feat_h, 4]
521
- """
522
- cell_size = stride * scale
523
- h, w = featmap_size
524
- x_range = (np.arange(w, dtype=np.float32) + offset) * stride
525
- y_range = (np.arange(h, dtype=np.float32) + offset) * stride
526
- x, y = np.meshgrid(x_range, y_range)
527
- y = y.flatten()
528
- x = x.flatten()
529
- grid_cells = np.stack(
530
- [
531
- x - 0.5 * cell_size, y - 0.5 * cell_size, x + 0.5 * cell_size,
532
- y + 0.5 * cell_size
533
- ],
534
- axis=-1)
535
- return grid_cells
536
-
537
- def get_sample(self, assign_gt_inds, gt_bboxes):
538
- pos_inds = np.unique(np.nonzero(assign_gt_inds > 0)[0])
539
- neg_inds = np.unique(np.nonzero(assign_gt_inds == 0)[0])
540
- pos_assigned_gt_inds = assign_gt_inds[pos_inds] - 1
541
-
542
- if gt_bboxes.size == 0:
543
- # hack for index error case
544
- assert pos_assigned_gt_inds.size == 0
545
- pos_gt_bboxes = np.empty_like(gt_bboxes).reshape(-1, 4)
546
- else:
547
- if len(gt_bboxes.shape) < 2:
548
- gt_bboxes = gt_bboxes.resize(-1, 4)
549
- pos_gt_bboxes = gt_bboxes[pos_assigned_gt_inds, :]
550
- return pos_inds, neg_inds, pos_gt_bboxes, pos_assigned_gt_inds
551
-
552
- def __call__(self, samples, context=None):
553
- assert len(samples) > 0
554
- batch_size = len(samples)
555
- # get grid cells of image
556
- h, w = samples[0]['image'].shape[1:3]
557
- multi_level_grid_cells = []
558
- for stride in self.downsample_ratios:
559
- featmap_size = (int(math.ceil(h / stride)),
560
- int(math.ceil(w / stride)))
561
- multi_level_grid_cells.append(
562
- self.get_grid_cells(featmap_size, self.grid_cell_scale, stride,
563
- self.cell_offset))
564
- mlvl_grid_cells_list = [
565
- multi_level_grid_cells for i in range(batch_size)
566
- ]
567
- # pixel cell number of multi-level feature maps
568
- num_level_cells = [
569
- grid_cells.shape[0] for grid_cells in mlvl_grid_cells_list[0]
570
- ]
571
- num_level_cells_list = [num_level_cells] * batch_size
572
- # concat all level cells and to a single array
573
- for i in range(batch_size):
574
- mlvl_grid_cells_list[i] = np.concatenate(mlvl_grid_cells_list[i])
575
- # target assign on all images
576
- for sample, grid_cells, num_level_cells in zip(
577
- samples, mlvl_grid_cells_list, num_level_cells_list):
578
- gt_bboxes = sample['gt_bbox']
579
- gt_labels = sample['gt_class'].squeeze()
580
- if gt_labels.size == 1:
581
- gt_labels = np.array([gt_labels]).astype(np.int32)
582
- gt_bboxes_ignore = None
583
- assign_gt_inds, _ = self.assigner(grid_cells, num_level_cells,
584
- gt_bboxes, gt_bboxes_ignore,
585
- gt_labels)
586
- pos_inds, neg_inds, pos_gt_bboxes, pos_assigned_gt_inds = self.get_sample(
587
- assign_gt_inds, gt_bboxes)
588
-
589
- num_cells = grid_cells.shape[0]
590
- bbox_targets = np.zeros_like(grid_cells)
591
- bbox_weights = np.zeros_like(grid_cells)
592
- labels = np.ones([num_cells], dtype=np.int64) * self.num_classes
593
- label_weights = np.zeros([num_cells], dtype=np.float32)
594
-
595
- if len(pos_inds) > 0:
596
- pos_bbox_targets = pos_gt_bboxes
597
- bbox_targets[pos_inds, :] = pos_bbox_targets
598
- bbox_weights[pos_inds, :] = 1.0
599
- if not np.any(gt_labels):
600
- labels[pos_inds] = 0
601
- else:
602
- labels[pos_inds] = gt_labels[pos_assigned_gt_inds]
603
-
604
- label_weights[pos_inds] = 1.0
605
- if len(neg_inds) > 0:
606
- label_weights[neg_inds] = 1.0
607
- sample['grid_cells'] = grid_cells
608
- sample['labels'] = labels
609
- sample['label_weights'] = label_weights
610
- sample['bbox_targets'] = bbox_targets
611
- sample['pos_num'] = max(pos_inds.size, 1)
612
- sample.pop('is_crowd', None)
613
- sample.pop('difficult', None)
614
- sample.pop('gt_class', None)
615
- sample.pop('gt_bbox', None)
616
- sample.pop('gt_score', None)
617
- return samples
618
-
619
-
620
- @register_op
621
- class Gt2TTFTarget(BaseOperator):
622
- __shared__ = ['num_classes']
623
- """
624
- Gt2TTFTarget
625
- Generate TTFNet targets by ground truth data
626
-
627
- Args:
628
- num_classes(int): the number of classes.
629
- down_ratio(int): the down ratio from images to heatmap, 4 by default.
630
- alpha(float): the alpha parameter to generate gaussian target.
631
- 0.54 by default.
632
- """
633
-
634
- def __init__(self, num_classes=80, down_ratio=4, alpha=0.54):
635
- super(Gt2TTFTarget, self).__init__()
636
- self.down_ratio = down_ratio
637
- self.num_classes = num_classes
638
- self.alpha = alpha
639
-
640
- def __call__(self, samples, context=None):
641
- output_size = samples[0]['image'].shape[1]
642
- feat_size = output_size // self.down_ratio
643
- for sample in samples:
644
- heatmap = np.zeros(
645
- (self.num_classes, feat_size, feat_size), dtype='float32')
646
- box_target = np.ones(
647
- (4, feat_size, feat_size), dtype='float32') * -1
648
- reg_weight = np.zeros((1, feat_size, feat_size), dtype='float32')
649
-
650
- gt_bbox = sample['gt_bbox']
651
- gt_class = sample['gt_class']
652
-
653
- bbox_w = gt_bbox[:, 2] - gt_bbox[:, 0] + 1
654
- bbox_h = gt_bbox[:, 3] - gt_bbox[:, 1] + 1
655
- area = bbox_w * bbox_h
656
- boxes_areas_log = np.log(area)
657
- boxes_ind = np.argsort(boxes_areas_log, axis=0)[::-1]
658
- boxes_area_topk_log = boxes_areas_log[boxes_ind]
659
- gt_bbox = gt_bbox[boxes_ind]
660
- gt_class = gt_class[boxes_ind]
661
-
662
- feat_gt_bbox = gt_bbox / self.down_ratio
663
- feat_gt_bbox = np.clip(feat_gt_bbox, 0, feat_size - 1)
664
- feat_hs, feat_ws = (feat_gt_bbox[:, 3] - feat_gt_bbox[:, 1],
665
- feat_gt_bbox[:, 2] - feat_gt_bbox[:, 0])
666
-
667
- ct_inds = np.stack(
668
- [(gt_bbox[:, 0] + gt_bbox[:, 2]) / 2,
669
- (gt_bbox[:, 1] + gt_bbox[:, 3]) / 2],
670
- axis=1) / self.down_ratio
671
-
672
- h_radiuses_alpha = (feat_hs / 2. * self.alpha).astype('int32')
673
- w_radiuses_alpha = (feat_ws / 2. * self.alpha).astype('int32')
674
-
675
- for k in range(len(gt_bbox)):
676
- cls_id = gt_class[k]
677
- fake_heatmap = np.zeros(
678
- (feat_size, feat_size), dtype='float32')
679
- self.draw_truncate_gaussian(fake_heatmap, ct_inds[k],
680
- h_radiuses_alpha[k],
681
- w_radiuses_alpha[k])
682
-
683
- heatmap[cls_id] = np.maximum(heatmap[cls_id], fake_heatmap)
684
- box_target_inds = fake_heatmap > 0
685
- box_target[:, box_target_inds] = gt_bbox[k][:, None]
686
-
687
- local_heatmap = fake_heatmap[box_target_inds]
688
- ct_div = np.sum(local_heatmap)
689
- local_heatmap *= boxes_area_topk_log[k]
690
- reg_weight[0, box_target_inds] = local_heatmap / ct_div
691
- sample['ttf_heatmap'] = heatmap
692
- sample['ttf_box_target'] = box_target
693
- sample['ttf_reg_weight'] = reg_weight
694
- sample.pop('is_crowd', None)
695
- sample.pop('difficult', None)
696
- sample.pop('gt_class', None)
697
- sample.pop('gt_bbox', None)
698
- sample.pop('gt_score', None)
699
- return samples
700
-
701
- def draw_truncate_gaussian(self, heatmap, center, h_radius, w_radius):
702
- h, w = 2 * h_radius + 1, 2 * w_radius + 1
703
- sigma_x = w / 6
704
- sigma_y = h / 6
705
- gaussian = gaussian2D((h, w), sigma_x, sigma_y)
706
-
707
- x, y = int(center[0]), int(center[1])
708
-
709
- height, width = heatmap.shape[0:2]
710
-
711
- left, right = min(x, w_radius), min(width - x, w_radius + 1)
712
- top, bottom = min(y, h_radius), min(height - y, h_radius + 1)
713
-
714
- masked_heatmap = heatmap[y - top:y + bottom, x - left:x + right]
715
- masked_gaussian = gaussian[h_radius - top:h_radius + bottom, w_radius -
716
- left:w_radius + right]
717
- if min(masked_gaussian.shape) > 0 and min(masked_heatmap.shape) > 0:
718
- heatmap[y - top:y + bottom, x - left:x + right] = np.maximum(
719
- masked_heatmap, masked_gaussian)
720
- return heatmap
721
-
722
-
723
- @register_op
724
- class Gt2Solov2Target(BaseOperator):
725
- """Assign mask target and labels in SOLOv2 network.
726
- The code of this function is based on:
727
- https://github.com/WXinlong/SOLO/blob/master/mmdet/models/anchor_heads/solov2_head.py#L271
728
- Args:
729
- num_grids (list): The list of feature map grids size.
730
- scale_ranges (list): The list of mask boundary range.
731
- coord_sigma (float): The coefficient of coordinate area length.
732
- sampling_ratio (float): The ratio of down sampling.
733
- """
734
-
735
- def __init__(self,
736
- num_grids=[40, 36, 24, 16, 12],
737
- scale_ranges=[[1, 96], [48, 192], [96, 384], [192, 768],
738
- [384, 2048]],
739
- coord_sigma=0.2,
740
- sampling_ratio=4.0):
741
- super(Gt2Solov2Target, self).__init__()
742
- self.num_grids = num_grids
743
- self.scale_ranges = scale_ranges
744
- self.coord_sigma = coord_sigma
745
- self.sampling_ratio = sampling_ratio
746
-
747
- def _scale_size(self, im, scale):
748
- h, w = im.shape[:2]
749
- new_size = (int(w * float(scale) + 0.5), int(h * float(scale) + 0.5))
750
- resized_img = cv2.resize(
751
- im, None, None, fx=scale, fy=scale, interpolation=cv2.INTER_LINEAR)
752
- return resized_img
753
-
754
- def __call__(self, samples, context=None):
755
- sample_id = 0
756
- max_ins_num = [0] * len(self.num_grids)
757
- for sample in samples:
758
- gt_bboxes_raw = sample['gt_bbox']
759
- gt_labels_raw = sample['gt_class'] + 1
760
- im_c, im_h, im_w = sample['image'].shape[:]
761
- gt_masks_raw = sample['gt_segm'].astype(np.uint8)
762
- mask_feat_size = [
763
- int(im_h / self.sampling_ratio),
764
- int(im_w / self.sampling_ratio)
765
- ]
766
- gt_areas = np.sqrt((gt_bboxes_raw[:, 2] - gt_bboxes_raw[:, 0]) *
767
- (gt_bboxes_raw[:, 3] - gt_bboxes_raw[:, 1]))
768
- ins_ind_label_list = []
769
- idx = 0
770
- for (lower_bound, upper_bound), num_grid \
771
- in zip(self.scale_ranges, self.num_grids):
772
-
773
- hit_indices = ((gt_areas >= lower_bound) &
774
- (gt_areas <= upper_bound)).nonzero()[0]
775
- num_ins = len(hit_indices)
776
-
777
- ins_label = []
778
- grid_order = []
779
- cate_label = np.zeros([num_grid, num_grid], dtype=np.int64)
780
- ins_ind_label = np.zeros([num_grid**2], dtype=np.bool)
781
-
782
- if num_ins == 0:
783
- ins_label = np.zeros(
784
- [1, mask_feat_size[0], mask_feat_size[1]],
785
- dtype=np.uint8)
786
- ins_ind_label_list.append(ins_ind_label)
787
- sample['cate_label{}'.format(idx)] = cate_label.flatten()
788
- sample['ins_label{}'.format(idx)] = ins_label
789
- sample['grid_order{}'.format(idx)] = np.asarray(
790
- [sample_id * num_grid * num_grid + 0], dtype=np.int32)
791
- idx += 1
792
- continue
793
- gt_bboxes = gt_bboxes_raw[hit_indices]
794
- gt_labels = gt_labels_raw[hit_indices]
795
- gt_masks = gt_masks_raw[hit_indices, ...]
796
-
797
- half_ws = 0.5 * (
798
- gt_bboxes[:, 2] - gt_bboxes[:, 0]) * self.coord_sigma
799
- half_hs = 0.5 * (
800
- gt_bboxes[:, 3] - gt_bboxes[:, 1]) * self.coord_sigma
801
-
802
- for seg_mask, gt_label, half_h, half_w in zip(
803
- gt_masks, gt_labels, half_hs, half_ws):
804
- if seg_mask.sum() == 0:
805
- continue
806
- # mass center
807
- upsampled_size = (mask_feat_size[0] * 4,
808
- mask_feat_size[1] * 4)
809
- center_h, center_w = ndimage.measurements.center_of_mass(
810
- seg_mask)
811
- coord_w = int(
812
- (center_w / upsampled_size[1]) // (1. / num_grid))
813
- coord_h = int(
814
- (center_h / upsampled_size[0]) // (1. / num_grid))
815
-
816
- # left, top, right, down
817
- top_box = max(0,
818
- int(((center_h - half_h) / upsampled_size[0])
819
- // (1. / num_grid)))
820
- down_box = min(
821
- num_grid - 1,
822
- int(((center_h + half_h) / upsampled_size[0]) //
823
- (1. / num_grid)))
824
- left_box = max(
825
- 0,
826
- int(((center_w - half_w) / upsampled_size[1]) //
827
- (1. / num_grid)))
828
- right_box = min(num_grid - 1,
829
- int(((center_w + half_w) /
830
- upsampled_size[1]) //
831
- (1. / num_grid)))
832
-
833
- top = max(top_box, coord_h - 1)
834
- down = min(down_box, coord_h + 1)
835
- left = max(coord_w - 1, left_box)
836
- right = min(right_box, coord_w + 1)
837
-
838
- cate_label[top:(down + 1), left:(right + 1)] = gt_label
839
- seg_mask = self._scale_size(
840
- seg_mask, scale=1. / self.sampling_ratio)
841
- for i in range(top, down + 1):
842
- for j in range(left, right + 1):
843
- label = int(i * num_grid + j)
844
- cur_ins_label = np.zeros(
845
- [mask_feat_size[0], mask_feat_size[1]],
846
- dtype=np.uint8)
847
- cur_ins_label[:seg_mask.shape[0], :seg_mask.shape[
848
- 1]] = seg_mask
849
- ins_label.append(cur_ins_label)
850
- ins_ind_label[label] = True
851
- grid_order.append(sample_id * num_grid * num_grid +
852
- label)
853
- if ins_label == []:
854
- ins_label = np.zeros(
855
- [1, mask_feat_size[0], mask_feat_size[1]],
856
- dtype=np.uint8)
857
- ins_ind_label_list.append(ins_ind_label)
858
- sample['cate_label{}'.format(idx)] = cate_label.flatten()
859
- sample['ins_label{}'.format(idx)] = ins_label
860
- sample['grid_order{}'.format(idx)] = np.asarray(
861
- [sample_id * num_grid * num_grid + 0], dtype=np.int32)
862
- else:
863
- ins_label = np.stack(ins_label, axis=0)
864
- ins_ind_label_list.append(ins_ind_label)
865
- sample['cate_label{}'.format(idx)] = cate_label.flatten()
866
- sample['ins_label{}'.format(idx)] = ins_label
867
- sample['grid_order{}'.format(idx)] = np.asarray(
868
- grid_order, dtype=np.int32)
869
- assert len(grid_order) > 0
870
- max_ins_num[idx] = max(
871
- max_ins_num[idx],
872
- sample['ins_label{}'.format(idx)].shape[0])
873
- idx += 1
874
- ins_ind_labels = np.concatenate([
875
- ins_ind_labels_level_img
876
- for ins_ind_labels_level_img in ins_ind_label_list
877
- ])
878
- fg_num = np.sum(ins_ind_labels)
879
- sample['fg_num'] = fg_num
880
- sample_id += 1
881
-
882
- sample.pop('is_crowd')
883
- sample.pop('gt_class')
884
- sample.pop('gt_bbox')
885
- sample.pop('gt_poly')
886
- sample.pop('gt_segm')
887
-
888
- # padding batch
889
- for data in samples:
890
- for idx in range(len(self.num_grids)):
891
- gt_ins_data = np.zeros(
892
- [
893
- max_ins_num[idx],
894
- data['ins_label{}'.format(idx)].shape[1],
895
- data['ins_label{}'.format(idx)].shape[2]
896
- ],
897
- dtype=np.uint8)
898
- gt_ins_data[0:data['ins_label{}'.format(idx)].shape[
899
- 0], :, :] = data['ins_label{}'.format(idx)]
900
- gt_grid_order = np.zeros([max_ins_num[idx]], dtype=np.int32)
901
- gt_grid_order[0:data['grid_order{}'.format(idx)].shape[
902
- 0]] = data['grid_order{}'.format(idx)]
903
- data['ins_label{}'.format(idx)] = gt_ins_data
904
- data['grid_order{}'.format(idx)] = gt_grid_order
905
-
906
- return samples
907
-
908
-
909
- @register_op
910
- class Gt2SparseRCNNTarget(BaseOperator):
911
- '''
912
- Generate SparseRCNN targets by groud truth data
913
- '''
914
-
915
- def __init__(self):
916
- super(Gt2SparseRCNNTarget, self).__init__()
917
-
918
- def __call__(self, samples, context=None):
919
- for sample in samples:
920
- im = sample["image"]
921
- h, w = im.shape[1:3]
922
- img_whwh = np.array([w, h, w, h], dtype=np.int32)
923
- sample["img_whwh"] = img_whwh
924
- if "scale_factor" in sample:
925
- sample["scale_factor_wh"] = np.array(
926
- [sample["scale_factor"][1], sample["scale_factor"][0]],
927
- dtype=np.float32)
928
- else:
929
- sample["scale_factor_wh"] = np.array(
930
- [1.0, 1.0], dtype=np.float32)
931
-
932
- return samples
933
-
934
-
935
- @register_op
936
- class PadMaskBatch(BaseOperator):
937
- """
938
- Pad a batch of samples so they can be divisible by a stride.
939
- The layout of each image should be 'CHW'.
940
- Args:
941
- pad_to_stride (int): If `pad_to_stride > 0`, pad zeros to ensure
942
- height and width is divisible by `pad_to_stride`.
943
- return_pad_mask (bool): If `return_pad_mask = True`, return
944
- `pad_mask` for transformer.
945
- """
946
-
947
- def __init__(self, pad_to_stride=0, return_pad_mask=False):
948
- super(PadMaskBatch, self).__init__()
949
- self.pad_to_stride = pad_to_stride
950
- self.return_pad_mask = return_pad_mask
951
-
952
- def __call__(self, samples, context=None):
953
- """
954
- Args:
955
- samples (list): a batch of sample, each is dict.
956
- """
957
- coarsest_stride = self.pad_to_stride
958
-
959
- max_shape = np.array([data['image'].shape for data in samples]).max(
960
- axis=0)
961
- if coarsest_stride > 0:
962
- max_shape[1] = int(
963
- np.ceil(max_shape[1] / coarsest_stride) * coarsest_stride)
964
- max_shape[2] = int(
965
- np.ceil(max_shape[2] / coarsest_stride) * coarsest_stride)
966
-
967
- for data in samples:
968
- im = data['image']
969
- im_c, im_h, im_w = im.shape[:]
970
- padding_im = np.zeros(
971
- (im_c, max_shape[1], max_shape[2]), dtype=np.float32)
972
- padding_im[:, :im_h, :im_w] = im
973
- data['image'] = padding_im
974
- if 'semantic' in data and data['semantic'] is not None:
975
- semantic = data['semantic']
976
- padding_sem = np.zeros(
977
- (1, max_shape[1], max_shape[2]), dtype=np.float32)
978
- padding_sem[:, :im_h, :im_w] = semantic
979
- data['semantic'] = padding_sem
980
- if 'gt_segm' in data and data['gt_segm'] is not None:
981
- gt_segm = data['gt_segm']
982
- padding_segm = np.zeros(
983
- (gt_segm.shape[0], max_shape[1], max_shape[2]),
984
- dtype=np.uint8)
985
- padding_segm[:, :im_h, :im_w] = gt_segm
986
- data['gt_segm'] = padding_segm
987
- if self.return_pad_mask:
988
- padding_mask = np.zeros(
989
- (max_shape[1], max_shape[2]), dtype=np.float32)
990
- padding_mask[:im_h, :im_w] = 1.
991
- data['pad_mask'] = padding_mask
992
-
993
- if 'gt_rbox2poly' in data and data['gt_rbox2poly'] is not None:
994
- # ploy to rbox
995
- polys = data['gt_rbox2poly']
996
- rbox = bbox_utils.poly2rbox(polys)
997
- data['gt_rbox'] = rbox
998
-
999
- return samples
1000
-
1001
-
1002
- @register_op
1003
- class Gt2CenterNetTarget(BaseOperator):
1004
- """Gt2CenterNetTarget
1005
- Genterate CenterNet targets by ground-truth
1006
- Args:
1007
- down_ratio (int): The down sample ratio between output feature and
1008
- input image.
1009
- num_classes (int): The number of classes, 80 by default.
1010
- max_objs (int): The maximum objects detected, 128 by default.
1011
- """
1012
-
1013
- def __init__(self, down_ratio, num_classes=80, max_objs=128):
1014
- super(Gt2CenterNetTarget, self).__init__()
1015
- self.down_ratio = down_ratio
1016
- self.num_classes = num_classes
1017
- self.max_objs = max_objs
1018
-
1019
- def __call__(self, sample, context=None):
1020
- input_h, input_w = sample['image'].shape[1:]
1021
- output_h = input_h // self.down_ratio
1022
- output_w = input_w // self.down_ratio
1023
- num_classes = self.num_classes
1024
- c = sample['center']
1025
- s = sample['scale']
1026
- gt_bbox = sample['gt_bbox']
1027
- gt_class = sample['gt_class']
1028
-
1029
- hm = np.zeros((num_classes, output_h, output_w), dtype=np.float32)
1030
- wh = np.zeros((self.max_objs, 2), dtype=np.float32)
1031
- dense_wh = np.zeros((2, output_h, output_w), dtype=np.float32)
1032
- reg = np.zeros((self.max_objs, 2), dtype=np.float32)
1033
- ind = np.zeros((self.max_objs), dtype=np.int64)
1034
- reg_mask = np.zeros((self.max_objs), dtype=np.int32)
1035
- cat_spec_wh = np.zeros(
1036
- (self.max_objs, num_classes * 2), dtype=np.float32)
1037
- cat_spec_mask = np.zeros(
1038
- (self.max_objs, num_classes * 2), dtype=np.int32)
1039
-
1040
- trans_output = get_affine_transform(c, [s, s], 0, [output_w, output_h])
1041
-
1042
- gt_det = []
1043
- for i, (bbox, cls) in enumerate(zip(gt_bbox, gt_class)):
1044
- cls = int(cls)
1045
- bbox[:2] = affine_transform(bbox[:2], trans_output)
1046
- bbox[2:] = affine_transform(bbox[2:], trans_output)
1047
- bbox[[0, 2]] = np.clip(bbox[[0, 2]], 0, output_w - 1)
1048
- bbox[[1, 3]] = np.clip(bbox[[1, 3]], 0, output_h - 1)
1049
- h, w = bbox[3] - bbox[1], bbox[2] - bbox[0]
1050
- if h > 0 and w > 0:
1051
- radius = gaussian_radius((math.ceil(h), math.ceil(w)), 0.7)
1052
- radius = max(0, int(radius))
1053
- ct = np.array(
1054
- [(bbox[0] + bbox[2]) / 2, (bbox[1] + bbox[3]) / 2],
1055
- dtype=np.float32)
1056
- ct_int = ct.astype(np.int32)
1057
- draw_umich_gaussian(hm[cls], ct_int, radius)
1058
- wh[i] = 1. * w, 1. * h
1059
- ind[i] = ct_int[1] * output_w + ct_int[0]
1060
- reg[i] = ct - ct_int
1061
- reg_mask[i] = 1
1062
- cat_spec_wh[i, cls * 2:cls * 2 + 2] = wh[i]
1063
- cat_spec_mask[i, cls * 2:cls * 2 + 2] = 1
1064
- gt_det.append([
1065
- ct[0] - w / 2, ct[1] - h / 2, ct[0] + w / 2, ct[1] + h / 2,
1066
- 1, cls
1067
- ])
1068
-
1069
- sample.pop('gt_bbox', None)
1070
- sample.pop('gt_class', None)
1071
- sample.pop('center', None)
1072
- sample.pop('scale', None)
1073
- sample.pop('is_crowd', None)
1074
- sample.pop('difficult', None)
1075
- sample['heatmap'] = hm
1076
- sample['index_mask'] = reg_mask
1077
- sample['index'] = ind
1078
- sample['size'] = wh
1079
- sample['offset'] = reg
1080
- return sample