__init__.py 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. # ------------------------ Dataset Config ------------------------
  2. from .data_config.dataset_config import dataset_cfg
  3. def build_dataset_config(args):
  4. if args.dataset in ['coco', 'coco-val', 'coco-test']:
  5. cfg = dataset_cfg['coco']
  6. else:
  7. cfg = dataset_cfg[args.dataset]
  8. print('==============================')
  9. print('Dataset Config: {} \n'.format(cfg))
  10. return cfg
  11. # ------------------ Transform Config ----------------------
  12. from .data_config.transform_config import (
  13. # YOLOv5-Style
  14. yolov5_pico_trans_config,
  15. yolov5_nano_trans_config,
  16. yolov5_small_trans_config,
  17. yolov5_medium_trans_config,
  18. yolov5_large_trans_config,
  19. yolov5_huge_trans_config,
  20. # YOLOX-Style
  21. yolox_pico_trans_config,
  22. yolox_nano_trans_config,
  23. yolox_small_trans_config,
  24. yolox_medium_trans_config,
  25. yolox_large_trans_config,
  26. yolox_huge_trans_config,
  27. # SSD-Style
  28. ssd_trans_config,
  29. # YOLOvx-Style
  30. rtmdet_v1_pico_trans_config,
  31. rtmdet_v1_nano_trans_config,
  32. rtmdet_v1_small_trans_config,
  33. rtmdet_v1_medium_trans_config,
  34. rtmdet_v1_large_trans_config,
  35. rtmdet_v1_huge_trans_config,
  36. )
  37. def build_trans_config(trans_config='ssd'):
  38. print('==============================')
  39. print('Transform: {}-Style ...'.format(trans_config))
  40. # SSD-style transform
  41. if trans_config == 'ssd':
  42. cfg = ssd_trans_config
  43. # YOLOv5-style transform
  44. elif trans_config == 'yolov5_pico':
  45. cfg = yolov5_pico_trans_config
  46. elif trans_config == 'yolov5_nano':
  47. cfg = yolov5_nano_trans_config
  48. elif trans_config == 'yolov5_small':
  49. cfg = yolov5_small_trans_config
  50. elif trans_config == 'yolov5_medium':
  51. cfg = yolov5_medium_trans_config
  52. elif trans_config == 'yolov5_large':
  53. cfg = yolov5_large_trans_config
  54. elif trans_config == 'yolov5_huge':
  55. cfg = yolov5_huge_trans_config
  56. # YOLOX-style transform
  57. elif trans_config == 'yolox_pico':
  58. cfg = yolox_pico_trans_config
  59. elif trans_config == 'yolox_nano':
  60. cfg = yolox_nano_trans_config
  61. elif trans_config == 'yolox_small':
  62. cfg = yolox_small_trans_config
  63. elif trans_config == 'yolox_medium':
  64. cfg = yolox_medium_trans_config
  65. elif trans_config == 'yolox_large':
  66. cfg = yolox_large_trans_config
  67. elif trans_config == 'yolox_huge':
  68. cfg = yolox_huge_trans_config
  69. # YOLOvx-style transform
  70. elif trans_config == 'rtmdet_v1_pico':
  71. cfg = rtmdet_v1_pico_trans_config
  72. elif trans_config == 'rtmdet_v1_nano':
  73. cfg = rtmdet_v1_nano_trans_config
  74. elif trans_config == 'rtmdet_v1_small':
  75. cfg = rtmdet_v1_small_trans_config
  76. elif trans_config == 'rtmdet_v1_medium':
  77. cfg = rtmdet_v1_medium_trans_config
  78. elif trans_config == 'rtmdet_v1_large':
  79. cfg = rtmdet_v1_large_trans_config
  80. elif trans_config == 'rtmdet_v1_huge':
  81. cfg = rtmdet_v1_huge_trans_config
  82. print('Transform Config: {} \n'.format(cfg))
  83. return cfg
  84. # ------------------ Model Config ----------------------
  85. ## YOLO series
  86. from .model_config.yolov1_config import yolov1_cfg
  87. from .model_config.yolov2_config import yolov2_cfg
  88. from .model_config.yolov3_config import yolov3_cfg
  89. from .model_config.yolov4_config import yolov4_cfg
  90. from .model_config.yolov5_config import yolov5_cfg
  91. from .model_config.yolov7_config import yolov7_cfg
  92. from .model_config.yolox_config import yolox_cfg
  93. from .model_config.rtmdet_v1_config import rtmdet_v1_cfg
  94. def build_model_config(args):
  95. print('==============================')
  96. print('Model: {} ...'.format(args.model.upper()))
  97. # YOLOv1
  98. if args.model == 'yolov1':
  99. cfg = yolov1_cfg
  100. # YOLOv2
  101. elif args.model == 'yolov2':
  102. cfg = yolov2_cfg
  103. # YOLOv3
  104. elif args.model in ['yolov3', 'yolov3_tiny']:
  105. cfg = yolov3_cfg[args.model]
  106. # YOLOv4
  107. elif args.model in ['yolov4', 'yolov4_tiny']:
  108. cfg = yolov4_cfg[args.model]
  109. # YOLOv5
  110. elif args.model in ['yolov5_n', 'yolov5_s', 'yolov5_m', 'yolov5_l', 'yolov5_x']:
  111. cfg = yolov5_cfg[args.model]
  112. # YOLOv7
  113. elif args.model in ['yolov7_tiny', 'yolov7', 'yolov7_x']:
  114. cfg = yolov7_cfg[args.model]
  115. # YOLOX
  116. elif args.model in ['yolox_n', 'yolox_s', 'yolox_m', 'yolox_l', 'yolox_x']:
  117. cfg = yolox_cfg[args.model]
  118. # YOLOvx
  119. elif args.model in ['rtmdet_v1_n', 'rtmdet_v1_t', 'rtmdet_v1_s', 'rtmdet_v1_m', 'rtmdet_v1_l', 'rtmdet_v1_x']:
  120. cfg = rtmdet_v1_cfg[args.model]
  121. return cfg