Answers.Body: <p>I am assuming that you are new to all this. You can start with making a basic human face detection. Train the program to detect a human face with very good accuracy. This will help you to get familiar with the coding ground related to image processing and basic machine learning.<br>
  After that train your program to identify faces of only 2-3 people. Trying for too many in the beginning won't be a good idea. Test your program's accuracy in different situation, with a different number of crowd, etc.<br><br>
  If it's working fine then you can train your program for more individuals. In addition to this leave room for learning from experience in your code. Some codes only learn once and they implement the same thing for their whole life. A nice example of this kind is <a href="https://en.wikipedia.org/wiki/Optical_character_recognition" rel="nofollow noreferrer">OCR</a>. If a face is detected wrongly OR your program detects a new face about which it doesn't know anything. Then you should be able to tell the program and it should include that in its database. I think some form of reinforcement learning will help. Not much sure about it though.<br><br>
  <strong>Now the Implementation</strong><br>
  I will highly recommend you to learn python and get familiar with OpenCV. You can think of OpenCV as a collection of libraries. I find them very helpful for image processing and machine learning. Another good thing about it is that you can import OpenCV in python, Java or C++ according to your need.<br>
  OpenCV has an inbuilt function that allows it train a neural network for positive and negative images. The success of your program depend highly on your choice of positive and negative images, so choose them wisely. The result of the training is stored as a <a href="http://docs.opencv.org/2.4/modules/objdetect/doc/cascade_classification.html" rel="nofollow noreferrer">haar cascade file</a>. This cascade file can be used in your program to use the trained data and function accordingly.<br><br>
  For basic human face detection, you can find the cascade file online and implement a code like this<br></p>
  
  <blockquote>
    <p>face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml');</p>
  </blockquote>
  
  <p>For detecting individual faces you will need to make different classes. The number of classes will represent the number of individual faces you want to detect in the beginning.<br>
  You can find OpenCV tutorials <a href="http://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_tutorials.html" rel="nofollow noreferrer">here</a>.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-04-29T04:09:33.917Z
Answers.LastActivityDate: 2017-04-29T04:09:33.917Z
Answers.UserDisplayName: Ugnes
Answers.Body: <p><a href="http://dlib.org" rel="nofollow noreferrer">DLIB</a> has AA-class face detector based on ResNet model. 
  <a href="http://dlib.net/face_detector.py.html" rel="nofollow noreferrer">Here</a> is C++ example. 
  The accuracy is much better compared to HAAR/LBP but performance is worse (but much depends on parameters passed to HAAR/LBP detector)</p>
  
  <p>The latest version of OpenCV also contains face detector based on ResNet model, but I did not try this. </p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-12-28T15:13:02.993Z
Answers.LastActivityDate: 2017-12-28T15:13:02.993Z
Answers.UserDisplayName: Eugene Bartosh
Answers.Body: <p>If you want to implement recognition you've just to train a convnet or CNN on a lot of images in which there are faces, and then you classify it 1 if there are faces and 0 if there aren't. If you want to do detection you have to use different approaches like a cascade classifier whit CNN or an object detection network like YOLO or SSD.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-04-25T20:50:34.563Z
Answers.Text: Thanks for the information, my purpose is to find a particular face in images. Let's say i have a particular person's face image, i would like to achieve all the images with that face. What's the best way to face up the problem?
Answers.UserDisplayName: Gianmarco6000
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-04-25T20:05:40.133Z
Answers.LastActivityDate: 2017-04-25T20:05:40.133Z
Answers.UserDisplayName: simonepi
Body: <p>In past few weeks, I have learned a lot about Neural Networks. Now, I am looking forward to create a Neural Network program that can recognize individual human faces. I tried searching it online but was able to find only small pieces of information.<br>
  <strong>What are the steps for implementing such a program from scratch?</strong></p>
  
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-04-28T12:47:49.357Z
Comments.Text: What exactly do you want? A program that tracks a human face OR a program that can detect a human face and the person that face belongs to?
Comments.UserDisplayName: Ugnes
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-04-28T19:53:46.777Z
Comments.Text: I want exactly the second kind of program.
Comments.UserDisplayName: Gianmarco6000
Tags: <neural-networks><image-recognition>
Title: Neural network for detecting individual human face
UserDisplayName: Gianmarco6000
ThreadText: # Neural network for detecting individual human face
  
  (Asked by: username_0 on 2017-04-25)
  
  In past few weeks, I have learned a lot about Neural Networks. Now, I am looking forward to create a Neural Network program that can recognize individual human faces. I tried searching it online but was able to find only small pieces of information.  
  **What are the steps for implementing such a program from scratch?**
  
  **Tags:** neural-networks, image-recognition
  > **Comments:**
  > **username_1**: What exactly do you want? A program that tracks a human face OR a program that can detect a human face and the person that face belongs to?  
  > **username_0**: I want exactly the second kind of program.  
  
  ---
  
  ## 3 answers
  
  ### Answer by username_1 on 2017-04-29. Score: 1 | Accepted answer
  
  I am assuming that you are new to all this. You can start with making a basic human face detection. Train the program to detect a human face with very good accuracy. This will help you to get familiar with the coding ground related to image processing and basic machine learning.  
  After that train your program to identify faces of only 2-3 people. Trying for too many in the beginning won't be a good idea. Test your program's accuracy in different situation, with a different number of crowd, etc.  
    
  If it's working fine then you can train your program for more individuals. In addition to this leave room for learning from experience in your code. Some codes only learn once and they implement the same thing for their whole life. A nice example of this kind is [OCR](https://en.wikipedia.org/wiki/Optical_character_recognition). If a face is detected wrongly OR your program detects a new face about which it doesn't know anything. Then you should be able to tell the program and it should include that in its database. I think some form of reinforcement learning will help. Not much sure about it though.  
    
  **Now the Implementation**  
  I will highly recommend you to learn python and get familiar with OpenCV. You can think of OpenCV as a collection of libraries. I find them very helpful for image processing and machine learning. Another good thing about it is that you can import OpenCV in python, Java or C++ according to your need.  
  OpenCV has an inbuilt function that allows it train a neural network for positive and negative images. The success of your program depend highly on your choice of positive and negative images, so choose them wisely. The result of the training is stored as a [haar cascade file](http://docs.opencv.org/2.4/modules/objdetect/doc/cascade_classification.html). This cascade file can be used in your program to use the trained data and function accordingly.  
    
  For basic human face detection, you can find the cascade file online and implement a code like this
  
  > face\_cascade = cv2.CascadeClassifier('haarcascade\_frontalface\_default.xml');
  
  For detecting individual faces you will need to make different classes. The number of classes will represent the number of individual faces you want to detect in the beginning.  
  You can find OpenCV tutorials [here](http://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_tutorials.html).
  
  
  ---
  
  ### Answer by username_2 on 2017-12-28. Score: 1
  
  [DLIB](http://dlib.org) has AA-class face detector based on ResNet model.
  [Here](http://dlib.net/face_detector.py.html) is C++ example.
  The accuracy is much better compared to HAAR/LBP but performance is worse (but much depends on parameters passed to HAAR/LBP detector)
  
  The latest version of OpenCV also contains face detector based on ResNet model, but I did not try this.
  
  
  ---
  
  ### Answer by username_3 on 2017-04-25. Score: 0
  
  If you want to implement recognition you've just to train a convnet or CNN on a lot of images in which there are faces, and then you classify it 1 if there are faces and 0 if there aren't. If you want to do detection you have to use different approaches like a cascade classifier whit CNN or an object detection network like YOLO or SSD.
  
  > **Comments:**
  > **username_0**: Thanks for the information, my purpose is to find a particular face in images. Let's say i have a particular person's face image, i would like to achieve all the images with that face. What's the best way to face up the problem?  
  
  ---
  
  