__init__.py 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  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. # RTMDet-v1-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. # RTMDetv1-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. ## My RTMDet series
  94. from .model_config.rtmdet_v1_config import rtmdet_v1_cfg
  95. from .model_config.rtmdet_v2_config import rtmdet_v2_cfg
  96. def build_model_config(args):
  97. print('==============================')
  98. print('Model: {} ...'.format(args.model.upper()))
  99. # YOLOv1
  100. if args.model == 'yolov1':
  101. cfg = yolov1_cfg
  102. # YOLOv2
  103. elif args.model == 'yolov2':
  104. cfg = yolov2_cfg
  105. # YOLOv3
  106. elif args.model in ['yolov3', 'yolov3_tiny']:
  107. cfg = yolov3_cfg[args.model]
  108. # YOLOv4
  109. elif args.model in ['yolov4', 'yolov4_tiny']:
  110. cfg = yolov4_cfg[args.model]
  111. # YOLOv5
  112. elif args.model in ['yolov5_n', 'yolov5_s', 'yolov5_m', 'yolov5_l', 'yolov5_x']:
  113. cfg = yolov5_cfg[args.model]
  114. # YOLOv7
  115. elif args.model in ['yolov7_tiny', 'yolov7', 'yolov7_x']:
  116. cfg = yolov7_cfg[args.model]
  117. # YOLOX
  118. elif args.model in ['yolox_n', 'yolox_s', 'yolox_m', 'yolox_l', 'yolox_x']:
  119. cfg = yolox_cfg[args.model]
  120. # My RTMDet-v1
  121. elif args.model in ['rtmdet_v1_n', 'rtmdet_v1_t', 'rtmdet_v1_s', 'rtmdet_v1_m', 'rtmdet_v1_l', 'rtmdet_v1_x']:
  122. cfg = rtmdet_v1_cfg[args.model]
  123. # My RTMDet-v2
  124. elif args.model in ['rtmdet_v2_n', 'rtmdet_v2_t', 'rtmdet_v2_s', 'rtmdet_v2_m', 'rtmdet_v2_l', 'rtmdet_v2_x']:
  125. cfg = rtmdet_v2_cfg[args.model]
  126. return cfg