panoptic_fpn_r50_fpn_1x_coco.py 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. # Copyright (c) OpenMMLab. All rights reserved.
  2. # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa
  3. # mmcv >= 2.0.1
  4. # mmengine >= 0.8.0
  5. from mmengine.config import read_base
  6. with read_base():
  7. from .._base_.models.mask_rcnn_r50_fpn import *
  8. from .._base_.datasets.coco_panoptic import *
  9. from .._base_.schedules.schedule_1x import *
  10. from .._base_.default_runtime import *
  11. from mmcv.ops import nms
  12. from torch.nn import GroupNorm
  13. from mmdet.models.data_preprocessors.data_preprocessor import \
  14. DetDataPreprocessor
  15. from mmdet.models.detectors.panoptic_fpn import PanopticFPN
  16. from mmdet.models.losses.cross_entropy_loss import CrossEntropyLoss
  17. from mmdet.models.seg_heads.panoptic_fpn_head import PanopticFPNHead
  18. from mmdet.models.seg_heads.panoptic_fusion_heads import HeuristicFusionHead
  19. model.update(
  20. dict(
  21. type=PanopticFPN,
  22. data_preprocessor=dict(
  23. type=DetDataPreprocessor,
  24. mean=[123.675, 116.28, 103.53],
  25. std=[58.395, 57.12, 57.375],
  26. bgr_to_rgb=True,
  27. pad_size_divisor=32,
  28. pad_mask=True,
  29. mask_pad_value=0,
  30. pad_seg=True,
  31. seg_pad_value=255),
  32. semantic_head=dict(
  33. type=PanopticFPNHead,
  34. num_things_classes=80,
  35. num_stuff_classes=53,
  36. in_channels=256,
  37. inner_channels=128,
  38. start_level=0,
  39. end_level=4,
  40. norm_cfg=dict(type=GroupNorm, num_groups=32, requires_grad=True),
  41. conv_cfg=None,
  42. loss_seg=dict(
  43. type=CrossEntropyLoss, ignore_index=255, loss_weight=0.5)),
  44. panoptic_fusion_head=dict(
  45. type=HeuristicFusionHead,
  46. num_things_classes=80,
  47. num_stuff_classes=53),
  48. test_cfg=dict(
  49. rcnn=dict(
  50. score_thr=0.6,
  51. nms=dict(type=nms, iou_threshold=0.5, class_agnostic=True),
  52. max_per_img=100,
  53. mask_thr_binary=0.5),
  54. # used in HeuristicFusionHead
  55. panoptic=dict(mask_overlap=0.5, stuff_area_limit=4096))))
  56. # Forced to remove NumClassCheckHook
  57. custom_hooks = []