Вопрос по – оценка взгляда по изображению глаза

9

До сих пор мне удалось точно определить зрачок и уголки глаз. Вы можете увидеть несколько снимков, которые я загрузил в ответе на свой вопрос здесь:

Выполнение стабильного определения угла глаза

Вот то, что я сделал до сих пор. Я откалибровал взгляд пользователя, глядя на TLCP, TRCP и BLCP где

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

И соответствующие точки взгляда, которые я получаю, глядя на эти CP, называются GP

Расчет точки взгляда ГП:

Я вычитаю ординаты TLGP. значения от текущего местоположения центра зрачка, потому что точка взгляда должна попадать в гипотетический прямоугольник, Я надеюсь, что вы понимаете это, это действительно очень просто.

Я линейно сопоставил точки взгляда, вычисленные из местоположения центра зрачка, с точками скрининга, используя базовую систему масштабирования, где шкалы вычисляются следующим образом:

scaleX = screen_width/gaze_width
scaleY = screen_height/gaze_height

И для любой точки обзора P (x, y) я вычисляю соответствующую экранную точку Q (m, n) как:

m = scaleX*x
n = scaleY*y

Но проблема в том, что даже после почти идеального обнаружения зрачка (почти потому, что при плохом освещении это дает ложные срабатывания. Но я намереваюсь ограничить это, потому что я не могу работать над этим, у меня нет достаточно времени), т.е. Я все еще плохо получаю ширину взгляда и высоту взгляда.

Вот журнал тестового прогона:

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

Просто посмотрите на точки взгляда и соответствующие им точки экрана (под ними). Огромные различия в ординатах x, y & apos; Ценят меня гайки. Понедельник - финальная презентация.

После этого подхода я теоретизировал еще один, в котором:

Калибровка производится как в первом методе. Я бы обнаружил движение взгляда и его направление. Скажем, с учетом любых двух точек расположения центра зрачка, P и Q, где P - первая точка взгляда, Q - вторая, затем мы вычисляем направление и длину линии PQ. Push method for gaze estimation

Предположим, что длина этого отрезка прямой равна L. Затем мы масштабируем L для отображения на экране. пропорции, скажем, L является D в масштабе экрана, и учитывая направление движения взгляда, мы переместите курсор на экране из его последней точки покоя, скажем, расстояния R, D, в новую точку S, которая будет рассчитываться как конечная точка отрезка, длина которого равна D, и начальная точка S. приведены на рисунке. Таким образом, в основном, я не отображаю любые данные взгляда в точку экрана, я в основном отслеживаю взгляд и преобразую их в «толчок». быть примененным к курсору на экране. Но я еще не реализовал это. Потому что это фактически не отображает взгляд на координаты экрана и, таким образом, может быть ошибочным. Мотивы этой теории были получены из проекта eViacam на sourceforge - они в основном отслеживают ваше лицо и соответственно перемещают мышь. При калибровке они просто рассчитывают, насколько ваше лицо движется вдоль осей.

Bottom lineТак что, если у кого-то из вас есть идеи, как обнаружить взгляд пользователя по идеально обработанному изображению глаза -one with a detected pupil center and eye cornersПожалуйста, расскажите! У меня есть только один день, и я знаю, что уже поздно, но мне просто нужна любая волшебная идея, которая может мне помочь.

Ваш Ответ

1   ответ
5

но его невозможно опубликовать в качестве комментария. Я удалю его после вашего ответа.

Вы уверены, что у вас есть все необходимые параметры?

Рассмотрим следующую диаграмму:

enter image description here

Если ваша камера обнаруживает углы и зрачок в {K, J, Q}, как вы можете отличить другую тройку {F, E, O}? Обратите внимание, что меры одинаковы, но направления взгляда, представленные черными стрелками, совершенно разные.

Примечание: две черные и красные линии были нарисованы из одной точки камеры, расположенной за пределами видимой области.

Error: User Rate Limit Exceeded bad_keypoints
Error: User Rate Limit Exceeded

Похожие вопросы