【OBIA】ESCNet:基于超像素分割的端到端遥感影像变化检测方法
作者: @深蓝星河居士 (已授权转载)
链接: https:// zhuanlan.zhihu.com/p/61 2449779
点击关注 @LiteAI ,跟进最新Efficient AI & 边缘AI & 模型轻量化技术,跟进最新DL & CV技术。
ESCNet: An End-to-End Superpixel-Enhanced Change Detection Network for Very-High-Resolution Remote Sensing Images
来源:IEEE Transactions on Neural Networks and Learning Systems
代码地址: https:// github.com/Bobholamovic /ESCNet
这篇文章的亮点在于将面向对象图像分析(OBIA,Object Based Image Analysis)集成到了深层神经网络的端到端流程中,让超像素分割有可能从下游任务(变化检测)的信息反馈中获得改进,二者不再割裂。
方法
本文提出了一种结合超像素分割进行变化检测的神经网络算法,命名为ESCNet,算法设计如下图所示。
图中SSN全称为Superpixel Sampling Networks,是发表于ECCV 2018的一种用于超像素分割的卷积神经网络,其输入为图像Lab颜色,输出为像素-超像素关联矩阵Q和图像经卷积网络处理后的特征图。
本文作者利用SSN对两期输入影像进行超像素分割,得到两个像素-超像素关联矩阵 Q_1 、 Q_2 , 以及两期影像的特征图 X_{pix1} 和 X_{pix2} 。 X_{pix1} 和 X_{pix2} 作为输入传入后续的变化检测网络CD Network,该网络会输出一组多层级特征: X_1 、 X_2 、 X_3 、 X_4 。接下来作者利用 Q_1 、 Q_2 将 X_4 从像素级特征转换为超像素特征,即对每个超像素内的像素特征求均值,得到 X_{sp1} 和 X_{sp2} ,二者相加得到 X_{sp} 。
从像素级特征生成超像素特征即为超像素化,该过程在保留明显地物边界的同时抑制了像素级表示的噪声,有助于提升模型精度。在此基础上,作者进一步引入了一种自适应超像素合并模块,即图中的ASM(Adaptive Superpixel Merging),该模块用于合并在特征空间下相似的超像素块以减少过分割造成的负面影响,提升同类地物不同超像素块间的特征一致性。ASM运行耗时巨大,该模块在ESCNet中是可选的。
在得到 X_{sp} 后,在其上通过一层卷积层和Softmax归一化可以得到 Prob_{sp} ,即超像素层面的变化检测输出。将 Prob_{sp} 二值化会可以得到变化图斑,但由此得到的变化图斑边缘并不准确,这是因为超像素虽然滤除了像素级特征的噪声,但同时也丢失了细节,因此 Prob_{sp} 不能直接作为变化检测结果。
为了恢复变化检测细节,作者引入了Pixel-level refinement, 该模块将 X_1 、 X_2 、 X_3 、 X_4 分别与 X_{sp} 在通道维拼接,经卷积处理后再将4个拼接后的特征相加,最后再经过两层卷积得到 Prob_{out} ,二值化后即为最终的变化检测结果。
以上就是ESCNet的整体工作流程,下面详细说明各部分的算法原理。
SSN (Superpixel Sampling Network)
SSN将深度学习应用于超像素分割,发表于ECCV 2018。该方法通过一个卷积神经网络提取图像特征,并且提出了一种可微分的SLIC算法在卷积网络输出的特征上进行像素聚类,生成超像素块。该算法的输出为一个关联矩阵 Q ,形状为 N \times M (N为像素数,M为超像素数),描述了每个像素和超像素块的隶属关系,矩阵各元素取值介于0到1之间,即soft-association,对其取argmax可以得到硬化后的关联矩阵。除关联矩阵 Q_1 、 Q_2 外,SSN在计算过程中生成的中间特征 X_{pix1} 和 X_{pix2} 也会被取出作为后续变化检测网络的输入。SSN的算法细节在此不再赘述,我在后续文章中会详细分析。
变化检测网络(CD Network)
作者使用了一个具有类Unet结构的孪生网络从两期影像的图像特征上估计变化区域,文章中作者没有指定该网络的名字,代码中命名为SiamUnet_diff。该网络是一个全卷积网络,通过权重共享的编码器分别从两期影像特征上生成特征图,编码部分共包含4个层级,特征图尺寸按2倍递减,分别为输入尺寸的1倍、 \frac{1}{2} 、 \frac{1}{4} 、 \frac{1}{8} 。与编码器相对应的,解码器也包含4个层级,通过转置卷积恢复特征图尺寸,每个层级下解码模块的输入为对应层级两期影像编码特征之差以及上一层级解码器输出。对于最深层的解码模块,没有更上层的解码输出,这种情况下用第二期影像的编码特征经2倍池化后作为替代。4个层级下的解码输出都会保留下来,对应算法设计图中的 X_1 到 X_4 ,其中 X_4 尺寸最大,其余按顺序递减, X_1 尺寸为 X_4 的 \frac{1}{8} 。
超像素化(Superpixelation)
利用SSN生成的像素-超像素关联矩阵可以将像素级特征转换到超像素特征,反之亦然。在不引入ASM的情况下,对 X_4 进行如下处理:
X_{sp1}=\tilde{Q}_1{\hat{Q}_1}^\top{X_4}
X_{sp2}=\tilde{Q}_2{\hat{Q}_2}^\top{X_4}
式中 Q_1 、 Q_2 分别为两期影像经SSN处理后得到的关联矩阵, \tilde{Q} 为行归一化后的关联矩阵, \hat{Q} 为列归一化后的关联矩阵。 {\hat{Q}_1}^\top{X_4} 得到在第一期影像上的超像素特征,再左乘 \tilde{Q}_1 即将超像素再次转换到像素特征。由于关联矩阵中像素数N小于超像素数M, X_{sp1} 与 X_4 并不等同,前者是后者特征的平均,这导致了一部分信息丢失,但同时也抑制了像素级特征中的噪声干扰。对第二期影像做类似的超像素化操作可得 X_{sp2} ,将 X_{sp1} 与 X_{sp2} 逐元素相加即得融合两期影像信息的超像素特征 X_{sp} ,即:
X_{sp}=X_{sp1}+X_{sp2}
ASM(Adaptive Superpixel Merging)
SSN使用了类似SLIC的初始化方法和聚类原理,需要人为设置超像素块数量,该值决定了超像素块大小,设置过大会产生过于细碎的分割结果,设置过小则可能丢失有用的边界信息。ESCNet设置了比较大的超像素数量,可能导致过分割,为此作者提出了ASM模块用于超像素块合并。ASM尝试拉近相似超像素块在特征空间的距离,而不改变超像素块的数量,这保证了ESCNet的端到端特性。
记超像素块i的特征表示为 S_i ,超像素之间的相似矩阵为A,共有M个超像素块,则A是一个 {M}\times{M} 的对称矩阵,A中各元素按下式计算:
A_{ij}=e^{-\frac{{\|F_i-F_j\|}^2}{\omega^2}} , \omega=\alpha M
式中 A_{ij} 为超像素块和的相似度,其值介于0到1之间, F_i 和 F_j 分别为两个超像素块在特征空间F中的表示。 \alpha 为尺度系数,实验中取值为0.01,M是超像素块数量。注意 F_i 和 F_j 仅被用于计算超像素块之间的相似度,其与超像素块的特征表示 S_i 和 S_j 可相同也可不相同。
对于超像素块i,通过下式更新其值:
{S}_i^*=\frac{\sum_{j=1}{M}{n_jA_{ij}S_j}}{\sum_{j=1}^{M}{n_jA_{ij}}}
式中 {S}_i^* 为更新后的超像素块在特征空间S中的表示, n_j 超像素块j中的像素数,从式中可以看出,所有超像素块均参与了 {S}_i^* 的计算,各块的贡献度由相似矩阵A决定。作者通过对关联矩阵Q按列求和得到每个超像素块中的像素数,由于Q是soft-association, n_j 并非整数。
上式可进一步以矩阵形式表达为:
{S}^*=\hat{Q^*}^\top I
式中为图像像素特征,即Lab颜色空间下的像素值, Q^*=QA , \hat{Q^*} 为列归一化的 Q^* ,这里的推导过程详见原文13到18式。由 Q^* 的定义可以看出,ASM模块利用超像素块之间的相关性重塑了像素-超像素关联关系。
在上文所述ASM计算过程中,引入F仅是为了说明超像素块的相似度度量可以与其特征表示不同,当然, F 也完全可以与 S 是相同的。论文中F取SSN输出的像素级特征 X_{pix1} 、 X_{pix2} 经转换得到的超像素特征, S 为 X_4 。另外,算法设计图中ASM只画了一处,但实际上是在 X_{pix1} 、 X_{pix2} 上分别用 Q_1 、 Q_2 在 X_4 上运行了两遍ASM,产生了两组超像素特征,这两组特征相加得到 X_{sp} 。
细节恢复(Pixel-Level Refinement)
在 X_{sp} 上经一层卷积和Softmax可得到粗略的变化区域,即算法设计图中的 Prob_{sp} 。由于 X_{sp} 是超像素特征,一个超像素块中可能同时包含变化和不变像素,即变化图斑的边界不一定与两期影像上的超像素边界重合,这导致 Prob_{sp} 精准度有限,表现为二值化后的变化图斑边缘不准确以及无法判识细小变化区域。针对这种情况,作者引入了细节恢复模块,该模块将 X_1 、 X_2 、 X_3 、 X_4 经双线性插值采样到与 X_{sp} 同等尺寸,然后在通道维拼接,再经Conv-BN-ReLU后将所得结果逐元素相加,最后经两层卷积和Softmax得到 Prob_{out} 。对 Prob_{out} 取二值化即为最终的变化检测结果, Prob_{sb} 则用于计算辅助损失,即深层监督,帮助网络更好收敛。细节恢复模块示意图如下:
损失函数
① 加权交叉熵损失
L_{CE}(P,R)=\frac{1}{N} \sum_{p}[-{\omega_c}{R_p}{log(p_p)} - {\omega_u}{1-R_p}{log(1-P_p}]
式中 P 为算法估计的变化图, R 为变化检测真值, P 是像素代号, \omega_c 和 \omega_u 分别为变化和不变类的权重。
② 重建损失
L_{rec}(Q,R)=L_{CE}(\hat{Q} \tilde{Q}^\top R, R)
③ 紧致度损失
L_{cpt}(Q,I)=\|I^{xy} - \bar{I}^{xy}\|_2
式中 I^{xy} 为图像像素位置, \bar{I}^{xy} 为位置特征的超像素化,即将超像素的位置特征赋给与其关联度最大的像素,这实际上是一个硬化 Q 的过程,如下式所示:
S^{xy}=\hat{X}^\top I^{xy}
\bar{I}^{xy}=S_i^{xy}|H_p=i
H_p=\mathop{\arg\max}\limits_{i\in\{1,...,M\}}
总损失为上述几项之和,定义为:
L=L_{CE}(Prob_{out},R) + \lambda_1L_{CE}(Prob_{sp},R) + \lambda_2[L_{cpt}(Q1,X_{pix1}) + L_{cpt}(Q2,X_{pix2})] + \lambda3[L_{rec}(Q_1,R) + L_{rec}(Q_2,R)]
式中 \lambda_1 、 \lambda_2 、 \lambda_3 为权重,取值分别为0.5,0.01,0.1。
数据
作者在两组公开数据上进行了实验,第一组数据是Season-Varying CD(SVCD)数据集,包含11张遥感图像,分辨率为3-100厘米,实验中将影像切为256大小的小块,其中10000张小图用于训练,3000张用于测试,每个小图至少包含1个变化像素。第二组数据是SZTAKI AirChange Benchmark Set (SZTAKI),分辨率为1.5米,该数据集体量较小,共包含3个子集,其中的两个被单独拿出来作为两个独立数据集用于算法评测。
实验和结果
- 方法对比
为验证ESCNet的有效性,作者将其与CDNet、FC-EF等方法进行了对比,模型参数量对比如下图所示,ESCNet参数量处于中等水平。
下表为各模型在100张256大小图像上的预测耗时,ESCNet耗时明显高于其它方法,对比表中最后两列可以看出ASM耗时占比很高。ESCNet在设计上相比其它模型更为复杂,理论上的时间复杂度较高。此外,作者提到ESCNet代码没有针对运行效率进行特别优化,这也是导致推理耗时较高的原因。但ESCNet的精度更高,输出结果中False alarm更少,适用于对检测精度要求高而对实时性要求较低的场景。
SVCD数据集上各模型变化检测精度如下,表中ESCNet-w/o-ASM和ESCNet均设置超像素数为256,前者不使用ASM模块,ESCNet-400是指设置超像素数为400。
下图展示了不同模型在SVCD数据集上的变化检测结果:
2. ASM模块的作用
下图各列分别为(a)第二期影像( Image_2 ),(b) X_4 ,(c) X_{sp2} ,无ASM,(d) X_{sp2} ,有ASM。无ASM的超像素化减弱了同类地物内的异质性,但同时由于过分割也使一些大型物体不易被识别。ASM加强了同一地物内不同超像素的一致性,突出了不同地物间的边界和几何形状。
作者还对比了ESCNet和ESCNet-w/o-ASM(去掉ASM模块)在不同超像素数量下的表现。训练阶段统一设置超像素数量为256,预测时则在25到1024之间取不同值进行对比,模型对比结果如下表所示,表中精度指标为 F_1 。
从上表可以看到,过大或过小的超像素数量都会降低预测精度,引入ASM降低了模型对超像素数的敏感度,也就是提高了模型的鲁棒性。我认为从变化检测精度上看,引入ASM对模型有提升,但差异不是特别明显,这可能与数据集难度有关,如果换用更大、更难的数据集也许可以获得更显著的提升。
3. 消融实验
本文在四组配置下进行了消融实验,验证了超像素化、细节恢复、深层监督(即在 Prob_{sp} 上计算损失)的作用,算法配置如下表所列,为节省时间,所有配置下均没有使用ASM。
各配置下的变化检测精度如下表所示:
下图展示了在示例数据上不同算法配置下的变化检测结果,图中(a)、(b)列分别为第一期和第二期影像,叠加其上的白色网格为超像素结果,用红色标出的部分为存在变化像素的超像素块,(c)列为变化检测真值。
(d)列去掉了细分恢复模块,仅从 Prob_{sp} 上得到变化图斑。图中第一行变化区域为道路,呈细长条状,超像素分割难度很大,算法生成的超像素块中前景(道路)和背景(非道路)混杂在一起,导致了严重的漏提。第二、第三行的变化图斑边缘总体走向与真值一致,但明显过于粗糙,说明仅使用超像素特征难以识别精细的变化轮廓。
(e)列为去掉超像素化后ESCNet的输出结果,对比(d)列,可以看出变化图斑与真值明显更为贴合,而且第一组示例中的道路也可以识别到。但仅使用像素特征也导致了多处误提,变化检测结果中存在大量细碎斑块。
(f)列去掉了深层监督模块,变化检测结果已明显优于(d)和(e),只是与(g)列相比稍逊一筹。
(g)列是无ASM的ESCNet,由于消融实验中算法均没有使用ASM,因此(g)可以说是完整的ESCNet,其提取效果最好。
4. SSN和CD Network端到端训练
ESCNet中SSN和后续的CD Network可以分开训练也可以集成在一起进行端到端训练,作者通过对比实验验证了超像素分割和下游任务联合训练的优势,实验结果如下表所示。表中ESCNet-RGB为用图像RGB特征替换 X_{pix1} 、 X_{pix2} 作为CD Network的输入,ESCNet-scaled-Lab则将 X_{pix1} 、 X_{pix2} 替换为Lab特征,这二者都不再使用SSN生成的图像特征进行变化检测,但仍依赖关联矩阵Q进行超像素化。ESCNet-detach则彻底切断了SSN和CD Network之间的梯度传递,ESCNet-w/o-ASM是不使用ASM的ESCNet。
结论
文末作者总结了ESCNet的创新点和优势,列在此处:与之前的诸多方法不同,ESCNet没有将超像素分割与后续的深层卷积网络割裂开,保证了二者之间的梯度传递;使用超像素化可以优化像素特征;所提出的ASM模块可以降低初始参数的设置对超像素结果的影响,使模型更健壮;细节恢复模块可以生成更准确的变化图斑边缘。这篇文章我觉得很有启发性,工作也很扎实,略有不足的是实验数据偏少,如果能在更大、更复杂的数据集上验证所提出的方法将更有说服力。