official_models.py 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. # !/usr/bin/env python3
  2. # -*- coding: UTF-8 -*-
  3. ################################################################################
  4. #
  5. # Copyright (c) 2024 Baidu.com, Inc. All Rights Reserved
  6. #
  7. ################################################################################
  8. """
  9. Author: PaddlePaddle Authors
  10. """
  11. from pathlib import Path
  12. from .....utils.cache import CACHE_DIR
  13. from .....utils.download import download_and_extract
  14. OFFICIAL_MODELS = {
  15. "ResNet18":
  16. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/ResNet18_infer.tar",
  17. "ResNet34":
  18. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/ResNet34_infer.tar",
  19. "ResNet50":
  20. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/ResNet50_infer.tar",
  21. "ResNet101":
  22. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/ResNet101_infer.tar",
  23. "ResNet152":
  24. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/ResNet152_infer.tar",
  25. "PP-LCNet_x0_25":
  26. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/PP-LCNet_x0_25_infer.tar",
  27. "PP-LCNet_x0_35":
  28. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/PP-LCNet_x0_35_infer.tar",
  29. "PP-LCNet_x0_5":
  30. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/PP-LCNet_x0_5_infer.tar",
  31. "PP-LCNet_x0_75":
  32. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/PP-LCNet_x0_75_infer.tar",
  33. "PP-LCNet_x1_0":
  34. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/PP-LCNet_x1_0_infer.tar",
  35. "PP-LCNet_x1_5":
  36. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/PP-LCNet_x1_5_infer.tar",
  37. "PP-LCNet_x2_5":
  38. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/PP-LCNet_x2_5_infer.tar",
  39. "PP-LCNet_x2_0":
  40. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/PP-LCNet_x2_0_infer.tar",
  41. "MobileNetV3_large_x0_35":
  42. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/\
  43. MobileNetV3_large_x0_35_infer.tar",
  44. "MobileNetV3_large_x0_5":
  45. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/\
  46. MobileNetV3_large_x0_5_infer.tar",
  47. "MobileNetV3_large_x0_75":
  48. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/\
  49. MobileNetV3_large_x0_75_infer.tar",
  50. "MobileNetV3_large_x1_0":
  51. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/\
  52. MobileNetV3_large_x1_0_infer.tar",
  53. "MobileNetV3_large_x1_25":
  54. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/\
  55. MobileNetV3_large_x1_25_infer.tar",
  56. "MobileNetV3_small_x0_35":
  57. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/\
  58. MobileNetV3_small_x0_35_infer.tar",
  59. "MobileNetV3_small_x0_5":
  60. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/\
  61. MobileNetV3_small_x0_5_infer.tar",
  62. "MobileNetV3_small_x0_75":
  63. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/\
  64. MobileNetV3_small_x0_75_infer.tar",
  65. "MobileNetV3_small_x1_0":
  66. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/\
  67. MobileNetV3_small_x1_0_infer.tar",
  68. "MobileNetV3_small_x1_25":
  69. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/\
  70. MobileNetV3_small_x1_25_infer.tar",
  71. "ConvNeXt_tiny":
  72. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/ConvNeXt_tiny_infer.tar",
  73. "MobileNetV2_x0_25":
  74. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/\
  75. MobileNetV2_x0_25_infer.tar",
  76. "MobileNetV2_x0_5":
  77. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/MobileNetV2_x0_5_infer.tar",
  78. "MobileNetV2_x1_0":
  79. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/MobileNetV2_x1_0_infer.tar",
  80. "MobileNetV2_x1_5":
  81. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/MobileNetV2_x1_5_infer.tar",
  82. "MobileNetV2_x2_0":
  83. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/MobileNetV2_x2_0_infer.tar",
  84. "SwinTransformer_base_patch4_window7_224":
  85. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/\
  86. SwinTransformer_base_patch4_window7_224_infer.tar",
  87. "PP-HGNet_small":
  88. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/PP-HGNet_small_infer.tar",
  89. "PP-HGNetV2-B0":
  90. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/PP-HGNetV2-B0_infer.tar",
  91. "PP-HGNetV2-B4":
  92. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/PP-HGNetV2-B4_infer.tar",
  93. "PP-HGNetV2-B6":
  94. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/PP-HGNetV2-B6_infer.tar",
  95. "CLIP_vit_base_patch16_224":
  96. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/\
  97. CLIP_vit_base_patch16_224_infer.tar",
  98. "CLIP_vit_large_patch14_224":
  99. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/\
  100. CLIP_vit_large_patch14_224_infer.tar",
  101. "PP-YOLOE_plus-X":
  102. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/PP-YOLOE_plus-X_infer.tar",
  103. "PP-YOLOE_plus-L":
  104. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/PP-YOLOE_plus-L_infer.tar",
  105. "PP-YOLOE_plus-M":
  106. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/PP-YOLOE_plus-M_infer.tar",
  107. "PP-YOLOE_plus-S":
  108. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/PP-YOLOE_plus-S_infer.tar",
  109. "RT-DETR-L":
  110. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/RT-DETR-L_infer.tar",
  111. "RT-DETR-H":
  112. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/RT-DETR-H_infer.tar",
  113. "RT-DETR-X":
  114. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/RT-DETR-X_infer.tar",
  115. "RT-DETR-R18":
  116. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/RT-DETR-R18_infer.tar",
  117. "RT-DETR-R50":
  118. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/RT-DETR-R50_infer.tar",
  119. "PicoDet-S":
  120. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/PicoDet-S.tar",
  121. "PicoDet-L":
  122. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/PicoDet-L.tar",
  123. "Deeplabv3-R50":
  124. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/Deeplabv3-R50_infer.tar",
  125. "Deeplabv3-R101":
  126. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/Deeplabv3-R101_infer.tar",
  127. "Deeplabv3_Plus-R50":
  128. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/\
  129. Deeplabv3_Plus-R50_infer.tar",
  130. "Deeplabv3_Plus-R101":
  131. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/\
  132. Deeplabv3_Plus-R101_infer.tar",
  133. "PP-LiteSeg-T":
  134. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/PP-LiteSeg-T_infer.tar",
  135. "OCRNet_HRNet-W48":
  136. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/OCRNet_HRNet-W48_infer.tar",
  137. "Mask-RT-DETR-H":
  138. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/Mask-RT-DETR-H_infer.tar",
  139. "Mask-RT-DETR-L":
  140. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/Mask-RT-DETR-L_infer.tar",
  141. "PP-OCRv4_server_rec":
  142. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/\
  143. PP-OCRv4_server_rec_infer.tar",
  144. "PP-OCRv4_mobile_rec":
  145. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/\
  146. PP-OCRv4_mobile_rec_infer.tar",
  147. "PP-OCRv4_server_det":
  148. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/\
  149. PP-OCRv4_server_det_infer.tar",
  150. "PP-OCRv4_mobile_det":
  151. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/\
  152. PP-OCRv4_mobile_det_infer.tar",
  153. "PicoDet_layout_1x":
  154. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/PicoDet-L_layout_infer.tar",
  155. "SLANet":
  156. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/SLANet_infer.tar",
  157. }
  158. class OfficialModelsDict(dict):
  159. """Official Models Dict
  160. """
  161. def __getitem__(self, key):
  162. url = super().__getitem__(key)
  163. save_dir = Path(CACHE_DIR) / "official_models"
  164. download_and_extract(url, save_dir, f"{key}", overwrite=False)
  165. return save_dir / f"{key}"
  166. official_models = OfficialModelsDict(OFFICIAL_MODELS)