You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Is your feature request related to a problem? Please describe.
A 2D rank 1 kernel can be divided in to two 1D kernels. Using the mathematical equation of convolution, we can conclude that two 1D convolutions with separated kernels is equivalent to one 2D convolution with original kernel for the same image. Theoretically, separable convolution might provide better performance boost for the rank 1 kernel case of 2D convolution.
Describe the solution you'd like
DIP dialect should have support for separable convolution. This can be provided in two ways :
A separate API for separable convolution is created wherein the user provides both 1D kernels (Ref : sepFilter2D()).
DIP dialect can detect whether a 2D kernel is rank 1 and then obtain separable kernels using Gaussian elimination. Separable convolution will then be applied with obtained separable kernels. Note : This method will have an overhead associated with Gaussian elimination.
Additional context
I have mentioned 2 possible ways of implementing the said feature, novel methods are encouraged and we are open for discussion.
The text was updated successfully, but these errors were encountered:
Is your feature request related to a problem? Please describe.
A 2D rank 1 kernel can be divided in to two 1D kernels. Using the mathematical equation of convolution, we can conclude that two 1D convolutions with separated kernels is equivalent to one 2D convolution with original kernel for the same image. Theoretically, separable convolution might provide better performance boost for the rank 1 kernel case of 2D convolution.
Describe the solution you'd like
DIP dialect should have support for separable convolution. This can be provided in two ways :
Additional context
I have mentioned 2 possible ways of implementing the said feature, novel methods are encouraged and we are open for discussion.
The text was updated successfully, but these errors were encountered: