前两个模块主要用于将不同分辨率下的分割结果进行整合,通过学习得到的残差先校正单独的分割结果;再通过习得的权重,对所有通道下的结果加权求和。而这一部分的作用则是进一步通过残差校正的方式,优化前两步融合得到的分割结果。
这个模块主要由一个残差结构、一个池化层和一个卷积层组成。其中,池化层加卷积层用来习得用于校正的残差。值得注意的是,RefineNet在这里用了一个比较巧妙的做法:用前一级的残差结果作为下一级的残差学习模块的输入,而非直接从校正后的分割结果上再重新习得一个独立的残差。
这样做的目的,RefineNet的作者是这样解释的:可以使得后面的模块在前面残差的基础上,继续深入学习,得到一个更好的残差校正结果。
最后,网络又经过一个一个RCU模块,平衡所有的权重,最终得到与输入空间尺寸相同的分割结果。