Skip to content

Latest commit

 

History

History

semantic_segmentation

ADE20k Semantic segmentation with HorNet

Please refer to README.md for installation and dataset preparation instructions.

Results and Fine-tuned Models

name Pretrained Model Method Crop Size Lr Schd mIoU mIoU (ms+flip) #params FLOPs Fine-tuned Model
HorNet-T (7x7) Tsinghua Cloud UPerNet 512x512 160K 48.1 48.9 52M 926G Tsinghua Cloud
HorNet-T (GF) Tsinghua Cloud UPerNet 512x512 160K 49.2 49.3 55M 924G Tsinghua Cloud
HorNet-S (7x7) Tsinghua Cloud UPerNet 512x512 160K 49.2 49.8 81M 1030G Tsinghua Cloud
HorNet-S (GF) Tsinghua Cloud UPerNet 512x512 160K 50.0 50.5 85M 1027G Tsinghua Cloud
HorNet-B (7x7) Tsinghua Cloud UPerNet 512x512 160K 50.0 50.5 121M 1174G Tsinghua Cloud
HorNet-B (GF) Tsinghua Cloud UPerNet 640x640 160K 50.5 50.9 126M 1171G Tsinghua Cloud
HorNet-L (7x7) Tsinghua Cloud UPerNet 640x640 160K 54.1 54.5 232M 2473G Tsinghua Cloud
HorNet-L (GF) Tsinghua Cloud UPerNet 640x640 160K 55.0 55.2 239M 2465G Tsinghua Cloud

Training

bash dist_train.sh <CONFIG_PATH> <NUM_GPUS> --work-dir <SAVE_PATH> --options model.pretrained=<PRETRAIN_MODEL>

For example, using a HorNet-T (GF) backbone with UperNet:

bash dist_train.sh \
    configs/hornet/upernet_hornet_tiny_gf_512_160k_ade20k.py 8 \
    --work-dir /path/to/save \
    --options model.pretrained=/path/to/pretrained/weight

More config files can be found at configs/hornet.

Evaluation

Command format for multi-scale testing:

bash dist_test.sh <CONFIG_PATH> <CHECKPOINT_PATH> <NUM_GPUS> --eval mIoU --aug-test

For example, evaluate a HorNet-T (GF) backbone with UperNet:

bash dist_test.sh configs/hornet/upernet_hornet_tiny_gf_512_160k_ade20k.py \ 
    /path/to/checkpoint 8 --eval mIoU --aug-test

Command format for single-scale testing:

bash dist_test.sh <CONFIG_PATH> <CHECKPOINT_PATH> <NUM_GPUS> --eval mIoU

For example, evaluate a HorNet-T (GF) backbone with UperNet:

bash dist_test.sh configs/hornet/upernet_hornet_tiny_gf_512_160k_ade20k.py \ 
    /path/to/checkpoint 8 --eval mIoU

Acknowledgment

This code is built using mmsegmentation, timm libraries, and ConvNeXt