четверг, 2 апреля 2020 г.

Точка сближения перекрещивающихся прямых

Опишу, как производится обработка снимков с дронов не с точки зрения пользователя (на уровне выберите пункт меню и отметьте нужные заклинания), а с другой стороны монитора, как устроена собственно математика. Одна из операций - определить по связующей точке где она находится на Земле, какой широте - долготе - высоте она соответствует.

Получив снимки с беспилотников или дронов, мы имеем сами снимки, паспортные данные на съемочную камеру и простейшую телеметрию. По паспорту можем определить фокусное расстояние (интересует какая есть, а не приведенное к 35 мм кадру), физические ширину и высоту ПЗС, количество пикселов по ширине и высоте. По телеметрии можем определить широту и долготу в градусах, высоту в метрах. Вместе с ними указывается в какой системе координат они даются (на каком эллипсоиде), обычно это WGS-84.

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

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

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

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

Итак, есть 2 скрещивающиеся прямые, обе заданы центральной точкой съемки (в телеметрии указывается широтой - долготой - высотой), углами ориентирования, фокусным расстоянием, положениями пикселов на ПЗС и коэффициентами дисторсии.

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

Зафиксируем обозначения как соответственно центральные точки A и C, а точки на ПЗС как B и D.



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

Мы можем выделить векторы $\overrightarrow{V_1}$ и $\overrightarrow{V_2}$ как направляющие векторы прямой 1 и 2 по разности координат точек A и B и C и D соответственно: $$ \overrightarrow{V_1}=\overrightarrow{AB} $$ $$ \overrightarrow{V_2}=\overrightarrow{CD} $$ Далее полагаем, что эти векторы легко вычисляемы: $$ \overrightarrow{AB}=\overrightarrow{B}- \overrightarrow{A} $$ $$ \overrightarrow{CD}=\overrightarrow{D}- \overrightarrow{C} $$ Линия, где лежит наилучшее сближение, находится на векторе $\overrightarrow{n}$ перпендикулярном как прямой 1 так и прямой 2. Следовательно, вектор $\overrightarrow{n}$ определяем как векторное произведение между $\overrightarrow{V_1}$ и $\overrightarrow{V_2}$: $$ \overrightarrow{n}=\left[ \overrightarrow{V_1},\overrightarrow{V_2}\right] $$ На векторах $\overrightarrow{n}$ и $\overrightarrow{V_1}$ а также на $\overrightarrow{n}$ и $\overrightarrow{V_2}$ строим плоскости с нормалями соответственно $\overrightarrow{n_1}$ и $\overrightarrow{n_2}$. Полагаем что эти нормали далее используются как нормированные: $$ \overrightarrow{n_1}=\frac{[\overrightarrow{n},\overrightarrow{V_1}]}{|[ \overrightarrow{n},\overrightarrow{V_1}]|} $$ $$ \overrightarrow{n_2}=\frac{[\overrightarrow{n},\overrightarrow{V_2}]}{|[ \overrightarrow{n},\overrightarrow{V_2}]|} $$ Эти нормали задают 2 плоскости. С первой плоскостью пересекается вторая прямая, а со второй - первая. Эти пространственные точки нас и интересуют.

Для получения канонического уравнения первой плоскости $$ n_{1x}x + n_{1y}y + n_{1z}z + d_1 = 0 $$ Нужно подставить в него значения компонентов вектора $\overrightarrow{n_1}$ и координаты какой-либо точки, принадлежащей этой плоскости. Выберем точки центров съемки как имеющие не дискретное значение и не подвергнувшиеся не только дискретизации, но также дисторсии, хроматической аберрации, углов наклона, неточностей изготовления ПЗС, смазу, изменению проекции пиксела по высоте объекта и углу на объект от оптической оси снимка. В общем, координата центральной точки съемки наиболее доверительна, и полагаем что датчики GPS замеряют положение именно точки фокуса съемочной системы. $$ n_{1x}A_x + n_{1y}A_y + n_{1z}A_z = - d_1 $$ Точно также вычислим параметры второй плоскости: $$ n_{2x}C_x + n_{2y}C_y + n_{2z}C_z = - d_2 $$ Далее значения $n_1$, $n_2$, $d_1$ и $d_2$ считаем вычисленными.

Точка на прямой 1 всегда может быть задана параметрически: $$ P_{\alpha}=A+(B-A)\alpha $$ И точка на прямой 2 может быть задана соответственно: $$ P_{\beta}=C+(D-C)\beta $$ Это обычное параметрическое задание прямой.

Это всегда может быть сделано если известны 2 несовпадающие точки принадлежащие прямой.

Искомые точки это точки пересечения плоскостей $n_1$ и $n_2$ и ответных им соответственно прямых $P_{\beta}$ и $P_{\alpha}$. Для их нахождения надо найти $\alpha$ и $\beta$ и по уравнениям $P_{\alpha}$ и $P_{\beta}$ получить координаты. Подставим координаты $P_{\beta}$ в уравнение $n_1$. При известном (вычисленном ранее) $d_1$ и получим $\beta$: $$ P_{\beta x}=C_x+(D_x-C_x)\beta $$ $$ P_{\beta y}=C_y+(D_y-C_y)\beta $$ $$ P_{\beta z}=C_z+(D_z-C_z)\beta $$ $$ n_{1x}C_x+n_{1x}(D_x-C_x)\beta+ n_{1y}C_y+n_{1y}(D_y-C_y)\beta+ n_{1z}C_z+n_{1z}(D_z-C_z)\beta=(n_1,A) $$ Выделим здесь $\beta$: $$ (n_1,(D-C))\beta = (n_1,A)-(n_1,C) $$ $$ \beta=\frac{(n_1,A-C)}{(n_1,D-C)} $$ Таким образом получаем точку $P_{\beta}$: $$ P_{\beta}=C+(D-C)\frac{(n_1,A-C)}{(n_1,D-C)} $$ Повторив все то же самое в отношении точки $P_{\alpha}$, получим: $$ P_{\alpha}=A+(B-A)\frac{(n_2,C-A)}{(n_2,B-A)} $$ И в качестве средней точки наилучшего сближения (перекрещивания) можно выбрать полусумму точек $P_{\alpha}$ и $P_{\beta}$: $$ P=\frac{P_{\alpha}+P_{\beta}}{2} $$ Разумеется, все координаты считаются в единой декартовой геоцентрической системе координат, и для получения высот (и координат) точки должны пересчитываться в заданную систему координат на заданном эллипсоиде. В определенном смысле дроны снимают поверхность планеты облетая ее точно так же как они облетали бы какой-нибудь памятник или здание при съемке по горизонтали а не по вертикали. В целом все расчеты ведутся в трехмерном пространстве.

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

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