CoolFace
Modelpublic

XYZ9843/GOOSE-M2F

sourceHugging Faceupdated 3mo agoView on Hugging Face
1likes80downloads
Model Card

GOOSE-M2F: Adapting Mask2Former for High-Fidelity, Long-Tailed Fine-Grained Semantic Segmentation in Unstructured Outdoor Terrain

Jyothiraditya Lingam, Nikhileswara Rao Sulake, Sai Manikanta Eswar Machara

Department of Computer Science and Engineering Rajiv Gandhi University of Knowledge Technologies (RGUKT), Nuzvid, Andhra Pradesh, India

<p align="center"> <a href="https://arxiv.org/abs/2606.15937"><b>๐Ÿ“„ Paper</b></a> โ€ข <a href="https://github.com/Aditya-Lingam-9000/GOOSE-M2F"><b>๐Ÿ’ป Code</b></a> โ€ข <a href="https://huggingface.co/XYZ9843/GOOSE-M2F"><b>๐Ÿค— Hugging Face</b></a> โ€ข <a href="https://www.codabench.org/competitions/14257"><b>๐Ÿ† Challenge</b></a> </p>

GOOSE-M2F is a task-specific adaptation of Mask2Former for the GOOSE 2D Fine-Grained Semantic Segmentation Challenge (ICRA 2026). The proposed framework addresses long-tailed semantic segmentation in unstructured outdoor environments through enhanced object query capacity, feature refinement, auxiliary supervision, class-balanced optimization, and robust multi-scale inference.
Official Challenge Performance: 70.08% Composite mIoU (63.55% Fine mIoU, 76.61% Coarse mIoU), achieving 3rd Place on the GOOSE 2D FGSS Challenge Leaderboard.

๐Ÿ“ข News

  • โ€”[ICRA 2026] GOOSE-M2F achieved 3rd Place in the GOOSE 2D Fine-Grained Semantic Segmentation Challenge.
  • โ€”[2026] Source code and trained models released.
  • โ€”[2026] Technical report available on arXiv.

What is GOOSE-M2F?

The GOOSE dataset presents one of the most challenging real-world segmentation benchmarks: 64 fine-grained classes across diverse unstructured outdoor environments including forests, gravel paths, construction zones, and agricultural terrain โ€” with a severely long-tailed class distribution.

GOOSE-M2F extends the baseline Mask2Former (Swin-Large backbone) with three key modifications engineered specifically for this challenge:

ModificationProblem SolvedImpact
200 Object Queries (vs 100)Query saturation in 64-class scenes+2-3% composite mIoU
Feature Refinement Module (FRM) โ€” ASPP-lite + CBAMOver-segmentation of amorphous terrain classes+3-4% on Vegetation/Terrain
Auxiliary Supervision Head at H/4 resolutionVanishing gradients for tiny/thin classes+5-8% on rare classes

Architecture

Input Image [B, 3, H, W]
      โ”‚
      โ–ผ
Swin-Large Backbone (Hierarchical, 4 stages)
  Stage 1-4: channels {192, 384, 768, 1536}, resolutions {H/4 โ†’ H/32}
      โ”‚
      โ–ผ
MSDeformAttn Pixel Decoder (6-layer FPN)
  Output: mask_features [B, 256, H/4, W/4]
      โ”‚
      โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
      โ–ผ                                      โ–ผ
[NEW] Feature Refinement Module        [NEW] Auxiliary Head
  ASPP-lite: dilations {1, 3, 6, 12}     Conv(256โ†’256โ†’64)
  + Global Average Pooling               DB-weighted CE loss
  + CBAM Dual-Attention (Ch + Sp)        Supervised at H/4
      โ”‚
      โ–ผ
Transformer Decoder (9 layers)
  [MOD] 200 Object Queries (was 100)
  Masked Cross-Attention
      โ”‚
      โ–ผ
Class Head [B, 200, 65] ร— Mask Head [B, 200, H/4, W/4]
      โ”‚
      โ–ผ
Hungarian Matching โ†’ Semantic Prediction

Training Strategy

TechniqueDescription
Distribution-Balanced (DB) Lossw_c = (1-ฮฒ)/(1-ฮฒ^n_c), ฮฒ=0.9999. Amplifies gradients for rare classes.
Rare-Class Copy-Paste (RCCP)Pre-extracted rare-class cutouts pasted onto training images at 85% probability.
Dynamic IoU-Aware WeightsPer-class loss weights updated every epoch from validation IoU (0%โ†’4x, 80%+โ†’1x).
10x LR Jump (V4)Backbone 1e-5, Decoder 5e-5 โ€” broke the model out of a local minimum at ~55%.
EMA (decay=0.9995)Shadow weights consistently +1.0โ€“1.5% over raw model on validation.
Class-Aware Repeat SamplingOversamples images containing rare classes proportional to their rarity.
Polynomial LR DecayGradual decay after warmup, with annealing in final sessions.

Training Progression (V1 โ†’ V8)

SessionBase LRBackbone LROfficial Score
V1 (S3)5e-61e-650.68%
V2 (S4)5e-61e-654.62%
V3 (S5)5e-61e-655.64%
V4 (S6)5e-51e-556.38% โ† 10x LR Jump
V5 (S7)5e-51e-557.59%
V6 (S8)5e-51e-558.58%
V7 (S9)5e-51e-559.23%
V8 (S10)2.5e-55e-659.51% โ† Annealing
Inferenceโ€”โ€”70.08% โ† +10.57% from TTA

Inference Engine

The final performance leap from 59.51% (training) to 70.08% (submission) came entirely from the inference pipeline:

TechniqueGainDescription
Dense Sliding Window+4-5%896ร—896 crops, stride=384px (57% overlap)
2D Gaussian Kernel BlendingEliminates artifactsCenter pixels weighted higher, edges down-weighted
4-Scale TTA+3-4%Scales: 0.5ร—, 0.75ร—, 1.0ร—, 1.5ร—
H-Flip TTA+1-2%8 total views per image (4 scales ร— 2 flips)
EMA Weights+1-1.5%Shadow weights used instead of raw training weights
AuxHead StrippingVRAM savingsRemoved before inference โ€” not needed for prediction

Project Structure

goose-m2f/
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ model.py          โ† GOOSEMask2Former (FRM + AuxHead + 200 queries)
โ”‚   โ”œโ”€โ”€ features.py       โ† Dataset, augmentations, EMA, metrics
โ”‚   โ”œโ”€โ”€ train.py          โ† Training engine (Trainer class)
โ”‚   โ””โ”€โ”€ inference.py      โ† Dense Gaussian patch-blending inference
โ”œโ”€โ”€ configs/
โ”‚   โ”œโ”€โ”€ train_config.yaml โ† All training hyperparameters
โ”‚   โ””โ”€โ”€ infer_config.yaml โ† TTA and inference settings
โ”œโ”€โ”€ data/raw/             โ† Dataset (symlink or copy)
โ”œโ”€โ”€ models/               โ† Manually placed checkpoints
โ”œโ”€โ”€ outputs/
โ”‚   โ”œโ”€โ”€ checkpoints/      โ† best_model.pth, latest.pth, charts
โ”‚   โ””โ”€โ”€ predictions/      โ† Output PNG predictions
โ”œโ”€โ”€ tests/
โ”‚   โ””โ”€โ”€ test_model.py     โ† pytest unit tests
โ”œโ”€โ”€ instructions/
โ”‚   โ””โ”€โ”€ instructions.md   โ† Full setup + usage guide
โ””โ”€โ”€ requirements.txt

Quick Start

1. Setup

bash
git clone https://github.com/Aditya-Lingam-9000/GOOSE-M2F
cd GOOSE-M2F

conda create -n goose python=3.11 -y && conda activate goose
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu121
pip install -r requirements.txt
accelerate config   # Configure for your GPU setup

2. Configure Paths

Edit configs/train_config.yaml:

yaml
data_dir: "/path/to/goose_dataset"
csv_path: "/path/to/goose_label_mapping.csv"
output_dir: "outputs/checkpoints/session_01"

3. Train

bash
# Single GPU
python -m src.train --config configs/train_config.yaml

# Multi-GPU
accelerate launch --num_processes 2 -m src.train --config configs/train_config.yaml

4. Inference

Edit configs/infer_config.yaml with the checkpoint path and image directory, then:

bash
python -m src.inference --config configs/infer_config.yaml

5. Tests

bash
pytest tests/ -v

Results

Official Leaderboard Performance (Final Submission)

MetricScore
Fine mIoU~68.5%
Coarse mIoU~71.6%
Official Composite70.08%

Coarse Category Breakdown

CategorymIoU
Sky94.6%
Road91.0%
Vehicle89.8%
Vegetation89.8%
Construction75.5%
Terrain78.9%
Human62.8%
Sign62.4%
Water33.9%
Object51.3%
Animal0.0%

Requirements

PackageVersion
torchโ‰ฅ 2.1.0
transformersโ‰ฅ 4.38.0
accelerateโ‰ฅ 0.27.0
albumentationsโ‰ฅ 1.3.1
opencv-pythonโ‰ฅ 4.9.0
numpyโ‰ฅ 1.24.0

See requirements.txt for the complete list.


Citation

If you use this work, please cite:

bibtex
@techreport{lingam2026goosem2f,
  title     = {GOOSE-M2F: Adapting Mask2Former for High-Fidelity, Long-Tailed Fine-Grained Semantic Segmentation in Unstructured Outdoor Terrain},
  author    = {Jyothiraditya Lingam and Nikhileswara Rao Sulake and Sai Manikanta Eswar Machara},
  year      = {2026},
  institution = {Rajiv Gandhi University of Knowledge Technologies (RGUKT)}
}

References

  • โ€”Mask2Former: Cheng et al., Masked-Attention Mask Transformer for Universal Image Segmentation, CVPR 2022
  • โ€”Swin Transformer: Liu et al., ICCV 2021
  • โ€”CBAM: Woo et al., Convolutional Block Attention Module, ECCV 2018
  • โ€”DeepLab: Chen et al., Rethinking Atrous Convolution, TPAMI 2017