Question

For artificial intelligence. Can you find me a open source code online for face recognition? Like in C++ or any other langauge. Just show me the steps on how to run it and I can figure out then rest....

For artificial intelligence.

Can you find me a open source code online for face recognition? Like in C++ or any other langauge.

Just show me the steps on how to run it and I can figure out then rest.

The objective is to run the code and than let the computer find my face in pixel etc.

0 0
Add a comment Improve this question Transcribed image text
Answer #1

Requirements for running the program:
1) OpenCV must be installed on the local machine.
2) Paths to the classifier XML files must be given before the execution of the program. These XML files can be found in the OpenCV directory “opencv/data/haarcascades”.
3) Use 0 in capture.open(0) to play webcam feed.
4) For detection in a local video provide the path to the video.(capture.open(“path_to_video”)).

CODE

// CPP program to detects face in a video

// Include required header files from OpenCV directory
#include "/usr/local/include/opencv2/objdetect.hpp"
#include "/usr/local/include/opencv2/highgui.hpp"
#include "/usr/local/include/opencv2/imgproc.hpp"
#include <iostream>

using namespace std;
using namespace cv;

// Function for Face Detection
void detectAndDraw( Mat& img, CascadeClassifier& cascade,
               CascadeClassifier& nestedCascade, double scale );
string cascadeName, nestedCascadeName;

int main( int argc, const char** argv )
{
   // VideoCapture class for playing video for which faces to be detected
   VideoCapture capture;
   Mat frame, image;

   // PreDefined trained XML classifiers with facial features
   CascadeClassifier cascade, nestedCascade;
   double scale=1;

   // Load classifiers from "opencv/data/haarcascades" directory
   nestedCascade.load( "../../haarcascade_eye_tree_eyeglasses.xml" ) ;

   // Change path before execution
   cascade.load( "../../haarcascade_frontalcatface.xml" ) ;

   // Start Video..1) 0 for WebCam 2) "Path to Video" for a Local Video
   capture.open(0);
   if( capture.isOpened() )
   {
       // Capture frames from video and detect faces
       cout << "Face Detection Started...." << endl;
       while(1)
       {
           capture >> frame;
           if( frame.empty() )
               break;
           Mat frame1 = frame.clone();
           detectAndDraw( frame1, cascade, nestedCascade, scale );
           char c = (char)waitKey(10);
      
           // Press q to exit from window
           if( c == 27 || c == 'q' || c == 'Q' )
               break;
       }
   }
   else
       cout<<"Could not Open Camera";
   return 0;
}

void detectAndDraw( Mat& img, CascadeClassifier& cascade,
                   CascadeClassifier& nestedCascade,
                   double scale)
{
   vector<Rect> faces, faces2;
   Mat gray, smallImg;

   cvtColor( img, gray, COLOR_BGR2GRAY ); // Convert to Gray Scale
   double fx = 1 / scale;

   // Resize the Grayscale Image
   resize( gray, smallImg, Size(), fx, fx, INTER_LINEAR );
   equalizeHist( smallImg, smallImg );

   // Detect faces of different sizes using cascade classifier
   cascade.detectMultiScale( smallImg, faces, 1.1,
                           2, 0|CASCADE_SCALE_IMAGE, Size(30, 30) );

   // Draw circles around the faces
   for ( size_t i = 0; i < faces.size(); i++ )
   {
       Rect r = faces[i];
       Mat smallImgROI;
       vector<Rect> nestedObjects;
       Point center;
       Scalar color = Scalar(255, 0, 0); // Color for Drawing tool
       int radius;

       double aspect_ratio = (double)r.width/r.height;
       if( 0.75 < aspect_ratio && aspect_ratio < 1.3 )
       {
           center.x = cvRound((r.x + r.width*0.5)*scale);
           center.y = cvRound((r.y + r.height*0.5)*scale);
           radius = cvRound((r.width + r.height)*0.25*scale);
           circle( img, center, radius, color, 3, 8, 0 );
       }
       else
           rectangle( img, cvPoint(cvRound(r.x*scale), cvRound(r.y*scale)),
                   cvPoint(cvRound((r.x + r.width-1)*scale),
                   cvRound((r.y + r.height-1)*scale)), color, 3, 8, 0);
       if( nestedCascade.empty() )
           continue;
       smallImgROI = smallImg( r );
      
       // Detection of eyes int the input image
       nestedCascade.detectMultiScale( smallImgROI, nestedObjects, 1.1, 2,
                                       0|CASCADE_SCALE_IMAGE, Size(30, 30) );
      
       // Draw circles around eyes
       for ( size_t j = 0; j < nestedObjects.size(); j++ )
       {
           Rect nr = nestedObjects[j];
           center.x = cvRound((r.x + nr.x + nr.width*0.5)*scale);
           center.y = cvRound((r.y + nr.y + nr.height*0.5)*scale);
           radius = cvRound((nr.width + nr.height)*0.25*scale);
           circle( img, center, radius, color, 3, 8, 0 );
       }
   }

   // Show Processed Image with detected faces
   imshow( "Face Detection", img );
}

OUTPUT

Add a comment
Know the answer?
Add Answer to:
For artificial intelligence. Can you find me a open source code online for face recognition? Like in C++ or any other langauge. Just show me the steps on how to run it and I can figure out then rest....
Your Answer:

Post as a guest

Your Name:

What's your source?

Earn Coins

Coins can be redeemed for fabulous gifts.

Not the answer you're looking for? Ask your own homework help question. Our experts will answer your question WITHIN MINUTES for Free.
Similar Homework Help Questions
  • I NEED HELP WITH DEBUGGING A C PROGRAM! PLEASE HEAR ME OUT AND READ THIS. I...

    I NEED HELP WITH DEBUGGING A C PROGRAM! PLEASE HEAR ME OUT AND READ THIS. I just have to explain a lot so you understand how the program should work. In C programming, write a simple program to take a text file as input and encrypt/decrypt it by reading the text bit by bit, and swap the bits if it is specified by the first line of the text file to do so (will explain below, and please let me...

  • How can we assess whether a project is a success or a failure? This case presents...

    How can we assess whether a project is a success or a failure? This case presents two phases of a large business transformation project involving the implementation of an ERP system with the aim of creating an integrated company. The case illustrates some of the challenges associated with integration. It also presents the obstacles facing companies that undertake projects involving large information technology projects. Bombardier and Its Environment Joseph-Armand Bombardier was 15 years old when he built his first snowmobile...

  • Please read the article and answer about questions. You and the Law Business and law are...

    Please read the article and answer about questions. You and the Law Business and law are inseparable. For B-Money, the two predictably merged when he was negotiat- ing a deal for his tracks. At other times, the merger is unpredictable, like when your business faces an unexpected auto accident, product recall, or government regulation change. In either type of situation, when business owners know the law, they can better protect themselves and sometimes even avoid the problems completely. This chapter...

  • What an Executive Summary Is An executive summary is a specific type of document that does...

    What an Executive Summary Is An executive summary is a specific type of document that does two things: it summarizes a research article, and it offers recommendations as to how information from the article can be used. Some long reports can contain an executive summary section, as indicated in the Pearson handbook. Write a 2 pahe Executive Summary In business contexts, an executive summary is always written for a specific purpose: to explain the information in the article to a...

ADVERTISEMENT
Free Homework Help App
Download From Google Play
Scan Your Homework
to Get Instant Free Answers
Need Online Homework Help?
Ask a Question
Get Answers For Free
Most questions answered within 3 hours.
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT