HRNet语义分割模型在ADE20K数据集上的训练配置解析
2025-07-10 01:37:15作者:尤峻淳Whitney
概述
本文将深入解析HRNet语义分割项目中用于ADE20K数据集的训练配置文件,该配置采用了HRNet-W48结合OCR(Object-Contextual Representations)模块的架构。ADE20K是一个包含150个类别的场景解析数据集,广泛应用于语义分割研究领域。
硬件与基础配置
CUDNN:
BENCHMARK: true
DETERMINISTIC: false
ENABLED: true
GPUS: (0,1,2,3)
WORKERS: 4
这部分配置定义了训练环境的基础设置:
- CUDNN优化:启用了cuDNN加速库,并开启基准测试模式以自动选择最优算法
- GPU设置:使用4块GPU进行并行训练(0-3号GPU)
- 数据加载:配置了4个工作进程(workers)用于数据预加载,提升训练效率
数据集配置
DATASET:
DATASET: ade20k
ROOT: 'data/'
TEST_SET: 'list/ade20k/val.lst'
TRAIN_SET: 'list/ade20k/train.lst'
NUM_CLASSES: 150
关键参数说明:
- ADE20K数据集:包含150个语义类别,是MIT发布的场景解析数据集
- 数据路径:训练集和验证集分别通过train.lst和val.lst指定
- 类别数:150对应ADE20K的标准类别数量
模型架构
MODEL:
NAME: seg_hrnet_ocr
PRETRAINED: 'pretrained_models/hrnetv2_w48_imagenet_pretrained.pth'
EXTRA:
STAGE1: ...
STAGE2: ...
STAGE3: ...
STAGE4: ...
模型特点:
- HRNet-W48骨干网络:采用高分辨率网络结构,保持高分辨率特征图
- OCR模块:增强上下文信息捕获能力
- 预训练权重:使用在ImageNet上预训练的HRNetv2-W48权重初始化
网络结构细节:
- 四阶段架构:从stage1到stage4逐步增加分支数量(1→2→3→4)
- 通道数增长:48→96→192→384,保持高分辨率分支的轻量化
- 特征融合:各阶段使用SUM方法融合不同分辨率特征
损失函数配置
LOSS:
USE_OHEM: true
OHEMTHRES: 0.9
OHEMKEEP: 131072
BALANCE_WEIGHTS: [0.4, 1]
损失函数特点:
- OHEM(在线难例挖掘):自动关注难以分类的样本
- 阈值0.9:只保留损失值在前90%的样本
- 保留131072个像素:控制计算量
- 平衡权重:[0.4,1]表示对主损失和辅助损失的不同权重
训练策略
TRAIN:
BATCH_SIZE_PER_GPU: 4
BASE_SIZE: 520
IMAGE_SIZE: [520, 520]
OPTIMIZER: sgd
LR: 0.02
WD: 0.0001
MOMENTUM: 0.9
EPOCHS: 120
训练关键参数:
- 批量大小:每GPU处理4张图像,4GPU总batch size为16
- 输入尺寸:520×520分辨率
- 优化器:使用带动量的SGD
- 初始学习率0.02
- 权重衰减0.0001(L2正则化)
- 动量0.9
- 数据增强:
- 随机翻转(FLIP: true)
- 多尺度训练(MULTI_SCALE: true)
- 缩放因子16(SCALE_FACTOR: 16)
测试配置
TEST:
BATCH_SIZE_PER_GPU: 1
FLIP_TEST: false
MULTI_SCALE: false
测试设置特点:
- 评估模式:单GPU批量为1,关闭多尺度和翻转测试
- 保持一致性:与训练时相同的520×520输入尺寸
总结
该配置文件定义了一个完整的HRNet-OCR-W48语义分割模型的训练方案,主要特点包括:
- 使用高分辨率网络保持空间细节
- 结合OCR模块增强上下文理解
- 采用OHEM策略提升难例学习效果
- 多尺度训练增强模型鲁棒性
- 适中的520×520输入尺寸平衡精度与效率
这套配置在ADE20K数据集上经过充分验证,能够取得优秀的语义分割性能,同时也适用于其他类似场景解析任务,只需调整NUM_CLASSES和数据集路径即可。