在 FFT2D 论文中
在图 1 和图 2 中指出:
假设图像大于卷积核,实际中通常是这种情况,卷积核需要根据图 1 扩大到图像大小并进行填充。如图 2 和图 3 所示(见下文),带有扩展核的循环卷积等价于带有初始卷积核的循环卷积。
如果我对一个元素执行内核和图像之间的卷积,并尝试在扩展内核和同一元素的图像之间执行卷积,它会产生不同的结果。
我在某处读到“循环卷积”与经典的“卷积”相同,这是正确的吗?否则我应该如何解释这个?
在 FFT2D 论文中
在图 1 和图 2 中指出:
假设图像大于卷积核,实际中通常是这种情况,卷积核需要根据图 1 扩大到图像大小并进行填充。如图 2 和图 3 所示(见下文),带有扩展核的循环卷积等价于带有初始卷积核的循环卷积。
如果我对一个元素执行内核和图像之间的卷积,并尝试在扩展内核和同一元素的图像之间执行卷积,它会产生不同的结果。
我在某处读到“循环卷积”与经典的“卷积”相同,这是正确的吗?否则我应该如何解释这个?
不,循环卷积,也称为循环卷积,与常规卷积不同。内核在循环卷积中“环绕”。
举个x=[1 2 3 4 5]
例子h=[1 2 3]
:
首先,您翻转h
并用零填充:h'=[0 0 3 2 1]
. 然后为了得到第一个元素,你做通常的点积:
(x*h)[0] = 0*1 + 0*2 + 3*3 + 2*4 + 1*5
要获得第二个元素,您将内核移动一个并再次点:
(x*h)[1] = 0*1 + 1*2 + 2*3 + 3*4 + 0*5
与第三个相同。但是,要获得第四个,内核会环绕,因此您会得到:
(x*h)[3] = 2*1 + 3*2 + 0*3 + 0*4 + 1*5