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,1056 +0,0 @@
1
- # Copyright (c) 2021 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
- # The code is based on https://github.com/csuhan/s2anet/blob/master/mmdet/models/anchor_heads_rotated/s2anet_head.py
16
-
17
- import paddle
18
- from paddle import ParamAttr
19
- import paddle.nn as nn
20
- import paddle.nn.functional as F
21
- from paddle.nn.initializer import Normal, Constant
22
- from paddlex.ppdet.core.workspace import register
23
- from paddlex.ppdet.modeling import ops
24
- from paddlex.ppdet.modeling import bbox_utils
25
- from paddlex.ppdet.modeling.proposal_generator.target_layer import RBoxAssigner
26
- import numpy as np
27
-
28
-
29
- class S2ANetAnchorGenerator(nn.Layer):
30
- """
31
- AnchorGenerator by paddle
32
- """
33
-
34
- def __init__(self, base_size, scales, ratios, scale_major=True, ctr=None):
35
- super(S2ANetAnchorGenerator, self).__init__()
36
- self.base_size = base_size
37
- self.scales = paddle.to_tensor(scales)
38
- self.ratios = paddle.to_tensor(ratios)
39
- self.scale_major = scale_major
40
- self.ctr = ctr
41
- self.base_anchors = self.gen_base_anchors()
42
-
43
- @property
44
- def num_base_anchors(self):
45
- return self.base_anchors.shape[0]
46
-
47
- def gen_base_anchors(self):
48
- w = self.base_size
49
- h = self.base_size
50
- if self.ctr is None:
51
- x_ctr = 0.5 * (w - 1)
52
- y_ctr = 0.5 * (h - 1)
53
- else:
54
- x_ctr, y_ctr = self.ctr
55
-
56
- h_ratios = paddle.sqrt(self.ratios)
57
- w_ratios = 1 / h_ratios
58
- if self.scale_major:
59
- ws = (w * w_ratios[:] * self.scales[:]).reshape([-1])
60
- hs = (h * h_ratios[:] * self.scales[:]).reshape([-1])
61
- else:
62
- ws = (w * self.scales[:] * w_ratios[:]).reshape([-1])
63
- hs = (h * self.scales[:] * h_ratios[:]).reshape([-1])
64
-
65
- base_anchors = paddle.stack(
66
- [
67
- x_ctr - 0.5 * (ws - 1), y_ctr - 0.5 * (hs - 1),
68
- x_ctr + 0.5 * (ws - 1), y_ctr + 0.5 * (hs - 1)
69
- ],
70
- axis=-1)
71
- base_anchors = paddle.round(base_anchors)
72
- return base_anchors
73
-
74
- def _meshgrid(self, x, y, row_major=True):
75
- yy, xx = paddle.meshgrid(y, x)
76
- yy = yy.reshape([-1])
77
- xx = xx.reshape([-1])
78
- if row_major:
79
- return xx, yy
80
- else:
81
- return yy, xx
82
-
83
- def forward(self, featmap_size, stride=16):
84
- # featmap_size*stride project it to original area
85
-
86
- feat_h = featmap_size[0]
87
- feat_w = featmap_size[1]
88
- shift_x = paddle.arange(0, feat_w, 1, 'int32') * stride
89
- shift_y = paddle.arange(0, feat_h, 1, 'int32') * stride
90
- shift_xx, shift_yy = self._meshgrid(shift_x, shift_y)
91
- shifts = paddle.stack(
92
- [shift_xx, shift_yy, shift_xx, shift_yy], axis=-1)
93
-
94
- all_anchors = self.base_anchors[:, :] + shifts[:, :]
95
- all_anchors = all_anchors.reshape([feat_h * feat_w, 4])
96
- return all_anchors
97
-
98
- def valid_flags(self, featmap_size, valid_size):
99
- feat_h, feat_w = featmap_size
100
- valid_h, valid_w = valid_size
101
- assert valid_h <= feat_h and valid_w <= feat_w
102
- valid_x = paddle.zeros([feat_w], dtype='int32')
103
- valid_y = paddle.zeros([feat_h], dtype='int32')
104
- valid_x[:valid_w] = 1
105
- valid_y[:valid_h] = 1
106
- valid_xx, valid_yy = self._meshgrid(valid_x, valid_y)
107
- valid = valid_xx & valid_yy
108
- valid = paddle.reshape(valid, [-1, 1])
109
- valid = paddle.expand(valid, [-1, self.num_base_anchors]).reshape([-1])
110
- return valid
111
-
112
-
113
- class AlignConv(nn.Layer):
114
- def __init__(self, in_channels, out_channels, kernel_size=3, groups=1):
115
- super(AlignConv, self).__init__()
116
- self.kernel_size = kernel_size
117
- self.align_conv = paddle.vision.ops.DeformConv2D(
118
- in_channels,
119
- out_channels,
120
- kernel_size=self.kernel_size,
121
- padding=(self.kernel_size - 1) // 2,
122
- groups=groups,
123
- weight_attr=ParamAttr(initializer=Normal(0, 0.01)),
124
- bias_attr=None)
125
-
126
- @paddle.no_grad()
127
- def get_offset(self, anchors, featmap_size, stride):
128
- """
129
- Args:
130
- anchors: [M,5] xc,yc,w,h,angle
131
- featmap_size: (feat_h, feat_w)
132
- stride: 8
133
- Returns:
134
-
135
- """
136
- anchors = paddle.reshape(anchors, [-1, 5]) # (NA,5)
137
- dtype = anchors.dtype
138
- feat_h = featmap_size[0]
139
- feat_w = featmap_size[1]
140
- pad = (self.kernel_size - 1) // 2
141
- idx = paddle.arange(-pad, pad + 1, dtype=dtype)
142
-
143
- yy, xx = paddle.meshgrid(idx, idx)
144
- xx = paddle.reshape(xx, [-1])
145
- yy = paddle.reshape(yy, [-1])
146
-
147
- # get sampling locations of default conv
148
- xc = paddle.arange(0, feat_w, dtype=dtype)
149
- yc = paddle.arange(0, feat_h, dtype=dtype)
150
- yc, xc = paddle.meshgrid(yc, xc)
151
-
152
- xc = paddle.reshape(xc, [-1, 1])
153
- yc = paddle.reshape(yc, [-1, 1])
154
- x_conv = xc + xx
155
- y_conv = yc + yy
156
-
157
- # get sampling locations of anchors
158
- # x_ctr, y_ctr, w, h, a = np.unbind(anchors, dim=1)
159
- x_ctr = anchors[:, 0]
160
- y_ctr = anchors[:, 1]
161
- w = anchors[:, 2]
162
- h = anchors[:, 3]
163
- a = anchors[:, 4]
164
-
165
- x_ctr = paddle.reshape(x_ctr, [-1, 1])
166
- y_ctr = paddle.reshape(y_ctr, [-1, 1])
167
- w = paddle.reshape(w, [-1, 1])
168
- h = paddle.reshape(h, [-1, 1])
169
- a = paddle.reshape(a, [-1, 1])
170
-
171
- x_ctr = x_ctr / stride
172
- y_ctr = y_ctr / stride
173
- w_s = w / stride
174
- h_s = h / stride
175
- cos, sin = paddle.cos(a), paddle.sin(a)
176
- dw, dh = w_s / self.kernel_size, h_s / self.kernel_size
177
- x, y = dw * xx, dh * yy
178
- xr = cos * x - sin * y
179
- yr = sin * x + cos * y
180
- x_anchor, y_anchor = xr + x_ctr, yr + y_ctr
181
- # get offset filed
182
- offset_x = x_anchor - x_conv
183
- offset_y = y_anchor - y_conv
184
- offset = paddle.stack([offset_y, offset_x], axis=-1)
185
- offset = paddle.reshape(
186
- offset,
187
- [feat_h * feat_w, self.kernel_size * self.kernel_size * 2])
188
- offset = paddle.transpose(offset, [1, 0])
189
- offset = paddle.reshape(
190
- offset,
191
- [1, self.kernel_size * self.kernel_size * 2, feat_h, feat_w])
192
- return offset
193
-
194
- def forward(self, x, refine_anchors, featmap_size, stride):
195
- offset = self.get_offset(refine_anchors, featmap_size, stride)
196
- x = F.relu(self.align_conv(x, offset))
197
- return x
198
-
199
-
200
- @register
201
- class S2ANetHead(nn.Layer):
202
- """
203
- S2Anet head
204
- Args:
205
- stacked_convs (int): number of stacked_convs
206
- feat_in (int): input channels of feat
207
- feat_out (int): output channels of feat
208
- num_classes (int): num_classes
209
- anchor_strides (list): stride of anchors
210
- anchor_scales (list): scale of anchors
211
- anchor_ratios (list): ratios of anchors
212
- target_means (list): target_means
213
- target_stds (list): target_stds
214
- align_conv_type (str): align_conv_type ['Conv', 'AlignConv']
215
- align_conv_size (int): kernel size of align_conv
216
- use_sigmoid_cls (bool): use sigmoid_cls or not
217
- reg_loss_weight (list): loss weight for regression
218
- """
219
- __shared__ = ['num_classes']
220
- __inject__ = ['anchor_assign']
221
-
222
- def __init__(self,
223
- stacked_convs=2,
224
- feat_in=256,
225
- feat_out=256,
226
- num_classes=15,
227
- anchor_strides=[8, 16, 32, 64, 128],
228
- anchor_scales=[4],
229
- anchor_ratios=[1.0],
230
- target_means=0.0,
231
- target_stds=1.0,
232
- align_conv_type='AlignConv',
233
- align_conv_size=3,
234
- use_sigmoid_cls=True,
235
- anchor_assign=RBoxAssigner().__dict__,
236
- reg_loss_weight=[1.0, 1.0, 1.0, 1.0, 1.1],
237
- cls_loss_weight=[1.1, 1.05],
238
- reg_loss_type='l1'):
239
- super(S2ANetHead, self).__init__()
240
- self.stacked_convs = stacked_convs
241
- self.feat_in = feat_in
242
- self.feat_out = feat_out
243
- self.anchor_list = None
244
- self.anchor_scales = anchor_scales
245
- self.anchor_ratios = anchor_ratios
246
- self.anchor_strides = anchor_strides
247
- self.anchor_strides = paddle.to_tensor(anchor_strides)
248
- self.anchor_base_sizes = list(anchor_strides)
249
- self.means = paddle.ones(shape=[5]) * target_means
250
- self.stds = paddle.ones(shape=[5]) * target_stds
251
- assert align_conv_type in ['AlignConv', 'Conv', 'DCN']
252
- self.align_conv_type = align_conv_type
253
- self.align_conv_size = align_conv_size
254
-
255
- self.use_sigmoid_cls = use_sigmoid_cls
256
- self.cls_out_channels = num_classes if self.use_sigmoid_cls else 1
257
- self.sampling = False
258
- self.anchor_assign = anchor_assign
259
- self.reg_loss_weight = reg_loss_weight
260
- self.cls_loss_weight = cls_loss_weight
261
- self.alpha = 1.0
262
- self.beta = 1.0
263
- self.reg_loss_type = reg_loss_type
264
- self.s2anet_head_out = None
265
-
266
- # anchor
267
- self.anchor_generators = []
268
- for anchor_base in self.anchor_base_sizes:
269
- self.anchor_generators.append(
270
- S2ANetAnchorGenerator(anchor_base, anchor_scales,
271
- anchor_ratios))
272
-
273
- self.anchor_generators = nn.LayerList(self.anchor_generators)
274
- self.fam_cls_convs = nn.Sequential()
275
- self.fam_reg_convs = nn.Sequential()
276
-
277
- for i in range(self.stacked_convs):
278
- chan_in = self.feat_in if i == 0 else self.feat_out
279
-
280
- self.fam_cls_convs.add_sublayer(
281
- 'fam_cls_conv_{}'.format(i),
282
- nn.Conv2D(
283
- in_channels=chan_in,
284
- out_channels=self.feat_out,
285
- kernel_size=3,
286
- padding=1,
287
- weight_attr=ParamAttr(initializer=Normal(0.0, 0.01)),
288
- bias_attr=ParamAttr(initializer=Constant(0))))
289
-
290
- self.fam_cls_convs.add_sublayer('fam_cls_conv_{}_act'.format(i),
291
- nn.ReLU())
292
-
293
- self.fam_reg_convs.add_sublayer(
294
- 'fam_reg_conv_{}'.format(i),
295
- nn.Conv2D(
296
- in_channels=chan_in,
297
- out_channels=self.feat_out,
298
- kernel_size=3,
299
- padding=1,
300
- weight_attr=ParamAttr(initializer=Normal(0.0, 0.01)),
301
- bias_attr=ParamAttr(initializer=Constant(0))))
302
-
303
- self.fam_reg_convs.add_sublayer('fam_reg_conv_{}_act'.format(i),
304
- nn.ReLU())
305
-
306
- self.fam_reg = nn.Conv2D(
307
- self.feat_out,
308
- 5,
309
- 1,
310
- weight_attr=ParamAttr(initializer=Normal(0.0, 0.01)),
311
- bias_attr=ParamAttr(initializer=Constant(0)))
312
- prior_prob = 0.01
313
- bias_init = float(-np.log((1 - prior_prob) / prior_prob))
314
- self.fam_cls = nn.Conv2D(
315
- self.feat_out,
316
- self.cls_out_channels,
317
- 1,
318
- weight_attr=ParamAttr(initializer=Normal(0.0, 0.01)),
319
- bias_attr=ParamAttr(initializer=Constant(bias_init)))
320
-
321
- if self.align_conv_type == "AlignConv":
322
- self.align_conv = AlignConv(self.feat_out, self.feat_out,
323
- self.align_conv_size)
324
- elif self.align_conv_type == "Conv":
325
- self.align_conv = nn.Conv2D(
326
- self.feat_out,
327
- self.feat_out,
328
- self.align_conv_size,
329
- padding=(self.align_conv_size - 1) // 2,
330
- bias_attr=ParamAttr(initializer=Constant(0)))
331
-
332
- elif self.align_conv_type == "DCN":
333
- self.align_conv_offset = nn.Conv2D(
334
- self.feat_out,
335
- 2 * self.align_conv_size**2,
336
- 1,
337
- weight_attr=ParamAttr(initializer=Normal(0.0, 0.01)),
338
- bias_attr=ParamAttr(initializer=Constant(0)))
339
-
340
- self.align_conv = paddle.vision.ops.DeformConv2D(
341
- self.feat_out,
342
- self.feat_out,
343
- self.align_conv_size,
344
- padding=(self.align_conv_size - 1) // 2,
345
- weight_attr=ParamAttr(initializer=Normal(0.0, 0.01)),
346
- bias_attr=False)
347
-
348
- self.or_conv = nn.Conv2D(
349
- self.feat_out,
350
- self.feat_out,
351
- kernel_size=3,
352
- padding=1,
353
- weight_attr=ParamAttr(initializer=Normal(0.0, 0.01)),
354
- bias_attr=ParamAttr(initializer=Constant(0)))
355
-
356
- # ODM
357
- self.odm_cls_convs = nn.Sequential()
358
- self.odm_reg_convs = nn.Sequential()
359
-
360
- for i in range(self.stacked_convs):
361
- ch_in = self.feat_out
362
- # ch_in = int(self.feat_out / 8) if i == 0 else self.feat_out
363
-
364
- self.odm_cls_convs.add_sublayer(
365
- 'odm_cls_conv_{}'.format(i),
366
- nn.Conv2D(
367
- in_channels=ch_in,
368
- out_channels=self.feat_out,
369
- kernel_size=3,
370
- stride=1,
371
- padding=1,
372
- weight_attr=ParamAttr(initializer=Normal(0.0, 0.01)),
373
- bias_attr=ParamAttr(initializer=Constant(0))))
374
-
375
- self.odm_cls_convs.add_sublayer('odm_cls_conv_{}_act'.format(i),
376
- nn.ReLU())
377
-
378
- self.odm_reg_convs.add_sublayer(
379
- 'odm_reg_conv_{}'.format(i),
380
- nn.Conv2D(
381
- in_channels=self.feat_out,
382
- out_channels=self.feat_out,
383
- kernel_size=3,
384
- stride=1,
385
- padding=1,
386
- weight_attr=ParamAttr(initializer=Normal(0.0, 0.01)),
387
- bias_attr=ParamAttr(initializer=Constant(0))))
388
-
389
- self.odm_reg_convs.add_sublayer('odm_reg_conv_{}_act'.format(i),
390
- nn.ReLU())
391
-
392
- self.odm_cls = nn.Conv2D(
393
- self.feat_out,
394
- self.cls_out_channels,
395
- 3,
396
- padding=1,
397
- weight_attr=ParamAttr(initializer=Normal(0.0, 0.01)),
398
- bias_attr=ParamAttr(initializer=Constant(bias_init)))
399
- self.odm_reg = nn.Conv2D(
400
- self.feat_out,
401
- 5,
402
- 3,
403
- padding=1,
404
- weight_attr=ParamAttr(initializer=Normal(0.0, 0.01)),
405
- bias_attr=ParamAttr(initializer=Constant(0)))
406
-
407
- self.featmap_sizes = []
408
- self.base_anchors_list = []
409
- self.refine_anchor_list = []
410
-
411
- def forward(self, feats):
412
- fam_reg_branch_list = []
413
- fam_cls_branch_list = []
414
-
415
- odm_reg_branch_list = []
416
- odm_cls_branch_list = []
417
-
418
- self.featmap_sizes_list = []
419
- self.base_anchors_list = []
420
- self.refine_anchor_list = []
421
-
422
- for feat_idx in range(len(feats)):
423
- feat = feats[feat_idx]
424
- fam_cls_feat = self.fam_cls_convs(feat)
425
-
426
- fam_cls = self.fam_cls(fam_cls_feat)
427
- # [N, CLS, H, W] --> [N, H, W, CLS]
428
- fam_cls = fam_cls.transpose([0, 2, 3, 1])
429
- fam_cls_reshape = paddle.reshape(
430
- fam_cls, [fam_cls.shape[0], -1, self.cls_out_channels])
431
- fam_cls_branch_list.append(fam_cls_reshape)
432
-
433
- fam_reg_feat = self.fam_reg_convs(feat)
434
-
435
- fam_reg = self.fam_reg(fam_reg_feat)
436
- # [N, 5, H, W] --> [N, H, W, 5]
437
- fam_reg = fam_reg.transpose([0, 2, 3, 1])
438
- fam_reg_reshape = paddle.reshape(fam_reg,
439
- [fam_reg.shape[0], -1, 5])
440
- fam_reg_branch_list.append(fam_reg_reshape)
441
-
442
- # prepare anchor
443
- featmap_size = (paddle.shape(feat)[2], paddle.shape(feat)[3])
444
- self.featmap_sizes_list.append(featmap_size)
445
- init_anchors = self.anchor_generators[feat_idx](
446
- featmap_size, self.anchor_strides[feat_idx])
447
-
448
- init_anchors = paddle.to_tensor(init_anchors, dtype='float32')
449
- NA = featmap_size[0] * featmap_size[1]
450
- init_anchors = paddle.reshape(init_anchors, [NA, 4])
451
- init_anchors = self.rect2rbox(init_anchors)
452
- self.base_anchors_list.append(init_anchors)
453
-
454
- if self.training:
455
- refine_anchor = self.bbox_decode(fam_reg.detach(),
456
- init_anchors)
457
- else:
458
- refine_anchor = self.bbox_decode(fam_reg, init_anchors)
459
-
460
- self.refine_anchor_list.append(refine_anchor)
461
-
462
- if self.align_conv_type == 'AlignConv':
463
- align_feat = self.align_conv(feat,
464
- refine_anchor.clone(),
465
- featmap_size,
466
- self.anchor_strides[feat_idx])
467
- elif self.align_conv_type == 'DCN':
468
- align_offset = self.align_conv_offset(feat)
469
- align_feat = self.align_conv(feat, align_offset)
470
- elif self.align_conv_type == 'Conv':
471
- align_feat = self.align_conv(feat)
472
-
473
- or_feat = self.or_conv(align_feat)
474
- odm_reg_feat = or_feat
475
- odm_cls_feat = or_feat
476
-
477
- odm_reg_feat = self.odm_reg_convs(odm_reg_feat)
478
- odm_cls_feat = self.odm_cls_convs(odm_cls_feat)
479
-
480
- odm_cls_score = self.odm_cls(odm_cls_feat)
481
- # [N, CLS, H, W] --> [N, H, W, CLS]
482
- odm_cls_score = odm_cls_score.transpose([0, 2, 3, 1])
483
- odm_cls_score_shape = odm_cls_score.shape
484
- odm_cls_score_reshape = paddle.reshape(odm_cls_score, [
485
- odm_cls_score_shape[0], odm_cls_score_shape[1] *
486
- odm_cls_score_shape[2], self.cls_out_channels
487
- ])
488
-
489
- odm_cls_branch_list.append(odm_cls_score_reshape)
490
-
491
- odm_bbox_pred = self.odm_reg(odm_reg_feat)
492
- # [N, 5, H, W] --> [N, H, W, 5]
493
- odm_bbox_pred = odm_bbox_pred.transpose([0, 2, 3, 1])
494
- odm_bbox_pred_reshape = paddle.reshape(odm_bbox_pred, [-1, 5])
495
- odm_bbox_pred_reshape = paddle.unsqueeze(
496
- odm_bbox_pred_reshape, axis=0)
497
- odm_reg_branch_list.append(odm_bbox_pred_reshape)
498
-
499
- self.s2anet_head_out = (fam_cls_branch_list, fam_reg_branch_list,
500
- odm_cls_branch_list, odm_reg_branch_list)
501
- return self.s2anet_head_out
502
-
503
- def get_prediction(self, nms_pre=2000):
504
- refine_anchors = self.refine_anchor_list
505
- fam_cls_branch_list = self.s2anet_head_out[0]
506
- fam_reg_branch_list = self.s2anet_head_out[1]
507
- odm_cls_branch_list = self.s2anet_head_out[2]
508
- odm_reg_branch_list = self.s2anet_head_out[3]
509
- pred_scores, pred_bboxes = self.get_bboxes(
510
- odm_cls_branch_list, odm_reg_branch_list, refine_anchors, nms_pre,
511
- self.cls_out_channels, self.use_sigmoid_cls)
512
- return pred_scores, pred_bboxes
513
-
514
- def smooth_l1_loss(self, pred, label, delta=1.0 / 9.0):
515
- """
516
- Args:
517
- pred: pred score
518
- label: label
519
- delta: delta
520
- Returns: loss
521
- """
522
- assert pred.shape == label.shape and label.numel() > 0
523
- assert delta > 0
524
- diff = paddle.abs(pred - label)
525
- loss = paddle.where(diff < delta, 0.5 * diff * diff / delta,
526
- diff - 0.5 * delta)
527
- return loss
528
-
529
- def get_fam_loss(self, fam_target, s2anet_head_out, reg_loss_type='gwd'):
530
- (labels, label_weights, bbox_targets, bbox_weights, bbox_gt_bboxes,
531
- pos_inds, neg_inds) = fam_target
532
- fam_cls_branch_list, fam_reg_branch_list, odm_cls_branch_list, odm_reg_branch_list = s2anet_head_out
533
-
534
- fam_cls_losses = []
535
- fam_bbox_losses = []
536
- st_idx = 0
537
- num_total_samples = len(pos_inds) + len(
538
- neg_inds) if self.sampling else len(pos_inds)
539
- num_total_samples = max(1, num_total_samples)
540
-
541
- for idx, feat_size in enumerate(self.featmap_sizes_list):
542
- feat_anchor_num = feat_size[0] * feat_size[1]
543
-
544
- # step1: get data
545
- feat_labels = labels[st_idx:st_idx + feat_anchor_num]
546
- feat_label_weights = label_weights[st_idx:st_idx + feat_anchor_num]
547
-
548
- feat_bbox_targets = bbox_targets[st_idx:st_idx +
549
- feat_anchor_num, :]
550
- feat_bbox_weights = bbox_weights[st_idx:st_idx +
551
- feat_anchor_num, :]
552
-
553
- # step2: calc cls loss
554
- feat_labels = feat_labels.reshape(-1)
555
- feat_label_weights = feat_label_weights.reshape(-1)
556
-
557
- fam_cls_score = fam_cls_branch_list[idx]
558
- fam_cls_score = paddle.squeeze(fam_cls_score, axis=0)
559
- fam_cls_score1 = fam_cls_score
560
-
561
- feat_labels = paddle.to_tensor(feat_labels)
562
- feat_labels_one_hot = paddle.nn.functional.one_hot(
563
- feat_labels, self.cls_out_channels + 1)
564
- feat_labels_one_hot = feat_labels_one_hot[:, 1:]
565
- feat_labels_one_hot.stop_gradient = True
566
-
567
- num_total_samples = paddle.to_tensor(
568
- num_total_samples, dtype='float32', stop_gradient=True)
569
-
570
- fam_cls = F.sigmoid_focal_loss(
571
- fam_cls_score1,
572
- feat_labels_one_hot,
573
- normalizer=num_total_samples,
574
- reduction='none')
575
-
576
- feat_label_weights = feat_label_weights.reshape(
577
- feat_label_weights.shape[0], 1)
578
- feat_label_weights = np.repeat(
579
- feat_label_weights, self.cls_out_channels, axis=1)
580
- feat_label_weights = paddle.to_tensor(
581
- feat_label_weights, stop_gradient=True)
582
-
583
- fam_cls = fam_cls * feat_label_weights
584
- fam_cls_total = paddle.sum(fam_cls)
585
- fam_cls_losses.append(fam_cls_total)
586
-
587
- # step3: regression loss
588
- feat_bbox_targets = paddle.to_tensor(
589
- feat_bbox_targets, dtype='float32', stop_gradient=True)
590
- feat_bbox_targets = paddle.reshape(feat_bbox_targets, [-1, 5])
591
-
592
- fam_bbox_pred = fam_reg_branch_list[idx]
593
- fam_bbox_pred = paddle.squeeze(fam_bbox_pred, axis=0)
594
- fam_bbox_pred = paddle.reshape(fam_bbox_pred, [-1, 5])
595
- fam_bbox = self.smooth_l1_loss(fam_bbox_pred, feat_bbox_targets)
596
- loss_weight = paddle.to_tensor(
597
- self.reg_loss_weight, dtype='float32', stop_gradient=True)
598
- fam_bbox = paddle.multiply(fam_bbox, loss_weight)
599
- feat_bbox_weights = paddle.to_tensor(
600
- feat_bbox_weights, stop_gradient=True)
601
-
602
- if reg_loss_type == 'l1':
603
- fam_bbox = fam_bbox * feat_bbox_weights
604
- fam_bbox_total = paddle.sum(fam_bbox) / num_total_samples
605
- elif reg_loss_type == 'iou' or reg_loss_type == 'gwd':
606
- fam_bbox = paddle.sum(fam_bbox, axis=-1)
607
- feat_bbox_weights = paddle.sum(feat_bbox_weights, axis=-1)
608
- try:
609
- from rbox_iou_ops import rbox_iou
610
- except Exception as e:
611
- print("import custom_ops error, try install rbox_iou_ops " \
612
- "following ppdet/ext_op/README.md", e)
613
- sys.stdout.flush()
614
- sys.exit(-1)
615
- # calc iou
616
- fam_bbox_decode = self.delta2rbox(self.base_anchors_list[idx],
617
- fam_bbox_pred)
618
- bbox_gt_bboxes = paddle.to_tensor(
619
- bbox_gt_bboxes,
620
- dtype=fam_bbox_decode.dtype,
621
- place=fam_bbox_decode.place)
622
- bbox_gt_bboxes.stop_gradient = True
623
- iou = rbox_iou(fam_bbox_decode, bbox_gt_bboxes)
624
- iou = paddle.diag(iou)
625
-
626
- if reg_loss_type == 'gwd':
627
- bbox_gt_bboxes_level = bbox_gt_bboxes[st_idx:st_idx +
628
- feat_anchor_num, :]
629
- fam_bbox_total = self.gwd_loss(fam_bbox_decode,
630
- bbox_gt_bboxes_level)
631
- fam_bbox_total = fam_bbox_total * feat_bbox_weights
632
- fam_bbox_total = paddle.sum(
633
- fam_bbox_total) / num_total_samples
634
-
635
- fam_bbox_losses.append(fam_bbox_total)
636
- st_idx += feat_anchor_num
637
-
638
- fam_cls_loss = paddle.add_n(fam_cls_losses)
639
- fam_cls_loss_weight = paddle.to_tensor(
640
- self.cls_loss_weight[0], dtype='float32', stop_gradient=True)
641
- fam_cls_loss = fam_cls_loss * fam_cls_loss_weight
642
- fam_reg_loss = paddle.add_n(fam_bbox_losses)
643
- return fam_cls_loss, fam_reg_loss
644
-
645
- def get_odm_loss(self, odm_target, s2anet_head_out, reg_loss_type='gwd'):
646
- (labels, label_weights, bbox_targets, bbox_weights, bbox_gt_bboxes,
647
- pos_inds, neg_inds) = odm_target
648
- fam_cls_branch_list, fam_reg_branch_list, odm_cls_branch_list, odm_reg_branch_list = s2anet_head_out
649
-
650
- odm_cls_losses = []
651
- odm_bbox_losses = []
652
- st_idx = 0
653
- num_total_samples = len(pos_inds) + len(
654
- neg_inds) if self.sampling else len(pos_inds)
655
- num_total_samples = max(1, num_total_samples)
656
-
657
- for idx, feat_size in enumerate(self.featmap_sizes_list):
658
- feat_anchor_num = feat_size[0] * feat_size[1]
659
-
660
- # step1: get data
661
- feat_labels = labels[st_idx:st_idx + feat_anchor_num]
662
- feat_label_weights = label_weights[st_idx:st_idx + feat_anchor_num]
663
-
664
- feat_bbox_targets = bbox_targets[st_idx:st_idx +
665
- feat_anchor_num, :]
666
- feat_bbox_weights = bbox_weights[st_idx:st_idx +
667
- feat_anchor_num, :]
668
-
669
- # step2: calc cls loss
670
- feat_labels = feat_labels.reshape(-1)
671
- feat_label_weights = feat_label_weights.reshape(-1)
672
-
673
- odm_cls_score = odm_cls_branch_list[idx]
674
- odm_cls_score = paddle.squeeze(odm_cls_score, axis=0)
675
- odm_cls_score1 = odm_cls_score
676
-
677
- feat_labels = paddle.to_tensor(feat_labels)
678
- feat_labels_one_hot = paddle.nn.functional.one_hot(
679
- feat_labels, self.cls_out_channels + 1)
680
- feat_labels_one_hot = feat_labels_one_hot[:, 1:]
681
- feat_labels_one_hot.stop_gradient = True
682
-
683
- num_total_samples = paddle.to_tensor(
684
- num_total_samples, dtype='float32', stop_gradient=True)
685
- odm_cls = F.sigmoid_focal_loss(
686
- odm_cls_score1,
687
- feat_labels_one_hot,
688
- normalizer=num_total_samples,
689
- reduction='none')
690
-
691
- feat_label_weights = feat_label_weights.reshape(
692
- feat_label_weights.shape[0], 1)
693
- feat_label_weights = np.repeat(
694
- feat_label_weights, self.cls_out_channels, axis=1)
695
- feat_label_weights = paddle.to_tensor(feat_label_weights)
696
- feat_label_weights.stop_gradient = True
697
-
698
- odm_cls = odm_cls * feat_label_weights
699
- odm_cls_total = paddle.sum(odm_cls)
700
- odm_cls_losses.append(odm_cls_total)
701
-
702
- # # step3: regression loss
703
- feat_bbox_targets = paddle.to_tensor(
704
- feat_bbox_targets, dtype='float32')
705
- feat_bbox_targets = paddle.reshape(feat_bbox_targets, [-1, 5])
706
- feat_bbox_targets.stop_gradient = True
707
-
708
- odm_bbox_pred = odm_reg_branch_list[idx]
709
- odm_bbox_pred = paddle.squeeze(odm_bbox_pred, axis=0)
710
- odm_bbox_pred = paddle.reshape(odm_bbox_pred, [-1, 5])
711
- odm_bbox = self.smooth_l1_loss(odm_bbox_pred, feat_bbox_targets)
712
-
713
- loss_weight = paddle.to_tensor(
714
- self.reg_loss_weight, dtype='float32', stop_gradient=True)
715
- odm_bbox = paddle.multiply(odm_bbox, loss_weight)
716
- feat_bbox_weights = paddle.to_tensor(
717
- feat_bbox_weights, stop_gradient=True)
718
-
719
- if reg_loss_type == 'l1':
720
- odm_bbox = odm_bbox * feat_bbox_weights
721
- odm_bbox_total = paddle.sum(odm_bbox) / num_total_samples
722
- elif reg_loss_type == 'iou' or reg_loss_type == 'gwd':
723
- odm_bbox = paddle.sum(odm_bbox, axis=-1)
724
- feat_bbox_weights = paddle.sum(feat_bbox_weights, axis=-1)
725
- try:
726
- from rbox_iou_ops import rbox_iou
727
- except Exception as e:
728
- print("import custom_ops error, try install rbox_iou_ops " \
729
- "following ppdet/ext_op/README.md", e)
730
- sys.stdout.flush()
731
- sys.exit(-1)
732
- # calc iou
733
- odm_bbox_decode = self.delta2rbox(self.refine_anchor_list[idx],
734
- odm_bbox_pred)
735
- bbox_gt_bboxes = paddle.to_tensor(
736
- bbox_gt_bboxes,
737
- dtype=odm_bbox_decode.dtype,
738
- place=odm_bbox_decode.place)
739
- bbox_gt_bboxes.stop_gradient = True
740
- iou = rbox_iou(odm_bbox_decode, bbox_gt_bboxes)
741
- iou = paddle.diag(iou)
742
-
743
- if reg_loss_type == 'gwd':
744
- bbox_gt_bboxes_level = bbox_gt_bboxes[st_idx:st_idx +
745
- feat_anchor_num, :]
746
- odm_bbox_total = self.gwd_loss(odm_bbox_decode,
747
- bbox_gt_bboxes_level)
748
- odm_bbox_total = odm_bbox_total * feat_bbox_weights
749
- odm_bbox_total = paddle.sum(
750
- odm_bbox_total) / num_total_samples
751
-
752
- odm_bbox_losses.append(odm_bbox_total)
753
- st_idx += feat_anchor_num
754
-
755
- odm_cls_loss = paddle.add_n(odm_cls_losses)
756
- odm_cls_loss_weight = paddle.to_tensor(
757
- self.cls_loss_weight[1], dtype='float32', stop_gradient=True)
758
- odm_cls_loss = odm_cls_loss * odm_cls_loss_weight
759
- odm_reg_loss = paddle.add_n(odm_bbox_losses)
760
- return odm_cls_loss, odm_reg_loss
761
-
762
- def get_loss(self, inputs):
763
- # inputs: im_id image im_shape scale_factor gt_bbox gt_class is_crowd
764
-
765
- # compute loss
766
- fam_cls_loss_lst = []
767
- fam_reg_loss_lst = []
768
- odm_cls_loss_lst = []
769
- odm_reg_loss_lst = []
770
-
771
- im_shape = inputs['im_shape']
772
- for im_id in range(im_shape.shape[0]):
773
- np_im_shape = inputs['im_shape'][im_id].numpy()
774
- np_scale_factor = inputs['scale_factor'][im_id].numpy()
775
- # data_format: (xc, yc, w, h, theta)
776
- gt_bboxes = inputs['gt_rbox'][im_id].numpy()
777
- gt_labels = inputs['gt_class'][im_id].numpy()
778
- is_crowd = inputs['is_crowd'][im_id].numpy()
779
- gt_labels = gt_labels + 1
780
-
781
- # featmap_sizes
782
- anchors_list_all = np.concatenate(self.base_anchors_list)
783
-
784
- # get im_feat
785
- fam_cls_feats_list = [e[im_id] for e in self.s2anet_head_out[0]]
786
- fam_reg_feats_list = [e[im_id] for e in self.s2anet_head_out[1]]
787
- odm_cls_feats_list = [e[im_id] for e in self.s2anet_head_out[2]]
788
- odm_reg_feats_list = [e[im_id] for e in self.s2anet_head_out[3]]
789
- im_s2anet_head_out = (fam_cls_feats_list, fam_reg_feats_list,
790
- odm_cls_feats_list, odm_reg_feats_list)
791
-
792
- # FAM
793
- im_fam_target = self.anchor_assign(anchors_list_all, gt_bboxes,
794
- gt_labels, is_crowd)
795
- if im_fam_target is not None:
796
- im_fam_cls_loss, im_fam_reg_loss = self.get_fam_loss(
797
- im_fam_target, im_s2anet_head_out, self.reg_loss_type)
798
- fam_cls_loss_lst.append(im_fam_cls_loss)
799
- fam_reg_loss_lst.append(im_fam_reg_loss)
800
-
801
- # ODM
802
- np_refine_anchors_list = paddle.concat(
803
- self.refine_anchor_list).numpy()
804
- np_refine_anchors_list = np.concatenate(np_refine_anchors_list)
805
- np_refine_anchors_list = np_refine_anchors_list.reshape(-1, 5)
806
- im_odm_target = self.anchor_assign(np_refine_anchors_list,
807
- gt_bboxes, gt_labels, is_crowd)
808
-
809
- if im_odm_target is not None:
810
- im_odm_cls_loss, im_odm_reg_loss = self.get_odm_loss(
811
- im_odm_target, im_s2anet_head_out, self.reg_loss_type)
812
- odm_cls_loss_lst.append(im_odm_cls_loss)
813
- odm_reg_loss_lst.append(im_odm_reg_loss)
814
- fam_cls_loss = paddle.add_n(fam_cls_loss_lst)
815
- fam_reg_loss = paddle.add_n(fam_reg_loss_lst)
816
- odm_cls_loss = paddle.add_n(odm_cls_loss_lst)
817
- odm_reg_loss = paddle.add_n(odm_reg_loss_lst)
818
- return {
819
- 'fam_cls_loss': fam_cls_loss,
820
- 'fam_reg_loss': fam_reg_loss,
821
- 'odm_cls_loss': odm_cls_loss,
822
- 'odm_reg_loss': odm_reg_loss
823
- }
824
-
825
- def get_bboxes(self, cls_score_list, bbox_pred_list, mlvl_anchors, nms_pre,
826
- cls_out_channels, use_sigmoid_cls):
827
- assert len(cls_score_list) == len(bbox_pred_list) == len(mlvl_anchors)
828
-
829
- mlvl_bboxes = []
830
- mlvl_scores = []
831
-
832
- idx = 0
833
- for cls_score, bbox_pred, anchors in zip(cls_score_list,
834
- bbox_pred_list, mlvl_anchors):
835
- cls_score = paddle.reshape(cls_score, [-1, cls_out_channels])
836
- if use_sigmoid_cls:
837
- scores = F.sigmoid(cls_score)
838
- else:
839
- scores = F.softmax(cls_score, axis=-1)
840
-
841
- # bbox_pred = bbox_pred.permute(1, 2, 0).reshape(-1, 5)
842
- bbox_pred = paddle.transpose(bbox_pred, [1, 2, 0])
843
- bbox_pred = paddle.reshape(bbox_pred, [-1, 5])
844
- anchors = paddle.reshape(anchors, [-1, 5])
845
-
846
- if scores.shape[0] > nms_pre:
847
- # Get maximum scores for foreground classes.
848
- if use_sigmoid_cls:
849
- max_scores = paddle.max(scores, axis=1)
850
- else:
851
- max_scores = paddle.max(scores[:, 1:], axis=1)
852
-
853
- topk_val, topk_inds = paddle.topk(max_scores, nms_pre)
854
- anchors = paddle.gather(anchors, topk_inds)
855
- bbox_pred = paddle.gather(bbox_pred, topk_inds)
856
- scores = paddle.gather(scores, topk_inds)
857
-
858
- bbox_delta = paddle.reshape(bbox_pred, [-1, 5])
859
- bboxes = self.delta2rbox(anchors, bbox_delta)
860
- mlvl_bboxes.append(bboxes)
861
- mlvl_scores.append(scores)
862
-
863
- idx += 1
864
-
865
- mlvl_bboxes = paddle.concat(mlvl_bboxes, axis=0)
866
- mlvl_scores = paddle.concat(mlvl_scores)
867
-
868
- return mlvl_scores, mlvl_bboxes
869
-
870
- def rect2rbox(self, bboxes):
871
- """
872
- :param bboxes: shape (n, 4) (xmin, ymin, xmax, ymax)
873
- :return: dbboxes: shape (n, 5) (x_ctr, y_ctr, w, h, angle)
874
- """
875
- bboxes = paddle.reshape(bboxes, [-1, 4])
876
- num_boxes = paddle.shape(bboxes)[0]
877
- x_ctr = (bboxes[:, 2] + bboxes[:, 0]) / 2.0
878
- y_ctr = (bboxes[:, 3] + bboxes[:, 1]) / 2.0
879
- edges1 = paddle.abs(bboxes[:, 2] - bboxes[:, 0])
880
- edges2 = paddle.abs(bboxes[:, 3] - bboxes[:, 1])
881
-
882
- rbox_w = paddle.maximum(edges1, edges2)
883
- rbox_h = paddle.minimum(edges1, edges2)
884
-
885
- # set angle
886
- inds = edges1 < edges2
887
- inds = paddle.cast(inds, 'int32')
888
- rboxes_angle = inds * np.pi / 2.0
889
-
890
- rboxes = paddle.stack(
891
- (x_ctr, y_ctr, rbox_w, rbox_h, rboxes_angle), axis=1)
892
- return rboxes
893
-
894
- # deltas to rbox
895
- def delta2rbox(self, rrois, deltas, wh_ratio_clip=1e-6):
896
- """
897
- :param rrois: (cx, cy, w, h, theta)
898
- :param deltas: (dx, dy, dw, dh, dtheta)
899
- :param means: means of anchor
900
- :param stds: stds of anchor
901
- :param wh_ratio_clip: clip threshold of wh_ratio
902
- :return:
903
- """
904
- deltas = paddle.reshape(deltas, [-1, 5])
905
- rrois = paddle.reshape(rrois, [-1, 5])
906
- # fix dy2st bug denorm_deltas = deltas * self.stds + self.means
907
- denorm_deltas = paddle.add(
908
- paddle.multiply(deltas, self.stds), self.means)
909
-
910
- dx = denorm_deltas[:, 0]
911
- dy = denorm_deltas[:, 1]
912
- dw = denorm_deltas[:, 2]
913
- dh = denorm_deltas[:, 3]
914
- dangle = denorm_deltas[:, 4]
915
- max_ratio = np.abs(np.log(wh_ratio_clip))
916
- dw = paddle.clip(dw, min=-max_ratio, max=max_ratio)
917
- dh = paddle.clip(dh, min=-max_ratio, max=max_ratio)
918
-
919
- rroi_x = rrois[:, 0]
920
- rroi_y = rrois[:, 1]
921
- rroi_w = rrois[:, 2]
922
- rroi_h = rrois[:, 3]
923
- rroi_angle = rrois[:, 4]
924
-
925
- gx = dx * rroi_w * paddle.cos(rroi_angle) - dy * rroi_h * paddle.sin(
926
- rroi_angle) + rroi_x
927
- gy = dx * rroi_w * paddle.sin(rroi_angle) + dy * rroi_h * paddle.cos(
928
- rroi_angle) + rroi_y
929
- gw = rroi_w * dw.exp()
930
- gh = rroi_h * dh.exp()
931
- ga = np.pi * dangle + rroi_angle
932
- ga = (ga + np.pi / 4) % np.pi - np.pi / 4
933
- ga = paddle.to_tensor(ga)
934
- gw = paddle.to_tensor(gw, dtype='float32')
935
- gh = paddle.to_tensor(gh, dtype='float32')
936
- bboxes = paddle.stack([gx, gy, gw, gh, ga], axis=-1)
937
- return bboxes
938
-
939
- def bbox_decode(self, bbox_preds, anchors):
940
- """decode bbox from deltas
941
- Args:
942
- bbox_preds: [N,H,W,5]
943
- anchors: [H*W,5]
944
- return:
945
- bboxes: [N,H,W,5]
946
- """
947
- num_imgs, H, W, _ = bbox_preds.shape
948
- bbox_delta = paddle.reshape(bbox_preds, [-1, 5])
949
- bboxes = self.delta2rbox(anchors, bbox_delta)
950
- return bboxes
951
-
952
- def trace(self, A):
953
- tr = paddle.diagonal(A, axis1=-2, axis2=-1)
954
- tr = paddle.sum(tr, axis=-1)
955
- return tr
956
-
957
- def sqrt_newton_schulz_autograd(self, A, numIters):
958
- A_shape = A.shape
959
- batchSize = A_shape[0]
960
- dim = A_shape[1]
961
-
962
- normA = A * A
963
- normA = paddle.sum(normA, axis=1)
964
- normA = paddle.sum(normA, axis=1)
965
- normA = paddle.sqrt(normA)
966
- normA1 = normA.reshape([batchSize, 1, 1])
967
- Y = paddle.divide(A, paddle.expand_as(normA1, A))
968
- I = paddle.eye(dim, dim).reshape([1, dim, dim])
969
- l0 = []
970
- for i in range(batchSize):
971
- l0.append(I)
972
- I = paddle.concat(l0, axis=0)
973
- I.stop_gradient = False
974
- Z = paddle.eye(dim, dim).reshape([1, dim, dim])
975
- l1 = []
976
- for i in range(batchSize):
977
- l1.append(Z)
978
- Z = paddle.concat(l1, axis=0)
979
- Z.stop_gradient = False
980
-
981
- for i in range(numIters):
982
- T = 0.5 * (3.0 * I - Z.bmm(Y))
983
- Y = Y.bmm(T)
984
- Z = T.bmm(Z)
985
- sA = Y * paddle.sqrt(normA1).reshape([batchSize, 1, 1])
986
- sA = paddle.expand_as(sA, A)
987
- return sA
988
-
989
- def wasserstein_distance_sigma(sigma1, sigma2):
990
- wasserstein_distance_item2 = paddle.matmul(
991
- sigma1, sigma1) + paddle.matmul(
992
- sigma2, sigma2) - 2 * self.sqrt_newton_schulz_autograd(
993
- paddle.matmul(
994
- paddle.matmul(sigma1, paddle.matmul(sigma2, sigma2)),
995
- sigma1), 10)
996
- wasserstein_distance_item2 = self.trace(wasserstein_distance_item2)
997
-
998
- return wasserstein_distance_item2
999
-
1000
- def xywhr2xyrs(self, xywhr):
1001
- xywhr = paddle.reshape(xywhr, [-1, 5])
1002
- xy = xywhr[:, :2]
1003
- wh = paddle.clip(xywhr[:, 2:4], min=1e-7, max=1e7)
1004
- r = xywhr[:, 4]
1005
- cos_r = paddle.cos(r)
1006
- sin_r = paddle.sin(r)
1007
- R = paddle.stack(
1008
- (cos_r, -sin_r, sin_r, cos_r), axis=-1).reshape([-1, 2, 2])
1009
- S = 0.5 * paddle.nn.functional.diag_embed(wh)
1010
- return xy, R, S
1011
-
1012
- def gwd_loss(self,
1013
- pred,
1014
- target,
1015
- fun='log',
1016
- tau=1.0,
1017
- alpha=1.0,
1018
- normalize=False):
1019
-
1020
- xy_p, R_p, S_p = self.xywhr2xyrs(pred)
1021
- xy_t, R_t, S_t = self.xywhr2xyrs(target)
1022
-
1023
- xy_distance = (xy_p - xy_t).square().sum(axis=-1)
1024
-
1025
- Sigma_p = R_p.matmul(S_p.square()).matmul(R_p.transpose([0, 2, 1]))
1026
- Sigma_t = R_t.matmul(S_t.square()).matmul(R_t.transpose([0, 2, 1]))
1027
-
1028
- whr_distance = paddle.diagonal(
1029
- S_p, axis1=-2, axis2=-1).square().sum(axis=-1)
1030
-
1031
- whr_distance = whr_distance + paddle.diagonal(
1032
- S_t, axis1=-2, axis2=-1).square().sum(axis=-1)
1033
- _t = Sigma_p.matmul(Sigma_t)
1034
-
1035
- _t_tr = paddle.diagonal(_t, axis1=-2, axis2=-1).sum(axis=-1)
1036
- _t_det_sqrt = paddle.diagonal(S_p, axis1=-2, axis2=-1).prod(axis=-1)
1037
- _t_det_sqrt = _t_det_sqrt * paddle.diagonal(
1038
- S_t, axis1=-2, axis2=-1).prod(axis=-1)
1039
- whr_distance = whr_distance + (-2) * (
1040
- (_t_tr + 2 * _t_det_sqrt).clip(0).sqrt())
1041
-
1042
- distance = (xy_distance + alpha * alpha * whr_distance).clip(0)
1043
-
1044
- if normalize:
1045
- wh_p = pred[..., 2:4].clip(min=1e-7, max=1e7)
1046
- wh_t = target[..., 2:4].clip(min=1e-7, max=1e7)
1047
- scale = ((wh_p.log() + wh_t.log()).sum(dim=-1) / 4).exp()
1048
- distance = distance / scale
1049
-
1050
- if fun == 'log':
1051
- distance = paddle.log1p(distance)
1052
-
1053
- if tau >= 1.0:
1054
- return 1 - 1 / (tau + distance)
1055
-
1056
- return distance