2D卷积是如何计算的?

信息处理 卷积 二维
2022-02-25 14:04:10

我希望在 FPGA 上实现 2D 卷积,因此需要了解它在实践中是如何计算的。我发现的主要困难显然有两种不同的方式展示了如何做到这一点。第一个是将内核中心定位到一个位置并计算重叠乘积的总和: http ://www.songho.ca/dsp/convolution/convolution2d_example.html
理解二维卷积操作中的索引

另一个涉及转移内核 https://www.allaboutcircuits.com/technical-articles/two-dimensional-convolution-in-image-processing/

那么方法是什么?或者也许它们在我不认识的方式上是等价的?

1个回答

从技术上讲,将内核移动到静止图像上方,或将图像移动到中心内核“下方”是等效的。这是因为核和图像的卷积是一个交换操作:

k1=k2=h(k1,k2)x(n1k1,n2k2)=k1=k2=x(k1,k2)h(n1k1,n2k2)

然而,这假设无限扩展等。它是否可以轻松地用于对 FPGA 进行编程是一个不同的话题。