Основы стереозрения


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

  •     проективная геометрия и однородные координаты
  •     модель камеры
  •     эпиполярная геометрия (epiporal geomerty), фундаментальная и существенная матрицы (fundamental matrix, essential matrix)
  •     триангуляция стереопары точек
  •     карты глубин (depth map), карта смещений(disparity map) и идея, лежащая в основе ее вычисления

Практически весь материал статьи основан на книге "Multiple View Geometry in Computer Vision" by Hartley, R. I. and Zisserman, A., а раздел про построение карты глубины описан на основе материала из "Learning OpenCV" by Gary Bradski, Adrian Kaehler.

Для понимания содержимого статьи достаточно иметь общее представление об аналитической геометрии и линейной алгебре: знать, что такое матрица, вектор, скалярное и векторное произведение.

Проективная геометрия и однородные координаты
В геометрии стерео зрения значительную роль играет проективная геометрия. К проективной геометрии есть несколько подходов: геометрический (подобно Евклидовой геометрии ввести понятие геометрических объектов, аксиом и из этого выводить все свойства проективного пространства), аналитический (рассматривать все в координатах, как в аналитическом подходе к Евклидовой геометрии), алгебраический.

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

Точки проективной плоскости. Рассмотрим двухмерное проективное пространство (которое еще называется проективной плоскостью). В то время как на обычной Евклидовой плоскости точки описываются парой координат (x,y)T, на проективной плоскости точки описываются трехкомпонентным вектором (x,y,w)T. При этом для любого ненулевого числа a, векторы (x,y,w)T и (ax, ay, aw)T соответствуют одной и той же точке. А нулевой вектор (0,0,0)T не соответствует никакой точке и выкидывается из рассмотрения. Такое описание точек плоскости называется однородными координатами (homogeneous coordinates).

Точкам проективной плоскости можно сопоставить точки обычной Евклидовой плоскости. Координатному вектору (x,y,w)T при w 0 сопоставим точку Евклидовой плоскости с координатами (x/w, y/w)T. Если же w = 0, т.е. координатный вектор имеет вид (x, y, 0T), то будем говорить, что эта точка в бесконечности. Таким образом, проективную плоскость можно рассматривать как Евклидовую плоскость, дополненную точками из бесконечности.

Перейти от однородных координат (x, y, w)T к обычным Евклидовым можно путем деления координатного вектора на последнюю компоненту и последующего ее отбрасывания (x,y,w)T (x/w,y/w)T. А от Евклидовых координат (x,y)T перейти к однородным можно за счет дополнения координатного вектора единичкой: (x,y)T (x,y,1)T

Прямые на проективной плоскости. Любая прямая на проективной плоскости описывается, подобно точке, трехкомпонентным вектором l = (a,b,c)T. Опять же вектор, описывающий прямую, определен с точностью до ненулевого множителя. При этом уравнение прямой будет иметь вид: lT x = 0.

В случае, когда a2 + b2 0 мы имеем аналог обычной прямой ax + by + c = 0. А вектор (0,0,w) соответствует прямой лежащей в бесконечности.

Трехмерное проективное пространство. По аналогии с проективной плоскостью, точки трехмерного проективного пространства определяются четырехкомпонентным вектором однородных координат (x,y,z,w)T. Опять же для любого ненулевого числа a, координатные вектора (x,y,z,w)T и (ax,ay,az,aw)T соответствуют одной и той же точке.

Как в случае проективной плоскости, между точками трехмерного Евклидова пространства и трехмерного проективного пространства можно установить соответствие. Вектору однородных координат (x,y,z,w)T при w 0 соответствует точка Евклодова пространства с координатами (x/w,y/w,z/w)T. А про точку с вектором однородных координат вида (x,y,z,0)T говорят, что она лежит в бесконечности.

Проективное преобразование. Еще одна вещь, которая потребуется для дальнейшего изложения — это проективные преобразования (homography, projective transformation — в англ. литературе). С геометрической точки зрения, проективное преобразование — это обратимое преобразование проективной плоскости (или пространства), которое переводит прямые в прямые. В координатах, проективное преобразование выражается в виде невырожденной квадратной матрицы H, при этом координатный вектор x переходит в координатный вектор x' по следующей формуле: x' = H x.


Комментарии запрещены.



Яндекс.Метрика