ExtractingBuildingByMMSeg

This repository is for Competition for ML_data class. Based on mmsegmentatoin,mainly using swin transformer to completed the competition.

Two ways of training are provided here, non-distributed and distributed training. If you want to use non-distributed training, you can directly check the code in test.py to train and predict.

If you want to use distributed training on a linux server, you can do the following:
First make dist_train.sh available under linux

chmod 777 ./mmsegmentation/tools/dist_train.sh
vi ./mmsegmentation/tools/dist_train.sh
set ff=unix

Next, you can use the following commands for distributed training. We provide two kinds of configuration files, biet and swin, so you can configure the configuration files yourself as needed, and to support both BEiT and ConvNeXt networks, we modify and add to the mmsegmentation source code to make sure it can be used directly.

nohup ./mmsegmentation/tools/dist_train.sh ./mine/myconfig_swin.py 4 > hehe.log 2>&1 &

You can also manually select the desired GPU

CUDA_VISIBLE_DEVICES=2,3 ./mmsegmentation/tools/dist_train.sh ./mine/myconfig_biet.py 2

For files, you can define your own file types and add them to /mmsegmentation/mmseg/datasets/ in the following way.

import os.path as osp

from .builder import DATASETS
from .custom import CustomDataset

classes = ('buildinding', 'background')
palette = [[0, 0, 0], [255, 255, 255]]
@DATASETS.register_module()
class myDataset(CustomDataset):
  CLASSES = classes
  PALETTE = palette

  def __init__(self, split, **kwargs):
      super().__init__(img_suffix='.tif', seg_map_suffix='.tif',
                       split=split, **kwargs)
      assert osp.exists(self.img_dir) and self.split is not None

After getting the pth prediction, you can use the predict.py to code the prediction and output the result.

GitHub

View Github