change_detection.pytorch icon indicating copy to clipboard operation
change_detection.pytorch copied to clipboard

两张影像的输入顺序不同会得到不同的结果?

Open swjtulinxi opened this issue 2 years ago • 7 comments

请问为啥,两张影像输入的先后顺序不同,结果基本不一样,变化检测不是孪生网络么,理论上不应该啊? 我参考了其他的变化检测项目代码,也是一样的情况

swjtulinxi avatar May 31 '22 05:05 swjtulinxi

因为网络整体并不是完全孪生或者对称的。如果你使用孪生的encoder_decoder,再用基于度量的方式去判别变化,得到的结果应该是一致的。或者,使用孪生的encoder + 共同的decoder,再使用“对称式”的融合方式(如距离),得到的结果应该也是一致的。

likyoo avatar May 31 '22 06:05 likyoo

为啥不是对称的, 比如你这个代码中的pspnet, 是将整个pspnet作为encoder, decoder 是将两个输入影像通过pspnet得到两个结果, 然后把它们concat,输入decoder。 再说距离方式,, SATNet网络就是度量方式, 如果影像输入顺序不同,得到的结果也不完全一致, 只是差别没有非度量方法的明显

swjtulinxi avatar May 31 '22 07:05 swjtulinxi

通常情况下,concat操作是有顺序的,因为通道有顺序,例如:

假设t1t2为3通道影像,空间尺寸相同;

  • concat(t1, t2)的结果中,0、1、2通道为t1数据,3、4、5通道为t2数据;
  • concat(t2, t1)的结果中,0、1、2通道为t2数据,3、4、5通道为t1数据。

BTW,ChangeMask论文中讨论了Temporal Symmetry对变化检测任务的影响。

Bobholamovic avatar May 31 '22 08:05 Bobholamovic

下不了这论文,可否提供一下pdf大佬, [email protected]

swjtulinxi avatar May 31 '22 09:05 swjtulinxi

下不了这论文,可否提供一下pdf大佬, [email protected]

已发送,请查收。如果问题解决了的话,麻烦关闭issue~

Bobholamovic avatar May 31 '22 09:05 Bobholamovic

感谢,在decoder的head处采用相加或者 两者相减取绝对值可以解决, 一直没想到原来是concat导致的

swjtulinxi avatar Jun 01 '22 00:06 swjtulinxi

请问有没有什么办法能够同时判断输出中哪些是新增,哪些是减少的呢

swjtulinxi avatar Jul 05 '22 02:07 swjtulinxi