该项目复现相关论文,基于PaddleSeg实现全监督语义分割训练范式,借跨图像像素对比优化特征空间。在Cityscapes验证集上,HRNet_W48模型mIou达82.47%,超复现要求,使用Tesla V100及PaddlePaddle 2.1.2。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜


论文作者提出一种新的、全监督语义分割训练范式,可应用于语义分割的训练中,能够显著提高语义分割的效果。论文在cityscapes验证集上进行实验,HRNet_W48的mIou为81.0%,本次复现赛要求复现的精度为82.2%,本项目复现结果为82.47%。
作者提出一种新的、全监督语义分割训练范式,利用跨图像的像素-像素之间的关系,来学习一个更好的特征空间。如上图所示,(a)和(b)是训练图片及其对应的标签,传统的语义分割训练时忽略了不同图片之间的上下文信息,而本篇论文提出的跨图像像素对比学习,利用不同图片之间的像素关系,使得特征空间中同种类别的像素相似性变高、不同类别的像素相似度变低(如图d),从而得到一个更好的结构化的特征空间(如图e)。

上图为网络结构,fFCN为backbone模块,fSEG为语义分割head模块,从fSEG平行引出fPROJ模块,fPROJ用来进行对比训练,fSEG训练方法与传统方法相同。

损失函数如上图,由2部分构成,交叉熵损失和对比损失组成,其中对比损失为本篇论文的核心。

交叉熵损失如上图所示,此处不做介绍。

上图为对比损失,亦是本篇论文的核心。其中i是真实标签为c的特征向量,i+为正样本像素特征,i-为负样本像素特征,由上式可以看出,通过像素-像素对比学习,在特征空间上同一类别的像素拉近,不同类别的像素原理,从而使得不同类别的像素特征空间能够更好的可区分。
预测错误的像素被认为是hard anchor,预测正确的像素被认为是easy anchor,在对比度损失计算过程中,一半的anchor是hard anchor,另一半是easy anchor。

上左图为像素交叉熵损失的特征可视图,上右图是对比损失的特征可视化图,可以看出,使用了像素对比损失的语义分割模型特征空间更具结构化。
本项目为第四届百度论文复现赛Exploring Cross-Image Pixel Contrast for Semantic Segmentation复现结果,本项目基于PaddleSeg实现,并复现了论文实验结果,非常感谢百度提供的比赛平台以及GPU资源。
硬件: Tesla V100 * 4
框架: paddlepaddle==2.1.2
1、project dimension:此参数不影响最后的模型大小,可以适度调整来获得好的效果;
2、迭代次数:40k次迭代时mIou为81.8%,不满足验收标准,60k次迭代mIou为82.47%,可以适当提高迭代次数;
3、训练时长:Tesla V100 * 4, batch_size为2,60k次迭代,训练总时长为13.5h。
1、使用paddleseg语义分割框架可以有效的减少复现的代码量,提高复现速度;
2、论文提供的源码使用的框架是pytorch,需要注意不同框架模型转换的细节(尤其是部分函数的不同)。
| Method | Environment | mIou | Step | Batch_size | Dataset |
|---|---|---|---|---|---|
| HRNet_W48_Contrast | Tesla V-100 × 4 | 82.47 | 60k | 2 | CityScapes |
本项目基于PaddleSeg开发,由于PaddleSeg已经包含了数据处理,验证等多项功能,本篇论文的复现仅需要实现HRNet_W48 Head和Contrast loss部分。
1、按照以下步骤可运行本项目。
2、由于HRNet_W48参数较大,无法上传至Aistudio,可从github的百度云连接下载训练好的权重参数。
# step 1: git clone, 本项目已clone过,跳过此步骤!git clone https://hub.fastgit.org/justld/contrast_seg_paddle.git
# step 2: 解压数据集%cd /home/aistudio/data/data64550 !tar -xf cityscapes.tar %cd /home/aistudio
# step 3: 训练# 注意:把configs目录下的HRNet_W48_cityscapes_1024x512_60k中数据集目录更换为自己的数据集目录,如:dataset_root: /home/aistudio/data/data64550/cityscapes%cd /home/aistudio/contrast_seg_paddle !python train.py --config configs/HRNet_W48_cityscapes_1024x512_60k.yml --do_eval --use_vdl --log_iter 100 --save_interval 1000 --save_dir output
# step 4: 验证# 注意:由于训练好的参数文件太大,请移步github(https://hub.fastgit.org/justld/contrast_seg_paddle.git)从百度云下载权重文件,并把model_path更换为自己的参数路径%cd /home/aistudio/contrast_seg_paddle !python val.py --config configs/HRNet_W48_cityscapes_1024x512_60k.yml --model_path output/best_model/model.pdparams
以上就是基于PPSeg框架的HRNet_W48_Contrast复现的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号