How convolution kernels are defined?
I am currently learning some of the kernels that can be used for image preprocessing. I can see that every kernel that we use have some predefined values for n*n matrix as stated in https://en.wikipedia.org/wiki/Kernel_(image_processing)
But what I wanted to understand is how are these kernels defined? Why we end up having values as stated in Wiki.
Please do help me in understanding this. Thank you in advance
image-processing computer-vision filtering convolution
|
show 2 more comments
I am currently learning some of the kernels that can be used for image preprocessing. I can see that every kernel that we use have some predefined values for n*n matrix as stated in https://en.wikipedia.org/wiki/Kernel_(image_processing)
But what I wanted to understand is how are these kernels defined? Why we end up having values as stated in Wiki.
Please do help me in understanding this. Thank you in advance
image-processing computer-vision filtering convolution
1
This is really a broad question. You can define millions of different convolution kernels, it is not possible to enumerate and explain them all. Understanding a convolution kernel requires understanding Fourier analysis, I recommend that you find a book about that. For example Oppenheim and Willsky is a solid choice.
– Cris Luengo
Nov 28 '18 at 6:31
yes Cris. I feel this as a broad question. So the kernel derived is not done using Convolution Neural network backpropagation ?
– SriHari SriHari.M
Nov 28 '18 at 7:00
1
Ha! Interesting! I didn't expect that point of view... :) No, typically convolution kernels are designed for their desired properties. In a CNN, you get kernels that are designed by back propagation, but those kernels are specific to one network, and trying to understand their properties would be futile.
– Cris Luengo
Nov 28 '18 at 7:05
2
A convolution can be designed in the frequency domain (f.i. lowpass filtering makes a blurring effect), but applied in the spatial domain via a convolution.
– Yves Daoust
Nov 28 '18 at 8:45
1
Yes, convolving an image with a kernel can be done in the Fourier domain by transforming both, multiplying them, then inverse transforming the product. Because of this relationship, the Fourier domain is a great way to analyze and design linear filters: there the simple multiplication is easy to understand, you see what happens to each individual frequency component.
– Cris Luengo
Nov 28 '18 at 13:39
|
show 2 more comments
I am currently learning some of the kernels that can be used for image preprocessing. I can see that every kernel that we use have some predefined values for n*n matrix as stated in https://en.wikipedia.org/wiki/Kernel_(image_processing)
But what I wanted to understand is how are these kernels defined? Why we end up having values as stated in Wiki.
Please do help me in understanding this. Thank you in advance
image-processing computer-vision filtering convolution
I am currently learning some of the kernels that can be used for image preprocessing. I can see that every kernel that we use have some predefined values for n*n matrix as stated in https://en.wikipedia.org/wiki/Kernel_(image_processing)
But what I wanted to understand is how are these kernels defined? Why we end up having values as stated in Wiki.
Please do help me in understanding this. Thank you in advance
image-processing computer-vision filtering convolution
image-processing computer-vision filtering convolution
edited Nov 28 '18 at 7:05
Cris Luengo
21.8k52252
21.8k52252
asked Nov 28 '18 at 3:25
SriHari SriHari.MSriHari SriHari.M
14710
14710
1
This is really a broad question. You can define millions of different convolution kernels, it is not possible to enumerate and explain them all. Understanding a convolution kernel requires understanding Fourier analysis, I recommend that you find a book about that. For example Oppenheim and Willsky is a solid choice.
– Cris Luengo
Nov 28 '18 at 6:31
yes Cris. I feel this as a broad question. So the kernel derived is not done using Convolution Neural network backpropagation ?
– SriHari SriHari.M
Nov 28 '18 at 7:00
1
Ha! Interesting! I didn't expect that point of view... :) No, typically convolution kernels are designed for their desired properties. In a CNN, you get kernels that are designed by back propagation, but those kernels are specific to one network, and trying to understand their properties would be futile.
– Cris Luengo
Nov 28 '18 at 7:05
2
A convolution can be designed in the frequency domain (f.i. lowpass filtering makes a blurring effect), but applied in the spatial domain via a convolution.
– Yves Daoust
Nov 28 '18 at 8:45
1
Yes, convolving an image with a kernel can be done in the Fourier domain by transforming both, multiplying them, then inverse transforming the product. Because of this relationship, the Fourier domain is a great way to analyze and design linear filters: there the simple multiplication is easy to understand, you see what happens to each individual frequency component.
– Cris Luengo
Nov 28 '18 at 13:39
|
show 2 more comments
1
This is really a broad question. You can define millions of different convolution kernels, it is not possible to enumerate and explain them all. Understanding a convolution kernel requires understanding Fourier analysis, I recommend that you find a book about that. For example Oppenheim and Willsky is a solid choice.
– Cris Luengo
Nov 28 '18 at 6:31
yes Cris. I feel this as a broad question. So the kernel derived is not done using Convolution Neural network backpropagation ?
– SriHari SriHari.M
Nov 28 '18 at 7:00
1
Ha! Interesting! I didn't expect that point of view... :) No, typically convolution kernels are designed for their desired properties. In a CNN, you get kernels that are designed by back propagation, but those kernels are specific to one network, and trying to understand their properties would be futile.
– Cris Luengo
Nov 28 '18 at 7:05
2
A convolution can be designed in the frequency domain (f.i. lowpass filtering makes a blurring effect), but applied in the spatial domain via a convolution.
– Yves Daoust
Nov 28 '18 at 8:45
1
Yes, convolving an image with a kernel can be done in the Fourier domain by transforming both, multiplying them, then inverse transforming the product. Because of this relationship, the Fourier domain is a great way to analyze and design linear filters: there the simple multiplication is easy to understand, you see what happens to each individual frequency component.
– Cris Luengo
Nov 28 '18 at 13:39
1
1
This is really a broad question. You can define millions of different convolution kernels, it is not possible to enumerate and explain them all. Understanding a convolution kernel requires understanding Fourier analysis, I recommend that you find a book about that. For example Oppenheim and Willsky is a solid choice.
– Cris Luengo
Nov 28 '18 at 6:31
This is really a broad question. You can define millions of different convolution kernels, it is not possible to enumerate and explain them all. Understanding a convolution kernel requires understanding Fourier analysis, I recommend that you find a book about that. For example Oppenheim and Willsky is a solid choice.
– Cris Luengo
Nov 28 '18 at 6:31
yes Cris. I feel this as a broad question. So the kernel derived is not done using Convolution Neural network backpropagation ?
– SriHari SriHari.M
Nov 28 '18 at 7:00
yes Cris. I feel this as a broad question. So the kernel derived is not done using Convolution Neural network backpropagation ?
– SriHari SriHari.M
Nov 28 '18 at 7:00
1
1
Ha! Interesting! I didn't expect that point of view... :) No, typically convolution kernels are designed for their desired properties. In a CNN, you get kernels that are designed by back propagation, but those kernels are specific to one network, and trying to understand their properties would be futile.
– Cris Luengo
Nov 28 '18 at 7:05
Ha! Interesting! I didn't expect that point of view... :) No, typically convolution kernels are designed for their desired properties. In a CNN, you get kernels that are designed by back propagation, but those kernels are specific to one network, and trying to understand their properties would be futile.
– Cris Luengo
Nov 28 '18 at 7:05
2
2
A convolution can be designed in the frequency domain (f.i. lowpass filtering makes a blurring effect), but applied in the spatial domain via a convolution.
– Yves Daoust
Nov 28 '18 at 8:45
A convolution can be designed in the frequency domain (f.i. lowpass filtering makes a blurring effect), but applied in the spatial domain via a convolution.
– Yves Daoust
Nov 28 '18 at 8:45
1
1
Yes, convolving an image with a kernel can be done in the Fourier domain by transforming both, multiplying them, then inverse transforming the product. Because of this relationship, the Fourier domain is a great way to analyze and design linear filters: there the simple multiplication is easy to understand, you see what happens to each individual frequency component.
– Cris Luengo
Nov 28 '18 at 13:39
Yes, convolving an image with a kernel can be done in the Fourier domain by transforming both, multiplying them, then inverse transforming the product. Because of this relationship, the Fourier domain is a great way to analyze and design linear filters: there the simple multiplication is easy to understand, you see what happens to each individual frequency component.
– Cris Luengo
Nov 28 '18 at 13:39
|
show 2 more comments
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53511653%2fhow-convolution-kernels-are-defined%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53511653%2fhow-convolution-kernels-are-defined%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
This is really a broad question. You can define millions of different convolution kernels, it is not possible to enumerate and explain them all. Understanding a convolution kernel requires understanding Fourier analysis, I recommend that you find a book about that. For example Oppenheim and Willsky is a solid choice.
– Cris Luengo
Nov 28 '18 at 6:31
yes Cris. I feel this as a broad question. So the kernel derived is not done using Convolution Neural network backpropagation ?
– SriHari SriHari.M
Nov 28 '18 at 7:00
1
Ha! Interesting! I didn't expect that point of view... :) No, typically convolution kernels are designed for their desired properties. In a CNN, you get kernels that are designed by back propagation, but those kernels are specific to one network, and trying to understand their properties would be futile.
– Cris Luengo
Nov 28 '18 at 7:05
2
A convolution can be designed in the frequency domain (f.i. lowpass filtering makes a blurring effect), but applied in the spatial domain via a convolution.
– Yves Daoust
Nov 28 '18 at 8:45
1
Yes, convolving an image with a kernel can be done in the Fourier domain by transforming both, multiplying them, then inverse transforming the product. Because of this relationship, the Fourier domain is a great way to analyze and design linear filters: there the simple multiplication is easy to understand, you see what happens to each individual frequency component.
– Cris Luengo
Nov 28 '18 at 13:39