循环卷积和线性卷积有什么区别?我什么时候会选择其中之一?在图像处理中,过滤器应用于带有掩码的图像,我应该选择哪种类型的卷积?
圆形和线性卷积
信息处理
图像处理
卷积
2022-01-05 23:14:25
2个回答
如果您有一个数据向量,它由元素,那么线性卷积会按顺序对它们进行运算,从开始,以结束。
想象一下,数据向量由一张纸条表示,其中个元素按顺序书写。的位置)与开头(写入d_1的位置)接触,将纸条形成一个圆圈。卷积即循环卷积。在实践中,线性卷积和循环卷积几乎相同,区别发生在线性卷积的开始和结束。在线性卷积中,您假设数据前后都有零(即我们假设“ ”和“ ”为0),而在循环卷积中,我们将数据包装成周期性的(即“ "和“ ”等于)。
同样的原则也适用于多维数组。对于线性卷积,每个轴都有明确的起点和终点,前后均假设为零。对于循环卷积,数据在每个轴上环绕。
When would I choose one over the other?
除了一些非常罕见的例外,我们不会“选择”循环卷积。我们几乎总是想要线性卷积。循环卷积的出现如此之多的原因是因为通过 FFT(FFT、乘法、逆 FFT)进行的卷积是循环卷积,而不是线性的。
当您在图像中实现卷积时,您必须注意边界值,因为在某些时候您的卷积掩码会“脱离”图像进行处理。根据您填充缺失值的方式,将确定您是否实现循环卷积:
- 如果你用 0 填充缺失值,那么你将留在线性卷积中
- 如果您按周期性填充缺失值,那么您可能会使用循环卷积。
请注意,如果您在傅里叶域中实现卷积,那么除了循环卷积之外别无选择,因为 FFT 算法会隐式地对您的图像进行周期化。
- 编辑 -
卷积通常在傅立叶域(=> 循环卷积)中实现,因为由于 FFT 算法,它在大多数情况下明显更快。存在快速线性卷积算法,但通常保留给可分离内核情况,您可以分别水平和垂直过滤图像,这也比简单的 2D 实现产生更少的操作。
其它你可能感兴趣的问题