2012-05-29 33 views
6

Tôi muốn có cách theo dõi người dùng đang xem màn hình theo thời gian.Phần mềm theo dõi khuôn mặt trên máy mac (trong máy ảnh xây dựng)

Ví dụ: sử dụng bình thường những giây chính xác trong ngày có người dùng nhìn vào màn hình.

Tôi tự hỏi ý tưởng sáng tạo hoặc phần mềm có sẵn nào sẽ cho phép tôi thực hiện việc này.

Vì vậy, để biết thêm chi tiết cách tôi nhìn thấy, sẽ có một số mức dung sai, ví dụ: khoảng cách từ màn hình, góc đầu đến màn hình sẽ được coi là "tương tác" với màn hình. Nếu máy ảnh trên nói rằng một cuốn sách chuyên nghiệp mac đã được sử dụng để theo dõi này thì nó sẽ ghi lại trong một tập tin văn bản/giá trị khóa lưu trữ một dấu thời gian và giá trị boolean cho mỗi giây của thời gian chương trình được bật.

Bất kỳ ai có kinh nghiệm với loại điều này?

Trả lời

6

Bạn có thể tìm thấy một điểm khởi đầu tốt ở đây: http://code.google.com/p/ehci/

Đó là một phần mềm dựa trên OpenCV theo dõi đầu và phát hiện định hướng của nó. Đó là mã nguồn mở.

+0

thật không may, điều này dường như không sẵn sàng cho mac. Chắc chắn có thể có một đi tại nhận được để làm việc trên iOS nhưng lý tưởng tôi muốn tránh điều này. –

+0

nhưng nó nhìn để ghi lại chính xác những gì tôi cần. –

+0

Bạn có thể xem mã cho những gì bạn cần. Mã của nó hơi khó hiểu (một loại phần mềm Frankenstein) nhưng nên làm việc với iOS với một chút công việc. –

1

Face.com có ​​giải pháp để kiểm tra khuôn mặt. Vì vậy, chỉ cần lấy đầu vào máy ảnh và gửi nó đến máy chủ của họ, tôi đoán?

+2

Dường như đề xuất chỉ chấp nhận ảnh trái ngược với video. Bây giờ tôi nhận ra rằng video chỉ là một chuỗi ảnh nhưng có vẻ như có rất nhiều công việc để loại bỏ thời gian đó và gửi đến API để nhận kết quả. –

3

Có các facetrackers được triển khai (và đã được đào tạo với các điểm đánh dấu), ví dụ trong OpenCV. Tôi đề nghị bạn đầu tiên bắt đầu với chỉ cần theo dõi khuôn mặt. Một khi bạn có một facetracker mạnh mẽ, và bạn có thể tạo ra đầu ra cho biết bao lâu một khuôn mặt đã được nhìn vào màn hình, vv

Sau đó bạn có thể thêm cải tiến. Khi bạn phát hiện một khuôn mặt, bạn có thể cố gắng nhận ra mọi người đang phân tích các pixel mặt.

dòng khác là để nhận ra các bộ phận của khuôn mặt, giống như miệng, mắt, mũi, lông mày ...

Nếu bạn có thể theo dõi khuôn mặt và các bộ phận của khuôn mặt, bạn có thể thử để nhận ra mô hình biểu hiện trên khuôn mặt, giống như hạnh phúc, nỗi buồn, vv ..

1

Tôi đã xây dựng một hệ thống phát hiện khuôn mặt để làm điều gì đó như thế này khi sử dụng OpenCV, bạn có thể xem kết quả here.

Phương pháp tôi đã sử dụng sau đó là hai cách sử dụng riêng biệt của haarTraining với tiêu chuẩn được xây dựng trong bộ phân loại OpenCV. Tôi đã sử dụng trình phân loại được gọi là haarcascade_frontalface_default.xml để xem liệu người dùng có đang xem màn hình và haarcascade_profileface.xml để xem liệu người dùng có đang tìm kiếm không. Đoạn mã sau sẽ giúp bạn bắt đầu sử dụng openCV và 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 
} 
Các vấn đề liên quan