paddlex 2.0.0rc4__py3-none-any.whl → 3.0.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1533) hide show
  1. paddlex/.version +1 -0
  2. paddlex/__init__.py +35 -18
  3. paddlex/__main__.py +39 -0
  4. paddlex/configs/modules/3d_bev_detection/BEVFusion.yaml +38 -0
  5. paddlex/configs/modules/chart_parsing/PP-Chart2Table.yaml +13 -0
  6. paddlex/configs/modules/doc_text_orientation/PP-LCNet_x1_0_doc_ori.yaml +41 -0
  7. paddlex/configs/modules/doc_vlm/PP-DocBee-2B.yaml +14 -0
  8. paddlex/configs/modules/doc_vlm/PP-DocBee-7B.yaml +14 -0
  9. paddlex/configs/modules/doc_vlm/PP-DocBee2-3B.yaml +14 -0
  10. paddlex/configs/modules/face_detection/BlazeFace-FPN-SSH.yaml +40 -0
  11. paddlex/configs/modules/face_detection/BlazeFace.yaml +40 -0
  12. paddlex/configs/modules/face_detection/PP-YOLOE_plus-S_face.yaml +40 -0
  13. paddlex/configs/modules/face_detection/PicoDet_LCNet_x2_5_face.yaml +40 -0
  14. paddlex/configs/modules/face_feature/MobileFaceNet.yaml +41 -0
  15. paddlex/configs/modules/face_feature/ResNet50_face.yaml +41 -0
  16. paddlex/configs/modules/formula_recognition/LaTeX_OCR_rec.yaml +40 -0
  17. paddlex/configs/modules/formula_recognition/PP-FormulaNet-L.yaml +40 -0
  18. paddlex/configs/modules/formula_recognition/PP-FormulaNet-S.yaml +40 -0
  19. paddlex/configs/modules/formula_recognition/PP-FormulaNet_plus-L.yaml +40 -0
  20. paddlex/configs/modules/formula_recognition/PP-FormulaNet_plus-M.yaml +40 -0
  21. paddlex/configs/modules/formula_recognition/PP-FormulaNet_plus-S.yaml +40 -0
  22. paddlex/configs/modules/formula_recognition/UniMERNet.yaml +40 -0
  23. paddlex/configs/modules/human_detection/PP-YOLOE-L_human.yaml +42 -0
  24. paddlex/configs/modules/human_detection/PP-YOLOE-S_human.yaml +42 -0
  25. paddlex/configs/modules/image_anomaly_detection/STFPM.yaml +41 -0
  26. paddlex/configs/modules/image_classification/CLIP_vit_base_patch16_224.yaml +41 -0
  27. paddlex/configs/modules/image_classification/CLIP_vit_large_patch14_224.yaml +41 -0
  28. paddlex/configs/modules/image_classification/ConvNeXt_base_224.yaml +41 -0
  29. paddlex/configs/modules/image_classification/ConvNeXt_base_384.yaml +41 -0
  30. paddlex/configs/modules/image_classification/ConvNeXt_large_224.yaml +41 -0
  31. paddlex/configs/modules/image_classification/ConvNeXt_large_384.yaml +41 -0
  32. paddlex/configs/modules/image_classification/ConvNeXt_small.yaml +41 -0
  33. paddlex/configs/modules/image_classification/ConvNeXt_tiny.yaml +41 -0
  34. paddlex/configs/modules/image_classification/FasterNet-L.yaml +40 -0
  35. paddlex/configs/modules/image_classification/FasterNet-M.yaml +40 -0
  36. paddlex/configs/modules/image_classification/FasterNet-S.yaml +40 -0
  37. paddlex/configs/modules/image_classification/FasterNet-T0.yaml +40 -0
  38. paddlex/configs/modules/image_classification/FasterNet-T1.yaml +40 -0
  39. paddlex/configs/modules/image_classification/FasterNet-T2.yaml +40 -0
  40. paddlex/configs/modules/image_classification/MobileNetV1_x0_25.yaml +41 -0
  41. paddlex/configs/modules/image_classification/MobileNetV1_x0_5.yaml +41 -0
  42. paddlex/configs/modules/image_classification/MobileNetV1_x0_75.yaml +41 -0
  43. paddlex/configs/modules/image_classification/MobileNetV1_x1_0.yaml +41 -0
  44. paddlex/configs/modules/image_classification/MobileNetV2_x0_25.yaml +41 -0
  45. paddlex/configs/modules/image_classification/MobileNetV2_x0_5.yaml +41 -0
  46. paddlex/configs/modules/image_classification/MobileNetV2_x1_0.yaml +41 -0
  47. paddlex/configs/modules/image_classification/MobileNetV2_x1_5.yaml +41 -0
  48. paddlex/configs/modules/image_classification/MobileNetV2_x2_0.yaml +41 -0
  49. paddlex/configs/modules/image_classification/MobileNetV3_large_x0_35.yaml +41 -0
  50. paddlex/configs/modules/image_classification/MobileNetV3_large_x0_5.yaml +41 -0
  51. paddlex/configs/modules/image_classification/MobileNetV3_large_x0_75.yaml +41 -0
  52. paddlex/configs/modules/image_classification/MobileNetV3_large_x1_0.yaml +41 -0
  53. paddlex/configs/modules/image_classification/MobileNetV3_large_x1_25.yaml +41 -0
  54. paddlex/configs/modules/image_classification/MobileNetV3_small_x0_35.yaml +41 -0
  55. paddlex/configs/modules/image_classification/MobileNetV3_small_x0_5.yaml +41 -0
  56. paddlex/configs/modules/image_classification/MobileNetV3_small_x0_75.yaml +41 -0
  57. paddlex/configs/modules/image_classification/MobileNetV3_small_x1_0.yaml +41 -0
  58. paddlex/configs/modules/image_classification/MobileNetV3_small_x1_25.yaml +41 -0
  59. paddlex/configs/modules/image_classification/MobileNetV4_conv_large.yaml +41 -0
  60. paddlex/configs/modules/image_classification/MobileNetV4_conv_medium.yaml +41 -0
  61. paddlex/configs/modules/image_classification/MobileNetV4_conv_small.yaml +41 -0
  62. paddlex/configs/modules/image_classification/MobileNetV4_hybrid_large.yaml +41 -0
  63. paddlex/configs/modules/image_classification/MobileNetV4_hybrid_medium.yaml +41 -0
  64. paddlex/configs/modules/image_classification/PP-HGNetV2-B0.yaml +41 -0
  65. paddlex/configs/modules/image_classification/PP-HGNetV2-B1.yaml +41 -0
  66. paddlex/configs/modules/image_classification/PP-HGNetV2-B2.yaml +41 -0
  67. paddlex/configs/modules/image_classification/PP-HGNetV2-B3.yaml +41 -0
  68. paddlex/configs/modules/image_classification/PP-HGNetV2-B4.yaml +41 -0
  69. paddlex/configs/modules/image_classification/PP-HGNetV2-B5.yaml +41 -0
  70. paddlex/configs/modules/image_classification/PP-HGNetV2-B6.yaml +41 -0
  71. paddlex/configs/modules/image_classification/PP-HGNet_base.yaml +41 -0
  72. paddlex/configs/modules/image_classification/PP-HGNet_small.yaml +41 -0
  73. paddlex/configs/modules/image_classification/PP-HGNet_tiny.yaml +41 -0
  74. paddlex/configs/modules/image_classification/PP-LCNetV2_base.yaml +41 -0
  75. paddlex/configs/modules/image_classification/PP-LCNetV2_large.yaml +41 -0
  76. paddlex/configs/modules/image_classification/PP-LCNetV2_small.yaml +41 -0
  77. paddlex/configs/modules/image_classification/PP-LCNet_x0_25.yaml +41 -0
  78. paddlex/configs/modules/image_classification/PP-LCNet_x0_35.yaml +41 -0
  79. paddlex/configs/modules/image_classification/PP-LCNet_x0_5.yaml +41 -0
  80. paddlex/configs/modules/image_classification/PP-LCNet_x0_75.yaml +41 -0
  81. paddlex/configs/modules/image_classification/PP-LCNet_x1_0.yaml +41 -0
  82. paddlex/configs/modules/image_classification/PP-LCNet_x1_5.yaml +41 -0
  83. paddlex/configs/modules/image_classification/PP-LCNet_x2_0.yaml +41 -0
  84. paddlex/configs/modules/image_classification/PP-LCNet_x2_5.yaml +41 -0
  85. paddlex/configs/modules/image_classification/ResNet101.yaml +41 -0
  86. paddlex/configs/modules/image_classification/ResNet101_vd.yaml +41 -0
  87. paddlex/configs/modules/image_classification/ResNet152.yaml +41 -0
  88. paddlex/configs/modules/image_classification/ResNet152_vd.yaml +41 -0
  89. paddlex/configs/modules/image_classification/ResNet18.yaml +41 -0
  90. paddlex/configs/modules/image_classification/ResNet18_vd.yaml +41 -0
  91. paddlex/configs/modules/image_classification/ResNet200_vd.yaml +41 -0
  92. paddlex/configs/modules/image_classification/ResNet34.yaml +41 -0
  93. paddlex/configs/modules/image_classification/ResNet34_vd.yaml +41 -0
  94. paddlex/configs/modules/image_classification/ResNet50.yaml +41 -0
  95. paddlex/configs/modules/image_classification/ResNet50_vd.yaml +41 -0
  96. paddlex/configs/modules/image_classification/StarNet-S1.yaml +41 -0
  97. paddlex/configs/modules/image_classification/StarNet-S2.yaml +41 -0
  98. paddlex/configs/modules/image_classification/StarNet-S3.yaml +41 -0
  99. paddlex/configs/modules/image_classification/StarNet-S4.yaml +41 -0
  100. paddlex/configs/modules/image_classification/SwinTransformer_base_patch4_window12_384.yaml +41 -0
  101. paddlex/configs/modules/image_classification/SwinTransformer_base_patch4_window7_224.yaml +41 -0
  102. paddlex/configs/modules/image_classification/SwinTransformer_large_patch4_window12_384.yaml +41 -0
  103. paddlex/configs/modules/image_classification/SwinTransformer_large_patch4_window7_224.yaml +41 -0
  104. paddlex/configs/modules/image_classification/SwinTransformer_small_patch4_window7_224.yaml +41 -0
  105. paddlex/configs/modules/image_classification/SwinTransformer_tiny_patch4_window7_224.yaml +41 -0
  106. paddlex/configs/modules/image_feature/PP-ShiTuV2_rec.yaml +42 -0
  107. paddlex/configs/modules/image_feature/PP-ShiTuV2_rec_CLIP_vit_base.yaml +42 -0
  108. paddlex/configs/modules/image_feature/PP-ShiTuV2_rec_CLIP_vit_large.yaml +41 -0
  109. paddlex/configs/modules/image_multilabel_classification/CLIP_vit_base_patch16_448_ML.yaml +41 -0
  110. paddlex/configs/modules/image_multilabel_classification/PP-HGNetV2-B0_ML.yaml +41 -0
  111. paddlex/configs/modules/image_multilabel_classification/PP-HGNetV2-B4_ML.yaml +41 -0
  112. paddlex/configs/modules/image_multilabel_classification/PP-HGNetV2-B6_ML.yaml +41 -0
  113. paddlex/configs/modules/image_multilabel_classification/PP-LCNet_x1_0_ML.yaml +41 -0
  114. paddlex/configs/modules/image_multilabel_classification/ResNet50_ML.yaml +41 -0
  115. paddlex/configs/modules/image_unwarping/UVDoc.yaml +12 -0
  116. paddlex/configs/modules/instance_segmentation/Cascade-MaskRCNN-ResNet50-FPN.yaml +40 -0
  117. paddlex/configs/modules/instance_segmentation/Cascade-MaskRCNN-ResNet50-vd-SSLDv2-FPN.yaml +40 -0
  118. paddlex/configs/modules/instance_segmentation/Mask-RT-DETR-H.yaml +40 -0
  119. paddlex/configs/modules/instance_segmentation/Mask-RT-DETR-L.yaml +40 -0
  120. paddlex/configs/modules/instance_segmentation/Mask-RT-DETR-M.yaml +40 -0
  121. paddlex/configs/modules/instance_segmentation/Mask-RT-DETR-S.yaml +40 -0
  122. paddlex/configs/modules/instance_segmentation/Mask-RT-DETR-X.yaml +40 -0
  123. paddlex/configs/modules/instance_segmentation/MaskRCNN-ResNeXt101-vd-FPN.yaml +39 -0
  124. paddlex/configs/modules/instance_segmentation/MaskRCNN-ResNet101-FPN.yaml +40 -0
  125. paddlex/configs/modules/instance_segmentation/MaskRCNN-ResNet101-vd-FPN.yaml +40 -0
  126. paddlex/configs/modules/instance_segmentation/MaskRCNN-ResNet50-FPN.yaml +40 -0
  127. paddlex/configs/modules/instance_segmentation/MaskRCNN-ResNet50-vd-FPN.yaml +40 -0
  128. paddlex/configs/modules/instance_segmentation/MaskRCNN-ResNet50.yaml +40 -0
  129. paddlex/configs/modules/instance_segmentation/PP-YOLOE_seg-S.yaml +40 -0
  130. paddlex/configs/modules/instance_segmentation/SOLOv2.yaml +40 -0
  131. paddlex/configs/modules/keypoint_detection/PP-TinyPose_128x96.yaml +40 -0
  132. paddlex/configs/modules/keypoint_detection/PP-TinyPose_256x192.yaml +40 -0
  133. paddlex/configs/modules/layout_detection/PP-DocBlockLayout.yaml +40 -0
  134. paddlex/configs/modules/layout_detection/PP-DocLayout-L.yaml +40 -0
  135. paddlex/configs/modules/layout_detection/PP-DocLayout-M.yaml +40 -0
  136. paddlex/configs/modules/layout_detection/PP-DocLayout-S.yaml +40 -0
  137. paddlex/configs/modules/layout_detection/PP-DocLayout_plus-L.yaml +40 -0
  138. paddlex/configs/modules/layout_detection/PicoDet-L_layout_17cls.yaml +40 -0
  139. paddlex/configs/modules/layout_detection/PicoDet-L_layout_3cls.yaml +40 -0
  140. paddlex/configs/modules/layout_detection/PicoDet-S_layout_17cls.yaml +40 -0
  141. paddlex/configs/modules/layout_detection/PicoDet-S_layout_3cls.yaml +40 -0
  142. paddlex/configs/modules/layout_detection/PicoDet_layout_1x.yaml +40 -0
  143. paddlex/configs/modules/layout_detection/PicoDet_layout_1x_table.yaml +40 -0
  144. paddlex/configs/modules/layout_detection/RT-DETR-H_layout_17cls.yaml +40 -0
  145. paddlex/configs/modules/layout_detection/RT-DETR-H_layout_3cls.yaml +40 -0
  146. paddlex/configs/modules/mainbody_detection/PP-ShiTuV2_det.yaml +41 -0
  147. paddlex/configs/modules/multilingual_speech_recognition/whisper_base.yaml +12 -0
  148. paddlex/configs/modules/multilingual_speech_recognition/whisper_large.yaml +12 -0
  149. paddlex/configs/modules/multilingual_speech_recognition/whisper_medium.yaml +12 -0
  150. paddlex/configs/modules/multilingual_speech_recognition/whisper_small.yaml +12 -0
  151. paddlex/configs/modules/multilingual_speech_recognition/whisper_tiny.yaml +12 -0
  152. paddlex/configs/modules/object_detection/Cascade-FasterRCNN-ResNet50-FPN.yaml +41 -0
  153. paddlex/configs/modules/object_detection/Cascade-FasterRCNN-ResNet50-vd-SSLDv2-FPN.yaml +42 -0
  154. paddlex/configs/modules/object_detection/CenterNet-DLA-34.yaml +41 -0
  155. paddlex/configs/modules/object_detection/CenterNet-ResNet50.yaml +41 -0
  156. paddlex/configs/modules/object_detection/Co-DINO-R50.yaml +40 -0
  157. paddlex/configs/modules/object_detection/Co-DINO-Swin-L.yaml +40 -0
  158. paddlex/configs/modules/object_detection/Co-Deformable-DETR-R50.yaml +40 -0
  159. paddlex/configs/modules/object_detection/Co-Deformable-DETR-Swin-T.yaml +40 -0
  160. paddlex/configs/modules/object_detection/DETR-R50.yaml +42 -0
  161. paddlex/configs/modules/object_detection/FCOS-ResNet50.yaml +41 -0
  162. paddlex/configs/modules/object_detection/FasterRCNN-ResNeXt101-vd-FPN.yaml +42 -0
  163. paddlex/configs/modules/object_detection/FasterRCNN-ResNet101-FPN.yaml +42 -0
  164. paddlex/configs/modules/object_detection/FasterRCNN-ResNet101.yaml +42 -0
  165. paddlex/configs/modules/object_detection/FasterRCNN-ResNet34-FPN.yaml +42 -0
  166. paddlex/configs/modules/object_detection/FasterRCNN-ResNet50-FPN.yaml +42 -0
  167. paddlex/configs/modules/object_detection/FasterRCNN-ResNet50-vd-FPN.yaml +42 -0
  168. paddlex/configs/modules/object_detection/FasterRCNN-ResNet50-vd-SSLDv2-FPN.yaml +42 -0
  169. paddlex/configs/modules/object_detection/FasterRCNN-ResNet50.yaml +42 -0
  170. paddlex/configs/modules/object_detection/FasterRCNN-Swin-Tiny-FPN.yaml +42 -0
  171. paddlex/configs/modules/object_detection/PP-YOLOE_plus-L.yaml +40 -0
  172. paddlex/configs/modules/object_detection/PP-YOLOE_plus-M.yaml +40 -0
  173. paddlex/configs/modules/object_detection/PP-YOLOE_plus-S.yaml +40 -0
  174. paddlex/configs/modules/object_detection/PP-YOLOE_plus-X.yaml +40 -0
  175. paddlex/configs/modules/object_detection/PicoDet-L.yaml +40 -0
  176. paddlex/configs/modules/object_detection/PicoDet-M.yaml +42 -0
  177. paddlex/configs/modules/object_detection/PicoDet-S.yaml +40 -0
  178. paddlex/configs/modules/object_detection/PicoDet-XS.yaml +42 -0
  179. paddlex/configs/modules/object_detection/RT-DETR-H.yaml +40 -0
  180. paddlex/configs/modules/object_detection/RT-DETR-L.yaml +40 -0
  181. paddlex/configs/modules/object_detection/RT-DETR-R18.yaml +40 -0
  182. paddlex/configs/modules/object_detection/RT-DETR-R50.yaml +40 -0
  183. paddlex/configs/modules/object_detection/RT-DETR-X.yaml +40 -0
  184. paddlex/configs/modules/object_detection/YOLOX-L.yaml +40 -0
  185. paddlex/configs/modules/object_detection/YOLOX-M.yaml +40 -0
  186. paddlex/configs/modules/object_detection/YOLOX-N.yaml +40 -0
  187. paddlex/configs/modules/object_detection/YOLOX-S.yaml +40 -0
  188. paddlex/configs/modules/object_detection/YOLOX-T.yaml +40 -0
  189. paddlex/configs/modules/object_detection/YOLOX-X.yaml +40 -0
  190. paddlex/configs/modules/object_detection/YOLOv3-DarkNet53.yaml +40 -0
  191. paddlex/configs/modules/object_detection/YOLOv3-MobileNetV3.yaml +40 -0
  192. paddlex/configs/modules/object_detection/YOLOv3-ResNet50_vd_DCN.yaml +40 -0
  193. paddlex/configs/modules/open_vocabulary_detection/GroundingDINO-T.yaml +13 -0
  194. paddlex/configs/modules/open_vocabulary_detection/YOLO-Worldv2-L.yaml +13 -0
  195. paddlex/configs/modules/open_vocabulary_segmentation/SAM-H_box.yaml +17 -0
  196. paddlex/configs/modules/open_vocabulary_segmentation/SAM-H_point.yaml +15 -0
  197. paddlex/configs/modules/pedestrian_attribute_recognition/PP-LCNet_x1_0_pedestrian_attribute.yaml +41 -0
  198. paddlex/configs/modules/rotated_object_detection/PP-YOLOE-R-L.yaml +40 -0
  199. paddlex/configs/modules/seal_text_detection/PP-OCRv4_mobile_seal_det.yaml +40 -0
  200. paddlex/configs/modules/seal_text_detection/PP-OCRv4_server_seal_det.yaml +40 -0
  201. paddlex/configs/modules/semantic_segmentation/Deeplabv3-R101.yaml +40 -0
  202. paddlex/configs/modules/semantic_segmentation/Deeplabv3-R50.yaml +40 -0
  203. paddlex/configs/modules/semantic_segmentation/Deeplabv3_Plus-R101.yaml +40 -0
  204. paddlex/configs/modules/semantic_segmentation/Deeplabv3_Plus-R50.yaml +40 -0
  205. paddlex/configs/modules/semantic_segmentation/MaskFormer_small.yaml +42 -0
  206. paddlex/configs/modules/semantic_segmentation/MaskFormer_tiny.yaml +42 -0
  207. paddlex/configs/modules/semantic_segmentation/OCRNet_HRNet-W18.yaml +40 -0
  208. paddlex/configs/modules/semantic_segmentation/OCRNet_HRNet-W48.yaml +40 -0
  209. paddlex/configs/modules/semantic_segmentation/PP-LiteSeg-B.yaml +41 -0
  210. paddlex/configs/modules/semantic_segmentation/PP-LiteSeg-T.yaml +40 -0
  211. paddlex/configs/modules/semantic_segmentation/SeaFormer_base.yaml +40 -0
  212. paddlex/configs/modules/semantic_segmentation/SeaFormer_large.yaml +40 -0
  213. paddlex/configs/modules/semantic_segmentation/SeaFormer_small.yaml +40 -0
  214. paddlex/configs/modules/semantic_segmentation/SeaFormer_tiny.yaml +40 -0
  215. paddlex/configs/modules/semantic_segmentation/SegFormer-B0.yaml +40 -0
  216. paddlex/configs/modules/semantic_segmentation/SegFormer-B1.yaml +40 -0
  217. paddlex/configs/modules/semantic_segmentation/SegFormer-B2.yaml +40 -0
  218. paddlex/configs/modules/semantic_segmentation/SegFormer-B3.yaml +40 -0
  219. paddlex/configs/modules/semantic_segmentation/SegFormer-B4.yaml +40 -0
  220. paddlex/configs/modules/semantic_segmentation/SegFormer-B5.yaml +40 -0
  221. paddlex/configs/modules/small_object_detection/PP-YOLOE_plus_SOD-L.yaml +42 -0
  222. paddlex/configs/modules/small_object_detection/PP-YOLOE_plus_SOD-S.yaml +42 -0
  223. paddlex/configs/modules/small_object_detection/PP-YOLOE_plus_SOD-largesize-L.yaml +42 -0
  224. paddlex/configs/modules/table_cells_detection/RT-DETR-L_wired_table_cell_det.yaml +40 -0
  225. paddlex/configs/modules/table_cells_detection/RT-DETR-L_wireless_table_cell_det.yaml +40 -0
  226. paddlex/configs/modules/table_classification/PP-LCNet_x1_0_table_cls.yaml +41 -0
  227. paddlex/configs/modules/table_structure_recognition/SLANeXt_wired.yaml +39 -0
  228. paddlex/configs/modules/table_structure_recognition/SLANeXt_wireless.yaml +39 -0
  229. paddlex/configs/modules/table_structure_recognition/SLANet.yaml +39 -0
  230. paddlex/configs/modules/table_structure_recognition/SLANet_plus.yaml +39 -0
  231. paddlex/configs/modules/text_detection/PP-OCRv3_mobile_det.yaml +40 -0
  232. paddlex/configs/modules/text_detection/PP-OCRv3_server_det.yaml +40 -0
  233. paddlex/configs/modules/text_detection/PP-OCRv4_mobile_det.yaml +40 -0
  234. paddlex/configs/modules/text_detection/PP-OCRv4_server_det.yaml +40 -0
  235. paddlex/configs/modules/text_detection/PP-OCRv5_mobile_det.yaml +40 -0
  236. paddlex/configs/modules/text_detection/PP-OCRv5_server_det.yaml +40 -0
  237. paddlex/configs/modules/text_recognition/PP-OCRv3_mobile_rec.yaml +39 -0
  238. paddlex/configs/modules/text_recognition/PP-OCRv4_mobile_rec.yaml +39 -0
  239. paddlex/configs/modules/text_recognition/PP-OCRv4_server_rec.yaml +39 -0
  240. paddlex/configs/modules/text_recognition/PP-OCRv4_server_rec_doc.yaml +39 -0
  241. paddlex/configs/modules/text_recognition/PP-OCRv5_mobile_rec.yaml +39 -0
  242. paddlex/configs/modules/text_recognition/PP-OCRv5_server_rec.yaml +39 -0
  243. paddlex/configs/modules/text_recognition/arabic_PP-OCRv3_mobile_rec.yaml +39 -0
  244. paddlex/configs/modules/text_recognition/ch_RepSVTR_rec.yaml +39 -0
  245. paddlex/configs/modules/text_recognition/ch_SVTRv2_rec.yaml +39 -0
  246. paddlex/configs/modules/text_recognition/chinese_cht_PP-OCRv3_mobile_rec.yaml +39 -0
  247. paddlex/configs/modules/text_recognition/cyrillic_PP-OCRv3_mobile_rec.yaml +39 -0
  248. paddlex/configs/modules/text_recognition/devanagari_PP-OCRv3_mobile_rec.yaml +39 -0
  249. paddlex/configs/modules/text_recognition/en_PP-OCRv3_mobile_rec.yaml +39 -0
  250. paddlex/configs/modules/text_recognition/en_PP-OCRv4_mobile_rec.yaml +39 -0
  251. paddlex/configs/modules/text_recognition/japan_PP-OCRv3_mobile_rec.yaml +39 -0
  252. paddlex/configs/modules/text_recognition/ka_PP-OCRv3_mobile_rec.yaml +39 -0
  253. paddlex/configs/modules/text_recognition/korean_PP-OCRv3_mobile_rec.yaml +39 -0
  254. paddlex/configs/modules/text_recognition/latin_PP-OCRv3_mobile_rec.yaml +39 -0
  255. paddlex/configs/modules/text_recognition/ta_PP-OCRv3_mobile_rec.yaml +39 -0
  256. paddlex/configs/modules/text_recognition/te_PP-OCRv3_mobile_rec.yaml +39 -0
  257. paddlex/configs/modules/textline_orientation/PP-LCNet_x0_25_textline_ori.yaml +41 -0
  258. paddlex/configs/modules/ts_anomaly_detection/AutoEncoder_ad.yaml +37 -0
  259. paddlex/configs/modules/ts_anomaly_detection/DLinear_ad.yaml +37 -0
  260. paddlex/configs/modules/ts_anomaly_detection/Nonstationary_ad.yaml +37 -0
  261. paddlex/configs/modules/ts_anomaly_detection/PatchTST_ad.yaml +37 -0
  262. paddlex/configs/modules/ts_anomaly_detection/TimesNet_ad.yaml +37 -0
  263. paddlex/configs/modules/ts_classification/TimesNet_cls.yaml +37 -0
  264. paddlex/configs/modules/ts_forecast/DLinear.yaml +38 -0
  265. paddlex/configs/modules/ts_forecast/NLinear.yaml +38 -0
  266. paddlex/configs/modules/ts_forecast/Nonstationary.yaml +38 -0
  267. paddlex/configs/modules/ts_forecast/PatchTST.yaml +38 -0
  268. paddlex/configs/modules/ts_forecast/RLinear.yaml +38 -0
  269. paddlex/configs/modules/ts_forecast/TiDE.yaml +38 -0
  270. paddlex/configs/modules/ts_forecast/TimesNet.yaml +38 -0
  271. paddlex/configs/modules/vehicle_attribute_recognition/PP-LCNet_x1_0_vehicle_attribute.yaml +41 -0
  272. paddlex/configs/modules/vehicle_detection/PP-YOLOE-L_vehicle.yaml +41 -0
  273. paddlex/configs/modules/vehicle_detection/PP-YOLOE-S_vehicle.yaml +42 -0
  274. paddlex/configs/modules/video_classification/PP-TSM-R50_8frames_uniform.yaml +42 -0
  275. paddlex/configs/modules/video_classification/PP-TSMv2-LCNetV2_16frames_uniform.yaml +42 -0
  276. paddlex/configs/modules/video_classification/PP-TSMv2-LCNetV2_8frames_uniform.yaml +42 -0
  277. paddlex/configs/modules/video_detection/YOWO.yaml +40 -0
  278. paddlex/configs/pipelines/3d_bev_detection.yaml +9 -0
  279. paddlex/configs/pipelines/OCR.yaml +45 -0
  280. paddlex/configs/pipelines/PP-ChatOCRv3-doc.yaml +151 -0
  281. paddlex/configs/pipelines/PP-ChatOCRv4-doc.yaml +237 -0
  282. paddlex/configs/pipelines/PP-ShiTuV2.yaml +18 -0
  283. paddlex/configs/pipelines/PP-StructureV3.yaml +226 -0
  284. paddlex/configs/pipelines/anomaly_detection.yaml +8 -0
  285. paddlex/configs/pipelines/doc_preprocessor.yaml +15 -0
  286. paddlex/configs/pipelines/doc_understanding.yaml +9 -0
  287. paddlex/configs/pipelines/face_recognition.yaml +18 -0
  288. paddlex/configs/pipelines/formula_recognition.yaml +39 -0
  289. paddlex/configs/pipelines/human_keypoint_detection.yaml +17 -0
  290. paddlex/configs/pipelines/image_classification.yaml +10 -0
  291. paddlex/configs/pipelines/image_multilabel_classification.yaml +9 -0
  292. paddlex/configs/pipelines/instance_segmentation.yaml +10 -0
  293. paddlex/configs/pipelines/layout_parsing.yaml +102 -0
  294. paddlex/configs/pipelines/multilingual_speech_recognition.yaml +9 -0
  295. paddlex/configs/pipelines/object_detection.yaml +10 -0
  296. paddlex/configs/pipelines/open_vocabulary_detection.yaml +12 -0
  297. paddlex/configs/pipelines/open_vocabulary_segmentation.yaml +13 -0
  298. paddlex/configs/pipelines/pedestrian_attribute_recognition.yaml +15 -0
  299. paddlex/configs/pipelines/rotated_object_detection.yaml +10 -0
  300. paddlex/configs/pipelines/seal_recognition.yaml +52 -0
  301. paddlex/configs/pipelines/semantic_segmentation.yaml +10 -0
  302. paddlex/configs/pipelines/small_object_detection.yaml +10 -0
  303. paddlex/configs/pipelines/table_recognition.yaml +57 -0
  304. paddlex/configs/pipelines/table_recognition_v2.yaml +82 -0
  305. paddlex/configs/pipelines/ts_anomaly_detection.yaml +8 -0
  306. paddlex/configs/pipelines/ts_classification.yaml +8 -0
  307. paddlex/configs/pipelines/ts_forecast.yaml +8 -0
  308. paddlex/configs/pipelines/vehicle_attribute_recognition.yaml +15 -0
  309. paddlex/configs/pipelines/video_classification.yaml +9 -0
  310. paddlex/configs/pipelines/video_detection.yaml +10 -0
  311. paddlex/constants.py +17 -0
  312. paddlex/engine.py +56 -0
  313. paddlex/hpip_links.html +31 -0
  314. paddlex/inference/__init__.py +19 -0
  315. paddlex/inference/common/__init__.py +13 -0
  316. paddlex/inference/common/batch_sampler/__init__.py +21 -0
  317. paddlex/inference/common/batch_sampler/audio_batch_sampler.py +83 -0
  318. paddlex/inference/common/batch_sampler/base_batch_sampler.py +94 -0
  319. paddlex/inference/common/batch_sampler/det_3d_batch_sampler.py +144 -0
  320. paddlex/inference/common/batch_sampler/doc_vlm_batch_sampler.py +87 -0
  321. paddlex/inference/common/batch_sampler/image_batch_sampler.py +121 -0
  322. paddlex/inference/common/batch_sampler/ts_batch_sampler.py +109 -0
  323. paddlex/inference/common/batch_sampler/video_batch_sampler.py +74 -0
  324. paddlex/inference/common/reader/__init__.py +19 -0
  325. paddlex/inference/common/reader/audio_reader.py +46 -0
  326. paddlex/inference/common/reader/det_3d_reader.py +241 -0
  327. paddlex/inference/common/reader/image_reader.py +73 -0
  328. paddlex/inference/common/reader/ts_reader.py +46 -0
  329. paddlex/inference/common/reader/video_reader.py +42 -0
  330. paddlex/inference/common/result/__init__.py +29 -0
  331. paddlex/inference/common/result/base_cv_result.py +41 -0
  332. paddlex/inference/common/result/base_result.py +72 -0
  333. paddlex/inference/common/result/base_ts_result.py +41 -0
  334. paddlex/inference/common/result/base_video_result.py +36 -0
  335. paddlex/inference/common/result/mixin.py +709 -0
  336. paddlex/inference/models/__init__.py +86 -0
  337. paddlex/inference/models/anomaly_detection/__init__.py +15 -0
  338. paddlex/inference/models/anomaly_detection/predictor.py +135 -0
  339. paddlex/inference/models/anomaly_detection/processors.py +53 -0
  340. paddlex/inference/models/anomaly_detection/result.py +71 -0
  341. paddlex/inference/models/base/__init__.py +15 -0
  342. paddlex/inference/models/base/predictor/__init__.py +15 -0
  343. paddlex/inference/models/base/predictor/base_predictor.py +414 -0
  344. paddlex/inference/models/common/__init__.py +26 -0
  345. paddlex/inference/models/common/static_infer.py +801 -0
  346. paddlex/inference/models/common/tokenizer/__init__.py +21 -0
  347. paddlex/inference/models/common/tokenizer/bert_tokenizer.py +655 -0
  348. paddlex/inference/models/common/tokenizer/clip_tokenizer.py +609 -0
  349. paddlex/inference/models/common/tokenizer/gpt_tokenizer.py +453 -0
  350. paddlex/inference/models/common/tokenizer/qwen2_5_tokenizer.py +112 -0
  351. paddlex/inference/models/common/tokenizer/qwen2_tokenizer.py +438 -0
  352. paddlex/inference/models/common/tokenizer/qwen_tokenizer.py +288 -0
  353. paddlex/inference/models/common/tokenizer/tokenizer_utils.py +2149 -0
  354. paddlex/inference/models/common/tokenizer/tokenizer_utils_base.py +3720 -0
  355. paddlex/inference/models/common/tokenizer/utils.py +66 -0
  356. paddlex/inference/models/common/tokenizer/vocab.py +647 -0
  357. paddlex/inference/models/common/ts/__init__.py +15 -0
  358. paddlex/inference/models/common/ts/funcs.py +540 -0
  359. paddlex/inference/models/common/ts/processors.py +322 -0
  360. paddlex/inference/models/common/vision/__init__.py +23 -0
  361. paddlex/inference/models/common/vision/funcs.py +98 -0
  362. paddlex/inference/models/common/vision/processors.py +285 -0
  363. paddlex/inference/models/common/vlm/__init__.py +13 -0
  364. paddlex/inference/models/common/vlm/activations.py +189 -0
  365. paddlex/inference/models/common/vlm/bert_padding.py +127 -0
  366. paddlex/inference/models/common/vlm/conversion_utils.py +99 -0
  367. paddlex/inference/models/common/vlm/distributed.py +229 -0
  368. paddlex/inference/models/common/vlm/flash_attn_utils.py +119 -0
  369. paddlex/inference/models/common/vlm/fusion_ops.py +205 -0
  370. paddlex/inference/models/common/vlm/generation/__init__.py +34 -0
  371. paddlex/inference/models/common/vlm/generation/configuration_utils.py +533 -0
  372. paddlex/inference/models/common/vlm/generation/logits_process.py +730 -0
  373. paddlex/inference/models/common/vlm/generation/stopping_criteria.py +106 -0
  374. paddlex/inference/models/common/vlm/generation/utils.py +2162 -0
  375. paddlex/inference/models/common/vlm/transformers/__init__.py +16 -0
  376. paddlex/inference/models/common/vlm/transformers/configuration_utils.py +1037 -0
  377. paddlex/inference/models/common/vlm/transformers/conversion_utils.py +408 -0
  378. paddlex/inference/models/common/vlm/transformers/model_outputs.py +1612 -0
  379. paddlex/inference/models/common/vlm/transformers/model_utils.py +2014 -0
  380. paddlex/inference/models/common/vlm/transformers/utils.py +178 -0
  381. paddlex/inference/models/common/vlm/utils.py +109 -0
  382. paddlex/inference/models/doc_vlm/__init__.py +15 -0
  383. paddlex/inference/models/doc_vlm/modeling/GOT_ocr_2_0.py +830 -0
  384. paddlex/inference/models/doc_vlm/modeling/__init__.py +17 -0
  385. paddlex/inference/models/doc_vlm/modeling/qwen2.py +1606 -0
  386. paddlex/inference/models/doc_vlm/modeling/qwen2_5_vl.py +3006 -0
  387. paddlex/inference/models/doc_vlm/modeling/qwen2_vl.py +2495 -0
  388. paddlex/inference/models/doc_vlm/predictor.py +253 -0
  389. paddlex/inference/models/doc_vlm/processors/GOT_ocr_2_0.py +97 -0
  390. paddlex/inference/models/doc_vlm/processors/__init__.py +17 -0
  391. paddlex/inference/models/doc_vlm/processors/common.py +561 -0
  392. paddlex/inference/models/doc_vlm/processors/qwen2_5_vl.py +548 -0
  393. paddlex/inference/models/doc_vlm/processors/qwen2_vl.py +543 -0
  394. paddlex/inference/models/doc_vlm/result.py +21 -0
  395. paddlex/inference/models/face_feature/__init__.py +15 -0
  396. paddlex/inference/models/face_feature/predictor.py +66 -0
  397. paddlex/inference/models/formula_recognition/__init__.py +15 -0
  398. paddlex/inference/models/formula_recognition/predictor.py +193 -0
  399. paddlex/inference/models/formula_recognition/processors.py +1015 -0
  400. paddlex/inference/models/formula_recognition/result.py +411 -0
  401. paddlex/inference/models/image_classification/__init__.py +15 -0
  402. paddlex/inference/models/image_classification/predictor.py +172 -0
  403. paddlex/inference/models/image_classification/processors.py +89 -0
  404. paddlex/inference/models/image_classification/result.py +93 -0
  405. paddlex/inference/models/image_feature/__init__.py +15 -0
  406. paddlex/inference/models/image_feature/predictor.py +146 -0
  407. paddlex/inference/models/image_feature/processors.py +31 -0
  408. paddlex/inference/models/image_feature/result.py +32 -0
  409. paddlex/inference/models/image_multilabel_classification/__init__.py +15 -0
  410. paddlex/inference/models/image_multilabel_classification/predictor.py +95 -0
  411. paddlex/inference/models/image_multilabel_classification/processors.py +89 -0
  412. paddlex/inference/models/image_multilabel_classification/result.py +96 -0
  413. paddlex/inference/models/image_unwarping/__init__.py +15 -0
  414. paddlex/inference/models/image_unwarping/predictor.py +97 -0
  415. paddlex/inference/models/image_unwarping/processors.py +92 -0
  416. paddlex/inference/models/image_unwarping/result.py +47 -0
  417. paddlex/inference/models/instance_segmentation/__init__.py +15 -0
  418. paddlex/inference/models/instance_segmentation/predictor.py +202 -0
  419. paddlex/inference/models/instance_segmentation/processors.py +102 -0
  420. paddlex/inference/models/instance_segmentation/result.py +162 -0
  421. paddlex/inference/models/keypoint_detection/__init__.py +15 -0
  422. paddlex/inference/models/keypoint_detection/predictor.py +190 -0
  423. paddlex/inference/models/keypoint_detection/processors.py +367 -0
  424. paddlex/inference/models/keypoint_detection/result.py +197 -0
  425. paddlex/inference/models/m_3d_bev_detection/__init__.py +15 -0
  426. paddlex/inference/models/m_3d_bev_detection/predictor.py +303 -0
  427. paddlex/inference/models/m_3d_bev_detection/processors.py +990 -0
  428. paddlex/inference/models/m_3d_bev_detection/result.py +68 -0
  429. paddlex/inference/models/m_3d_bev_detection/visualizer_3d.py +169 -0
  430. paddlex/inference/models/multilingual_speech_recognition/__init__.py +15 -0
  431. paddlex/inference/models/multilingual_speech_recognition/predictor.py +137 -0
  432. paddlex/inference/models/multilingual_speech_recognition/processors.py +1933 -0
  433. paddlex/inference/models/multilingual_speech_recognition/result.py +21 -0
  434. paddlex/inference/models/object_detection/__init__.py +15 -0
  435. paddlex/inference/models/object_detection/predictor.py +344 -0
  436. paddlex/inference/models/object_detection/processors.py +885 -0
  437. paddlex/inference/models/object_detection/result.py +114 -0
  438. paddlex/inference/models/object_detection/utils.py +70 -0
  439. paddlex/inference/models/open_vocabulary_detection/__init__.py +15 -0
  440. paddlex/inference/models/open_vocabulary_detection/predictor.py +172 -0
  441. paddlex/inference/models/open_vocabulary_detection/processors/__init__.py +16 -0
  442. paddlex/inference/models/open_vocabulary_detection/processors/common.py +114 -0
  443. paddlex/inference/models/open_vocabulary_detection/processors/groundingdino_processors.py +496 -0
  444. paddlex/inference/models/open_vocabulary_detection/processors/yoloworld_processors.py +209 -0
  445. paddlex/inference/models/open_vocabulary_segmentation/__init__.py +15 -0
  446. paddlex/inference/models/open_vocabulary_segmentation/predictor.py +113 -0
  447. paddlex/inference/models/open_vocabulary_segmentation/processors/__init__.py +15 -0
  448. paddlex/inference/models/open_vocabulary_segmentation/processors/sam_processer.py +249 -0
  449. paddlex/inference/models/open_vocabulary_segmentation/results/__init__.py +15 -0
  450. paddlex/inference/models/open_vocabulary_segmentation/results/sam_result.py +149 -0
  451. paddlex/inference/models/semantic_segmentation/__init__.py +15 -0
  452. paddlex/inference/models/semantic_segmentation/predictor.py +158 -0
  453. paddlex/inference/models/semantic_segmentation/processors.py +117 -0
  454. paddlex/inference/models/semantic_segmentation/result.py +73 -0
  455. paddlex/inference/models/table_structure_recognition/__init__.py +15 -0
  456. paddlex/inference/models/table_structure_recognition/predictor.py +161 -0
  457. paddlex/inference/models/table_structure_recognition/processors.py +229 -0
  458. paddlex/inference/models/table_structure_recognition/result.py +63 -0
  459. paddlex/inference/models/text_detection/__init__.py +15 -0
  460. paddlex/inference/models/text_detection/predictor.py +191 -0
  461. paddlex/inference/models/text_detection/processors.py +538 -0
  462. paddlex/inference/models/text_detection/result.py +46 -0
  463. paddlex/inference/models/text_recognition/__init__.py +15 -0
  464. paddlex/inference/models/text_recognition/predictor.py +98 -0
  465. paddlex/inference/models/text_recognition/processors.py +245 -0
  466. paddlex/inference/models/text_recognition/result.py +76 -0
  467. paddlex/inference/models/ts_anomaly_detection/__init__.py +15 -0
  468. paddlex/inference/models/ts_anomaly_detection/predictor.py +141 -0
  469. paddlex/inference/models/ts_anomaly_detection/processors.py +98 -0
  470. paddlex/inference/models/ts_anomaly_detection/result.py +83 -0
  471. paddlex/inference/models/ts_classification/__init__.py +15 -0
  472. paddlex/inference/models/ts_classification/predictor.py +122 -0
  473. paddlex/inference/models/ts_classification/processors.py +122 -0
  474. paddlex/inference/models/ts_classification/result.py +87 -0
  475. paddlex/inference/models/ts_forecasting/__init__.py +15 -0
  476. paddlex/inference/models/ts_forecasting/predictor.py +154 -0
  477. paddlex/inference/models/ts_forecasting/processors.py +158 -0
  478. paddlex/inference/models/ts_forecasting/result.py +96 -0
  479. paddlex/inference/models/video_classification/__init__.py +15 -0
  480. paddlex/inference/models/video_classification/predictor.py +141 -0
  481. paddlex/inference/models/video_classification/processors.py +409 -0
  482. paddlex/inference/models/video_classification/result.py +96 -0
  483. paddlex/inference/models/video_detection/__init__.py +15 -0
  484. paddlex/inference/models/video_detection/predictor.py +129 -0
  485. paddlex/inference/models/video_detection/processors.py +463 -0
  486. paddlex/inference/models/video_detection/result.py +109 -0
  487. paddlex/inference/pipelines/__init__.py +239 -0
  488. paddlex/inference/pipelines/_parallel.py +172 -0
  489. paddlex/inference/pipelines/anomaly_detection/__init__.py +15 -0
  490. paddlex/inference/pipelines/anomaly_detection/pipeline.py +82 -0
  491. paddlex/inference/pipelines/attribute_recognition/__init__.py +15 -0
  492. paddlex/inference/pipelines/attribute_recognition/pipeline.py +120 -0
  493. paddlex/inference/pipelines/attribute_recognition/result.py +102 -0
  494. paddlex/inference/pipelines/base.py +156 -0
  495. paddlex/inference/pipelines/components/__init__.py +29 -0
  496. paddlex/inference/pipelines/components/chat_server/__init__.py +16 -0
  497. paddlex/inference/pipelines/components/chat_server/base.py +39 -0
  498. paddlex/inference/pipelines/components/chat_server/openai_bot_chat.py +236 -0
  499. paddlex/inference/pipelines/components/common/__init__.py +19 -0
  500. paddlex/inference/pipelines/components/common/base_operator.py +37 -0
  501. paddlex/inference/pipelines/components/common/base_result.py +66 -0
  502. paddlex/inference/pipelines/components/common/convert_points_and_boxes.py +45 -0
  503. paddlex/inference/pipelines/components/common/crop_image_regions.py +556 -0
  504. paddlex/inference/pipelines/components/common/seal_det_warp.py +972 -0
  505. paddlex/inference/pipelines/components/common/sort_boxes.py +85 -0
  506. paddlex/inference/pipelines/components/common/warp_image.py +50 -0
  507. paddlex/inference/pipelines/components/faisser.py +357 -0
  508. paddlex/inference/pipelines/components/prompt_engineering/__init__.py +16 -0
  509. paddlex/inference/pipelines/components/prompt_engineering/base.py +35 -0
  510. paddlex/inference/pipelines/components/prompt_engineering/generate_ensemble_prompt.py +128 -0
  511. paddlex/inference/pipelines/components/prompt_engineering/generate_kie_prompt.py +148 -0
  512. paddlex/inference/pipelines/components/retriever/__init__.py +16 -0
  513. paddlex/inference/pipelines/components/retriever/base.py +228 -0
  514. paddlex/inference/pipelines/components/retriever/openai_bot_retriever.py +70 -0
  515. paddlex/inference/pipelines/components/retriever/qianfan_bot_retriever.py +166 -0
  516. paddlex/inference/pipelines/components/utils/__init__.py +13 -0
  517. paddlex/inference/pipelines/components/utils/mixin.py +206 -0
  518. paddlex/inference/pipelines/doc_preprocessor/__init__.py +15 -0
  519. paddlex/inference/pipelines/doc_preprocessor/pipeline.py +209 -0
  520. paddlex/inference/pipelines/doc_preprocessor/result.py +98 -0
  521. paddlex/inference/pipelines/doc_understanding/__init__.py +15 -0
  522. paddlex/inference/pipelines/doc_understanding/pipeline.py +71 -0
  523. paddlex/inference/pipelines/face_recognition/__init__.py +15 -0
  524. paddlex/inference/pipelines/face_recognition/pipeline.py +63 -0
  525. paddlex/inference/pipelines/face_recognition/result.py +44 -0
  526. paddlex/inference/pipelines/formula_recognition/__init__.py +15 -0
  527. paddlex/inference/pipelines/formula_recognition/pipeline.py +347 -0
  528. paddlex/inference/pipelines/formula_recognition/result.py +282 -0
  529. paddlex/inference/pipelines/image_classification/__init__.py +15 -0
  530. paddlex/inference/pipelines/image_classification/pipeline.py +90 -0
  531. paddlex/inference/pipelines/image_multilabel_classification/__init__.py +15 -0
  532. paddlex/inference/pipelines/image_multilabel_classification/pipeline.py +97 -0
  533. paddlex/inference/pipelines/instance_segmentation/__init__.py +15 -0
  534. paddlex/inference/pipelines/instance_segmentation/pipeline.py +91 -0
  535. paddlex/inference/pipelines/keypoint_detection/__init__.py +15 -0
  536. paddlex/inference/pipelines/keypoint_detection/pipeline.py +158 -0
  537. paddlex/inference/pipelines/layout_parsing/__init__.py +16 -0
  538. paddlex/inference/pipelines/layout_parsing/pipeline.py +568 -0
  539. paddlex/inference/pipelines/layout_parsing/pipeline_v2.py +1382 -0
  540. paddlex/inference/pipelines/layout_parsing/result.py +191 -0
  541. paddlex/inference/pipelines/layout_parsing/result_v2.py +745 -0
  542. paddlex/inference/pipelines/layout_parsing/setting.py +87 -0
  543. paddlex/inference/pipelines/layout_parsing/utils.py +951 -0
  544. paddlex/inference/pipelines/layout_parsing/xycut_enhanced/__init__.py +16 -0
  545. paddlex/inference/pipelines/layout_parsing/xycut_enhanced/utils.py +1143 -0
  546. paddlex/inference/pipelines/layout_parsing/xycut_enhanced/xycuts.py +562 -0
  547. paddlex/inference/pipelines/m_3d_bev_detection/__init__.py +15 -0
  548. paddlex/inference/pipelines/m_3d_bev_detection/pipeline.py +74 -0
  549. paddlex/inference/pipelines/multilingual_speech_recognition/__init__.py +15 -0
  550. paddlex/inference/pipelines/multilingual_speech_recognition/pipeline.py +78 -0
  551. paddlex/inference/pipelines/object_detection/__init__.py +15 -0
  552. paddlex/inference/pipelines/object_detection/pipeline.py +115 -0
  553. paddlex/inference/pipelines/ocr/__init__.py +15 -0
  554. paddlex/inference/pipelines/ocr/pipeline.py +463 -0
  555. paddlex/inference/pipelines/ocr/result.py +255 -0
  556. paddlex/inference/pipelines/open_vocabulary_detection/__init__.py +15 -0
  557. paddlex/inference/pipelines/open_vocabulary_detection/pipeline.py +86 -0
  558. paddlex/inference/pipelines/open_vocabulary_segmentation/__init__.py +15 -0
  559. paddlex/inference/pipelines/open_vocabulary_segmentation/pipeline.py +100 -0
  560. paddlex/inference/pipelines/pp_chatocr/__init__.py +16 -0
  561. paddlex/inference/pipelines/pp_chatocr/pipeline_base.py +111 -0
  562. paddlex/inference/pipelines/pp_chatocr/pipeline_v3.py +781 -0
  563. paddlex/inference/pipelines/pp_chatocr/pipeline_v4.py +992 -0
  564. paddlex/inference/pipelines/pp_shitu_v2/__init__.py +15 -0
  565. paddlex/inference/pipelines/pp_shitu_v2/pipeline.py +156 -0
  566. paddlex/inference/pipelines/pp_shitu_v2/result.py +126 -0
  567. paddlex/inference/pipelines/rotated_object_detection/__init__.py +15 -0
  568. paddlex/inference/pipelines/rotated_object_detection/pipeline.py +95 -0
  569. paddlex/inference/pipelines/seal_recognition/__init__.py +15 -0
  570. paddlex/inference/pipelines/seal_recognition/pipeline.py +335 -0
  571. paddlex/inference/pipelines/seal_recognition/result.py +89 -0
  572. paddlex/inference/pipelines/semantic_segmentation/__init__.py +15 -0
  573. paddlex/inference/pipelines/semantic_segmentation/pipeline.py +95 -0
  574. paddlex/inference/pipelines/small_object_detection/__init__.py +15 -0
  575. paddlex/inference/pipelines/small_object_detection/pipeline.py +95 -0
  576. paddlex/inference/pipelines/table_recognition/__init__.py +16 -0
  577. paddlex/inference/pipelines/table_recognition/pipeline.py +486 -0
  578. paddlex/inference/pipelines/table_recognition/pipeline_v2.py +1395 -0
  579. paddlex/inference/pipelines/table_recognition/result.py +218 -0
  580. paddlex/inference/pipelines/table_recognition/table_recognition_post_processing.py +366 -0
  581. paddlex/inference/pipelines/table_recognition/table_recognition_post_processing_v2.py +488 -0
  582. paddlex/inference/pipelines/table_recognition/utils.py +44 -0
  583. paddlex/inference/pipelines/ts_anomaly_detection/__init__.py +15 -0
  584. paddlex/inference/pipelines/ts_anomaly_detection/pipeline.py +72 -0
  585. paddlex/inference/pipelines/ts_classification/__init__.py +15 -0
  586. paddlex/inference/pipelines/ts_classification/pipeline.py +72 -0
  587. paddlex/inference/pipelines/ts_forecasting/__init__.py +15 -0
  588. paddlex/inference/pipelines/ts_forecasting/pipeline.py +72 -0
  589. paddlex/inference/pipelines/video_classification/__init__.py +15 -0
  590. paddlex/inference/pipelines/video_classification/pipeline.py +79 -0
  591. paddlex/inference/pipelines/video_detection/__init__.py +15 -0
  592. paddlex/inference/pipelines/video_detection/pipeline.py +86 -0
  593. paddlex/inference/serving/__init__.py +17 -0
  594. paddlex/inference/serving/basic_serving/__init__.py +18 -0
  595. paddlex/inference/serving/basic_serving/_app.py +221 -0
  596. paddlex/inference/serving/basic_serving/_pipeline_apps/__init__.py +44 -0
  597. paddlex/inference/serving/basic_serving/_pipeline_apps/_common/__init__.py +13 -0
  598. paddlex/inference/serving/basic_serving/_pipeline_apps/_common/common.py +104 -0
  599. paddlex/inference/serving/basic_serving/_pipeline_apps/_common/image_recognition.py +36 -0
  600. paddlex/inference/serving/basic_serving/_pipeline_apps/_common/ocr.py +95 -0
  601. paddlex/inference/serving/basic_serving/_pipeline_apps/anomaly_detection.py +67 -0
  602. paddlex/inference/serving/basic_serving/_pipeline_apps/doc_preprocessor.py +100 -0
  603. paddlex/inference/serving/basic_serving/_pipeline_apps/doc_understanding.py +153 -0
  604. paddlex/inference/serving/basic_serving/_pipeline_apps/face_recognition.py +226 -0
  605. paddlex/inference/serving/basic_serving/_pipeline_apps/formula_recognition.py +100 -0
  606. paddlex/inference/serving/basic_serving/_pipeline_apps/human_keypoint_detection.py +81 -0
  607. paddlex/inference/serving/basic_serving/_pipeline_apps/image_classification.py +69 -0
  608. paddlex/inference/serving/basic_serving/_pipeline_apps/image_multilabel_classification.py +73 -0
  609. paddlex/inference/serving/basic_serving/_pipeline_apps/instance_segmentation.py +87 -0
  610. paddlex/inference/serving/basic_serving/_pipeline_apps/layout_parsing.py +117 -0
  611. paddlex/inference/serving/basic_serving/_pipeline_apps/m_3d_bev_detection.py +79 -0
  612. paddlex/inference/serving/basic_serving/_pipeline_apps/multilingual_speech_recognition.py +92 -0
  613. paddlex/inference/serving/basic_serving/_pipeline_apps/object_detection.py +77 -0
  614. paddlex/inference/serving/basic_serving/_pipeline_apps/ocr.py +102 -0
  615. paddlex/inference/serving/basic_serving/_pipeline_apps/open_vocabulary_detection.py +81 -0
  616. paddlex/inference/serving/basic_serving/_pipeline_apps/open_vocabulary_segmentation.py +91 -0
  617. paddlex/inference/serving/basic_serving/_pipeline_apps/pedestrian_attribute_recognition.py +84 -0
  618. paddlex/inference/serving/basic_serving/_pipeline_apps/pp_chatocrv3_doc.py +193 -0
  619. paddlex/inference/serving/basic_serving/_pipeline_apps/pp_chatocrv4_doc.py +223 -0
  620. paddlex/inference/serving/basic_serving/_pipeline_apps/pp_shituv2.py +221 -0
  621. paddlex/inference/serving/basic_serving/_pipeline_apps/pp_structurev3.py +143 -0
  622. paddlex/inference/serving/basic_serving/_pipeline_apps/rotated_object_detection.py +81 -0
  623. paddlex/inference/serving/basic_serving/_pipeline_apps/seal_recognition.py +106 -0
  624. paddlex/inference/serving/basic_serving/_pipeline_apps/semantic_segmentation.py +67 -0
  625. paddlex/inference/serving/basic_serving/_pipeline_apps/small_object_detection.py +72 -0
  626. paddlex/inference/serving/basic_serving/_pipeline_apps/table_recognition.py +108 -0
  627. paddlex/inference/serving/basic_serving/_pipeline_apps/table_recognition_v2.py +113 -0
  628. paddlex/inference/serving/basic_serving/_pipeline_apps/ts_anomaly_detection.py +65 -0
  629. paddlex/inference/serving/basic_serving/_pipeline_apps/ts_classification.py +64 -0
  630. paddlex/inference/serving/basic_serving/_pipeline_apps/ts_forecast.py +65 -0
  631. paddlex/inference/serving/basic_serving/_pipeline_apps/vehicle_attribute_recognition.py +84 -0
  632. paddlex/inference/serving/basic_serving/_pipeline_apps/video_classification.py +76 -0
  633. paddlex/inference/serving/basic_serving/_pipeline_apps/video_detection.py +92 -0
  634. paddlex/inference/serving/basic_serving/_server.py +40 -0
  635. paddlex/inference/serving/infra/__init__.py +13 -0
  636. paddlex/inference/serving/infra/config.py +36 -0
  637. paddlex/inference/serving/infra/models.py +79 -0
  638. paddlex/inference/serving/infra/storage.py +180 -0
  639. paddlex/inference/serving/infra/utils.py +285 -0
  640. paddlex/inference/serving/schemas/__init__.py +13 -0
  641. paddlex/inference/serving/schemas/anomaly_detection.py +39 -0
  642. paddlex/inference/serving/schemas/doc_preprocessor.py +54 -0
  643. paddlex/inference/serving/schemas/doc_understanding.py +78 -0
  644. paddlex/inference/serving/schemas/face_recognition.py +124 -0
  645. paddlex/inference/serving/schemas/formula_recognition.py +56 -0
  646. paddlex/inference/serving/schemas/human_keypoint_detection.py +55 -0
  647. paddlex/inference/serving/schemas/image_classification.py +45 -0
  648. paddlex/inference/serving/schemas/image_multilabel_classification.py +47 -0
  649. paddlex/inference/serving/schemas/instance_segmentation.py +53 -0
  650. paddlex/inference/serving/schemas/layout_parsing.py +71 -0
  651. paddlex/inference/serving/schemas/m_3d_bev_detection.py +48 -0
  652. paddlex/inference/serving/schemas/multilingual_speech_recognition.py +57 -0
  653. paddlex/inference/serving/schemas/object_detection.py +52 -0
  654. paddlex/inference/serving/schemas/ocr.py +60 -0
  655. paddlex/inference/serving/schemas/open_vocabulary_detection.py +52 -0
  656. paddlex/inference/serving/schemas/open_vocabulary_segmentation.py +52 -0
  657. paddlex/inference/serving/schemas/pedestrian_attribute_recognition.py +61 -0
  658. paddlex/inference/serving/schemas/pp_chatocrv3_doc.py +133 -0
  659. paddlex/inference/serving/schemas/pp_chatocrv4_doc.py +150 -0
  660. paddlex/inference/serving/schemas/pp_shituv2.py +124 -0
  661. paddlex/inference/serving/schemas/pp_structurev3.py +88 -0
  662. paddlex/inference/serving/schemas/rotated_object_detection.py +52 -0
  663. paddlex/inference/serving/schemas/seal_recognition.py +62 -0
  664. paddlex/inference/serving/schemas/semantic_segmentation.py +45 -0
  665. paddlex/inference/serving/schemas/shared/__init__.py +13 -0
  666. paddlex/inference/serving/schemas/shared/classification.py +23 -0
  667. paddlex/inference/serving/schemas/shared/image_segmentation.py +28 -0
  668. paddlex/inference/serving/schemas/shared/object_detection.py +24 -0
  669. paddlex/inference/serving/schemas/shared/ocr.py +25 -0
  670. paddlex/inference/serving/schemas/small_object_detection.py +52 -0
  671. paddlex/inference/serving/schemas/table_recognition.py +64 -0
  672. paddlex/inference/serving/schemas/table_recognition_v2.py +69 -0
  673. paddlex/inference/serving/schemas/ts_anomaly_detection.py +37 -0
  674. paddlex/inference/serving/schemas/ts_classification.py +38 -0
  675. paddlex/inference/serving/schemas/ts_forecast.py +37 -0
  676. paddlex/inference/serving/schemas/vehicle_attribute_recognition.py +61 -0
  677. paddlex/inference/serving/schemas/video_classification.py +44 -0
  678. paddlex/inference/serving/schemas/video_detection.py +56 -0
  679. paddlex/inference/utils/__init__.py +13 -0
  680. paddlex/inference/utils/benchmark.py +379 -0
  681. paddlex/inference/utils/color_map.py +123 -0
  682. paddlex/inference/utils/get_pipeline_path.py +27 -0
  683. paddlex/inference/utils/hpi.py +254 -0
  684. paddlex/inference/utils/hpi_model_info_collection.json +2331 -0
  685. paddlex/inference/utils/io/__init__.py +36 -0
  686. paddlex/inference/utils/io/readers.py +504 -0
  687. paddlex/inference/utils/io/style.py +381 -0
  688. paddlex/inference/utils/io/tablepyxl.py +157 -0
  689. paddlex/inference/utils/io/writers.py +458 -0
  690. paddlex/inference/utils/model_paths.py +48 -0
  691. paddlex/inference/utils/new_ir_blocklist.py +27 -0
  692. paddlex/inference/utils/official_models.py +367 -0
  693. paddlex/inference/utils/pp_option.py +339 -0
  694. paddlex/inference/utils/trt_blocklist.py +43 -0
  695. paddlex/inference/utils/trt_config.py +420 -0
  696. paddlex/model.py +131 -0
  697. paddlex/modules/__init__.py +115 -0
  698. paddlex/modules/anomaly_detection/__init__.py +18 -0
  699. paddlex/modules/anomaly_detection/dataset_checker/__init__.py +94 -0
  700. paddlex/modules/anomaly_detection/dataset_checker/dataset_src/__init__.py +19 -0
  701. paddlex/modules/anomaly_detection/dataset_checker/dataset_src/analyse_dataset.py +82 -0
  702. paddlex/modules/anomaly_detection/dataset_checker/dataset_src/check_dataset.py +91 -0
  703. paddlex/modules/anomaly_detection/dataset_checker/dataset_src/convert_dataset.py +233 -0
  704. paddlex/modules/anomaly_detection/dataset_checker/dataset_src/split_dataset.py +87 -0
  705. paddlex/modules/anomaly_detection/dataset_checker/dataset_src/utils/__init__.py +13 -0
  706. paddlex/modules/anomaly_detection/dataset_checker/dataset_src/utils/visualizer.py +76 -0
  707. paddlex/modules/anomaly_detection/evaluator.py +58 -0
  708. paddlex/modules/anomaly_detection/exportor.py +22 -0
  709. paddlex/modules/anomaly_detection/model_list.py +16 -0
  710. paddlex/modules/anomaly_detection/trainer.py +70 -0
  711. paddlex/modules/base/__init__.py +18 -0
  712. paddlex/modules/base/build_model.py +33 -0
  713. paddlex/modules/base/dataset_checker/__init__.py +16 -0
  714. paddlex/modules/base/dataset_checker/dataset_checker.py +169 -0
  715. paddlex/modules/base/dataset_checker/utils.py +108 -0
  716. paddlex/modules/base/evaluator.py +170 -0
  717. paddlex/modules/base/exportor.py +145 -0
  718. paddlex/modules/base/trainer.py +144 -0
  719. paddlex/modules/base/utils/__init__.py +13 -0
  720. paddlex/modules/base/utils/cinn_setting.py +89 -0
  721. paddlex/modules/base/utils/coco_eval.py +94 -0
  722. paddlex/modules/base/utils/topk_eval.py +118 -0
  723. paddlex/modules/doc_vlm/__init__.py +18 -0
  724. paddlex/modules/doc_vlm/dataset_checker.py +29 -0
  725. paddlex/modules/doc_vlm/evaluator.py +29 -0
  726. paddlex/modules/doc_vlm/exportor.py +29 -0
  727. paddlex/modules/doc_vlm/model_list.py +16 -0
  728. paddlex/modules/doc_vlm/trainer.py +41 -0
  729. paddlex/modules/face_recognition/__init__.py +18 -0
  730. paddlex/modules/face_recognition/dataset_checker/__init__.py +71 -0
  731. paddlex/modules/face_recognition/dataset_checker/dataset_src/__init__.py +16 -0
  732. paddlex/modules/face_recognition/dataset_checker/dataset_src/check_dataset.py +172 -0
  733. paddlex/modules/face_recognition/dataset_checker/dataset_src/utils/__init__.py +13 -0
  734. paddlex/modules/face_recognition/dataset_checker/dataset_src/utils/visualizer.py +153 -0
  735. paddlex/modules/face_recognition/evaluator.py +52 -0
  736. paddlex/modules/face_recognition/exportor.py +22 -0
  737. paddlex/modules/face_recognition/model_list.py +15 -0
  738. paddlex/modules/face_recognition/trainer.py +75 -0
  739. paddlex/modules/formula_recognition/__init__.py +18 -0
  740. paddlex/modules/formula_recognition/dataset_checker/__init__.py +113 -0
  741. paddlex/modules/formula_recognition/dataset_checker/dataset_src/__init__.py +19 -0
  742. paddlex/modules/formula_recognition/dataset_checker/dataset_src/analyse_dataset.py +158 -0
  743. paddlex/modules/formula_recognition/dataset_checker/dataset_src/check_dataset.py +76 -0
  744. paddlex/modules/formula_recognition/dataset_checker/dataset_src/convert_dataset.py +95 -0
  745. paddlex/modules/formula_recognition/dataset_checker/dataset_src/split_dataset.py +80 -0
  746. paddlex/modules/formula_recognition/evaluator.py +80 -0
  747. paddlex/modules/formula_recognition/exportor.py +22 -0
  748. paddlex/modules/formula_recognition/model_list.py +23 -0
  749. paddlex/modules/formula_recognition/trainer.py +123 -0
  750. paddlex/modules/general_recognition/__init__.py +18 -0
  751. paddlex/modules/general_recognition/dataset_checker/__init__.py +107 -0
  752. paddlex/modules/general_recognition/dataset_checker/dataset_src/__init__.py +19 -0
  753. paddlex/modules/general_recognition/dataset_checker/dataset_src/analyse_dataset.py +96 -0
  754. paddlex/modules/general_recognition/dataset_checker/dataset_src/check_dataset.py +99 -0
  755. paddlex/modules/general_recognition/dataset_checker/dataset_src/convert_dataset.py +100 -0
  756. paddlex/modules/general_recognition/dataset_checker/dataset_src/split_dataset.py +82 -0
  757. paddlex/modules/general_recognition/dataset_checker/dataset_src/utils/__init__.py +13 -0
  758. paddlex/modules/general_recognition/dataset_checker/dataset_src/utils/visualizer.py +147 -0
  759. paddlex/modules/general_recognition/evaluator.py +31 -0
  760. paddlex/modules/general_recognition/exportor.py +22 -0
  761. paddlex/modules/general_recognition/model_list.py +19 -0
  762. paddlex/modules/general_recognition/trainer.py +52 -0
  763. paddlex/modules/image_classification/__init__.py +18 -0
  764. paddlex/modules/image_classification/dataset_checker/__init__.py +104 -0
  765. paddlex/modules/image_classification/dataset_checker/dataset_src/__init__.py +19 -0
  766. paddlex/modules/image_classification/dataset_checker/dataset_src/analyse_dataset.py +92 -0
  767. paddlex/modules/image_classification/dataset_checker/dataset_src/check_dataset.py +132 -0
  768. paddlex/modules/image_classification/dataset_checker/dataset_src/convert_dataset.py +51 -0
  769. paddlex/modules/image_classification/dataset_checker/dataset_src/split_dataset.py +81 -0
  770. paddlex/modules/image_classification/dataset_checker/dataset_src/utils/__init__.py +13 -0
  771. paddlex/modules/image_classification/dataset_checker/dataset_src/utils/visualizer.py +153 -0
  772. paddlex/modules/image_classification/evaluator.py +43 -0
  773. paddlex/modules/image_classification/exportor.py +22 -0
  774. paddlex/modules/image_classification/model_list.py +99 -0
  775. paddlex/modules/image_classification/trainer.py +82 -0
  776. paddlex/modules/image_unwarping/__init__.py +13 -0
  777. paddlex/modules/image_unwarping/model_list.py +17 -0
  778. paddlex/modules/instance_segmentation/__init__.py +18 -0
  779. paddlex/modules/instance_segmentation/dataset_checker/__init__.py +107 -0
  780. paddlex/modules/instance_segmentation/dataset_checker/dataset_src/__init__.py +19 -0
  781. paddlex/modules/instance_segmentation/dataset_checker/dataset_src/analyse_dataset.py +82 -0
  782. paddlex/modules/instance_segmentation/dataset_checker/dataset_src/check_dataset.py +95 -0
  783. paddlex/modules/instance_segmentation/dataset_checker/dataset_src/convert_dataset.py +241 -0
  784. paddlex/modules/instance_segmentation/dataset_checker/dataset_src/split_dataset.py +122 -0
  785. paddlex/modules/instance_segmentation/dataset_checker/dataset_src/utils/__init__.py +13 -0
  786. paddlex/modules/instance_segmentation/dataset_checker/dataset_src/utils/visualizer.py +223 -0
  787. paddlex/modules/instance_segmentation/evaluator.py +32 -0
  788. paddlex/modules/instance_segmentation/exportor.py +22 -0
  789. paddlex/modules/instance_segmentation/model_list.py +33 -0
  790. paddlex/modules/instance_segmentation/trainer.py +31 -0
  791. paddlex/modules/keypoint_detection/__init__.py +18 -0
  792. paddlex/modules/keypoint_detection/dataset_checker/__init__.py +56 -0
  793. paddlex/modules/keypoint_detection/dataset_checker/dataset_src/__init__.py +15 -0
  794. paddlex/modules/keypoint_detection/dataset_checker/dataset_src/check_dataset.py +91 -0
  795. paddlex/modules/keypoint_detection/dataset_checker/dataset_src/utils/__init__.py +13 -0
  796. paddlex/modules/keypoint_detection/dataset_checker/dataset_src/utils/visualizer.py +124 -0
  797. paddlex/modules/keypoint_detection/evaluator.py +41 -0
  798. paddlex/modules/keypoint_detection/exportor.py +22 -0
  799. paddlex/modules/keypoint_detection/model_list.py +16 -0
  800. paddlex/modules/keypoint_detection/trainer.py +39 -0
  801. paddlex/modules/m_3d_bev_detection/__init__.py +18 -0
  802. paddlex/modules/m_3d_bev_detection/dataset_checker/__init__.py +95 -0
  803. paddlex/modules/m_3d_bev_detection/dataset_checker/dataset_src/__init__.py +17 -0
  804. paddlex/modules/m_3d_bev_detection/dataset_checker/dataset_src/analyse_dataset.py +106 -0
  805. paddlex/modules/m_3d_bev_detection/dataset_checker/dataset_src/check_dataset.py +101 -0
  806. paddlex/modules/m_3d_bev_detection/evaluator.py +46 -0
  807. paddlex/modules/m_3d_bev_detection/exportor.py +22 -0
  808. paddlex/modules/m_3d_bev_detection/model_list.py +18 -0
  809. paddlex/modules/m_3d_bev_detection/trainer.py +68 -0
  810. paddlex/modules/multilabel_classification/__init__.py +18 -0
  811. paddlex/modules/multilabel_classification/dataset_checker/__init__.py +106 -0
  812. paddlex/modules/multilabel_classification/dataset_checker/dataset_src/__init__.py +19 -0
  813. paddlex/modules/multilabel_classification/dataset_checker/dataset_src/analyse_dataset.py +94 -0
  814. paddlex/modules/multilabel_classification/dataset_checker/dataset_src/check_dataset.py +132 -0
  815. paddlex/modules/multilabel_classification/dataset_checker/dataset_src/convert_dataset.py +120 -0
  816. paddlex/modules/multilabel_classification/dataset_checker/dataset_src/split_dataset.py +81 -0
  817. paddlex/modules/multilabel_classification/dataset_checker/dataset_src/utils/__init__.py +13 -0
  818. paddlex/modules/multilabel_classification/dataset_checker/dataset_src/utils/visualizer.py +149 -0
  819. paddlex/modules/multilabel_classification/evaluator.py +43 -0
  820. paddlex/modules/multilabel_classification/exportor.py +22 -0
  821. paddlex/modules/multilabel_classification/model_list.py +24 -0
  822. paddlex/modules/multilabel_classification/trainer.py +85 -0
  823. paddlex/modules/multilingual_speech_recognition/__init__.py +18 -0
  824. paddlex/modules/multilingual_speech_recognition/dataset_checker.py +27 -0
  825. paddlex/modules/multilingual_speech_recognition/evaluator.py +27 -0
  826. paddlex/modules/multilingual_speech_recognition/exportor.py +27 -0
  827. paddlex/modules/multilingual_speech_recognition/model_list.py +22 -0
  828. paddlex/modules/multilingual_speech_recognition/trainer.py +42 -0
  829. paddlex/modules/object_detection/__init__.py +18 -0
  830. paddlex/modules/object_detection/dataset_checker/__init__.py +106 -0
  831. paddlex/modules/object_detection/dataset_checker/dataset_src/__init__.py +19 -0
  832. paddlex/modules/object_detection/dataset_checker/dataset_src/analyse_dataset.py +82 -0
  833. paddlex/modules/object_detection/dataset_checker/dataset_src/check_dataset.py +91 -0
  834. paddlex/modules/object_detection/dataset_checker/dataset_src/convert_dataset.py +438 -0
  835. paddlex/modules/object_detection/dataset_checker/dataset_src/split_dataset.py +123 -0
  836. paddlex/modules/object_detection/dataset_checker/dataset_src/utils/__init__.py +13 -0
  837. paddlex/modules/object_detection/dataset_checker/dataset_src/utils/visualizer.py +193 -0
  838. paddlex/modules/object_detection/evaluator.py +57 -0
  839. paddlex/modules/object_detection/exportor.py +22 -0
  840. paddlex/modules/object_detection/model_list.py +86 -0
  841. paddlex/modules/object_detection/trainer.py +98 -0
  842. paddlex/modules/open_vocabulary_detection/__init__.py +18 -0
  843. paddlex/modules/open_vocabulary_detection/dataset_checker.py +29 -0
  844. paddlex/modules/open_vocabulary_detection/evaluator.py +29 -0
  845. paddlex/modules/open_vocabulary_detection/exportor.py +29 -0
  846. paddlex/modules/open_vocabulary_detection/model_list.py +16 -0
  847. paddlex/modules/open_vocabulary_detection/trainer.py +44 -0
  848. paddlex/modules/open_vocabulary_segmentation/__init__.py +18 -0
  849. paddlex/modules/open_vocabulary_segmentation/dataset_checker.py +29 -0
  850. paddlex/modules/open_vocabulary_segmentation/evaluator.py +29 -0
  851. paddlex/modules/open_vocabulary_segmentation/exportor.py +29 -0
  852. paddlex/modules/open_vocabulary_segmentation/model_list.py +19 -0
  853. paddlex/modules/open_vocabulary_segmentation/trainer.py +44 -0
  854. paddlex/modules/semantic_segmentation/__init__.py +18 -0
  855. paddlex/modules/semantic_segmentation/dataset_checker/__init__.py +109 -0
  856. paddlex/modules/semantic_segmentation/dataset_checker/dataset_src/__init__.py +19 -0
  857. paddlex/modules/semantic_segmentation/dataset_checker/dataset_src/analyse_dataset.py +76 -0
  858. paddlex/modules/semantic_segmentation/dataset_checker/dataset_src/check_dataset.py +80 -0
  859. paddlex/modules/semantic_segmentation/dataset_checker/dataset_src/convert_dataset.py +165 -0
  860. paddlex/modules/semantic_segmentation/dataset_checker/dataset_src/split_dataset.py +87 -0
  861. paddlex/modules/semantic_segmentation/dataset_checker/dataset_src/utils/__init__.py +13 -0
  862. paddlex/modules/semantic_segmentation/dataset_checker/dataset_src/utils/visualizer.py +75 -0
  863. paddlex/modules/semantic_segmentation/evaluator.py +58 -0
  864. paddlex/modules/semantic_segmentation/exportor.py +31 -0
  865. paddlex/modules/semantic_segmentation/model_list.py +37 -0
  866. paddlex/modules/semantic_segmentation/trainer.py +72 -0
  867. paddlex/modules/table_recognition/__init__.py +18 -0
  868. paddlex/modules/table_recognition/dataset_checker/__init__.py +98 -0
  869. paddlex/modules/table_recognition/dataset_checker/dataset_src/__init__.py +18 -0
  870. paddlex/modules/table_recognition/dataset_checker/dataset_src/analyse_dataset.py +59 -0
  871. paddlex/modules/table_recognition/dataset_checker/dataset_src/check_dataset.py +87 -0
  872. paddlex/modules/table_recognition/dataset_checker/dataset_src/split_dataset.py +80 -0
  873. paddlex/modules/table_recognition/evaluator.py +43 -0
  874. paddlex/modules/table_recognition/exportor.py +22 -0
  875. paddlex/modules/table_recognition/model_list.py +21 -0
  876. paddlex/modules/table_recognition/trainer.py +67 -0
  877. paddlex/modules/text_detection/__init__.py +18 -0
  878. paddlex/modules/text_detection/dataset_checker/__init__.py +107 -0
  879. paddlex/modules/text_detection/dataset_checker/dataset_src/__init__.py +18 -0
  880. paddlex/modules/text_detection/dataset_checker/dataset_src/analyse_dataset.py +220 -0
  881. paddlex/modules/text_detection/dataset_checker/dataset_src/check_dataset.py +106 -0
  882. paddlex/modules/text_detection/dataset_checker/dataset_src/split_dataset.py +140 -0
  883. paddlex/modules/text_detection/evaluator.py +41 -0
  884. paddlex/modules/text_detection/exportor.py +22 -0
  885. paddlex/modules/text_detection/model_list.py +26 -0
  886. paddlex/modules/text_detection/trainer.py +65 -0
  887. paddlex/modules/text_recognition/__init__.py +18 -0
  888. paddlex/modules/text_recognition/dataset_checker/__init__.py +125 -0
  889. paddlex/modules/text_recognition/dataset_checker/dataset_src/__init__.py +19 -0
  890. paddlex/modules/text_recognition/dataset_checker/dataset_src/analyse_dataset.py +162 -0
  891. paddlex/modules/text_recognition/dataset_checker/dataset_src/check_dataset.py +104 -0
  892. paddlex/modules/text_recognition/dataset_checker/dataset_src/convert_dataset.py +95 -0
  893. paddlex/modules/text_recognition/dataset_checker/dataset_src/split_dataset.py +80 -0
  894. paddlex/modules/text_recognition/evaluator.py +64 -0
  895. paddlex/modules/text_recognition/exportor.py +22 -0
  896. paddlex/modules/text_recognition/model_list.py +36 -0
  897. paddlex/modules/text_recognition/trainer.py +105 -0
  898. paddlex/modules/ts_anomaly_detection/__init__.py +19 -0
  899. paddlex/modules/ts_anomaly_detection/dataset_checker/__init__.py +111 -0
  900. paddlex/modules/ts_anomaly_detection/dataset_checker/dataset_src/__init__.py +19 -0
  901. paddlex/modules/ts_anomaly_detection/dataset_checker/dataset_src/analyse_dataset.py +19 -0
  902. paddlex/modules/ts_anomaly_detection/dataset_checker/dataset_src/check_dataset.py +64 -0
  903. paddlex/modules/ts_anomaly_detection/dataset_checker/dataset_src/convert_dataset.py +74 -0
  904. paddlex/modules/ts_anomaly_detection/dataset_checker/dataset_src/split_dataset.py +63 -0
  905. paddlex/modules/ts_anomaly_detection/evaluator.py +67 -0
  906. paddlex/modules/ts_anomaly_detection/exportor.py +44 -0
  907. paddlex/modules/ts_anomaly_detection/model_list.py +22 -0
  908. paddlex/modules/ts_anomaly_detection/trainer.py +113 -0
  909. paddlex/modules/ts_classification/__init__.py +19 -0
  910. paddlex/modules/ts_classification/dataset_checker/__init__.py +111 -0
  911. paddlex/modules/ts_classification/dataset_checker/dataset_src/__init__.py +19 -0
  912. paddlex/modules/ts_classification/dataset_checker/dataset_src/analyse_dataset.py +77 -0
  913. paddlex/modules/ts_classification/dataset_checker/dataset_src/check_dataset.py +64 -0
  914. paddlex/modules/ts_classification/dataset_checker/dataset_src/convert_dataset.py +74 -0
  915. paddlex/modules/ts_classification/dataset_checker/dataset_src/split_dataset.py +88 -0
  916. paddlex/modules/ts_classification/evaluator.py +66 -0
  917. paddlex/modules/ts_classification/exportor.py +44 -0
  918. paddlex/modules/ts_classification/model_list.py +18 -0
  919. paddlex/modules/ts_classification/trainer.py +108 -0
  920. paddlex/modules/ts_forecast/__init__.py +19 -0
  921. paddlex/modules/ts_forecast/dataset_checker/__init__.py +111 -0
  922. paddlex/modules/ts_forecast/dataset_checker/dataset_src/__init__.py +19 -0
  923. paddlex/modules/ts_forecast/dataset_checker/dataset_src/analyse_dataset.py +19 -0
  924. paddlex/modules/ts_forecast/dataset_checker/dataset_src/check_dataset.py +64 -0
  925. paddlex/modules/ts_forecast/dataset_checker/dataset_src/convert_dataset.py +73 -0
  926. paddlex/modules/ts_forecast/dataset_checker/dataset_src/split_dataset.py +63 -0
  927. paddlex/modules/ts_forecast/evaluator.py +66 -0
  928. paddlex/modules/ts_forecast/exportor.py +44 -0
  929. paddlex/modules/ts_forecast/model_list.py +24 -0
  930. paddlex/modules/ts_forecast/trainer.py +108 -0
  931. paddlex/modules/video_classification/__init__.py +18 -0
  932. paddlex/modules/video_classification/dataset_checker/__init__.py +93 -0
  933. paddlex/modules/video_classification/dataset_checker/dataset_src/__init__.py +18 -0
  934. paddlex/modules/video_classification/dataset_checker/dataset_src/analyse_dataset.py +93 -0
  935. paddlex/modules/video_classification/dataset_checker/dataset_src/check_dataset.py +120 -0
  936. paddlex/modules/video_classification/dataset_checker/dataset_src/split_dataset.py +82 -0
  937. paddlex/modules/video_classification/evaluator.py +44 -0
  938. paddlex/modules/video_classification/exportor.py +22 -0
  939. paddlex/modules/video_classification/model_list.py +19 -0
  940. paddlex/modules/video_classification/trainer.py +88 -0
  941. paddlex/modules/video_detection/__init__.py +18 -0
  942. paddlex/modules/video_detection/dataset_checker/__init__.py +86 -0
  943. paddlex/modules/video_detection/dataset_checker/dataset_src/__init__.py +17 -0
  944. paddlex/modules/video_detection/dataset_checker/dataset_src/analyse_dataset.py +100 -0
  945. paddlex/modules/video_detection/dataset_checker/dataset_src/check_dataset.py +132 -0
  946. paddlex/modules/video_detection/evaluator.py +42 -0
  947. paddlex/modules/video_detection/exportor.py +22 -0
  948. paddlex/modules/video_detection/model_list.py +15 -0
  949. paddlex/modules/video_detection/trainer.py +82 -0
  950. paddlex/ops/__init__.py +152 -0
  951. paddlex/ops/iou3d_nms/iou3d_cpu.cpp +266 -0
  952. paddlex/ops/iou3d_nms/iou3d_cpu.h +28 -0
  953. paddlex/ops/iou3d_nms/iou3d_nms.cpp +206 -0
  954. paddlex/ops/iou3d_nms/iou3d_nms.h +35 -0
  955. paddlex/ops/iou3d_nms/iou3d_nms_api.cpp +114 -0
  956. paddlex/ops/iou3d_nms/iou3d_nms_kernel.cu +484 -0
  957. paddlex/ops/setup.py +37 -0
  958. paddlex/ops/voxel/voxelize_op.cc +194 -0
  959. paddlex/ops/voxel/voxelize_op.cu +346 -0
  960. paddlex/paddlex_cli.py +476 -0
  961. paddlex/repo_apis/Paddle3D_api/__init__.py +17 -0
  962. paddlex/repo_apis/Paddle3D_api/bev_fusion/__init__.py +18 -0
  963. paddlex/repo_apis/Paddle3D_api/bev_fusion/config.py +118 -0
  964. paddlex/repo_apis/Paddle3D_api/bev_fusion/model.py +238 -0
  965. paddlex/repo_apis/Paddle3D_api/bev_fusion/register.py +55 -0
  966. paddlex/repo_apis/Paddle3D_api/bev_fusion/runner.py +104 -0
  967. paddlex/repo_apis/Paddle3D_api/pp3d_config.py +145 -0
  968. paddlex/repo_apis/PaddleClas_api/__init__.py +17 -0
  969. paddlex/repo_apis/PaddleClas_api/cls/__init__.py +19 -0
  970. paddlex/repo_apis/PaddleClas_api/cls/config.py +595 -0
  971. paddlex/repo_apis/PaddleClas_api/cls/model.py +355 -0
  972. paddlex/repo_apis/PaddleClas_api/cls/register.py +907 -0
  973. paddlex/repo_apis/PaddleClas_api/cls/runner.py +218 -0
  974. paddlex/repo_apis/PaddleClas_api/shitu_rec/__init__.py +18 -0
  975. paddlex/repo_apis/PaddleClas_api/shitu_rec/config.py +141 -0
  976. paddlex/repo_apis/PaddleClas_api/shitu_rec/model.py +20 -0
  977. paddlex/repo_apis/PaddleClas_api/shitu_rec/register.py +68 -0
  978. paddlex/repo_apis/PaddleClas_api/shitu_rec/runner.py +50 -0
  979. paddlex/repo_apis/PaddleDetection_api/__init__.py +17 -0
  980. paddlex/repo_apis/PaddleDetection_api/config_helper.py +280 -0
  981. paddlex/repo_apis/PaddleDetection_api/instance_seg/__init__.py +18 -0
  982. paddlex/repo_apis/PaddleDetection_api/instance_seg/config.py +457 -0
  983. paddlex/repo_apis/PaddleDetection_api/instance_seg/model.py +403 -0
  984. paddlex/repo_apis/PaddleDetection_api/instance_seg/register.py +262 -0
  985. paddlex/repo_apis/PaddleDetection_api/instance_seg/runner.py +225 -0
  986. paddlex/repo_apis/PaddleDetection_api/object_det/__init__.py +19 -0
  987. paddlex/repo_apis/PaddleDetection_api/object_det/config.py +540 -0
  988. paddlex/repo_apis/PaddleDetection_api/object_det/model.py +429 -0
  989. paddlex/repo_apis/PaddleDetection_api/object_det/official_categories.py +245 -0
  990. paddlex/repo_apis/PaddleDetection_api/object_det/register.py +1135 -0
  991. paddlex/repo_apis/PaddleDetection_api/object_det/runner.py +225 -0
  992. paddlex/repo_apis/PaddleNLP_api/__init__.py +13 -0
  993. paddlex/repo_apis/PaddleOCR_api/__init__.py +22 -0
  994. paddlex/repo_apis/PaddleOCR_api/config_utils.py +53 -0
  995. paddlex/repo_apis/PaddleOCR_api/formula_rec/__init__.py +16 -0
  996. paddlex/repo_apis/PaddleOCR_api/formula_rec/config.py +571 -0
  997. paddlex/repo_apis/PaddleOCR_api/formula_rec/model.py +398 -0
  998. paddlex/repo_apis/PaddleOCR_api/formula_rec/register.py +99 -0
  999. paddlex/repo_apis/PaddleOCR_api/formula_rec/runner.py +239 -0
  1000. paddlex/repo_apis/PaddleOCR_api/table_rec/__init__.py +16 -0
  1001. paddlex/repo_apis/PaddleOCR_api/table_rec/config.py +64 -0
  1002. paddlex/repo_apis/PaddleOCR_api/table_rec/model.py +126 -0
  1003. paddlex/repo_apis/PaddleOCR_api/table_rec/register.py +70 -0
  1004. paddlex/repo_apis/PaddleOCR_api/table_rec/runner.py +51 -0
  1005. paddlex/repo_apis/PaddleOCR_api/text_det/__init__.py +16 -0
  1006. paddlex/repo_apis/PaddleOCR_api/text_det/config.py +62 -0
  1007. paddlex/repo_apis/PaddleOCR_api/text_det/model.py +72 -0
  1008. paddlex/repo_apis/PaddleOCR_api/text_det/register.py +107 -0
  1009. paddlex/repo_apis/PaddleOCR_api/text_det/runner.py +53 -0
  1010. paddlex/repo_apis/PaddleOCR_api/text_rec/__init__.py +16 -0
  1011. paddlex/repo_apis/PaddleOCR_api/text_rec/config.py +564 -0
  1012. paddlex/repo_apis/PaddleOCR_api/text_rec/model.py +398 -0
  1013. paddlex/repo_apis/PaddleOCR_api/text_rec/register.py +216 -0
  1014. paddlex/repo_apis/PaddleOCR_api/text_rec/runner.py +239 -0
  1015. paddlex/repo_apis/PaddleSeg_api/__init__.py +16 -0
  1016. paddlex/repo_apis/PaddleSeg_api/base_seg_config.py +134 -0
  1017. paddlex/repo_apis/PaddleSeg_api/seg/__init__.py +16 -0
  1018. paddlex/repo_apis/PaddleSeg_api/seg/config.py +183 -0
  1019. paddlex/repo_apis/PaddleSeg_api/seg/model.py +491 -0
  1020. paddlex/repo_apis/PaddleSeg_api/seg/register.py +272 -0
  1021. paddlex/repo_apis/PaddleSeg_api/seg/runner.py +261 -0
  1022. paddlex/repo_apis/PaddleTS_api/__init__.py +20 -0
  1023. paddlex/repo_apis/PaddleTS_api/ts_ad/__init__.py +16 -0
  1024. paddlex/repo_apis/PaddleTS_api/ts_ad/config.py +88 -0
  1025. paddlex/repo_apis/PaddleTS_api/ts_ad/register.py +146 -0
  1026. paddlex/repo_apis/PaddleTS_api/ts_ad/runner.py +158 -0
  1027. paddlex/repo_apis/PaddleTS_api/ts_base/__init__.py +13 -0
  1028. paddlex/repo_apis/PaddleTS_api/ts_base/config.py +244 -0
  1029. paddlex/repo_apis/PaddleTS_api/ts_base/model.py +276 -0
  1030. paddlex/repo_apis/PaddleTS_api/ts_base/runner.py +158 -0
  1031. paddlex/repo_apis/PaddleTS_api/ts_cls/__init__.py +16 -0
  1032. paddlex/repo_apis/PaddleTS_api/ts_cls/config.py +72 -0
  1033. paddlex/repo_apis/PaddleTS_api/ts_cls/register.py +59 -0
  1034. paddlex/repo_apis/PaddleTS_api/ts_cls/runner.py +158 -0
  1035. paddlex/repo_apis/PaddleTS_api/ts_fc/__init__.py +16 -0
  1036. paddlex/repo_apis/PaddleTS_api/ts_fc/config.py +136 -0
  1037. paddlex/repo_apis/PaddleTS_api/ts_fc/register.py +186 -0
  1038. paddlex/repo_apis/PaddleVideo_api/__init__.py +17 -0
  1039. paddlex/repo_apis/PaddleVideo_api/config_utils.py +51 -0
  1040. paddlex/repo_apis/PaddleVideo_api/video_cls/__init__.py +19 -0
  1041. paddlex/repo_apis/PaddleVideo_api/video_cls/config.py +548 -0
  1042. paddlex/repo_apis/PaddleVideo_api/video_cls/model.py +346 -0
  1043. paddlex/repo_apis/PaddleVideo_api/video_cls/register.py +70 -0
  1044. paddlex/repo_apis/PaddleVideo_api/video_cls/runner.py +204 -0
  1045. paddlex/repo_apis/PaddleVideo_api/video_det/__init__.py +19 -0
  1046. paddlex/repo_apis/PaddleVideo_api/video_det/config.py +549 -0
  1047. paddlex/repo_apis/PaddleVideo_api/video_det/model.py +298 -0
  1048. paddlex/repo_apis/PaddleVideo_api/video_det/register.py +44 -0
  1049. paddlex/repo_apis/PaddleVideo_api/video_det/runner.py +199 -0
  1050. paddlex/repo_apis/__init__.py +13 -0
  1051. paddlex/repo_apis/base/__init__.py +22 -0
  1052. paddlex/repo_apis/base/config.py +237 -0
  1053. paddlex/repo_apis/base/model.py +563 -0
  1054. paddlex/repo_apis/base/register.py +135 -0
  1055. paddlex/repo_apis/base/runner.py +390 -0
  1056. paddlex/repo_apis/base/utils/__init__.py +13 -0
  1057. paddlex/repo_apis/base/utils/arg.py +64 -0
  1058. paddlex/repo_apis/base/utils/subprocess.py +107 -0
  1059. paddlex/repo_manager/__init__.py +17 -0
  1060. paddlex/repo_manager/core.py +253 -0
  1061. paddlex/repo_manager/meta.py +180 -0
  1062. paddlex/repo_manager/repo.py +425 -0
  1063. paddlex/repo_manager/utils.py +148 -0
  1064. paddlex/utils/__init__.py +1 -12
  1065. paddlex/utils/cache.py +146 -0
  1066. paddlex/utils/config.py +216 -0
  1067. paddlex/utils/custom_device_list.py +311 -0
  1068. paddlex/utils/deps.py +249 -0
  1069. paddlex/utils/device.py +195 -0
  1070. paddlex/utils/download.py +168 -182
  1071. paddlex/utils/env.py +31 -48
  1072. paddlex/utils/errors/__init__.py +17 -0
  1073. paddlex/utils/errors/dataset_checker.py +78 -0
  1074. paddlex/utils/errors/others.py +138 -0
  1075. paddlex/utils/file_interface.py +211 -0
  1076. paddlex/utils/flags.py +70 -0
  1077. paddlex/utils/fonts/__init__.py +97 -0
  1078. paddlex/utils/func_register.py +41 -0
  1079. paddlex/utils/install.py +87 -0
  1080. paddlex/utils/interactive_get_pipeline.py +55 -0
  1081. paddlex/utils/lazy_loader.py +68 -0
  1082. paddlex/utils/logging.py +140 -33
  1083. paddlex/utils/misc.py +201 -0
  1084. paddlex/utils/pipeline_arguments.py +719 -0
  1085. paddlex/utils/result_saver.py +58 -0
  1086. paddlex/utils/subclass_register.py +99 -0
  1087. paddlex/version.py +55 -0
  1088. paddlex-3.0.0.dist-info/METADATA +1168 -0
  1089. paddlex-3.0.0.dist-info/RECORD +1093 -0
  1090. paddlex-3.0.0.dist-info/WHEEL +5 -0
  1091. paddlex-3.0.0.dist-info/entry_points.txt +2 -0
  1092. paddlex-3.0.0.dist-info/licenses/LICENSE +169 -0
  1093. paddlex-3.0.0.dist-info/top_level.txt +1 -0
  1094. PaddleClas/__init__.py +0 -16
  1095. PaddleClas/paddleclas.py +0 -375
  1096. PaddleClas/ppcls/__init__.py +0 -20
  1097. PaddleClas/ppcls/data/__init__.py +0 -15
  1098. PaddleClas/ppcls/data/imaug/__init__.py +0 -94
  1099. PaddleClas/ppcls/data/imaug/autoaugment.py +0 -264
  1100. PaddleClas/ppcls/data/imaug/batch_operators.py +0 -117
  1101. PaddleClas/ppcls/data/imaug/cutout.py +0 -41
  1102. PaddleClas/ppcls/data/imaug/fmix.py +0 -217
  1103. PaddleClas/ppcls/data/imaug/grid.py +0 -89
  1104. PaddleClas/ppcls/data/imaug/hide_and_seek.py +0 -44
  1105. PaddleClas/ppcls/data/imaug/operators.py +0 -244
  1106. PaddleClas/ppcls/data/imaug/randaugment.py +0 -106
  1107. PaddleClas/ppcls/data/imaug/random_erasing.py +0 -55
  1108. PaddleClas/ppcls/data/reader.py +0 -318
  1109. PaddleClas/ppcls/modeling/__init__.py +0 -20
  1110. PaddleClas/ppcls/modeling/architectures/__init__.py +0 -51
  1111. PaddleClas/ppcls/modeling/architectures/alexnet.py +0 -132
  1112. PaddleClas/ppcls/modeling/architectures/darknet.py +0 -161
  1113. PaddleClas/ppcls/modeling/architectures/densenet.py +0 -308
  1114. PaddleClas/ppcls/modeling/architectures/distillation_models.py +0 -65
  1115. PaddleClas/ppcls/modeling/architectures/distilled_vision_transformer.py +0 -196
  1116. PaddleClas/ppcls/modeling/architectures/dpn.py +0 -425
  1117. PaddleClas/ppcls/modeling/architectures/efficientnet.py +0 -901
  1118. PaddleClas/ppcls/modeling/architectures/ghostnet.py +0 -331
  1119. PaddleClas/ppcls/modeling/architectures/googlenet.py +0 -207
  1120. PaddleClas/ppcls/modeling/architectures/hrnet.py +0 -742
  1121. PaddleClas/ppcls/modeling/architectures/inception_v3.py +0 -481
  1122. PaddleClas/ppcls/modeling/architectures/inception_v4.py +0 -455
  1123. PaddleClas/ppcls/modeling/architectures/mixnet.py +0 -782
  1124. PaddleClas/ppcls/modeling/architectures/mobilenet_v1.py +0 -266
  1125. PaddleClas/ppcls/modeling/architectures/mobilenet_v2.py +0 -248
  1126. PaddleClas/ppcls/modeling/architectures/mobilenet_v3.py +0 -359
  1127. PaddleClas/ppcls/modeling/architectures/regnet.py +0 -383
  1128. PaddleClas/ppcls/modeling/architectures/repvgg.py +0 -339
  1129. PaddleClas/ppcls/modeling/architectures/res2net.py +0 -272
  1130. PaddleClas/ppcls/modeling/architectures/res2net_vd.py +0 -295
  1131. PaddleClas/ppcls/modeling/architectures/resnest.py +0 -705
  1132. PaddleClas/ppcls/modeling/architectures/resnet.py +0 -316
  1133. PaddleClas/ppcls/modeling/architectures/resnet_vc.py +0 -309
  1134. PaddleClas/ppcls/modeling/architectures/resnet_vd.py +0 -354
  1135. PaddleClas/ppcls/modeling/architectures/resnext.py +0 -253
  1136. PaddleClas/ppcls/modeling/architectures/resnext101_wsl.py +0 -447
  1137. PaddleClas/ppcls/modeling/architectures/resnext_vd.py +0 -266
  1138. PaddleClas/ppcls/modeling/architectures/rexnet.py +0 -240
  1139. PaddleClas/ppcls/modeling/architectures/se_resnet_vd.py +0 -378
  1140. PaddleClas/ppcls/modeling/architectures/se_resnext.py +0 -290
  1141. PaddleClas/ppcls/modeling/architectures/se_resnext_vd.py +0 -285
  1142. PaddleClas/ppcls/modeling/architectures/shufflenet_v2.py +0 -320
  1143. PaddleClas/ppcls/modeling/architectures/squeezenet.py +0 -154
  1144. PaddleClas/ppcls/modeling/architectures/vgg.py +0 -152
  1145. PaddleClas/ppcls/modeling/architectures/vision_transformer.py +0 -402
  1146. PaddleClas/ppcls/modeling/architectures/xception.py +0 -345
  1147. PaddleClas/ppcls/modeling/architectures/xception_deeplab.py +0 -386
  1148. PaddleClas/ppcls/modeling/loss.py +0 -154
  1149. PaddleClas/ppcls/modeling/utils.py +0 -53
  1150. PaddleClas/ppcls/optimizer/__init__.py +0 -19
  1151. PaddleClas/ppcls/optimizer/learning_rate.py +0 -159
  1152. PaddleClas/ppcls/optimizer/optimizer.py +0 -165
  1153. PaddleClas/ppcls/utils/__init__.py +0 -27
  1154. PaddleClas/ppcls/utils/check.py +0 -151
  1155. PaddleClas/ppcls/utils/config.py +0 -201
  1156. PaddleClas/ppcls/utils/logger.py +0 -120
  1157. PaddleClas/ppcls/utils/metrics.py +0 -107
  1158. PaddleClas/ppcls/utils/misc.py +0 -62
  1159. PaddleClas/ppcls/utils/model_zoo.py +0 -213
  1160. PaddleClas/ppcls/utils/save_load.py +0 -163
  1161. PaddleClas/setup.py +0 -55
  1162. PaddleClas/tools/__init__.py +0 -15
  1163. PaddleClas/tools/download.py +0 -50
  1164. PaddleClas/tools/ema.py +0 -58
  1165. PaddleClas/tools/eval.py +0 -112
  1166. PaddleClas/tools/export_model.py +0 -85
  1167. PaddleClas/tools/export_serving_model.py +0 -76
  1168. PaddleClas/tools/infer/__init__.py +0 -16
  1169. PaddleClas/tools/infer/infer.py +0 -94
  1170. PaddleClas/tools/infer/predict.py +0 -117
  1171. PaddleClas/tools/infer/utils.py +0 -233
  1172. PaddleClas/tools/program.py +0 -444
  1173. PaddleClas/tools/test_hubserving.py +0 -113
  1174. PaddleClas/tools/train.py +0 -141
  1175. paddlex/cls.py +0 -76
  1176. paddlex/command.py +0 -215
  1177. paddlex/cv/__init__.py +0 -17
  1178. paddlex/cv/datasets/__init__.py +0 -18
  1179. paddlex/cv/datasets/coco.py +0 -169
  1180. paddlex/cv/datasets/imagenet.py +0 -88
  1181. paddlex/cv/datasets/seg_dataset.py +0 -91
  1182. paddlex/cv/datasets/voc.py +0 -301
  1183. paddlex/cv/models/__init__.py +0 -18
  1184. paddlex/cv/models/base.py +0 -623
  1185. paddlex/cv/models/classifier.py +0 -814
  1186. paddlex/cv/models/detector.py +0 -1747
  1187. paddlex/cv/models/load_model.py +0 -126
  1188. paddlex/cv/models/segmenter.py +0 -673
  1189. paddlex/cv/models/slim/__init__.py +0 -13
  1190. paddlex/cv/models/slim/prune.py +0 -55
  1191. paddlex/cv/models/utils/__init__.py +0 -13
  1192. paddlex/cv/models/utils/det_metrics/__init__.py +0 -15
  1193. paddlex/cv/models/utils/det_metrics/coco_utils.py +0 -217
  1194. paddlex/cv/models/utils/det_metrics/metrics.py +0 -220
  1195. paddlex/cv/models/utils/ema.py +0 -48
  1196. paddlex/cv/models/utils/seg_metrics.py +0 -62
  1197. paddlex/cv/models/utils/visualize.py +0 -394
  1198. paddlex/cv/transforms/__init__.py +0 -46
  1199. paddlex/cv/transforms/batch_operators.py +0 -286
  1200. paddlex/cv/transforms/box_utils.py +0 -41
  1201. paddlex/cv/transforms/functions.py +0 -193
  1202. paddlex/cv/transforms/operators.py +0 -1402
  1203. paddlex/det.py +0 -43
  1204. paddlex/paddleseg/__init__.py +0 -17
  1205. paddlex/paddleseg/core/__init__.py +0 -20
  1206. paddlex/paddleseg/core/infer.py +0 -289
  1207. paddlex/paddleseg/core/predict.py +0 -145
  1208. paddlex/paddleseg/core/train.py +0 -258
  1209. paddlex/paddleseg/core/val.py +0 -172
  1210. paddlex/paddleseg/cvlibs/__init__.py +0 -17
  1211. paddlex/paddleseg/cvlibs/callbacks.py +0 -279
  1212. paddlex/paddleseg/cvlibs/config.py +0 -359
  1213. paddlex/paddleseg/cvlibs/manager.py +0 -142
  1214. paddlex/paddleseg/cvlibs/param_init.py +0 -91
  1215. paddlex/paddleseg/datasets/__init__.py +0 -21
  1216. paddlex/paddleseg/datasets/ade.py +0 -112
  1217. paddlex/paddleseg/datasets/cityscapes.py +0 -86
  1218. paddlex/paddleseg/datasets/cocostuff.py +0 -79
  1219. paddlex/paddleseg/datasets/dataset.py +0 -164
  1220. paddlex/paddleseg/datasets/mini_deep_globe_road_extraction.py +0 -95
  1221. paddlex/paddleseg/datasets/optic_disc_seg.py +0 -97
  1222. paddlex/paddleseg/datasets/pascal_context.py +0 -80
  1223. paddlex/paddleseg/datasets/voc.py +0 -113
  1224. paddlex/paddleseg/models/__init__.py +0 -39
  1225. paddlex/paddleseg/models/ann.py +0 -436
  1226. paddlex/paddleseg/models/attention_unet.py +0 -189
  1227. paddlex/paddleseg/models/backbones/__init__.py +0 -18
  1228. paddlex/paddleseg/models/backbones/hrnet.py +0 -815
  1229. paddlex/paddleseg/models/backbones/mobilenetv3.py +0 -365
  1230. paddlex/paddleseg/models/backbones/resnet_vd.py +0 -364
  1231. paddlex/paddleseg/models/backbones/xception_deeplab.py +0 -415
  1232. paddlex/paddleseg/models/bisenet.py +0 -311
  1233. paddlex/paddleseg/models/danet.py +0 -220
  1234. paddlex/paddleseg/models/decoupled_segnet.py +0 -233
  1235. paddlex/paddleseg/models/deeplab.py +0 -258
  1236. paddlex/paddleseg/models/dnlnet.py +0 -231
  1237. paddlex/paddleseg/models/emanet.py +0 -219
  1238. paddlex/paddleseg/models/fast_scnn.py +0 -318
  1239. paddlex/paddleseg/models/fcn.py +0 -135
  1240. paddlex/paddleseg/models/gcnet.py +0 -223
  1241. paddlex/paddleseg/models/gscnn.py +0 -357
  1242. paddlex/paddleseg/models/hardnet.py +0 -309
  1243. paddlex/paddleseg/models/isanet.py +0 -202
  1244. paddlex/paddleseg/models/layers/__init__.py +0 -19
  1245. paddlex/paddleseg/models/layers/activation.py +0 -73
  1246. paddlex/paddleseg/models/layers/attention.py +0 -146
  1247. paddlex/paddleseg/models/layers/layer_libs.py +0 -168
  1248. paddlex/paddleseg/models/layers/nonlocal2d.py +0 -155
  1249. paddlex/paddleseg/models/layers/pyramid_pool.py +0 -182
  1250. paddlex/paddleseg/models/losses/__init__.py +0 -27
  1251. paddlex/paddleseg/models/losses/binary_cross_entropy_loss.py +0 -174
  1252. paddlex/paddleseg/models/losses/bootstrapped_cross_entropy.py +0 -73
  1253. paddlex/paddleseg/models/losses/cross_entropy_loss.py +0 -94
  1254. paddlex/paddleseg/models/losses/decoupledsegnet_relax_boundary_loss.py +0 -129
  1255. paddlex/paddleseg/models/losses/dice_loss.py +0 -61
  1256. paddlex/paddleseg/models/losses/edge_attention_loss.py +0 -78
  1257. paddlex/paddleseg/models/losses/gscnn_dual_task_loss.py +0 -141
  1258. paddlex/paddleseg/models/losses/l1_loss.py +0 -76
  1259. paddlex/paddleseg/models/losses/lovasz_loss.py +0 -222
  1260. paddlex/paddleseg/models/losses/mean_square_error_loss.py +0 -65
  1261. paddlex/paddleseg/models/losses/mixed_loss.py +0 -58
  1262. paddlex/paddleseg/models/losses/ohem_cross_entropy_loss.py +0 -99
  1263. paddlex/paddleseg/models/losses/ohem_edge_attention_loss.py +0 -114
  1264. paddlex/paddleseg/models/ocrnet.py +0 -248
  1265. paddlex/paddleseg/models/pspnet.py +0 -147
  1266. paddlex/paddleseg/models/sfnet.py +0 -236
  1267. paddlex/paddleseg/models/shufflenet_slim.py +0 -268
  1268. paddlex/paddleseg/models/u2net.py +0 -574
  1269. paddlex/paddleseg/models/unet.py +0 -155
  1270. paddlex/paddleseg/models/unet_3plus.py +0 -316
  1271. paddlex/paddleseg/models/unet_plusplus.py +0 -237
  1272. paddlex/paddleseg/transforms/__init__.py +0 -16
  1273. paddlex/paddleseg/transforms/functional.py +0 -161
  1274. paddlex/paddleseg/transforms/transforms.py +0 -937
  1275. paddlex/paddleseg/utils/__init__.py +0 -22
  1276. paddlex/paddleseg/utils/config_check.py +0 -60
  1277. paddlex/paddleseg/utils/download.py +0 -163
  1278. paddlex/paddleseg/utils/env/__init__.py +0 -16
  1279. paddlex/paddleseg/utils/env/seg_env.py +0 -56
  1280. paddlex/paddleseg/utils/env/sys_env.py +0 -122
  1281. paddlex/paddleseg/utils/logger.py +0 -48
  1282. paddlex/paddleseg/utils/metrics.py +0 -146
  1283. paddlex/paddleseg/utils/progbar.py +0 -212
  1284. paddlex/paddleseg/utils/timer.py +0 -53
  1285. paddlex/paddleseg/utils/utils.py +0 -120
  1286. paddlex/paddleseg/utils/visualize.py +0 -90
  1287. paddlex/ppcls/__init__.py +0 -20
  1288. paddlex/ppcls/data/__init__.py +0 -15
  1289. paddlex/ppcls/data/imaug/__init__.py +0 -94
  1290. paddlex/ppcls/data/imaug/autoaugment.py +0 -264
  1291. paddlex/ppcls/data/imaug/batch_operators.py +0 -117
  1292. paddlex/ppcls/data/imaug/cutout.py +0 -41
  1293. paddlex/ppcls/data/imaug/fmix.py +0 -217
  1294. paddlex/ppcls/data/imaug/grid.py +0 -89
  1295. paddlex/ppcls/data/imaug/hide_and_seek.py +0 -44
  1296. paddlex/ppcls/data/imaug/operators.py +0 -256
  1297. paddlex/ppcls/data/imaug/randaugment.py +0 -106
  1298. paddlex/ppcls/data/imaug/random_erasing.py +0 -55
  1299. paddlex/ppcls/data/reader.py +0 -318
  1300. paddlex/ppcls/modeling/__init__.py +0 -20
  1301. paddlex/ppcls/modeling/architectures/__init__.py +0 -51
  1302. paddlex/ppcls/modeling/architectures/alexnet.py +0 -132
  1303. paddlex/ppcls/modeling/architectures/darknet.py +0 -161
  1304. paddlex/ppcls/modeling/architectures/densenet.py +0 -308
  1305. paddlex/ppcls/modeling/architectures/distillation_models.py +0 -65
  1306. paddlex/ppcls/modeling/architectures/distilled_vision_transformer.py +0 -196
  1307. paddlex/ppcls/modeling/architectures/dpn.py +0 -425
  1308. paddlex/ppcls/modeling/architectures/efficientnet.py +0 -901
  1309. paddlex/ppcls/modeling/architectures/ghostnet.py +0 -331
  1310. paddlex/ppcls/modeling/architectures/googlenet.py +0 -207
  1311. paddlex/ppcls/modeling/architectures/hrnet.py +0 -742
  1312. paddlex/ppcls/modeling/architectures/inception_v3.py +0 -541
  1313. paddlex/ppcls/modeling/architectures/inception_v4.py +0 -455
  1314. paddlex/ppcls/modeling/architectures/mixnet.py +0 -782
  1315. paddlex/ppcls/modeling/architectures/mobilenet_v1.py +0 -266
  1316. paddlex/ppcls/modeling/architectures/mobilenet_v2.py +0 -248
  1317. paddlex/ppcls/modeling/architectures/mobilenet_v3.py +0 -359
  1318. paddlex/ppcls/modeling/architectures/regnet.py +0 -383
  1319. paddlex/ppcls/modeling/architectures/repvgg.py +0 -339
  1320. paddlex/ppcls/modeling/architectures/res2net.py +0 -272
  1321. paddlex/ppcls/modeling/architectures/res2net_vd.py +0 -295
  1322. paddlex/ppcls/modeling/architectures/resnest.py +0 -705
  1323. paddlex/ppcls/modeling/architectures/resnet.py +0 -317
  1324. paddlex/ppcls/modeling/architectures/resnet_vc.py +0 -309
  1325. paddlex/ppcls/modeling/architectures/resnet_vd.py +0 -354
  1326. paddlex/ppcls/modeling/architectures/resnext.py +0 -259
  1327. paddlex/ppcls/modeling/architectures/resnext101_wsl.py +0 -447
  1328. paddlex/ppcls/modeling/architectures/resnext_vd.py +0 -266
  1329. paddlex/ppcls/modeling/architectures/rexnet.py +0 -240
  1330. paddlex/ppcls/modeling/architectures/se_resnet_vd.py +0 -378
  1331. paddlex/ppcls/modeling/architectures/se_resnext.py +0 -290
  1332. paddlex/ppcls/modeling/architectures/se_resnext_vd.py +0 -285
  1333. paddlex/ppcls/modeling/architectures/shufflenet_v2.py +0 -320
  1334. paddlex/ppcls/modeling/architectures/squeezenet.py +0 -154
  1335. paddlex/ppcls/modeling/architectures/vgg.py +0 -152
  1336. paddlex/ppcls/modeling/architectures/vision_transformer.py +0 -402
  1337. paddlex/ppcls/modeling/architectures/xception.py +0 -345
  1338. paddlex/ppcls/modeling/architectures/xception_deeplab.py +0 -386
  1339. paddlex/ppcls/modeling/loss.py +0 -158
  1340. paddlex/ppcls/modeling/utils.py +0 -53
  1341. paddlex/ppcls/optimizer/__init__.py +0 -19
  1342. paddlex/ppcls/optimizer/learning_rate.py +0 -159
  1343. paddlex/ppcls/optimizer/optimizer.py +0 -165
  1344. paddlex/ppcls/utils/__init__.py +0 -27
  1345. paddlex/ppcls/utils/check.py +0 -151
  1346. paddlex/ppcls/utils/config.py +0 -201
  1347. paddlex/ppcls/utils/logger.py +0 -120
  1348. paddlex/ppcls/utils/metrics.py +0 -112
  1349. paddlex/ppcls/utils/misc.py +0 -62
  1350. paddlex/ppcls/utils/model_zoo.py +0 -213
  1351. paddlex/ppcls/utils/save_load.py +0 -163
  1352. paddlex/ppdet/__init__.py +0 -16
  1353. paddlex/ppdet/core/__init__.py +0 -15
  1354. paddlex/ppdet/core/config/__init__.py +0 -13
  1355. paddlex/ppdet/core/config/schema.py +0 -248
  1356. paddlex/ppdet/core/config/yaml_helpers.py +0 -118
  1357. paddlex/ppdet/core/workspace.py +0 -279
  1358. paddlex/ppdet/data/__init__.py +0 -21
  1359. paddlex/ppdet/data/reader.py +0 -304
  1360. paddlex/ppdet/data/shm_utils.py +0 -67
  1361. paddlex/ppdet/data/source/__init__.py +0 -27
  1362. paddlex/ppdet/data/source/category.py +0 -823
  1363. paddlex/ppdet/data/source/coco.py +0 -243
  1364. paddlex/ppdet/data/source/dataset.py +0 -192
  1365. paddlex/ppdet/data/source/keypoint_coco.py +0 -656
  1366. paddlex/ppdet/data/source/mot.py +0 -360
  1367. paddlex/ppdet/data/source/voc.py +0 -204
  1368. paddlex/ppdet/data/source/widerface.py +0 -180
  1369. paddlex/ppdet/data/transform/__init__.py +0 -28
  1370. paddlex/ppdet/data/transform/autoaugment_utils.py +0 -1593
  1371. paddlex/ppdet/data/transform/batch_operators.py +0 -758
  1372. paddlex/ppdet/data/transform/gridmask_utils.py +0 -83
  1373. paddlex/ppdet/data/transform/keypoint_operators.py +0 -665
  1374. paddlex/ppdet/data/transform/mot_operators.py +0 -636
  1375. paddlex/ppdet/data/transform/op_helper.py +0 -468
  1376. paddlex/ppdet/data/transform/operators.py +0 -2103
  1377. paddlex/ppdet/engine/__init__.py +0 -29
  1378. paddlex/ppdet/engine/callbacks.py +0 -262
  1379. paddlex/ppdet/engine/env.py +0 -47
  1380. paddlex/ppdet/engine/export_utils.py +0 -118
  1381. paddlex/ppdet/engine/tracker.py +0 -425
  1382. paddlex/ppdet/engine/trainer.py +0 -535
  1383. paddlex/ppdet/metrics/__init__.py +0 -23
  1384. paddlex/ppdet/metrics/coco_utils.py +0 -184
  1385. paddlex/ppdet/metrics/json_results.py +0 -151
  1386. paddlex/ppdet/metrics/keypoint_metrics.py +0 -202
  1387. paddlex/ppdet/metrics/map_utils.py +0 -396
  1388. paddlex/ppdet/metrics/metrics.py +0 -300
  1389. paddlex/ppdet/metrics/mot_eval_utils.py +0 -192
  1390. paddlex/ppdet/metrics/mot_metrics.py +0 -184
  1391. paddlex/ppdet/metrics/widerface_utils.py +0 -393
  1392. paddlex/ppdet/model_zoo/__init__.py +0 -18
  1393. paddlex/ppdet/model_zoo/model_zoo.py +0 -86
  1394. paddlex/ppdet/model_zoo/tests/__init__.py +0 -13
  1395. paddlex/ppdet/model_zoo/tests/test_get_model.py +0 -48
  1396. paddlex/ppdet/model_zoo/tests/test_list_model.py +0 -68
  1397. paddlex/ppdet/modeling/__init__.py +0 -41
  1398. paddlex/ppdet/modeling/architectures/__init__.py +0 -40
  1399. paddlex/ppdet/modeling/architectures/cascade_rcnn.py +0 -144
  1400. paddlex/ppdet/modeling/architectures/centernet.py +0 -103
  1401. paddlex/ppdet/modeling/architectures/deepsort.py +0 -111
  1402. paddlex/ppdet/modeling/architectures/fairmot.py +0 -107
  1403. paddlex/ppdet/modeling/architectures/faster_rcnn.py +0 -106
  1404. paddlex/ppdet/modeling/architectures/fcos.py +0 -105
  1405. paddlex/ppdet/modeling/architectures/jde.py +0 -125
  1406. paddlex/ppdet/modeling/architectures/keypoint_hrhrnet.py +0 -286
  1407. paddlex/ppdet/modeling/architectures/keypoint_hrnet.py +0 -203
  1408. paddlex/ppdet/modeling/architectures/mask_rcnn.py +0 -135
  1409. paddlex/ppdet/modeling/architectures/meta_arch.py +0 -45
  1410. paddlex/ppdet/modeling/architectures/s2anet.py +0 -103
  1411. paddlex/ppdet/modeling/architectures/solov2.py +0 -110
  1412. paddlex/ppdet/modeling/architectures/ssd.py +0 -84
  1413. paddlex/ppdet/modeling/architectures/ttfnet.py +0 -98
  1414. paddlex/ppdet/modeling/architectures/yolo.py +0 -104
  1415. paddlex/ppdet/modeling/backbones/__init__.py +0 -37
  1416. paddlex/ppdet/modeling/backbones/blazenet.py +0 -322
  1417. paddlex/ppdet/modeling/backbones/darknet.py +0 -341
  1418. paddlex/ppdet/modeling/backbones/dla.py +0 -244
  1419. paddlex/ppdet/modeling/backbones/ghostnet.py +0 -476
  1420. paddlex/ppdet/modeling/backbones/hrnet.py +0 -724
  1421. paddlex/ppdet/modeling/backbones/mobilenet_v1.py +0 -410
  1422. paddlex/ppdet/modeling/backbones/mobilenet_v3.py +0 -497
  1423. paddlex/ppdet/modeling/backbones/name_adapter.py +0 -69
  1424. paddlex/ppdet/modeling/backbones/res2net.py +0 -358
  1425. paddlex/ppdet/modeling/backbones/resnet.py +0 -606
  1426. paddlex/ppdet/modeling/backbones/senet.py +0 -140
  1427. paddlex/ppdet/modeling/backbones/vgg.py +0 -216
  1428. paddlex/ppdet/modeling/bbox_utils.py +0 -464
  1429. paddlex/ppdet/modeling/heads/__init__.py +0 -41
  1430. paddlex/ppdet/modeling/heads/bbox_head.py +0 -379
  1431. paddlex/ppdet/modeling/heads/cascade_head.py +0 -285
  1432. paddlex/ppdet/modeling/heads/centernet_head.py +0 -194
  1433. paddlex/ppdet/modeling/heads/face_head.py +0 -113
  1434. paddlex/ppdet/modeling/heads/fcos_head.py +0 -270
  1435. paddlex/ppdet/modeling/heads/keypoint_hrhrnet_head.py +0 -108
  1436. paddlex/ppdet/modeling/heads/mask_head.py +0 -253
  1437. paddlex/ppdet/modeling/heads/roi_extractor.py +0 -111
  1438. paddlex/ppdet/modeling/heads/s2anet_head.py +0 -845
  1439. paddlex/ppdet/modeling/heads/solov2_head.py +0 -537
  1440. paddlex/ppdet/modeling/heads/ssd_head.py +0 -175
  1441. paddlex/ppdet/modeling/heads/ttf_head.py +0 -314
  1442. paddlex/ppdet/modeling/heads/yolo_head.py +0 -124
  1443. paddlex/ppdet/modeling/keypoint_utils.py +0 -302
  1444. paddlex/ppdet/modeling/layers.py +0 -1142
  1445. paddlex/ppdet/modeling/losses/__init__.py +0 -35
  1446. paddlex/ppdet/modeling/losses/ctfocal_loss.py +0 -67
  1447. paddlex/ppdet/modeling/losses/fairmot_loss.py +0 -41
  1448. paddlex/ppdet/modeling/losses/fcos_loss.py +0 -225
  1449. paddlex/ppdet/modeling/losses/iou_aware_loss.py +0 -48
  1450. paddlex/ppdet/modeling/losses/iou_loss.py +0 -210
  1451. paddlex/ppdet/modeling/losses/jde_loss.py +0 -182
  1452. paddlex/ppdet/modeling/losses/keypoint_loss.py +0 -228
  1453. paddlex/ppdet/modeling/losses/solov2_loss.py +0 -101
  1454. paddlex/ppdet/modeling/losses/ssd_loss.py +0 -163
  1455. paddlex/ppdet/modeling/losses/yolo_loss.py +0 -212
  1456. paddlex/ppdet/modeling/mot/__init__.py +0 -25
  1457. paddlex/ppdet/modeling/mot/matching/__init__.py +0 -19
  1458. paddlex/ppdet/modeling/mot/matching/deepsort_matching.py +0 -382
  1459. paddlex/ppdet/modeling/mot/matching/jde_matching.py +0 -145
  1460. paddlex/ppdet/modeling/mot/motion/__init__.py +0 -17
  1461. paddlex/ppdet/modeling/mot/motion/kalman_filter.py +0 -270
  1462. paddlex/ppdet/modeling/mot/tracker/__init__.py +0 -23
  1463. paddlex/ppdet/modeling/mot/tracker/base_jde_tracker.py +0 -267
  1464. paddlex/ppdet/modeling/mot/tracker/base_sde_tracker.py +0 -145
  1465. paddlex/ppdet/modeling/mot/tracker/deepsort_tracker.py +0 -165
  1466. paddlex/ppdet/modeling/mot/tracker/jde_tracker.py +0 -262
  1467. paddlex/ppdet/modeling/mot/utils.py +0 -181
  1468. paddlex/ppdet/modeling/mot/visualization.py +0 -130
  1469. paddlex/ppdet/modeling/necks/__init__.py +0 -25
  1470. paddlex/ppdet/modeling/necks/centernet_fpn.py +0 -185
  1471. paddlex/ppdet/modeling/necks/fpn.py +0 -233
  1472. paddlex/ppdet/modeling/necks/hrfpn.py +0 -131
  1473. paddlex/ppdet/modeling/necks/ttf_fpn.py +0 -243
  1474. paddlex/ppdet/modeling/necks/yolo_fpn.py +0 -1034
  1475. paddlex/ppdet/modeling/ops.py +0 -1599
  1476. paddlex/ppdet/modeling/post_process.py +0 -449
  1477. paddlex/ppdet/modeling/proposal_generator/__init__.py +0 -2
  1478. paddlex/ppdet/modeling/proposal_generator/anchor_generator.py +0 -135
  1479. paddlex/ppdet/modeling/proposal_generator/proposal_generator.py +0 -81
  1480. paddlex/ppdet/modeling/proposal_generator/rpn_head.py +0 -269
  1481. paddlex/ppdet/modeling/proposal_generator/target.py +0 -671
  1482. paddlex/ppdet/modeling/proposal_generator/target_layer.py +0 -476
  1483. paddlex/ppdet/modeling/reid/__init__.py +0 -23
  1484. paddlex/ppdet/modeling/reid/fairmot_embedding_head.py +0 -117
  1485. paddlex/ppdet/modeling/reid/jde_embedding_head.py +0 -189
  1486. paddlex/ppdet/modeling/reid/pyramidal_embedding.py +0 -151
  1487. paddlex/ppdet/modeling/reid/resnet.py +0 -320
  1488. paddlex/ppdet/modeling/shape_spec.py +0 -33
  1489. paddlex/ppdet/modeling/tests/__init__.py +0 -13
  1490. paddlex/ppdet/modeling/tests/test_architectures.py +0 -59
  1491. paddlex/ppdet/modeling/tests/test_base.py +0 -75
  1492. paddlex/ppdet/modeling/tests/test_ops.py +0 -839
  1493. paddlex/ppdet/modeling/tests/test_yolov3_loss.py +0 -420
  1494. paddlex/ppdet/optimizer.py +0 -285
  1495. paddlex/ppdet/slim/__init__.py +0 -62
  1496. paddlex/ppdet/slim/distill.py +0 -111
  1497. paddlex/ppdet/slim/prune.py +0 -85
  1498. paddlex/ppdet/slim/quant.py +0 -52
  1499. paddlex/ppdet/utils/__init__.py +0 -13
  1500. paddlex/ppdet/utils/check.py +0 -93
  1501. paddlex/ppdet/utils/checkpoint.py +0 -216
  1502. paddlex/ppdet/utils/cli.py +0 -151
  1503. paddlex/ppdet/utils/colormap.py +0 -56
  1504. paddlex/ppdet/utils/download.py +0 -477
  1505. paddlex/ppdet/utils/logger.py +0 -71
  1506. paddlex/ppdet/utils/stats.py +0 -95
  1507. paddlex/ppdet/utils/visualizer.py +0 -292
  1508. paddlex/ppdet/utils/voc_utils.py +0 -87
  1509. paddlex/seg.py +0 -38
  1510. paddlex/tools/__init__.py +0 -16
  1511. paddlex/tools/convert.py +0 -52
  1512. paddlex/tools/dataset_conversion/__init__.py +0 -24
  1513. paddlex/tools/dataset_conversion/x2coco.py +0 -379
  1514. paddlex/tools/dataset_conversion/x2imagenet.py +0 -82
  1515. paddlex/tools/dataset_conversion/x2seg.py +0 -343
  1516. paddlex/tools/dataset_conversion/x2voc.py +0 -230
  1517. paddlex/tools/dataset_split/__init__.py +0 -23
  1518. paddlex/tools/dataset_split/coco_split.py +0 -69
  1519. paddlex/tools/dataset_split/imagenet_split.py +0 -75
  1520. paddlex/tools/dataset_split/seg_split.py +0 -96
  1521. paddlex/tools/dataset_split/utils.py +0 -75
  1522. paddlex/tools/dataset_split/voc_split.py +0 -91
  1523. paddlex/tools/split.py +0 -41
  1524. paddlex/utils/checkpoint.py +0 -439
  1525. paddlex/utils/shm.py +0 -67
  1526. paddlex/utils/stats.py +0 -68
  1527. paddlex/utils/utils.py +0 -140
  1528. paddlex-2.0.0rc4.dist-info/LICENSE +0 -201
  1529. paddlex-2.0.0rc4.dist-info/METADATA +0 -29
  1530. paddlex-2.0.0rc4.dist-info/RECORD +0 -445
  1531. paddlex-2.0.0rc4.dist-info/WHEEL +0 -5
  1532. paddlex-2.0.0rc4.dist-info/entry_points.txt +0 -3
  1533. paddlex-2.0.0rc4.dist-info/top_level.txt +0 -2
@@ -1,1747 +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
- from __future__ import absolute_import
16
-
17
- import collections
18
- import copy
19
- import os
20
- import os.path as osp
21
- import six
22
- import numpy as np
23
- import paddle
24
- from paddle.static import InputSpec
25
- import paddlex.ppdet as ppdet
26
- from paddlex.ppdet.modeling.proposal_generator.target_layer import BBoxAssigner, MaskAssigner
27
- import paddlex
28
- import paddlex.utils.logging as logging
29
- from paddlex.cv.transforms.operators import _NormalizeBox, _PadBox, _BboxXYXY2XYWH, Resize, Padding
30
- from paddlex.cv.transforms.batch_operators import BatchCompose, BatchRandomResize, BatchRandomResizeByShort, _BatchPadding, _Gt2YoloTarget
31
- from paddlex.cv.transforms import arrange_transforms
32
- from .base import BaseModel
33
- from .utils.det_metrics import VOCMetric, COCOMetric
34
- from .utils.ema import ExponentialMovingAverage
35
- from paddlex.utils.checkpoint import det_pretrain_weights_dict
36
-
37
- __all__ = [
38
- "YOLOv3", "FasterRCNN", "PPYOLO", "PPYOLOTiny", "PPYOLOv2", "MaskRCNN"
39
- ]
40
-
41
-
42
- class BaseDetector(BaseModel):
43
- def __init__(self, model_name, num_classes=80, **params):
44
- self.init_params.update(locals())
45
- super(BaseDetector, self).__init__('detector')
46
- if not hasattr(ppdet.modeling, model_name):
47
- raise Exception("ERROR: There's no model named {}.".format(
48
- model_name))
49
-
50
- self.model_name = model_name
51
- self.num_classes = num_classes
52
- self.labels = None
53
- self.net = self.build_net(**params)
54
-
55
- def build_net(self, **params):
56
- with paddle.utils.unique_name.guard():
57
- net = ppdet.modeling.__dict__[self.model_name](**params)
58
- return net
59
-
60
- def _fix_transforms_shape(self, image_shape):
61
- raise NotImplementedError("_fix_transforms_shape: not implemented!")
62
-
63
- def _define_input_spec(self, image_shape):
64
- input_spec = [{
65
- "image": InputSpec(
66
- shape=image_shape, name='image', dtype='float32'),
67
- "im_shape": InputSpec(
68
- shape=[image_shape[0], 2], name='im_shape', dtype='float32'),
69
- "scale_factor": InputSpec(
70
- shape=[image_shape[0], 2],
71
- name='scale_factor',
72
- dtype='float32')
73
- }]
74
- return input_spec
75
-
76
- def _check_image_shape(self, image_shape):
77
- if len(image_shape) == 2:
78
- image_shape = [1, 3] + image_shape
79
- if image_shape[-2] % 32 > 0 or image_shape[-1] % 32 > 0:
80
- raise Exception(
81
- "Height and width in fixed_input_shape must be a multiple of 32, but received {}.".
82
- format(image_shape[-2:]))
83
- return image_shape
84
-
85
- def _get_test_inputs(self, image_shape):
86
- if image_shape is not None:
87
- image_shape = self._check_image_shape(image_shape)
88
- self._fix_transforms_shape(image_shape[-2:])
89
- else:
90
- image_shape = [None, 3, -1, -1]
91
- self.fixed_input_shape = image_shape
92
-
93
- return self._define_input_spec(image_shape)
94
-
95
- def _get_backbone(self, backbone_name, **params):
96
- backbone = getattr(ppdet.modeling, backbone_name)(**params)
97
- return backbone
98
-
99
- def run(self, net, inputs, mode):
100
- net_out = net(inputs)
101
- if mode in ['train', 'eval']:
102
- outputs = net_out
103
- else:
104
- for key in ['im_shape', 'scale_factor']:
105
- net_out[key] = inputs[key]
106
- outputs = dict()
107
- for key in net_out:
108
- outputs[key] = net_out[key].numpy()
109
-
110
- return outputs
111
-
112
- def default_optimizer(self, parameters, learning_rate, warmup_steps,
113
- warmup_start_lr, lr_decay_epochs, lr_decay_gamma,
114
- num_steps_each_epoch):
115
- boundaries = [b * num_steps_each_epoch for b in lr_decay_epochs]
116
- values = [(lr_decay_gamma**i) * learning_rate
117
- for i in range(len(lr_decay_epochs) + 1)]
118
- scheduler = paddle.optimizer.lr.PiecewiseDecay(
119
- boundaries=boundaries, values=values)
120
- if warmup_steps > 0:
121
- if warmup_steps > lr_decay_epochs[0] * num_steps_each_epoch:
122
- logging.error(
123
- "In function train(), parameters should satisfy: "
124
- "warmup_steps <= lr_decay_epochs[0]*num_samples_in_train_dataset",
125
- exit=False)
126
- logging.error(
127
- "See this doc for more information: "
128
- "https://github.com/PaddlePaddle/PaddleX/blob/develop/docs/appendix/parameters.md#notice",
129
- exit=False)
130
-
131
- scheduler = paddle.optimizer.lr.LinearWarmup(
132
- learning_rate=scheduler,
133
- warmup_steps=warmup_steps,
134
- start_lr=warmup_start_lr,
135
- end_lr=learning_rate)
136
- optimizer = paddle.optimizer.Momentum(
137
- scheduler,
138
- momentum=.9,
139
- weight_decay=paddle.regularizer.L2Decay(coeff=1e-04),
140
- parameters=parameters)
141
- return optimizer
142
-
143
- def train(self,
144
- num_epochs,
145
- train_dataset,
146
- train_batch_size=64,
147
- eval_dataset=None,
148
- optimizer=None,
149
- save_interval_epochs=1,
150
- log_interval_steps=10,
151
- save_dir='output',
152
- pretrain_weights='IMAGENET',
153
- learning_rate=.001,
154
- warmup_steps=0,
155
- warmup_start_lr=0.0,
156
- lr_decay_epochs=(216, 243),
157
- lr_decay_gamma=0.1,
158
- metric=None,
159
- use_ema=False,
160
- early_stop=False,
161
- early_stop_patience=5,
162
- use_vdl=True,
163
- resume_checkpoint=None):
164
- """
165
- Train the model.
166
- Args:
167
- num_epochs(int): The number of epochs.
168
- train_dataset(paddlex.dataset): Training dataset.
169
- train_batch_size(int, optional): Total batch size among all cards used in training. Defaults to 64.
170
- eval_dataset(paddlex.dataset, optional):
171
- Evaluation dataset. If None, the model will not be evaluated during training process. Defaults to None.
172
- optimizer(paddle.optimizer.Optimizer or None, optional):
173
- Optimizer used for training. If None, a default optimizer is used. Defaults to None.
174
- save_interval_epochs(int, optional): Epoch interval for saving the model. Defaults to 1.
175
- log_interval_steps(int, optional): Step interval for printing training information. Defaults to 10.
176
- save_dir(str, optional): Directory to save the model. Defaults to 'output'.
177
- pretrain_weights(str or None, optional):
178
- None or name/path of pretrained weights. If None, no pretrained weights will be loaded. Defaults to 'IMAGENET'.
179
- learning_rate(float, optional): Learning rate for training. Defaults to .001.
180
- warmup_steps(int, optional): The number of steps of warm-up training. Defaults to 0.
181
- warmup_start_lr(float, optional): Start learning rate of warm-up training. Defaults to 0..
182
- lr_decay_epochs(list or tuple, optional): Epoch milestones for learning rate decay. Defaults to (216, 243).
183
- lr_decay_gamma(float, optional): Gamma coefficient of learning rate decay. Defaults to .1.
184
- metric({'VOC', 'COCO', None}, optional):
185
- Evaluation metric. If None, determine the metric according to the dataset format. Defaults to None.
186
- use_ema(bool, optional): Whether to use exponential moving average strategy. Defaults to False.
187
- early_stop(bool, optional): Whether to adopt early stop strategy. Defaults to False.
188
- early_stop_patience(int, optional): Early stop patience. Defaults to 5.
189
- use_vdl(bool, optional): Whether to use VisualDL to monitor the training process. Defaults to True.
190
- resume_checkpoint(str or None, optional): The path of the checkpoint to resume training from.
191
- If None, no training checkpoint will be resumed. At most one of `resume_checkpoint` and
192
- `pretrain_weights` can be set simultaneously. Defaults to None.
193
-
194
- """
195
- if pretrain_weights is not None and resume_checkpoint is not None:
196
- logging.error(
197
- "pretrain_weights and resume_checkpoint cannot be set simultaneously.",
198
- exit=True)
199
- if train_dataset.__class__.__name__ == 'VOCDetection':
200
- train_dataset.data_fields = {
201
- 'im_id', 'image_shape', 'image', 'gt_bbox', 'gt_class',
202
- 'difficult'
203
- }
204
- elif train_dataset.__class__.__name__ == 'CocoDetection':
205
- if self.__class__.__name__ == 'MaskRCNN':
206
- train_dataset.data_fields = {
207
- 'im_id', 'image_shape', 'image', 'gt_bbox', 'gt_class',
208
- 'gt_poly', 'is_crowd'
209
- }
210
- else:
211
- train_dataset.data_fields = {
212
- 'im_id', 'image_shape', 'image', 'gt_bbox', 'gt_class',
213
- 'is_crowd'
214
- }
215
-
216
- if metric is None:
217
- if eval_dataset.__class__.__name__ == 'VOCDetection':
218
- self.metric = 'voc'
219
- elif eval_dataset.__class__.__name__ == 'CocoDetection':
220
- self.metric = 'coco'
221
- else:
222
- assert metric.lower() in ['coco', 'voc'], \
223
- "Evaluation metric {} is not supported, please choose form 'COCO' and 'VOC'"
224
- self.metric = metric.lower()
225
-
226
- self.labels = train_dataset.labels
227
- self.num_max_boxes = train_dataset.num_max_boxes
228
- train_dataset.batch_transforms = self._compose_batch_transform(
229
- train_dataset.transforms, mode='train')
230
-
231
- # build optimizer if not defined
232
- if optimizer is None:
233
- num_steps_each_epoch = len(train_dataset) // train_batch_size
234
- self.optimizer = self.default_optimizer(
235
- parameters=self.net.parameters(),
236
- learning_rate=learning_rate,
237
- warmup_steps=warmup_steps,
238
- warmup_start_lr=warmup_start_lr,
239
- lr_decay_epochs=lr_decay_epochs,
240
- lr_decay_gamma=lr_decay_gamma,
241
- num_steps_each_epoch=num_steps_each_epoch)
242
- else:
243
- self.optimizer = optimizer
244
-
245
- # initiate weights
246
- if pretrain_weights is not None and not osp.exists(pretrain_weights):
247
- if pretrain_weights not in det_pretrain_weights_dict['_'.join(
248
- [self.model_name, self.backbone_name])]:
249
- logging.warning(
250
- "Path of pretrain_weights('{}') does not exist!".format(
251
- pretrain_weights))
252
- pretrain_weights = det_pretrain_weights_dict['_'.join(
253
- [self.model_name, self.backbone_name])][0]
254
- logging.warning("Pretrain_weights is forcibly set to '{}'. "
255
- "If you don't want to use pretrain weights, "
256
- "set pretrain_weights to be None.".format(
257
- pretrain_weights))
258
- elif pretrain_weights is not None and osp.exists(pretrain_weights):
259
- if osp.splitext(pretrain_weights)[-1] != '.pdparams':
260
- logging.error(
261
- "Invalid pretrain weights. Please specify a '.pdparams' file.",
262
- exit=True)
263
- pretrained_dir = osp.join(save_dir, 'pretrain')
264
- self.net_initialize(
265
- pretrain_weights=pretrain_weights,
266
- save_dir=pretrained_dir,
267
- resume_checkpoint=resume_checkpoint)
268
-
269
- if use_ema:
270
- ema = ExponentialMovingAverage(
271
- decay=.9998, model=self.net, use_thres_step=True)
272
- else:
273
- ema = None
274
- # start train loop
275
- self.train_loop(
276
- num_epochs=num_epochs,
277
- train_dataset=train_dataset,
278
- train_batch_size=train_batch_size,
279
- eval_dataset=eval_dataset,
280
- save_interval_epochs=save_interval_epochs,
281
- log_interval_steps=log_interval_steps,
282
- save_dir=save_dir,
283
- ema=ema,
284
- early_stop=early_stop,
285
- early_stop_patience=early_stop_patience,
286
- use_vdl=use_vdl)
287
-
288
- def quant_aware_train(self,
289
- num_epochs,
290
- train_dataset,
291
- train_batch_size=64,
292
- eval_dataset=None,
293
- optimizer=None,
294
- save_interval_epochs=1,
295
- log_interval_steps=10,
296
- save_dir='output',
297
- learning_rate=.00001,
298
- warmup_steps=0,
299
- warmup_start_lr=0.0,
300
- lr_decay_epochs=(216, 243),
301
- lr_decay_gamma=0.1,
302
- metric=None,
303
- use_ema=False,
304
- early_stop=False,
305
- early_stop_patience=5,
306
- use_vdl=True,
307
- resume_checkpoint=None,
308
- quant_config=None):
309
- """
310
- Quantization-aware training.
311
- Args:
312
- num_epochs(int): The number of epochs.
313
- train_dataset(paddlex.dataset): Training dataset.
314
- train_batch_size(int, optional): Total batch size among all cards used in training. Defaults to 64.
315
- eval_dataset(paddlex.dataset, optional):
316
- Evaluation dataset. If None, the model will not be evaluated during training process. Defaults to None.
317
- optimizer(paddle.optimizer.Optimizer or None, optional):
318
- Optimizer used for training. If None, a default optimizer is used. Defaults to None.
319
- save_interval_epochs(int, optional): Epoch interval for saving the model. Defaults to 1.
320
- log_interval_steps(int, optional): Step interval for printing training information. Defaults to 10.
321
- save_dir(str, optional): Directory to save the model. Defaults to 'output'.
322
- learning_rate(float, optional): Learning rate for training. Defaults to .001.
323
- warmup_steps(int, optional): The number of steps of warm-up training. Defaults to 0.
324
- warmup_start_lr(float, optional): Start learning rate of warm-up training. Defaults to 0..
325
- lr_decay_epochs(list or tuple, optional): Epoch milestones for learning rate decay. Defaults to (216, 243).
326
- lr_decay_gamma(float, optional): Gamma coefficient of learning rate decay. Defaults to .1.
327
- metric({'VOC', 'COCO', None}, optional):
328
- Evaluation metric. If None, determine the metric according to the dataset format. Defaults to None.
329
- use_ema(bool, optional): Whether to use exponential moving average strategy. Defaults to False.
330
- early_stop(bool, optional): Whether to adopt early stop strategy. Defaults to False.
331
- early_stop_patience(int, optional): Early stop patience. Defaults to 5.
332
- use_vdl(bool, optional): Whether to use VisualDL to monitor the training process. Defaults to True.
333
- quant_config(dict or None, optional): Quantization configuration. If None, a default rule of thumb
334
- configuration will be used. Defaults to None.
335
- resume_checkpoint(str or None, optional): The path of the checkpoint to resume quantization-aware training
336
- from. If None, no training checkpoint will be resumed. Defaults to None.
337
-
338
- """
339
- self._prepare_qat(quant_config)
340
- self.train(
341
- num_epochs=num_epochs,
342
- train_dataset=train_dataset,
343
- train_batch_size=train_batch_size,
344
- eval_dataset=eval_dataset,
345
- optimizer=optimizer,
346
- save_interval_epochs=save_interval_epochs,
347
- log_interval_steps=log_interval_steps,
348
- save_dir=save_dir,
349
- pretrain_weights=None,
350
- learning_rate=learning_rate,
351
- warmup_steps=warmup_steps,
352
- warmup_start_lr=warmup_start_lr,
353
- lr_decay_epochs=lr_decay_epochs,
354
- lr_decay_gamma=lr_decay_gamma,
355
- metric=metric,
356
- use_ema=use_ema,
357
- early_stop=early_stop,
358
- early_stop_patience=early_stop_patience,
359
- use_vdl=use_vdl,
360
- resume_checkpoint=resume_checkpoint)
361
-
362
- def evaluate(self,
363
- eval_dataset,
364
- batch_size=1,
365
- metric=None,
366
- return_details=False):
367
- """
368
- Evaluate the model.
369
- Args:
370
- eval_dataset(paddlex.dataset): Evaluation dataset.
371
- batch_size(int, optional): Total batch size among all cards used for evaluation. Defaults to 1.
372
- metric({'VOC', 'COCO', None}, optional):
373
- Evaluation metric. If None, determine the metric according to the dataset format. Defaults to None.
374
- return_details(bool, optional): Whether to return evaluation details. Defaults to False.
375
-
376
- Returns:
377
- collections.OrderedDict with key-value pairs: {"mAP(0.50, 11point)":`mean average precision`}.
378
-
379
- """
380
-
381
- if metric is None:
382
- if not hasattr(self, 'metric'):
383
- if eval_dataset.__class__.__name__ == 'VOCDetection':
384
- self.metric = 'voc'
385
- elif eval_dataset.__class__.__name__ == 'CocoDetection':
386
- self.metric = 'coco'
387
- else:
388
- assert metric.lower() in ['coco', 'voc'], \
389
- "Evaluation metric {} is not supported, please choose form 'COCO' and 'VOC'"
390
- self.metric = metric.lower()
391
-
392
- if self.metric == 'voc':
393
- eval_dataset.data_fields = {
394
- 'im_id', 'image_shape', 'image', 'gt_bbox', 'gt_class',
395
- 'difficult'
396
- }
397
- elif self.metric == 'coco':
398
- if self.__class__.__name__ == 'MaskRCNN':
399
- eval_dataset.data_fields = {
400
- 'im_id', 'image_shape', 'image', 'gt_bbox', 'gt_class',
401
- 'gt_poly', 'is_crowd'
402
- }
403
- else:
404
- eval_dataset.data_fields = {
405
- 'im_id', 'image_shape', 'image', 'gt_bbox', 'gt_class',
406
- 'is_crowd'
407
- }
408
- eval_dataset.batch_transforms = self._compose_batch_transform(
409
- eval_dataset.transforms, mode='eval')
410
- arrange_transforms(
411
- model_type=self.model_type,
412
- transforms=eval_dataset.transforms,
413
- mode='eval')
414
-
415
- self.net.eval()
416
- nranks = paddle.distributed.get_world_size()
417
- local_rank = paddle.distributed.get_rank()
418
- if nranks > 1:
419
- # Initialize parallel environment if not done.
420
- if not paddle.distributed.parallel.parallel_helper._is_parallel_ctx_initialized(
421
- ):
422
- paddle.distributed.init_parallel_env()
423
-
424
- if batch_size > 1:
425
- logging.warning(
426
- "Detector only supports single card evaluation with batch_size=1 "
427
- "during evaluation, so batch_size is forcibly set to 1.")
428
- batch_size = 1
429
-
430
- if nranks < 2 or local_rank == 0:
431
- self.eval_data_loader = self.build_data_loader(
432
- eval_dataset, batch_size=batch_size, mode='eval')
433
- is_bbox_normalized = False
434
- if eval_dataset.batch_transforms is not None:
435
- is_bbox_normalized = any(
436
- isinstance(t, _NormalizeBox)
437
- for t in eval_dataset.batch_transforms.batch_transforms)
438
- if self.metric == 'voc':
439
- eval_metric = VOCMetric(
440
- labels=eval_dataset.labels,
441
- coco_gt=copy.deepcopy(eval_dataset.coco_gt),
442
- is_bbox_normalized=is_bbox_normalized,
443
- classwise=False)
444
- else:
445
- eval_metric = COCOMetric(
446
- coco_gt=copy.deepcopy(eval_dataset.coco_gt),
447
- classwise=False)
448
- scores = collections.OrderedDict()
449
- logging.info(
450
- "Start to evaluate(total_samples={}, total_steps={})...".
451
- format(eval_dataset.num_samples, eval_dataset.num_samples))
452
- with paddle.no_grad():
453
- for step, data in enumerate(self.eval_data_loader):
454
- outputs = self.run(self.net, data, 'eval')
455
- eval_metric.update(data, outputs)
456
- eval_metric.accumulate()
457
- self.eval_details = eval_metric.details
458
- scores.update(eval_metric.get())
459
- eval_metric.reset()
460
-
461
- if return_details:
462
- return scores, self.eval_details
463
- return scores
464
-
465
- def predict(self, img_file, transforms=None):
466
- """
467
- Do inference.
468
- Args:
469
- img_file(List[np.ndarray or str], str or np.ndarray): img_file(list or str or np.array):
470
- Image path or decoded image data in a BGR format, which also could constitute a list,
471
- meaning all images to be predicted as a mini-batch.
472
- transforms(paddlex.transforms.Compose or None, optional):
473
- Transforms for inputs. If None, the transforms for evaluation process will be used. Defaults to None.
474
-
475
- Returns:
476
- If img_file is a string or np.array, the result is a list of dict with key-value pairs:
477
- {"category_id": `category_id`, "category": `category`, "bbox": `[x, y, w, h]`, "score": `score`}.
478
- If img_file is a list, the result is a list composed of dicts with the corresponding fields:
479
- category_id(int): the predicted category ID. 0 represents the first category in the dataset, and so on.
480
- category(str): category name
481
- bbox(list): bounding box in [x, y, w, h] format
482
- score(str): confidence
483
- mask(dict): Only for instance segmentation task. Mask of the object in RLE format
484
-
485
- """
486
- if transforms is None and not hasattr(self, 'test_transforms'):
487
- raise Exception("transforms need to be defined, now is None.")
488
- if transforms is None:
489
- transforms = self.test_transforms
490
- if isinstance(img_file, (str, np.ndarray)):
491
- images = [img_file]
492
- else:
493
- images = img_file
494
-
495
- batch_samples = self._preprocess(images, transforms)
496
- self.net.eval()
497
- outputs = self.run(self.net, batch_samples, 'test')
498
- prediction = self._postprocess(outputs)
499
-
500
- if isinstance(img_file, (str, np.ndarray)):
501
- prediction = prediction[0]
502
- return prediction
503
-
504
- def _preprocess(self, images, transforms):
505
- arrange_transforms(
506
- model_type=self.model_type, transforms=transforms, mode='test')
507
- batch_samples = list()
508
- for im in images:
509
- sample = {'image': im}
510
- batch_samples.append(transforms(sample))
511
- batch_transforms = self._compose_batch_transform(transforms, 'test')
512
- batch_samples = batch_transforms(batch_samples)
513
- for k, v in batch_samples.items():
514
- batch_samples[k] = paddle.to_tensor(v)
515
- return batch_samples
516
-
517
- def _postprocess(self, batch_pred):
518
- infer_result = {}
519
- if 'bbox' in batch_pred:
520
- bboxes = batch_pred['bbox']
521
- bbox_nums = batch_pred['bbox_num']
522
- det_res = []
523
- k = 0
524
- for i in range(len(bbox_nums)):
525
- det_nums = bbox_nums[i]
526
- for j in range(det_nums):
527
- dt = bboxes[k]
528
- k = k + 1
529
- num_id, score, xmin, ymin, xmax, ymax = dt.tolist()
530
- if int(num_id) < 0:
531
- continue
532
- category = self.labels[int(num_id)]
533
- w = xmax - xmin
534
- h = ymax - ymin
535
- bbox = [xmin, ymin, w, h]
536
- dt_res = {
537
- 'category_id': int(num_id),
538
- 'category': category,
539
- 'bbox': bbox,
540
- 'score': score
541
- }
542
- det_res.append(dt_res)
543
- infer_result['bbox'] = det_res
544
-
545
- if 'mask' in batch_pred:
546
- masks = batch_pred['mask']
547
- bboxes = batch_pred['bbox']
548
- mask_nums = batch_pred['bbox_num']
549
- seg_res = []
550
- k = 0
551
- for i in range(len(mask_nums)):
552
- det_nums = mask_nums[i]
553
- for j in range(det_nums):
554
- mask = masks[k].astype(np.uint8)
555
- score = float(bboxes[k][1])
556
- label = int(bboxes[k][0])
557
- k = k + 1
558
- if label == -1:
559
- continue
560
- category = self.labels[int(label)]
561
- import pycocotools.mask as mask_util
562
- rle = mask_util.encode(
563
- np.array(
564
- mask[:, :, None], order="F", dtype="uint8"))[0]
565
- if six.PY3:
566
- if 'counts' in rle:
567
- rle['counts'] = rle['counts'].decode("utf8")
568
- sg_res = {
569
- 'category_id': int(label),
570
- 'category': category,
571
- 'mask': rle,
572
- 'score': score
573
- }
574
- seg_res.append(sg_res)
575
- infer_result['mask'] = seg_res
576
-
577
- bbox_num = batch_pred['bbox_num']
578
- results = []
579
- start = 0
580
- for num in bbox_num:
581
- end = start + num
582
- curr_res = infer_result['bbox'][start:end]
583
- if 'mask' in infer_result:
584
- mask_res = infer_result['mask'][start:end]
585
- for box, mask in zip(curr_res, mask_res):
586
- box.update(mask)
587
- results.append(curr_res)
588
- start = end
589
-
590
- return results
591
-
592
-
593
- class YOLOv3(BaseDetector):
594
- def __init__(self,
595
- num_classes=80,
596
- backbone='MobileNetV1',
597
- anchors=[[10, 13], [16, 30], [33, 23], [30, 61], [62, 45],
598
- [59, 119], [116, 90], [156, 198], [373, 326]],
599
- anchor_masks=[[6, 7, 8], [3, 4, 5], [0, 1, 2]],
600
- ignore_threshold=0.7,
601
- nms_score_threshold=0.01,
602
- nms_topk=1000,
603
- nms_keep_topk=100,
604
- nms_iou_threshold=0.45,
605
- label_smooth=False):
606
- self.init_params = locals()
607
- if backbone not in [
608
- 'MobileNetV1', 'MobileNetV1_ssld', 'MobileNetV3',
609
- 'MobileNetV3_ssld', 'DarkNet53', 'ResNet50_vd_dcn', 'ResNet34'
610
- ]:
611
- raise ValueError(
612
- "backbone: {} is not supported. Please choose one of "
613
- "('MobileNetV1', 'MobileNetV1_ssld', 'MobileNetV3', 'MobileNetV3_ssld', 'DarkNet53', 'ResNet50_vd_dcn', 'ResNet34')".
614
- format(backbone))
615
-
616
- if paddlex.env_info['place'] == 'gpu' and paddlex.env_info[
617
- 'num'] > 1 and not os.environ.get('PADDLEX_EXPORT_STAGE'):
618
- norm_type = 'sync_bn'
619
- else:
620
- norm_type = 'bn'
621
-
622
- self.backbone_name = backbone
623
- if 'MobileNetV1' in backbone:
624
- norm_type = 'bn'
625
- backbone = self._get_backbone('MobileNet', norm_type=norm_type)
626
- elif 'MobileNetV3' in backbone:
627
- backbone = self._get_backbone(
628
- 'MobileNetV3', norm_type=norm_type, feature_maps=[7, 13, 16])
629
- elif backbone == 'ResNet50_vd_dcn':
630
- backbone = self._get_backbone(
631
- 'ResNet',
632
- norm_type=norm_type,
633
- variant='d',
634
- return_idx=[1, 2, 3],
635
- dcn_v2_stages=[3],
636
- freeze_at=-1,
637
- freeze_norm=False)
638
- elif backbone == 'ResNet34':
639
- backbone = self._get_backbone(
640
- 'ResNet',
641
- depth=34,
642
- norm_type=norm_type,
643
- return_idx=[1, 2, 3],
644
- freeze_at=-1,
645
- freeze_norm=False,
646
- norm_decay=0.)
647
- else:
648
- backbone = self._get_backbone('DarkNet', norm_type=norm_type)
649
-
650
- neck = ppdet.modeling.YOLOv3FPN(
651
- norm_type=norm_type,
652
- in_channels=[i.channels for i in backbone.out_shape])
653
- loss = ppdet.modeling.YOLOv3Loss(
654
- num_classes=num_classes,
655
- ignore_thresh=ignore_threshold,
656
- label_smooth=label_smooth)
657
- yolo_head = ppdet.modeling.YOLOv3Head(
658
- in_channels=[i.channels for i in neck.out_shape],
659
- anchors=anchors,
660
- anchor_masks=anchor_masks,
661
- num_classes=num_classes,
662
- loss=loss)
663
- post_process = ppdet.modeling.BBoxPostProcess(
664
- decode=ppdet.modeling.YOLOBox(num_classes=num_classes),
665
- nms=ppdet.modeling.MultiClassNMS(
666
- score_threshold=nms_score_threshold,
667
- nms_top_k=nms_topk,
668
- keep_top_k=nms_keep_topk,
669
- nms_threshold=nms_iou_threshold))
670
- params = {
671
- 'backbone': backbone,
672
- 'neck': neck,
673
- 'yolo_head': yolo_head,
674
- 'post_process': post_process
675
- }
676
- super(YOLOv3, self).__init__(
677
- model_name='YOLOv3', num_classes=num_classes, **params)
678
- self.anchors = anchors
679
- self.anchor_masks = anchor_masks
680
-
681
- def _compose_batch_transform(self, transforms, mode='train'):
682
- if mode == 'train':
683
- default_batch_transforms = [
684
- _BatchPadding(pad_to_stride=-1), _NormalizeBox(),
685
- _PadBox(getattr(self, 'num_max_boxes', 50)), _BboxXYXY2XYWH(),
686
- _Gt2YoloTarget(
687
- anchor_masks=self.anchor_masks,
688
- anchors=self.anchors,
689
- downsample_ratios=getattr(self, 'downsample_ratios',
690
- [32, 16, 8]),
691
- num_classes=self.num_classes)
692
- ]
693
- else:
694
- default_batch_transforms = [_BatchPadding(pad_to_stride=-1)]
695
- if mode == 'eval' and self.metric == 'voc':
696
- collate_batch = False
697
- else:
698
- collate_batch = True
699
-
700
- custom_batch_transforms = []
701
- for i, op in enumerate(transforms.transforms):
702
- if isinstance(op, (BatchRandomResize, BatchRandomResizeByShort)):
703
- if mode != 'train':
704
- raise Exception(
705
- "{} cannot be present in the {} transforms. ".format(
706
- op.__class__.__name__, mode) +
707
- "Please check the {} transforms.".format(mode))
708
- custom_batch_transforms.insert(0, copy.deepcopy(op))
709
-
710
- batch_transforms = BatchCompose(
711
- custom_batch_transforms + default_batch_transforms,
712
- collate_batch=collate_batch)
713
-
714
- return batch_transforms
715
-
716
- def _fix_transforms_shape(self, image_shape):
717
- if hasattr(self, 'test_transforms'):
718
- if self.test_transforms is not None:
719
- has_resize_op = False
720
- resize_op_idx = -1
721
- normalize_op_idx = len(self.test_transforms.transforms)
722
- for idx, op in enumerate(self.test_transforms.transforms):
723
- name = op.__class__.__name__
724
- if name == 'Resize':
725
- has_resize_op = True
726
- resize_op_idx = idx
727
- if name == 'Normalize':
728
- normalize_op_idx = idx
729
-
730
- if not has_resize_op:
731
- self.test_transforms.transforms.insert(
732
- normalize_op_idx,
733
- Resize(
734
- target_size=image_shape, interp='CUBIC'))
735
- else:
736
- self.test_transforms.transforms[
737
- resize_op_idx].target_size = image_shape
738
-
739
-
740
- class FasterRCNN(BaseDetector):
741
- def __init__(self,
742
- num_classes=80,
743
- backbone='ResNet50',
744
- with_fpn=True,
745
- with_dcn=False,
746
- aspect_ratios=[0.5, 1.0, 2.0],
747
- anchor_sizes=[[32], [64], [128], [256], [512]],
748
- keep_top_k=100,
749
- nms_threshold=0.5,
750
- score_threshold=0.05,
751
- fpn_num_channels=256,
752
- rpn_batch_size_per_im=256,
753
- rpn_fg_fraction=0.5,
754
- test_pre_nms_top_n=None,
755
- test_post_nms_top_n=1000):
756
- self.init_params = locals()
757
- if backbone not in [
758
- 'ResNet50', 'ResNet50_vd', 'ResNet50_vd_ssld', 'ResNet34',
759
- 'ResNet34_vd', 'ResNet101', 'ResNet101_vd', 'HRNet_W18'
760
- ]:
761
- raise ValueError(
762
- "backbone: {} is not supported. Please choose one of "
763
- "('ResNet50', 'ResNet50_vd', 'ResNet50_vd_ssld', 'ResNet34', 'ResNet34_vd', "
764
- "'ResNet101', 'ResNet101_vd', 'HRNet_W18')".format(backbone))
765
- self.backbone_name = backbone
766
- dcn_v2_stages = [1, 2, 3] if with_dcn else [-1]
767
- if backbone == 'HRNet_W18':
768
- if not with_fpn:
769
- logging.warning(
770
- "Backbone {} should be used along with fpn enabled, 'with_fpn' is forcibly set to True".
771
- format(backbone))
772
- with_fpn = True
773
- if with_dcn:
774
- logging.warning(
775
- "Backbone {} should be used along with dcn disabled, 'with_dcn' is forcibly set to False".
776
- format(backbone))
777
- backbone = self._get_backbone(
778
- 'HRNet', width=18, freeze_at=0, return_idx=[0, 1, 2, 3])
779
- elif backbone == 'ResNet50_vd_ssld':
780
- if not with_fpn:
781
- logging.warning(
782
- "Backbone {} should be used along with fpn enabled, 'with_fpn' is forcibly set to True".
783
- format(backbone))
784
- with_fpn = True
785
- backbone = self._get_backbone(
786
- 'ResNet',
787
- variant='d',
788
- norm_type='bn',
789
- freeze_at=0,
790
- return_idx=[0, 1, 2, 3],
791
- num_stages=4,
792
- lr_mult_list=[0.05, 0.05, 0.1, 0.15],
793
- dcn_v2_stages=dcn_v2_stages)
794
- elif 'ResNet50' in backbone:
795
- if with_fpn:
796
- backbone = self._get_backbone(
797
- 'ResNet',
798
- variant='d' if '_vd' in backbone else 'b',
799
- norm_type='bn',
800
- freeze_at=0,
801
- return_idx=[0, 1, 2, 3],
802
- num_stages=4,
803
- dcn_v2_stages=dcn_v2_stages)
804
- else:
805
- if with_dcn:
806
- logging.warning(
807
- "Backbone {} without fpn should be used along with dcn disabled, 'with_dcn' is forcibly set to False".
808
- format(backbone))
809
- backbone = self._get_backbone(
810
- 'ResNet',
811
- variant='d' if '_vd' in backbone else 'b',
812
- norm_type='bn',
813
- freeze_at=0,
814
- return_idx=[2],
815
- num_stages=3)
816
- elif 'ResNet34' in backbone:
817
- if not with_fpn:
818
- logging.warning(
819
- "Backbone {} should be used along with fpn enabled, 'with_fpn' is forcibly set to True".
820
- format(backbone))
821
- with_fpn = True
822
- backbone = self._get_backbone(
823
- 'ResNet',
824
- depth=34,
825
- variant='d' if 'vd' in backbone else 'b',
826
- norm_type='bn',
827
- freeze_at=0,
828
- return_idx=[0, 1, 2, 3],
829
- num_stages=4,
830
- dcn_v2_stages=dcn_v2_stages)
831
- else:
832
- if not with_fpn:
833
- logging.warning(
834
- "Backbone {} should be used along with fpn enabled, 'with_fpn' is forcibly set to True".
835
- format(backbone))
836
- with_fpn = True
837
- backbone = self._get_backbone(
838
- 'ResNet',
839
- depth=101,
840
- variant='d' if 'vd' in backbone else 'b',
841
- norm_type='bn',
842
- freeze_at=0,
843
- return_idx=[0, 1, 2, 3],
844
- num_stages=4,
845
- dcn_v2_stages=dcn_v2_stages)
846
-
847
- rpn_in_channel = backbone.out_shape[0].channels
848
-
849
- if with_fpn:
850
- self.backbone_name = self.backbone_name + '_fpn'
851
-
852
- if 'HRNet' in self.backbone_name:
853
- neck = ppdet.modeling.HRFPN(
854
- in_channels=[i.channels for i in backbone.out_shape],
855
- out_channel=fpn_num_channels,
856
- spatial_scales=[
857
- 1.0 / i.stride for i in backbone.out_shape
858
- ],
859
- share_conv=False)
860
- else:
861
- neck = ppdet.modeling.FPN(
862
- in_channels=[i.channels for i in backbone.out_shape],
863
- out_channel=fpn_num_channels,
864
- spatial_scales=[
865
- 1.0 / i.stride for i in backbone.out_shape
866
- ])
867
- rpn_in_channel = neck.out_shape[0].channels
868
- anchor_generator_cfg = {
869
- 'aspect_ratios': aspect_ratios,
870
- 'anchor_sizes': anchor_sizes,
871
- 'strides': [4, 8, 16, 32, 64]
872
- }
873
- train_proposal_cfg = {
874
- 'min_size': 0.0,
875
- 'nms_thresh': .7,
876
- 'pre_nms_top_n': 2000,
877
- 'post_nms_top_n': 1000,
878
- 'topk_after_collect': True
879
- }
880
- test_proposal_cfg = {
881
- 'min_size': 0.0,
882
- 'nms_thresh': .7,
883
- 'pre_nms_top_n': 1000
884
- if test_pre_nms_top_n is None else test_pre_nms_top_n,
885
- 'post_nms_top_n': test_post_nms_top_n
886
- }
887
- head = ppdet.modeling.TwoFCHead(
888
- in_channel=neck.out_shape[0].channels, out_channel=1024)
889
- roi_extractor_cfg = {
890
- 'resolution': 7,
891
- 'spatial_scale': [1. / i.stride for i in neck.out_shape],
892
- 'sampling_ratio': 0,
893
- 'aligned': True
894
- }
895
- with_pool = False
896
-
897
- else:
898
- neck = None
899
- anchor_generator_cfg = {
900
- 'aspect_ratios': aspect_ratios,
901
- 'anchor_sizes': anchor_sizes,
902
- 'strides': [16]
903
- }
904
- train_proposal_cfg = {
905
- 'min_size': 0.0,
906
- 'nms_thresh': .7,
907
- 'pre_nms_top_n': 12000,
908
- 'post_nms_top_n': 2000,
909
- 'topk_after_collect': False
910
- }
911
- test_proposal_cfg = {
912
- 'min_size': 0.0,
913
- 'nms_thresh': .7,
914
- 'pre_nms_top_n': 6000
915
- if test_pre_nms_top_n is None else test_pre_nms_top_n,
916
- 'post_nms_top_n': test_post_nms_top_n
917
- }
918
- head = ppdet.modeling.Res5Head()
919
- roi_extractor_cfg = {
920
- 'resolution': 14,
921
- 'spatial_scale': [1. / i.stride for i in backbone.out_shape],
922
- 'sampling_ratio': 0,
923
- 'aligned': True
924
- }
925
- with_pool = True
926
-
927
- rpn_target_assign_cfg = {
928
- 'batch_size_per_im': rpn_batch_size_per_im,
929
- 'fg_fraction': rpn_fg_fraction,
930
- 'negative_overlap': .3,
931
- 'positive_overlap': .7,
932
- 'use_random': True
933
- }
934
-
935
- rpn_head = ppdet.modeling.RPNHead(
936
- anchor_generator=anchor_generator_cfg,
937
- rpn_target_assign=rpn_target_assign_cfg,
938
- train_proposal=train_proposal_cfg,
939
- test_proposal=test_proposal_cfg,
940
- in_channel=rpn_in_channel)
941
-
942
- bbox_assigner = BBoxAssigner(num_classes=num_classes)
943
-
944
- bbox_head = ppdet.modeling.BBoxHead(
945
- head=head,
946
- in_channel=head.out_shape[0].channels,
947
- roi_extractor=roi_extractor_cfg,
948
- with_pool=with_pool,
949
- bbox_assigner=bbox_assigner,
950
- num_classes=num_classes)
951
-
952
- bbox_post_process = ppdet.modeling.BBoxPostProcess(
953
- num_classes=num_classes,
954
- decode=ppdet.modeling.RCNNBox(num_classes=num_classes),
955
- nms=ppdet.modeling.MultiClassNMS(
956
- score_threshold=score_threshold,
957
- keep_top_k=keep_top_k,
958
- nms_threshold=nms_threshold))
959
-
960
- params = {
961
- 'backbone': backbone,
962
- 'neck': neck,
963
- 'rpn_head': rpn_head,
964
- 'bbox_head': bbox_head,
965
- 'bbox_post_process': bbox_post_process
966
- }
967
-
968
- self.with_fpn = with_fpn
969
- super(FasterRCNN, self).__init__(
970
- model_name='FasterRCNN', num_classes=num_classes, **params)
971
-
972
- def _compose_batch_transform(self, transforms, mode='train'):
973
- if mode == 'train':
974
- default_batch_transforms = [
975
- _BatchPadding(pad_to_stride=32 if self.with_fpn else -1)
976
- ]
977
- collate_batch = False
978
- else:
979
- default_batch_transforms = [
980
- _BatchPadding(pad_to_stride=32 if self.with_fpn else -1)
981
- ]
982
- collate_batch = True
983
- custom_batch_transforms = []
984
- for i, op in enumerate(transforms.transforms):
985
- if isinstance(op, (BatchRandomResize, BatchRandomResizeByShort)):
986
- if mode != 'train':
987
- raise Exception(
988
- "{} cannot be present in the {} transforms. ".format(
989
- op.__class__.__name__, mode) +
990
- "Please check the {} transforms.".format(mode))
991
- custom_batch_transforms.insert(0, copy.deepcopy(op))
992
-
993
- batch_transforms = BatchCompose(
994
- custom_batch_transforms + default_batch_transforms,
995
- collate_batch=collate_batch)
996
-
997
- return batch_transforms
998
-
999
- def _fix_transforms_shape(self, image_shape):
1000
- if hasattr(self, 'test_transforms'):
1001
- if self.test_transforms is not None:
1002
- has_resize_op = False
1003
- resize_op_idx = -1
1004
- normalize_op_idx = len(self.test_transforms.transforms)
1005
- for idx, op in enumerate(self.test_transforms.transforms):
1006
- name = op.__class__.__name__
1007
- if name == 'ResizeByShort':
1008
- has_resize_op = True
1009
- resize_op_idx = idx
1010
- if name == 'Normalize':
1011
- normalize_op_idx = idx
1012
-
1013
- if not has_resize_op:
1014
- self.test_transforms.transforms.insert(
1015
- normalize_op_idx,
1016
- Resize(
1017
- target_size=image_shape,
1018
- keep_ratio=True,
1019
- interp='CUBIC'))
1020
- else:
1021
- self.test_transforms.transforms[resize_op_idx] = Resize(
1022
- target_size=image_shape,
1023
- keep_ratio=True,
1024
- interp='CUBIC')
1025
- self.test_transforms.transforms.append(
1026
- Padding(im_padding_value=[0., 0., 0.]))
1027
-
1028
- def _get_test_inputs(self, image_shape):
1029
- if image_shape is not None:
1030
- image_shape = self._check_image_shape(image_shape)
1031
- self._fix_transforms_shape(image_shape[-2:])
1032
- else:
1033
- image_shape = [None, 3, -1, -1]
1034
- if self.with_fpn:
1035
- self.test_transforms.transforms.append(
1036
- Padding(im_padding_value=[0., 0., 0.]))
1037
-
1038
- self.fixed_input_shape = image_shape
1039
- return self._define_input_spec(image_shape)
1040
-
1041
-
1042
- class PPYOLO(YOLOv3):
1043
- def __init__(self,
1044
- num_classes=80,
1045
- backbone='ResNet50_vd_dcn',
1046
- anchors=None,
1047
- anchor_masks=None,
1048
- use_coord_conv=True,
1049
- use_iou_aware=True,
1050
- use_spp=True,
1051
- use_drop_block=True,
1052
- scale_x_y=1.05,
1053
- ignore_threshold=0.7,
1054
- label_smooth=False,
1055
- use_iou_loss=True,
1056
- use_matrix_nms=True,
1057
- nms_score_threshold=0.01,
1058
- nms_topk=-1,
1059
- nms_keep_topk=100,
1060
- nms_iou_threshold=0.45):
1061
- self.init_params = locals()
1062
- if backbone not in [
1063
- 'ResNet50_vd_dcn', 'ResNet18_vd', 'MobileNetV3_large',
1064
- 'MobileNetV3_small'
1065
- ]:
1066
- raise ValueError(
1067
- "backbone: {} is not supported. Please choose one of "
1068
- "('ResNet50_vd_dcn', 'ResNet18_vd', 'MobileNetV3_large', 'MobileNetV3_small')".
1069
- format(backbone))
1070
- self.backbone_name = backbone
1071
-
1072
- if paddlex.env_info['place'] == 'gpu' and paddlex.env_info[
1073
- 'num'] > 1 and not os.environ.get('PADDLEX_EXPORT_STAGE'):
1074
- norm_type = 'sync_bn'
1075
- else:
1076
- norm_type = 'bn'
1077
- if anchors is None and anchor_masks is None:
1078
- if 'MobileNetV3' in backbone:
1079
- anchors = [[11, 18], [34, 47], [51, 126], [115, 71],
1080
- [120, 195], [254, 235]]
1081
- anchor_masks = [[3, 4, 5], [0, 1, 2]]
1082
- elif backbone == 'ResNet50_vd_dcn':
1083
- anchors = [[10, 13], [16, 30], [33, 23], [30, 61], [62, 45],
1084
- [59, 119], [116, 90], [156, 198], [373, 326]]
1085
- anchor_masks = [[6, 7, 8], [3, 4, 5], [0, 1, 2]]
1086
- else:
1087
- anchors = [[10, 14], [23, 27], [37, 58], [81, 82], [135, 169],
1088
- [344, 319]]
1089
- anchor_masks = [[3, 4, 5], [0, 1, 2]]
1090
- elif anchors is None or anchor_masks is None:
1091
- raise ValueError("Please define both anchors and anchor_masks.")
1092
-
1093
- if backbone == 'ResNet50_vd_dcn':
1094
- backbone = self._get_backbone(
1095
- 'ResNet',
1096
- variant='d',
1097
- norm_type=norm_type,
1098
- return_idx=[1, 2, 3],
1099
- dcn_v2_stages=[3],
1100
- freeze_at=-1,
1101
- freeze_norm=False,
1102
- norm_decay=0.)
1103
- downsample_ratios = [32, 16, 8]
1104
-
1105
- elif backbone == 'ResNet18_vd':
1106
- backbone = self._get_backbone(
1107
- 'ResNet',
1108
- depth=18,
1109
- variant='d',
1110
- norm_type=norm_type,
1111
- return_idx=[2, 3],
1112
- freeze_at=-1,
1113
- freeze_norm=False,
1114
- norm_decay=0.)
1115
- downsample_ratios = [32, 16, 8]
1116
-
1117
- elif backbone == 'MobileNetV3_large':
1118
- backbone = self._get_backbone(
1119
- 'MobileNetV3',
1120
- model_name='large',
1121
- norm_type=norm_type,
1122
- scale=1,
1123
- with_extra_blocks=False,
1124
- extra_block_filters=[],
1125
- feature_maps=[13, 16])
1126
- downsample_ratios = [32, 16]
1127
-
1128
- elif backbone == 'MobileNetV3_small':
1129
- backbone = self._get_backbone(
1130
- 'MobileNetV3',
1131
- model_name='small',
1132
- norm_type=norm_type,
1133
- scale=1,
1134
- with_extra_blocks=False,
1135
- extra_block_filters=[],
1136
- feature_maps=[9, 12])
1137
- downsample_ratios = [32, 16]
1138
-
1139
- neck = ppdet.modeling.PPYOLOFPN(
1140
- norm_type=norm_type,
1141
- in_channels=[i.channels for i in backbone.out_shape],
1142
- coord_conv=use_coord_conv,
1143
- drop_block=use_drop_block,
1144
- spp=use_spp,
1145
- conv_block_num=0 if ('MobileNetV3' in self.backbone_name or
1146
- self.backbone_name == 'ResNet18_vd') else 2)
1147
-
1148
- loss = ppdet.modeling.YOLOv3Loss(
1149
- num_classes=num_classes,
1150
- ignore_thresh=ignore_threshold,
1151
- downsample=downsample_ratios,
1152
- label_smooth=label_smooth,
1153
- scale_x_y=scale_x_y,
1154
- iou_loss=ppdet.modeling.IouLoss(
1155
- loss_weight=2.5, loss_square=True) if use_iou_loss else None,
1156
- iou_aware_loss=ppdet.modeling.IouAwareLoss(loss_weight=1.0)
1157
- if use_iou_aware else None)
1158
-
1159
- yolo_head = ppdet.modeling.YOLOv3Head(
1160
- in_channels=[i.channels for i in neck.out_shape],
1161
- anchors=anchors,
1162
- anchor_masks=anchor_masks,
1163
- num_classes=num_classes,
1164
- loss=loss,
1165
- iou_aware=use_iou_aware)
1166
-
1167
- if use_matrix_nms:
1168
- nms = ppdet.modeling.MatrixNMS(
1169
- keep_top_k=nms_keep_topk,
1170
- score_threshold=nms_score_threshold,
1171
- post_threshold=.05
1172
- if 'MobileNetV3' in self.backbone_name else .01,
1173
- nms_top_k=nms_topk,
1174
- background_label=-1)
1175
- else:
1176
- nms = ppdet.modeling.MultiClassNMS(
1177
- score_threshold=nms_score_threshold,
1178
- nms_top_k=nms_topk,
1179
- keep_top_k=nms_keep_topk,
1180
- nms_threshold=nms_iou_threshold)
1181
-
1182
- post_process = ppdet.modeling.BBoxPostProcess(
1183
- decode=ppdet.modeling.YOLOBox(
1184
- num_classes=num_classes,
1185
- conf_thresh=.005
1186
- if 'MobileNetV3' in self.backbone_name else .01,
1187
- scale_x_y=scale_x_y),
1188
- nms=nms)
1189
-
1190
- params = {
1191
- 'backbone': backbone,
1192
- 'neck': neck,
1193
- 'yolo_head': yolo_head,
1194
- 'post_process': post_process
1195
- }
1196
-
1197
- super(YOLOv3, self).__init__(
1198
- model_name='YOLOv3', num_classes=num_classes, **params)
1199
- self.anchors = anchors
1200
- self.anchor_masks = anchor_masks
1201
- self.downsample_ratios = downsample_ratios
1202
- self.model_name = 'PPYOLO'
1203
-
1204
-
1205
- class PPYOLOTiny(YOLOv3):
1206
- def __init__(self,
1207
- num_classes=80,
1208
- backbone='MobileNetV3',
1209
- anchors=[[10, 15], [24, 36], [72, 42], [35, 87], [102, 96],
1210
- [60, 170], [220, 125], [128, 222], [264, 266]],
1211
- anchor_masks=[[6, 7, 8], [3, 4, 5], [0, 1, 2]],
1212
- use_iou_aware=False,
1213
- use_spp=True,
1214
- use_drop_block=True,
1215
- scale_x_y=1.05,
1216
- ignore_threshold=0.5,
1217
- label_smooth=False,
1218
- use_iou_loss=True,
1219
- use_matrix_nms=False,
1220
- nms_score_threshold=0.005,
1221
- nms_topk=1000,
1222
- nms_keep_topk=100,
1223
- nms_iou_threshold=0.45):
1224
- self.init_params = locals()
1225
- if backbone != 'MobileNetV3':
1226
- logging.warning(
1227
- "PPYOLOTiny only supports MobileNetV3 as backbone. "
1228
- "Backbone is forcibly set to MobileNetV3.")
1229
- self.backbone_name = 'MobileNetV3'
1230
- if paddlex.env_info['place'] == 'gpu' and paddlex.env_info[
1231
- 'num'] > 1 and not os.environ.get('PADDLEX_EXPORT_STAGE'):
1232
- norm_type = 'sync_bn'
1233
- else:
1234
- norm_type = 'bn'
1235
-
1236
- backbone = self._get_backbone(
1237
- 'MobileNetV3',
1238
- model_name='large',
1239
- norm_type=norm_type,
1240
- scale=.5,
1241
- with_extra_blocks=False,
1242
- extra_block_filters=[],
1243
- feature_maps=[7, 13, 16])
1244
- downsample_ratios = [32, 16, 8]
1245
-
1246
- neck = ppdet.modeling.PPYOLOTinyFPN(
1247
- detection_block_channels=[160, 128, 96],
1248
- in_channels=[i.channels for i in backbone.out_shape],
1249
- spp=use_spp,
1250
- drop_block=use_drop_block)
1251
-
1252
- loss = ppdet.modeling.YOLOv3Loss(
1253
- num_classes=num_classes,
1254
- ignore_thresh=ignore_threshold,
1255
- downsample=downsample_ratios,
1256
- label_smooth=label_smooth,
1257
- scale_x_y=scale_x_y,
1258
- iou_loss=ppdet.modeling.IouLoss(
1259
- loss_weight=2.5, loss_square=True) if use_iou_loss else None,
1260
- iou_aware_loss=ppdet.modeling.IouAwareLoss(loss_weight=1.0)
1261
- if use_iou_aware else None)
1262
-
1263
- yolo_head = ppdet.modeling.YOLOv3Head(
1264
- in_channels=[i.channels for i in neck.out_shape],
1265
- anchors=anchors,
1266
- anchor_masks=anchor_masks,
1267
- num_classes=num_classes,
1268
- loss=loss,
1269
- iou_aware=use_iou_aware)
1270
-
1271
- if use_matrix_nms:
1272
- nms = ppdet.modeling.MatrixNMS(
1273
- keep_top_k=nms_keep_topk,
1274
- score_threshold=nms_score_threshold,
1275
- post_threshold=.05,
1276
- nms_top_k=nms_topk,
1277
- background_label=-1)
1278
- else:
1279
- nms = ppdet.modeling.MultiClassNMS(
1280
- score_threshold=nms_score_threshold,
1281
- nms_top_k=nms_topk,
1282
- keep_top_k=nms_keep_topk,
1283
- nms_threshold=nms_iou_threshold)
1284
-
1285
- post_process = ppdet.modeling.BBoxPostProcess(
1286
- decode=ppdet.modeling.YOLOBox(
1287
- num_classes=num_classes,
1288
- conf_thresh=.005,
1289
- downsample_ratio=32,
1290
- clip_bbox=True,
1291
- scale_x_y=scale_x_y),
1292
- nms=nms)
1293
-
1294
- params = {
1295
- 'backbone': backbone,
1296
- 'neck': neck,
1297
- 'yolo_head': yolo_head,
1298
- 'post_process': post_process
1299
- }
1300
-
1301
- super(YOLOv3, self).__init__(
1302
- model_name='YOLOv3', num_classes=num_classes, **params)
1303
- self.anchors = anchors
1304
- self.anchor_masks = anchor_masks
1305
- self.downsample_ratios = downsample_ratios
1306
- self.model_name = 'PPYOLOTiny'
1307
-
1308
-
1309
- class PPYOLOv2(YOLOv3):
1310
- def __init__(self,
1311
- num_classes=80,
1312
- backbone='ResNet50_vd_dcn',
1313
- anchors=[[10, 13], [16, 30], [33, 23], [30, 61], [62, 45],
1314
- [59, 119], [116, 90], [156, 198], [373, 326]],
1315
- anchor_masks=[[6, 7, 8], [3, 4, 5], [0, 1, 2]],
1316
- use_iou_aware=True,
1317
- use_spp=True,
1318
- use_drop_block=True,
1319
- scale_x_y=1.05,
1320
- ignore_threshold=0.7,
1321
- label_smooth=False,
1322
- use_iou_loss=True,
1323
- use_matrix_nms=True,
1324
- nms_score_threshold=0.01,
1325
- nms_topk=-1,
1326
- nms_keep_topk=100,
1327
- nms_iou_threshold=0.45):
1328
- self.init_params = locals()
1329
- if backbone not in ['ResNet50_vd_dcn', 'ResNet101_vd_dcn']:
1330
- raise ValueError(
1331
- "backbone: {} is not supported. Please choose one of "
1332
- "('ResNet50_vd_dcn', 'ResNet18_vd')".format(backbone))
1333
- self.backbone_name = backbone
1334
-
1335
- if paddlex.env_info['place'] == 'gpu' and paddlex.env_info[
1336
- 'num'] > 1 and not os.environ.get('PADDLEX_EXPORT_STAGE'):
1337
- norm_type = 'sync_bn'
1338
- else:
1339
- norm_type = 'bn'
1340
-
1341
- if backbone == 'ResNet50_vd_dcn':
1342
- backbone = self._get_backbone(
1343
- 'ResNet',
1344
- variant='d',
1345
- norm_type=norm_type,
1346
- return_idx=[1, 2, 3],
1347
- dcn_v2_stages=[3],
1348
- freeze_at=-1,
1349
- freeze_norm=False,
1350
- norm_decay=0.)
1351
- downsample_ratios = [32, 16, 8]
1352
-
1353
- elif backbone == 'ResNet101_vd_dcn':
1354
- backbone = self._get_backbone(
1355
- 'ResNet',
1356
- depth=101,
1357
- variant='d',
1358
- norm_type=norm_type,
1359
- return_idx=[1, 2, 3],
1360
- dcn_v2_stages=[3],
1361
- freeze_at=-1,
1362
- freeze_norm=False,
1363
- norm_decay=0.)
1364
- downsample_ratios = [32, 16, 8]
1365
-
1366
- neck = ppdet.modeling.PPYOLOPAN(
1367
- norm_type=norm_type,
1368
- in_channels=[i.channels for i in backbone.out_shape],
1369
- drop_block=use_drop_block,
1370
- block_size=3,
1371
- keep_prob=.9,
1372
- spp=use_spp)
1373
-
1374
- loss = ppdet.modeling.YOLOv3Loss(
1375
- num_classes=num_classes,
1376
- ignore_thresh=ignore_threshold,
1377
- downsample=downsample_ratios,
1378
- label_smooth=label_smooth,
1379
- scale_x_y=scale_x_y,
1380
- iou_loss=ppdet.modeling.IouLoss(
1381
- loss_weight=2.5, loss_square=True) if use_iou_loss else None,
1382
- iou_aware_loss=ppdet.modeling.IouAwareLoss(loss_weight=1.0)
1383
- if use_iou_aware else None)
1384
-
1385
- yolo_head = ppdet.modeling.YOLOv3Head(
1386
- in_channels=[i.channels for i in neck.out_shape],
1387
- anchors=anchors,
1388
- anchor_masks=anchor_masks,
1389
- num_classes=num_classes,
1390
- loss=loss,
1391
- iou_aware=use_iou_aware,
1392
- iou_aware_factor=.5)
1393
-
1394
- if use_matrix_nms:
1395
- nms = ppdet.modeling.MatrixNMS(
1396
- keep_top_k=nms_keep_topk,
1397
- score_threshold=nms_score_threshold,
1398
- post_threshold=.01,
1399
- nms_top_k=nms_topk,
1400
- background_label=-1)
1401
- else:
1402
- nms = ppdet.modeling.MultiClassNMS(
1403
- score_threshold=nms_score_threshold,
1404
- nms_top_k=nms_topk,
1405
- keep_top_k=nms_keep_topk,
1406
- nms_threshold=nms_iou_threshold)
1407
-
1408
- post_process = ppdet.modeling.BBoxPostProcess(
1409
- decode=ppdet.modeling.YOLOBox(
1410
- num_classes=num_classes,
1411
- conf_thresh=.01,
1412
- downsample_ratio=32,
1413
- clip_bbox=True,
1414
- scale_x_y=scale_x_y),
1415
- nms=nms)
1416
-
1417
- params = {
1418
- 'backbone': backbone,
1419
- 'neck': neck,
1420
- 'yolo_head': yolo_head,
1421
- 'post_process': post_process
1422
- }
1423
-
1424
- super(YOLOv3, self).__init__(
1425
- model_name='YOLOv3', num_classes=num_classes, **params)
1426
- self.anchors = anchors
1427
- self.anchor_masks = anchor_masks
1428
- self.downsample_ratios = downsample_ratios
1429
- self.model_name = 'PPYOLOv2'
1430
-
1431
- def _get_test_inputs(self, image_shape):
1432
- if image_shape is not None:
1433
- image_shape = self._check_image_shape(image_shape)
1434
- self._fix_transforms_shape(image_shape[-2:])
1435
- else:
1436
- image_shape = [None, 3, 608, 608]
1437
- logging.warning(
1438
- '[Important!!!] When exporting inference model for {},'.format(
1439
- self.__class__.__name__) +
1440
- ' if fixed_input_shape is not set, it will be forcibly set to [None, 3, 608, 608]. '
1441
- +
1442
- 'Please check image shape after transforms is [3, 608, 608], if not, fixed_input_shape '
1443
- + 'should be specified manually.')
1444
-
1445
- self.fixed_input_shape = image_shape
1446
- return self._define_input_spec(image_shape)
1447
-
1448
-
1449
- class MaskRCNN(BaseDetector):
1450
- def __init__(self,
1451
- num_classes=80,
1452
- backbone='ResNet50_vd',
1453
- with_fpn=True,
1454
- with_dcn=False,
1455
- aspect_ratios=[0.5, 1.0, 2.0],
1456
- anchor_sizes=[[32], [64], [128], [256], [512]],
1457
- keep_top_k=100,
1458
- nms_threshold=0.5,
1459
- score_threshold=0.05,
1460
- fpn_num_channels=256,
1461
- rpn_batch_size_per_im=256,
1462
- rpn_fg_fraction=0.5,
1463
- test_pre_nms_top_n=None,
1464
- test_post_nms_top_n=1000):
1465
- self.init_params = locals()
1466
- if backbone not in [
1467
- 'ResNet50', 'ResNet50_vd', 'ResNet50_vd_ssld', 'ResNet101',
1468
- 'ResNet101_vd'
1469
- ]:
1470
- raise ValueError(
1471
- "backbone: {} is not supported. Please choose one of "
1472
- "('ResNet50', 'ResNet50_vd', 'ResNet50_vd_ssld', 'ResNet101', 'ResNet101_vd')".
1473
- format(backbone))
1474
-
1475
- self.backbone_name = backbone + '_fpn' if with_fpn else backbone
1476
- dcn_v2_stages = [1, 2, 3] if with_dcn else [-1]
1477
-
1478
- if backbone == 'ResNet50':
1479
- if with_fpn:
1480
- backbone = self._get_backbone(
1481
- 'ResNet',
1482
- norm_type='bn',
1483
- freeze_at=0,
1484
- return_idx=[0, 1, 2, 3],
1485
- num_stages=4,
1486
- dcn_v2_stages=dcn_v2_stages)
1487
- else:
1488
- if with_dcn:
1489
- logging.warning(
1490
- "Backbone {} should be used along with dcn disabled, 'with_dcn' is forcibly set to False".
1491
- format(backbone))
1492
- backbone = self._get_backbone(
1493
- 'ResNet',
1494
- norm_type='bn',
1495
- freeze_at=0,
1496
- return_idx=[2],
1497
- num_stages=3)
1498
-
1499
- elif 'ResNet50_vd' in backbone:
1500
- if not with_fpn:
1501
- logging.warning(
1502
- "Backbone {} should be used along with fpn enabled, 'with_fpn' is forcibly set to True".
1503
- format(backbone))
1504
- with_fpn = True
1505
- backbone = self._get_backbone(
1506
- 'ResNet',
1507
- variant='d',
1508
- norm_type='bn',
1509
- freeze_at=0,
1510
- return_idx=[0, 1, 2, 3],
1511
- num_stages=4,
1512
- lr_mult_list=[0.05, 0.05, 0.1, 0.15]
1513
- if '_ssld' in backbone else [1.0, 1.0, 1.0, 1.0],
1514
- dcn_v2_stages=dcn_v2_stages)
1515
-
1516
- else:
1517
- if not with_fpn:
1518
- logging.warning(
1519
- "Backbone {} should be used along with fpn enabled, 'with_fpn' is forcibly set to True".
1520
- format(backbone))
1521
- with_fpn = True
1522
- backbone = self._get_backbone(
1523
- 'ResNet',
1524
- variant='d' if '_vd' in backbone else 'b',
1525
- depth=101,
1526
- norm_type='bn',
1527
- freeze_at=0,
1528
- return_idx=[0, 1, 2, 3],
1529
- num_stages=4,
1530
- dcn_v2_stages=dcn_v2_stages)
1531
-
1532
- rpn_in_channel = backbone.out_shape[0].channels
1533
-
1534
- if with_fpn:
1535
- neck = ppdet.modeling.FPN(
1536
- in_channels=[i.channels for i in backbone.out_shape],
1537
- out_channel=fpn_num_channels,
1538
- spatial_scales=[1.0 / i.stride for i in backbone.out_shape])
1539
- rpn_in_channel = neck.out_shape[0].channels
1540
- anchor_generator_cfg = {
1541
- 'aspect_ratios': aspect_ratios,
1542
- 'anchor_sizes': anchor_sizes,
1543
- 'strides': [4, 8, 16, 32, 64]
1544
- }
1545
- train_proposal_cfg = {
1546
- 'min_size': 0.0,
1547
- 'nms_thresh': .7,
1548
- 'pre_nms_top_n': 2000,
1549
- 'post_nms_top_n': 1000,
1550
- 'topk_after_collect': True
1551
- }
1552
- test_proposal_cfg = {
1553
- 'min_size': 0.0,
1554
- 'nms_thresh': .7,
1555
- 'pre_nms_top_n': 1000
1556
- if test_pre_nms_top_n is None else test_pre_nms_top_n,
1557
- 'post_nms_top_n': test_post_nms_top_n
1558
- }
1559
- bb_head = ppdet.modeling.TwoFCHead(
1560
- in_channel=neck.out_shape[0].channels, out_channel=1024)
1561
- bb_roi_extractor_cfg = {
1562
- 'resolution': 7,
1563
- 'spatial_scale': [1. / i.stride for i in neck.out_shape],
1564
- 'sampling_ratio': 0,
1565
- 'aligned': True
1566
- }
1567
- with_pool = False
1568
- m_head = ppdet.modeling.MaskFeat(
1569
- in_channel=neck.out_shape[0].channels,
1570
- out_channel=256,
1571
- num_convs=4)
1572
- m_roi_extractor_cfg = {
1573
- 'resolution': 14,
1574
- 'spatial_scale': [1. / i.stride for i in neck.out_shape],
1575
- 'sampling_ratio': 0,
1576
- 'aligned': True
1577
- }
1578
- mask_assigner = MaskAssigner(
1579
- num_classes=num_classes, mask_resolution=28)
1580
- share_bbox_feat = False
1581
-
1582
- else:
1583
- neck = None
1584
- anchor_generator_cfg = {
1585
- 'aspect_ratios': aspect_ratios,
1586
- 'anchor_sizes': anchor_sizes,
1587
- 'strides': [16]
1588
- }
1589
- train_proposal_cfg = {
1590
- 'min_size': 0.0,
1591
- 'nms_thresh': .7,
1592
- 'pre_nms_top_n': 12000,
1593
- 'post_nms_top_n': 2000,
1594
- 'topk_after_collect': False
1595
- }
1596
- test_proposal_cfg = {
1597
- 'min_size': 0.0,
1598
- 'nms_thresh': .7,
1599
- 'pre_nms_top_n': 6000
1600
- if test_pre_nms_top_n is None else test_pre_nms_top_n,
1601
- 'post_nms_top_n': test_post_nms_top_n
1602
- }
1603
- bb_head = ppdet.modeling.Res5Head()
1604
- bb_roi_extractor_cfg = {
1605
- 'resolution': 14,
1606
- 'spatial_scale': [1. / i.stride for i in backbone.out_shape],
1607
- 'sampling_ratio': 0,
1608
- 'aligned': True
1609
- }
1610
- with_pool = True
1611
- m_head = ppdet.modeling.MaskFeat(
1612
- in_channel=bb_head.out_shape[0].channels,
1613
- out_channel=256,
1614
- num_convs=0)
1615
- m_roi_extractor_cfg = {
1616
- 'resolution': 14,
1617
- 'spatial_scale': [1. / i.stride for i in backbone.out_shape],
1618
- 'sampling_ratio': 0,
1619
- 'aligned': True
1620
- }
1621
- mask_assigner = MaskAssigner(
1622
- num_classes=num_classes, mask_resolution=14)
1623
- share_bbox_feat = True
1624
-
1625
- rpn_target_assign_cfg = {
1626
- 'batch_size_per_im': rpn_batch_size_per_im,
1627
- 'fg_fraction': rpn_fg_fraction,
1628
- 'negative_overlap': .3,
1629
- 'positive_overlap': .7,
1630
- 'use_random': True
1631
- }
1632
-
1633
- rpn_head = ppdet.modeling.RPNHead(
1634
- anchor_generator=anchor_generator_cfg,
1635
- rpn_target_assign=rpn_target_assign_cfg,
1636
- train_proposal=train_proposal_cfg,
1637
- test_proposal=test_proposal_cfg,
1638
- in_channel=rpn_in_channel)
1639
-
1640
- bbox_assigner = BBoxAssigner(num_classes=num_classes)
1641
-
1642
- bbox_head = ppdet.modeling.BBoxHead(
1643
- head=bb_head,
1644
- in_channel=bb_head.out_shape[0].channels,
1645
- roi_extractor=bb_roi_extractor_cfg,
1646
- with_pool=with_pool,
1647
- bbox_assigner=bbox_assigner,
1648
- num_classes=num_classes)
1649
-
1650
- mask_head = ppdet.modeling.MaskHead(
1651
- head=m_head,
1652
- roi_extractor=m_roi_extractor_cfg,
1653
- mask_assigner=mask_assigner,
1654
- share_bbox_feat=share_bbox_feat,
1655
- num_classes=num_classes)
1656
-
1657
- bbox_post_process = ppdet.modeling.BBoxPostProcess(
1658
- num_classes=num_classes,
1659
- decode=ppdet.modeling.RCNNBox(num_classes=num_classes),
1660
- nms=ppdet.modeling.MultiClassNMS(
1661
- score_threshold=score_threshold,
1662
- keep_top_k=keep_top_k,
1663
- nms_threshold=nms_threshold))
1664
-
1665
- mask_post_process = ppdet.modeling.MaskPostProcess(binary_thresh=.5)
1666
-
1667
- params = {
1668
- 'backbone': backbone,
1669
- 'neck': neck,
1670
- 'rpn_head': rpn_head,
1671
- 'bbox_head': bbox_head,
1672
- 'mask_head': mask_head,
1673
- 'bbox_post_process': bbox_post_process,
1674
- 'mask_post_process': mask_post_process
1675
- }
1676
- self.with_fpn = with_fpn
1677
- super(MaskRCNN, self).__init__(
1678
- model_name='MaskRCNN', num_classes=num_classes, **params)
1679
-
1680
- def _compose_batch_transform(self, transforms, mode='train'):
1681
- if mode == 'train':
1682
- default_batch_transforms = [
1683
- _BatchPadding(pad_to_stride=32 if self.with_fpn else -1)
1684
- ]
1685
- collate_batch = False
1686
- else:
1687
- default_batch_transforms = [
1688
- _BatchPadding(pad_to_stride=32 if self.with_fpn else -1)
1689
- ]
1690
- collate_batch = True
1691
- custom_batch_transforms = []
1692
- for i, op in enumerate(transforms.transforms):
1693
- if isinstance(op, (BatchRandomResize, BatchRandomResizeByShort)):
1694
- if mode != 'train':
1695
- raise Exception(
1696
- "{} cannot be present in the {} transforms. ".format(
1697
- op.__class__.__name__, mode) +
1698
- "Please check the {} transforms.".format(mode))
1699
- custom_batch_transforms.insert(0, copy.deepcopy(op))
1700
-
1701
- batch_transforms = BatchCompose(
1702
- custom_batch_transforms + default_batch_transforms,
1703
- collate_batch=collate_batch)
1704
-
1705
- return batch_transforms
1706
-
1707
- def _fix_transforms_shape(self, image_shape):
1708
- if hasattr(self, 'test_transforms'):
1709
- if self.test_transforms is not None:
1710
- has_resize_op = False
1711
- resize_op_idx = -1
1712
- normalize_op_idx = len(self.test_transforms.transforms)
1713
- for idx, op in enumerate(self.test_transforms.transforms):
1714
- name = op.__class__.__name__
1715
- if name == 'ResizeByShort':
1716
- has_resize_op = True
1717
- resize_op_idx = idx
1718
- if name == 'Normalize':
1719
- normalize_op_idx = idx
1720
-
1721
- if not has_resize_op:
1722
- self.test_transforms.transforms.insert(
1723
- normalize_op_idx,
1724
- Resize(
1725
- target_size=image_shape,
1726
- keep_ratio=True,
1727
- interp='CUBIC'))
1728
- else:
1729
- self.test_transforms.transforms[resize_op_idx] = Resize(
1730
- target_size=image_shape,
1731
- keep_ratio=True,
1732
- interp='CUBIC')
1733
- self.test_transforms.transforms.append(
1734
- Padding(im_padding_value=[0., 0., 0.]))
1735
-
1736
- def _get_test_inputs(self, image_shape):
1737
- if image_shape is not None:
1738
- image_shape = self._check_image_shape(image_shape)
1739
- self._fix_transforms_shape(image_shape[-2:])
1740
- else:
1741
- image_shape = [None, 3, -1, -1]
1742
- if self.with_fpn:
1743
- self.test_transforms.transforms.append(
1744
- Padding(im_padding_value=[0., 0., 0.]))
1745
- self.fixed_input_shape = image_shape
1746
-
1747
- return self._define_input_spec(image_shape)