В предыдущем посте
"Определение аффинного преобразования методом наименьших квадратов"
рассматривалось решение задачи о поиске наилучшего аффинного преобразования для притягивания одного набора точек к другому. Такая задача часто используется в геопривязке изображений, например спутниковых снимков по опорным точкам.на опорном геопривязанном изображении. Решение искалось в общем 3-х мерном варианте.
Первые же тестовые испытания этого решения показывают, что искомое преобразование не находится, поскольку система является переопределенной. В частности, при подстановке всех нулевых высот ($z=0$, $z'=0$) получаем несколько одинаковых уравнений в системе. Естественно, что такая система уравнений не решается. Попробуем разобраться.
Подстановка нулевых высот ($z=0$, $z'=0$) дает их расположение в 3-х мерном пространстве, но в одной плоскости. Естественно, что при фиксации плоскости в 3-х мерном пространстве существует дополнительная степень свободы в искомом аффинном преобразовании. Это, например, преобразование параллелограмма. Собственно говоря, проблема не в том, что значения $z$ и $z'$ нулевые, и не в том что они не нулевые но одинаковые. Они могут быть и совершенно разными, но быть расположенными в одной плоскости. Некоторые программные системы, содержащие функции привязки по опорным точкам, могут даже отказаться от выполнения привязки, если заданы, например, менее 3-х точек.
В случае задания одной или двух точек они рассматриваются как лежащие на одной прямой и системы отказываются решать такую задачу. На самом деле дело не в их количестве. На одной прямой могут лежать и десятки точек. И дело не в том, что в 3-х мерном пространстве точки лежат именно в горизонтальной плоскости, эта плоскость может проходить как угодно.
Нерешаемость системы линейных уравнений выражается в том, что определитель матрицы равен нулю. Это, в отличие от распространенного утверждения, на самом деле не означает что у системы нет решения. Если взять правильное решение и подставить его в уравнение, то уравнение даст истинное выражение. Дело не в отсутствии решения, а в отсутствии единственного решения. У переопределенной системы их бесконечно много. Если вычислить ранг матрицы, то разность между порядком матрицы и ее рангом и будет количество степеней свободы и каждая из них добавляет одну бесконечность решений.
Для нахождения решения в системе имеющей внутренние степени свободы поиск такого решения возможен, если мы в исходное уравнение минимизации добавим дополнительные условия минимизации отклонений самих коэффициентов от ожидаемой величины.
Рассмотрим уравнение поворота в матричной форме: $$ X'=AX $$ $$ A=\left( \begin{array}{cc} \cos(\varphi) & -\sin(\varphi) \\ \sin(\varphi) & \cos(\varphi) \end{array} \right) $$ В случае, если угол $\varphi$ очень мал, коэффициенты матрицы $A$ мало отклоняются от коэффициентов матрицы констант: $$ \left( \begin{array}{cc} \cos(0) & -\sin(0) \\ \sin(0) & \cos(0) \end{array} \right)= \left( \begin{array}{cc} 1 & 0 \\ 0 & 1 \end{array} \right) $$ И, если мы ищем преобразование, очень похожее на такое, то добавим в уравнение минимизации дополнительное требование на малость отклонения диагональных коэффициентов от 1, а внедиагональных от 0: $$ \sum S_{ij} = (a_{11}-1)^2 + (a_{12}-0)^2 + (a_{21}-0)^2 + (a_{22}-1)^2 $$ Это дополнение не содержит сумм по парам точек и по физике величин может оказаться как очень слабым относительно $$ \sum\limits_nS_x^2+\sum\limits_nS_y^2+\sum\limits_nS_z^2 $$ так и очень сильным, перевешивающим отклонения точек. Для объединения двух требований, имеющих различную физическую природу, в одной уравнение, надо ввести весовые коэффициенты $$ k_v\left(\sum\limits_nS_x^2+\sum\limits_nS_y^2+\sum\limits_nS_z^2\right)+ k_{\varphi}\sum S_{ij} = min $$ Физическая природа этих условий отличается в том, что левые функционалы $S_v$ являются метрами или градусами в квадрате (а один градус при грубой оценке составляет примерно 111111 метров), а правые $S_{ij}$ являются безразмерными величинами.
Положим, что у нас используются градусы. Значения вида $xx$ или $yy$ или $xy$ имеют величины примерно около тысяч или нескольких тысяч. Если точек сотни, то $S_v$ имеют величины порядка сотни тысяч. Поэтому, если мы оставим значения коэффициентов $k_v$ и $k_{\varphi}$ единичными, то внесем в исходную систему уравнений погрешность порядка одной стотысячной или меньше. Даже для спутниковых снимков это существенно меньше размера пиксела.
В случае решения задачи в обобщенной форме, конечно, надо оценить величины коэффициентов матрицы получаемой из частных производных $S_v$ и реальных значений координат и по усредненной абсолютной величине сделать оценку весового коэффициента стабилизации $k_{\varphi}$.
Вторая проблема - это задание значений, от которых требуем малое отклонение. В вышеприведенном случае это 1 и 0. В действительности может реально потребоваться поворот на значимый угол и нужно требовать малое отклонение угла от ненулевого $\varphi$. Для этого требуется оценивание ожидаемой величины методами регрессионного анализа, но это уже тема другой статьи.
В технических применениях может оказаться вполне достаточным корректное оценивание весового коэффициента и требование отсутствие поворотов как таковых. В этом случае поворот будет оценен системой уравнений с весом $k_v$ и погрешность, вносимая $k_{\varphi}$, может оказаться несущественной.
Первые же тестовые испытания этого решения показывают, что искомое преобразование не находится, поскольку система является переопределенной. В частности, при подстановке всех нулевых высот ($z=0$, $z'=0$) получаем несколько одинаковых уравнений в системе. Естественно, что такая система уравнений не решается. Попробуем разобраться.
Подстановка нулевых высот ($z=0$, $z'=0$) дает их расположение в 3-х мерном пространстве, но в одной плоскости. Естественно, что при фиксации плоскости в 3-х мерном пространстве существует дополнительная степень свободы в искомом аффинном преобразовании. Это, например, преобразование параллелограмма. Собственно говоря, проблема не в том, что значения $z$ и $z'$ нулевые, и не в том что они не нулевые но одинаковые. Они могут быть и совершенно разными, но быть расположенными в одной плоскости. Некоторые программные системы, содержащие функции привязки по опорным точкам, могут даже отказаться от выполнения привязки, если заданы, например, менее 3-х точек.
В случае задания одной или двух точек они рассматриваются как лежащие на одной прямой и системы отказываются решать такую задачу. На самом деле дело не в их количестве. На одной прямой могут лежать и десятки точек. И дело не в том, что в 3-х мерном пространстве точки лежат именно в горизонтальной плоскости, эта плоскость может проходить как угодно.
Нерешаемость системы линейных уравнений выражается в том, что определитель матрицы равен нулю. Это, в отличие от распространенного утверждения, на самом деле не означает что у системы нет решения. Если взять правильное решение и подставить его в уравнение, то уравнение даст истинное выражение. Дело не в отсутствии решения, а в отсутствии единственного решения. У переопределенной системы их бесконечно много. Если вычислить ранг матрицы, то разность между порядком матрицы и ее рангом и будет количество степеней свободы и каждая из них добавляет одну бесконечность решений.
Для нахождения решения в системе имеющей внутренние степени свободы поиск такого решения возможен, если мы в исходное уравнение минимизации добавим дополнительные условия минимизации отклонений самих коэффициентов от ожидаемой величины.
Рассмотрим уравнение поворота в матричной форме: $$ X'=AX $$ $$ A=\left( \begin{array}{cc} \cos(\varphi) & -\sin(\varphi) \\ \sin(\varphi) & \cos(\varphi) \end{array} \right) $$ В случае, если угол $\varphi$ очень мал, коэффициенты матрицы $A$ мало отклоняются от коэффициентов матрицы констант: $$ \left( \begin{array}{cc} \cos(0) & -\sin(0) \\ \sin(0) & \cos(0) \end{array} \right)= \left( \begin{array}{cc} 1 & 0 \\ 0 & 1 \end{array} \right) $$ И, если мы ищем преобразование, очень похожее на такое, то добавим в уравнение минимизации дополнительное требование на малость отклонения диагональных коэффициентов от 1, а внедиагональных от 0: $$ \sum S_{ij} = (a_{11}-1)^2 + (a_{12}-0)^2 + (a_{21}-0)^2 + (a_{22}-1)^2 $$ Это дополнение не содержит сумм по парам точек и по физике величин может оказаться как очень слабым относительно $$ \sum\limits_nS_x^2+\sum\limits_nS_y^2+\sum\limits_nS_z^2 $$ так и очень сильным, перевешивающим отклонения точек. Для объединения двух требований, имеющих различную физическую природу, в одной уравнение, надо ввести весовые коэффициенты $$ k_v\left(\sum\limits_nS_x^2+\sum\limits_nS_y^2+\sum\limits_nS_z^2\right)+ k_{\varphi}\sum S_{ij} = min $$ Физическая природа этих условий отличается в том, что левые функционалы $S_v$ являются метрами или градусами в квадрате (а один градус при грубой оценке составляет примерно 111111 метров), а правые $S_{ij}$ являются безразмерными величинами.
Положим, что у нас используются градусы. Значения вида $xx$ или $yy$ или $xy$ имеют величины примерно около тысяч или нескольких тысяч. Если точек сотни, то $S_v$ имеют величины порядка сотни тысяч. Поэтому, если мы оставим значения коэффициентов $k_v$ и $k_{\varphi}$ единичными, то внесем в исходную систему уравнений погрешность порядка одной стотысячной или меньше. Даже для спутниковых снимков это существенно меньше размера пиксела.
В случае решения задачи в обобщенной форме, конечно, надо оценить величины коэффициентов матрицы получаемой из частных производных $S_v$ и реальных значений координат и по усредненной абсолютной величине сделать оценку весового коэффициента стабилизации $k_{\varphi}$.
Вторая проблема - это задание значений, от которых требуем малое отклонение. В вышеприведенном случае это 1 и 0. В действительности может реально потребоваться поворот на значимый угол и нужно требовать малое отклонение угла от ненулевого $\varphi$. Для этого требуется оценивание ожидаемой величины методами регрессионного анализа, но это уже тема другой статьи.
В технических применениях может оказаться вполне достаточным корректное оценивание весового коэффициента и требование отсутствие поворотов как таковых. В этом случае поворот будет оценен системой уравнений с весом $k_v$ и погрешность, вносимая $k_{\varphi}$, может оказаться несущественной.
Комментариев нет:
Отправить комментарий