I am sure this question must be fairly easy and could have been answered on this site but perhaps I am not finding the right keywords to search for it.
I would like to know what are the common techniques to estimate an image filter from a set of input (unfiltered) and post-filtered images. From a machine learning point of view, this seems easy to do under some assumptions and constraints. Assuming the filters are linear, we might have to estimate the parameters of a convolution kernel using an optimization algorithm such as gradient descent. A similar approach may be done for non-linear kernels assuming a suitable non-linear model. However, I have still not found lots of literature discussing this.
As such, my questions are the following: How I can perform this operation in practice, how it is typically referenced in the image processing literature, and where can I find more information about it?