mot_challenge.py 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. # dataset settings
  2. dataset_type = 'MOTChallengeDataset'
  3. data_root = 'data/MOT17/'
  4. img_scale = (1088, 1088)
  5. backend_args = None
  6. # data pipeline
  7. train_pipeline = [
  8. dict(
  9. type='UniformRefFrameSample',
  10. num_ref_imgs=1,
  11. frame_range=10,
  12. filter_key_img=True),
  13. dict(
  14. type='TransformBroadcaster',
  15. share_random_params=True,
  16. transforms=[
  17. dict(type='LoadImageFromFile', backend_args=backend_args),
  18. dict(type='LoadTrackAnnotations'),
  19. dict(
  20. type='RandomResize',
  21. scale=img_scale,
  22. ratio_range=(0.8, 1.2),
  23. keep_ratio=True,
  24. clip_object_border=False),
  25. dict(type='PhotoMetricDistortion')
  26. ]),
  27. dict(
  28. type='TransformBroadcaster',
  29. # different cropped positions for different frames
  30. share_random_params=False,
  31. transforms=[
  32. dict(
  33. type='RandomCrop', crop_size=img_scale, bbox_clip_border=False)
  34. ]),
  35. dict(
  36. type='TransformBroadcaster',
  37. share_random_params=True,
  38. transforms=[
  39. dict(type='RandomFlip', prob=0.5),
  40. ]),
  41. dict(type='PackTrackInputs')
  42. ]
  43. test_pipeline = [
  44. dict(
  45. type='TransformBroadcaster',
  46. transforms=[
  47. dict(type='LoadImageFromFile', backend_args=backend_args),
  48. dict(type='Resize', scale=img_scale, keep_ratio=True),
  49. dict(type='LoadTrackAnnotations')
  50. ]),
  51. dict(type='PackTrackInputs')
  52. ]
  53. # dataloader
  54. train_dataloader = dict(
  55. batch_size=2,
  56. num_workers=2,
  57. persistent_workers=True,
  58. sampler=dict(type='TrackImgSampler'), # image-based sampling
  59. dataset=dict(
  60. type=dataset_type,
  61. data_root=data_root,
  62. visibility_thr=-1,
  63. ann_file='annotations/half-train_cocoformat.json',
  64. data_prefix=dict(img_path='train'),
  65. metainfo=dict(classes=('pedestrian', )),
  66. pipeline=train_pipeline))
  67. val_dataloader = dict(
  68. batch_size=1,
  69. num_workers=2,
  70. persistent_workers=True,
  71. # Now we support two ways to test, image_based and video_based
  72. # if you want to use video_based sampling, you can use as follows
  73. # sampler=dict(type='DefaultSampler', shuffle=False, round_up=False),
  74. sampler=dict(type='TrackImgSampler'), # image-based sampling
  75. dataset=dict(
  76. type=dataset_type,
  77. data_root=data_root,
  78. ann_file='annotations/half-val_cocoformat.json',
  79. data_prefix=dict(img_path='train'),
  80. test_mode=True,
  81. pipeline=test_pipeline))
  82. test_dataloader = val_dataloader
  83. # evaluator
  84. val_evaluator = dict(
  85. type='MOTChallengeMetric', metric=['HOTA', 'CLEAR', 'Identity'])
  86. test_evaluator = val_evaluator