Неправильная калибровка камер для системы слежения за головами Eye Tracking system

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

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

Теоретически, аппроксимация параметров камеры будет симметричной линзам по оси Y. Таким образом, каждая камера должна быть с координатами (около 17,5 мм или -17,5, 0, 3,3) относительно системы координат объектива, поворот вокруг оси Y составляет около 42,5 градусов.

Однако, с этими значениями, есть смещение в результате. Увидеть ниже:

введите описание изображения здесь
введите описание изображения здесь

  • Красная точка — это центр взгляда, оцененный трекером для левого глаза, белая — это трекер для правого глаза в координатах экрана.
  • Пределы экрана представлены белыми линиями.
  • Зеленая линия — это вектор взгляда в координатах камеры (проецируется в 2D для визуализации).
  • Два найденных центра камеры, спроецированные в 2D, находятся в середине глаза (синий круг).
  • Образцы учеников и нынешние ученики представлены эллипсами с соответствующими цветами.

Смещение по x не является постоянным, что означает, что вращение по Y не является точным. и положение камеры тоже не точное. Чтобы исправить это, мы использовали: этот откалибровать, а затем этот получить параметры вращения из матрицы вращения.

Мы добавили камеру в середину линз (близко к теоретической точке 0,0,0?), Чтобы получить внешние и внутренние параметры камер относительно нашего центра объектива. Тем не менее, примерно с 50 захватами шахматной доски с разных позиций, результаты, представленные OpenCV, не кажутся правильными.
Например, он дает для камеры положение около (-14,0,10) в координатах объектива для перевода и что-то вроде (-2,38, 49, -2,83) в качестве углов поворота в градусах.

Предыдущие скриншоты сделаны с этими параметрами. Теоретические находятся немного дальше друг от друга, но, в отличие от значения opencv, с большей вероятностью достигнут границ экрана.

Вероятно, это связано с тем, что тестовая камера находится перед оптикой, а не позади, где будет находиться наш реальный 0,0,0 (мы просто добавим расстояние, на котором экран воспринимается по оси Z впоследствии, что составляет 420 мм) ,
Однако у нас нет возможности установить камеру в (0, 0, 0).

Поскольку система компактна (все фиксируется в пределах нескольких см ^ 2), каждый градус или миллиметр может резко изменить результат, поэтому без точного значения камер мы немного застряли.

Наша цель здесь состоит в том, чтобы найти точный способ получить внешние и внутренние параметры каждой камеры, чтобы мы могли вычислить точное положение центра глаза человека, носящего очки, без какой-либо другой процедуры калибровки, чем осмотр вокруг (так нет точек фиксации)

Прямо сейчас система достаточно точна, так что мы получаем глобальную индикацию того, куда кто-то смотрит на экран, но есть разница между правой и левой камерой, это не достаточно точно. Любые советы или подсказки, которые могут помочь нам, приветствуются 🙂

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector