Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
13 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IceSegNet: A Stage-Aware Dynamic Kernel Network for River Ice Segmentation in Remote Sensing Imagery

Paper GitHub MMSegmentation License

English | 中文

IceSegNet: A stage-aware dynamic kernel network for river ice segmentation in remote sensing imagery

Kaijun Wu, Dingju Zhou*, Juanjuan Du, Yuelian Wu, Lidong Zhang

Applied Soft Computing, Vol. 186, 2026 | 📄 Paper


🏔️ Highlights

  • 🎯 Stage-Aware Kernel Update Module — Three structurally distinct stages (detail preservation → transition stabilization → semantic purification) with progressively reduced feedforward widths (2048 → 1024 → 512), cutting FFN parameters by 41.7% while improving mIoU by 0.96%.
  • 🧠 UPerSCA-MTL Decode Head — Unified Perceptual Parsing enhanced with Spatial Cross-Attention (SCA) and Multi-Task Learning (MTL) for joint semantic segmentation and edge detection.
  • 🏆 State-of-the-Art Results93.81% mIoU on NWPU_YRCC2 (+1.19% over K-Net, +1.31% over Mask2Former); 93.56% mIoU on NWPU_YRCC_EX (+0.43% over K-Net).

📋 Abstract

Accurate segmentation of river ice in remote sensing imagery is critical for quantifying ice coverage—a key variable in early warning and risk assessment of ice-jam disasters. IceSegNet addresses the challenges of large-scale variation, spectral similarity between ice and water, and ambiguous boundaries through two core innovations:

  1. A stage-aware kernel update module that refines features through three structurally distinct stages with progressively reduced hidden widths.
  2. UPerSCA-MTL, a multi-task decoding head that fuses spatial cross-attention and edge detection to enhance boundary accuracy.

Evaluated on two Yellow River ice datasets — NWPU_YRCC2 (1525 images, 4 classes) and NWPU_YRCC_EX (887 images, 3 classes) — IceSegNet achieves state-of-the-art performance among 18 competing segmentation models.


🏗️ Architecture

Model Architecture

Stage-Aware Kernel Update

Stage Role FFN Hidden Width
I Detail Preservation — retains fine texture and edge cues 2048
II Transition Stabilization — bridges low-level detail to semantics 1024
III Semantic Purification — compact class-discriminative embeddings 512

UPerSCA-MTL Head

  • PPM: Multi-scale context aggregation via pyramid pooling
  • SCA (Spatial Cross-Attention): Horizontal + vertical global pooling to capture axis-specific directional dependencies, enhancing ambiguous ice–water boundary delineation
  • Depthwise Separable Convolutions: Reduce computational complexity without sacrificing feature quality
  • Multi-Task Head: Parallel segmentation + edge detection branches; edge supervision derived automatically from GT mask gradients (no extra annotation needed)

📊 Main Results

NWPU_YRCC2 (4 classes: Land / Water / Shore Ice / Drift Ice)

Method Venue mIoU (%) PA (%) mFscore (%) FPS Params (M)
U-Net MICCAI 2015 61.62 80.59 75.55 3.05 29
PSPNet CVPR 2017 90.70 94.28 95.07 9.41 47
DeepLabv3+ ECCV 2018 90.37 94.74 94.92 5.42 60
SegFormer NeurIPS 2021 86.99 92.61 92.98 4.18 82
Mask2Former CVPR 2022 92.50 96.12 96.09 3.75 216
DINOv2+Rein CVPR 2025 89.86 94.01 94.63 2.21 317
K-Net (baseline) NeurIPS 2021 92.62 95.78 96.15 3.58 245
IceSegNet (Ours) ASOC 2025 93.81 96.31 96.79 3.43 247

NWPU_YRCC_EX (3 classes: Ice / Water / Other)

Method mIoU (%) PA (%) mFscore (%)
PSPNet 85.42 92.54 92.13
DeepLabv3+ 88.04 93.93 93.63
Mask2Former 93.26 96.56 96.50
K-Net (baseline) 93.13 96.49 96.43
IceSegNet (Ours) 93.56 96.73 96.67

⚙️ Installation

Requirements

  • Python ≥ 3.8
  • PyTorch ≥ 1.12 with CUDA
  • MMEngine, MMCV ≥ 2.0, MMSegmentation

Step-by-Step Setup

1. Create and activate conda environment

conda create -n icesegnet python=3.8 -y
conda activate icesegnet

2. Install PyTorch (example: CUDA 11.6)

pip install torch==1.12.1+cu116 torchvision==0.13.1+cu116 \
    --extra-index-url https://download.pytorch.org/whl/cu116

3. Install MMEngine and MMCV

pip install -U openmim
mim install mmengine
mim install "mmcv>=2.0.0"

4. Install MMSegmentation

git clone https://github.com/open-mmlab/mmsegmentation.git
cd mmsegmentation
pip install -v -e .
cd ..

5. Clone this repository

git clone https://github.com/fox-4869/IceSegNet.git
cd IceSegNet
pip install -r requirements.txt

📁 Data Preparation

Download the datasets:

Organize the directory as follows:

data/
├── NWPU_YRCC2_JPG1/
│   ├── train/             # Training images (.jpg)
│   ├── train_labels/      # Training annotations (.png)
│   ├── val/               # Validation images
│   └── val_labels/        # Validation annotations
└── NWPU_YRCC_EX/
    ├── train/
    ├── train_labels/
    ├── val/
    └── val_labels/

Register Custom Modules

1. Copy dataset definitions

cp datasets/NWPU_YRCC2_JPG1.py mmsegmentation/mmseg/datasets/
cp datasets/NWPU_YRCC.py       mmsegmentation/mmseg/datasets/

Add to mmseg/datasets/__init__.py:

from .NWPU_YRCC2_JPG1 import NWPU_YRCC2_JPG1
from .NWPU_YRCC import NWPU_YRCC

2. Copy model components

cp models/sefpn.py             mmsegmentation/mmseg/models/necks/
cp models/uper_att_plus_head.py mmsegmentation/mmseg/models/decode_heads/

Register in the corresponding __init__.py files under mmseg/models/necks/ and mmseg/models/decode_heads/.


🚀 Training

Single GPU

python tools/train.py configs/icesegnet-config.py

Multi-GPU (recommended — paper uses 2× RTX 3090)

bash tools/dist_train.sh configs/icesegnet-config.py 2

Key training settings:

Hyperparameter Value
Optimizer AdamW (β₁=0.9, β₂=0.999)
Learning Rate 6×10⁻⁵
Weight Decay 5×10⁻⁴
Batch Size 4/GPU × 2 GPUs = 8 total
Max Iterations 60,000
LR Schedule Linear warmup (500 iters) + CosineAnnealing
Crop Size 512 × 512
Backbone Init ImageNet-22K pretrained Swin-L

🧪 Evaluation

Standard evaluation

python tools/test.py configs/icesegnet-config.py /path/to/checkpoint.pth

With Test-Time Augmentation (multi-scale + flip)

python tools/test.py configs/icesegnet-config.py /path/to/checkpoint.pth --tta

Reported metrics: mIoU, mDice, mFscore, PA, BFscore


📂 Repository Structure

IceSegNet/
├── configs/
│   └── icesegnet-config.py        # Full training & evaluation config
├── datasets/
│   ├── NWPU_YRCC2_JPG1.py         # 4-class dataset (Land/Water/Shore Ice/Drift Ice)
│   └── NWPU_YRCC.py               # 3-class dataset (Others/Water/Shore Ice)
├── models/
│   ├── sefpn.py                   # SEFPN neck with BN+ReLU normalization
│   └── uper_att_plus_head.py      # UPerSCA-MTL decode head
├── tools/                         # Training & testing scripts (MMSeg)
├── README.md                      # English README
└── README_CN.md                   # Chinese README

📖 Citation

If IceSegNet is helpful for your research, please cite:

@article{wu2026icesegnet,
  title     = {IceSegNet: A stage-aware dynamic kernel network for river ice
               segmentation in remote sensing imagery},
  author    = {Wu, Kaijun and Zhou, Dingju and Du, Juanjuan and
               Wu, Yuelian and Zhang, Lidong},
  journal   = {Applied Soft Computing},
  volume    = {186},
  pages     = {114120},
  year      = {2026},
  publisher = {Elsevier},
  doi       = {10.1016/j.asoc.2025.114120}
}

🙏 Acknowledgements

This work was supported by the Natural Science Foundation Key Project of Gansu Province (23JRRA860), the Inner Mongolia Key R&D and Achievement Transformation Project (2023YFSH0043, 2023YFDZ0043, 2023YFDZ0054), the Key Research and Development Project of Lanzhou Jiaotong University (ZDYF2304), and the Excellent Graduate Student "Innovation Star" Project of Gansu Province (2025CXZX-682).

This codebase is built on MMSegmentation. We also thank the authors of K-Net for the foundational dynamic kernel framework.


📬 Contact

Corresponding Author: Dingju Zhou — dingjuzhou@163.com

Lanzhou Jiaotong University, Lanzhou 730070, China

Releases

Packages

Used by

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.