9

Tôi đã có thể phát hiện chính xác học sinh và các góc mắt cho đến nay. Bạn có thể thấy một vài snaps i tải lên trong câu trả lời của tôi cho câu hỏi của riêng tôi ở đây:ước lượng ánh mắt từ hình ảnh của mắt

Performing stable eye corner detection

Dưới đây là những gì tôi đã làm cho đến nay. tôi chỉnh cái nhìn của người sử dụng bằng cách nhìn vào TLCP, TRCP và BLCP nơi

CP = calibration point; a screen point used for calibration 
B = bottom 
T = top 
L= left 
R = right 
gaze_width = TRCP.x - TLCP.x 

gaze_height = BLCP.y- TLCP.y 

Và những điểm nhìn tương ứng tôi nhận được bằng cách nhìn vào những CPs được gọi là các bác sĩ

tính toán của một GP điểm nhìn :

Tôi trừ giá trị của các giá trị của TLGP từ vị trí của trung tâm học sinh hiện tại, vì điểm nhìn phải rơi vào hình chữ nhật giả thiết có tôi hy vọng bạn hiểu nó, nó thực sự rất đơn giản.

Tôi đã tuyến tính ánh xạ các điểm nhìn được tính từ vị trí trung tâm học sinh để sàng lọc điểm sử dụng một hệ thống mở rộng quy mô cơ bản mà quy mô được tính như sau:

scaleX = screen_width/gaze_width 
scaleY = screen_height/gaze_height 

Và đối với bất kỳ điểm chiêm ngưỡng P (x, y) i tính toán điểm màn hình tương ứng Q (m, n) như:

m = scaleX*x 
n = scaleY*y 

Nhưng vấn đề là, sau khi phát hiện học sinh thậm chí gần như hoàn hảo (gần như bởi vì trong ánh sáng kém nó mang lại cho dương tính giả Nhưng tôi có ý định đặt đó. dưới những hạn chế bởi vì tôi không thể làm việc trên nó, tôi không có đủ thời gian), tôi vẫn nhận được chiều rộng nhìn kém và chiều cao nhìn chằm chằm.

Dưới đây là một khúc gỗ chạy thử:

DO_CAL= True 

Gaze Parameters: 

TLGP = (38, 26) | TRGP = (20, 22) | BLGP = (39, 33) 
screen height = 768 screen width = 1366 

gaze height = 7 gaze width = 18 

scales: X = 75.8888888889 | Y = 109.714285714 
Thing on = True 

Gaze point = (5, 3) 
Screen point: (987, 329) 

Gaze point = (5, 3) 
Screen point: (987, 329) 

Gaze point = (7, 5) 
Screen point: (835, 549) 

Thing on = False 

TLGP = (37, 24) | TRGP = (22, 22) | BLGP = (35, 29) 
screen height = 768 screen width = 1366 

gaze height = 5 gaze width = 15 
scales: X = 91.0666666667 | Y = 153.6 
Thing on = True 

Gaze point = (12, 3) 
Screen point: (1093, 461) 

Gaze point = (12, 3) 
Screen point: (1093, 461) 

ESC pressed 

Chỉ cần nhìn vào những điểm nhìn và chiêm ngưỡng-phát hiện điểm màn hình tương ứng của họ (theo họ). Sự khác biệt lớn trong các giá trị x, y ordinates 'là làm tôi khó chịu. Thứ hai là bản trình bày cuối cùng.

Sau khi phương pháp này, tôi đưa ra giả thuyết khác một trong những nơi ở:

hiệu chuẩn được thực hiện như trong phương pháp đầu tiên. Tôi sẽ phát hiện chuyển động của ánh mắt, và hướng của nó. Giả sử, với bất kỳ hai điểm nào của vị trí trung tâm học sinh, P và Q, trong đó P là điểm nhìn đầu tiên, Q là điểm thứ hai, sau đó chúng tôi tính hướng và độ dài của đường PQ. Push method for gaze estimation

Giả sử rằng độ dài của đoạn thẳng này là L. Chúng tôi sau đó quy mô L để sàng lọc tỷ lệ, nói L là D ở quy mô màn hình, và được sự chỉ đạo của phong trào Ánh mắt, chúng tôi di chuyển con trỏ trên màn hình từ điểm cuối cùng của phần còn lại, nói khoảng cách R, D, đến điểm S mới sẽ được tính là điểm cuối của đoạn thẳng có chiều dài là D và điểm bắt đầu S. Biểu diễn tượng trưng được đưa ra trong hình. Vì vậy, về cơ bản, tôi không ánh xạ bất kỳ dữ liệu nhìn vào điểm màn hình, tôi về cơ bản theo dõi cái nhìn, và chuyển đổi nó thành một "đẩy" được áp dụng cho con trỏ trên màn hình. Nhưng tôi chưa thực hiện nó. Bởi vì nó thực sự không ánh xạ cái nhìn để kiểm soát các tọa độ, và do đó có thể là sai lầm. Động cơ cho lý thuyết này được bắt nguồn từ dự án eViacam trên sourceforge - về cơ bản chúng theo dõi khuôn mặt của bạn và di chuyển chuột cho phù hợp.Trong hiệu chuẩn họ chỉ tính toán bao nhiêu khuôn mặt của bạn di chuyển dọc theo các trục.

Tóm lại: Vì vậy, nếu bất kỳ của bạn có bất kỳ ý tưởng làm thế nào để phát hiện cái nhìn của người dùng từ một hình ảnh hoàn hảo mắt xử lý - một với một trung tâm học sinh phát hiện và mắt góc, xin vui lòng nói! Tôi đã có khoảng một ngày, và tôi biết muộn của nó, nhưng tôi chỉ cần bất kỳ ý tưởng kỳ diệu có thể giúp tôi.

Trả lời

5

Đây không phải là câu trả lời nhưng không thể đăng bài làm nhận xét. Tôi sẽ xóa nó sau câu trả lời của bạn.

Bạn có chắc là bạn có tất cả các thông số cần thiết không?

Xem xét sơ đồ sau đây:

enter image description here

Nếu máy ảnh của bạn phát hiện các góc và học sinh tại {K, J, Q}, làm thế nào bạn có thể phân biệt từ một triple {F, E, O}? Lưu ý rằng các biện pháp là như nhau, nhưng các hướng nhìn, được represnted bởi các mũi tên màu đen là hoàn toàn khác nhau.

Lưu ý: hai đường màu đen và màu đỏ được vẽ từ một điểm camera duy nhất, được đặt bên ngoài vùng hiển thị.

+0

trước hết, tôi đang sử dụng thác mặt phía trước để dò tìm khuôn mặt, vì vậy eye_a eye sẽ không bị phát hiện. thứ hai, tôi nhận được các điểm nhìn khác nhau bằng cách theo dõi trung tâm học sinh đối với các góc mắt. Trên thực tế cho đến bây giờ tôi đã chỉ sử dụng nguồn gốc hình ảnh như là điểm tham chiếu, nhưng có được sự trôi dạt. Giới hạn mà người dùng không được phép di chuyển đầu sau khi hiệu chỉnh từ một vị trí cụ thể, không thể cho phép có hai điểm nhìn khác nhau, ngay cả khi chúng xuất hiện từ mặt trước (ví dụ, tương tự như eye_b nhưng bên trái hoặc bên phải của nó) .Người dùng sẽ phải nhìn từ cùng một vị trí đầu –

+0

Bản vẽ tuyệt vời! Bạn đã sử dụng chương trình nào? – Mene

Các vấn đề liên quan