@[TOC}
论文:《Self-Correction for Human Parsing》
github:https://github.com/GoGoDuck912/Self-Correction-Human-Parsing
问题:
数据标定中难免出现噪声,因为两个分割边界边界不清晰;
解决:
作者提出SCHP,逐步提高监督标签及学习到模型的可靠性;
使用不准确标注训练的模型进行初始化;设计循环学习机制推理更可靠伪标签,利用上次迭代优化模型进行聚合当前学习到的模型;
在CVPR2019 LIP Challenge取得第一名
作者贡献主要有以下三点:
1、提出SCHP;
2、提出通用结构A-CE2P;
3、在两个人体解析数据集充分证明SCHP效果;.
CE2P包括三部分:解析分支、边缘分支、融合分支;
边缘分支用于生成类别无关边界图;
融合分支将解析分支的关注分割的特征与边缘分支关注边界的特征进行concat,进一步生成精细化人体解析预测;
缺点:
- 使用交叉熵损失函数间接优化mIoU;
- CE2P仅通过特征级融合,潜在利用边缘预测及解析结果,没有限制解析结果与边界预测具有相同shape;
本文提出A-CE2P结构如图2,解析分支分为backbone模块、上下文编码模块(特征金字塔网络)、解码模块。
目标损失函数:
解析损失函数如式2,包括分类损失及miou损失,分类损失如式1,其中N为像素数量,K为类别数量,
y
~
tilde y
y~为真值,
y
y
y为预测结果;
一致性损失如式3,确保边界分支预测的边界map与解析结果边界一致,仅使用正样本进行监督,其中
e
e
e为边缘分支生成的边缘map,
e
~
tilde e
e~为根据解析分支预测结果
y
y
y所生成边缘map;
整体损失如式4,
SCHP结构如图3所示,
学习率变化公式如式5,
模型融合公式如式6;
模型更新后,
- 训练集推理一遍进行估计BN层均值、方差;
- 更新训练集真值标签,更新公式如式7;
SCHP整个算法流程如下所示,其中初始化训练100epoch,M=5,T=10,共150epoch。
- SCHP基于软标签方法可用于分类分割任务,但无法用于回归任务;
- 在相对干净数据集,也可获得更好性能及泛化性;得益于伪标签可用于发掘暗知识;
- 本文方法也可用于半监督学习,使用无标注测试集与训练集联合训练;
如表1,在LIP数据集,SCHP性能(mIoU)超越SOTA6.26%,尤其在少样本类别及易混淆类别提升明显,归因于模型聚合以及标签精细化;
如表2,在PASCAL数据集,SCHP超越DPC;
图5a表示测试在不同backbone下,使用SCHP前后效果,图5b表示测试不同上下文编码模块鲁棒性;
表3作者比较不同损失函数影响,IoU loss提升明显;
表4作者比较模型聚合及标签精细化影响,仅使用MA提升1.1个点,仅使用Lr提升0.6个点;
图6展示不同训练周期性能变换曲线,由于BN层均值方差更新导致,起始性能存在差异;
作者提出一种有效自纠正机制处理标签噪声,达到SOTA,且为通用策略,可用于任意框架提升性能;
未来将拓展到多人人体解析及视频多人人体解析领域。