Фото:Кристофер Бернс(Christopher Burns)существуетUnsplashфото на
Руководство по началу работы
Узнайте о преобразованиях в компьютерном зрении.
Обзор параллельных преобразований и изотопов
содержание
- Бионическая трансформация
- изотопный метод
- Однородные координаты
- модель камеры-обскуры
- Уравнения изотопного метода
- использованная литература
Преобразования являются важной частью компьютерного зрения, и понимание того, как они работают, закладывает основу для более продвинутых методов.
Здесь я в основном представлюБионическая трансформацияиИзоморфная диаграмма.
Бионическая трансформация.
Аффинное преобразование является простейшей формой преобразования. Эти преобразования такжелинейный, так как они удовлетворяют следующим свойствам.
- Линии сопоставляются с прямыми линиями
- точка-точка
- параллельные прямые остаются параллельными
Некоторые знакомые примеры биомиметических преобразований:Сковорода,расширение,вращать,резатьиотражение. Кроме того, любая комбинация этих преобразований (например, расширенные вращения) является еще одним биомиметическим преобразованием.
Пример базовой бионической трансформации (изображение предоставлено автором)
Вместо того, чтобы разбивать бионическую трансформацию на разные случаи, более элегантно иметь единое определение. Поэтому мы переходим к использованию матриц в качестве линейных преобразований для определения биомиметических преобразований. Если вы не знакомы с интерпретацией матриц как линейных преобразований пространства, у 3Blue1Brown есть отличное видео на эту тему.
По сути, мы можем думать о бионическом преобразовании как о выполнении какого-то линейного преобразования с матрицей, а затем о компоновке его с каким-то преобразованием.
В двумерном случае уравнение бионического преобразования выглядит следующим образом.
Уравнения для двумерного бионического преобразования (изображение предоставлено автором)
Здесь матрица представляет некоторое линейное преобразование вектора с элементами _(x1_ и _x2_), например отражение, сдвиг, вращение, расширение или комбинацию всех четырех. Стоит отметить, что поскольку преобразование линейное, то оно должно быть и обратимым, поэтому определитель матрицы отличен от нуля. Последним шагом преобразования является передача вектора _[t1_,t2] для перевода завершите вектор _[y1_,y2] преобразование.
Пример 2D-бионической трансформации (изображение предоставлено автором)
Бионические преобразования также можно обобщить на _n_ измерений, используя следующие уравнения.
Уравнения для n-мерных бионических преобразований
Это преобразование сопоставляет вектор _x_ с вектором _y_, применяя линейное преобразование _A_ (где _A_ — обратимая матрица _n×n_), а затем применяет вектор _b_ _ (b_ имеет размерность _n_×1) для преобразования.
Таким образом, биомиметические преобразования можно представить как линейные преобразования, состоящие из некоторых трансляций, и они очень эффективны при модификации изображений для компьютерного зрения. На самом деле предварительная обработка изображений в значительной степени зависит от аффинных преобразований для масштабирования, поворота, сдвига и т. д.
Изоморфная диаграмма.
Гомологическое преобразование - это тип проективного преобразования, мы используем проекцию, чтобы связать два изображения. Гомологические преобразования изначально были введены для изучения изменений в перспективе, и они позволяют людям лучше понять, как меняются изображения, когда мы смотрим на них с разных точек зрения.
Перспектива с использованием изотопной трансформации (источник:Университет Мэриленда).
Изучение изотопов осуществляется путем изучения того факта, что камеры делают разные изображения в зависимости от их положения и ориентации. По сути, изоморфная карта — это преобразование между двумя изображениями одной и той же сцены, но с разных точек зрения. Есть два случая, которые применимы только к изоморфизму (оба предполагают, что мировоззрение может быть смоделировано на плоскости).
- изображениета же камерастрелять, норазные углы(Мир теперь в основном самолет).
- две камеры изразные локациинаблюдатьтот же самолет
Два случая изоморфизма с высоты птичьего полета (изображение предоставлено автором).
Однако, чтобы использовать изоморфные графики, мы должны сначала разработать инструменты для описания результата изображения на камере. Точнее, если мы получимкамераположение/ориентация иплоскость изображения(здесь появляется изображение, свойство камеры), мы должны найти точку в мире (называемуюмировая точка) на плоскости изображения.
Нахождение координат точек на изображении является ключом к изотопному анализу (изображение предоставлено авторами).
Поскольку свет распространяется прямолинейно, мы знаем, что на плоскости изображения появляется мировая точка с декартовыми координатами _(X,Y,Z_), т. е. пересечение плоскости изображения с линией, проходящей через центр камеры и мировую точку ( эта линия — путь, по которому свет достигает камеры).
Однако, чтобы правильно определить эту формулу, мы должны обойти понятие проективной геометрии, т. е.Однородные координаты.
Однородные координаты.
Однородные координаты (илиПроекционные координаты) — еще одна система координат, преимущество которой в том, что формула для однородных координат часто быстрее, чемДекартовы координаты(точка на плоскости X-Y) намного проще. Напротив, изоморфные координаты используют 3 координаты(Икс_',y',z') для представления точек в пространстве (как правило, они используют на одну координату больше, чем декартовы координаты). В качестве бонуса преобразование однородных координат в декартовы координаты относительно просто.
Преобразуйте однородные координаты в декартовы координаты
Обратите внимание, что когда _z'Когда =1, однородные координаты хорошо отображаются в декартовы координаты. Кроме того, когда _z'Когда = 0, мы интерпретируем соответствующую декарту координату как точку бесконечного размера. С учетом того, давайте посмотрим на некоторые приложения гомологичных координат.
Во-первых, прямую в однородных координатах можно представить всего 3 точками. В частности, вы можете использовать _(l_1,l2,l3) для представления строки _l_. Тогда линия состоит из всех точек _p=__(x_,y,z) таким образом, что скалярное произведение _l_ и _p_ равно 0.
Прямая линия, представленная однородными координатами (изображение предоставлено автором
Второе заметное свойство заключается в том, что два балла _p1_ =(Какие,b,c) и _p2_=(из,e,f), линия _l_, проходящая через _p1_ и _p2_, проводится из этих двух точекперекрестное произведение(Операции над двумя векторами, как определено в элементарной линейной алгебре).
Линия между двумя точками в однородных координатах (изображение предоставлено автором)
Последнее заслуживающее внимания свойство состоит в том, что точка пересечения (в однородных координатах) двух прямых _l1_ и _l2_ является точкой _p_, заданной пересечением этих двух прямых.
Пересечение двух прямых в однородных координатах (изображение предоставлено автором
Вооружившись этими свойствами, мы теперь хорошо понимаем формулу изоморфных графов.
Модель пинхол-камеры.
Теперь вернемся к нашей проблеме нахождениямировая точка(ИКС,Y,Z) -- это в декартовых координатах -- для камеры в данном положении и ориентации камерыплоскость изображения.
В частности, мы находим, что мировая точка _(X_,Y,Z, 1) точка _(X' в плоскости изображения,Y',Z'), обе точки являются однородными координатами и связаны уравнением(f_ — константа, описывающая фокусное расстояние камеры).
Однородные координатные соотношения с уравнением мировой точки как однородные координаты на плоскости
Отсюда мы можем преобразовать _(x_',y',z') в декартовы координаты _(x_,y).
Оказывается, матрицу, преобразующую мировые точки в точки на плоскости изображения, можно очень хорошо разложить, что дает нам интуитивно понятный способ понять, что делает матрица.
Матрицу можно понимать как два действия. (1) масштабировать, (2) сжимать до меньшего размера
Однако, поскольку система координат на изображении отличается от декартовой (в пиксельных координатах верхний левый угол равен (0,0)), нам необходимо сделать последнее преобразование, преобразовав однородные координаты плоскости изображения _(x',y',z') в однородныйкоординаты пикселей(у'_,v',w').
Представление координат пикселей (изображение предоставлено автором
Поэтому мы сначала масштабируем наши координаты плоскости изображения (чтобы преобразовать их в пиксели), разделив их на размер пикселей, т.е. _ρu_ в направлении _u_ и _ρv_ в направлении _v_. Вы можете думать об этом как о преобразовании таких единиц, как метры, в пиксели. Далее нам нужно перевести координаты на некоторые _u0_ и _v0_, чтобы начало координат пикселей было на месте. Объединив эти два преобразования, мы получим следующую формулу.
Преобразуйте координаты плоскости изображения в пиксельные координаты.
Наконец, собрав все воедино, мы можем сделать это, поставив мировую точку _(X_,Y,Z, 1) Преобразовать в пиксельные координаты _(u'_,v',w') для завершения нашей модели камеры, где обе заданы в однородных координатах.
Уравнения для модели камеры
Внешние параметры можно рассматривать как термин, который дает нам информацию об ориентации камеры (хранится в матрице вращения _R_) и положении (хранится в векторе _t_).
На практике мы часто не знаем всех параметров, поэтому можем заменить аппроксимацию матрицей камеры, которая представляет собой просто какую-то матрицу 3х4 (через функцию умножения матриц), это делается путем калибровки камеры.
Также важным свойством матрицы камеры является то, что масштабирование записей _C_ приводит к новой матрице камеры, описывающей ту же камеру. Это потому, что если мы умножим _C_ на некоторую константу _λ_, тооднородныйВсе записи в координатах пикселей также будут масштабированы на _λ_. Однако при преобразовании из однородных в декартовы координаты (показано ранее) λ отменяется, оставляя те же декартовы координаты, что и до масштабирования. Таким образом, стало общепринятым, чтобы нижний правый элемент матрицы камеры был равен 1, поскольку коэффициент масштабирования является произвольным.
Стандартная форма матрицы камеры
Определив эти уравнения, мы очень близки к получению формулы изоморфного графа.
Уравнения для изотопов.
Еще раз давайте проверим настройки камеры-обскуры. В этой настройке наша камера возьмет точку _P_= лежащую на плоскости(X,Y,Z), где однородные пиксельные координаты точки _P_ на плоскости изображения показаны как _(u',v'__,w'). Теперь мы можем использовать хитрый прием при выборе системы координат. То есть мы позволяем осям _X_ и _Y_ лежать в плоскости, а _ZОсь указывает вне плоскости. Следовательно, координата _Z_ всех точек на плоскости равна 0, а значит, _P_ имеет вид _P_=(ИКС,Y, 0).
Удобный выбор систем координат** (показаны координаты**Однородный) (изображение предоставлено автором
Теперь, подставив это в наше уравнение камеры и используя _Z_=0, мы получим следующий упрощенный результат.
Воспользуйтесь преимуществом Z=0 в уравнении камеры
Эта новая матрица камеры называетсягомология матрица H, есть 8 неизвестных (поскольку 1 в правом нижнем углу фиксирована). Традиционно записи плоской матрицы синхронного перевода представлены _H_ вместо _C_, как показано на следующем рисунке.
Уравнение для плоской матрицы гомологии
Так как в матрице гомодоменов 8 неизвестных, а каждая мировая точка на плоскости имеет 2 координаты, нам нужноКалибровка камеры по 4 точкам мира, чтобы оценить все записи _H_.
Напомним, что изоморфное изображение — это преобразование, которое мы можем использовать для преобразования одного изображения в другое, когда оба изображения представляют собой изображения одной плоскости, но с разных точек зрения. Математически это преобразование выполняется матрицей гомологии, которая представляет собой матрицу 3 × 3 с 8 неизвестными, которые можно оценить путем калибровки изображения с 4 соответствующими точками (использование большего количества точек дает лучшее приближение, но 4 точки - минимальное требование).
Пример изоморфизма с желтыми точками калибровки (изображение предоставлено автором)
В целом, изоморфные графики — это мощный инструмент, который можно применять для улучшенияреальность(проецировать какое-то изображение в окружающую среду) иизображениеСшивание (объединение нескольких изображений для создания панорамы большего размера) и т. д.