珊瑚语义分割(Coral Segmentation)

水下珊瑚遥感图像语义分割项目,采用 Mask2Former-Swin-B + ConvNeXt-L-FPN 双模型融合方案,将 256×256 RGB 水下图像分割为四类:

类别编号 类别名称 说明
0 背景 非珊瑚区域
1 活珊瑚 健康存活的珊瑚
2 死珊瑚 已死亡的珊瑚
3 白化珊瑚 白化状态的珊瑚

项目结构

coral-segmentation/
├── coral_seg/                  # 核心代码与模型
│   ├── coral_seg/              # Python 包(数据集、模型、损失函数)
│   ├── configs/                # 训练配置(final_dual.yaml)
│   ├── tools/                  # 训练、推理、评测、可视化脚本
│   ├── pretrained/             # 预训练权重
│   ├── work_dirs/              # 训练好的模型 checkpoint
│   ├── splits/                 # 训练/验证集划分
│   ├── vis_results/            # 可视化结果示例
│   ├── submissions/            # 推理输出(results.zip)
│   ├── docs/                   # 技术报告与操作指南
│   └── logs/                   # 训练日志
├── data_fresh/                 # 原始数据
│   ├── train_bsdtar/           # 训练数据
│   └── test_raw/               # 测试数据
└── README.md

模型方案

ConvNeXt-L-FPN

  • 骨干网络:ConvNeXt-Large(ImageNet-1K 预训练)
  • 解码器:FPN(Feature Pyramid Network),四尺度特征融合
  • 输入尺寸:512×512
  • 训练:120 epochs,AdamW,lr=6e-5,混合精度

Mask2Former-Swin-B

  • 骨干网络:Swin Transformer Base(ADE20K 预训练)
  • 解码器:Mask2Former mask classification
  • 输入尺寸:384×384
  • 训练:80 epochs,AdamW,lr=3e-5,梯度检查点

融合推理

prob = 0.55 × prob_mask2former + 0.45 × prob_convnext
pred = argmax(prob)

支持 TTA(原图 + 水平翻转)。

环境安装

pip install -r coral_seg/requirements.txt

主要依赖:

  • PyTorch 2.3.0
  • Transformers 4.46.3
  • timm 1.0.27
  • albumentations 2.0.8

快速开始

1. 检查数据

python coral_seg/tools/check_data.py --config coral_seg/configs/final_dual.yaml

2. 训练 ConvNeXt-L-FPN

python coral_seg/tools/train_convnext.py --config coral_seg/configs/final_dual.yaml

3. 训练 Mask2Former-Swin-B

python coral_seg/tools/train_mask2former.py --config coral_seg/configs/final_dual.yaml

4. 融合推理

python coral_seg/tools/infer_ensemble.py \
  --config coral_seg/configs/final_dual.yaml \
  --convnext-checkpoint coral_seg/work_dirs/convnext_l_fpn/best.pth \
  --mask2former-checkpoint coral_seg/work_dirs/mask2former_swin_b/best_hf

5. 验证集评测

python coral_seg/tools/eval_ensemble_val.py --config coral_seg/configs/final_dual.yaml

训练策略

  • 损失函数:CE + Dice + 0.5×Lovasz(ConvNeXt);Mask2Former 内置组合损失
  • Label Smoothing:0.05
  • 学习率调度:warmup + cosine decay
  • 骨干网络低学习率:ConvNeXt backbone 使用 0.25× 基础学习率
  • 数据增强:翻转、旋转、仿射变换、亮度/对比度/饱和度扰动、CLAHE、高斯模糊、运动模糊

复现条件

  • GPU:A30 24GB(或同等显存)
  • 训练+推理总时间 < 24 小时
  • 固定随机种子(seed: 2026)
  • 固定 train/val split

文档

  • 操作指南 — 完整的部署、训练、推理流程
  • 技术报告 — 算法设计、模型选择、损失函数等技术细节
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support