Deep Segmentation Architectures for Remote Sensing
本项目旨在对典型深度语义分割方法在遥感场景下的性能进行系统评估,为后续实验室在海洋遥感图像分割任务中的模型迁移与微调提供方法论支持与基准选择。通过对比当前主流语义分割框架——HRNet(CVPR 2019)、DeepLabV3+(CVPR 2018)与PSPNet(CVPR 2017)在多个遥感数据集上的表现,全面分析不同分割结构在空间分辨率保持、边界识别、类间差异建模等方面的优劣。
在实验设置中,分别采用ResNet-18、ResNet-50、ResNet-101作为DeepLabV3+与PSPNet的主干网络,HRNet部分选用HRNet-18、HRNet-18s与HRNet-48三种配置。实验覆盖LoveDA、Potsdam和Vaihingen三个典型遥感语义分割数据集,共完成27组模型训练与评估。
1 |
|
HRNet (CVPR 2019)
- CVPR 2019 Open Access Repository
- USTC, MSRA
- HRNet/HRNet-Semantic-Segmentation: The OCR approach is rephrased as Segmentation Transformer: https://arxiv.org/abs/1909.11065. This is an official implementation of semantic segmentation for HRNet. https://arxiv.org/abs/1908.07919
- mmsegmentation/mmseg/models/backbones/hrnet.py at v0.17.0 · open-mmlab/mmsegmentation
LoveDA
Method | Backbone | Crop Size | Device | aAcc | mIoU | mAcc |
---|---|---|---|---|---|---|
FCN | HRNetV2p-W18-Small | 512x512 | RTX 3090 | 67.57 | 48.95 | 61.89 |
FCN | HRNetV2p-W18 | 512x512 | RTX 3090 | 68.23 | 51.02 | 53.83 |
FCN | HRNetV2p-W48 | 512x512 | RTX 3090 | 69.12 | 50.80 | 63.13 |
Potsdam
Method | Backbone | Crop Size | Device | aAcc | mIoU | mAcc |
---|---|---|---|---|---|---|
FCN | HRNetV2p-W18-Small | 512x512 | RTX 3090 | 90.08 | 77.11 | 84.45 |
FCN | HRNetV2p-W18 | 512x512 | RTX 3090 | 90.38 | 77.12 | 84.19 |
FCN | HRNetV2p-W48 | 512x512 | RTX 3090 | 90.51 | 77.79 | 85.02 |
Vaihingen
Method | Backbone | Crop Size | Device | aAcc | mIoU | mAcc |
---|---|---|---|---|---|---|
FCN | HRNetV2p-W18-Small | 512x512 | RTX 3090 | 89.76 | 72.54 | 80.31 |
FCN | HRNetV2p-W18 | 512x512 | RTX 3090 | 90.10 | 73.37 | 80.52 |
FCN | HRNetV2p-W48 | 512x512 | RTX 3090 | 90.12 | 73.68 | 8076 |
DeepLab V3+ (ECCV 2018)
LoveDA
Method | Backbone | Crop Size | Device | aAcc | mIoU | mAcc |
---|---|---|---|---|---|---|
DeepLabV3+ | R-18-D8 | 512x512 | RTX 3090 | 62.44 | 44.66 | 58.22 |
DeepLabV3+ | R-50-D8 | 512x512 | RTX 3090 | 67.26 | 48.76 | 60.03 |
DeepLabV3+ | R-101-D8 | 512x512 | RTX 3090 | 68.27 | 49.99 | 61.64 |
Potsdam
Method | Backbone | Crop Size | Device | aAcc | mIoU | mAcc |
---|---|---|---|---|---|---|
DeepLabV3+ | R-18-D8 | 512x512 | RTX 3090 | 90.16 | 77.29 | 84.77 |
DeepLabV3+ | R-50-D8 | 512x512 | RTX 3090 | 90.33 | 77.99 | 85.39 |
DeepLabV3+ | R-101-D8 | 512x512 | RTX 3090 | 90.59 | 78.16 | 84.17 |
Vaihingen
Method | Backbone | Crop Size | Device | aAcc | mIoU | mAcc |
---|---|---|---|---|---|---|
DeepLabV3+ | R-18-D8 | 512x512 | RTX 3090 | 89.58 | 72.35 | 80.44 |
DeepLabV3+ | R-50-D8 | 512x512 | RTX 3090 | 89.96 | 74.16 | 81.18 |
DeepLabV3+ | R-101-D8 | 512x512 | RTX 3090 | 90.06 | 73.52 | 80.72 |
PSPNet (CVPR 2017)
- CVPR 2017
- CUHK, SenseTime
LoveDA
Method | Backbone | Crop Size | Device | aAcc | mIoU | mAcc |
---|---|---|---|---|---|---|
PSPNet | R-18-D8 | 512x512 | RTX 3090 | 66.42 | 45.82 | 56.44 |
PSPNet | R-50-D8 | 512x512 | RTX 3090 | 68.07 | 49.38 | 60.60 |
PSPNet | R-101-D8 | 512x512 | RTX 3090 | 68.22 | 49.01 | 59.71 |
Potsdam
Method | Backbone | Crop Size | Device | aAcc | mIoU | mAcc |
---|---|---|---|---|---|---|
PSPNet | R-18-D8 | 512x512 | RTX 3090 | 90.09 | 77.43 | 85.23 |
PSPNet | R-50-D8 | 512x512 | RTX 3090 | 90.71 | 78.62 | 85.82 |
PSPNet | R-101-D8 | 512x512 | RTX 3090 | 68.22 | 49.01 | 59.71 |
Vaihingen
Method | Backbone | Crop Size | Device | aAcc | mIoU | mAcc |
---|---|---|---|---|---|---|
PSPNet | R-18-D8 | 512x512 | RTX 3090 | 89.54 | 72.53 | 79.78 |
PSPNet | R-50-D8 | 512x512 | RTX 3090 | 90.01 | 73.33 | 80.63 |
PSPNet | R-101-D8 | 512x512 | RTX 3090 | 90.07 | 71.71 | 78.68 |
Exp
HRNet
R18s
python tools/train.py ./configs/hrnet/fcn_hr18s_4xb4-80k_loveda-512x512.py (fcn_hr18s_4xb4-80k_loveda-512x512_20250604_101019)
python tools/train.py ./configs/hrnet/fcn_hr18s_4xb4-80k_potsdam-512x512.py(fcn_hr18s_4xb4-80k_potsdam-512x512_20250604_101224)
python tools/train.py ./configs/hrnet/fcn_hr18s_4xb4-80k_vaihingen-512x512.py (fcn_hr18s_4xb4-80k_vaihingen-512x512_20250604_101158)
R18
python tools/train.py ./configs/hrnet/fcn_hr18_4xb4-80k_loveda-512x512.py (fcn_hr18_4xb4-80k_loveda-512x512_20250604_100135)
python tools/train.py ./configs/hrnet/fcn_hr18_4xb4-80k_potsdam-512x512.py (fcn_hr18_4xb4-80k_potsdam-512x512_20250604_100329)
python tools/train.py ./configs/hrnet/fcn_hr18_4xb4-80k_vaihingen-512x512.py ( fcn_hr18_4xb4-80k_vaihingen-512x512_20250604_100356)
R48
python tools/train.py ./configs/hrnet/fcn_hr48_4xb4-80k_loveda-512x512.py ( fcn_hr48_4xb4-80k_loveda-512x512_20250604_101327)
python tools/train.py ./configs/hrnet/fcn_hr48_4xb4-80k_potsdam-512x512.py (fcn_hr48_4xb4-80k_potsdam-512x512_20250604_101611)
python tools/train.py ./configs/hrnet/fcn_hr48_4xb4-80k_vaihingen-512x512.py (fcn_hr48_4xb4-80k_vaihingen-512x512_20250604_101506)
DeepLab V3+
R18
python tools/train.py ./configs/deeplabv3plus/deeplabv3plus_r18-d8_4xb4-80k_loveda-512x512.py (deeplabv3plus_r18-d8_4xb4-80k_loveda-512x512_20250604_100604)
python tools/train.py ./configs/deeplabv3plus/deeplabv3plus_r18-d8_4xb4-80k_potsdam-512x512.py (deeplabv3plus_r18-d8_4xb4-80k_potsdam-512x512_20250604_100639)
python tools/train.py ./configs/deeplabv3plus/deeplabv3plus_r18-d8_4xb4-80k_vaihingen-512x512.py (deeplabv3plus_r18-d8_4xb4-80k_vaihingen-512x512_20250604_100705)
R50
python tools/train.py ./configs/deeplabv3plus/deeplabv3plus_r50-d8_4xb4-80k_loveda-512x512.py (deeplabv3plus_r50-d8_4xb4-80k_loveda-512x512_20250604_145221)
python tools/train.py ./configs/deeplabv3plus/deeplabv3plus_r50-d8_4xb4-80k_potsdam-512x512.py (deeplabv3plus_r50-d8_4xb4-80k_potsdam-512x512_20250604_145319)
python tools/train.py ./configs/deeplabv3plus/deeplabv3plus_r50-d8_4xb4-80k_vaihingen-512x512.py (deeplabv3plus_r50-d8_4xb4-80k_vaihingen-512x512_20250604_165100)
R101
python tools/train.py ./configs/deeplabv3plus/deeplabv3plus_r101-d8_4xb4-80k_loveda-512x512.py (deeplabv3plus_r101-d8_4xb4-80k_loveda-512x512_20250604_164955)
python tools/train.py ./configs/deeplabv3plus/deeplabv3plus_r101-d8_4xb4-80k_potsdam-512x512.py (deeplabv3plus_r101-d8_4xb4-80k_potsdam-512x512_20250604_165024)
python tools/train.py ./configs/deeplabv3plus/deeplabv3plus_r101-d8_4xb4-80k_vaihingen-512x512.py (deeplabv3plus_r101-d8_4xb4-80k_vaihingen-512x512_20250605_132237)
PSPNet
R18
python tools/train.py ./configs/pspnet/pspnet_r18-d8_4xb4-80k_loveda-512x512.py (pspnet_r18-d8_4xb4-80k_loveda-512x512_20250604_094150)
python tools/train.py configs/pspnet/pspnet_r18-d8_4xb4-80k_potsdam-512x512.py (pspnet_r18-d8_4xb4-80k_potsdam-512x512_20250604_094350)
python tools/train.py configs/pspnet/pspnet_r18-d8_4xb4-80k_vaihingen-512x512.py (pspnet_r18-d8_4xb4-80k_vaihingen-512x512_20250604_094520)
R50
python tools/train.py ./configs/pspnet/pspnet_r50-d8_4xb4-80k_loveda-512x512.py(pspnet_r50-d8_4xb4-80k_loveda-512x512_20250604_094757)
python tools/train.py configs/pspnet/pspnet_r50-d8_4xb4-80k_potsdam-512x512.py (pspnet_r50-d8_4xb4-80k_potsdam-512x512_20250604_094853)
python tools/train.py configs/pspnet/pspnet_r50-d8_4xb4-80k_vaihingen-512x512.py (pspnet_r50-d8_4xb4-80k_vaihingen-512x512_20250604_094948)
R101
python tools/train.py configs/pspnet/pspnet_r101-d8_4xb4-80k_loveda-512x512.py
python tools/train.py configs/pspnet/pspnet_r101-d8_4xb4-80k_potsdam-512x512.py
python tools/train.py ./configs/pspnet/pspnet_r101-d8_4xb4-80k_vaihingen-512x512.py