__init__.py 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  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_p_trans_config,
  15. yolov5_n_trans_config,
  16. yolov5_s_trans_config,
  17. yolov5_m_trans_config,
  18. yolov5_l_trans_config,
  19. yolov5_x_trans_config,
  20. # YOLOX-Style
  21. yolox_p_trans_config,
  22. yolox_n_trans_config,
  23. yolox_s_trans_config,
  24. yolox_m_trans_config,
  25. yolox_l_trans_config,
  26. yolox_x_trans_config,
  27. # SSD-Style
  28. ssd_trans_config,
  29. # RT-DETR style
  30. rtdetr_base_trans_config,
  31. rtdetr_l_trans_config,
  32. rtdetr_x_trans_config
  33. )
  34. def build_trans_config(trans_config='ssd'):
  35. print('==============================')
  36. print('Transform: {}-Style ...'.format(trans_config))
  37. # SSD-style transform
  38. if trans_config == 'ssd':
  39. cfg = ssd_trans_config
  40. # YOLOv5-style transform
  41. elif trans_config == 'yolov5_p':
  42. cfg = yolov5_p_trans_config
  43. elif trans_config == 'yolov5_n':
  44. cfg = yolov5_n_trans_config
  45. elif trans_config == 'yolov5_s':
  46. cfg = yolov5_s_trans_config
  47. elif trans_config == 'yolov5_m':
  48. cfg = yolov5_m_trans_config
  49. elif trans_config == 'yolov5_l':
  50. cfg = yolov5_l_trans_config
  51. elif trans_config == 'yolov5_x':
  52. cfg = yolov5_x_trans_config
  53. # YOLOX-style transform
  54. elif trans_config == 'yolox_p':
  55. cfg = yolox_p_trans_config
  56. elif trans_config == 'yolox_n':
  57. cfg = yolox_n_trans_config
  58. elif trans_config == 'yolox_s':
  59. cfg = yolox_s_trans_config
  60. elif trans_config == 'yolox_m':
  61. cfg = yolox_m_trans_config
  62. elif trans_config == 'yolox_l':
  63. cfg = yolox_l_trans_config
  64. elif trans_config == 'yolox_x':
  65. cfg = yolox_x_trans_config
  66. # RT-DETR style
  67. elif trans_config == 'rtdetr_base':
  68. cfg = rtdetr_base_trans_config
  69. elif trans_config == 'rtdetr_l':
  70. cfg = rtdetr_l_trans_config
  71. elif trans_config == 'rtdetr_x':
  72. cfg = rtdetr_x_trans_config
  73. print('Transform Config: {} \n'.format(cfg))
  74. return cfg
  75. # ------------------ Model Config ------------------
  76. ## YOLO series
  77. from .model_config.yolov1_config import yolov1_cfg
  78. from .model_config.yolov2_config import yolov2_cfg
  79. from .model_config.yolov3_config import yolov3_cfg
  80. from .model_config.yolov4_config import yolov4_cfg
  81. from .model_config.yolov5_config import yolov5_cfg, yolov5_adamw_cfg
  82. from .model_config.yolov7_config import yolov7_cfg
  83. from .model_config.yolov8_config import yolov8_cfg
  84. from .model_config.yolox_config import yolox_cfg, yolox_adamw_cfg
  85. ## My RTCDet series
  86. from .model_config.rtcdet_config import rtcdet_cfg, rtcdet_seg_cfg, rtcdet_pos_cfg, rtcdet_seg_pos_cfg
  87. from .model_config.rtdetr_config import rtdetr_cfg
  88. from .model_config.rtpdetr_config import rtpdetr_cfg
  89. def build_model_config(args):
  90. print('==============================')
  91. print('Model: {} ...'.format(args.model.upper()))
  92. # YOLOv1
  93. if args.model == 'yolov1':
  94. cfg = yolov1_cfg
  95. # YOLOv2
  96. elif args.model == 'yolov2':
  97. cfg = yolov2_cfg
  98. # YOLOv3
  99. elif args.model in ['yolov3', 'yolov3_tiny']:
  100. cfg = yolov3_cfg[args.model]
  101. # YOLOv4
  102. elif args.model in ['yolov4', 'yolov4_tiny']:
  103. cfg = yolov4_cfg[args.model]
  104. # YOLOv5
  105. elif args.model in ['yolov5_n', 'yolov5_s', 'yolov5_m', 'yolov5_l', 'yolov5_x']:
  106. cfg = yolov5_cfg[args.model]
  107. # YOLOv5-AdamW
  108. elif args.model in ['yolov5_n_adamw', 'yolov5_s_adamw', 'yolov5_m_adamw', 'yolov5_l_adamw', 'yolov5_x_adamw']:
  109. cfg = yolov5_adamw_cfg[args.model]
  110. # YOLOv7
  111. elif args.model in ['yolov7_tiny', 'yolov7', 'yolov7_x']:
  112. cfg = yolov7_cfg[args.model]
  113. # YOLOv8
  114. elif args.model in ['yolov8_n', 'yolov8_s', 'yolov8_m', 'yolov8_l', 'yolov8_x']:
  115. cfg = yolov8_cfg[args.model]
  116. # YOLOX
  117. elif args.model in ['yolox_n', 'yolox_s', 'yolox_m', 'yolox_l', 'yolox_x']:
  118. cfg = yolox_cfg[args.model]
  119. # YOLOX-AdamW
  120. elif args.model in ['yolox_n_adamw', 'yolox_s_adamw', 'yolox_m_adamw', 'yolox_l_adamw', 'yolox_x_adamw']:
  121. cfg = yolox_adamw_cfg[args.model]
  122. # RTCDet
  123. elif args.model in ['rtcdet_n', 'rtcdet_t', 'rtcdet_s', 'rtcdet_m', 'rtcdet_l', 'rtcdet_x']:
  124. cfg = rtcdet_cfg[args.model]
  125. # RT-DETR
  126. elif args.model in ['rtdetr_r18', 'rtdetr_r34', 'rtdetr_r50', 'rtdetr_r101']:
  127. cfg = rtdetr_cfg[args.model]
  128. # RT-PlainDETR
  129. elif args.model in ['rtpdetr_r18', 'rtpdetr_r34', 'rtpdetr_r50', 'rtpdetr_r101']:
  130. cfg = rtpdetr_cfg[args.model]
  131. return cfg