Есть ли у вас какие-либо идеи или рекомендации для калибровки камеры, когда количество образцов ограничено и находится в пределах небольшого участка изображения?
Вот дополнительная информация:
Я работаю над проектом, чтобы помочь людям с ограниченными возможностями использовать компьютер своими глазами. Есть кое-что, что доставляет мне немало хлопот из-за моей неопытности с OpenCV.
Камера установлена на голову, выпуклость неплохая, но глазное яблоко само выпуклое и вращается. Я планирую «сплющить» глаз, чтобы он двигался по плоскости. Очевидный выбор — откалибровать камеру, чтобы попытаться устранить радиальные искажения.
Во время процесса калибровки пользователь смотрит на углы сетки на экране. Моменты зрачка сохраняются в мат для каждой позиции во время калибровки. Итак, у меня есть изображение с точками, соответствующими количеству положений глаз, когда я смотрю на углы сетки на экране.
Я могу нарисовать заполненные полигоны, соединяющие группы из четырех точек, и создать рисунок шахматной доски, или я могу сохранить каждую позицию глаза как точку и использовать симметричный круг для калибровки.
У меня проблема в том, что камера статична, а положение глаз не меняется, поэтому я ограничен тем, сколько изображений я могу генерировать, поскольку диапазон расположения не так велик.
Я думаю о подразделении сетки на более мелкие шахматные фигуры, но все они будут в одном маленьком регионе, поэтому я не уверен, насколько это будет полезно.
Спасибо!
То, о чем вы говорите, на самом деле не похоже на калибровку камеры — это калибровка вашей настройки слежения за глазами.
Когда вы калибруете камеру в OpenCV, вы пытаетесь удалить радиальные и тангенциальные искажения, поэтому, кажется, интуитивно понятно применить этот процесс для «выравнивания» круглого объекта. Однако радиальное искажение, вносимое сферическим объектив это не то, с чем ты имеешь дело. Вы обеспокоены тем, как точки на сферическом объекте проецируются на ваше изображение.
По общему признанию, модели будут выглядеть очень похоже, но дело в том, что вы не должны касаться калибровки вашей камеры (что вы должны делать в автономном режиме) во время калибровки вашей установки для испытуемого. Тот факт, что ваш «диапазон позиции» ограничен, присущ вашей проблеме и не может быть изменен при обработке изображений. Глаз, который вы снимаете, только заполняет большую часть поля зрения вашей камеры.
Лично я бы просто записал положение зрачка в 9 равномерно распределенных точках на вашем экране и сопоставил бы координаты экрана с координатами изображения полинома второго порядка зрачка. Это сводится к тому, чтобы взять первый член Тейлора сферической проекции, который, вероятно, достаточно хорош, если движения глаз не большие. Затем вы можете проверить предсказанные движения против второй калибровки с 16 вместо 9 точек.
Я полагаю, вы могли бы найти книга по теме для получения дополнительной информации.
Других решений пока нет …