Система координат модели камеры-обскуры

Недавно я изучал модель камеры-обскуры, но меня смутила модель, предоставленная OpenCV, и учебник "Множественная геометрия в компьютерном зрении".

Я знаю, что следующее фото — это упрощенная модель, которая меняет положение плоскости изображения и кадра камеры. Для лучшей иллюстрации и понимания, а также с учетом главной точки (u0,v0), отношение между двумя кадрами равно x=f(X/Z)+u0 и y=f(Y/Z)+v0.

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

Однако я был действительно сбит с толку, потому что обычно координата изображения имеет форму координаты 4-го квадранта, как показано ниже!

Могу ли я напрямую заменить (x, y) в следующем определении на приведенную выше «эквивалентную» модель обскуры, которая не очень убедительна?

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

Кроме того, если объект находится в области (+X,+Y) квадранта в координате камеры (разумеется, Z>f), в эквивалентной модели он должен появиться в правой половине плоскости координаты изображения. Однако такой объект на снимке, сделанном обычной камерой, предполагается, что он находится на левой половине. Поэтому для меня эта модель не приемлема.

Наконец, я попытался вывести на основе исходной модели следующую.

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

Результат x1=-f(X/Z) и y1=-f(Y/Z).

Затем я попытался найти связь между координатой (x2,y2) и координатой камеры. Результат x2=-f(X/Z)+u0 и y2=-f(Y/Z)+v0.

Между координатой (x3,y3) и координатой камеры получается x3=-f(X/Z)+u0 и y3=f(Y/Z)+v0.

Какую бы систему координат я ни пробовал, ни одна из них не имеет формы x=f(X/Z)+u0 и y=f(Y/Z)+v0, которые приведены в некоторых учебниках по CV.

Кроме того, результаты проекции на (x2,y2)-координату или (x3,y3)-координату также нецелесообразны по той же причине: объект в области (+X,+Y,+Z) в координате камеры должен «появляться» на левой половине изображения, снятого камерой.

Может ли кто-нибудь указать, что я неправильно понял?


person Alex Lin    schedule 08.04.2014    source источник
comment
Этот вопрос кажется не по теме, потому что он касается математики, а не вопроса программирования.   -  person Aurelius    schedule 08.04.2014
comment
@Aurelius Где было бы хорошее место для этого вопроса?   -  person BConic    schedule 09.04.2014
comment
Я думаю, что это правильное место - на самом деле вопрос направлен на описание реализации модели камеры opencv, которая является именно моделью камеры-обскуры.   -  person marol    schedule 10.04.2014


Ответы (2)


Я, наконец, разобрался с этой проблемой и доказал, что моя интерпретация верна, применив документ Z. Zhang, Гибкая калибровка камеры путем наблюдения за плоскостью с неизвестной ориентации. Международная конференция по компьютерному зрению (ICCV'99), Корфу, Греция, стр. 666–673, сентябрь 1999 г..

Позвольте мне объяснить все с нуля. Следующая фотография представляет собой оригинальную модель камеры-обскуры и результат, спроецированный на датчик изображения. Однако это не то, что мы должны увидеть на «изображении».

figure1

То, что мы должны увидеть, это

figure2

Сравнивая рисунок 1 и 2, мы должны заметить, что это изображение перевернутое и левое-правое. Мой друг, который работает в компании, производящей датчики CMOS, сказал мне, что есть встроенные функции для автоматического переворота воспринимаемого изображения.

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

Теперь мы должны смотреть с «тыльной стороны» датчика изображения на синюю стрелку (вид в перспективе).

Результат показан на рисунке 2. Координата x1-y1 теперь направлена ​​вправо и вниз соответственно, поэтому уравнения

x1=-f(X/Z)
y1=-f(Y/Z)

Теперь, с точки зрения координаты xy, уравнение

x=f(X/Z)+u0
y=f(Y/Z)+v0

которые описаны в документе.

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

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

Принцип тот же. Смотрите из центра проекции в сторону плоскости изображения. Результат

рисунок 4

где спроецированная буква «F» — правая-левая. Уравнения

x1=f(X/Z)
y1=f(Y/Z)

Теперь, с точки зрения координаты xy, уравнение

x=f(X/Z)+u0
y=f(Y/Z)+v0

которые описаны в документе.

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

x=a*f(X/Z)+u0 
y=b*f(Y/Z)+v0

or

x=fx(X/Z)+u0
y=fy(Y/Z)+v0

где fx=a*f, fy=b*f

person Alex Lin    schedule 14.05.2014

На самом деле все намного проще: предполагается, что координаты вашего объекта должны быть в мировых координатах камеры, то есть в системе координат, оси X и Y которой параллельны соответствующим осям на плоскости изображения. например здесь: http://homepages.inf.ed.ac.uk/rbf/CVonline/LOCAL_COPIES/OWENS/LECT9/node2.html

person Pete    schedule 07.01.2016
comment
Добро пожаловать в СО! Здесь мы обычно стараемся избегать ответов, состоящих только из ссылок, поэтому ответы можно размещать прямо здесь на случай, если цели перестанут работать. Вы можете сохранить ссылку, но не могли бы вы также обобщить некоторые основные моменты из ссылки? - person slackwing; 07.01.2016