├── .DS_Store ├── .dev ├── gather_models.py └── upload_modelzoo.py ├── .github ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── ISSUE_TEMPLATE │ ├── config.yml │ ├── error-report.md │ ├── feature_request.md │ └── general_questions.md └── workflows │ ├── build.yml │ └── deploy.yml ├── .gitignore ├── .pre-commit-config.yaml ├── .readthedocs.yml ├── LICENSE ├── QR.jpeg ├── README.md ├── README_zh-CN.md ├── WechatIMG42.jpeg ├── configs ├── _base_ │ ├── datasets │ │ ├── ade20k.py │ │ ├── chase_db1.py │ │ ├── cityscapes.py │ │ ├── cityscapes_769x769.py │ │ ├── drive.py │ │ ├── hrf.py │ │ ├── pascal_context.py │ │ ├── pascal_voc12.py │ │ ├── pascal_voc12_aug.py │ │ └── stare.py │ ├── default_runtime.py │ ├── models │ │ ├── ann_r50-d8.py │ │ ├── apcnet_r50-d8.py │ │ ├── ccnet_r50-d8.py │ │ ├── cgnet.py │ │ ├── danet_r50-d8.py │ │ ├── deeplabv3_r50-d8.py │ │ ├── deeplabv3_unet_s5-d16.py │ │ ├── deeplabv3plus_r50-d8.py │ │ ├── dmnet_r50-d8.py │ │ ├── dnl_r50-d8.py │ │ ├── emanet_r50-d8.py │ │ ├── encnet_r50-d8.py │ │ ├── fast_scnn.py │ │ ├── fcn_hr18.py │ │ ├── fcn_r50-d8.py │ │ ├── fcn_unet_s5-d16.py │ │ ├── fpn_r50.py │ │ ├── gcnet_r50-d8.py │ │ ├── lraspp_m-v3-d8.py │ │ ├── nonlocal_r50-d8.py │ │ ├── ocrnet_hr18.py │ │ ├── ocrnet_r50-d8.py │ │ ├── pointrend_r50.py │ │ ├── psanet_r50-d8.py │ │ ├── pspnet_r50-d8.py │ │ ├── pspnet_unet_s5-d16.py │ │ └── upernet_r50.py │ └── schedules │ │ ├── schedule_160k.py │ │ ├── schedule_20k.py │ │ ├── schedule_40k.py │ │ └── schedule_80k.py ├── ann │ ├── README.md │ ├── ann_r101-d8_512x1024_40k_cityscapes.py │ ├── ann_r101-d8_512x1024_80k_cityscapes.py │ ├── ann_r101-d8_512x512_160k_ade20k.py │ ├── ann_r101-d8_512x512_20k_voc12aug.py │ ├── ann_r101-d8_512x512_40k_voc12aug.py │ ├── ann_r101-d8_512x512_80k_ade20k.py │ ├── ann_r101-d8_769x769_40k_cityscapes.py │ ├── ann_r101-d8_769x769_80k_cityscapes.py │ ├── ann_r50-d8_512x1024_40k_cityscapes.py │ ├── ann_r50-d8_512x1024_80k_cityscapes.py │ ├── ann_r50-d8_512x512_160k_ade20k.py │ ├── ann_r50-d8_512x512_20k_voc12aug.py │ ├── ann_r50-d8_512x512_40k_voc12aug.py │ ├── ann_r50-d8_512x512_80k_ade20k.py │ ├── ann_r50-d8_769x769_40k_cityscapes.py │ └── ann_r50-d8_769x769_80k_cityscapes.py ├── apcnet │ ├── README.md │ ├── apcnet_r101-d8_512x1024_40k_cityscapes.py │ ├── apcnet_r101-d8_512x1024_80k_cityscapes.py │ ├── apcnet_r101-d8_512x512_160k_ade20k.py │ ├── apcnet_r101-d8_512x512_80k_ade20k.py │ ├── apcnet_r101-d8_769x769_40k_cityscapes.py │ ├── apcnet_r101-d8_769x769_80k_cityscapes.py │ ├── apcnet_r50-d8_512x1024_40k_cityscapes.py │ ├── apcnet_r50-d8_512x1024_80k_cityscapes.py │ ├── apcnet_r50-d8_512x512_160k_ade20k.py │ ├── apcnet_r50-d8_512x512_80k_ade20k.py │ ├── apcnet_r50-d8_769x769_40k_cityscapes.py │ └── apcnet_r50-d8_769x769_80k_cityscapes.py ├── ccnet │ ├── README.md │ ├── ccnet_r101-d8_512x1024_40k_cityscapes.py │ ├── ccnet_r101-d8_512x1024_80k_cityscapes.py │ ├── ccnet_r101-d8_512x512_160k_ade20k.py │ ├── ccnet_r101-d8_512x512_20k_voc12aug.py │ ├── ccnet_r101-d8_512x512_40k_voc12aug.py │ ├── ccnet_r101-d8_512x512_80k_ade20k.py │ ├── ccnet_r101-d8_769x769_40k_cityscapes.py │ ├── ccnet_r101-d8_769x769_80k_cityscapes.py │ ├── ccnet_r50-d8_512x1024_40k_cityscapes.py │ ├── ccnet_r50-d8_512x1024_80k_cityscapes.py │ ├── ccnet_r50-d8_512x512_160k_ade20k.py │ ├── ccnet_r50-d8_512x512_20k_voc12aug.py │ ├── ccnet_r50-d8_512x512_40k_voc12aug.py │ ├── ccnet_r50-d8_512x512_80k_ade20k.py │ ├── ccnet_r50-d8_769x769_40k_cityscapes.py │ └── ccnet_r50-d8_769x769_80k_cityscapes.py ├── cgnet │ ├── README.md │ ├── cgnet_512x1024_60k_cityscapes.py │ └── cgnet_680x680_60k_cityscapes.py ├── danet │ ├── README.md │ ├── danet_r101-d8_512x1024_40k_cityscapes.py │ ├── danet_r101-d8_512x1024_80k_cityscapes.py │ ├── danet_r101-d8_512x512_160k_ade20k.py │ ├── danet_r101-d8_512x512_20k_voc12aug.py │ ├── danet_r101-d8_512x512_40k_voc12aug.py │ ├── danet_r101-d8_512x512_80k_ade20k.py │ ├── danet_r101-d8_769x769_40k_cityscapes.py │ ├── danet_r101-d8_769x769_80k_cityscapes.py │ ├── danet_r50-d8_512x1024_40k_cityscapes.py │ ├── danet_r50-d8_512x1024_80k_cityscapes.py │ ├── danet_r50-d8_512x512_160k_ade20k.py │ ├── danet_r50-d8_512x512_20k_voc12aug.py │ ├── danet_r50-d8_512x512_40k_voc12aug.py │ ├── danet_r50-d8_512x512_80k_ade20k.py │ ├── danet_r50-d8_769x769_40k_cityscapes.py │ └── danet_r50-d8_769x769_80k_cityscapes.py ├── deeplabv3 │ ├── README.md │ ├── deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes.py │ ├── deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes.py │ ├── deeplabv3_r101-d8_480x480_40k_pascal_context.py │ ├── deeplabv3_r101-d8_480x480_80k_pascal_context.py │ ├── deeplabv3_r101-d8_512x1024_40k_cityscapes.py │ ├── deeplabv3_r101-d8_512x1024_80k_cityscapes.py │ ├── deeplabv3_r101-d8_512x512_160k_ade20k.py │ ├── deeplabv3_r101-d8_512x512_20k_voc12aug.py │ ├── deeplabv3_r101-d8_512x512_40k_voc12aug.py │ ├── deeplabv3_r101-d8_512x512_80k_ade20k.py │ ├── deeplabv3_r101-d8_769x769_40k_cityscapes.py │ ├── deeplabv3_r101-d8_769x769_80k_cityscapes.py │ ├── deeplabv3_r101b-d8_512x1024_80k_cityscapes.py │ ├── deeplabv3_r101b-d8_769x769_80k_cityscapes.py │ ├── deeplabv3_r18-d8_512x1024_80k_cityscapes.py │ ├── deeplabv3_r18-d8_769x769_80k_cityscapes.py │ ├── deeplabv3_r18b-d8_512x1024_80k_cityscapes.py │ ├── deeplabv3_r18b-d8_769x769_80k_cityscapes.py │ ├── deeplabv3_r50-d8_480x480_40k_pascal_context.py │ ├── deeplabv3_r50-d8_480x480_80k_pascal_context.py │ ├── deeplabv3_r50-d8_512x1024_40k_cityscapes.py │ ├── deeplabv3_r50-d8_512x1024_80k_cityscapes.py │ ├── deeplabv3_r50-d8_512x512_160k_ade20k.py │ ├── deeplabv3_r50-d8_512x512_20k_voc12aug.py │ ├── deeplabv3_r50-d8_512x512_40k_voc12aug.py │ ├── deeplabv3_r50-d8_512x512_80k_ade20k.py │ ├── deeplabv3_r50-d8_769x769_40k_cityscapes.py │ ├── deeplabv3_r50-d8_769x769_80k_cityscapes.py │ ├── deeplabv3_r50b-d8_512x1024_80k_cityscapes.py │ └── deeplabv3_r50b-d8_769x769_80k_cityscapes.py ├── deeplabv3plus │ ├── README.md │ ├── deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes.py │ ├── deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes.py │ ├── deeplabv3plus_r101-d8_480x480_40k_pascal_context.py │ ├── deeplabv3plus_r101-d8_480x480_80k_pascal_context.py │ ├── deeplabv3plus_r101-d8_512x1024_40k_cityscapes.py │ ├── deeplabv3plus_r101-d8_512x1024_80k_cityscapes.py │ ├── deeplabv3plus_r101-d8_512x512_160k_ade20k.py │ ├── deeplabv3plus_r101-d8_512x512_20k_voc12aug.py │ ├── deeplabv3plus_r101-d8_512x512_40k_voc12aug.py │ ├── deeplabv3plus_r101-d8_512x512_80k_ade20k.py │ ├── deeplabv3plus_r101-d8_769x769_40k_cityscapes.py │ ├── deeplabv3plus_r101-d8_769x769_80k_cityscapes.py │ ├── deeplabv3plus_r101b-d8_512x1024_80k_cityscapes.py │ ├── deeplabv3plus_r101b-d8_769x769_80k_cityscapes.py │ ├── deeplabv3plus_r18-d8_512x1024_80k_cityscapes.py │ ├── deeplabv3plus_r18-d8_769x769_80k_cityscapes.py │ ├── deeplabv3plus_r18b-d8_512x1024_80k_cityscapes.py │ ├── deeplabv3plus_r18b-d8_769x769_80k_cityscapes.py │ ├── deeplabv3plus_r50-d8_480x480_40k_pascal_context.py │ ├── deeplabv3plus_r50-d8_480x480_80k_pascal_context.py │ ├── deeplabv3plus_r50-d8_512x1024_40k_cityscapes.py │ ├── deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py │ ├── deeplabv3plus_r50-d8_512x512_160k_ade20k.py │ ├── deeplabv3plus_r50-d8_512x512_20k_voc12aug.py │ ├── deeplabv3plus_r50-d8_512x512_40k_voc12aug.py │ ├── deeplabv3plus_r50-d8_512x512_80k_ade20k.py │ ├── deeplabv3plus_r50-d8_769x769_40k_cityscapes.py │ ├── deeplabv3plus_r50-d8_769x769_80k_cityscapes.py │ ├── deeplabv3plus_r50b-d8_512x1024_80k_cityscapes.py │ └── deeplabv3plus_r50b-d8_769x769_80k_cityscapes.py ├── distiller │ └── cwd │ │ ├── README.md │ │ ├── cwd_psp_r101-d8_distill_psp_r18_d8_512_1024_80k_cityscapes.py │ │ ├── cwd_w_10_t_1_psp_r101-d8_distill_psp_r18_d8_512x512_2x4_40k_ade20k.py │ │ ├── cwd_w_10_t_1_psp_r101-d8_distill_psp_r18_d8_512x512_4x4_80k_ade20k.py │ │ └── cwd_w_10_t_1_psp_r101-d8_distill_psp_r18_d8_512x512_8x1_40k_ade20k.py ├── dmnet │ ├── README.md │ ├── dmnet_r101-d8_512x1024_40k_cityscapes.py │ ├── dmnet_r101-d8_512x1024_80k_cityscapes.py │ ├── dmnet_r101-d8_512x512_160k_ade20k.py │ ├── dmnet_r101-d8_512x512_80k_ade20k.py │ ├── dmnet_r101-d8_769x769_40k_cityscapes.py │ ├── dmnet_r101-d8_769x769_80k_cityscapes.py │ ├── dmnet_r50-d8_512x1024_40k_cityscapes.py │ ├── dmnet_r50-d8_512x1024_80k_cityscapes.py │ ├── dmnet_r50-d8_512x512_160k_ade20k.py │ ├── dmnet_r50-d8_512x512_80k_ade20k.py │ ├── dmnet_r50-d8_769x769_40k_cityscapes.py │ └── dmnet_r50-d8_769x769_80k_cityscapes.py ├── dnlnet │ ├── README.md │ ├── dnl_r101-d8_512x1024_40k_cityscapes.py │ ├── dnl_r101-d8_512x1024_80k_cityscapes.py │ ├── dnl_r101-d8_512x512_160k_ade20k.py │ ├── dnl_r101-d8_512x512_80k_ade20k.py │ ├── dnl_r101-d8_769x769_40k_cityscapes.py │ ├── dnl_r101-d8_769x769_80k_cityscapes.py │ ├── dnl_r50-d8_512x1024_40k_cityscapes.py │ ├── dnl_r50-d8_512x1024_80k_cityscapes.py │ ├── dnl_r50-d8_512x512_160k_ade20k.py │ ├── dnl_r50-d8_512x512_80k_ade20k.py │ ├── dnl_r50-d8_769x769_40k_cityscapes.py │ └── dnl_r50-d8_769x769_80k_cityscapes.py ├── emanet │ ├── README.md │ ├── emanet_r101-d8_512x1024_80k_cityscapes.py │ ├── emanet_r101-d8_769x769_80k_cityscapes.py │ ├── emanet_r50-d8_512x1024_80k_cityscapes.py │ └── emanet_r50-d8_769x769_80k_cityscapes.py ├── encnet │ ├── README.md │ ├── encnet_r101-d8_512x1024_40k_cityscapes.py │ ├── encnet_r101-d8_512x1024_80k_cityscapes.py │ ├── encnet_r101-d8_512x512_160k_ade20k.py │ ├── encnet_r101-d8_512x512_20k_voc12aug.py │ ├── encnet_r101-d8_512x512_40k_voc12aug.py │ ├── encnet_r101-d8_512x512_80k_ade20k.py │ ├── encnet_r101-d8_769x769_40k_cityscapes.py │ ├── encnet_r101-d8_769x769_80k_cityscapes.py │ ├── encnet_r50-d8_512x1024_40k_cityscapes.py │ ├── encnet_r50-d8_512x1024_80k_cityscapes.py │ ├── encnet_r50-d8_512x512_160k_ade20k.py │ ├── encnet_r50-d8_512x512_20k_voc12aug.py │ ├── encnet_r50-d8_512x512_40k_voc12aug.py │ ├── encnet_r50-d8_512x512_80k_ade20k.py │ ├── encnet_r50-d8_769x769_40k_cityscapes.py │ ├── encnet_r50-d8_769x769_80k_cityscapes.py │ └── encnet_r50s-d8_512x512_80k_ade20k.py ├── fastscnn │ ├── README.md │ └── fast_scnn_4x8_80k_lr0.12_cityscapes.py ├── fcn │ ├── README.md │ ├── fcn_r101-d8_480x480_40k_pascal_context.py │ ├── fcn_r101-d8_480x480_80k_pascal_context.py │ ├── fcn_r101-d8_512x1024_40k_cityscapes.py │ ├── fcn_r101-d8_512x1024_80k_cityscapes.py │ ├── fcn_r101-d8_512x512_160k_ade20k.py │ ├── fcn_r101-d8_512x512_20k_voc12aug.py │ ├── fcn_r101-d8_512x512_40k_voc12aug.py │ ├── fcn_r101-d8_512x512_80k_ade20k.py │ ├── fcn_r101-d8_769x769_40k_cityscapes.py │ ├── fcn_r101-d8_769x769_80k_cityscapes.py │ ├── fcn_r101b-d8_512x1024_80k_cityscapes.py │ ├── fcn_r101b-d8_769x769_80k_cityscapes.py │ ├── fcn_r18-d8_512x1024_80k_cityscapes.py │ ├── fcn_r18-d8_769x769_80k_cityscapes.py │ ├── fcn_r18b-d8_512x1024_80k_cityscapes.py │ ├── fcn_r18b-d8_769x769_80k_cityscapes.py │ ├── fcn_r50-d8_480x480_40k_pascal_context.py │ ├── fcn_r50-d8_480x480_80k_pascal_context.py │ ├── fcn_r50-d8_512x1024_40k_cityscapes.py │ ├── fcn_r50-d8_512x1024_80k_cityscapes.py │ ├── fcn_r50-d8_512x512_160k_ade20k.py │ ├── fcn_r50-d8_512x512_20k_voc12aug.py │ ├── fcn_r50-d8_512x512_40k_voc12aug.py │ ├── fcn_r50-d8_512x512_80k_ade20k.py │ ├── fcn_r50-d8_769x769_40k_cityscapes.py │ ├── fcn_r50-d8_769x769_80k_cityscapes.py │ ├── fcn_r50b-d8_512x1024_80k_cityscapes.py │ └── fcn_r50b-d8_769x769_80k_cityscapes.py ├── fp16 │ ├── README.md │ ├── deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes.py │ ├── deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes.py │ ├── fcn_r101-d8_512x1024_80k_fp16_cityscapes.py │ └── pspnet_r101-d8_512x1024_80k_fp16_cityscapes.py ├── gcnet │ ├── README.md │ ├── gcnet_r101-d8_512x1024_40k_cityscapes.py │ ├── gcnet_r101-d8_512x1024_80k_cityscapes.py │ ├── gcnet_r101-d8_512x512_160k_ade20k.py │ ├── gcnet_r101-d8_512x512_20k_voc12aug.py │ ├── gcnet_r101-d8_512x512_40k_voc12aug.py │ ├── gcnet_r101-d8_512x512_80k_ade20k.py │ ├── gcnet_r101-d8_769x769_40k_cityscapes.py │ ├── gcnet_r101-d8_769x769_80k_cityscapes.py │ ├── gcnet_r50-d8_512x1024_40k_cityscapes.py │ ├── gcnet_r50-d8_512x1024_80k_cityscapes.py │ ├── gcnet_r50-d8_512x512_160k_ade20k.py │ ├── gcnet_r50-d8_512x512_20k_voc12aug.py │ ├── gcnet_r50-d8_512x512_40k_voc12aug.py │ ├── gcnet_r50-d8_512x512_80k_ade20k.py │ ├── gcnet_r50-d8_769x769_40k_cityscapes.py │ └── gcnet_r50-d8_769x769_80k_cityscapes.py ├── hrnet │ ├── README.md │ ├── fcn_hr18_480x480_40k_pascal_context.py │ ├── fcn_hr18_480x480_80k_pascal_context.py │ ├── fcn_hr18_512x1024_160k_cityscapes.py │ ├── fcn_hr18_512x1024_40k_cityscapes.py │ ├── fcn_hr18_512x1024_80k_cityscapes.py │ ├── fcn_hr18_512x512_160k_ade20k.py │ ├── fcn_hr18_512x512_20k_voc12aug.py │ ├── fcn_hr18_512x512_40k_voc12aug.py │ ├── fcn_hr18_512x512_80k_ade20k.py │ ├── fcn_hr18s_480x480_40k_pascal_context.py │ ├── fcn_hr18s_480x480_80k_pascal_context.py │ ├── fcn_hr18s_512x1024_160k_cityscapes.py │ ├── fcn_hr18s_512x1024_40k_cityscapes.py │ ├── fcn_hr18s_512x1024_80k_cityscapes.py │ ├── fcn_hr18s_512x512_160k_ade20k.py │ ├── fcn_hr18s_512x512_20k_voc12aug.py │ ├── fcn_hr18s_512x512_40k_voc12aug.py │ ├── fcn_hr18s_512x512_80k_ade20k.py │ ├── fcn_hr48_480x480_40k_pascal_context.py │ ├── fcn_hr48_480x480_80k_pascal_context.py │ ├── fcn_hr48_512x1024_160k_cityscapes.py │ ├── fcn_hr48_512x1024_40k_cityscapes.py │ ├── fcn_hr48_512x1024_80k_cityscapes.py │ ├── fcn_hr48_512x512_160k_ade20k.py │ ├── fcn_hr48_512x512_20k_voc12aug.py │ ├── fcn_hr48_512x512_40k_voc12aug.py │ └── fcn_hr48_512x512_80k_ade20k.py ├── mobilenet_v2 │ ├── README.md │ ├── deeplabv3_m-v2-d8_512x1024_80k_cityscapes.py │ ├── deeplabv3_m-v2-d8_512x512_160k_ade20k.py │ ├── deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes.py │ ├── deeplabv3plus_m-v2-d8_512x512_160k_ade20k.py │ ├── fcn_m-v2-d8_512x1024_80k_cityscapes.py │ ├── fcn_m-v2-d8_512x512_160k_ade20k.py │ ├── pspnet_m-v2-d8_512x1024_80k_cityscapes.py │ └── pspnet_m-v2-d8_512x512_160k_ade20k.py ├── mobilenet_v3 │ ├── README.md │ ├── lraspp_m-v3-d8_512x1024_320k_cityscapes.py │ ├── lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes.py │ ├── lraspp_m-v3s-d8_512x1024_320k_cityscapes.py │ └── lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py ├── nonlocal_net │ ├── README.md │ ├── nonlocal_r101-d8_512x1024_40k_cityscapes.py │ ├── nonlocal_r101-d8_512x1024_80k_cityscapes.py │ ├── nonlocal_r101-d8_512x512_160k_ade20k.py │ ├── nonlocal_r101-d8_512x512_20k_voc12aug.py │ ├── nonlocal_r101-d8_512x512_40k_voc12aug.py │ ├── nonlocal_r101-d8_512x512_80k_ade20k.py │ ├── nonlocal_r101-d8_769x769_40k_cityscapes.py │ ├── nonlocal_r101-d8_769x769_80k_cityscapes.py │ ├── nonlocal_r50-d8_512x1024_40k_cityscapes.py │ ├── nonlocal_r50-d8_512x1024_80k_cityscapes.py │ ├── nonlocal_r50-d8_512x512_160k_ade20k.py │ ├── nonlocal_r50-d8_512x512_20k_voc12aug.py │ ├── nonlocal_r50-d8_512x512_40k_voc12aug.py │ ├── nonlocal_r50-d8_512x512_80k_ade20k.py │ ├── nonlocal_r50-d8_769x769_40k_cityscapes.py │ └── nonlocal_r50-d8_769x769_80k_cityscapes.py ├── ocrnet │ ├── README.md │ ├── ocrnet_hr18_512x1024_160k_cityscapes.py │ ├── ocrnet_hr18_512x1024_40k_cityscapes.py │ ├── ocrnet_hr18_512x1024_80k_cityscapes.py │ ├── ocrnet_hr18_512x512_160k_ade20k.py │ ├── ocrnet_hr18_512x512_20k_voc12aug.py │ ├── ocrnet_hr18_512x512_40k_voc12aug.py │ ├── ocrnet_hr18_512x512_80k_ade20k.py │ ├── ocrnet_hr18s_512x1024_160k_cityscapes.py │ ├── ocrnet_hr18s_512x1024_40k_cityscapes.py │ ├── ocrnet_hr18s_512x1024_80k_cityscapes.py │ ├── ocrnet_hr18s_512x512_160k_ade20k.py │ ├── ocrnet_hr18s_512x512_20k_voc12aug.py │ ├── ocrnet_hr18s_512x512_40k_voc12aug.py │ ├── ocrnet_hr18s_512x512_80k_ade20k.py │ ├── ocrnet_hr48_512x1024_160k_cityscapes.py │ ├── ocrnet_hr48_512x1024_40k_cityscapes.py │ ├── ocrnet_hr48_512x1024_80k_cityscapes.py │ ├── ocrnet_hr48_512x512_160k_ade20k.py │ ├── ocrnet_hr48_512x512_20k_voc12aug.py │ ├── ocrnet_hr48_512x512_40k_voc12aug.py │ ├── ocrnet_hr48_512x512_80k_ade20k.py │ ├── ocrnet_r101-d8_512x1024_40k_b16_cityscapes.py │ ├── ocrnet_r101-d8_512x1024_40k_b8_cityscapes.py │ └── ocrnet_r101-d8_512x1024_80k_b16_cityscapes.py ├── point_rend │ ├── README.md │ ├── pointrend_r101_512x1024_80k_cityscapes.py │ ├── pointrend_r101_512x512_160k_ade20k.py │ ├── pointrend_r50_512x1024_80k_cityscapes.py │ └── pointrend_r50_512x512_160k_ade20k.py ├── psanet │ ├── README.md │ ├── psanet_r101-d8_512x1024_40k_cityscapes.py │ ├── psanet_r101-d8_512x1024_80k_cityscapes.py │ ├── psanet_r101-d8_512x512_160k_ade20k.py │ ├── psanet_r101-d8_512x512_20k_voc12aug.py │ ├── psanet_r101-d8_512x512_40k_voc12aug.py │ ├── psanet_r101-d8_512x512_80k_ade20k.py │ ├── psanet_r101-d8_769x769_40k_cityscapes.py │ ├── psanet_r101-d8_769x769_80k_cityscapes.py │ ├── psanet_r50-d8_512x1024_40k_cityscapes.py │ ├── psanet_r50-d8_512x1024_80k_cityscapes.py │ ├── psanet_r50-d8_512x512_160k_ade20k.py │ ├── psanet_r50-d8_512x512_20k_voc12aug.py │ ├── psanet_r50-d8_512x512_40k_voc12aug.py │ ├── psanet_r50-d8_512x512_80k_ade20k.py │ ├── psanet_r50-d8_769x769_40k_cityscapes.py │ └── psanet_r50-d8_769x769_80k_cityscapes.py ├── pspnet │ ├── README.md │ ├── pspnet_r101-d8_480x480_40k_pascal_context.py │ ├── pspnet_r101-d8_480x480_80k_pascal_context.py │ ├── pspnet_r101-d8_512x1024_40k_cityscapes.py │ ├── pspnet_r101-d8_512x1024_80k_cityscapes.py │ ├── pspnet_r101-d8_512x512_160k_ade20k.py │ ├── pspnet_r101-d8_512x512_20k_voc12aug.py │ ├── pspnet_r101-d8_512x512_40k_voc12aug.py │ ├── pspnet_r101-d8_512x512_80k_ade20k.py │ ├── pspnet_r101-d8_769x769_40k_cityscapes.py │ ├── pspnet_r101-d8_769x769_80k_cityscapes.py │ ├── pspnet_r101b-d8_512x1024_80k_cityscapes.py │ ├── pspnet_r101b-d8_769x769_80k_cityscapes.py │ ├── pspnet_r18-d8_512x1024_80k_cityscapes.py │ ├── pspnet_r18-d8_512x512_2x4_40k_ade20k.py │ ├── pspnet_r18-d8_512x512_80k_ade20k.py │ ├── pspnet_r18-d8_512x512_8x1_40k_ade20k.py │ ├── pspnet_r18-d8_769x769_80k_cityscapes.py │ ├── pspnet_r18b-d8_512x1024_80k_cityscapes.py │ ├── pspnet_r18b-d8_769x769_80k_cityscapes.py │ ├── pspnet_r50-d8_480x480_40k_pascal_context.py │ ├── pspnet_r50-d8_480x480_80k_pascal_context.py │ ├── pspnet_r50-d8_512x1024_40k_cityscapes.py │ ├── pspnet_r50-d8_512x1024_80k_cityscapes.py │ ├── pspnet_r50-d8_512x512_160k_ade20k.py │ ├── pspnet_r50-d8_512x512_20k_voc12aug.py │ ├── pspnet_r50-d8_512x512_40k_voc12aug.py │ ├── pspnet_r50-d8_512x512_80k_ade20k.py │ ├── pspnet_r50-d8_769x769_40k_cityscapes.py │ ├── pspnet_r50-d8_769x769_80k_cityscapes.py │ ├── pspnet_r50b-d8_512x1024_80k_cityscapes.py │ └── pspnet_r50b-d8_769x769_80k_cityscapes.py ├── resnest │ ├── README.md │ ├── deeplabv3_s101-d8_512x1024_80k_cityscapes.py │ ├── deeplabv3_s101-d8_512x512_160k_ade20k.py │ ├── deeplabv3plus_s101-d8_512x1024_80k_cityscapes.py │ ├── deeplabv3plus_s101-d8_512x512_160k_ade20k.py │ ├── fcn_s101-d8_512x1024_80k_cityscapes.py │ ├── fcn_s101-d8_512x512_160k_ade20k.py │ ├── pspnet_s101-d8_512x1024_80k_cityscapes.py │ └── pspnet_s101-d8_512x512_160k_ade20k.py ├── sem_fpn │ ├── README.md │ ├── fpn_r101_512x1024_80k_cityscapes.py │ ├── fpn_r101_512x512_160k_ade20k.py │ ├── fpn_r50_512x1024_80k_cityscapes.py │ └── fpn_r50_512x512_160k_ade20k.py ├── unet │ ├── README.md │ ├── deeplabv3_unet_s5-d16_128x128_40k_chase_db1.py │ ├── deeplabv3_unet_s5-d16_128x128_40k_stare.py │ ├── deeplabv3_unet_s5-d16_256x256_40k_hrf.py │ ├── deeplabv3_unet_s5-d16_64x64_40k_drive.py │ ├── fcn_unet_s5-d16_128x128_40k_chase_db1.py │ ├── fcn_unet_s5-d16_128x128_40k_stare.py │ ├── fcn_unet_s5-d16_256x256_40k_hrf.py │ ├── fcn_unet_s5-d16_64x64_40k_drive.py │ ├── pspnet_unet_s5-d16_128x128_40k_chase_db1.py │ ├── pspnet_unet_s5-d16_128x128_40k_stare.py │ ├── pspnet_unet_s5-d16_256x256_40k_hrf.py │ └── pspnet_unet_s5-d16_64x64_40k_drive.py └── upernet │ ├── README.md │ ├── upernet_r101_512x1024_40k_cityscapes.py │ ├── upernet_r101_512x1024_80k_cityscapes.py │ ├── upernet_r101_512x512_160k_ade20k.py │ ├── upernet_r101_512x512_20k_voc12aug.py │ ├── upernet_r101_512x512_40k_voc12aug.py │ ├── upernet_r101_512x512_80k_ade20k.py │ ├── upernet_r101_769x769_40k_cityscapes.py │ ├── upernet_r101_769x769_80k_cityscapes.py │ ├── upernet_r50_512x1024_40k_cityscapes.py │ ├── upernet_r50_512x1024_80k_cityscapes.py │ ├── upernet_r50_512x512_160k_ade20k.py │ ├── upernet_r50_512x512_20k_voc12aug.py │ ├── upernet_r50_512x512_40k_voc12aug.py │ ├── upernet_r50_512x512_80k_ade20k.py │ ├── upernet_r50_769x769_40k_cityscapes.py │ └── upernet_r50_769x769_80k_cityscapes.py ├── demo ├── MMSegmentation_Tutorial.ipynb ├── demo.png ├── image_demo.py └── inference_demo.ipynb ├── docker └── Dockerfile ├── docs ├── Makefile ├── api.rst ├── changelog.md ├── conf.py ├── dataset_prepare.md ├── get_started.md ├── index.rst ├── inference.md ├── make.bat ├── model_zoo.md ├── stat.py ├── train.md ├── tutorials │ ├── config.md │ ├── customize_datasets.md │ ├── customize_models.md │ ├── customize_runtime.md │ ├── data_pipeline.md │ ├── index.rst │ └── training_tricks.md └── useful_tools.md ├── mmseg ├── __init__.py ├── apis │ ├── __init__.py │ ├── inference.py │ ├── test.py │ └── train.py ├── core │ ├── __init__.py │ ├── evaluation │ │ ├── __init__.py │ │ ├── class_names.py │ │ ├── eval_hooks.py │ │ └── metrics.py │ ├── seg │ │ ├── __init__.py │ │ ├── builder.py │ │ └── sampler │ │ │ ├── __init__.py │ │ │ ├── base_pixel_sampler.py │ │ │ └── ohem_pixel_sampler.py │ └── utils │ │ ├── __init__.py │ │ └── misc.py ├── datasets │ ├── __init__.py │ ├── ade.py │ ├── builder.py │ ├── chase_db1.py │ ├── cityscapes.py │ ├── custom.py │ ├── dataset_wrappers.py │ ├── drive.py │ ├── hrf.py │ ├── pascal_context.py │ ├── pipelines │ │ ├── __init__.py │ │ ├── compose.py │ │ ├── formating.py │ │ ├── loading.py │ │ ├── test_time_aug.py │ │ └── transforms.py │ ├── stare.py │ └── voc.py ├── distillation │ ├── __init__.py │ ├── builder.py │ ├── distillers │ │ ├── __init__.py │ │ └── segmentation_distiller.py │ ├── losses │ │ ├── __init__.py │ │ ├── cwd.py │ │ ├── distill_discriminator_loss.py │ │ └── utils.py │ └── optimizer │ │ ├── __init__.py │ │ └── discriminator_optim_hook.py ├── models │ ├── __init__.py │ ├── backbones │ │ ├── __init__.py │ │ ├── cgnet.py │ │ ├── fast_scnn.py │ │ ├── hrnet.py │ │ ├── mobilenet_v2.py │ │ ├── mobilenet_v3.py │ │ ├── resnest.py │ │ ├── resnet.py │ │ ├── resnext.py │ │ └── unet.py │ ├── builder.py │ ├── decode_heads │ │ ├── __init__.py │ │ ├── ann_head.py │ │ ├── apc_head.py │ │ ├── aspp_head.py │ │ ├── cascade_decode_head.py │ │ ├── cc_head.py │ │ ├── da_head.py │ │ ├── decode_head.py │ │ ├── dm_head.py │ │ ├── dnl_head.py │ │ ├── ema_head.py │ │ ├── enc_head.py │ │ ├── fcn_head.py │ │ ├── fpn_head.py │ │ ├── gc_head.py │ │ ├── lraspp_head.py │ │ ├── nl_head.py │ │ ├── ocr_head.py │ │ ├── point_head.py │ │ ├── psa_head.py │ │ ├── psp_head.py │ │ ├── sep_aspp_head.py │ │ ├── sep_fcn_head.py │ │ └── uper_head.py │ ├── losses │ │ ├── __init__.py │ │ ├── accuracy.py │ │ ├── cross_entropy_loss.py │ │ ├── lovasz_loss.py │ │ └── utils.py │ ├── necks │ │ ├── __init__.py │ │ └── fpn.py │ ├── segmentors │ │ ├── __init__.py │ │ ├── base.py │ │ ├── cascade_encoder_decoder.py │ │ └── encoder_decoder.py │ └── utils │ │ ├── __init__.py │ │ ├── inverted_residual.py │ │ ├── make_divisible.py │ │ ├── res_layer.py │ │ ├── se_layer.py │ │ ├── self_attention_block.py │ │ └── up_conv_block.py ├── ops │ ├── __init__.py │ ├── encoding.py │ └── wrappers.py ├── utils │ ├── __init__.py │ ├── collect_env.py │ └── logger.py └── version.py ├── pytest.ini ├── requirements.txt ├── requirements ├── docs.txt ├── optional.txt ├── readthedocs.txt ├── runtime.txt └── tests.txt ├── resources ├── mmseg-logo.png └── seg_demo.gif ├── setup.cfg ├── setup.py ├── tests ├── data │ ├── color.jpg │ ├── gray.jpg │ ├── pseudo_dataset │ │ ├── gts │ │ │ ├── 00000_gt.png │ │ │ ├── 00001_gt.png │ │ │ ├── 00002_gt.png │ │ │ ├── 00003_gt.png │ │ │ └── 00004_gt.png │ │ ├── imgs │ │ │ ├── 00000_img.jpg │ │ │ ├── 00001_img.jpg │ │ │ ├── 00002_img.jpg │ │ │ ├── 00003_img.jpg │ │ │ └── 00004_img.jpg │ │ └── splits │ │ │ ├── train.txt │ │ │ └── val.txt │ └── seg.png ├── test_config.py ├── test_data │ ├── test_dataset.py │ ├── test_dataset_builder.py │ ├── test_loading.py │ ├── test_transform.py │ └── test_tta.py ├── test_eval_hook.py ├── test_inference.py ├── test_metrics.py ├── test_models │ ├── test_backbone.py │ ├── test_forward.py │ ├── test_heads.py │ ├── test_losses.py │ ├── test_necks.py │ ├── test_segmentor.py │ └── test_unet.py ├── test_sampler.py └── test_utils │ ├── test_inverted_residual_module.py │ ├── test_make_divisible.py │ └── test_se_layer.py └── tools ├── benchmark.py ├── convert_datasets ├── chase_db1.py ├── cityscapes.py ├── drive.py ├── hrf.py ├── pascal_context.py ├── stare.py └── voc_aug.py ├── dist_test.sh ├── dist_train.sh ├── get_flops.py ├── print_config.py ├── publish_model.py ├── pytorch2onnx.py ├── slurm_test.sh ├── slurm_train.sh ├── test.py └── train.py /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pppppM/mmsegmentation-distiller/8a9d54e002fae32122aae5efaf47ee2bbc425ff8/.DS_Store -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | 3 | contact_links: 4 | - name: MMSegmentation Documentation 5 | url: https://mmsegmentation.readthedocs.io 6 | about: Check the docs and FAQ to see if you question is already anwsered. 7 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | # Describe the feature 11 | 12 | **Motivation** 13 | A clear and concise description of the motivation of the feature. 14 | Ex1. It is inconvenient when [....]. 15 | Ex2. There is a recent paper [....], which is very helpful for [....]. 16 | 17 | **Related resources** 18 | If there is an official code release or third-party implementations, please also provide the information here, which would be very helpful. 19 | 20 | **Additional context** 21 | Add any other context or screenshots about the feature request here. 22 | If you would like to implement the feature and create a PR, please leave a comment here and that would be much appreciated. 23 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/general_questions.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: General questions 3 | about: Ask general questions to get help 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | -------------------------------------------------------------------------------- /.github/workflows/deploy.yml: -------------------------------------------------------------------------------- 1 | name: deploy 2 | 3 | on: push 4 | 5 | jobs: 6 | build-n-publish: 7 | runs-on: ubuntu-latest 8 | if: startsWith(github.event.ref, 'refs/tags') 9 | steps: 10 | - uses: actions/checkout@v2 11 | - name: Set up Python 3.7 12 | uses: actions/setup-python@v2 13 | with: 14 | python-version: 3.7 15 | - name: Build MMSegmentation 16 | run: | 17 | pip install wheel 18 | python setup.py sdist bdist_wheel 19 | - name: Publish distribution to PyPI 20 | run: | 21 | pip install twine 22 | twine upload dist/* -u __token__ -p ${{ secrets.pypi_password }} 23 | -------------------------------------------------------------------------------- /.pre-commit-config.yaml: -------------------------------------------------------------------------------- 1 | repos: 2 | - repo: https://gitlab.com/pycqa/flake8.git 3 | rev: 3.8.3 4 | hooks: 5 | - id: flake8 6 | - repo: https://github.com/asottile/seed-isort-config 7 | rev: v2.2.0 8 | hooks: 9 | - id: seed-isort-config 10 | - repo: https://github.com/timothycrosley/isort 11 | rev: 4.3.21 12 | hooks: 13 | - id: isort 14 | - repo: https://github.com/pre-commit/mirrors-yapf 15 | rev: v0.30.0 16 | hooks: 17 | - id: yapf 18 | - repo: https://github.com/pre-commit/pre-commit-hooks 19 | rev: v3.1.0 20 | hooks: 21 | - id: trailing-whitespace 22 | - id: check-yaml 23 | - id: end-of-file-fixer 24 | - id: requirements-txt-fixer 25 | - id: double-quote-string-fixer 26 | - id: check-merge-conflict 27 | - id: fix-encoding-pragma 28 | args: ["--remove"] 29 | - id: mixed-line-ending 30 | args: ["--fix=lf"] 31 | - repo: https://github.com/jumanjihouse/pre-commit-hooks 32 | rev: 2.1.4 33 | hooks: 34 | - id: markdownlint 35 | args: ["-r", "~MD002,~MD013,~MD029,~MD033,~MD034,~MD036"] 36 | - repo: https://github.com/myint/docformatter 37 | rev: v1.3.1 38 | hooks: 39 | - id: docformatter 40 | args: ["--in-place", "--wrap-descriptions", "79"] 41 | -------------------------------------------------------------------------------- /.readthedocs.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | 3 | python: 4 | version: 3.7 5 | install: 6 | - requirements: requirements/docs.txt 7 | - requirements: requirements/readthedocs.txt 8 | -------------------------------------------------------------------------------- /QR.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pppppM/mmsegmentation-distiller/8a9d54e002fae32122aae5efaf47ee2bbc425ff8/QR.jpeg -------------------------------------------------------------------------------- /WechatIMG42.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pppppM/mmsegmentation-distiller/8a9d54e002fae32122aae5efaf47ee2bbc425ff8/WechatIMG42.jpeg -------------------------------------------------------------------------------- /configs/_base_/datasets/pascal_voc12_aug.py: -------------------------------------------------------------------------------- 1 | _base_ = './pascal_voc12.py' 2 | # dataset settings 3 | data = dict( 4 | train=dict( 5 | ann_dir=['SegmentationClass', 'SegmentationClassAug'], 6 | split=[ 7 | 'ImageSets/Segmentation/train.txt', 8 | 'ImageSets/Segmentation/aug.txt' 9 | ])) 10 | -------------------------------------------------------------------------------- /configs/_base_/default_runtime.py: -------------------------------------------------------------------------------- 1 | # yapf:disable 2 | log_config = dict( 3 | interval=50, 4 | hooks=[ 5 | dict(type='TextLoggerHook', by_epoch=False), 6 | # dict(type='TensorboardLoggerHook') 7 | ]) 8 | # yapf:enable 9 | dist_params = dict(backend='nccl') 10 | log_level = 'INFO' 11 | load_from = None 12 | resume_from = None 13 | workflow = [('train', 1)] 14 | cudnn_benchmark = True 15 | -------------------------------------------------------------------------------- /configs/_base_/models/cgnet.py: -------------------------------------------------------------------------------- 1 | # model settings 2 | norm_cfg = dict(type='SyncBN', eps=1e-03, requires_grad=True) 3 | model = dict( 4 | type='EncoderDecoder', 5 | backbone=dict( 6 | type='CGNet', 7 | norm_cfg=norm_cfg, 8 | in_channels=3, 9 | num_channels=(32, 64, 128), 10 | num_blocks=(3, 21), 11 | dilations=(2, 4), 12 | reductions=(8, 16)), 13 | decode_head=dict( 14 | type='FCNHead', 15 | in_channels=256, 16 | in_index=2, 17 | channels=256, 18 | num_convs=0, 19 | concat_input=False, 20 | dropout_ratio=0, 21 | num_classes=19, 22 | norm_cfg=norm_cfg, 23 | loss_decode=dict( 24 | type='CrossEntropyLoss', 25 | use_sigmoid=False, 26 | loss_weight=1.0, 27 | class_weight=[ 28 | 2.5959933, 6.7415504, 3.5354059, 9.8663225, 9.690899, 9.369352, 29 | 10.289121, 9.953208, 4.3097677, 9.490387, 7.674431, 9.396905, 30 | 10.347791, 6.3927646, 10.226669, 10.241062, 10.280587, 31 | 10.396974, 10.055647 32 | ])), 33 | # model training and testing settings 34 | train_cfg=dict(sampler=None), 35 | test_cfg=dict(mode='whole')) 36 | -------------------------------------------------------------------------------- /configs/_base_/models/fpn_r50.py: -------------------------------------------------------------------------------- 1 | # model settings 2 | norm_cfg = dict(type='SyncBN', requires_grad=True) 3 | model = dict( 4 | type='EncoderDecoder', 5 | pretrained='open-mmlab://resnet50_v1c', 6 | backbone=dict( 7 | type='ResNetV1c', 8 | depth=50, 9 | num_stages=4, 10 | out_indices=(0, 1, 2, 3), 11 | dilations=(1, 1, 1, 1), 12 | strides=(1, 2, 2, 2), 13 | norm_cfg=norm_cfg, 14 | norm_eval=False, 15 | style='pytorch', 16 | contract_dilation=True), 17 | neck=dict( 18 | type='FPN', 19 | in_channels=[256, 512, 1024, 2048], 20 | out_channels=256, 21 | num_outs=4), 22 | decode_head=dict( 23 | type='FPNHead', 24 | in_channels=[256, 256, 256, 256], 25 | in_index=[0, 1, 2, 3], 26 | feature_strides=[4, 8, 16, 32], 27 | channels=128, 28 | dropout_ratio=0.1, 29 | num_classes=19, 30 | norm_cfg=norm_cfg, 31 | align_corners=False, 32 | loss_decode=dict( 33 | type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)), 34 | # model training and testing settings 35 | train_cfg=dict(), 36 | test_cfg=dict(mode='whole')) 37 | -------------------------------------------------------------------------------- /configs/_base_/models/lraspp_m-v3-d8.py: -------------------------------------------------------------------------------- 1 | # model settings 2 | norm_cfg = dict(type='SyncBN', eps=0.001, requires_grad=True) 3 | model = dict( 4 | type='EncoderDecoder', 5 | backbone=dict( 6 | type='MobileNetV3', 7 | arch='large', 8 | out_indices=(1, 3, 16), 9 | norm_cfg=norm_cfg), 10 | decode_head=dict( 11 | type='LRASPPHead', 12 | in_channels=(16, 24, 960), 13 | in_index=(0, 1, 2), 14 | channels=128, 15 | input_transform='multiple_select', 16 | dropout_ratio=0.1, 17 | num_classes=19, 18 | norm_cfg=norm_cfg, 19 | act_cfg=dict(type='ReLU'), 20 | align_corners=False, 21 | loss_decode=dict( 22 | type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)), 23 | # model training and testing settings 24 | train_cfg=dict(), 25 | test_cfg=dict(mode='whole')) 26 | -------------------------------------------------------------------------------- /configs/_base_/schedules/schedule_160k.py: -------------------------------------------------------------------------------- 1 | # optimizer 2 | optimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005) 3 | optimizer_config = dict() 4 | # learning policy 5 | lr_config = dict(policy='poly', power=0.9, min_lr=1e-4, by_epoch=False) 6 | # runtime settings 7 | runner = dict(type='IterBasedRunner', max_iters=160000) 8 | checkpoint_config = dict(by_epoch=False, interval=16000) 9 | evaluation = dict(interval=16000, metric='mIoU') 10 | -------------------------------------------------------------------------------- /configs/_base_/schedules/schedule_20k.py: -------------------------------------------------------------------------------- 1 | # optimizer 2 | optimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005) 3 | optimizer_config = dict() 4 | # learning policy 5 | lr_config = dict(policy='poly', power=0.9, min_lr=1e-4, by_epoch=False) 6 | # runtime settings 7 | runner = dict(type='IterBasedRunner', max_iters=20000) 8 | checkpoint_config = dict(by_epoch=False, interval=2000) 9 | evaluation = dict(interval=2000, metric='mIoU') 10 | -------------------------------------------------------------------------------- /configs/_base_/schedules/schedule_40k.py: -------------------------------------------------------------------------------- 1 | # optimizer 2 | optimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005) 3 | optimizer_config = dict() 4 | # learning policy 5 | lr_config = dict(policy='poly', power=0.9, min_lr=1e-4, by_epoch=False) 6 | # runtime settings 7 | runner = dict(type='IterBasedRunner', max_iters=40000) 8 | checkpoint_config = dict(by_epoch=False, interval=4000) 9 | evaluation = dict(interval=4000, metric='mIoU') 10 | -------------------------------------------------------------------------------- /configs/_base_/schedules/schedule_80k.py: -------------------------------------------------------------------------------- 1 | # optimizer 2 | optimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005) 3 | optimizer_config = dict() 4 | # learning policy 5 | lr_config = dict(policy='poly', power=0.9, min_lr=1e-4, by_epoch=False) 6 | # runtime settings 7 | runner = dict(type='IterBasedRunner', max_iters=80000) 8 | checkpoint_config = dict(by_epoch=False, interval=8000) 9 | evaluation = dict(interval=8000, metric='mIoU') 10 | -------------------------------------------------------------------------------- /configs/ann/ann_r101-d8_512x1024_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './ann_r50-d8_512x1024_40k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/ann/ann_r101-d8_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './ann_r50-d8_512x1024_80k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/ann/ann_r101-d8_512x512_160k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = './ann_r50-d8_512x512_160k_ade20k.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/ann/ann_r101-d8_512x512_20k_voc12aug.py: -------------------------------------------------------------------------------- 1 | _base_ = './ann_r50-d8_512x512_20k_voc12aug.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/ann/ann_r101-d8_512x512_40k_voc12aug.py: -------------------------------------------------------------------------------- 1 | _base_ = './ann_r50-d8_512x512_40k_voc12aug.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/ann/ann_r101-d8_512x512_80k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = './ann_r50-d8_512x512_80k_ade20k.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/ann/ann_r101-d8_769x769_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './ann_r50-d8_769x769_40k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/ann/ann_r101-d8_769x769_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './ann_r50-d8_769x769_80k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/ann/ann_r50-d8_512x1024_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/ann_r50-d8.py', '../_base_/datasets/cityscapes.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' 4 | ] 5 | -------------------------------------------------------------------------------- /configs/ann/ann_r50-d8_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/ann_r50-d8.py', '../_base_/datasets/cityscapes.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' 4 | ] 5 | -------------------------------------------------------------------------------- /configs/ann/ann_r50-d8_512x512_160k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/ann_r50-d8.py', '../_base_/datasets/ade20k.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py' 4 | ] 5 | model = dict( 6 | decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) 7 | -------------------------------------------------------------------------------- /configs/ann/ann_r50-d8_512x512_20k_voc12aug.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/ann_r50-d8.py', '../_base_/datasets/pascal_voc12_aug.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_20k.py' 4 | ] 5 | model = dict( 6 | decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21)) 7 | -------------------------------------------------------------------------------- /configs/ann/ann_r50-d8_512x512_40k_voc12aug.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/ann_r50-d8.py', '../_base_/datasets/pascal_voc12_aug.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' 4 | ] 5 | model = dict( 6 | decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21)) 7 | -------------------------------------------------------------------------------- /configs/ann/ann_r50-d8_512x512_80k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/ann_r50-d8.py', '../_base_/datasets/ade20k.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' 4 | ] 5 | model = dict( 6 | decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) 7 | -------------------------------------------------------------------------------- /configs/ann/ann_r50-d8_769x769_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/ann_r50-d8.py', 3 | '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_40k.py' 5 | ] 6 | model = dict( 7 | decode_head=dict(align_corners=True), 8 | auxiliary_head=dict(align_corners=True), 9 | test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) 10 | -------------------------------------------------------------------------------- /configs/ann/ann_r50-d8_769x769_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/ann_r50-d8.py', 3 | '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_80k.py' 5 | ] 6 | model = dict( 7 | decode_head=dict(align_corners=True), 8 | auxiliary_head=dict(align_corners=True), 9 | test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) 10 | -------------------------------------------------------------------------------- /configs/apcnet/apcnet_r101-d8_512x1024_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './apcnet_r50-d8_512x1024_40k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/apcnet/apcnet_r101-d8_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './apcnet_r50-d8_512x1024_80k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/apcnet/apcnet_r101-d8_512x512_160k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = './apcnet_r50-d8_512x512_160k_ade20k.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/apcnet/apcnet_r101-d8_512x512_80k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = './apcnet_r50-d8_512x512_80k_ade20k.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/apcnet/apcnet_r101-d8_769x769_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './apcnet_r50-d8_769x769_40k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/apcnet/apcnet_r101-d8_769x769_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './apcnet_r50-d8_769x769_80k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/apcnet/apcnet_r50-d8_512x1024_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/apcnet_r50-d8.py', '../_base_/datasets/cityscapes.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' 4 | ] 5 | -------------------------------------------------------------------------------- /configs/apcnet/apcnet_r50-d8_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/apcnet_r50-d8.py', '../_base_/datasets/cityscapes.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' 4 | ] 5 | -------------------------------------------------------------------------------- /configs/apcnet/apcnet_r50-d8_512x512_160k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/apcnet_r50-d8.py', '../_base_/datasets/ade20k.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py' 4 | ] 5 | model = dict( 6 | decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) 7 | -------------------------------------------------------------------------------- /configs/apcnet/apcnet_r50-d8_512x512_80k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/apcnet_r50-d8.py', '../_base_/datasets/ade20k.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' 4 | ] 5 | model = dict( 6 | decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) 7 | -------------------------------------------------------------------------------- /configs/apcnet/apcnet_r50-d8_769x769_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/apcnet_r50-d8.py', 3 | '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_40k.py' 5 | ] 6 | model = dict( 7 | decode_head=dict(align_corners=True), 8 | auxiliary_head=dict(align_corners=True), 9 | test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) 10 | -------------------------------------------------------------------------------- /configs/apcnet/apcnet_r50-d8_769x769_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/apcnet_r50-d8.py', 3 | '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_80k.py' 5 | ] 6 | model = dict( 7 | decode_head=dict(align_corners=True), 8 | auxiliary_head=dict(align_corners=True), 9 | test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) 10 | -------------------------------------------------------------------------------- /configs/ccnet/ccnet_r101-d8_512x1024_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './ccnet_r50-d8_512x1024_40k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/ccnet/ccnet_r101-d8_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './ccnet_r50-d8_512x1024_80k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/ccnet/ccnet_r101-d8_512x512_160k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = './ccnet_r50-d8_512x512_160k_ade20k.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/ccnet/ccnet_r101-d8_512x512_20k_voc12aug.py: -------------------------------------------------------------------------------- 1 | _base_ = './ccnet_r50-d8_512x512_20k_voc12aug.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/ccnet/ccnet_r101-d8_512x512_40k_voc12aug.py: -------------------------------------------------------------------------------- 1 | _base_ = './ccnet_r50-d8_512x512_40k_voc12aug.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/ccnet/ccnet_r101-d8_512x512_80k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = './ccnet_r50-d8_512x512_80k_ade20k.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/ccnet/ccnet_r101-d8_769x769_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './ccnet_r50-d8_769x769_40k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/ccnet/ccnet_r101-d8_769x769_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './ccnet_r50-d8_769x769_80k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/ccnet/ccnet_r50-d8_512x1024_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/ccnet_r50-d8.py', '../_base_/datasets/cityscapes.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' 4 | ] 5 | -------------------------------------------------------------------------------- /configs/ccnet/ccnet_r50-d8_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/ccnet_r50-d8.py', '../_base_/datasets/cityscapes.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' 4 | ] 5 | -------------------------------------------------------------------------------- /configs/ccnet/ccnet_r50-d8_512x512_160k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/ccnet_r50-d8.py', '../_base_/datasets/ade20k.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py' 4 | ] 5 | model = dict( 6 | decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) 7 | -------------------------------------------------------------------------------- /configs/ccnet/ccnet_r50-d8_512x512_20k_voc12aug.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/ccnet_r50-d8.py', 3 | '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_20k.py' 5 | ] 6 | model = dict( 7 | decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21)) 8 | -------------------------------------------------------------------------------- /configs/ccnet/ccnet_r50-d8_512x512_40k_voc12aug.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/ccnet_r50-d8.py', 3 | '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_40k.py' 5 | ] 6 | model = dict( 7 | decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21)) 8 | -------------------------------------------------------------------------------- /configs/ccnet/ccnet_r50-d8_512x512_80k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/ccnet_r50-d8.py', '../_base_/datasets/ade20k.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' 4 | ] 5 | model = dict( 6 | decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) 7 | -------------------------------------------------------------------------------- /configs/ccnet/ccnet_r50-d8_769x769_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/ccnet_r50-d8.py', 3 | '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_40k.py' 5 | ] 6 | model = dict( 7 | decode_head=dict(align_corners=True), 8 | auxiliary_head=dict(align_corners=True), 9 | test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) 10 | -------------------------------------------------------------------------------- /configs/ccnet/ccnet_r50-d8_769x769_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/ccnet_r50-d8.py', 3 | '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_80k.py' 5 | ] 6 | model = dict( 7 | decode_head=dict(align_corners=True), 8 | auxiliary_head=dict(align_corners=True), 9 | test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) 10 | -------------------------------------------------------------------------------- /configs/danet/danet_r101-d8_512x1024_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './danet_r50-d8_512x1024_40k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/danet/danet_r101-d8_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './danet_r50-d8_512x1024_80k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/danet/danet_r101-d8_512x512_160k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = './danet_r50-d8_512x512_160k_ade20k.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/danet/danet_r101-d8_512x512_20k_voc12aug.py: -------------------------------------------------------------------------------- 1 | _base_ = './danet_r50-d8_512x512_20k_voc12aug.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/danet/danet_r101-d8_512x512_40k_voc12aug.py: -------------------------------------------------------------------------------- 1 | _base_ = './danet_r50-d8_512x512_40k_voc12aug.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/danet/danet_r101-d8_512x512_80k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = './danet_r50-d8_512x512_80k_ade20k.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/danet/danet_r101-d8_769x769_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './danet_r50-d8_769x769_40k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/danet/danet_r101-d8_769x769_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './danet_r50-d8_769x769_80k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/danet/danet_r50-d8_512x1024_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/danet_r50-d8.py', '../_base_/datasets/cityscapes.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' 4 | ] 5 | -------------------------------------------------------------------------------- /configs/danet/danet_r50-d8_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/danet_r50-d8.py', '../_base_/datasets/cityscapes.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' 4 | ] 5 | -------------------------------------------------------------------------------- /configs/danet/danet_r50-d8_512x512_160k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/danet_r50-d8.py', '../_base_/datasets/ade20k.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py' 4 | ] 5 | model = dict( 6 | decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) 7 | -------------------------------------------------------------------------------- /configs/danet/danet_r50-d8_512x512_20k_voc12aug.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/danet_r50-d8.py', 3 | '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_20k.py' 5 | ] 6 | model = dict( 7 | decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21)) 8 | -------------------------------------------------------------------------------- /configs/danet/danet_r50-d8_512x512_40k_voc12aug.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/danet_r50-d8.py', 3 | '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_40k.py' 5 | ] 6 | model = dict( 7 | decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21)) 8 | -------------------------------------------------------------------------------- /configs/danet/danet_r50-d8_512x512_80k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/danet_r50-d8.py', '../_base_/datasets/ade20k.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' 4 | ] 5 | model = dict( 6 | decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) 7 | -------------------------------------------------------------------------------- /configs/danet/danet_r50-d8_769x769_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/danet_r50-d8.py', 3 | '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_40k.py' 5 | ] 6 | model = dict( 7 | decode_head=dict(align_corners=True), 8 | auxiliary_head=dict(align_corners=True), 9 | test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) 10 | -------------------------------------------------------------------------------- /configs/danet/danet_r50-d8_769x769_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/danet_r50-d8.py', 3 | '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_80k.py' 5 | ] 6 | model = dict( 7 | decode_head=dict(align_corners=True), 8 | auxiliary_head=dict(align_corners=True), 9 | test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) 10 | -------------------------------------------------------------------------------- /configs/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './deeplabv3_r50-d8_512x1024_40k_cityscapes.py' 2 | model = dict( 3 | pretrained='open-mmlab://resnet101_v1c', 4 | backbone=dict( 5 | depth=101, 6 | dilations=(1, 1, 1, 2), 7 | strides=(1, 2, 2, 1), 8 | multi_grid=(1, 2, 4)), 9 | decode_head=dict( 10 | dilations=(1, 6, 12, 18), 11 | sampler=dict(type='OHEMPixelSampler', min_kept=100000))) 12 | -------------------------------------------------------------------------------- /configs/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './deeplabv3_r50-d8_512x1024_80k_cityscapes.py' 2 | model = dict( 3 | pretrained='open-mmlab://resnet101_v1c', 4 | backbone=dict( 5 | depth=101, 6 | dilations=(1, 1, 1, 2), 7 | strides=(1, 2, 2, 1), 8 | multi_grid=(1, 2, 4)), 9 | decode_head=dict( 10 | dilations=(1, 6, 12, 18), 11 | sampler=dict(type='OHEMPixelSampler', min_kept=100000))) 12 | -------------------------------------------------------------------------------- /configs/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context.py: -------------------------------------------------------------------------------- 1 | _base_ = './deeplabv3_r50-d8_480x480_40k_pascal_context.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context.py: -------------------------------------------------------------------------------- 1 | _base_ = './deeplabv3_r50-d8_480x480_80k_pascal_context.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/deeplabv3/deeplabv3_r101-d8_512x1024_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './deeplabv3_r50-d8_512x1024_40k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/deeplabv3/deeplabv3_r101-d8_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './deeplabv3_r50-d8_512x1024_80k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/deeplabv3/deeplabv3_r101-d8_512x512_160k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = './deeplabv3_r50-d8_512x512_160k_ade20k.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/deeplabv3/deeplabv3_r101-d8_512x512_20k_voc12aug.py: -------------------------------------------------------------------------------- 1 | _base_ = './deeplabv3_r50-d8_512x512_20k_voc12aug.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/deeplabv3/deeplabv3_r101-d8_512x512_40k_voc12aug.py: -------------------------------------------------------------------------------- 1 | _base_ = './deeplabv3_r50-d8_512x512_40k_voc12aug.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/deeplabv3/deeplabv3_r101-d8_512x512_80k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = './deeplabv3_r50-d8_512x512_80k_ade20k.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/deeplabv3/deeplabv3_r101-d8_769x769_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './deeplabv3_r50-d8_769x769_40k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/deeplabv3/deeplabv3_r101-d8_769x769_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './deeplabv3_r50-d8_769x769_80k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/deeplabv3/deeplabv3_r101b-d8_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './deeplabv3_r50-d8_512x1024_80k_cityscapes.py' 2 | model = dict( 3 | pretrained='torchvision://resnet101', 4 | backbone=dict(type='ResNet', depth=101)) 5 | -------------------------------------------------------------------------------- /configs/deeplabv3/deeplabv3_r101b-d8_769x769_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './deeplabv3_r50-d8_769x769_80k_cityscapes.py' 2 | model = dict( 3 | pretrained='torchvision://resnet101', 4 | backbone=dict(type='ResNet', depth=101)) 5 | -------------------------------------------------------------------------------- /configs/deeplabv3/deeplabv3_r18-d8_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './deeplabv3_r50-d8_512x1024_80k_cityscapes.py' 2 | model = dict( 3 | pretrained='open-mmlab://resnet18_v1c', 4 | backbone=dict(depth=18), 5 | decode_head=dict( 6 | in_channels=512, 7 | channels=128, 8 | ), 9 | auxiliary_head=dict(in_channels=256, channels=64)) 10 | -------------------------------------------------------------------------------- /configs/deeplabv3/deeplabv3_r18-d8_769x769_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './deeplabv3_r50-d8_769x769_80k_cityscapes.py' 2 | model = dict( 3 | pretrained='open-mmlab://resnet18_v1c', 4 | backbone=dict(depth=18), 5 | decode_head=dict( 6 | in_channels=512, 7 | channels=128, 8 | ), 9 | auxiliary_head=dict(in_channels=256, channels=64)) 10 | -------------------------------------------------------------------------------- /configs/deeplabv3/deeplabv3_r18b-d8_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './deeplabv3_r50-d8_512x1024_80k_cityscapes.py' 2 | model = dict( 3 | pretrained='torchvision://resnet18', 4 | backbone=dict(type='ResNet', depth=18), 5 | decode_head=dict( 6 | in_channels=512, 7 | channels=128, 8 | ), 9 | auxiliary_head=dict(in_channels=256, channels=64)) 10 | -------------------------------------------------------------------------------- /configs/deeplabv3/deeplabv3_r18b-d8_769x769_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './deeplabv3_r50-d8_769x769_80k_cityscapes.py' 2 | model = dict( 3 | pretrained='torchvision://resnet18', 4 | backbone=dict(type='ResNet', depth=18), 5 | decode_head=dict( 6 | in_channels=512, 7 | channels=128, 8 | ), 9 | auxiliary_head=dict(in_channels=256, channels=64)) 10 | -------------------------------------------------------------------------------- /configs/deeplabv3/deeplabv3_r50-d8_480x480_40k_pascal_context.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/deeplabv3_r50-d8.py', 3 | '../_base_/datasets/pascal_context.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_40k.py' 5 | ] 6 | model = dict( 7 | decode_head=dict(num_classes=60), 8 | auxiliary_head=dict(num_classes=60), 9 | test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320))) 10 | optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001) 11 | -------------------------------------------------------------------------------- /configs/deeplabv3/deeplabv3_r50-d8_480x480_80k_pascal_context.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/deeplabv3_r50-d8.py', 3 | '../_base_/datasets/pascal_context.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_80k.py' 5 | ] 6 | model = dict( 7 | decode_head=dict(num_classes=60), 8 | auxiliary_head=dict(num_classes=60), 9 | test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320))) 10 | optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001) 11 | -------------------------------------------------------------------------------- /configs/deeplabv3/deeplabv3_r50-d8_512x1024_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/deeplabv3_r50-d8.py', '../_base_/datasets/cityscapes.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' 4 | ] 5 | -------------------------------------------------------------------------------- /configs/deeplabv3/deeplabv3_r50-d8_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/deeplabv3_r50-d8.py', '../_base_/datasets/cityscapes.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' 4 | ] 5 | -------------------------------------------------------------------------------- /configs/deeplabv3/deeplabv3_r50-d8_512x512_160k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/deeplabv3_r50-d8.py', '../_base_/datasets/ade20k.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py' 4 | ] 5 | model = dict( 6 | decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) 7 | -------------------------------------------------------------------------------- /configs/deeplabv3/deeplabv3_r50-d8_512x512_20k_voc12aug.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/deeplabv3_r50-d8.py', 3 | '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_20k.py' 5 | ] 6 | model = dict( 7 | decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21)) 8 | -------------------------------------------------------------------------------- /configs/deeplabv3/deeplabv3_r50-d8_512x512_40k_voc12aug.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/deeplabv3_r50-d8.py', 3 | '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_40k.py' 5 | ] 6 | model = dict( 7 | decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21)) 8 | -------------------------------------------------------------------------------- /configs/deeplabv3/deeplabv3_r50-d8_512x512_80k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/deeplabv3_r50-d8.py', '../_base_/datasets/ade20k.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' 4 | ] 5 | model = dict( 6 | decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) 7 | -------------------------------------------------------------------------------- /configs/deeplabv3/deeplabv3_r50-d8_769x769_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/deeplabv3_r50-d8.py', 3 | '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_40k.py' 5 | ] 6 | model = dict( 7 | decode_head=dict(align_corners=True), 8 | auxiliary_head=dict(align_corners=True), 9 | test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) 10 | -------------------------------------------------------------------------------- /configs/deeplabv3/deeplabv3_r50-d8_769x769_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/deeplabv3_r50-d8.py', 3 | '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_80k.py' 5 | ] 6 | model = dict( 7 | decode_head=dict(align_corners=True), 8 | auxiliary_head=dict(align_corners=True), 9 | test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) 10 | -------------------------------------------------------------------------------- /configs/deeplabv3/deeplabv3_r50b-d8_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './deeplabv3_r50-d8_512x1024_80k_cityscapes.py' 2 | model = dict(pretrained='torchvision://resnet50', backbone=dict(type='ResNet')) 3 | -------------------------------------------------------------------------------- /configs/deeplabv3/deeplabv3_r50b-d8_769x769_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './deeplabv3_r50-d8_769x769_80k_cityscapes.py' 2 | model = dict(pretrained='torchvision://resnet50', backbone=dict(type='ResNet')) 3 | -------------------------------------------------------------------------------- /configs/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './deeplabv3plus_r50-d8_512x1024_40k_cityscapes.py' 2 | model = dict( 3 | pretrained='open-mmlab://resnet101_v1c', 4 | backbone=dict( 5 | depth=101, 6 | dilations=(1, 1, 1, 2), 7 | strides=(1, 2, 2, 1), 8 | multi_grid=(1, 2, 4)), 9 | decode_head=dict( 10 | dilations=(1, 6, 12, 18), 11 | sampler=dict(type='OHEMPixelSampler', min_kept=100000))) 12 | -------------------------------------------------------------------------------- /configs/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py' 2 | model = dict( 3 | pretrained='open-mmlab://resnet101_v1c', 4 | backbone=dict( 5 | depth=101, 6 | dilations=(1, 1, 1, 2), 7 | strides=(1, 2, 2, 1), 8 | multi_grid=(1, 2, 4)), 9 | decode_head=dict( 10 | dilations=(1, 6, 12, 18), 11 | sampler=dict(type='OHEMPixelSampler', min_kept=100000))) 12 | -------------------------------------------------------------------------------- /configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context.py: -------------------------------------------------------------------------------- 1 | _base_ = './deeplabv3plus_r50-d8_480x480_40k_pascal_context.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context.py: -------------------------------------------------------------------------------- 1 | _base_ = './deeplabv3plus_r50-d8_480x480_80k_pascal_context.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './deeplabv3plus_r50-d8_512x1024_40k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_160k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = './deeplabv3plus_r50-d8_512x512_160k_ade20k.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_20k_voc12aug.py: -------------------------------------------------------------------------------- 1 | _base_ = './deeplabv3plus_r50-d8_512x512_20k_voc12aug.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_40k_voc12aug.py: -------------------------------------------------------------------------------- 1 | _base_ = './deeplabv3plus_r50-d8_512x512_40k_voc12aug.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_80k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = './deeplabv3plus_r50-d8_512x512_80k_ade20k.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/deeplabv3plus/deeplabv3plus_r101-d8_769x769_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './deeplabv3plus_r50-d8_769x769_40k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/deeplabv3plus/deeplabv3plus_r101-d8_769x769_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './deeplabv3plus_r50-d8_769x769_80k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/deeplabv3plus/deeplabv3plus_r101b-d8_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py' 2 | model = dict( 3 | pretrained='torchvision://resnet101', 4 | backbone=dict(type='ResNet', depth=101)) 5 | -------------------------------------------------------------------------------- /configs/deeplabv3plus/deeplabv3plus_r101b-d8_769x769_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './deeplabv3plus_r50-d8_769x769_80k_cityscapes.py' 2 | model = dict( 3 | pretrained='torchvision://resnet101', 4 | backbone=dict(type='ResNet', depth=101)) 5 | -------------------------------------------------------------------------------- /configs/deeplabv3plus/deeplabv3plus_r18-d8_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py' 2 | model = dict( 3 | pretrained='open-mmlab://resnet18_v1c', 4 | backbone=dict(depth=18), 5 | decode_head=dict( 6 | c1_in_channels=64, 7 | c1_channels=12, 8 | in_channels=512, 9 | channels=128, 10 | ), 11 | auxiliary_head=dict(in_channels=256, channels=64)) 12 | -------------------------------------------------------------------------------- /configs/deeplabv3plus/deeplabv3plus_r18-d8_769x769_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './deeplabv3plus_r50-d8_769x769_80k_cityscapes.py' 2 | model = dict( 3 | pretrained='open-mmlab://resnet18_v1c', 4 | backbone=dict(depth=18), 5 | decode_head=dict( 6 | c1_in_channels=64, 7 | c1_channels=12, 8 | in_channels=512, 9 | channels=128, 10 | ), 11 | auxiliary_head=dict(in_channels=256, channels=64)) 12 | -------------------------------------------------------------------------------- /configs/deeplabv3plus/deeplabv3plus_r18b-d8_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py' 2 | model = dict( 3 | pretrained='torchvision://resnet18', 4 | backbone=dict(type='ResNet', depth=18), 5 | decode_head=dict( 6 | c1_in_channels=64, 7 | c1_channels=12, 8 | in_channels=512, 9 | channels=128, 10 | ), 11 | auxiliary_head=dict(in_channels=256, channels=64)) 12 | -------------------------------------------------------------------------------- /configs/deeplabv3plus/deeplabv3plus_r18b-d8_769x769_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './deeplabv3plus_r50-d8_769x769_80k_cityscapes.py' 2 | model = dict( 3 | pretrained='torchvision://resnet18', 4 | backbone=dict(type='ResNet', depth=18), 5 | decode_head=dict( 6 | c1_in_channels=64, 7 | c1_channels=12, 8 | in_channels=512, 9 | channels=128, 10 | ), 11 | auxiliary_head=dict(in_channels=256, channels=64)) 12 | -------------------------------------------------------------------------------- /configs/deeplabv3plus/deeplabv3plus_r50-d8_480x480_40k_pascal_context.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/deeplabv3plus_r50-d8.py', 3 | '../_base_/datasets/pascal_context.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_40k.py' 5 | ] 6 | model = dict( 7 | decode_head=dict(num_classes=60), 8 | auxiliary_head=dict(num_classes=60), 9 | test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320))) 10 | optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001) 11 | -------------------------------------------------------------------------------- /configs/deeplabv3plus/deeplabv3plus_r50-d8_480x480_80k_pascal_context.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/deeplabv3plus_r50-d8.py', 3 | '../_base_/datasets/pascal_context.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_80k.py' 5 | ] 6 | model = dict( 7 | decode_head=dict(num_classes=60), 8 | auxiliary_head=dict(num_classes=60), 9 | test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320))) 10 | optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001) 11 | -------------------------------------------------------------------------------- /configs/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/deeplabv3plus_r50-d8.py', 3 | '../_base_/datasets/cityscapes.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_40k.py' 5 | ] 6 | -------------------------------------------------------------------------------- /configs/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/deeplabv3plus_r50-d8.py', 3 | '../_base_/datasets/cityscapes.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_80k.py' 5 | ] 6 | -------------------------------------------------------------------------------- /configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_160k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/deeplabv3plus_r50-d8.py', '../_base_/datasets/ade20k.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py' 4 | ] 5 | model = dict( 6 | decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) 7 | -------------------------------------------------------------------------------- /configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_20k_voc12aug.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/deeplabv3plus_r50-d8.py', 3 | '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_20k.py' 5 | ] 6 | model = dict( 7 | decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21)) 8 | -------------------------------------------------------------------------------- /configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_40k_voc12aug.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/deeplabv3plus_r50-d8.py', 3 | '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_40k.py' 5 | ] 6 | model = dict( 7 | decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21)) 8 | -------------------------------------------------------------------------------- /configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_80k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/deeplabv3plus_r50-d8.py', '../_base_/datasets/ade20k.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' 4 | ] 5 | model = dict( 6 | decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) 7 | -------------------------------------------------------------------------------- /configs/deeplabv3plus/deeplabv3plus_r50-d8_769x769_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/deeplabv3plus_r50-d8.py', 3 | '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_40k.py' 5 | ] 6 | model = dict( 7 | decode_head=dict(align_corners=True), 8 | auxiliary_head=dict(align_corners=True), 9 | test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) 10 | -------------------------------------------------------------------------------- /configs/deeplabv3plus/deeplabv3plus_r50-d8_769x769_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/deeplabv3plus_r50-d8.py', 3 | '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_80k.py' 5 | ] 6 | model = dict( 7 | decode_head=dict(align_corners=True), 8 | auxiliary_head=dict(align_corners=True), 9 | test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) 10 | -------------------------------------------------------------------------------- /configs/deeplabv3plus/deeplabv3plus_r50b-d8_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py' 2 | model = dict(pretrained='torchvision://resnet50', backbone=dict(type='ResNet')) 3 | -------------------------------------------------------------------------------- /configs/deeplabv3plus/deeplabv3plus_r50b-d8_769x769_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './deeplabv3plus_r50-d8_769x769_80k_cityscapes.py' 2 | model = dict(pretrained='torchvision://resnet50', backbone=dict(type='ResNet')) 3 | -------------------------------------------------------------------------------- /configs/dmnet/dmnet_r101-d8_512x1024_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './dmnet_r50-d8_512x1024_40k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/dmnet/dmnet_r101-d8_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './dmnet_r50-d8_512x1024_80k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/dmnet/dmnet_r101-d8_512x512_160k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = './dmnet_r50-d8_512x512_160k_ade20k.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/dmnet/dmnet_r101-d8_512x512_80k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = './dmnet_r50-d8_512x512_80k_ade20k.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/dmnet/dmnet_r101-d8_769x769_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './dmnet_r50-d8_769x769_40k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/dmnet/dmnet_r101-d8_769x769_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './dmnet_r50-d8_769x769_80k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/dmnet/dmnet_r50-d8_512x1024_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/dmnet_r50-d8.py', '../_base_/datasets/cityscapes.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' 4 | ] 5 | -------------------------------------------------------------------------------- /configs/dmnet/dmnet_r50-d8_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/dmnet_r50-d8.py', '../_base_/datasets/cityscapes.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' 4 | ] 5 | -------------------------------------------------------------------------------- /configs/dmnet/dmnet_r50-d8_512x512_160k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/dmnet_r50-d8.py', '../_base_/datasets/ade20k.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py' 4 | ] 5 | model = dict( 6 | decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) 7 | -------------------------------------------------------------------------------- /configs/dmnet/dmnet_r50-d8_512x512_80k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/dmnet_r50-d8.py', '../_base_/datasets/ade20k.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' 4 | ] 5 | model = dict( 6 | decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) 7 | -------------------------------------------------------------------------------- /configs/dmnet/dmnet_r50-d8_769x769_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/dmnet_r50-d8.py', 3 | '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_40k.py' 5 | ] 6 | model = dict( 7 | decode_head=dict(align_corners=True), 8 | auxiliary_head=dict(align_corners=True), 9 | test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) 10 | -------------------------------------------------------------------------------- /configs/dmnet/dmnet_r50-d8_769x769_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/dmnet_r50-d8.py', 3 | '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_80k.py' 5 | ] 6 | model = dict( 7 | decode_head=dict(align_corners=True), 8 | auxiliary_head=dict(align_corners=True), 9 | test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) 10 | -------------------------------------------------------------------------------- /configs/dnlnet/dnl_r101-d8_512x1024_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './dnl_r50-d8_512x1024_40k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/dnlnet/dnl_r101-d8_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './dnl_r50-d8_512x1024_80k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/dnlnet/dnl_r101-d8_512x512_160k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = './dnl_r50-d8_512x512_160k_ade20k.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/dnlnet/dnl_r101-d8_512x512_80k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = './dnl_r50-d8_512x512_80k_ade20k.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/dnlnet/dnl_r101-d8_769x769_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './dnl_r50-d8_769x769_40k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/dnlnet/dnl_r101-d8_769x769_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './dnl_r50-d8_769x769_80k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/dnlnet/dnl_r50-d8_512x1024_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/dnl_r50-d8.py', '../_base_/datasets/cityscapes.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' 4 | ] 5 | -------------------------------------------------------------------------------- /configs/dnlnet/dnl_r50-d8_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/dnl_r50-d8.py', '../_base_/datasets/cityscapes.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' 4 | ] 5 | -------------------------------------------------------------------------------- /configs/dnlnet/dnl_r50-d8_512x512_160k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/dnl_r50-d8.py', '../_base_/datasets/ade20k.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py' 4 | ] 5 | model = dict( 6 | decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) 7 | -------------------------------------------------------------------------------- /configs/dnlnet/dnl_r50-d8_512x512_80k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/dnl_r50-d8.py', '../_base_/datasets/ade20k.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' 4 | ] 5 | model = dict( 6 | decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) 7 | -------------------------------------------------------------------------------- /configs/dnlnet/dnl_r50-d8_769x769_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/dnl_r50-d8.py', 3 | '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_40k.py' 5 | ] 6 | model = dict( 7 | decode_head=dict(align_corners=True), 8 | auxiliary_head=dict(align_corners=True), 9 | test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) 10 | -------------------------------------------------------------------------------- /configs/dnlnet/dnl_r50-d8_769x769_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/dnl_r50-d8.py', 3 | '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_80k.py' 5 | ] 6 | model = dict( 7 | decode_head=dict(align_corners=True), 8 | auxiliary_head=dict(align_corners=True), 9 | test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) 10 | optimizer = dict( 11 | paramwise_cfg=dict( 12 | custom_keys=dict(theta=dict(wd_mult=0.), phi=dict(wd_mult=0.)))) 13 | -------------------------------------------------------------------------------- /configs/emanet/emanet_r101-d8_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './emanet_r50-d8_512x1024_80k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/emanet/emanet_r101-d8_769x769_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './emanet_r50-d8_769x769_80k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/emanet/emanet_r50-d8_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/emanet_r50-d8.py', '../_base_/datasets/cityscapes.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' 4 | ] 5 | -------------------------------------------------------------------------------- /configs/emanet/emanet_r50-d8_769x769_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/emanet_r50-d8.py', 3 | '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_80k.py' 5 | ] 6 | model = dict( 7 | decode_head=dict(align_corners=True), 8 | auxiliary_head=dict(align_corners=True), 9 | test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) 10 | -------------------------------------------------------------------------------- /configs/encnet/encnet_r101-d8_512x1024_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './encnet_r50-d8_512x1024_40k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/encnet/encnet_r101-d8_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './encnet_r50-d8_512x1024_80k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/encnet/encnet_r101-d8_512x512_160k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = './encnet_r50-d8_512x512_160k_ade20k.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/encnet/encnet_r101-d8_512x512_20k_voc12aug.py: -------------------------------------------------------------------------------- 1 | _base_ = './encnet_r50-d8_512x512_20k_voc12aug.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/encnet/encnet_r101-d8_512x512_40k_voc12aug.py: -------------------------------------------------------------------------------- 1 | _base_ = './encnet_r50-d8_512x512_40k_voc12aug.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/encnet/encnet_r101-d8_512x512_80k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = './encnet_r50-d8_512x512_80k_ade20k.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/encnet/encnet_r101-d8_769x769_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './encnet_r50-d8_769x769_40k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/encnet/encnet_r101-d8_769x769_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './encnet_r50-d8_769x769_80k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/encnet/encnet_r50-d8_512x1024_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/encnet_r50-d8.py', '../_base_/datasets/cityscapes.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' 4 | ] 5 | -------------------------------------------------------------------------------- /configs/encnet/encnet_r50-d8_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/encnet_r50-d8.py', '../_base_/datasets/cityscapes.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' 4 | ] 5 | -------------------------------------------------------------------------------- /configs/encnet/encnet_r50-d8_512x512_160k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/encnet_r50-d8.py', '../_base_/datasets/ade20k.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py' 4 | ] 5 | model = dict( 6 | decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) 7 | -------------------------------------------------------------------------------- /configs/encnet/encnet_r50-d8_512x512_20k_voc12aug.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/encnet_r50-d8.py', 3 | '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_20k.py' 5 | ] 6 | model = dict( 7 | decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21)) 8 | -------------------------------------------------------------------------------- /configs/encnet/encnet_r50-d8_512x512_40k_voc12aug.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/encnet_r50-d8.py', 3 | '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_40k.py' 5 | ] 6 | model = dict( 7 | decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21)) 8 | -------------------------------------------------------------------------------- /configs/encnet/encnet_r50-d8_512x512_80k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/encnet_r50-d8.py', '../_base_/datasets/ade20k.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' 4 | ] 5 | model = dict( 6 | decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) 7 | -------------------------------------------------------------------------------- /configs/encnet/encnet_r50-d8_769x769_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/encnet_r50-d8.py', 3 | '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_40k.py' 5 | ] 6 | model = dict( 7 | decode_head=dict(align_corners=True), 8 | auxiliary_head=dict(align_corners=True), 9 | test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) 10 | -------------------------------------------------------------------------------- /configs/encnet/encnet_r50-d8_769x769_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/encnet_r50-d8.py', 3 | '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_80k.py' 5 | ] 6 | model = dict( 7 | decode_head=dict(align_corners=True), 8 | auxiliary_head=dict(align_corners=True), 9 | test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) 10 | -------------------------------------------------------------------------------- /configs/encnet/encnet_r50s-d8_512x512_80k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/encnet_r50-d8.py', '../_base_/datasets/ade20k.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' 4 | ] 5 | model = dict( 6 | backbone=dict(stem_channels=128), 7 | decode_head=dict(num_classes=150), 8 | auxiliary_head=dict(num_classes=150)) 9 | -------------------------------------------------------------------------------- /configs/fastscnn/fast_scnn_4x8_80k_lr0.12_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/fast_scnn.py', '../_base_/datasets/cityscapes.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' 4 | ] 5 | 6 | # Re-config the data sampler. 7 | data = dict(samples_per_gpu=2, workers_per_gpu=4) 8 | 9 | # Re-config the optimizer. 10 | optimizer = dict(type='SGD', lr=0.12, momentum=0.9, weight_decay=4e-5) 11 | -------------------------------------------------------------------------------- /configs/fcn/fcn_r101-d8_480x480_40k_pascal_context.py: -------------------------------------------------------------------------------- 1 | _base_ = './fcn_r50-d8_480x480_40k_pascal_context.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/fcn/fcn_r101-d8_480x480_80k_pascal_context.py: -------------------------------------------------------------------------------- 1 | _base_ = './fcn_r50-d8_480x480_80k_pascal_context.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/fcn/fcn_r101-d8_512x1024_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './fcn_r50-d8_512x1024_40k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/fcn/fcn_r101-d8_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './fcn_r50-d8_512x1024_80k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/fcn/fcn_r101-d8_512x512_160k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = './fcn_r50-d8_512x512_160k_ade20k.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/fcn/fcn_r101-d8_512x512_20k_voc12aug.py: -------------------------------------------------------------------------------- 1 | _base_ = './fcn_r50-d8_512x512_20k_voc12aug.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/fcn/fcn_r101-d8_512x512_40k_voc12aug.py: -------------------------------------------------------------------------------- 1 | _base_ = './fcn_r50-d8_512x512_40k_voc12aug.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/fcn/fcn_r101-d8_512x512_80k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = './fcn_r50-d8_512x512_80k_ade20k.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/fcn/fcn_r101-d8_769x769_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './fcn_r50-d8_769x769_40k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/fcn/fcn_r101-d8_769x769_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './fcn_r50-d8_769x769_80k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/fcn/fcn_r101b-d8_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './fcn_r50-d8_512x1024_80k_cityscapes.py' 2 | model = dict( 3 | pretrained='torchvision://resnet101', 4 | backbone=dict(type='ResNet', depth=101)) 5 | -------------------------------------------------------------------------------- /configs/fcn/fcn_r101b-d8_769x769_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './fcn_r50-d8_769x769_80k_cityscapes.py' 2 | model = dict( 3 | pretrained='torchvision://resnet101', 4 | backbone=dict(type='ResNet', depth=101)) 5 | -------------------------------------------------------------------------------- /configs/fcn/fcn_r18-d8_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './fcn_r50-d8_512x1024_80k_cityscapes.py' 2 | model = dict( 3 | pretrained='open-mmlab://resnet18_v1c', 4 | backbone=dict(depth=18), 5 | decode_head=dict( 6 | in_channels=512, 7 | channels=128, 8 | ), 9 | auxiliary_head=dict(in_channels=256, channels=64)) 10 | -------------------------------------------------------------------------------- /configs/fcn/fcn_r18-d8_769x769_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './fcn_r50-d8_769x769_80k_cityscapes.py' 2 | model = dict( 3 | pretrained='open-mmlab://resnet18_v1c', 4 | backbone=dict(depth=18), 5 | decode_head=dict( 6 | in_channels=512, 7 | channels=128, 8 | ), 9 | auxiliary_head=dict(in_channels=256, channels=64)) 10 | -------------------------------------------------------------------------------- /configs/fcn/fcn_r18b-d8_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './fcn_r50-d8_512x1024_80k_cityscapes.py' 2 | model = dict( 3 | pretrained='torchvision://resnet18', 4 | backbone=dict(type='ResNet', depth=18), 5 | decode_head=dict( 6 | in_channels=512, 7 | channels=128, 8 | ), 9 | auxiliary_head=dict(in_channels=256, channels=64)) 10 | -------------------------------------------------------------------------------- /configs/fcn/fcn_r18b-d8_769x769_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './fcn_r50-d8_769x769_80k_cityscapes.py' 2 | model = dict( 3 | pretrained='torchvision://resnet18', 4 | backbone=dict(type='ResNet', depth=18), 5 | decode_head=dict( 6 | in_channels=512, 7 | channels=128, 8 | ), 9 | auxiliary_head=dict(in_channels=256, channels=64)) 10 | -------------------------------------------------------------------------------- /configs/fcn/fcn_r50-d8_480x480_40k_pascal_context.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/fcn_r50-d8.py', '../_base_/datasets/pascal_context.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' 4 | ] 5 | model = dict( 6 | decode_head=dict(num_classes=60), 7 | test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320))) 8 | optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001) 9 | -------------------------------------------------------------------------------- /configs/fcn/fcn_r50-d8_480x480_80k_pascal_context.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/fcn_r50-d8.py', '../_base_/datasets/pascal_context.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' 4 | ] 5 | model = dict( 6 | decode_head=dict(num_classes=60), 7 | test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320))) 8 | optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001) 9 | -------------------------------------------------------------------------------- /configs/fcn/fcn_r50-d8_512x1024_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/fcn_r50-d8.py', '../_base_/datasets/cityscapes.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' 4 | ] 5 | -------------------------------------------------------------------------------- /configs/fcn/fcn_r50-d8_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/fcn_r50-d8.py', '../_base_/datasets/cityscapes.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' 4 | ] 5 | -------------------------------------------------------------------------------- /configs/fcn/fcn_r50-d8_512x512_160k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/fcn_r50-d8.py', '../_base_/datasets/ade20k.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py' 4 | ] 5 | model = dict( 6 | decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) 7 | -------------------------------------------------------------------------------- /configs/fcn/fcn_r50-d8_512x512_20k_voc12aug.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/fcn_r50-d8.py', '../_base_/datasets/pascal_voc12_aug.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_20k.py' 4 | ] 5 | model = dict( 6 | decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21)) 7 | -------------------------------------------------------------------------------- /configs/fcn/fcn_r50-d8_512x512_40k_voc12aug.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/fcn_r50-d8.py', '../_base_/datasets/pascal_voc12_aug.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' 4 | ] 5 | model = dict( 6 | decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21)) 7 | -------------------------------------------------------------------------------- /configs/fcn/fcn_r50-d8_512x512_80k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/fcn_r50-d8.py', '../_base_/datasets/ade20k.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' 4 | ] 5 | model = dict( 6 | decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) 7 | -------------------------------------------------------------------------------- /configs/fcn/fcn_r50-d8_769x769_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/fcn_r50-d8.py', 3 | '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_40k.py' 5 | ] 6 | model = dict( 7 | decode_head=dict(align_corners=True), 8 | auxiliary_head=dict(align_corners=True), 9 | test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) 10 | -------------------------------------------------------------------------------- /configs/fcn/fcn_r50-d8_769x769_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/fcn_r50-d8.py', 3 | '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_80k.py' 5 | ] 6 | model = dict( 7 | decode_head=dict(align_corners=True), 8 | auxiliary_head=dict(align_corners=True), 9 | test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) 10 | -------------------------------------------------------------------------------- /configs/fcn/fcn_r50b-d8_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './fcn_r50-d8_512x1024_80k_cityscapes.py' 2 | model = dict(pretrained='torchvision://resnet50', backbone=dict(type='ResNet')) 3 | -------------------------------------------------------------------------------- /configs/fcn/fcn_r50b-d8_769x769_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './fcn_r50-d8_769x769_80k_cityscapes.py' 2 | model = dict(pretrained='torchvision://resnet50', backbone=dict(type='ResNet')) 3 | -------------------------------------------------------------------------------- /configs/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = '../deeplabv3/deeplabv3_r101-d8_512x1024_80k_cityscapes.py' 2 | # fp16 settings 3 | optimizer_config = dict(type='Fp16OptimizerHook', loss_scale=512.) 4 | -------------------------------------------------------------------------------- /configs/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = '../deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes.py' 2 | # fp16 settings 3 | optimizer_config = dict(type='Fp16OptimizerHook', loss_scale=512.) 4 | -------------------------------------------------------------------------------- /configs/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = '../fcn/fcn_r101-d8_512x1024_80k_cityscapes.py' 2 | # fp16 settings 3 | optimizer_config = dict(type='Fp16OptimizerHook', loss_scale=512.) 4 | -------------------------------------------------------------------------------- /configs/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = '../pspnet/pspnet_r101-d8_512x1024_80k_cityscapes.py' 2 | # fp16 settings 3 | optimizer_config = dict(type='Fp16OptimizerHook', loss_scale=512.) 4 | -------------------------------------------------------------------------------- /configs/gcnet/gcnet_r101-d8_512x1024_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './gcnet_r50-d8_512x1024_40k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/gcnet/gcnet_r101-d8_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './gcnet_r50-d8_512x1024_80k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/gcnet/gcnet_r101-d8_512x512_160k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = './gcnet_r50-d8_512x512_160k_ade20k.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/gcnet/gcnet_r101-d8_512x512_20k_voc12aug.py: -------------------------------------------------------------------------------- 1 | _base_ = './gcnet_r50-d8_512x512_20k_voc12aug.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/gcnet/gcnet_r101-d8_512x512_40k_voc12aug.py: -------------------------------------------------------------------------------- 1 | _base_ = './gcnet_r50-d8_512x512_40k_voc12aug.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/gcnet/gcnet_r101-d8_512x512_80k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = './gcnet_r50-d8_512x512_80k_ade20k.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/gcnet/gcnet_r101-d8_769x769_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './gcnet_r50-d8_769x769_40k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/gcnet/gcnet_r101-d8_769x769_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './gcnet_r50-d8_769x769_80k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/gcnet/gcnet_r50-d8_512x1024_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/gcnet_r50-d8.py', '../_base_/datasets/cityscapes.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' 4 | ] 5 | -------------------------------------------------------------------------------- /configs/gcnet/gcnet_r50-d8_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/gcnet_r50-d8.py', '../_base_/datasets/cityscapes.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' 4 | ] 5 | -------------------------------------------------------------------------------- /configs/gcnet/gcnet_r50-d8_512x512_160k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/gcnet_r50-d8.py', '../_base_/datasets/ade20k.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py' 4 | ] 5 | model = dict( 6 | decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) 7 | -------------------------------------------------------------------------------- /configs/gcnet/gcnet_r50-d8_512x512_20k_voc12aug.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/gcnet_r50-d8.py', 3 | '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_20k.py' 5 | ] 6 | model = dict( 7 | decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21)) 8 | -------------------------------------------------------------------------------- /configs/gcnet/gcnet_r50-d8_512x512_40k_voc12aug.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/gcnet_r50-d8.py', 3 | '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_40k.py' 5 | ] 6 | model = dict( 7 | decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21)) 8 | -------------------------------------------------------------------------------- /configs/gcnet/gcnet_r50-d8_512x512_80k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/gcnet_r50-d8.py', '../_base_/datasets/ade20k.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' 4 | ] 5 | model = dict( 6 | decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) 7 | -------------------------------------------------------------------------------- /configs/gcnet/gcnet_r50-d8_769x769_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/gcnet_r50-d8.py', 3 | '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_40k.py' 5 | ] 6 | model = dict( 7 | decode_head=dict(align_corners=True), 8 | auxiliary_head=dict(align_corners=True), 9 | test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) 10 | -------------------------------------------------------------------------------- /configs/gcnet/gcnet_r50-d8_769x769_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/gcnet_r50-d8.py', 3 | '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_80k.py' 5 | ] 6 | model = dict( 7 | decode_head=dict(align_corners=True), 8 | auxiliary_head=dict(align_corners=True), 9 | test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) 10 | -------------------------------------------------------------------------------- /configs/hrnet/fcn_hr18_480x480_40k_pascal_context.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/fcn_hr18.py', '../_base_/datasets/pascal_context.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' 4 | ] 5 | model = dict( 6 | decode_head=dict(num_classes=60), 7 | test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320))) 8 | optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001) 9 | -------------------------------------------------------------------------------- /configs/hrnet/fcn_hr18_480x480_80k_pascal_context.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/fcn_hr18.py', '../_base_/datasets/pascal_context.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' 4 | ] 5 | model = dict( 6 | decode_head=dict(num_classes=60), 7 | test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320))) 8 | optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001) 9 | -------------------------------------------------------------------------------- /configs/hrnet/fcn_hr18_512x1024_160k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/fcn_hr18.py', '../_base_/datasets/cityscapes.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py' 4 | ] 5 | -------------------------------------------------------------------------------- /configs/hrnet/fcn_hr18_512x1024_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/fcn_hr18.py', '../_base_/datasets/cityscapes.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' 4 | ] 5 | -------------------------------------------------------------------------------- /configs/hrnet/fcn_hr18_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/fcn_hr18.py', '../_base_/datasets/cityscapes.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' 4 | ] 5 | -------------------------------------------------------------------------------- /configs/hrnet/fcn_hr18_512x512_160k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/fcn_hr18.py', '../_base_/datasets/ade20k.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py' 4 | ] 5 | model = dict(decode_head=dict(num_classes=150)) 6 | -------------------------------------------------------------------------------- /configs/hrnet/fcn_hr18_512x512_20k_voc12aug.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/fcn_hr18.py', '../_base_/datasets/pascal_voc12_aug.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_20k.py' 4 | ] 5 | model = dict(decode_head=dict(num_classes=21)) 6 | -------------------------------------------------------------------------------- /configs/hrnet/fcn_hr18_512x512_40k_voc12aug.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/fcn_hr18.py', '../_base_/datasets/pascal_voc12_aug.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' 4 | ] 5 | model = dict(decode_head=dict(num_classes=21)) 6 | -------------------------------------------------------------------------------- /configs/hrnet/fcn_hr18_512x512_80k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/fcn_hr18.py', '../_base_/datasets/ade20k.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' 4 | ] 5 | model = dict(decode_head=dict(num_classes=150)) 6 | -------------------------------------------------------------------------------- /configs/hrnet/fcn_hr18s_480x480_40k_pascal_context.py: -------------------------------------------------------------------------------- 1 | _base_ = './fcn_hr18_480x480_40k_pascal_context.py' 2 | model = dict( 3 | pretrained='open-mmlab://msra/hrnetv2_w18_small', 4 | backbone=dict( 5 | extra=dict( 6 | stage1=dict(num_blocks=(2, )), 7 | stage2=dict(num_blocks=(2, 2)), 8 | stage3=dict(num_modules=3, num_blocks=(2, 2, 2)), 9 | stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2))))) 10 | -------------------------------------------------------------------------------- /configs/hrnet/fcn_hr18s_480x480_80k_pascal_context.py: -------------------------------------------------------------------------------- 1 | _base_ = './fcn_hr18_480x480_80k_pascal_context.py' 2 | model = dict( 3 | pretrained='open-mmlab://msra/hrnetv2_w18_small', 4 | backbone=dict( 5 | extra=dict( 6 | stage1=dict(num_blocks=(2, )), 7 | stage2=dict(num_blocks=(2, 2)), 8 | stage3=dict(num_modules=3, num_blocks=(2, 2, 2)), 9 | stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2))))) 10 | -------------------------------------------------------------------------------- /configs/hrnet/fcn_hr18s_512x1024_160k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './fcn_hr18_512x1024_160k_cityscapes.py' 2 | model = dict( 3 | pretrained='open-mmlab://msra/hrnetv2_w18_small', 4 | backbone=dict( 5 | extra=dict( 6 | stage1=dict(num_blocks=(2, )), 7 | stage2=dict(num_blocks=(2, 2)), 8 | stage3=dict(num_modules=3, num_blocks=(2, 2, 2)), 9 | stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2))))) 10 | -------------------------------------------------------------------------------- /configs/hrnet/fcn_hr18s_512x1024_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './fcn_hr18_512x1024_40k_cityscapes.py' 2 | model = dict( 3 | pretrained='open-mmlab://msra/hrnetv2_w18_small', 4 | backbone=dict( 5 | extra=dict( 6 | stage1=dict(num_blocks=(2, )), 7 | stage2=dict(num_blocks=(2, 2)), 8 | stage3=dict(num_modules=3, num_blocks=(2, 2, 2)), 9 | stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2))))) 10 | -------------------------------------------------------------------------------- /configs/hrnet/fcn_hr18s_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './fcn_hr18_512x1024_80k_cityscapes.py' 2 | model = dict( 3 | pretrained='open-mmlab://msra/hrnetv2_w18_small', 4 | backbone=dict( 5 | extra=dict( 6 | stage1=dict(num_blocks=(2, )), 7 | stage2=dict(num_blocks=(2, 2)), 8 | stage3=dict(num_modules=3, num_blocks=(2, 2, 2)), 9 | stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2))))) 10 | -------------------------------------------------------------------------------- /configs/hrnet/fcn_hr18s_512x512_160k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = './fcn_hr18_512x512_160k_ade20k.py' 2 | model = dict( 3 | pretrained='open-mmlab://msra/hrnetv2_w18_small', 4 | backbone=dict( 5 | extra=dict( 6 | stage1=dict(num_blocks=(2, )), 7 | stage2=dict(num_blocks=(2, 2)), 8 | stage3=dict(num_modules=3, num_blocks=(2, 2, 2)), 9 | stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2))))) 10 | -------------------------------------------------------------------------------- /configs/hrnet/fcn_hr18s_512x512_20k_voc12aug.py: -------------------------------------------------------------------------------- 1 | _base_ = './fcn_hr18_512x512_20k_voc12aug.py' 2 | model = dict( 3 | pretrained='open-mmlab://msra/hrnetv2_w18_small', 4 | backbone=dict( 5 | extra=dict( 6 | stage1=dict(num_blocks=(2, )), 7 | stage2=dict(num_blocks=(2, 2)), 8 | stage3=dict(num_modules=3, num_blocks=(2, 2, 2)), 9 | stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2))))) 10 | -------------------------------------------------------------------------------- /configs/hrnet/fcn_hr18s_512x512_40k_voc12aug.py: -------------------------------------------------------------------------------- 1 | _base_ = './fcn_hr18_512x512_40k_voc12aug.py' 2 | model = dict( 3 | pretrained='open-mmlab://msra/hrnetv2_w18_small', 4 | backbone=dict( 5 | extra=dict( 6 | stage1=dict(num_blocks=(2, )), 7 | stage2=dict(num_blocks=(2, 2)), 8 | stage3=dict(num_modules=3, num_blocks=(2, 2, 2)), 9 | stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2))))) 10 | -------------------------------------------------------------------------------- /configs/hrnet/fcn_hr18s_512x512_80k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = './fcn_hr18_512x512_80k_ade20k.py' 2 | model = dict( 3 | pretrained='open-mmlab://msra/hrnetv2_w18_small', 4 | backbone=dict( 5 | extra=dict( 6 | stage1=dict(num_blocks=(2, )), 7 | stage2=dict(num_blocks=(2, 2)), 8 | stage3=dict(num_modules=3, num_blocks=(2, 2, 2)), 9 | stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2))))) 10 | -------------------------------------------------------------------------------- /configs/hrnet/fcn_hr48_480x480_40k_pascal_context.py: -------------------------------------------------------------------------------- 1 | _base_ = './fcn_hr18_480x480_40k_pascal_context.py' 2 | model = dict( 3 | pretrained='open-mmlab://msra/hrnetv2_w48', 4 | backbone=dict( 5 | extra=dict( 6 | stage2=dict(num_channels=(48, 96)), 7 | stage3=dict(num_channels=(48, 96, 192)), 8 | stage4=dict(num_channels=(48, 96, 192, 384)))), 9 | decode_head=dict( 10 | in_channels=[48, 96, 192, 384], channels=sum([48, 96, 192, 384]))) 11 | -------------------------------------------------------------------------------- /configs/hrnet/fcn_hr48_480x480_80k_pascal_context.py: -------------------------------------------------------------------------------- 1 | _base_ = './fcn_hr18_480x480_80k_pascal_context.py' 2 | model = dict( 3 | pretrained='open-mmlab://msra/hrnetv2_w48', 4 | backbone=dict( 5 | extra=dict( 6 | stage2=dict(num_channels=(48, 96)), 7 | stage3=dict(num_channels=(48, 96, 192)), 8 | stage4=dict(num_channels=(48, 96, 192, 384)))), 9 | decode_head=dict( 10 | in_channels=[48, 96, 192, 384], channels=sum([48, 96, 192, 384]))) 11 | -------------------------------------------------------------------------------- /configs/hrnet/fcn_hr48_512x1024_160k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './fcn_hr18_512x1024_160k_cityscapes.py' 2 | model = dict( 3 | pretrained='open-mmlab://msra/hrnetv2_w48', 4 | backbone=dict( 5 | extra=dict( 6 | stage2=dict(num_channels=(48, 96)), 7 | stage3=dict(num_channels=(48, 96, 192)), 8 | stage4=dict(num_channels=(48, 96, 192, 384)))), 9 | decode_head=dict( 10 | in_channels=[48, 96, 192, 384], channels=sum([48, 96, 192, 384]))) 11 | -------------------------------------------------------------------------------- /configs/hrnet/fcn_hr48_512x1024_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './fcn_hr18_512x1024_40k_cityscapes.py' 2 | model = dict( 3 | pretrained='open-mmlab://msra/hrnetv2_w48', 4 | backbone=dict( 5 | extra=dict( 6 | stage2=dict(num_channels=(48, 96)), 7 | stage3=dict(num_channels=(48, 96, 192)), 8 | stage4=dict(num_channels=(48, 96, 192, 384)))), 9 | decode_head=dict( 10 | in_channels=[48, 96, 192, 384], channels=sum([48, 96, 192, 384]))) 11 | -------------------------------------------------------------------------------- /configs/hrnet/fcn_hr48_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './fcn_hr18_512x1024_80k_cityscapes.py' 2 | model = dict( 3 | pretrained='open-mmlab://msra/hrnetv2_w48', 4 | backbone=dict( 5 | extra=dict( 6 | stage2=dict(num_channels=(48, 96)), 7 | stage3=dict(num_channels=(48, 96, 192)), 8 | stage4=dict(num_channels=(48, 96, 192, 384)))), 9 | decode_head=dict( 10 | in_channels=[48, 96, 192, 384], channels=sum([48, 96, 192, 384]))) 11 | -------------------------------------------------------------------------------- /configs/hrnet/fcn_hr48_512x512_160k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = './fcn_hr18_512x512_160k_ade20k.py' 2 | model = dict( 3 | pretrained='open-mmlab://msra/hrnetv2_w48', 4 | backbone=dict( 5 | extra=dict( 6 | stage2=dict(num_channels=(48, 96)), 7 | stage3=dict(num_channels=(48, 96, 192)), 8 | stage4=dict(num_channels=(48, 96, 192, 384)))), 9 | decode_head=dict( 10 | in_channels=[48, 96, 192, 384], channels=sum([48, 96, 192, 384]))) 11 | -------------------------------------------------------------------------------- /configs/hrnet/fcn_hr48_512x512_20k_voc12aug.py: -------------------------------------------------------------------------------- 1 | _base_ = './fcn_hr18_512x512_20k_voc12aug.py' 2 | model = dict( 3 | pretrained='open-mmlab://msra/hrnetv2_w48', 4 | backbone=dict( 5 | extra=dict( 6 | stage2=dict(num_channels=(48, 96)), 7 | stage3=dict(num_channels=(48, 96, 192)), 8 | stage4=dict(num_channels=(48, 96, 192, 384)))), 9 | decode_head=dict( 10 | in_channels=[48, 96, 192, 384], channels=sum([48, 96, 192, 384]))) 11 | -------------------------------------------------------------------------------- /configs/hrnet/fcn_hr48_512x512_40k_voc12aug.py: -------------------------------------------------------------------------------- 1 | _base_ = './fcn_hr18_512x512_40k_voc12aug.py' 2 | model = dict( 3 | pretrained='open-mmlab://msra/hrnetv2_w48', 4 | backbone=dict( 5 | extra=dict( 6 | stage2=dict(num_channels=(48, 96)), 7 | stage3=dict(num_channels=(48, 96, 192)), 8 | stage4=dict(num_channels=(48, 96, 192, 384)))), 9 | decode_head=dict( 10 | in_channels=[48, 96, 192, 384], channels=sum([48, 96, 192, 384]))) 11 | -------------------------------------------------------------------------------- /configs/hrnet/fcn_hr48_512x512_80k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = './fcn_hr18_512x512_80k_ade20k.py' 2 | model = dict( 3 | pretrained='open-mmlab://msra/hrnetv2_w48', 4 | backbone=dict( 5 | extra=dict( 6 | stage2=dict(num_channels=(48, 96)), 7 | stage3=dict(num_channels=(48, 96, 192)), 8 | stage4=dict(num_channels=(48, 96, 192, 384)))), 9 | decode_head=dict( 10 | in_channels=[48, 96, 192, 384], channels=sum([48, 96, 192, 384]))) 11 | -------------------------------------------------------------------------------- /configs/mobilenet_v2/deeplabv3_m-v2-d8_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = '../deeplabv3/deeplabv3_r101-d8_512x1024_80k_cityscapes.py' 2 | model = dict( 3 | pretrained='mmcls://mobilenet_v2', 4 | backbone=dict( 5 | _delete_=True, 6 | type='MobileNetV2', 7 | widen_factor=1., 8 | strides=(1, 2, 2, 1, 1, 1, 1), 9 | dilations=(1, 1, 1, 2, 2, 4, 4), 10 | out_indices=(1, 2, 4, 6)), 11 | decode_head=dict(in_channels=320), 12 | auxiliary_head=dict(in_channels=96)) 13 | -------------------------------------------------------------------------------- /configs/mobilenet_v2/deeplabv3_m-v2-d8_512x512_160k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = '../deeplabv3/deeplabv3_r101-d8_512x512_160k_ade20k.py' 2 | model = dict( 3 | pretrained='mmcls://mobilenet_v2', 4 | backbone=dict( 5 | _delete_=True, 6 | type='MobileNetV2', 7 | widen_factor=1., 8 | strides=(1, 2, 2, 1, 1, 1, 1), 9 | dilations=(1, 1, 1, 2, 2, 4, 4), 10 | out_indices=(1, 2, 4, 6)), 11 | decode_head=dict(in_channels=320), 12 | auxiliary_head=dict(in_channels=96)) 13 | -------------------------------------------------------------------------------- /configs/mobilenet_v2/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = '../deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes.py' 2 | model = dict( 3 | pretrained='mmcls://mobilenet_v2', 4 | backbone=dict( 5 | _delete_=True, 6 | type='MobileNetV2', 7 | widen_factor=1., 8 | strides=(1, 2, 2, 1, 1, 1, 1), 9 | dilations=(1, 1, 1, 2, 2, 4, 4), 10 | out_indices=(1, 2, 4, 6)), 11 | decode_head=dict(in_channels=320, c1_in_channels=24), 12 | auxiliary_head=dict(in_channels=96)) 13 | -------------------------------------------------------------------------------- /configs/mobilenet_v2/deeplabv3plus_m-v2-d8_512x512_160k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = '../deeplabv3plus/deeplabv3plus_r101-d8_512x512_160k_ade20k.py' 2 | model = dict( 3 | pretrained='mmcls://mobilenet_v2', 4 | backbone=dict( 5 | _delete_=True, 6 | type='MobileNetV2', 7 | widen_factor=1., 8 | strides=(1, 2, 2, 1, 1, 1, 1), 9 | dilations=(1, 1, 1, 2, 2, 4, 4), 10 | out_indices=(1, 2, 4, 6)), 11 | decode_head=dict(in_channels=320, c1_in_channels=24), 12 | auxiliary_head=dict(in_channels=96)) 13 | -------------------------------------------------------------------------------- /configs/mobilenet_v2/fcn_m-v2-d8_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = '../fcn/fcn_r101-d8_512x1024_80k_cityscapes.py' 2 | model = dict( 3 | pretrained='mmcls://mobilenet_v2', 4 | backbone=dict( 5 | _delete_=True, 6 | type='MobileNetV2', 7 | widen_factor=1., 8 | strides=(1, 2, 2, 1, 1, 1, 1), 9 | dilations=(1, 1, 1, 2, 2, 4, 4), 10 | out_indices=(1, 2, 4, 6)), 11 | decode_head=dict(in_channels=320), 12 | auxiliary_head=dict(in_channels=96)) 13 | -------------------------------------------------------------------------------- /configs/mobilenet_v2/fcn_m-v2-d8_512x512_160k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = '../fcn/fcn_r101-d8_512x512_160k_ade20k.py' 2 | model = dict( 3 | pretrained='mmcls://mobilenet_v2', 4 | backbone=dict( 5 | _delete_=True, 6 | type='MobileNetV2', 7 | widen_factor=1., 8 | strides=(1, 2, 2, 1, 1, 1, 1), 9 | dilations=(1, 1, 1, 2, 2, 4, 4), 10 | out_indices=(1, 2, 4, 6)), 11 | decode_head=dict(in_channels=320), 12 | auxiliary_head=dict(in_channels=96)) 13 | -------------------------------------------------------------------------------- /configs/mobilenet_v2/pspnet_m-v2-d8_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = '../pspnet/pspnet_r101-d8_512x1024_80k_cityscapes.py' 2 | model = dict( 3 | pretrained='mmcls://mobilenet_v2', 4 | backbone=dict( 5 | _delete_=True, 6 | type='MobileNetV2', 7 | widen_factor=1., 8 | strides=(1, 2, 2, 1, 1, 1, 1), 9 | dilations=(1, 1, 1, 2, 2, 4, 4), 10 | out_indices=(1, 2, 4, 6)), 11 | decode_head=dict(in_channels=320), 12 | auxiliary_head=dict(in_channels=96)) 13 | -------------------------------------------------------------------------------- /configs/mobilenet_v2/pspnet_m-v2-d8_512x512_160k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = '../pspnet/pspnet_r101-d8_512x512_160k_ade20k.py' 2 | model = dict( 3 | pretrained='mmcls://mobilenet_v2', 4 | backbone=dict( 5 | _delete_=True, 6 | type='MobileNetV2', 7 | widen_factor=1., 8 | strides=(1, 2, 2, 1, 1, 1, 1), 9 | dilations=(1, 1, 1, 2, 2, 4, 4), 10 | out_indices=(1, 2, 4, 6)), 11 | decode_head=dict(in_channels=320), 12 | auxiliary_head=dict(in_channels=96)) 13 | -------------------------------------------------------------------------------- /configs/mobilenet_v3/lraspp_m-v3-d8_512x1024_320k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/lraspp_m-v3-d8.py', '../_base_/datasets/cityscapes.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py' 4 | ] 5 | 6 | model = dict(pretrained='open-mmlab://contrib/mobilenet_v3_large') 7 | 8 | # Re-config the data sampler. 9 | data = dict(samples_per_gpu=4, workers_per_gpu=4) 10 | 11 | runner = dict(type='IterBasedRunner', max_iters=320000) 12 | -------------------------------------------------------------------------------- /configs/mobilenet_v3/lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/lraspp_m-v3-d8.py', '../_base_/datasets/cityscapes.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py' 4 | ] 5 | 6 | # Re-config the data sampler. 7 | data = dict(samples_per_gpu=4, workers_per_gpu=4) 8 | 9 | runner = dict(type='IterBasedRunner', max_iters=320000) 10 | -------------------------------------------------------------------------------- /configs/mobilenet_v3/lraspp_m-v3s-d8_512x1024_320k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './lraspp_m-v3-d8_512x1024_320k_cityscapes.py' 2 | norm_cfg = dict(type='SyncBN', eps=0.001, requires_grad=True) 3 | model = dict( 4 | type='EncoderDecoder', 5 | pretrained='open-mmlab://contrib/mobilenet_v3_small', 6 | backbone=dict( 7 | type='MobileNetV3', 8 | arch='small', 9 | out_indices=(0, 1, 12), 10 | norm_cfg=norm_cfg), 11 | decode_head=dict( 12 | type='LRASPPHead', 13 | in_channels=(16, 16, 576), 14 | in_index=(0, 1, 2), 15 | channels=128, 16 | input_transform='multiple_select', 17 | dropout_ratio=0.1, 18 | num_classes=19, 19 | norm_cfg=norm_cfg, 20 | act_cfg=dict(type='ReLU'), 21 | align_corners=False, 22 | loss_decode=dict( 23 | type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0))) 24 | -------------------------------------------------------------------------------- /configs/mobilenet_v3/lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes.py' 2 | norm_cfg = dict(type='SyncBN', eps=0.001, requires_grad=True) 3 | model = dict( 4 | type='EncoderDecoder', 5 | backbone=dict( 6 | type='MobileNetV3', 7 | arch='small', 8 | out_indices=(0, 1, 12), 9 | norm_cfg=norm_cfg), 10 | decode_head=dict( 11 | type='LRASPPHead', 12 | in_channels=(16, 16, 576), 13 | in_index=(0, 1, 2), 14 | channels=128, 15 | input_transform='multiple_select', 16 | dropout_ratio=0.1, 17 | num_classes=19, 18 | norm_cfg=norm_cfg, 19 | act_cfg=dict(type='ReLU'), 20 | align_corners=False, 21 | loss_decode=dict( 22 | type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0))) 23 | -------------------------------------------------------------------------------- /configs/nonlocal_net/nonlocal_r101-d8_512x1024_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './nonlocal_r50-d8_512x1024_40k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/nonlocal_net/nonlocal_r101-d8_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './nonlocal_r50-d8_512x1024_80k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/nonlocal_net/nonlocal_r101-d8_512x512_160k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = './nonlocal_r50-d8_512x512_160k_ade20k.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/nonlocal_net/nonlocal_r101-d8_512x512_20k_voc12aug.py: -------------------------------------------------------------------------------- 1 | _base_ = './nonlocal_r50-d8_512x512_20k_voc12aug.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/nonlocal_net/nonlocal_r101-d8_512x512_40k_voc12aug.py: -------------------------------------------------------------------------------- 1 | _base_ = './nonlocal_r50-d8_512x512_40k_voc12aug.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/nonlocal_net/nonlocal_r101-d8_512x512_80k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = './nonlocal_r50-d8_512x512_80k_ade20k.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/nonlocal_net/nonlocal_r101-d8_769x769_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './nonlocal_r50-d8_769x769_40k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/nonlocal_net/nonlocal_r101-d8_769x769_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './nonlocal_r50-d8_769x769_80k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/nonlocal_net/nonlocal_r50-d8_512x1024_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/nonlocal_r50-d8.py', '../_base_/datasets/cityscapes.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' 4 | ] 5 | -------------------------------------------------------------------------------- /configs/nonlocal_net/nonlocal_r50-d8_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/nonlocal_r50-d8.py', '../_base_/datasets/cityscapes.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' 4 | ] 5 | -------------------------------------------------------------------------------- /configs/nonlocal_net/nonlocal_r50-d8_512x512_160k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/nonlocal_r50-d8.py', '../_base_/datasets/ade20k.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py' 4 | ] 5 | model = dict( 6 | decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) 7 | -------------------------------------------------------------------------------- /configs/nonlocal_net/nonlocal_r50-d8_512x512_20k_voc12aug.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/nonlocal_r50-d8.py', 3 | '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_20k.py' 5 | ] 6 | model = dict( 7 | decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21)) 8 | -------------------------------------------------------------------------------- /configs/nonlocal_net/nonlocal_r50-d8_512x512_40k_voc12aug.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/nonlocal_r50-d8.py', 3 | '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_40k.py' 5 | ] 6 | model = dict( 7 | decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21)) 8 | -------------------------------------------------------------------------------- /configs/nonlocal_net/nonlocal_r50-d8_512x512_80k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/nonlocal_r50-d8.py', '../_base_/datasets/ade20k.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' 4 | ] 5 | model = dict( 6 | decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) 7 | -------------------------------------------------------------------------------- /configs/nonlocal_net/nonlocal_r50-d8_769x769_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/nonlocal_r50-d8.py', 3 | '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_40k.py' 5 | ] 6 | model = dict( 7 | decode_head=dict(align_corners=True), 8 | auxiliary_head=dict(align_corners=True), 9 | test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) 10 | -------------------------------------------------------------------------------- /configs/nonlocal_net/nonlocal_r50-d8_769x769_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/nonlocal_r50-d8.py', 3 | '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_80k.py' 5 | ] 6 | model = dict( 7 | decode_head=dict(align_corners=True), 8 | auxiliary_head=dict(align_corners=True), 9 | test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) 10 | -------------------------------------------------------------------------------- /configs/ocrnet/ocrnet_hr18_512x1024_160k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/ocrnet_hr18.py', '../_base_/datasets/cityscapes.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py' 4 | ] 5 | -------------------------------------------------------------------------------- /configs/ocrnet/ocrnet_hr18_512x1024_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/ocrnet_hr18.py', '../_base_/datasets/cityscapes.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' 4 | ] 5 | -------------------------------------------------------------------------------- /configs/ocrnet/ocrnet_hr18_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/ocrnet_hr18.py', '../_base_/datasets/cityscapes.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' 4 | ] 5 | -------------------------------------------------------------------------------- /configs/ocrnet/ocrnet_hr18_512x512_160k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/ocrnet_hr18.py', '../_base_/datasets/ade20k.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py' 4 | ] 5 | norm_cfg = dict(type='SyncBN', requires_grad=True) 6 | model = dict(decode_head=[ 7 | dict( 8 | type='FCNHead', 9 | in_channels=[18, 36, 72, 144], 10 | channels=sum([18, 36, 72, 144]), 11 | in_index=(0, 1, 2, 3), 12 | input_transform='resize_concat', 13 | kernel_size=1, 14 | num_convs=1, 15 | concat_input=False, 16 | dropout_ratio=-1, 17 | num_classes=150, 18 | norm_cfg=norm_cfg, 19 | align_corners=False, 20 | loss_decode=dict( 21 | type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)), 22 | dict( 23 | type='OCRHead', 24 | in_channels=[18, 36, 72, 144], 25 | in_index=(0, 1, 2, 3), 26 | input_transform='resize_concat', 27 | channels=512, 28 | ocr_channels=256, 29 | dropout_ratio=-1, 30 | num_classes=150, 31 | norm_cfg=norm_cfg, 32 | align_corners=False, 33 | loss_decode=dict( 34 | type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)), 35 | ]) 36 | -------------------------------------------------------------------------------- /configs/ocrnet/ocrnet_hr18_512x512_20k_voc12aug.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/ocrnet_hr18.py', 3 | '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_20k.py' 5 | ] 6 | norm_cfg = dict(type='SyncBN', requires_grad=True) 7 | model = dict(decode_head=[ 8 | dict( 9 | type='FCNHead', 10 | in_channels=[18, 36, 72, 144], 11 | channels=sum([18, 36, 72, 144]), 12 | in_index=(0, 1, 2, 3), 13 | input_transform='resize_concat', 14 | kernel_size=1, 15 | num_convs=1, 16 | concat_input=False, 17 | dropout_ratio=-1, 18 | num_classes=21, 19 | norm_cfg=norm_cfg, 20 | align_corners=False, 21 | loss_decode=dict( 22 | type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)), 23 | dict( 24 | type='OCRHead', 25 | in_channels=[18, 36, 72, 144], 26 | in_index=(0, 1, 2, 3), 27 | input_transform='resize_concat', 28 | channels=512, 29 | ocr_channels=256, 30 | dropout_ratio=-1, 31 | num_classes=21, 32 | norm_cfg=norm_cfg, 33 | align_corners=False, 34 | loss_decode=dict( 35 | type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)), 36 | ]) 37 | -------------------------------------------------------------------------------- /configs/ocrnet/ocrnet_hr18_512x512_40k_voc12aug.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/ocrnet_hr18.py', 3 | '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_40k.py' 5 | ] 6 | norm_cfg = dict(type='SyncBN', requires_grad=True) 7 | model = dict(decode_head=[ 8 | dict( 9 | type='FCNHead', 10 | in_channels=[18, 36, 72, 144], 11 | channels=sum([18, 36, 72, 144]), 12 | in_index=(0, 1, 2, 3), 13 | input_transform='resize_concat', 14 | kernel_size=1, 15 | num_convs=1, 16 | concat_input=False, 17 | dropout_ratio=-1, 18 | num_classes=21, 19 | norm_cfg=norm_cfg, 20 | align_corners=False, 21 | loss_decode=dict( 22 | type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)), 23 | dict( 24 | type='OCRHead', 25 | in_channels=[18, 36, 72, 144], 26 | in_index=(0, 1, 2, 3), 27 | input_transform='resize_concat', 28 | channels=512, 29 | ocr_channels=256, 30 | dropout_ratio=-1, 31 | num_classes=21, 32 | norm_cfg=norm_cfg, 33 | align_corners=False, 34 | loss_decode=dict( 35 | type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)), 36 | ]) 37 | -------------------------------------------------------------------------------- /configs/ocrnet/ocrnet_hr18_512x512_80k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/ocrnet_hr18.py', '../_base_/datasets/ade20k.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' 4 | ] 5 | norm_cfg = dict(type='SyncBN', requires_grad=True) 6 | model = dict(decode_head=[ 7 | dict( 8 | type='FCNHead', 9 | in_channels=[18, 36, 72, 144], 10 | channels=sum([18, 36, 72, 144]), 11 | in_index=(0, 1, 2, 3), 12 | input_transform='resize_concat', 13 | kernel_size=1, 14 | num_convs=1, 15 | concat_input=False, 16 | dropout_ratio=-1, 17 | num_classes=150, 18 | norm_cfg=norm_cfg, 19 | align_corners=False, 20 | loss_decode=dict( 21 | type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)), 22 | dict( 23 | type='OCRHead', 24 | in_channels=[18, 36, 72, 144], 25 | in_index=(0, 1, 2, 3), 26 | input_transform='resize_concat', 27 | channels=512, 28 | ocr_channels=256, 29 | dropout_ratio=-1, 30 | num_classes=150, 31 | norm_cfg=norm_cfg, 32 | align_corners=False, 33 | loss_decode=dict( 34 | type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)), 35 | ]) 36 | -------------------------------------------------------------------------------- /configs/ocrnet/ocrnet_hr18s_512x1024_160k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './ocrnet_hr18_512x1024_160k_cityscapes.py' 2 | model = dict( 3 | pretrained='open-mmlab://msra/hrnetv2_w18_small', 4 | backbone=dict( 5 | extra=dict( 6 | stage1=dict(num_blocks=(2, )), 7 | stage2=dict(num_blocks=(2, 2)), 8 | stage3=dict(num_modules=3, num_blocks=(2, 2, 2)), 9 | stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2))))) 10 | -------------------------------------------------------------------------------- /configs/ocrnet/ocrnet_hr18s_512x1024_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './ocrnet_hr18_512x1024_40k_cityscapes.py' 2 | model = dict( 3 | pretrained='open-mmlab://msra/hrnetv2_w18_small', 4 | backbone=dict( 5 | extra=dict( 6 | stage1=dict(num_blocks=(2, )), 7 | stage2=dict(num_blocks=(2, 2)), 8 | stage3=dict(num_modules=3, num_blocks=(2, 2, 2)), 9 | stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2))))) 10 | -------------------------------------------------------------------------------- /configs/ocrnet/ocrnet_hr18s_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './ocrnet_hr18_512x1024_80k_cityscapes.py' 2 | model = dict( 3 | pretrained='open-mmlab://msra/hrnetv2_w18_small', 4 | backbone=dict( 5 | extra=dict( 6 | stage1=dict(num_blocks=(2, )), 7 | stage2=dict(num_blocks=(2, 2)), 8 | stage3=dict(num_modules=3, num_blocks=(2, 2, 2)), 9 | stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2))))) 10 | -------------------------------------------------------------------------------- /configs/ocrnet/ocrnet_hr18s_512x512_160k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = './ocrnet_hr18_512x512_160k_ade20k.py' 2 | model = dict( 3 | pretrained='open-mmlab://msra/hrnetv2_w18_small', 4 | backbone=dict( 5 | extra=dict( 6 | stage1=dict(num_blocks=(2, )), 7 | stage2=dict(num_blocks=(2, 2)), 8 | stage3=dict(num_modules=3, num_blocks=(2, 2, 2)), 9 | stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2))))) 10 | -------------------------------------------------------------------------------- /configs/ocrnet/ocrnet_hr18s_512x512_20k_voc12aug.py: -------------------------------------------------------------------------------- 1 | _base_ = './ocrnet_hr18_512x512_20k_voc12aug.py' 2 | model = dict( 3 | pretrained='open-mmlab://msra/hrnetv2_w18_small', 4 | backbone=dict( 5 | extra=dict( 6 | stage1=dict(num_blocks=(2, )), 7 | stage2=dict(num_blocks=(2, 2)), 8 | stage3=dict(num_modules=3, num_blocks=(2, 2, 2)), 9 | stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2))))) 10 | -------------------------------------------------------------------------------- /configs/ocrnet/ocrnet_hr18s_512x512_40k_voc12aug.py: -------------------------------------------------------------------------------- 1 | _base_ = './ocrnet_hr18_512x512_40k_voc12aug.py' 2 | model = dict( 3 | pretrained='open-mmlab://msra/hrnetv2_w18_small', 4 | backbone=dict( 5 | extra=dict( 6 | stage1=dict(num_blocks=(2, )), 7 | stage2=dict(num_blocks=(2, 2)), 8 | stage3=dict(num_modules=3, num_blocks=(2, 2, 2)), 9 | stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2))))) 10 | -------------------------------------------------------------------------------- /configs/ocrnet/ocrnet_hr18s_512x512_80k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = './ocrnet_hr18_512x512_80k_ade20k.py' 2 | model = dict( 3 | pretrained='open-mmlab://msra/hrnetv2_w18_small', 4 | backbone=dict( 5 | extra=dict( 6 | stage1=dict(num_blocks=(2, )), 7 | stage2=dict(num_blocks=(2, 2)), 8 | stage3=dict(num_modules=3, num_blocks=(2, 2, 2)), 9 | stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2))))) 10 | -------------------------------------------------------------------------------- /configs/ocrnet/ocrnet_r101-d8_512x1024_40k_b16_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/ocrnet_r50-d8.py', '../_base_/datasets/cityscapes.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' 4 | ] 5 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 6 | optimizer = dict(lr=0.02) 7 | lr_config = dict(min_lr=2e-4) 8 | -------------------------------------------------------------------------------- /configs/ocrnet/ocrnet_r101-d8_512x1024_40k_b8_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/ocrnet_r50-d8.py', '../_base_/datasets/cityscapes.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' 4 | ] 5 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 6 | -------------------------------------------------------------------------------- /configs/ocrnet/ocrnet_r101-d8_512x1024_80k_b16_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/ocrnet_r50-d8.py', '../_base_/datasets/cityscapes.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' 4 | ] 5 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 6 | optimizer = dict(lr=0.02) 7 | lr_config = dict(min_lr=2e-4) 8 | -------------------------------------------------------------------------------- /configs/point_rend/pointrend_r101_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './pointrend_r50_512x1024_80k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/point_rend/pointrend_r101_512x512_160k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = './pointrend_r50_512x512_160k_ade20k.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/point_rend/pointrend_r50_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/pointrend_r50.py', '../_base_/datasets/cityscapes.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' 4 | ] 5 | lr_config = dict(warmup='linear', warmup_iters=200) 6 | -------------------------------------------------------------------------------- /configs/point_rend/pointrend_r50_512x512_160k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/pointrend_r50.py', '../_base_/datasets/ade20k.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py' 4 | ] 5 | norm_cfg = dict(type='SyncBN', requires_grad=True) 6 | model = dict(decode_head=[ 7 | dict( 8 | type='FPNHead', 9 | in_channels=[256, 256, 256, 256], 10 | in_index=[0, 1, 2, 3], 11 | feature_strides=[4, 8, 16, 32], 12 | channels=128, 13 | dropout_ratio=-1, 14 | num_classes=150, 15 | norm_cfg=norm_cfg, 16 | align_corners=False, 17 | loss_decode=dict( 18 | type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)), 19 | dict( 20 | type='PointHead', 21 | in_channels=[256], 22 | in_index=[0], 23 | channels=256, 24 | num_fcs=3, 25 | coarse_pred_each_layer=True, 26 | dropout_ratio=-1, 27 | num_classes=150, 28 | align_corners=False, 29 | loss_decode=dict( 30 | type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)) 31 | ]) 32 | lr_config = dict(warmup='linear', warmup_iters=200) 33 | -------------------------------------------------------------------------------- /configs/psanet/psanet_r101-d8_512x1024_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './psanet_r50-d8_512x1024_40k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/psanet/psanet_r101-d8_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './psanet_r50-d8_512x1024_80k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/psanet/psanet_r101-d8_512x512_160k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = './psanet_r50-d8_512x512_160k_ade20k.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/psanet/psanet_r101-d8_512x512_20k_voc12aug.py: -------------------------------------------------------------------------------- 1 | _base_ = './psanet_r50-d8_512x512_20k_voc12aug.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/psanet/psanet_r101-d8_512x512_40k_voc12aug.py: -------------------------------------------------------------------------------- 1 | _base_ = './psanet_r50-d8_512x512_40k_voc12aug.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/psanet/psanet_r101-d8_512x512_80k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = './psanet_r50-d8_512x512_80k_ade20k.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/psanet/psanet_r101-d8_769x769_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './psanet_r50-d8_769x769_40k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/psanet/psanet_r101-d8_769x769_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './psanet_r50-d8_769x769_80k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/psanet/psanet_r50-d8_512x1024_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/psanet_r50-d8.py', '../_base_/datasets/cityscapes.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' 4 | ] 5 | -------------------------------------------------------------------------------- /configs/psanet/psanet_r50-d8_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/psanet_r50-d8.py', '../_base_/datasets/cityscapes.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' 4 | ] 5 | -------------------------------------------------------------------------------- /configs/psanet/psanet_r50-d8_512x512_160k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/psanet_r50-d8.py', '../_base_/datasets/ade20k.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py' 4 | ] 5 | model = dict( 6 | decode_head=dict(mask_size=(66, 66), num_classes=150), 7 | auxiliary_head=dict(num_classes=150)) 8 | -------------------------------------------------------------------------------- /configs/psanet/psanet_r50-d8_512x512_20k_voc12aug.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/psanet_r50-d8.py', 3 | '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_20k.py' 5 | ] 6 | model = dict( 7 | decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21)) 8 | -------------------------------------------------------------------------------- /configs/psanet/psanet_r50-d8_512x512_40k_voc12aug.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/psanet_r50-d8.py', 3 | '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_40k.py' 5 | ] 6 | model = dict( 7 | decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21)) 8 | -------------------------------------------------------------------------------- /configs/psanet/psanet_r50-d8_512x512_80k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/psanet_r50-d8.py', '../_base_/datasets/ade20k.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' 4 | ] 5 | model = dict( 6 | decode_head=dict(mask_size=(66, 66), num_classes=150), 7 | auxiliary_head=dict(num_classes=150)) 8 | -------------------------------------------------------------------------------- /configs/psanet/psanet_r50-d8_769x769_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/psanet_r50-d8.py', 3 | '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_40k.py' 5 | ] 6 | model = dict( 7 | decode_head=dict(align_corners=True), 8 | auxiliary_head=dict(align_corners=True), 9 | test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) 10 | -------------------------------------------------------------------------------- /configs/psanet/psanet_r50-d8_769x769_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/psanet_r50-d8.py', 3 | '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_80k.py' 5 | ] 6 | model = dict( 7 | decode_head=dict(align_corners=True), 8 | auxiliary_head=dict(align_corners=True), 9 | test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) 10 | -------------------------------------------------------------------------------- /configs/pspnet/pspnet_r101-d8_480x480_40k_pascal_context.py: -------------------------------------------------------------------------------- 1 | _base_ = './pspnet_r50-d8_480x480_40k_pascal_context.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/pspnet/pspnet_r101-d8_480x480_80k_pascal_context.py: -------------------------------------------------------------------------------- 1 | _base_ = './pspnet_r50-d8_480x480_80k_pascal_context.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/pspnet/pspnet_r101-d8_512x1024_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './pspnet_r50-d8_512x1024_40k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/pspnet/pspnet_r101-d8_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './pspnet_r50-d8_512x1024_80k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/pspnet/pspnet_r101-d8_512x512_160k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = './pspnet_r50-d8_512x512_160k_ade20k.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/pspnet/pspnet_r101-d8_512x512_20k_voc12aug.py: -------------------------------------------------------------------------------- 1 | _base_ = './pspnet_r50-d8_512x512_20k_voc12aug.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/pspnet/pspnet_r101-d8_512x512_40k_voc12aug.py: -------------------------------------------------------------------------------- 1 | _base_ = './pspnet_r50-d8_512x512_40k_voc12aug.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/pspnet/pspnet_r101-d8_512x512_80k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = './pspnet_r50-d8_512x512_80k_ade20k.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/pspnet/pspnet_r101-d8_769x769_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './pspnet_r50-d8_769x769_40k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/pspnet/pspnet_r101-d8_769x769_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './pspnet_r50-d8_769x769_80k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/pspnet/pspnet_r101b-d8_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './pspnet_r50-d8_512x1024_80k_cityscapes.py' 2 | model = dict( 3 | pretrained='torchvision://resnet101', 4 | backbone=dict(type='ResNet', depth=101)) 5 | -------------------------------------------------------------------------------- /configs/pspnet/pspnet_r101b-d8_769x769_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './pspnet_r50-d8_769x769_80k_cityscapes.py' 2 | model = dict( 3 | pretrained='torchvision://resnet101', 4 | backbone=dict(type='ResNet', depth=101)) 5 | -------------------------------------------------------------------------------- /configs/pspnet/pspnet_r18-d8_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './pspnet_r50-d8_512x1024_80k_cityscapes.py' 2 | model = dict( 3 | pretrained='open-mmlab://resnet18_v1c', 4 | backbone=dict(depth=18), 5 | decode_head=dict( 6 | in_channels=512, 7 | channels=128, 8 | ), 9 | auxiliary_head=dict(in_channels=256, channels=64)) 10 | -------------------------------------------------------------------------------- /configs/pspnet/pspnet_r18-d8_512x512_2x4_40k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = './pspnet_r18-d8_512x512_80k_ade20k.py' 2 | 3 | 4 | # optimizer 5 | optimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005) 6 | optimizer_config = dict() 7 | # learning policy 8 | lr_config = dict(policy='poly', power=0.9, min_lr=1e-4, by_epoch=False) 9 | # runtime settings 10 | runner = dict(type='IterBasedRunner', max_iters=40000) 11 | checkpoint_config = dict(by_epoch=False, interval=4000) 12 | evaluation = dict(interval=4000, metric='mIoU') 13 | 14 | 15 | data = dict( 16 | samples_per_gpu=2, 17 | workers_per_gpu=2,) -------------------------------------------------------------------------------- /configs/pspnet/pspnet_r18-d8_512x512_80k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = './pspnet_r50-d8_512x512_80k_ade20k.py' 2 | model = dict( 3 | pretrained='open-mmlab://resnet18_v1c', 4 | backbone=dict(depth=18), 5 | decode_head=dict( 6 | in_channels=512, 7 | channels=128, 8 | ), 9 | auxiliary_head=dict(in_channels=256, channels=64)) 10 | -------------------------------------------------------------------------------- /configs/pspnet/pspnet_r18-d8_512x512_8x1_40k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = './pspnet_r18-d8_512x512_80k_ade20k.py' 2 | 3 | 4 | # optimizer 5 | optimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005) 6 | optimizer_config = dict() 7 | # learning policy 8 | lr_config = dict(policy='poly', power=0.9, min_lr=1e-4, by_epoch=False) 9 | # runtime settings 10 | runner = dict(type='IterBasedRunner', max_iters=40000) 11 | checkpoint_config = dict(by_epoch=False, interval=4000) 12 | evaluation = dict(interval=4000, metric='mIoU') 13 | 14 | 15 | data = dict( 16 | samples_per_gpu=8, 17 | workers_per_gpu=8,) -------------------------------------------------------------------------------- /configs/pspnet/pspnet_r18-d8_769x769_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './pspnet_r50-d8_769x769_80k_cityscapes.py' 2 | model = dict( 3 | pretrained='open-mmlab://resnet18_v1c', 4 | backbone=dict(depth=18), 5 | decode_head=dict( 6 | in_channels=512, 7 | channels=128, 8 | ), 9 | auxiliary_head=dict(in_channels=256, channels=64)) 10 | -------------------------------------------------------------------------------- /configs/pspnet/pspnet_r18b-d8_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './pspnet_r50-d8_512x1024_80k_cityscapes.py' 2 | model = dict( 3 | pretrained='torchvision://resnet18', 4 | backbone=dict(type='ResNet', depth=18), 5 | decode_head=dict( 6 | in_channels=512, 7 | channels=128, 8 | ), 9 | auxiliary_head=dict(in_channels=256, channels=64)) 10 | -------------------------------------------------------------------------------- /configs/pspnet/pspnet_r18b-d8_769x769_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './pspnet_r50-d8_769x769_80k_cityscapes.py' 2 | model = dict( 3 | pretrained='torchvision://resnet18', 4 | backbone=dict(type='ResNet', depth=18), 5 | decode_head=dict( 6 | in_channels=512, 7 | channels=128, 8 | ), 9 | auxiliary_head=dict(in_channels=256, channels=64)) 10 | -------------------------------------------------------------------------------- /configs/pspnet/pspnet_r50-d8_480x480_40k_pascal_context.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/pspnet_r50-d8.py', 3 | '../_base_/datasets/pascal_context.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_40k.py' 5 | ] 6 | model = dict( 7 | decode_head=dict(num_classes=60), auxiliary_head=dict(num_classes=60)) 8 | test_cfg = dict(mode='slide', crop_size=(480, 480), stride=(320, 320)) 9 | optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001) 10 | -------------------------------------------------------------------------------- /configs/pspnet/pspnet_r50-d8_480x480_80k_pascal_context.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/pspnet_r50-d8.py', 3 | '../_base_/datasets/pascal_context.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_80k.py' 5 | ] 6 | model = dict( 7 | decode_head=dict(num_classes=60), auxiliary_head=dict(num_classes=60)) 8 | test_cfg = dict(mode='slide', crop_size=(480, 480), stride=(320, 320)) 9 | optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001) 10 | -------------------------------------------------------------------------------- /configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/pspnet_r50-d8.py', '../_base_/datasets/cityscapes.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' 4 | ] 5 | -------------------------------------------------------------------------------- /configs/pspnet/pspnet_r50-d8_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/pspnet_r50-d8.py', '../_base_/datasets/cityscapes.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' 4 | ] 5 | -------------------------------------------------------------------------------- /configs/pspnet/pspnet_r50-d8_512x512_160k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/pspnet_r50-d8.py', '../_base_/datasets/ade20k.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py' 4 | ] 5 | model = dict( 6 | decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) 7 | -------------------------------------------------------------------------------- /configs/pspnet/pspnet_r50-d8_512x512_20k_voc12aug.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/pspnet_r50-d8.py', 3 | '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_20k.py' 5 | ] 6 | model = dict( 7 | decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21)) 8 | -------------------------------------------------------------------------------- /configs/pspnet/pspnet_r50-d8_512x512_40k_voc12aug.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/pspnet_r50-d8.py', 3 | '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_40k.py' 5 | ] 6 | model = dict( 7 | decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21)) 8 | -------------------------------------------------------------------------------- /configs/pspnet/pspnet_r50-d8_512x512_80k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/pspnet_r50-d8.py', '../_base_/datasets/ade20k.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' 4 | ] 5 | model = dict( 6 | decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) 7 | -------------------------------------------------------------------------------- /configs/pspnet/pspnet_r50-d8_769x769_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/pspnet_r50-d8.py', 3 | '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_40k.py' 5 | ] 6 | model = dict( 7 | decode_head=dict(align_corners=True), 8 | auxiliary_head=dict(align_corners=True), 9 | test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) 10 | -------------------------------------------------------------------------------- /configs/pspnet/pspnet_r50-d8_769x769_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/pspnet_r50-d8.py', 3 | '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_80k.py' 5 | ] 6 | model = dict( 7 | decode_head=dict(align_corners=True), 8 | auxiliary_head=dict(align_corners=True), 9 | test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) 10 | -------------------------------------------------------------------------------- /configs/pspnet/pspnet_r50b-d8_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './pspnet_r50-d8_512x1024_80k_cityscapes.py' 2 | model = dict(pretrained='torchvision://resnet50', backbone=dict(type='ResNet')) 3 | -------------------------------------------------------------------------------- /configs/pspnet/pspnet_r50b-d8_769x769_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './pspnet_r50-d8_769x769_80k_cityscapes.py' 2 | model = dict(pretrained='torchvision://resnet50', backbone=dict(type='ResNet')) 3 | -------------------------------------------------------------------------------- /configs/resnest/deeplabv3_s101-d8_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = '../deeplabv3/deeplabv3_r101-d8_512x1024_80k_cityscapes.py' 2 | model = dict( 3 | pretrained='open-mmlab://resnest101', 4 | backbone=dict( 5 | type='ResNeSt', 6 | stem_channels=128, 7 | radix=2, 8 | reduction_factor=4, 9 | avg_down_stride=True)) 10 | -------------------------------------------------------------------------------- /configs/resnest/deeplabv3_s101-d8_512x512_160k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = '../deeplabv3/deeplabv3_r101-d8_512x512_160k_ade20k.py' 2 | model = dict( 3 | pretrained='open-mmlab://resnest101', 4 | backbone=dict( 5 | type='ResNeSt', 6 | stem_channels=128, 7 | radix=2, 8 | reduction_factor=4, 9 | avg_down_stride=True)) 10 | -------------------------------------------------------------------------------- /configs/resnest/deeplabv3plus_s101-d8_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = '../deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes.py' 2 | model = dict( 3 | pretrained='open-mmlab://resnest101', 4 | backbone=dict( 5 | type='ResNeSt', 6 | stem_channels=128, 7 | radix=2, 8 | reduction_factor=4, 9 | avg_down_stride=True)) 10 | -------------------------------------------------------------------------------- /configs/resnest/deeplabv3plus_s101-d8_512x512_160k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = '../deeplabv3plus/deeplabv3plus_r101-d8_512x512_160k_ade20k.py' 2 | model = dict( 3 | pretrained='open-mmlab://resnest101', 4 | backbone=dict( 5 | type='ResNeSt', 6 | stem_channels=128, 7 | radix=2, 8 | reduction_factor=4, 9 | avg_down_stride=True)) 10 | -------------------------------------------------------------------------------- /configs/resnest/fcn_s101-d8_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = '../fcn/fcn_r101-d8_512x1024_80k_cityscapes.py' 2 | model = dict( 3 | pretrained='open-mmlab://resnest101', 4 | backbone=dict( 5 | type='ResNeSt', 6 | stem_channels=128, 7 | radix=2, 8 | reduction_factor=4, 9 | avg_down_stride=True)) 10 | -------------------------------------------------------------------------------- /configs/resnest/fcn_s101-d8_512x512_160k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = '../fcn/fcn_r101-d8_512x512_160k_ade20k.py' 2 | model = dict( 3 | pretrained='open-mmlab://resnest101', 4 | backbone=dict( 5 | type='ResNeSt', 6 | stem_channels=128, 7 | radix=2, 8 | reduction_factor=4, 9 | avg_down_stride=True)) 10 | -------------------------------------------------------------------------------- /configs/resnest/pspnet_s101-d8_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = '../pspnet/pspnet_r101-d8_512x1024_80k_cityscapes.py' 2 | model = dict( 3 | pretrained='open-mmlab://resnest101', 4 | backbone=dict( 5 | type='ResNeSt', 6 | stem_channels=128, 7 | radix=2, 8 | reduction_factor=4, 9 | avg_down_stride=True)) 10 | -------------------------------------------------------------------------------- /configs/resnest/pspnet_s101-d8_512x512_160k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = '../pspnet/pspnet_r101-d8_512x512_160k_ade20k.py' 2 | model = dict( 3 | pretrained='open-mmlab://resnest101', 4 | backbone=dict( 5 | type='ResNeSt', 6 | stem_channels=128, 7 | radix=2, 8 | reduction_factor=4, 9 | avg_down_stride=True)) 10 | -------------------------------------------------------------------------------- /configs/sem_fpn/fpn_r101_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './fpn_r50_512x1024_80k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/sem_fpn/fpn_r101_512x512_160k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = './fpn_r50_512x512_160k_ade20k.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/sem_fpn/fpn_r50_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/fpn_r50.py', '../_base_/datasets/cityscapes.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' 4 | ] 5 | -------------------------------------------------------------------------------- /configs/sem_fpn/fpn_r50_512x512_160k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/fpn_r50.py', '../_base_/datasets/ade20k.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py' 4 | ] 5 | model = dict(decode_head=dict(num_classes=150)) 6 | -------------------------------------------------------------------------------- /configs/unet/deeplabv3_unet_s5-d16_128x128_40k_chase_db1.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/deeplabv3_unet_s5-d16.py', 3 | '../_base_/datasets/chase_db1.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_40k.py' 5 | ] 6 | model = dict(test_cfg=dict(crop_size=(128, 128), stride=(85, 85))) 7 | evaluation = dict(metric='mDice') 8 | -------------------------------------------------------------------------------- /configs/unet/deeplabv3_unet_s5-d16_128x128_40k_stare.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/deeplabv3_unet_s5-d16.py', '../_base_/datasets/stare.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' 4 | ] 5 | model = dict(test_cfg=dict(crop_size=(128, 128), stride=(85, 85))) 6 | evaluation = dict(metric='mDice') 7 | -------------------------------------------------------------------------------- /configs/unet/deeplabv3_unet_s5-d16_256x256_40k_hrf.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/deeplabv3_unet_s5-d16.py', '../_base_/datasets/hrf.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' 4 | ] 5 | model = dict(test_cfg=dict(crop_size=(256, 256), stride=(170, 170))) 6 | evaluation = dict(metric='mDice') 7 | -------------------------------------------------------------------------------- /configs/unet/deeplabv3_unet_s5-d16_64x64_40k_drive.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/deeplabv3_unet_s5-d16.py', '../_base_/datasets/drive.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' 4 | ] 5 | model = dict(test_cfg=dict(crop_size=(64, 64), stride=(42, 42))) 6 | evaluation = dict(metric='mDice') 7 | -------------------------------------------------------------------------------- /configs/unet/fcn_unet_s5-d16_128x128_40k_chase_db1.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/fcn_unet_s5-d16.py', '../_base_/datasets/chase_db1.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' 4 | ] 5 | model = dict(test_cfg=dict(crop_size=(128, 128), stride=(85, 85))) 6 | evaluation = dict(metric='mDice') 7 | -------------------------------------------------------------------------------- /configs/unet/fcn_unet_s5-d16_128x128_40k_stare.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/fcn_unet_s5-d16.py', '../_base_/datasets/stare.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' 4 | ] 5 | model = dict(test_cfg=dict(crop_size=(128, 128), stride=(85, 85))) 6 | evaluation = dict(metric='mDice') 7 | -------------------------------------------------------------------------------- /configs/unet/fcn_unet_s5-d16_256x256_40k_hrf.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/fcn_unet_s5-d16.py', '../_base_/datasets/hrf.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' 4 | ] 5 | model = dict(test_cfg=dict(crop_size=(256, 256), stride=(170, 170))) 6 | evaluation = dict(metric='mDice') 7 | -------------------------------------------------------------------------------- /configs/unet/fcn_unet_s5-d16_64x64_40k_drive.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/fcn_unet_s5-d16.py', '../_base_/datasets/drive.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' 4 | ] 5 | model = dict(test_cfg=dict(crop_size=(64, 64), stride=(42, 42))) 6 | evaluation = dict(metric='mDice') 7 | -------------------------------------------------------------------------------- /configs/unet/pspnet_unet_s5-d16_128x128_40k_chase_db1.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/pspnet_unet_s5-d16.py', 3 | '../_base_/datasets/chase_db1.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_40k.py' 5 | ] 6 | model = dict(test_cfg=dict(crop_size=(128, 128), stride=(85, 85))) 7 | evaluation = dict(metric='mDice') 8 | -------------------------------------------------------------------------------- /configs/unet/pspnet_unet_s5-d16_128x128_40k_stare.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/pspnet_unet_s5-d16.py', '../_base_/datasets/stare.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' 4 | ] 5 | model = dict(test_cfg=dict(crop_size=(128, 128), stride=(85, 85))) 6 | evaluation = dict(metric='mDice') 7 | -------------------------------------------------------------------------------- /configs/unet/pspnet_unet_s5-d16_256x256_40k_hrf.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/pspnet_unet_s5-d16.py', '../_base_/datasets/hrf.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' 4 | ] 5 | model = dict(test_cfg=dict(crop_size=(256, 256), stride=(170, 170))) 6 | evaluation = dict(metric='mDice') 7 | -------------------------------------------------------------------------------- /configs/unet/pspnet_unet_s5-d16_64x64_40k_drive.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/pspnet_unet_s5-d16.py', '../_base_/datasets/drive.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' 4 | ] 5 | model = dict(test_cfg=dict(crop_size=(64, 64), stride=(42, 42))) 6 | evaluation = dict(metric='mDice') 7 | -------------------------------------------------------------------------------- /configs/upernet/upernet_r101_512x1024_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './upernet_r50_512x1024_40k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/upernet/upernet_r101_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './upernet_r50_512x1024_80k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/upernet/upernet_r101_512x512_160k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = './upernet_r50_512x512_160k_ade20k.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/upernet/upernet_r101_512x512_20k_voc12aug.py: -------------------------------------------------------------------------------- 1 | _base_ = './upernet_r50_512x512_20k_voc12aug.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/upernet/upernet_r101_512x512_40k_voc12aug.py: -------------------------------------------------------------------------------- 1 | _base_ = './upernet_r50_512x512_40k_voc12aug.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/upernet/upernet_r101_512x512_80k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = './upernet_r50_512x512_80k_ade20k.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/upernet/upernet_r101_769x769_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './upernet_r50_769x769_40k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/upernet/upernet_r101_769x769_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = './upernet_r50_769x769_80k_cityscapes.py' 2 | model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/upernet/upernet_r50_512x1024_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/upernet_r50.py', '../_base_/datasets/cityscapes.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' 4 | ] 5 | -------------------------------------------------------------------------------- /configs/upernet/upernet_r50_512x1024_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/upernet_r50.py', '../_base_/datasets/cityscapes.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' 4 | ] 5 | -------------------------------------------------------------------------------- /configs/upernet/upernet_r50_512x512_160k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/upernet_r50.py', '../_base_/datasets/ade20k.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py' 4 | ] 5 | model = dict( 6 | decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) 7 | -------------------------------------------------------------------------------- /configs/upernet/upernet_r50_512x512_20k_voc12aug.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/upernet_r50.py', 3 | '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_20k.py' 5 | ] 6 | model = dict( 7 | decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21)) 8 | -------------------------------------------------------------------------------- /configs/upernet/upernet_r50_512x512_40k_voc12aug.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/upernet_r50.py', 3 | '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_40k.py' 5 | ] 6 | model = dict( 7 | decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21)) 8 | -------------------------------------------------------------------------------- /configs/upernet/upernet_r50_512x512_80k_ade20k.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/upernet_r50.py', '../_base_/datasets/ade20k.py', 3 | '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' 4 | ] 5 | model = dict( 6 | decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) 7 | -------------------------------------------------------------------------------- /configs/upernet/upernet_r50_769x769_40k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/upernet_r50.py', 3 | '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_40k.py' 5 | ] 6 | model = dict( 7 | decode_head=dict(align_corners=True), 8 | auxiliary_head=dict(align_corners=True), 9 | test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) 10 | -------------------------------------------------------------------------------- /configs/upernet/upernet_r50_769x769_80k_cityscapes.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/upernet_r50.py', 3 | '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py', 4 | '../_base_/schedules/schedule_80k.py' 5 | ] 6 | model = dict( 7 | decode_head=dict(align_corners=True), 8 | auxiliary_head=dict(align_corners=True), 9 | test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) 10 | -------------------------------------------------------------------------------- /demo/demo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pppppM/mmsegmentation-distiller/8a9d54e002fae32122aae5efaf47ee2bbc425ff8/demo/demo.png -------------------------------------------------------------------------------- /demo/image_demo.py: -------------------------------------------------------------------------------- 1 | from argparse import ArgumentParser 2 | 3 | from mmseg.apis import inference_segmentor, init_segmentor, show_result_pyplot 4 | from mmseg.core.evaluation import get_palette 5 | 6 | 7 | def main(): 8 | parser = ArgumentParser() 9 | parser.add_argument('img', help='Image file') 10 | parser.add_argument('config', help='Config file') 11 | parser.add_argument('checkpoint', help='Checkpoint file') 12 | parser.add_argument( 13 | '--device', default='cuda:0', help='Device used for inference') 14 | parser.add_argument( 15 | '--palette', 16 | default='cityscapes', 17 | help='Color palette used for segmentation map') 18 | args = parser.parse_args() 19 | 20 | # build the model from a config file and a checkpoint file 21 | model = init_segmentor(args.config, args.checkpoint, device=args.device) 22 | # test a single image 23 | result = inference_segmentor(model, args.img) 24 | # show the results 25 | show_result_pyplot(model, args.img, result, get_palette(args.palette)) 26 | 27 | 28 | if __name__ == '__main__': 29 | main() 30 | -------------------------------------------------------------------------------- /docker/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PYTORCH="1.6.0" 2 | ARG CUDA="10.1" 3 | ARG CUDNN="7" 4 | 5 | FROM pytorch/pytorch:${PYTORCH}-cuda${CUDA}-cudnn${CUDNN}-devel 6 | 7 | ENV TORCH_CUDA_ARCH_LIST="6.0 6.1 7.0+PTX" 8 | ENV TORCH_NVCC_FLAGS="-Xfatbin -compress-all" 9 | ENV CMAKE_PREFIX_PATH="$(dirname $(which conda))/../" 10 | 11 | RUN apt-get update && apt-get install -y git ninja-build libglib2.0-0 libsm6 libxrender-dev libxext6 \ 12 | && apt-get clean \ 13 | && rm -rf /var/lib/apt/lists/* 14 | 15 | # Install mmsegmentation 16 | RUN conda clean --all 17 | 18 | RUN pip install mmcv-full==latest+torch1.6.0+cu101 -f https://download.openmmlab.com/mmcv/dist/index.html 19 | RUN git clone https://github.com/open-mmlab/mmsegmenation.git /mmsegmentation 20 | WORKDIR /mmsegmentation 21 | RUN pip install -r requirements/build.txt 22 | RUN pip install --no-cache-dir -e . 23 | -------------------------------------------------------------------------------- /docs/Makefile: -------------------------------------------------------------------------------- 1 | # Minimal makefile for Sphinx documentation 2 | # 3 | 4 | # You can set these variables from the command line, and also 5 | # from the environment for the first two. 6 | SPHINXOPTS ?= 7 | SPHINXBUILD ?= sphinx-build 8 | SOURCEDIR = . 9 | BUILDDIR = _build 10 | 11 | # Put it first so that "make" without argument is like "make help". 12 | help: 13 | @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 14 | 15 | .PHONY: help Makefile 16 | 17 | # Catch-all target: route all unknown targets to Sphinx using the new 18 | # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). 19 | %: Makefile 20 | @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 21 | -------------------------------------------------------------------------------- /docs/api.rst: -------------------------------------------------------------------------------- 1 | API Reference 2 | ============== 3 | 4 | mmseg.apis 5 | -------------- 6 | .. automodule:: mmseg.apis 7 | :members: 8 | 9 | mmseg.core 10 | -------------- 11 | 12 | seg 13 | ^^^^^^^^^^ 14 | .. automodule:: mmseg.core.seg 15 | :members: 16 | 17 | evaluation 18 | ^^^^^^^^^^ 19 | .. automodule:: mmseg.core.evaluation 20 | :members: 21 | 22 | utils 23 | ^^^^^^^^^^ 24 | .. automodule:: mmseg.core.utils 25 | :members: 26 | 27 | mmseg.datasets 28 | -------------- 29 | 30 | datasets 31 | ^^^^^^^^^^ 32 | .. automodule:: mmseg.datasets 33 | :members: 34 | 35 | pipelines 36 | ^^^^^^^^^^ 37 | .. automodule:: mmseg.datasets.pipelines 38 | :members: 39 | 40 | mmseg.models 41 | -------------- 42 | 43 | segmentors 44 | ^^^^^^^^^^ 45 | .. automodule:: mmseg.models.segmentors 46 | :members: 47 | 48 | backbones 49 | ^^^^^^^^^^ 50 | .. automodule:: mmseg.models.backbones 51 | :members: 52 | 53 | decode_heads 54 | ^^^^^^^^^^^^ 55 | .. automodule:: mmseg.models.decode_heads 56 | :members: 57 | 58 | losses 59 | ^^^^^^^^^^ 60 | .. automodule:: mmseg.models.losses 61 | :members: 62 | -------------------------------------------------------------------------------- /docs/index.rst: -------------------------------------------------------------------------------- 1 | Welcome to MMSegmenation's documentation! 2 | ======================================= 3 | 4 | .. toctree:: 5 | :maxdepth: 2 6 | :caption: Get Started 7 | 8 | get_started.md 9 | 10 | .. toctree:: 11 | :maxdepth: 1 12 | :caption: Dataset Preparation 13 | 14 | dataset_prepare.md 15 | 16 | .. toctree:: 17 | :maxdepth: 1 18 | :caption: Model Zoo 19 | 20 | model_zoo.md 21 | modelzoo_statistics.md 22 | 23 | .. toctree:: 24 | :maxdepth: 2 25 | :caption: Quick Run 26 | 27 | train.md 28 | inference.md 29 | 30 | .. toctree:: 31 | :maxdepth: 2 32 | :caption: Tutorials 33 | 34 | tutorials/index.rst 35 | 36 | .. toctree:: 37 | :maxdepth: 2 38 | :caption: Useful Tools and Scripts 39 | 40 | useful_tools.md 41 | 42 | .. toctree:: 43 | :maxdepth: 2 44 | :caption: Notes 45 | 46 | changelog.md 47 | 48 | .. toctree:: 49 | :caption: API Reference 50 | 51 | api.rst 52 | 53 | Indices and tables 54 | ================== 55 | 56 | * :ref:`genindex` 57 | * :ref:`search` 58 | -------------------------------------------------------------------------------- /docs/make.bat: -------------------------------------------------------------------------------- 1 | @ECHO OFF 2 | 3 | pushd %~dp0 4 | 5 | REM Command file for Sphinx documentation 6 | 7 | if "%SPHINXBUILD%" == "" ( 8 | set SPHINXBUILD=sphinx-build 9 | ) 10 | set SOURCEDIR=. 11 | set BUILDDIR=_build 12 | 13 | if "%1" == "" goto help 14 | 15 | %SPHINXBUILD% >NUL 2>NUL 16 | if errorlevel 9009 ( 17 | echo. 18 | echo.The 'sphinx-build' command was not found. Make sure you have Sphinx 19 | echo.installed, then set the SPHINXBUILD environment variable to point 20 | echo.to the full path of the 'sphinx-build' executable. Alternatively you 21 | echo.may add the Sphinx directory to PATH. 22 | echo. 23 | echo.If you don't have Sphinx installed, grab it from 24 | echo.http://sphinx-doc.org/ 25 | exit /b 1 26 | ) 27 | 28 | %SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% 29 | goto end 30 | 31 | :help 32 | %SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% 33 | 34 | :end 35 | popd 36 | -------------------------------------------------------------------------------- /docs/tutorials/index.rst: -------------------------------------------------------------------------------- 1 | .. toctree:: 2 | :maxdepth: 2 3 | 4 | config.md 5 | customize_datasets.md 6 | data_pipeline.md 7 | customize_models.md 8 | training_tricks.md 9 | customize_runtime.md 10 | -------------------------------------------------------------------------------- /mmseg/__init__.py: -------------------------------------------------------------------------------- 1 | import mmcv 2 | 3 | from .version import __version__, version_info 4 | 5 | MMCV_MIN = '1.1.4' 6 | MMCV_MAX = '1.3.0' 7 | 8 | 9 | def digit_version(version_str): 10 | digit_version = [] 11 | for x in version_str.split('.'): 12 | if x.isdigit(): 13 | digit_version.append(int(x)) 14 | elif x.find('rc') != -1: 15 | patch_version = x.split('rc') 16 | digit_version.append(int(patch_version[0]) - 1) 17 | digit_version.append(int(patch_version[1])) 18 | return digit_version 19 | 20 | 21 | mmcv_min_version = digit_version(MMCV_MIN) 22 | mmcv_max_version = digit_version(MMCV_MAX) 23 | mmcv_version = digit_version(mmcv.__version__) 24 | 25 | 26 | assert (mmcv_min_version <= mmcv_version <= mmcv_max_version), \ 27 | f'MMCV=={mmcv.__version__} is used but incompatible. ' \ 28 | f'Please install mmcv>={mmcv_min_version}, <={mmcv_max_version}.' 29 | 30 | __all__ = ['__version__', 'version_info'] 31 | -------------------------------------------------------------------------------- /mmseg/apis/__init__.py: -------------------------------------------------------------------------------- 1 | from .inference import inference_segmentor, init_segmentor, show_result_pyplot 2 | from .test import multi_gpu_test, single_gpu_test 3 | from .train import get_root_logger, set_random_seed, train_segmentor 4 | 5 | __all__ = [ 6 | 'get_root_logger', 'set_random_seed', 'train_segmentor', 'init_segmentor', 7 | 'inference_segmentor', 'multi_gpu_test', 'single_gpu_test', 8 | 'show_result_pyplot' 9 | ] 10 | -------------------------------------------------------------------------------- /mmseg/core/__init__.py: -------------------------------------------------------------------------------- 1 | from .evaluation import * # noqa: F401, F403 2 | from .seg import * # noqa: F401, F403 3 | from .utils import * # noqa: F401, F403 4 | -------------------------------------------------------------------------------- /mmseg/core/evaluation/__init__.py: -------------------------------------------------------------------------------- 1 | from .class_names import get_classes, get_palette 2 | from .eval_hooks import DistEvalHook, EvalHook 3 | from .metrics import eval_metrics, mean_dice, mean_iou 4 | 5 | __all__ = [ 6 | 'EvalHook', 'DistEvalHook', 'mean_dice', 'mean_iou', 'eval_metrics', 7 | 'get_classes', 'get_palette' 8 | ] 9 | -------------------------------------------------------------------------------- /mmseg/core/seg/__init__.py: -------------------------------------------------------------------------------- 1 | from .builder import build_pixel_sampler 2 | from .sampler import BasePixelSampler, OHEMPixelSampler 3 | 4 | __all__ = ['build_pixel_sampler', 'BasePixelSampler', 'OHEMPixelSampler'] 5 | -------------------------------------------------------------------------------- /mmseg/core/seg/builder.py: -------------------------------------------------------------------------------- 1 | from mmcv.utils import Registry, build_from_cfg 2 | 3 | PIXEL_SAMPLERS = Registry('pixel sampler') 4 | 5 | 6 | def build_pixel_sampler(cfg, **default_args): 7 | """Build pixel sampler for segmentation map.""" 8 | return build_from_cfg(cfg, PIXEL_SAMPLERS, default_args) 9 | -------------------------------------------------------------------------------- /mmseg/core/seg/sampler/__init__.py: -------------------------------------------------------------------------------- 1 | from .base_pixel_sampler import BasePixelSampler 2 | from .ohem_pixel_sampler import OHEMPixelSampler 3 | 4 | __all__ = ['BasePixelSampler', 'OHEMPixelSampler'] 5 | -------------------------------------------------------------------------------- /mmseg/core/seg/sampler/base_pixel_sampler.py: -------------------------------------------------------------------------------- 1 | from abc import ABCMeta, abstractmethod 2 | 3 | 4 | class BasePixelSampler(metaclass=ABCMeta): 5 | """Base class of pixel sampler.""" 6 | 7 | def __init__(self, **kwargs): 8 | pass 9 | 10 | @abstractmethod 11 | def sample(self, seg_logit, seg_label): 12 | """Placeholder for sample function.""" 13 | pass 14 | -------------------------------------------------------------------------------- /mmseg/core/utils/__init__.py: -------------------------------------------------------------------------------- 1 | from .misc import add_prefix 2 | 3 | __all__ = ['add_prefix'] 4 | -------------------------------------------------------------------------------- /mmseg/core/utils/misc.py: -------------------------------------------------------------------------------- 1 | def add_prefix(inputs, prefix): 2 | """Add prefix for dict. 3 | 4 | Args: 5 | inputs (dict): The input dict with str keys. 6 | prefix (str): The prefix to add. 7 | 8 | Returns: 9 | 10 | dict: The dict with keys updated with ``prefix``. 11 | """ 12 | 13 | outputs = dict() 14 | for name, value in inputs.items(): 15 | outputs[f'{prefix}.{name}'] = value 16 | 17 | return outputs 18 | -------------------------------------------------------------------------------- /mmseg/datasets/__init__.py: -------------------------------------------------------------------------------- 1 | from .ade import ADE20KDataset 2 | from .builder import DATASETS, PIPELINES, build_dataloader, build_dataset 3 | from .chase_db1 import ChaseDB1Dataset 4 | from .cityscapes import CityscapesDataset 5 | from .custom import CustomDataset 6 | from .dataset_wrappers import ConcatDataset, RepeatDataset 7 | from .drive import DRIVEDataset 8 | from .hrf import HRFDataset 9 | from .pascal_context import PascalContextDataset 10 | from .stare import STAREDataset 11 | from .voc import PascalVOCDataset 12 | 13 | __all__ = [ 14 | 'CustomDataset', 'build_dataloader', 'ConcatDataset', 'RepeatDataset', 15 | 'DATASETS', 'build_dataset', 'PIPELINES', 'CityscapesDataset', 16 | 'PascalVOCDataset', 'ADE20KDataset', 'PascalContextDataset', 17 | 'ChaseDB1Dataset', 'DRIVEDataset', 'HRFDataset', 'STAREDataset' 18 | ] 19 | -------------------------------------------------------------------------------- /mmseg/datasets/chase_db1.py: -------------------------------------------------------------------------------- 1 | import os.path as osp 2 | 3 | from .builder import DATASETS 4 | from .custom import CustomDataset 5 | 6 | 7 | @DATASETS.register_module() 8 | class ChaseDB1Dataset(CustomDataset): 9 | """Chase_db1 dataset. 10 | 11 | In segmentation map annotation for Chase_db1, 0 stands for background, 12 | which is included in 2 categories. ``reduce_zero_label`` is fixed to False. 13 | The ``img_suffix`` is fixed to '.png' and ``seg_map_suffix`` is fixed to 14 | '_1stHO.png'. 15 | """ 16 | 17 | CLASSES = ('background', 'vessel') 18 | 19 | PALETTE = [[120, 120, 120], [6, 230, 230]] 20 | 21 | def __init__(self, **kwargs): 22 | super(ChaseDB1Dataset, self).__init__( 23 | img_suffix='.png', 24 | seg_map_suffix='_1stHO.png', 25 | reduce_zero_label=False, 26 | **kwargs) 27 | assert osp.exists(self.img_dir) 28 | -------------------------------------------------------------------------------- /mmseg/datasets/drive.py: -------------------------------------------------------------------------------- 1 | import os.path as osp 2 | 3 | from .builder import DATASETS 4 | from .custom import CustomDataset 5 | 6 | 7 | @DATASETS.register_module() 8 | class DRIVEDataset(CustomDataset): 9 | """DRIVE dataset. 10 | 11 | In segmentation map annotation for DRIVE, 0 stands for background, which is 12 | included in 2 categories. ``reduce_zero_label`` is fixed to False. The 13 | ``img_suffix`` is fixed to '.png' and ``seg_map_suffix`` is fixed to 14 | '_manual1.png'. 15 | """ 16 | 17 | CLASSES = ('background', 'vessel') 18 | 19 | PALETTE = [[120, 120, 120], [6, 230, 230]] 20 | 21 | def __init__(self, **kwargs): 22 | super(DRIVEDataset, self).__init__( 23 | img_suffix='.png', 24 | seg_map_suffix='_manual1.png', 25 | reduce_zero_label=False, 26 | **kwargs) 27 | assert osp.exists(self.img_dir) 28 | -------------------------------------------------------------------------------- /mmseg/datasets/hrf.py: -------------------------------------------------------------------------------- 1 | import os.path as osp 2 | 3 | from .builder import DATASETS 4 | from .custom import CustomDataset 5 | 6 | 7 | @DATASETS.register_module() 8 | class HRFDataset(CustomDataset): 9 | """HRF dataset. 10 | 11 | In segmentation map annotation for HRF, 0 stands for background, which is 12 | included in 2 categories. ``reduce_zero_label`` is fixed to False. The 13 | ``img_suffix`` is fixed to '.png' and ``seg_map_suffix`` is fixed to 14 | '.png'. 15 | """ 16 | 17 | CLASSES = ('background', 'vessel') 18 | 19 | PALETTE = [[120, 120, 120], [6, 230, 230]] 20 | 21 | def __init__(self, **kwargs): 22 | super(HRFDataset, self).__init__( 23 | img_suffix='.png', 24 | seg_map_suffix='.png', 25 | reduce_zero_label=False, 26 | **kwargs) 27 | assert osp.exists(self.img_dir) 28 | -------------------------------------------------------------------------------- /mmseg/datasets/pipelines/__init__.py: -------------------------------------------------------------------------------- 1 | from .compose import Compose 2 | from .formating import (Collect, ImageToTensor, ToDataContainer, ToTensor, 3 | Transpose, to_tensor) 4 | from .loading import LoadAnnotations, LoadImageFromFile 5 | from .test_time_aug import MultiScaleFlipAug 6 | from .transforms import (CLAHE, AdjustGamma, Normalize, Pad, 7 | PhotoMetricDistortion, RandomCrop, RandomFlip, 8 | RandomRotate, Rerange, Resize, RGB2Gray, SegRescale) 9 | 10 | __all__ = [ 11 | 'Compose', 'to_tensor', 'ToTensor', 'ImageToTensor', 'ToDataContainer', 12 | 'Transpose', 'Collect', 'LoadAnnotations', 'LoadImageFromFile', 13 | 'MultiScaleFlipAug', 'Resize', 'RandomFlip', 'Pad', 'RandomCrop', 14 | 'Normalize', 'SegRescale', 'PhotoMetricDistortion', 'RandomRotate', 15 | 'AdjustGamma', 'CLAHE', 'Rerange', 'RGB2Gray' 16 | ] 17 | -------------------------------------------------------------------------------- /mmseg/datasets/stare.py: -------------------------------------------------------------------------------- 1 | import os.path as osp 2 | 3 | from .builder import DATASETS 4 | from .custom import CustomDataset 5 | 6 | 7 | @DATASETS.register_module() 8 | class STAREDataset(CustomDataset): 9 | """STARE dataset. 10 | 11 | In segmentation map annotation for STARE, 0 stands for background, which is 12 | included in 2 categories. ``reduce_zero_label`` is fixed to False. The 13 | ``img_suffix`` is fixed to '.png' and ``seg_map_suffix`` is fixed to 14 | '.ah.png'. 15 | """ 16 | 17 | CLASSES = ('background', 'vessel') 18 | 19 | PALETTE = [[120, 120, 120], [6, 230, 230]] 20 | 21 | def __init__(self, **kwargs): 22 | super(STAREDataset, self).__init__( 23 | img_suffix='.png', 24 | seg_map_suffix='.ah.png', 25 | reduce_zero_label=False, 26 | **kwargs) 27 | assert osp.exists(self.img_dir) 28 | -------------------------------------------------------------------------------- /mmseg/datasets/voc.py: -------------------------------------------------------------------------------- 1 | import os.path as osp 2 | 3 | from .builder import DATASETS 4 | from .custom import CustomDataset 5 | 6 | 7 | @DATASETS.register_module() 8 | class PascalVOCDataset(CustomDataset): 9 | """Pascal VOC dataset. 10 | 11 | Args: 12 | split (str): Split txt file for Pascal VOC. 13 | """ 14 | 15 | CLASSES = ('background', 'aeroplane', 'bicycle', 'bird', 'boat', 'bottle', 16 | 'bus', 'car', 'cat', 'chair', 'cow', 'diningtable', 'dog', 17 | 'horse', 'motorbike', 'person', 'pottedplant', 'sheep', 'sofa', 18 | 'train', 'tvmonitor') 19 | 20 | PALETTE = [[0, 0, 0], [128, 0, 0], [0, 128, 0], [128, 128, 0], [0, 0, 128], 21 | [128, 0, 128], [0, 128, 128], [128, 128, 128], [64, 0, 0], 22 | [192, 0, 0], [64, 128, 0], [192, 128, 0], [64, 0, 128], 23 | [192, 0, 128], [64, 128, 128], [192, 128, 128], [0, 64, 0], 24 | [128, 64, 0], [0, 192, 0], [128, 192, 0], [0, 64, 128]] 25 | 26 | def __init__(self, split, **kwargs): 27 | super(PascalVOCDataset, self).__init__( 28 | img_suffix='.jpg', seg_map_suffix='.png', split=split, **kwargs) 29 | assert osp.exists(self.img_dir) and self.split is not None 30 | -------------------------------------------------------------------------------- /mmseg/distillation/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | from .builder import ( DISTILLER,DISTILL_LOSSES,build_distill_loss,build_distiller) 3 | from .distillers import * 4 | from .losses import * 5 | 6 | 7 | __all__ = [ 8 | 'DISTILLER', 'DISTILL_LOSSES', 'build_distiller' 9 | ] 10 | 11 | 12 | -------------------------------------------------------------------------------- /mmseg/distillation/distillers/__init__.py: -------------------------------------------------------------------------------- 1 | from .segmentation_distiller import SegmentationDistiller 2 | 3 | __all__ = [ 4 | 'SegmentationDistiller' 5 | ] -------------------------------------------------------------------------------- /mmseg/distillation/losses/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | from .cwd import ChannelWiseDivergence 3 | from .utils import reduce_loss, weight_reduce_loss, weighted_loss 4 | __all__ = [ 5 | 'ChannelWiseDivergence','reduce_loss', 6 | 'weight_reduce_loss', 'weighted_loss', 7 | ] 8 | -------------------------------------------------------------------------------- /mmseg/distillation/optimizer/__init__.py: -------------------------------------------------------------------------------- 1 | from .discriminator_optim_hook import DiscriminatorOptimizerHook 2 | 3 | __all__ = [ 4 | 'DiscriminatorOptimizerHook' 5 | ] -------------------------------------------------------------------------------- /mmseg/models/__init__.py: -------------------------------------------------------------------------------- 1 | from .backbones import * # noqa: F401,F403 2 | from .builder import (BACKBONES, HEADS, LOSSES, SEGMENTORS, build_backbone, 3 | build_head, build_loss, build_segmentor) 4 | from .decode_heads import * # noqa: F401,F403 5 | from .losses import * # noqa: F401,F403 6 | from .necks import * # noqa: F401,F403 7 | from .segmentors import * # noqa: F401,F403 8 | 9 | __all__ = [ 10 | 'BACKBONES', 'HEADS', 'LOSSES', 'SEGMENTORS', 'build_backbone', 11 | 'build_head', 'build_loss', 'build_segmentor' 12 | ] 13 | -------------------------------------------------------------------------------- /mmseg/models/backbones/__init__.py: -------------------------------------------------------------------------------- 1 | from .cgnet import CGNet 2 | from .fast_scnn import FastSCNN 3 | from .hrnet import HRNet 4 | from .mobilenet_v2 import MobileNetV2 5 | from .mobilenet_v3 import MobileNetV3 6 | from .resnest import ResNeSt 7 | from .resnet import ResNet, ResNetV1c, ResNetV1d 8 | from .resnext import ResNeXt 9 | from .unet import UNet 10 | 11 | __all__ = [ 12 | 'ResNet', 'ResNetV1c', 'ResNetV1d', 'ResNeXt', 'HRNet', 'FastSCNN', 13 | 'ResNeSt', 'MobileNetV2', 'UNet', 'CGNet', 'MobileNetV3' 14 | ] 15 | -------------------------------------------------------------------------------- /mmseg/models/decode_heads/__init__.py: -------------------------------------------------------------------------------- 1 | from .ann_head import ANNHead 2 | from .apc_head import APCHead 3 | from .aspp_head import ASPPHead 4 | from .cc_head import CCHead 5 | from .da_head import DAHead 6 | from .dm_head import DMHead 7 | from .dnl_head import DNLHead 8 | from .ema_head import EMAHead 9 | from .enc_head import EncHead 10 | from .fcn_head import FCNHead 11 | from .fpn_head import FPNHead 12 | from .gc_head import GCHead 13 | from .lraspp_head import LRASPPHead 14 | from .nl_head import NLHead 15 | from .ocr_head import OCRHead 16 | from .point_head import PointHead 17 | from .psa_head import PSAHead 18 | from .psp_head import PSPHead 19 | from .sep_aspp_head import DepthwiseSeparableASPPHead 20 | from .sep_fcn_head import DepthwiseSeparableFCNHead 21 | from .uper_head import UPerHead 22 | 23 | __all__ = [ 24 | 'FCNHead', 'PSPHead', 'ASPPHead', 'PSAHead', 'NLHead', 'GCHead', 'CCHead', 25 | 'UPerHead', 'DepthwiseSeparableASPPHead', 'ANNHead', 'DAHead', 'OCRHead', 26 | 'EncHead', 'DepthwiseSeparableFCNHead', 'FPNHead', 'EMAHead', 'DNLHead', 27 | 'PointHead', 'APCHead', 'DMHead', 'LRASPPHead' 28 | ] 29 | -------------------------------------------------------------------------------- /mmseg/models/losses/__init__.py: -------------------------------------------------------------------------------- 1 | from .accuracy import Accuracy, accuracy 2 | from .cross_entropy_loss import (CrossEntropyLoss, binary_cross_entropy, 3 | cross_entropy, mask_cross_entropy) 4 | from .lovasz_loss import LovaszLoss 5 | from .utils import reduce_loss, weight_reduce_loss, weighted_loss 6 | 7 | __all__ = [ 8 | 'accuracy', 'Accuracy', 'cross_entropy', 'binary_cross_entropy', 9 | 'mask_cross_entropy', 'CrossEntropyLoss', 'reduce_loss', 10 | 'weight_reduce_loss', 'weighted_loss', 'LovaszLoss' 11 | ] 12 | -------------------------------------------------------------------------------- /mmseg/models/necks/__init__.py: -------------------------------------------------------------------------------- 1 | from .fpn import FPN 2 | 3 | __all__ = ['FPN'] 4 | -------------------------------------------------------------------------------- /mmseg/models/segmentors/__init__.py: -------------------------------------------------------------------------------- 1 | from .cascade_encoder_decoder import CascadeEncoderDecoder 2 | from .encoder_decoder import EncoderDecoder 3 | 4 | __all__ = ['EncoderDecoder', 'CascadeEncoderDecoder'] 5 | -------------------------------------------------------------------------------- /mmseg/models/utils/__init__.py: -------------------------------------------------------------------------------- 1 | from .inverted_residual import InvertedResidual, InvertedResidualV3 2 | from .make_divisible import make_divisible 3 | from .res_layer import ResLayer 4 | from .self_attention_block import SelfAttentionBlock 5 | from .up_conv_block import UpConvBlock 6 | 7 | __all__ = [ 8 | 'ResLayer', 'SelfAttentionBlock', 'make_divisible', 'InvertedResidual', 9 | 'UpConvBlock', 'InvertedResidualV3' 10 | ] 11 | -------------------------------------------------------------------------------- /mmseg/models/utils/make_divisible.py: -------------------------------------------------------------------------------- 1 | def make_divisible(value, divisor, min_value=None, min_ratio=0.9): 2 | """Make divisible function. 3 | 4 | This function rounds the channel number to the nearest value that can be 5 | divisible by the divisor. It is taken from the original tf repo. It ensures 6 | that all layers have a channel number that is divisible by divisor. It can 7 | be seen here: https://github.com/tensorflow/models/blob/master/research/slim/nets/mobilenet/mobilenet.py # noqa 8 | 9 | Args: 10 | value (int): The original channel number. 11 | divisor (int): The divisor to fully divide the channel number. 12 | min_value (int): The minimum value of the output channel. 13 | Default: None, means that the minimum value equal to the divisor. 14 | min_ratio (float): The minimum ratio of the rounded channel number to 15 | the original channel number. Default: 0.9. 16 | 17 | Returns: 18 | int: The modified output channel number. 19 | """ 20 | 21 | if min_value is None: 22 | min_value = divisor 23 | new_value = max(min_value, int(value + divisor / 2) // divisor * divisor) 24 | # Make sure that round down does not go down by more than (1-min_ratio). 25 | if new_value < min_ratio * value: 26 | new_value += divisor 27 | return new_value 28 | -------------------------------------------------------------------------------- /mmseg/ops/__init__.py: -------------------------------------------------------------------------------- 1 | from .encoding import Encoding 2 | from .wrappers import Upsample, resize 3 | 4 | __all__ = ['Upsample', 'resize', 'Encoding'] 5 | -------------------------------------------------------------------------------- /mmseg/utils/__init__.py: -------------------------------------------------------------------------------- 1 | from .collect_env import collect_env 2 | from .logger import get_root_logger 3 | 4 | __all__ = ['get_root_logger', 'collect_env'] 5 | -------------------------------------------------------------------------------- /mmseg/utils/collect_env.py: -------------------------------------------------------------------------------- 1 | from mmcv.utils import collect_env as collect_base_env 2 | from mmcv.utils import get_git_hash 3 | 4 | import mmseg 5 | 6 | 7 | def collect_env(): 8 | """Collect the information of the running environments.""" 9 | env_info = collect_base_env() 10 | env_info['MMSegmentation'] = f'{mmseg.__version__}+{get_git_hash()[:7]}' 11 | 12 | return env_info 13 | 14 | 15 | if __name__ == '__main__': 16 | for name, val in collect_env().items(): 17 | print('{}: {}'.format(name, val)) 18 | -------------------------------------------------------------------------------- /mmseg/utils/logger.py: -------------------------------------------------------------------------------- 1 | import logging 2 | 3 | from mmcv.utils import get_logger 4 | 5 | 6 | def get_root_logger(log_file=None, log_level=logging.INFO): 7 | """Get the root logger. 8 | 9 | The logger will be initialized if it has not been initialized. By default a 10 | StreamHandler will be added. If `log_file` is specified, a FileHandler will 11 | also be added. The name of the root logger is the top-level package name, 12 | e.g., "mmseg". 13 | 14 | Args: 15 | log_file (str | None): The log filename. If specified, a FileHandler 16 | will be added to the root logger. 17 | log_level (int): The root logger level. Note that only the process of 18 | rank 0 is affected, while other processes will set the level to 19 | "Error" and be silent most of the time. 20 | 21 | Returns: 22 | logging.Logger: The root logger. 23 | """ 24 | 25 | logger = get_logger(name='mmseg', log_file=log_file, log_level=log_level) 26 | 27 | return logger 28 | -------------------------------------------------------------------------------- /mmseg/version.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Open-MMLab. All rights reserved. 2 | 3 | __version__ = '0.11.0' 4 | 5 | 6 | def parse_version_info(version_str): 7 | version_info = [] 8 | for x in version_str.split('.'): 9 | if x.isdigit(): 10 | version_info.append(int(x)) 11 | elif x.find('rc') != -1: 12 | patch_version = x.split('rc') 13 | version_info.append(int(patch_version[0])) 14 | version_info.append(f'rc{patch_version[1]}') 15 | return tuple(version_info) 16 | 17 | 18 | version_info = parse_version_info(__version__) 19 | -------------------------------------------------------------------------------- /pytest.ini: -------------------------------------------------------------------------------- 1 | [pytest] 2 | addopts = --xdoctest --xdoctest-style=auto 3 | norecursedirs = .git ignore build __pycache__ data docker docs .eggs 4 | 5 | filterwarnings= default 6 | ignore:.*No cfgstr given in Cacher constructor or call.*:Warning 7 | ignore:.*Define the __nice__ method for.*:Warning 8 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | -r requirements/optional.txt 2 | -r requirements/runtime.txt 3 | -r requirements/tests.txt 4 | -------------------------------------------------------------------------------- /requirements/docs.txt: -------------------------------------------------------------------------------- 1 | recommonmark 2 | sphinx 3 | sphinx_markdown_tables 4 | sphinx_rtd_theme 5 | -------------------------------------------------------------------------------- /requirements/optional.txt: -------------------------------------------------------------------------------- 1 | cityscapesscripts 2 | -------------------------------------------------------------------------------- /requirements/readthedocs.txt: -------------------------------------------------------------------------------- 1 | mmcv 2 | torch 3 | torchvision 4 | -------------------------------------------------------------------------------- /requirements/runtime.txt: -------------------------------------------------------------------------------- 1 | matplotlib 2 | numpy 3 | terminaltables 4 | -------------------------------------------------------------------------------- /requirements/tests.txt: -------------------------------------------------------------------------------- 1 | codecov 2 | flake8 3 | interrogate 4 | isort==4.3.21 5 | pytest 6 | xdoctest>=0.10.0 7 | yapf 8 | -------------------------------------------------------------------------------- /resources/mmseg-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pppppM/mmsegmentation-distiller/8a9d54e002fae32122aae5efaf47ee2bbc425ff8/resources/mmseg-logo.png -------------------------------------------------------------------------------- /resources/seg_demo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pppppM/mmsegmentation-distiller/8a9d54e002fae32122aae5efaf47ee2bbc425ff8/resources/seg_demo.gif -------------------------------------------------------------------------------- /setup.cfg: -------------------------------------------------------------------------------- 1 | [yapf] 2 | based_on_style = pep8 3 | blank_line_before_nested_class_or_def = true 4 | split_before_expression_after_opening_paren = true 5 | 6 | [isort] 7 | line_length = 79 8 | multi_line_output = 0 9 | known_standard_library = setuptools 10 | known_first_party = mmseg 11 | known_third_party = PIL,cityscapesscripts,cv2,detail,matplotlib,mmcv,numpy,onnxruntime,oss2,pytest,scipy,terminaltables,torch 12 | no_lines_before = STDLIB,LOCALFOLDER 13 | default_section = THIRDPARTY 14 | -------------------------------------------------------------------------------- /tests/data/color.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pppppM/mmsegmentation-distiller/8a9d54e002fae32122aae5efaf47ee2bbc425ff8/tests/data/color.jpg -------------------------------------------------------------------------------- /tests/data/gray.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pppppM/mmsegmentation-distiller/8a9d54e002fae32122aae5efaf47ee2bbc425ff8/tests/data/gray.jpg -------------------------------------------------------------------------------- /tests/data/pseudo_dataset/gts/00000_gt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pppppM/mmsegmentation-distiller/8a9d54e002fae32122aae5efaf47ee2bbc425ff8/tests/data/pseudo_dataset/gts/00000_gt.png -------------------------------------------------------------------------------- /tests/data/pseudo_dataset/gts/00001_gt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pppppM/mmsegmentation-distiller/8a9d54e002fae32122aae5efaf47ee2bbc425ff8/tests/data/pseudo_dataset/gts/00001_gt.png -------------------------------------------------------------------------------- /tests/data/pseudo_dataset/gts/00002_gt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pppppM/mmsegmentation-distiller/8a9d54e002fae32122aae5efaf47ee2bbc425ff8/tests/data/pseudo_dataset/gts/00002_gt.png -------------------------------------------------------------------------------- /tests/data/pseudo_dataset/gts/00003_gt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pppppM/mmsegmentation-distiller/8a9d54e002fae32122aae5efaf47ee2bbc425ff8/tests/data/pseudo_dataset/gts/00003_gt.png -------------------------------------------------------------------------------- /tests/data/pseudo_dataset/gts/00004_gt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pppppM/mmsegmentation-distiller/8a9d54e002fae32122aae5efaf47ee2bbc425ff8/tests/data/pseudo_dataset/gts/00004_gt.png -------------------------------------------------------------------------------- /tests/data/pseudo_dataset/imgs/00000_img.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pppppM/mmsegmentation-distiller/8a9d54e002fae32122aae5efaf47ee2bbc425ff8/tests/data/pseudo_dataset/imgs/00000_img.jpg -------------------------------------------------------------------------------- /tests/data/pseudo_dataset/imgs/00001_img.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pppppM/mmsegmentation-distiller/8a9d54e002fae32122aae5efaf47ee2bbc425ff8/tests/data/pseudo_dataset/imgs/00001_img.jpg -------------------------------------------------------------------------------- /tests/data/pseudo_dataset/imgs/00002_img.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pppppM/mmsegmentation-distiller/8a9d54e002fae32122aae5efaf47ee2bbc425ff8/tests/data/pseudo_dataset/imgs/00002_img.jpg -------------------------------------------------------------------------------- /tests/data/pseudo_dataset/imgs/00003_img.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pppppM/mmsegmentation-distiller/8a9d54e002fae32122aae5efaf47ee2bbc425ff8/tests/data/pseudo_dataset/imgs/00003_img.jpg -------------------------------------------------------------------------------- /tests/data/pseudo_dataset/imgs/00004_img.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pppppM/mmsegmentation-distiller/8a9d54e002fae32122aae5efaf47ee2bbc425ff8/tests/data/pseudo_dataset/imgs/00004_img.jpg -------------------------------------------------------------------------------- /tests/data/pseudo_dataset/splits/train.txt: -------------------------------------------------------------------------------- 1 | 00000 2 | 00001 3 | 00002 4 | 00003 5 | -------------------------------------------------------------------------------- /tests/data/pseudo_dataset/splits/val.txt: -------------------------------------------------------------------------------- 1 | 00004 2 | -------------------------------------------------------------------------------- /tests/data/seg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pppppM/mmsegmentation-distiller/8a9d54e002fae32122aae5efaf47ee2bbc425ff8/tests/data/seg.png -------------------------------------------------------------------------------- /tests/test_inference.py: -------------------------------------------------------------------------------- 1 | import os.path as osp 2 | 3 | import mmcv 4 | 5 | from mmseg.apis import inference_segmentor, init_segmentor 6 | 7 | 8 | def test_test_time_augmentation_on_cpu(): 9 | config_file = 'configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py' 10 | config = mmcv.Config.fromfile(config_file) 11 | 12 | # Remove pretrain model download for testing 13 | config.model.pretrained = None 14 | # Replace SyncBN with BN to inference on CPU 15 | norm_cfg = dict(type='BN', requires_grad=True) 16 | config.model.backbone.norm_cfg = norm_cfg 17 | config.model.decode_head.norm_cfg = norm_cfg 18 | config.model.auxiliary_head.norm_cfg = norm_cfg 19 | 20 | # Enable test time augmentation 21 | config.data.test.pipeline[1].flip = True 22 | 23 | checkpoint_file = None 24 | model = init_segmentor(config, checkpoint_file, device='cpu') 25 | 26 | img = mmcv.imread( 27 | osp.join(osp.dirname(__file__), 'data/color.jpg'), 'color') 28 | result = inference_segmentor(model, img) 29 | assert result[0].shape == (288, 512) 30 | -------------------------------------------------------------------------------- /tests/test_models/test_necks.py: -------------------------------------------------------------------------------- 1 | import torch 2 | 3 | from mmseg.models import FPN 4 | 5 | 6 | def test_fpn(): 7 | in_channels = [256, 512, 1024, 2048] 8 | inputs = [ 9 | torch.randn(1, c, 56 // 2**i, 56 // 2**i) 10 | for i, c in enumerate(in_channels) 11 | ] 12 | 13 | fpn = FPN(in_channels, 256, len(in_channels)) 14 | outputs = fpn(inputs) 15 | assert outputs[0].shape == torch.Size([1, 256, 56, 56]) 16 | assert outputs[1].shape == torch.Size([1, 256, 28, 28]) 17 | assert outputs[2].shape == torch.Size([1, 256, 14, 14]) 18 | assert outputs[3].shape == torch.Size([1, 256, 7, 7]) 19 | -------------------------------------------------------------------------------- /tests/test_utils/test_make_divisible.py: -------------------------------------------------------------------------------- 1 | from mmseg.models.utils import make_divisible 2 | 3 | 4 | def test_make_divisible(): 5 | # test with min_value = None 6 | assert make_divisible(10, 4) == 12 7 | assert make_divisible(9, 4) == 12 8 | assert make_divisible(1, 4) == 4 9 | 10 | # test with min_value = 8 11 | assert make_divisible(10, 4, 8) == 12 12 | assert make_divisible(9, 4, 8) == 12 13 | assert make_divisible(1, 4, 8) == 8 14 | -------------------------------------------------------------------------------- /tools/dist_test.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | CONFIG=$1 4 | CHECKPOINT=$2 5 | GPUS=$3 6 | PORT=${PORT:-29500} 7 | PYTHONPATH="$(dirname $0)/..":$PYTHONPATH \ 8 | python -m torch.distributed.launch --nproc_per_node=$GPUS --master_port=$PORT \ 9 | $(dirname "$0")/test.py $CONFIG $CHECKPOINT --launcher pytorch ${@:4} 10 | -------------------------------------------------------------------------------- /tools/dist_train.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | CONFIG=$1 4 | GPUS=$2 5 | PORT=${PORT:-29500} 6 | 7 | PYTHONPATH="$(dirname $0)/..":$PYTHONPATH \ 8 | python -m torch.distributed.launch --nproc_per_node=$GPUS --master_port=$PORT \ 9 | $(dirname "$0")/train.py $CONFIG --launcher pytorch ${@:3} 10 | -------------------------------------------------------------------------------- /tools/print_config.py: -------------------------------------------------------------------------------- 1 | import argparse 2 | 3 | from mmcv import Config, DictAction 4 | 5 | 6 | def parse_args(): 7 | parser = argparse.ArgumentParser(description='Print the whole config') 8 | parser.add_argument('config', help='config file path') 9 | parser.add_argument( 10 | '--options', nargs='+', action=DictAction, help='arguments in dict') 11 | args = parser.parse_args() 12 | 13 | return args 14 | 15 | 16 | def main(): 17 | args = parse_args() 18 | 19 | cfg = Config.fromfile(args.config) 20 | if args.options is not None: 21 | cfg.merge_from_dict(args.options) 22 | print(f'Config:\n{cfg.pretty_text}') 23 | # dump config 24 | cfg.dump('example.py') 25 | 26 | 27 | if __name__ == '__main__': 28 | main() 29 | -------------------------------------------------------------------------------- /tools/publish_model.py: -------------------------------------------------------------------------------- 1 | import argparse 2 | import subprocess 3 | 4 | import torch 5 | 6 | 7 | def parse_args(): 8 | parser = argparse.ArgumentParser( 9 | description='Process a checkpoint to be published') 10 | parser.add_argument('in_file', help='input checkpoint filename') 11 | parser.add_argument('out_file', help='output checkpoint filename') 12 | args = parser.parse_args() 13 | return args 14 | 15 | 16 | def process_checkpoint(in_file, out_file): 17 | checkpoint = torch.load(in_file, map_location='cpu') 18 | # remove optimizer for smaller file size 19 | if 'optimizer' in checkpoint: 20 | del checkpoint['optimizer'] 21 | # if it is necessary to remove some sensitive data in checkpoint['meta'], 22 | # add the code here. 23 | torch.save(checkpoint, out_file) 24 | sha = subprocess.check_output(['sha256sum', out_file]).decode() 25 | final_file = out_file.rstrip('.pth') + '-{}.pth'.format(sha[:8]) 26 | subprocess.Popen(['mv', out_file, final_file]) 27 | 28 | 29 | def main(): 30 | args = parse_args() 31 | process_checkpoint(args.in_file, args.out_file) 32 | 33 | 34 | if __name__ == '__main__': 35 | main() 36 | -------------------------------------------------------------------------------- /tools/slurm_test.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -x 4 | 5 | PARTITION=$1 6 | JOB_NAME=$2 7 | CONFIG=$3 8 | CHECKPOINT=$4 9 | GPUS=${GPUS:-4} 10 | GPUS_PER_NODE=${GPUS_PER_NODE:-4} 11 | CPUS_PER_TASK=${CPUS_PER_TASK:-5} 12 | PY_ARGS=${@:5} 13 | SRUN_ARGS=${SRUN_ARGS:-""} 14 | 15 | PYTHONPATH="$(dirname $0)/..":$PYTHONPATH \ 16 | srun -p ${PARTITION} \ 17 | --job-name=${JOB_NAME} \ 18 | --gres=gpu:${GPUS_PER_NODE} \ 19 | --ntasks=${GPUS} \ 20 | --ntasks-per-node=${GPUS_PER_NODE} \ 21 | --cpus-per-task=${CPUS_PER_TASK} \ 22 | --kill-on-bad-exit=1 \ 23 | ${SRUN_ARGS} \ 24 | python -u tools/test.py ${CONFIG} ${CHECKPOINT} --launcher="slurm" ${PY_ARGS} 25 | -------------------------------------------------------------------------------- /tools/slurm_train.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -x 4 | 5 | PARTITION=$1 6 | JOB_NAME=$2 7 | CONFIG=$3 8 | GPUS=${GPUS:-4} 9 | GPUS_PER_NODE=${GPUS_PER_NODE:-4} 10 | CPUS_PER_TASK=${CPUS_PER_TASK:-5} 11 | SRUN_ARGS=${SRUN_ARGS:-""} 12 | PY_ARGS=${@:4} 13 | 14 | PYTHONPATH="$(dirname $0)/..":$PYTHONPATH \ 15 | srun -p ${PARTITION} \ 16 | --job-name=${JOB_NAME} \ 17 | --gres=gpu:${GPUS_PER_NODE} \ 18 | --ntasks=${GPUS} \ 19 | --ntasks-per-node=${GPUS_PER_NODE} \ 20 | --cpus-per-task=${CPUS_PER_TASK} \ 21 | --kill-on-bad-exit=1 \ 22 | ${SRUN_ARGS} \ 23 | python -u tools/train.py ${CONFIG} --launcher="slurm" ${PY_ARGS} 24 | --------------------------------------------------------------------------------