How to solve checkerboard problem caused by input patches in deep learning based super resolution?
I am studying a DBPN model, which is deep-learning model for the super resolution, with the tensorflow framework. I am suffered from "checkerboard problem" at scale x4 restoration. I know that the cause is using input patches (32x32 size) due to computing powers so that there is problem every 32 stride..
could anyone give me the solutions to cope with this problem ? Thanks!!
I already checked that kernel size should be multiple of the stride size
python conv-neural-network
add a comment |
I am studying a DBPN model, which is deep-learning model for the super resolution, with the tensorflow framework. I am suffered from "checkerboard problem" at scale x4 restoration. I know that the cause is using input patches (32x32 size) due to computing powers so that there is problem every 32 stride..
could anyone give me the solutions to cope with this problem ? Thanks!!
I already checked that kernel size should be multiple of the stride size
python conv-neural-network
add a comment |
I am studying a DBPN model, which is deep-learning model for the super resolution, with the tensorflow framework. I am suffered from "checkerboard problem" at scale x4 restoration. I know that the cause is using input patches (32x32 size) due to computing powers so that there is problem every 32 stride..
could anyone give me the solutions to cope with this problem ? Thanks!!
I already checked that kernel size should be multiple of the stride size
python conv-neural-network
I am studying a DBPN model, which is deep-learning model for the super resolution, with the tensorflow framework. I am suffered from "checkerboard problem" at scale x4 restoration. I know that the cause is using input patches (32x32 size) due to computing powers so that there is problem every 32 stride..
could anyone give me the solutions to cope with this problem ? Thanks!!
I already checked that kernel size should be multiple of the stride size
python conv-neural-network
python conv-neural-network
edited Dec 29 '18 at 8:54
Richard
26.6k19108166
26.6k19108166
asked Dec 29 '18 at 8:45
YeopYeop
61
61
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
There's an excellent article about this on Distill. They state there:
One approach is to make sure you use a kernel size that is divided by
your stride, avoiding the overlap issue. This is equivalent to
“sub-pixel convolution,” a technique which has recently had success in
image super-resolution [8]. However, while this approach helps, it is
still easy for deconvolution to fall into creating artifacts.
Another approach is to separate out upsampling to a higher resolution
from convolution to compute features. For example, you might resize
the image (using nearest-neighbor interpolation or bilinear
interpolation) and then do a convolutional layer. This seems like a
natural approach, and roughly similar methods have worked well in
image super-resolution (eg. [9]).
A quick Google search also reveals a number of papers and source code dealing with this issue.
add a comment |
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%2f53968062%2fhow-to-solve-checkerboard-problem-caused-by-input-patches-in-deep-learning-based%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
There's an excellent article about this on Distill. They state there:
One approach is to make sure you use a kernel size that is divided by
your stride, avoiding the overlap issue. This is equivalent to
“sub-pixel convolution,” a technique which has recently had success in
image super-resolution [8]. However, while this approach helps, it is
still easy for deconvolution to fall into creating artifacts.
Another approach is to separate out upsampling to a higher resolution
from convolution to compute features. For example, you might resize
the image (using nearest-neighbor interpolation or bilinear
interpolation) and then do a convolutional layer. This seems like a
natural approach, and roughly similar methods have worked well in
image super-resolution (eg. [9]).
A quick Google search also reveals a number of papers and source code dealing with this issue.
add a comment |
There's an excellent article about this on Distill. They state there:
One approach is to make sure you use a kernel size that is divided by
your stride, avoiding the overlap issue. This is equivalent to
“sub-pixel convolution,” a technique which has recently had success in
image super-resolution [8]. However, while this approach helps, it is
still easy for deconvolution to fall into creating artifacts.
Another approach is to separate out upsampling to a higher resolution
from convolution to compute features. For example, you might resize
the image (using nearest-neighbor interpolation or bilinear
interpolation) and then do a convolutional layer. This seems like a
natural approach, and roughly similar methods have worked well in
image super-resolution (eg. [9]).
A quick Google search also reveals a number of papers and source code dealing with this issue.
add a comment |
There's an excellent article about this on Distill. They state there:
One approach is to make sure you use a kernel size that is divided by
your stride, avoiding the overlap issue. This is equivalent to
“sub-pixel convolution,” a technique which has recently had success in
image super-resolution [8]. However, while this approach helps, it is
still easy for deconvolution to fall into creating artifacts.
Another approach is to separate out upsampling to a higher resolution
from convolution to compute features. For example, you might resize
the image (using nearest-neighbor interpolation or bilinear
interpolation) and then do a convolutional layer. This seems like a
natural approach, and roughly similar methods have worked well in
image super-resolution (eg. [9]).
A quick Google search also reveals a number of papers and source code dealing with this issue.
There's an excellent article about this on Distill. They state there:
One approach is to make sure you use a kernel size that is divided by
your stride, avoiding the overlap issue. This is equivalent to
“sub-pixel convolution,” a technique which has recently had success in
image super-resolution [8]. However, while this approach helps, it is
still easy for deconvolution to fall into creating artifacts.
Another approach is to separate out upsampling to a higher resolution
from convolution to compute features. For example, you might resize
the image (using nearest-neighbor interpolation or bilinear
interpolation) and then do a convolutional layer. This seems like a
natural approach, and roughly similar methods have worked well in
image super-resolution (eg. [9]).
A quick Google search also reveals a number of papers and source code dealing with this issue.
answered Dec 29 '18 at 8:53
RichardRichard
26.6k19108166
26.6k19108166
add a comment |
add a comment |
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%2f53968062%2fhow-to-solve-checkerboard-problem-caused-by-input-patches-in-deep-learning-based%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