<Change is Everywhere: Single-Temporal Supervised Object Change Detection in Remote Sensing Imagery>

阅读笔记


这是iccv2021的一篇关于遥感影像变化检测的论文。变化检测要求指出同一地方不同时刻(paired)的变化区域,即公式1。目前的方法通常使用双时相数据(paried bitemporal images)进行监督学习(图1a),本文提出一种使用单时相数据的方法进行监督训练(图1b),即训练时使用不同区域的图片(unpaired single-temporal images)。这样,需要的工作是如何从unpaired images 中构造监督信号用于训练。

在这里插入图片描述
图1

min ⁡ θ L ( F θ ( X t 1 , X t 2 ) , Y t 1 → t 2 )      ( 1 ) \min _{\theta} \mathcal{L}\left(\mathbf{F}_{\theta}\left(\mathbf{X}^{t_{1}}, \mathbf{X}^{t_{2}}\right), \mathbf{Y}^{t_{1} \rightarrow t_{2}}\right) \ \ \ \ (1) θminL(Fθ(Xt1,Xt2),Yt1t2)    (1)
变化检测一个直接的思路是:使用图像分割算法对双时相图片检测出感兴趣的区域(如建筑),再进行对比得到变化区域,同时取消paried的约束,即公式2。但这种方式就单纯依赖图像分割算法。
min ⁡ θ L ( F θ ( X i , X j ) ,  compare  ( Y i , Y j ) )      ( 2 ) \min _{\theta} \mathcal{L}\left(\mathbf{F}_{\theta}\left(\mathbf{X}^{i}, \mathbf{X}^{j}\right), \text { compare }\left(\mathbf{Y}^{i}, \mathbf{Y}^{j}\right)\right) \ \ \ \ (2) θminL(Fθ(Xi,Xj), compare (Yi,Yj))    (2)
本文使用单时相图片构造伪双时相图片(pseudo bitemporal image),即公式3
min ⁡ θ L ( F θ ( X t 1 , π X t 1 ) , Y t 1 ⊕ π Y t 1 )      ( 3 ) \min _{\theta} \mathcal{L}\left(\mathbf{F}_{\theta}\left(\mathbf{X}^{t_{1}}, \pi \mathbf{X}^{t_{1}}\right), \mathbf{Y}^{t_{1}} \oplus \pi \mathbf{Y}^{t_{1}}\right) \ \ \ \ (3) θminL(Fθ(Xt1,πXt1),Yt1πYt1)    (3)
π \pi π是对batch 的索引变换,图2a,2b两列为同一组图片,但顺序不一样, π \pi π就是训练时对一组单时相图片打乱顺序。图2c是变化区域掩码,掩码由图2a与图2b的分割掩码异或得到。图2中一行就是一个训练样本。

在这里插入图片描述
图2
因为用到图像分割,所以训练损失有两部分,二元分割损失和变化检测损失,使用的都是二元交叉熵损失。
L = L seg  + L change       ( 4 ) \mathcal{L}=\mathcal{L}_{\text {seg }}+\mathcal{L}_{\text {change }} \ \ \ \ (4) L=Lseg +Lchange     (4)
L binary  ( p , y ) = − y log ⁡ ( p ) + ( 1 − y ) log ⁡ ( 1 − p )      ( 5 ) \mathcal{L}_{\text {binary }}(p, y)=-y \log (p)+(1-y) \log (1-p) \ \ \ \ (5) Lbinary (p,y)=ylog(p)+(1y)log(1p)    (5)
因为变化区域在时间上是没有方向的,因此是一个对称损失,缓解过拟合问题。
L change  = 1 2 [ L b i n a r y ( F θ ( X t 1 , π X t 1 ) , Y t 1 ⊕ π Y t 1 ) + L b i n a r y ( F θ ( π X t 1 , X t 1 ) , Y t 1 ⊕ π Y t 1 ) ]      ( 6 ) \begin{aligned} \mathcal{L}_{\text {change }} &=\frac{1}{2}\left[\mathcal{L}_{\mathrm{binary}}\left(\mathbf{F}_{\theta}\left(\mathbf{X}^{t_{1}}, \pi \mathbf{X}^{t_{1}}\right), \mathbf{Y}^{t_{1}} \oplus \pi \mathbf{Y}^{t_{1}}\right)\right.\\ &\left.+\mathcal{L}_{\mathrm{binary}}\left(\mathbf{F}_{\theta}\left(\pi \mathbf{X}^{t_{1}}, \mathbf{X}^{t_{1}}\right), \mathbf{Y}^{t_{1}} \oplus \pi \mathbf{Y}^{t_{1}}\right)\right] \end{aligned} \ \ \ \ (6) Lchange =21[Lbinary(Fθ(Xt1,πXt1),Yt1πYt1)+Lbinary(Fθ(πXt1,Xt1),Yt1πYt1)]    (6)
整个方法的训练过程如图3
在这里插入图片描述
图3
实验部分主要与弱监督方法PCC对比,还有超参数的选择和消融实验。
最后是本文方法与使用图像分割对比的方法在训练时的收敛情况对比,如图4。((0, 40] epochs)时完分割比较的方法性能更好, ((40, 60] epochs)性能持平,之后 ,本文方法更好。说明该方法可以学习到额外的对比信息辅助变化检测。
在这里插入图片描述
图4

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
Qt是一种广泛使用的跨平台应用程序框架。本文将介绍如何在Ubuntu 18.04上交叉编译Qt 5.12.7的详细教程。 第一步是安装必要的依赖项。打开终端并输入以下命令: sudo apt-get update sudo apt-get install build-essential perl python git p7zip-full 接下来,你需要安装交叉编译工具链。在此示例中,我们将以ARM Cortex-A7为目标平台。 sudo apt-get install g++-arm-linux-gnueabihf libc6-armhf-cross-armel-cross binutils-arm-linux-gnueabihf 然后,创建一个新的目录并切换到该目录中,然后从Qt官方网站上下载最新的Qt源代码: mkdir qt-cross-compile && cd qt-cross-compile wget https://download.qt.io/archive/qt/5.12/5.12.7/single/qt-everywhere-src-5.12.7.tar.xz tar xvf qt-everywhere-src-5.12.7.tar.xz 接下来,创建一个称为“qt5-armhf.conf”的新文件,需要根据目标平台进行相应的更改: cd qt-everywhere-src-5.12.7/qtbase/mkspecs cp -r linux-arm-gnueabi-g++/ qt5-armhf cd qt5-armhf vi qmake.conf 确保以下行已正确配置: 将“QMAKE_CFLAGS”和“QMAKE_CXXFLAGS”修改为: QMAKE_CFLAGS = -march=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard --sysroot=/usr/arm-linux-gnueabihf/ QMAKE_CXXFLAGS = $$QMAKE_CFLAGS 对于“QMAKE_LINK”和“QMAKE_LINK_SHLIB”,添加以下行: QMAKE_LINK = arm-linux-gnueabihf-g++ QMAKE_LINK_SHLIB = $$QMAKE_LINK 接下来,进入Qt源代码目录并构建一个交叉编译版本: cd ../../.. ./configure -prefix /opt/qt5-armhf -static -opensource -confirm-license -release -skip webengine -skip wayland -skip qtgamepad make -j4 接下来,安装Qt到目标目录: sudo make install 完成后,你可以在目标文件夹/opt/qt5-armhf找到已安装的Qt库。现在你可以使用Qt Creator或手动创建项目并在Ubuntu 18.04中进行交叉编译。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值