official_models.py 9.6 KB

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