change_detection.pytorch
change_detection.pytorch copied to clipboard
两张影像的输入顺序不同会得到不同的结果?
请问为啥,两张影像输入的先后顺序不同,结果基本不一样,变化检测不是孪生网络么,理论上不应该啊? 我参考了其他的变化检测项目代码,也是一样的情况
因为网络整体并不是完全孪生或者对称的。如果你使用孪生的encoder_decoder,再用基于度量的方式去判别变化,得到的结果应该是一致的。或者,使用孪生的encoder + 共同的decoder,再使用“对称式”的融合方式(如距离),得到的结果应该也是一致的。
为啥不是对称的, 比如你这个代码中的pspnet, 是将整个pspnet作为encoder, decoder 是将两个输入影像通过pspnet得到两个结果, 然后把它们concat,输入decoder。 再说距离方式,, SATNet网络就是度量方式, 如果影像输入顺序不同,得到的结果也不完全一致, 只是差别没有非度量方法的明显
通常情况下,concat操作是有顺序的,因为通道有顺序,例如:
假设t1
和t2
为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对变化检测任务的影响。
下不了这论文,可否提供一下pdf大佬, [email protected]
感谢,在decoder的head处采用相加或者 两者相减取绝对值可以解决, 一直没想到原来是concat导致的
请问有没有什么办法能够同时判断输出中哪些是新增,哪些是减少的呢