CascadePSP:Toward Class-Agnostic and Very High-Resolution Segmentation via Global and Local Refinement
一种通用的级联分割细化模型,它可以细化任何给定的输入分割,在不进行微调的情况下提高现有分割模型的性能
什么是 CascadePSP?
- 一种通用的级联分割细化模型,它可以细化任何给定的输入分割,在不进行微调的情况下提高现有分割模型的性能,
- 具体来说,模型的输入是原始高分辨率图像和其在其他网络上输出的粗分割结果,模型的输出是精细化的分割结果
CascadePSP的网络结构?
- 主要思路: 将输入图片缩小及其他网络上的粗略分割结果送Global Step 全局网络,得到全局的分割结果;然后将输入图片分成多个小块,将每个小块和对应的分割mask 送入Local Step 局部网络,输出精细化结果
- 全局网络、局部网络均CascadePSP的细化模块(RM) 组成,其输入是上一阶段的分割结果(多个尺寸的分割结果),输出是多个尺寸的分割结果(OS8, OS4, OS1)
- Global Step全局网络: 输入是 resize后的原图和初始的mask,输出“全局优化分割结果”,
- Local Step局部网络: 输入是原图的crop部分和对应的mask,输出“全局优化分割结果”的所有局部 , 为了避免边界伪影,作者将OS1的每一侧都切掉16个像素(图像边框除外)
- 合并所有的局部精细化结果 ,得到最终的精细化结果 ,拼合时,由于图像有重叠,因此重叠部分采取所有像素点平均值;如果缺少某些像素点,那么这些位置使用全局步骤输出的S11来替代
如何认识CascadePSP的细化模块(RM)?
- 细化模块(RM)采用一幅图像和多个不同尺度的不完美分割掩模来生成细化的分割,使金字塔池化模块(Pyramid Pooling Module,PPM)捕获多尺度特征
- 输入:所有低分辨率的输入分段都被双线性向上采样到相同的大小,并与RGB图像连接后作为输入
- 输出:3种等级的优化分割结果OS8,OS4,OS1
CascadePSP的损失函数?
- CascadePSP的损失只要指的CascadePSP的细化模块(RM) 3个输出OS8、OS4、OS1的损失
- 对于较粗糙的OS 8,使交叉熵损失(CrossEntropyLoss),对于较精细的OS 1,使绝对值损失(L1Loss)平方损失(MSELoss/L2Loss),对于OS 4,使用交叉熵和L1 + L2损失的平均值
- 为了进行更好的边界细化,在 OS 1上还采用了分段梯度幅度上的 L1损失。分割梯度由一个3×3均值滤波器和 Sobel 算子组成, fm (.)表示3×3均值滤波器,∇表示由 Sobel 算子近似的梯度算子,由于梯度与像素级损失相比更稀疏,我们用α来衡量它,实验中被设置为5
- 总损失
什么是CascadePSP的Global Step?
- 全局指将原图缩小,这样上下文信息还在,只是损失了细节
- 输入是缩放的原图+缩放的粗分割图,输出是2种全局优化分割结果图OS4,OS1
- 采用3级级联的结构,原图I大小为WxH,将其按下图公式缩放为x大小,粗分割图S也做相同处理
- 级联结构 1:将 I 和 S* 3 共 4 张图作为 RM 结构的输入,得到 OS8 的优化结果
- 级联结构 2:将 I 和 S 和 1 中的输出 OS8* 2 作为 RM 的输入,得到新的 OS8 和 OS4 的优化结果
- 级联结构3:将I和S和新的OS8,OS4作为RM的输入,得到新的OS4和OS1的优化结果
什么是CascadePSP的Local Step?
- 局部指将原图裁剪,这样没有损失细节,但是缺失了上下文信息
- 输入:原图和全局步骤的2个输出S4、S1,输出是最终的优化结果OS1
- 采用2级级联的结构,原图I大小为WxH,S4和S1都上采样(双线性插值)到WxH的大小,然后将输入的3张图都裁剪出LxL的图像大小
- 级联结构 1:将 I 和 S1 和 s4* 2 共 4 张图对应裁剪出 LxL 大小,作为 RM 结构的输入,得到 OS8 和 OS4 的优化结果
- 级联结构2:将裁剪的I,S11和1中的输出OS8,OS4作为RM的输入,得到OS1的优化结果
- 裁切规则
- 裁剪的图片大小为LxL,从原图左上角开始,以L//2-32的步幅移动进行裁剪
- 超出图像边界的无效裁剪被移动,以与图像的最后一列(行)对齐
- 保证裁剪后的图像没有重复的,保证裁剪后的图像不会出现大多数像素只有前景或背景
CascadePSP中Global Step与Local Step的消融实验比较?
- 可知,Global Step对整体及局部进行了优化,且局部优化对mIoU的影响很小,对mBA的影响较大
CascadePSP进行Local Step时,裁切的尺寸如何确定?
- GPU内存使用仅与L大小有关,而跟需优化的图像的分辨率无关,因为融合步骤可以在CPU上容易的执行
- 上图是使用不同L时GPU内存使用和优化质量mBA的关系,作者选择取L=900,来平衡精度和性能之间的关系
CascadePSP论文中,不同的输入分辨率对mBA的影响?
- 对于不同图像大小的输入,使用局部步骤与否对mBA影响不同。在测试图像max(H,W)大于900时,缺少局部步骤后mBA没有提高
- 因此,当输入图像分辨率低时,可只使用全局步骤,而对于分辨率高的图像,需使用全局+局部步骤
什么是平均边界精度度量 (mBA)?
- 对于不同大小图像的一个边界准确度的稳健估计
- 3, w+h/300]中以均匀间隔取5个值,作为半径。以图像的前景目标的边界的每个像素点为圆心,计算每个半径内的分割精度,然后平均这些值
CascadePSP如何做到掩码循环输入到网络中?
- 通过神经网络的级联拼接实现
CascadePSP论文中循环输入的终止条件是?
- 神经网络使用优化方法,不断减少精细化的误差,直到满意