本文是论文《Weakly Supervised Silhouette-based Semantic Scene Change Detection》的阅读笔记。
文章提出了一个新颖的弱监督语义场景变化检测的模型,将任务分为变化检测和语义提取两部分。并在孪生神经网络中引入了相关层(correlation layer),以及创造了一个新的语义变化检测的数据集。
一、相关工作
语义场景变化检测任务就是检测并标注每种场景变化的种类,一种方法是直接对比像素级语义分割的结果,另一种是直接对比物体检测的结果。该任务有两个挑战:相比于卫星图像,车载图像的视角变化通常较大,这导致了估计误差。此外,该任务需要大尺度的训练数据集,而这通常是很消耗人力的。
主要有两种基于深度学习的变化检测方法,一种是patch相似性估计,另一种是像素级分割。patch相似性估计应用在变化检测,特征、图像匹配问题中;像素级变化检测应用在anomaly检测、背景剥离、移动物体检测等问题中。
不同变换类型的对比表和图。
二、方法和网络结构
文章提出的模型包含两个CNN,一个相关孪生变化检测网络(correlated siamese change detection network, CSCDNet),另一个是基于轮廓的语义变化检测网络(sihouette-based semantic change detection network, SSCDNet)。
CSCDNet和SSCDNet的输入输出和训练情况图。
1. CSCDNet
为了解决相机视角不同带来的估计误差,文章提出了一个新的引入了相关层的孪生神经网络结构,称为CSCDNet,使用变化检测数据集来进行训练,CSCDNet以一个图像对作为输入,输出一个变化概率掩模(change probability mask),即每个像素的变化概率图。此外对输入的变化掩模进行了数据增强。
使用用ImageNet数据集进行预训练的ResNet-18作为CSCDNet的编码器,每个编码器提取的特征图与每个解码器的输出进行合并,并喂入到解码器的下一层中。
在孪生神经网络中插入了关联层以获取光流估计和进行场景匹配。CSCDNet的输入的图像对的像素会首先归一化到[-1, 1]。CSCDNet输出的变化掩模和ground truth之间来计算一个像素级的二值交叉熵损失:
L
c
=
−
∑
x
t
(
x
)
ln
(
p
c
(
x
)
)
+
(
1
−
t
(
x
)
)
ln
(
1
−
p
c
(
x
)
)
\mathcal{L}_{c}=-\sum_{\mathbf{x}} t(\mathbf{x}) \ln \left(p_{c}(\mathbf{x})\right)+(1-t(\mathbf{x})) \ln \left(1-p_{c}(\mathbf{x})\right)
Lc=−x∑t(x)ln(pc(x))+(1−t(x))ln(1−pc(x))
其中
x
,
t
(
x
)
,
p
c
(
x
)
x, t(x), p_c(x)
x,t(x),pc(x)分别表示输出变化掩模的像素坐标、ground truth、使用像素级softmax对变化掩模做的预测结果图。
2. SSCDNet
SSCDNet使用从语义图像分割数据集合成的数据集进行训练,以输入图像对和估计的变化掩模作为SSCDNet的输入,并估计两个输入图像像素级的语义标签,及它们之间的关联。
SSCDNet的预测结果图。
SSCDNet在合成的数据集上的mIoU值表。
SSCDNet是基于U-Net和ResNet-18的结合的,其输入是7维的(2个三维图像和1个一维变化掩模),其损失函数为像素级交叉熵损失:
L
s
=
−
∑
x
∑
k
t
1
(
x
,
k
)
ln
(
p
1
(
x
,
k
)
)
+
t
2
(
x
,
k
)
ln
(
p
2
(
x
,
k
)
)
\mathcal{L}_{s}=-\sum_{\mathbf{x}} \sum_{k} t_{1}(\mathbf{x}, k) \ln \left(p_{1}(\mathbf{x}, k)\right)+t_{2}(\mathbf{x}, k) \ln \left(p_{2}(\mathbf{x}, k)\right)
Ls=−x∑k∑t1(x,k)ln(p1(x,k))+t2(x,k)ln(p2(x,k))
其中,k是类别的下标,一共有K类,
t
(
x
,
k
)
t(x,k)
t(x,k)表示1-k编码的ground truth,
p
(
x
,
k
)
p(x,k)
p(x,k)表示使用像素级softmax对输入特征图计算得到的预测。
3. CSSCDNet
为了进行对比,文章基于CSCDNet的结构提出了CSSCDNet,其损失函数和SSCDNet相同。
上图是上述三个不同网络的结构示意图
4. PSCD数据集
此外还创造了全景语义变化检测数据集PSCD。在生成数据集时,一种方式是真实感渲染,另一种是使用无标签的真是数据来学习一个可以提升模拟器真实性的模型,但是难以直接应用在真实场景图像中,此外还可以使用真实图像来合成,即使用复制、粘贴的方式来合成大的标注实例数据集。简单来说,有两种图片以及它们相应的标签图,从两张图中分别任取一类标签,将标签对应的图像部分进行合并,并将这两类标签进行合并。这样就生成了新的图像及其标签图。
合成数据集的步骤示意图。
三、实验
一共有三个实验,一是在PCD数据集上对CSCDNet的变化检测精度做的评估,二是在从Mapillary Vistas数据集生成的数据集上对SSCDNet的语义变化检测精度做的评估,三是将语义变化检测网络应用在PSCD数据集上。
实验中使用的数据集的详细情况。
上图是使用数据增强前后的SSCDNet结果对比图。数据增强包括膨胀、腐蚀、开运算和闭运算。
batch size为32,CSCDNet、SSCDNet、CSSCDNet分别迭代训练 3 × 1 0 4 3\times10^4 3×104、 1 × 1 0 5 1\times10^5 1×105和 1 × 1 0 5 1\times 10^5 1×105次,使用Adam优化器,学习率设为 2 × 1 0 − 4 2\times10^{-4} 2×10−4,并使用五折交叉验证进行训练。评价指标采用的是F1值和mIoU。
在TSUNAMI和GSV数据集上变化检测的F1值和mIoU值,其中Siamese-CSResNet表示没有相关层的CSCDNet。
在PSCD数据集上的语义场景变化检测结果图。
在PSCD数据集上语义场景变化检测的mIoU值。