Processing math: 100%

суббота, 10 ноября 2018 г.

Метрический тензор и аффинное преобразование

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

Для перехода к внутренним нормированным используется смещение до точки привязки и масштабирование. Смещение и масштабирование задаются для каждого из объектов сцены. Та же формулировка используется в ортотрансформировании спутниковых снимков с использованием коэффициентов RPC.

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

Будем считать, что мы получили для каждого изображения аффинное преобразование X=AX для получения коэффициентов растяжений надо найти метрический тензор в новых координатах, полагая для простоты, что в исходных координатах он был единичным. Для единичного метрического тензора скалярное произведение определяется как сумма произведений координат.

Для 3-х мерного пространства, полагая его декартовым, имеем для векторов x и y: S(x,y)=x1y1+x2y2+x3y3 Если выразить вектора x и y в виде матриц - столбцов, то скалярное произведение выражается через произведение этих матриц: XYT Для получения соответственно скалярной величины как действительного числа нужно взять след получаемой матрицы: S(X,Y)=tr(XYT) Если есть преобразование векторов X=AX Y=AY то для них скалярное произведение выражается как S(X,Y)=tr(XYT)=tr(AXYTAT) Здесь конструкция AAT собственно и выполняет роль метрического тензора. Его диагональные члены характеризуют коэффициенты масштабирования по осям.

Проиллюстрируем на двух примерах. Первый - двумерное вращение A=(cos(α)sin(α)sin(α)cos(α)) Для такого преобразования метрический тензор равен единичному: AAT=(1001) Это означает, что преобразования вращения не приводят ни к растягиванию по осям, ни к изменению углов между осями.

Второй пример - преобразование параллелограмма A=(1α01) Для такого преобразования метрический тензор уже не равен единичному: AAT=(1α01)(10α1)=(1+α2αα1) Здесь ось 1 масштабируется в 1+α2 раз, ось 2 не масштабируется и угол между осями изменяется (соответственно, коэффициент α здесь задает котангенс угла параллелограмма).

Если есть последовательность аффинных преобразований X=AX X=BX=BAX то для такой последовательности метрический иензор соответственно равен BAATBT и при аффинных преобразованиях он, следовательно, также преобразуется. Если обозначить метрический тензор через G G=AAT то при преобразовании X=BX он преобразуется G=BGBT Рассмотрим подробнее величину AAT На ее диагонали стоят квадраты коэффициентов масштабирования (или растяжения). AAT=(s21s22s23) Собственно говоря, они и есть искомые элементы.

В силу правила транспонирования и произведения матриц эти диагональные элементы равны s2i=ja2ij Здесь индексация задает сначала строку, затем колонку матрицы. Соответственно, если есть матрица аффинного преобразования aij, то она задает растяжения (или масштабирования) по осям si=ja2ij Необходимо сделать замечание, что весь проделанный вывод основан на скалярном произведении, задаваемом знакопостоянной квадратической формой вида S(x,y)=x1y1+x2y2+x3y3 которую мы и описали на языке матриц. В случае если пространство имеет знакопеременную метрику, необходимо использовать иное определение скалярного произведения.

Для знакопеременных метрик нужно уточнить взятие исходного тензорного произведения матриц S(X,Y)=tr(XYT) здесь X - вектор-столбец, YT - вектор строка, и их произведение есть квадратная матрица с ненулевой диагональю. Например, нужно уточнить операцию получения транспонирования, добавив операцию со сменой знаков. Если есть вектор-столбец X=(x1x2x3) то результатом транспонирования будет вектор-строка XT=(x1x2x3) Можно модифицировать эту часть получения скалярного произведения в матричной форме, заменив ее на транспонирование с умножением на знаковвую матрицу, например при смене знака у второй и третьей оси: ES=(100010001) Тогда скалярное произведение будет задаваться S(X,Y)=tr(XESYT) И в случае декартова пространства использовать просто единичную матрицу ES=(100010001) Соответственно, при аффинном преобразовании можно считать метрическим тензором для знакопеременных метрик произведение G=AESAT И в случае, если преобразование A отсутствует (равно единичному), метрический тензор будет равен знаковой матрице G=ES Для знакопеременных метрических тензоров на диагонали будут соответственно либо квадраты коэффициентов растяжений, либо минус квадраты, в зависимости от знака в знаковой матрице ES.

Комментариев нет:

Отправить комментарий