config.py 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312
  1. auto_scale_lr = dict(base_batch_size=32)
  2. backend_args = None
  3. data_root = '../../../media/tricolops/T7/Dataset/coco_format_bd/'
  4. dataset_type = 'CocoDataset'
  5. default_hooks = dict(
  6. checkpoint=dict(interval=10, type='CheckpointHook'),
  7. logger=dict(interval=50, type='LoggerHook'),
  8. param_scheduler=dict(type='ParamSchedulerHook'),
  9. sampler_seed=dict(type='DistSamplerSeedHook'),
  10. timer=dict(type='IterTimerHook'),
  11. visualization=dict(type='DetVisualizationHook'))
  12. default_scope = 'mmdet'
  13. env_cfg = dict(
  14. cudnn_benchmark=False,
  15. dist_cfg=dict(backend='nccl'),
  16. mp_cfg=dict(mp_start_method='fork', opencv_num_threads=0))
  17. launcher = 'none'
  18. load_from = 'work_dirs/deformable-detr_r50_16xb2-50e_coco/epoch_240.pth'
  19. log_level = 'INFO'
  20. log_processor = dict(by_epoch=True, type='LogProcessor', window_size=50)
  21. max_epochs = 50
  22. metainfo = dict(
  23. classes=('barcode', ), palette=[
  24. (
  25. 220,
  26. 20,
  27. 60,
  28. ),
  29. ])
  30. model = dict(
  31. as_two_stage=False,
  32. backbone=dict(
  33. depth=50,
  34. frozen_stages=1,
  35. init_cfg=dict(checkpoint='torchvision://resnet50', type='Pretrained'),
  36. norm_cfg=dict(requires_grad=False, type='BN'),
  37. norm_eval=True,
  38. num_stages=4,
  39. out_indices=(
  40. 1,
  41. 2,
  42. 3,
  43. ),
  44. style='pytorch',
  45. type='ResNet'),
  46. bbox_head=dict(
  47. loss_bbox=dict(loss_weight=5.0, type='L1Loss'),
  48. loss_cls=dict(
  49. alpha=0.25,
  50. gamma=2.0,
  51. loss_weight=2.0,
  52. type='FocalLoss',
  53. use_sigmoid=True),
  54. loss_iou=dict(loss_weight=2.0, type='GIoULoss'),
  55. num_classes=1,
  56. sync_cls_avg_factor=True,
  57. type='DeformableDETRHead'),
  58. data_preprocessor=dict(
  59. bgr_to_rgb=True,
  60. mean=[
  61. 123.675,
  62. 116.28,
  63. 103.53,
  64. ],
  65. pad_size_divisor=1,
  66. std=[
  67. 58.395,
  68. 57.12,
  69. 57.375,
  70. ],
  71. type='DetDataPreprocessor'),
  72. decoder=dict(
  73. layer_cfg=dict(
  74. cross_attn_cfg=dict(batch_first=True, embed_dims=256),
  75. ffn_cfg=dict(
  76. embed_dims=256, feedforward_channels=1024, ffn_drop=0.1),
  77. self_attn_cfg=dict(
  78. batch_first=True, dropout=0.1, embed_dims=256, num_heads=8)),
  79. num_layers=6,
  80. post_norm_cfg=None,
  81. return_intermediate=True),
  82. encoder=dict(
  83. layer_cfg=dict(
  84. ffn_cfg=dict(
  85. embed_dims=256, feedforward_channels=1024, ffn_drop=0.1),
  86. self_attn_cfg=dict(batch_first=True, embed_dims=256)),
  87. num_layers=6),
  88. neck=dict(
  89. act_cfg=None,
  90. in_channels=[
  91. 512,
  92. 1024,
  93. 2048,
  94. ],
  95. kernel_size=1,
  96. norm_cfg=dict(num_groups=32, type='GN'),
  97. num_outs=4,
  98. out_channels=256,
  99. type='ChannelMapper'),
  100. num_feature_levels=4,
  101. num_queries=300,
  102. positional_encoding=dict(normalize=True, num_feats=128, offset=-0.5),
  103. test_cfg=dict(max_per_img=100),
  104. train_cfg=dict(
  105. assigner=dict(
  106. match_costs=[
  107. dict(type='FocalLossCost', weight=2.0),
  108. dict(box_format='xywh', type='BBoxL1Cost', weight=5.0),
  109. dict(iou_mode='giou', type='IoUCost', weight=2.0),
  110. ],
  111. type='HungarianAssigner')),
  112. type='DeformableDETR',
  113. with_box_refine=False)
  114. optim_wrapper = dict(
  115. clip_grad=dict(max_norm=0.1, norm_type=2),
  116. optimizer=dict(lr=0.0002, type='AdamW', weight_decay=0.0001),
  117. paramwise_cfg=dict(
  118. custom_keys=dict(
  119. backbone=dict(lr_mult=0.1),
  120. reference_points=dict(lr_mult=0.1),
  121. sampling_offsets=dict(lr_mult=0.1))),
  122. type='OptimWrapper')
  123. param_scheduler = [
  124. dict(
  125. begin=0,
  126. by_epoch=True,
  127. end=50,
  128. gamma=0.1,
  129. milestones=[
  130. 40,
  131. ],
  132. type='MultiStepLR'),
  133. ]
  134. resume = False
  135. test_cfg = dict(type='TestLoop')
  136. test_dataloader = dict(
  137. batch_size=1,
  138. dataset=dict(
  139. ann_file='Val/Val.json',
  140. backend_args=None,
  141. data_prefix=dict(img='Val/'),
  142. data_root='../../../media/tricolops/T7/Dataset/coco_format_bd/',
  143. metainfo=dict(classes=('barcode', ), palette=[
  144. (
  145. 220,
  146. 20,
  147. 60,
  148. ),
  149. ]),
  150. pipeline=[
  151. dict(backend_args=None, type='LoadImageFromFile'),
  152. dict(keep_ratio=True, scale=(
  153. 640,
  154. 640,
  155. ), type='Resize'),
  156. dict(type='LoadAnnotations', with_bbox=True),
  157. dict(
  158. meta_keys=(
  159. 'img_id',
  160. 'img_path',
  161. 'ori_shape',
  162. 'img_shape',
  163. 'scale_factor',
  164. ),
  165. type='PackDetInputs'),
  166. ],
  167. test_mode=True,
  168. type='CocoDataset'),
  169. drop_last=False,
  170. num_workers=2,
  171. persistent_workers=True,
  172. sampler=dict(shuffle=False, type='DefaultSampler'))
  173. test_evaluator = dict(
  174. ann_file='../../../media/tricolops/T7/Dataset/coco_format_bd/Val/Val.json',
  175. backend_args=None,
  176. format_only=False,
  177. metric='bbox',
  178. type='CocoMetric')
  179. test_pipeline = [
  180. dict(backend_args=None, type='LoadImageFromFile'),
  181. dict(keep_ratio=True, scale=(
  182. 640,
  183. 640,
  184. ), type='Resize'),
  185. dict(type='LoadAnnotations', with_bbox=True),
  186. dict(
  187. meta_keys=(
  188. 'img_id',
  189. 'img_path',
  190. 'ori_shape',
  191. 'img_shape',
  192. 'scale_factor',
  193. ),
  194. type='PackDetInputs'),
  195. ]
  196. train_cfg = dict(max_epochs=250, type='EpochBasedTrainLoop', val_interval=10)
  197. train_dataloader = dict(
  198. batch_sampler=dict(type='AspectRatioBatchSampler'),
  199. batch_size=4,
  200. dataset=dict(
  201. ann_file='Train/Train.json',
  202. backend_args=None,
  203. data_prefix=dict(img='Train/'),
  204. data_root='../../../media/tricolops/T7/Dataset/coco_format_bd/',
  205. filter_cfg=dict(filter_empty_gt=False, min_size=32),
  206. metainfo=dict(classes=('barcode', ), palette=[
  207. (
  208. 220,
  209. 20,
  210. 60,
  211. ),
  212. ]),
  213. pipeline=[
  214. dict(backend_args=None, type='LoadImageFromFile'),
  215. dict(type='LoadAnnotations', with_bbox=True),
  216. dict(prob=0.5, type='RandomFlip'),
  217. dict(
  218. keep_ratio=True,
  219. ratio_range=(
  220. 0.5,
  221. 2.0,
  222. ),
  223. scale=(
  224. 640,
  225. 640,
  226. ),
  227. type='RandomResize'),
  228. dict(crop_size=(
  229. 640,
  230. 640,
  231. ), type='RandomCrop'),
  232. dict(type='PackDetInputs'),
  233. ],
  234. type='CocoDataset'),
  235. num_workers=2,
  236. persistent_workers=True,
  237. sampler=dict(shuffle=True, type='DefaultSampler'))
  238. train_pipeline = [
  239. dict(backend_args=None, type='LoadImageFromFile'),
  240. dict(type='LoadAnnotations', with_bbox=True),
  241. dict(prob=0.5, type='RandomFlip'),
  242. dict(
  243. keep_ratio=True,
  244. ratio_range=(
  245. 0.5,
  246. 2.0,
  247. ),
  248. scale=(
  249. 640,
  250. 640,
  251. ),
  252. type='RandomResize'),
  253. dict(crop_size=(
  254. 640,
  255. 640,
  256. ), type='RandomCrop'),
  257. dict(type='PackDetInputs'),
  258. ]
  259. val_cfg = dict(type='ValLoop')
  260. val_dataloader = dict(
  261. batch_size=1,
  262. dataset=dict(
  263. ann_file='Val/Val.json',
  264. backend_args=None,
  265. data_prefix=dict(img='Val/'),
  266. data_root='../../../media/tricolops/T7/Dataset/coco_format_bd/',
  267. metainfo=dict(classes=('barcode', ), palette=[
  268. (
  269. 220,
  270. 20,
  271. 60,
  272. ),
  273. ]),
  274. pipeline=[
  275. dict(backend_args=None, type='LoadImageFromFile'),
  276. dict(keep_ratio=True, scale=(
  277. 640,
  278. 640,
  279. ), type='Resize'),
  280. dict(type='LoadAnnotations', with_bbox=True),
  281. dict(
  282. meta_keys=(
  283. 'img_id',
  284. 'img_path',
  285. 'ori_shape',
  286. 'img_shape',
  287. 'scale_factor',
  288. ),
  289. type='PackDetInputs'),
  290. ],
  291. test_mode=True,
  292. type='CocoDataset'),
  293. drop_last=False,
  294. num_workers=2,
  295. persistent_workers=True,
  296. sampler=dict(shuffle=False, type='DefaultSampler'))
  297. val_evaluator = dict(
  298. ann_file='../../../media/tricolops/T7/Dataset/coco_format_bd/Val/Val.json',
  299. backend_args=None,
  300. format_only=False,
  301. metric='bbox',
  302. type='CocoMetric')
  303. vis_backends = [
  304. dict(type='LocalVisBackend'),
  305. ]
  306. visualizer = dict(
  307. name='visualizer',
  308. type='DetLocalVisualizer',
  309. vis_backends=[
  310. dict(type='LocalVisBackend'),
  311. ])
  312. work_dir = 'result'