How do I crop faces with a neural network?
$begingroup$
I am looking to build a facial recognition system and realized I could probably pump up accuracy by first cropping the faces. I know I can use a Haar Cascade classifier to do this but would prefer to use a deep learning approach, as that is my current area of focus. To do this do I simply create a CNN with inputs being an image and outputs being the X, Y, Width, Height? Or is there more to it? I have tried this approach with an Adam optimizer and around 600 pictures but results haven't been great. Any ideas on how to improve this?
python deep-learning keras
New contributor
$endgroup$
add a comment |
$begingroup$
I am looking to build a facial recognition system and realized I could probably pump up accuracy by first cropping the faces. I know I can use a Haar Cascade classifier to do this but would prefer to use a deep learning approach, as that is my current area of focus. To do this do I simply create a CNN with inputs being an image and outputs being the X, Y, Width, Height? Or is there more to it? I have tried this approach with an Adam optimizer and around 600 pictures but results haven't been great. Any ideas on how to improve this?
python deep-learning keras
New contributor
$endgroup$
$begingroup$
You may want to use pixel-wise classification, fully convolutional networks. YOLO based approaches can be considered too.
$endgroup$
– Media
25 mins ago
add a comment |
$begingroup$
I am looking to build a facial recognition system and realized I could probably pump up accuracy by first cropping the faces. I know I can use a Haar Cascade classifier to do this but would prefer to use a deep learning approach, as that is my current area of focus. To do this do I simply create a CNN with inputs being an image and outputs being the X, Y, Width, Height? Or is there more to it? I have tried this approach with an Adam optimizer and around 600 pictures but results haven't been great. Any ideas on how to improve this?
python deep-learning keras
New contributor
$endgroup$
I am looking to build a facial recognition system and realized I could probably pump up accuracy by first cropping the faces. I know I can use a Haar Cascade classifier to do this but would prefer to use a deep learning approach, as that is my current area of focus. To do this do I simply create a CNN with inputs being an image and outputs being the X, Y, Width, Height? Or is there more to it? I have tried this approach with an Adam optimizer and around 600 pictures but results haven't been great. Any ideas on how to improve this?
python deep-learning keras
python deep-learning keras
New contributor
New contributor
New contributor
asked 35 mins ago
user3647894user3647894
111
111
New contributor
New contributor
$begingroup$
You may want to use pixel-wise classification, fully convolutional networks. YOLO based approaches can be considered too.
$endgroup$
– Media
25 mins ago
add a comment |
$begingroup$
You may want to use pixel-wise classification, fully convolutional networks. YOLO based approaches can be considered too.
$endgroup$
– Media
25 mins ago
$begingroup$
You may want to use pixel-wise classification, fully convolutional networks. YOLO based approaches can be considered too.
$endgroup$
– Media
25 mins ago
$begingroup$
You may want to use pixel-wise classification, fully convolutional networks. YOLO based approaches can be considered too.
$endgroup$
– Media
25 mins ago
add a comment |
1 Answer
1
active
oldest
votes
$begingroup$
You are looking for a fully convolution neural network trained for image segmentation. The architecture is typically convolutions followed by de-convolutional layers with out pooling.
The forward inference serves to extract information with convolutions. The de-convolutions serve to resize the tensors to the size of the inputs height and width. A fully connected layer then classifies each pixel from the input. Deconvolutions demonstration.
Unfortunately you need pixel wise labels to train a network to do this. You could look for a pretrained model that already segments faces from images or you could grind out hand labeling for a 1000 images and use transfer learning (there are online tools for doing this such as Label box.
$endgroup$
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
return StackExchange.using("mathjaxEditing", function () {
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
});
});
}, "mathjax-editing");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "557"
};
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: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
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
});
}
});
user3647894 is a new contributor. Be nice, and check out our Code of Conduct.
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%2fdatascience.stackexchange.com%2fquestions%2f44456%2fhow-do-i-crop-faces-with-a-neural-network%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
$begingroup$
You are looking for a fully convolution neural network trained for image segmentation. The architecture is typically convolutions followed by de-convolutional layers with out pooling.
The forward inference serves to extract information with convolutions. The de-convolutions serve to resize the tensors to the size of the inputs height and width. A fully connected layer then classifies each pixel from the input. Deconvolutions demonstration.
Unfortunately you need pixel wise labels to train a network to do this. You could look for a pretrained model that already segments faces from images or you could grind out hand labeling for a 1000 images and use transfer learning (there are online tools for doing this such as Label box.
$endgroup$
add a comment |
$begingroup$
You are looking for a fully convolution neural network trained for image segmentation. The architecture is typically convolutions followed by de-convolutional layers with out pooling.
The forward inference serves to extract information with convolutions. The de-convolutions serve to resize the tensors to the size of the inputs height and width. A fully connected layer then classifies each pixel from the input. Deconvolutions demonstration.
Unfortunately you need pixel wise labels to train a network to do this. You could look for a pretrained model that already segments faces from images or you could grind out hand labeling for a 1000 images and use transfer learning (there are online tools for doing this such as Label box.
$endgroup$
add a comment |
$begingroup$
You are looking for a fully convolution neural network trained for image segmentation. The architecture is typically convolutions followed by de-convolutional layers with out pooling.
The forward inference serves to extract information with convolutions. The de-convolutions serve to resize the tensors to the size of the inputs height and width. A fully connected layer then classifies each pixel from the input. Deconvolutions demonstration.
Unfortunately you need pixel wise labels to train a network to do this. You could look for a pretrained model that already segments faces from images or you could grind out hand labeling for a 1000 images and use transfer learning (there are online tools for doing this such as Label box.
$endgroup$
You are looking for a fully convolution neural network trained for image segmentation. The architecture is typically convolutions followed by de-convolutional layers with out pooling.
The forward inference serves to extract information with convolutions. The de-convolutions serve to resize the tensors to the size of the inputs height and width. A fully connected layer then classifies each pixel from the input. Deconvolutions demonstration.
Unfortunately you need pixel wise labels to train a network to do this. You could look for a pretrained model that already segments faces from images or you could grind out hand labeling for a 1000 images and use transfer learning (there are online tools for doing this such as Label box.
answered 4 mins ago
J_HeadsJ_Heads
1473
1473
add a comment |
add a comment |
user3647894 is a new contributor. Be nice, and check out our Code of Conduct.
user3647894 is a new contributor. Be nice, and check out our Code of Conduct.
user3647894 is a new contributor. Be nice, and check out our Code of Conduct.
user3647894 is a new contributor. Be nice, and check out our Code of Conduct.
Thanks for contributing an answer to Data Science Stack Exchange!
- 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.
Use MathJax to format equations. MathJax reference.
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%2fdatascience.stackexchange.com%2fquestions%2f44456%2fhow-do-i-crop-faces-with-a-neural-network%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
$begingroup$
You may want to use pixel-wise classification, fully convolutional networks. YOLO based approaches can be considered too.
$endgroup$
– Media
25 mins ago