Boost logo

Boost :

From: Mateusz Loskot (mateusz_at_[hidden])
Date: 2021-03-12 23:26:20


Hi,
1. Have you already contributed to GIL? What's your GitHub username?
2. I'd suggest to put your project in the context of current features,
what's in there, what is missing, what needs improvements, what you're
proposing, in/for GIL
3. Feel free to move the detailed discussion to GIL mailing list

Mateusz Loskot, mateusz_at_[hidden]
(Sent from mobile, may suffer from top-posting)

On Fri, 12 Mar 2021, 23:13 Gaurav kumar via Boost, <boost_at_[hidden]>
wrote:

> Hi,
> I am Gaurav Kumar; I have been working on the Boost.GIL library for the
> past month.
> I would like to work on the 2D convolution/Correlation project.
> The ideas for the project are as follows:
>
> 1. Separable Kernels <http://www.dspguide.com/ch24/3.htm>:
> Most of the standard kernels (e.g. Gaussian, Sobel) can be separated into
> 2 or more 1D filters.
> For a N x N kernel, separating it into two 1D filters,
> the number of computations required would now be proportional to 2*N
> instead of N*N for the naive implementation.
> This implementation would also favor code reusability as this would
> only require a kernel separating function and driver code for a group of 1D
> filters.
>
> 2. Generic Implementation for 2D convolution:
> There are more generic kernels that are non-separable (e.g. Laplacian
> operator).
> In this case, the naive approach has already been implemented.
> The main task would be to provide the same set of functions as in the
> 1D convolution/correlation implementation.
>
> One potential idea for optimization of 2D convolution is to use the Im2col
> <https://www.programmersought.com/article/6306124604/> operation,
> in which the input image is converted into a row of column vectors, where
> each column vector represents an image block for which
> convolution/correlation
> operation is to be performed.
> The kernel can also be flattened out in a similar manner, resulting in a 1D
> array.
> This results in the convolution operation being reduced to matrix
> multiplication,
> which can be handled efficiently by BLAS libraries
> <https://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms> (
> Boost.uBLAS ).
>
> Please share any suggestions you would have, related to the ideas
> presented above, or regarding 2D convolutions in general.
>
> I am looking for a mentor to guide me through this project.
>
> Best Regards,
> Gaurav Kumar
> Github handle: https://github.com/gkumar28
>
> _______________________________________________
> Unsubscribe & other changes:
> http://lists.boost.org/mailman/listinfo.cgi/boost
>


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk