Face Tracking Software on Mac (integrated camera)

I want to track a user viewing a screen over time.

eg. in normal use, the exact seconds of the day made the user look at the screen.

I wonder what innovative ideas or pre-existing software will allow me to do this.

So, for more details, as I see it, there will be some tolerance levels, for example. the distance from the screen, the angle of the head to the screen, which will be considered "on" with the monitor. If the camera, say, mac book pro, were used to track this, then it would record a timestamp and a logical value for every second of the program’s start time in a text file / key value.

Does anyone know about this?

+6
source share
4 answers

You can find a good starting point here: http://code.google.com/p/ehci/

This is OpenCV-based software that tracks the head and determines its orientation. It is open source.

+6
source

There are facets executed (and already trained by markers), for example, in OpenCV. I suggest you start with face tracking first. Once you have a reliable facetracker, and you can generate output about how long the face looks at the screen, etc.

You can add improvements later. Once you find a face, you can try to recognize people analyzing the pixels of the face.

Another line is to recognize parts of the face, such as the mouth, eyes, nose, eyebrows ...

If you can track the face and parts of the face, you can try to recognize facial expression styles, such as joy, sadness, etc.

+3
source

Face.com has a face reorganization solution. So just grab the camera input and send it to your servers, I think?

+1
source

I created a face recognition system to do something like this using OpenCV, you can see the result here .

The method I used then consisted of two different haarTraining applications with standard built-in OpenCV classifiers. I used the haarcascade_frontalface_default.xml classifier to see if the user is viewing the screen and haarcascade_profileface.xml to see if the user is watching. The following code should help you get started with openCV and C ++.

CvHaarClassifierCascade *cascade_face; CvMemStorage *storage_face; CvHaarClassifierCascade *cascade_profile; CvMemStorage *storage_profile; //profile face storage_profile = cvCreateMemStorage( 0 ); cascade_profile = ( CvHaarClassifierCascade* )cvLoad( "haarcascade_profileface.xml", 0, 0, 0 ); cvHaarDetectObjects( frm, cascade_profile, storage_profile, 1.1, 2, CV_HAAR_DO_CANNY_PRUNING); //frontal face storage_face = cvCreateMemStorage( 0 ); cascade_face = ( CvHaarClassifierCascade* )cvLoad( "haarcascade_frontalface_default.xml", 0, 0, 0 ); cvHaarDetectObjects( frm, cascade_face, storage_face, 1.1, 2, CV_HAAR_DO_CANNY_PRUNING); //detect profiles CvSeq *profile = cvHaarDetectObjects(img,cascade_profile, storage_profile, 1.1,3,0,cvSize( 20, 20 )); for( i = 0 ; i < ( profile ? profile->total : 0 ) ; i++ ) { CvRect *r = ( CvRect* )cvGetSeqElem( profile, i ); //draw rectangle here, or do other stuff } //detect front CvSeq *faces = cvHaarDetectObjects(img,cascade_face, storage_face, 1.1,3,0,cvSize( 20,20 )); for( i = 0 ; i < ( faces ? faces->total : 0 ) ; i++ ) { CvRect *r = ( CvRect* )cvGetSeqElem( faces, i ); //draw rectangle here, or do other stuff } 
+1
source

Source: https://habr.com/ru/post/916910/


All Articles