三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

ContrastiveSeg支持哪些数据集?Cityscapes、ADE20K等实战配置教程

ContrastiveSeg支持哪些数据集?Cityscapes、ADE20K等实战配置教程

ContrastiveSeg支持哪些数据集?Cityscapes、ADE20K等实战配置教程

【免费下载链接】ContrastiveSegICCV2021 (Oral) - Exploring Cross-Image Pixel Contrast for Semantic Segmentation项目地址: https://gitcode.com/gh_mirrors/co/ContrastiveSeg

ContrastiveSeg是ICCV2021 (Oral)收录的语义分割项目,通过跨图像像素对比学习提升分割精度。本文将详细介绍其支持的数据集及实战配置方法,帮助新手快速上手。

📊 支持的主流数据集

ContrastiveSeg提供了丰富的数据集支持,涵盖城市景观、室内场景、人脸等多个领域,配置文件集中在configs/目录下:

1. Cityscapes(城市景观)

  • 应用场景:自动驾驶场景分割
  • 配置文件:configs/cityscapes/H_48_D_4.json、configs/cityscapes/R_101_D_8.json
  • 特色:支持HRNet、ResNet等多种 backbone,提供边缘检测和深度估计扩展配置

2. ADE20K(室内场景)

  • 应用场景:室内环境语义理解
  • 配置文件:configs/ade20k/H_48_D_4.json、configs/ade20k/TransUNet.json
  • 特色:包含150个语义类别,支持Transformer架构

3. 其他数据集

  • PASCAL Context:configs/pascal_context/H_48_D_4.json(20类自然场景)
  • COCO-Stuff:configs/coco_stuff/R_101_D_8.json(171类通用物体)
  • LIP:configs/lip/H_48_D_4.json(人体部位分割)
  • CamVid:configs/camvid/H_48_D_4.json(街景视频分割)
  • CelebA:configs/celeba/H_48_D_4.json(人脸属性分割)

🔍 数据集配置文件解析

每个数据集的配置文件定义了关键参数,以Cityscapes的H_48_D_4.json为例:

{ "dataset": { "dataset_name": "cityscapes", "data_root": "/path/to/data", "train_split": "train", "val_split": "val" }, "model": { "backbone": "hrnet48", "decoder": "ocr" } }
  • dataset_name:指定数据集类型
  • data_root:数据存储路径(需在运行脚本中修改)
  • backbone:特征提取网络(hrnet48/resnet101等)
  • decoder:分割头类型(ocr/segfix等)

🚀 实战配置步骤

1. 环境准备

git clone https://gitcode.com/gh_mirrors/co/ContrastiveSeg cd ContrastiveSeg pip install -r requirements.txt

2. 数据准备

以Cityscapes为例,需下载并解压至指定目录:

# 假设数据存放于/data/datasets/Cityscapes export DATA_ROOT=/data/datasets mkdir -p $DATA_ROOT/Cityscapes

3. 运行训练脚本

项目提供了预定义的训练脚本,位于scripts/目录下,以Cityscapes的HRNet+OCR配置为例:

# 格式:./scripts/cityscapes/hrnet/run_h_48_d_4_ocr.sh [模式] [实验名] [数据根目录] [输出根目录] ./scripts/cityscapes/hrnet/run_h_48_d_4_ocr.sh train exp1 /data/datasets /data/outputs
  • 关键参数
    • train:训练模式(可选val/test/segfix)
    • exp1:实验名称(用于区分不同训练结果)
    • 数据路径和输出路径需根据实际环境修改

4. 配置文件自定义

如需调整模型参数,可直接编辑对应数据集的JSON配置文件:

  • 修改输入尺寸:调整dataset->img_heightimg_width
  • 更换backbone:修改model->backbone为"resnet101"或"pvt"
  • 启用对比学习:添加contrast->enable: true

📈 模型工作原理

ContrastiveSeg的核心在于跨图像像素对比学习,其框架如图所示:

图中展示了三个关键模块:

  1. FCN特征提取:生成像素级特征
  2. 对比损失计算:通过NCE损失优化像素嵌入
  3. 结构化嵌入空间:使同类像素在嵌入空间聚集

对比学习效果可通过t-SNE可视化查看,左图为传统方法,右图为ContrastiveSeg的像素嵌入分布:

💡 常见问题解决

  1. 数据路径错误:检查运行脚本中的DATA_DIR参数,确保指向正确的数据集根目录
  2. 显存不足:修改脚本中的BATCH_SIZE参数(默认8,可减半为4)
  3. 预训练模型缺失:从官方模型库下载对应backbone的预训练权重,修改PRETRAINED_MODEL路径

通过本文介绍,您已了解ContrastiveSeg支持的数据集及基本配置流程。更多高级功能可参考lib/models/目录下的模型实现,或尝试不同数据集的配置文件组合。

【免费下载链接】ContrastiveSegICCV2021 (Oral) - Exploring Cross-Image Pixel Contrast for Semantic Segmentation项目地址: https://gitcode.com/gh_mirrors/co/ContrastiveSeg

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

← 返回列表