official_models.py 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293
  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. "ResNet18_vd":
  21. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/ResNet18_vd_infer.tar",
  22. "ResNet34":
  23. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/ResNet34_infer.tar",
  24. "ResNet34_vd":
  25. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/ResNet34_vd_infer.tar",
  26. "ResNet50":
  27. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/ResNet50_infer.tar",
  28. "ResNet50_vd":
  29. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/ResNet50_vd_infer.tar",
  30. "ResNet101":
  31. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/ResNet101_infer.tar",
  32. "ResNet101_vd":
  33. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/ResNet101_vd_infer.tar",
  34. "ResNet152":
  35. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/ResNet152_infer.tar",
  36. "ResNet152_vd":
  37. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/ResNet152_vd_infer.tar",
  38. "ResNet200_vd":
  39. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/ResNet200_vd_infer.tar",
  40. "PP-LCNet_x0_25":
  41. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/PP-LCNet_x0_25_infer.tar",
  42. "PP-LCNet_x0_35":
  43. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/PP-LCNet_x0_35_infer.tar",
  44. "PP-LCNet_x0_5":
  45. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/PP-LCNet_x0_5_infer.tar",
  46. "PP-LCNet_x0_75":
  47. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/PP-LCNet_x0_75_infer.tar",
  48. "PP-LCNet_x1_0":
  49. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/PP-LCNet_x1_0_infer.tar",
  50. "PP-LCNet_x1_5":
  51. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/PP-LCNet_x1_5_infer.tar",
  52. "PP-LCNet_x2_5":
  53. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/PP-LCNet_x2_5_infer.tar",
  54. "PP-LCNet_x2_0":
  55. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/PP-LCNet_x2_0_infer.tar",
  56. "PP-LCNetV2_small":
  57. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/PP-LCNetV2_small_infer.tar",
  58. "PP-LCNetV2_base":
  59. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/PP-LCNetV2_base_infer.tar",
  60. "PP-LCNetV2_large":
  61. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/PP-LCNetV2_large_infer.tar",
  62. "MobileNetV3_large_x0_35":
  63. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/\
  64. MobileNetV3_large_x0_35_infer.tar",
  65. "MobileNetV3_large_x0_5":
  66. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/\
  67. MobileNetV3_large_x0_5_infer.tar",
  68. "MobileNetV3_large_x0_75":
  69. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/\
  70. MobileNetV3_large_x0_75_infer.tar",
  71. "MobileNetV3_large_x1_0":
  72. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/\
  73. MobileNetV3_large_x1_0_infer.tar",
  74. "MobileNetV3_large_x1_25":
  75. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/\
  76. MobileNetV3_large_x1_25_infer.tar",
  77. "MobileNetV3_small_x0_35":
  78. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/\
  79. MobileNetV3_small_x0_35_infer.tar",
  80. "MobileNetV3_small_x0_5":
  81. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/\
  82. MobileNetV3_small_x0_5_infer.tar",
  83. "MobileNetV3_small_x0_75":
  84. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/\
  85. MobileNetV3_small_x0_75_infer.tar",
  86. "MobileNetV3_small_x1_0":
  87. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/\
  88. MobileNetV3_small_x1_0_infer.tar",
  89. "MobileNetV3_small_x1_25":
  90. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/\
  91. MobileNetV3_small_x1_25_infer.tar",
  92. "ConvNeXt_tiny":
  93. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/ConvNeXt_tiny_infer.tar",
  94. "ConvNeXt_small":
  95. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/ConvNeXt_small_infer.tar",
  96. "ConvNeXt_base_224":
  97. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/ConvNeXt_base_224_infer.tar",
  98. "ConvNeXt_base_384":
  99. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/ConvNeXt_base_384_infer.tar",
  100. "ConvNeXt_large_224":
  101. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/ConvNeXt_large_224_infer.tar",
  102. "ConvNeXt_large_384":
  103. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/ConvNeXt_large_384_infer.tar",
  104. "MobileNetV2_x0_25":
  105. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/\
  106. MobileNetV2_x0_25_infer.tar",
  107. "MobileNetV2_x0_5":
  108. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/MobileNetV2_x0_5_infer.tar",
  109. "MobileNetV2_x1_0":
  110. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/MobileNetV2_x1_0_infer.tar",
  111. "MobileNetV2_x1_5":
  112. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/MobileNetV2_x1_5_infer.tar",
  113. "MobileNetV2_x2_0":
  114. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/MobileNetV2_x2_0_infer.tar",
  115. "MobileNetV1_x0_25":
  116. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/\
  117. MobileNetV1_x0_25_infer.tar",
  118. "MobileNetV1_x0_5":
  119. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/\
  120. MobileNetV1_x0_5_infer.tar",
  121. "MobileNetV1_x0_75":
  122. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/\
  123. MobileNetV1_x0_75_infer.tar",
  124. "MobileNetV1_x1_0":
  125. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/\
  126. MobileNetV1_x1_0_infer.tar",
  127. "SwinTransformer_tiny_patch4_window7_224":
  128. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/\
  129. SwinTransformer_tiny_patch4_window7_224_infer.tar",
  130. "SwinTransformer_small_patch4_window7_224":
  131. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/\
  132. SwinTransformer_small_patch4_window7_224_infer.tar",
  133. "SwinTransformer_base_patch4_window7_224":
  134. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/\
  135. SwinTransformer_base_patch4_window7_224_infer.tar",
  136. "SwinTransformer_base_patch4_window12_384":
  137. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/\
  138. SwinTransformer_base_patch4_window12_384_infer.tar",
  139. "SwinTransformer_large_patch4_window7_224":
  140. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/\
  141. SwinTransformer_large_patch4_window7_224_infer.tar",
  142. "SwinTransformer_large_patch4_window12_384":
  143. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/\
  144. SwinTransformer_large_patch4_window12_384_infer.tar",
  145. "PP-HGNet_tiny":
  146. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/PP-HGNet_tiny_infer.tar",
  147. "PP-HGNet_small":
  148. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/PP-HGNet_small_infer.tar",
  149. "PP-HGNet_base":
  150. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/PP-HGNet_base_infer.tar",
  151. "PP-HGNetV2-B0":
  152. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/PP-HGNetV2-B0_infer.tar",
  153. "PP-HGNetV2-B1":
  154. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/PP-HGNetV2-B1_infer.tar",
  155. "PP-HGNetV2-B2":
  156. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/PP-HGNetV2-B2_infer.tar",
  157. "PP-HGNetV2-B3":
  158. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/PP-HGNetV2-B3_infer.tar",
  159. "PP-HGNetV2-B4":
  160. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/PP-HGNetV2-B4_infer.tar",
  161. "PP-HGNetV2-B5":
  162. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/PP-HGNetV2-B5_infer.tar",
  163. "PP-HGNetV2-B6":
  164. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/PP-HGNetV2-B6_infer.tar",
  165. "CLIP_vit_base_patch16_224":
  166. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/\
  167. CLIP_vit_base_patch16_224_infer.tar",
  168. "CLIP_vit_large_patch14_224":
  169. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/\
  170. CLIP_vit_large_patch14_224_infer.tar",
  171. "PP-YOLOE_plus-X":
  172. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/PP-YOLOE_plus-X_infer.tar",
  173. "PP-YOLOE_plus-L":
  174. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/PP-YOLOE_plus-L_infer.tar",
  175. "PP-YOLOE_plus-M":
  176. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/PP-YOLOE_plus-M_infer.tar",
  177. "PP-YOLOE_plus-S":
  178. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/PP-YOLOE_plus-S_infer.tar",
  179. "RT-DETR-L":
  180. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/RT-DETR-L_infer.tar",
  181. "RT-DETR-H":
  182. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/RT-DETR-H_infer.tar",
  183. "RT-DETR-X":
  184. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/RT-DETR-X_infer.tar",
  185. "YOLOv3-DarkNet53":
  186. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/YOLOv3-DarkNet53_infer.tar",
  187. "YOLOv3-MobileNetV3":
  188. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/YOLOv3-MobileNetV3_infer.tar",
  189. "YOLOv3-ResNet50_vd_DCN":
  190. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/YOLOv3-ResNet50_vd_DCN_infer.tar",
  191. "YOLOX-L":
  192. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/YOLOX-L_infer.tar",
  193. "YOLOX-M":
  194. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/YOLOX-M_infer.tar",
  195. "YOLOX-N":
  196. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/YOLOX-N_infer.tar",
  197. "YOLOX-S":
  198. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/YOLOX-S_infer.tar",
  199. "YOLOX-T":
  200. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/YOLOX-T_infer.tar",
  201. "YOLOX-X":
  202. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/YOLOX-X_infer.tar",
  203. "RT-DETR-R18":
  204. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/RT-DETR-R18_infer.tar",
  205. "RT-DETR-R50":
  206. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/RT-DETR-R50_infer.tar",
  207. "PicoDet-S":
  208. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/PicoDet-S.tar",
  209. "PicoDet-L":
  210. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/PicoDet-L.tar",
  211. "Deeplabv3-R50":
  212. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/Deeplabv3-R50_infer.tar",
  213. "Deeplabv3-R101":
  214. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/Deeplabv3-R101_infer.tar",
  215. "Deeplabv3_Plus-R50":
  216. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/\
  217. Deeplabv3_Plus-R50_infer.tar",
  218. "Deeplabv3_Plus-R101":
  219. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/\
  220. Deeplabv3_Plus-R101_infer.tar",
  221. "PP-LiteSeg-T":
  222. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/PP-LiteSeg-T_infer.tar",
  223. "OCRNet_HRNet-W48":
  224. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/OCRNet_HRNet-W48_infer.tar",
  225. "OCRNet_HRNet-W18":
  226. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/OCRNet_HRNet-W18_infer.tar",
  227. "SegFormer-B0":
  228. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/SegFormer-B0_infer.tar",
  229. "SegFormer-B1":
  230. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/SegFormer-B1_infer.tar",
  231. "SegFormer-B2":
  232. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/SegFormer-B2_infer.tar",
  233. "SegFormer-B3":
  234. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/SegFormer-B3_infer.tar",
  235. "SegFormer-B4":
  236. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/SegFormer-B4_infer.tar",
  237. "SegFormer-B5":
  238. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/SegFormer-B5_infer.tar",
  239. "SeaFormer_tiny":
  240. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/SeaFormer_tiny_infer.tar",
  241. "SeaFormer_small":
  242. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/SeaFormer_small_infer.tar",
  243. "SeaFormer_base":
  244. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/SeaFormer_base_infer.tar",
  245. "SeaFormer_large":
  246. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/SeaFormer_large_infer.tar",
  247. "Mask-RT-DETR-H":
  248. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/Mask-RT-DETR-H_infer.tar",
  249. "Mask-RT-DETR-L":
  250. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/Mask-RT-DETR-L_infer.tar",
  251. "PP-OCRv4_server_rec":
  252. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/\
  253. PP-OCRv4_server_rec_infer.tar",
  254. "PP-OCRv4_mobile_rec":
  255. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/\
  256. PP-OCRv4_mobile_rec_infer.tar",
  257. "PP-OCRv4_server_det":
  258. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/\
  259. PP-OCRv4_server_det_infer.tar",
  260. "PP-OCRv4_mobile_det":
  261. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/\
  262. PP-OCRv4_mobile_det_infer.tar",
  263. "RepSVTR_mobile_det":
  264. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/\
  265. openatom_det_repsvtr_ch_infer.tar",
  266. "RepSVTR_mobile_rec":
  267. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/\
  268. openatom_rec_repsvtr_ch_infer.tar",
  269. "SVTRv2_server_rec":
  270. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/\
  271. openatom_rec_svtrv2_ch_infer.tar",
  272. "PicoDet_layout_1x":
  273. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/PicoDet-L_layout_infer.tar",
  274. "SLANet":
  275. "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/SLANet_infer.tar",
  276. }
  277. class OfficialModelsDict(dict):
  278. """Official Models Dict
  279. """
  280. def __getitem__(self, key):
  281. url = super().__getitem__(key)
  282. save_dir = Path(CACHE_DIR) / "official_models"
  283. download_and_extract(url, save_dir, f"{key}", overwrite=False)
  284. return save_dir / f"{key}"
  285. official_models = OfficialModelsDict(OFFICIAL_MODELS)