openimagesv6.py 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. _base_ = [
  2. '../_base_/models/faster-rcnn_r50_fpn.py',
  3. '../_base_/schedules/schedule_1x.py',
  4. '../_base_/default_runtime.py',
  5. ]
  6. model = dict(roi_head=dict(bbox_head=dict(num_classes=601)))
  7. # dsdl dataset settings
  8. # please visit our platform [OpenDataLab](https://opendatalab.com/)
  9. # to downloaded dsdl dataset.
  10. dataset_type = 'DSDLDetDataset'
  11. data_root = 'data/OpenImages'
  12. train_ann = 'dsdl/set-train/train.yaml'
  13. val_ann = 'dsdl/set-val/val.yaml'
  14. specific_key_path = dict(
  15. image_level_labels='./image_labels/*/label',
  16. Label='./objects/*/label',
  17. is_group_of='./objects/*/isgroupof',
  18. )
  19. backend_args = dict(
  20. backend='petrel',
  21. path_mapping=dict({'data/': 's3://open_dataset_original/'}))
  22. train_pipeline = [
  23. dict(type='LoadImageFromFile', backend_args=backend_args),
  24. dict(type='LoadAnnotations', with_bbox=True),
  25. dict(type='Resize', scale=(1024, 800), keep_ratio=True),
  26. dict(type='RandomFlip', prob=0.5),
  27. dict(type='PackDetInputs')
  28. ]
  29. test_pipeline = [
  30. dict(type='LoadImageFromFile', backend_args=backend_args),
  31. dict(type='Resize', scale=(1024, 800), keep_ratio=True),
  32. dict(type='LoadAnnotations', with_bbox=True),
  33. dict(
  34. type='PackDetInputs',
  35. meta_keys=('img_id', 'img_path', 'ori_shape', 'img_shape',
  36. 'scale_factor', 'instances', 'image_level_labels'))
  37. ]
  38. train_dataloader = dict(
  39. sampler=dict(type='ClassAwareSampler', num_sample_class=1),
  40. dataset=dict(
  41. type=dataset_type,
  42. with_imagelevel_label=True,
  43. with_hierarchy=True,
  44. specific_key_path=specific_key_path,
  45. data_root=data_root,
  46. ann_file=train_ann,
  47. filter_cfg=dict(filter_empty_gt=True, min_size=32, bbox_min_size=32),
  48. pipeline=train_pipeline))
  49. val_dataloader = dict(
  50. dataset=dict(
  51. type=dataset_type,
  52. with_imagelevel_label=True,
  53. with_hierarchy=True,
  54. specific_key_path=specific_key_path,
  55. data_root=data_root,
  56. ann_file=val_ann,
  57. test_mode=True,
  58. pipeline=test_pipeline))
  59. test_dataloader = val_dataloader
  60. default_hooks = dict(logger=dict(type='LoggerHook', interval=1000), )
  61. train_cfg = dict(type='EpochBasedTrainLoop', max_epochs=3, val_interval=1)
  62. param_scheduler = [
  63. dict(
  64. type='LinearLR', start_factor=0.001, by_epoch=False, begin=0, end=500),
  65. dict(
  66. type='MultiStepLR',
  67. begin=0,
  68. end=12,
  69. by_epoch=True,
  70. milestones=[1, 2],
  71. gamma=0.1)
  72. ]
  73. # optimizer
  74. optim_wrapper = dict(
  75. type='OptimWrapper',
  76. optimizer=dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0001))
  77. val_evaluator = dict(
  78. type='OpenImagesMetric',
  79. iou_thrs=0.5,
  80. ioa_thrs=0.5,
  81. use_group_of=True,
  82. get_supercategory=True)
  83. test_evaluator = val_evaluator