Научная статья на тему 'АЛГОРИТМ ВОССТАНОВЛЕНИЯ ПОВЕРХНОСТИ ОБЪЕКТА ПО ЕГО ИЗОБРАЖЕНИЮ'

АЛГОРИТМ ВОССТАНОВЛЕНИЯ ПОВЕРХНОСТИ ОБЪЕКТА ПО ЕГО ИЗОБРАЖЕНИЮ Текст научной статьи по специальности «Математика»

CC BY
115
17
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ТРИАНГУЛЯЦИЯ ПОВЕРХНОСТИ / ЦЕНТРАЛЬНАЯ ПРОЕКЦИЯ / ПРОСТРАНСТВЕННАЯ ОРИЕНТАЦИЯ ОБЪЕКТА / СИСТЕМА КВАДРАТИЧНЫХ УРАВНЕНИЙ / АЛГОРИТМ ВОССТАНОВЛЕНИЯ

Аннотация научной статьи по математике, автор научной работы — Клячин Алексей Александрович, Клячин Владимир Александрович

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по математике , автор научной работы — Клячин Алексей Александрович, Клячин Владимир Александрович

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

ALGORITHM FOR RESTORING THE SURFACE OF AN OBJECT FROM ITS IMAGE

This paper describes an algorithm for constructing a surface based on the projection of a triangular mesh applied to this surface. In this case, the angles of the mesh triangles are assumed to be known. This algorithm can be applied to determining the orientation of a three-dimensional object from its snapshot, if the object surface has triangular elements with known angles in advance. In addition to the description of the algorithm, the article gives examples of surface restoration (see figures 3, 4), calculates the calculation error for them and examples of the algorithm application in the problem of determining the orientation of buildings from a photograph. As a result, a spatial triangular mesh was reconstructed from a given flat grid (see figure 2), and the calculation error was 6.21e-05. Measurements of the coordinates of a point in the imagesand calculations using the formulas (2) and (3) gave an error on average of 0.84∘.

Текст научной работы на тему «АЛГОРИТМ ВОССТАНОВЛЕНИЯ ПОВЕРХНОСТИ ОБЪЕКТА ПО ЕГО ИЗОБРАЖЕНИЮ»

www.volsu.ru

МОДЕЛИРОВАНИЕ, ИНФОРМАТИКА И УПРАВЛЕНИЕ

DOI: https://doi.oгg/ШЛ5688/mpcm.j'volsu.202Ы.2

УДК 514.142.2+514.174.6 Дата поступления статьи: 12.01.2021

ББК 22.19 Дата принятия статьи: 12.02.2021

АЛГОРИТМ ВОССТАНОВЛЕНИЯ ПОВЕРХНОСТИ ОБЪЕКТА ПО ЕГО ИЗОБРАЖЕНИЮ1

Алексей Александрович Клячин

Доктор физико-математических наук,

заведующий кафедрой математического анализа и теории функций, Волгоградский государственный университет Aleksey.klyachin@volsu.ru, klyachin-aa@yandex.ru https://orcid.org/0000-0003-3293-9066

просп. Университетский, 100, 400062 г. Волгоград, Российская Федерация

Владимир Александрович Клячин

Доктор физико-математических наук,

заведующий кафедрой компьютерных наук и экспериментальной математики, Волгоградский государственный университет klyachin.va@volsu.ru, klchnv@mail.ru https://orcid.org/0000-0003-1922-7849

просп. Университетский, 100, 400062 г. Волгоград, Российская Федерация

Аннотация. В настоящей работе описывается алгоритм построения поверхности по проекции треугольной сетки, нанесенной на эту поверхность. § При этом предполагается известным углы треугольников сетки. Данный ал-

< горитм может быть применен к определению ориентации трехмерного объекта

по его снимку, если на поверхности объекта есть треугольные элементы с

см

РЗ

® наперед известными углами. Помимо описания алгоритма, в статье приводят-

^ ся примеры восстановления поверхности, вычисляется для них погрешность

расчетов и примеры применения алгоритма в задаче определения ориентации зданий по фотоснимку.

Ключевые слова: триангуляция поверхности, центральная проекция, ч пространственная ориентация объекта, система квадратичных уравнений, ал-

горитм восстановления.

<

к к ¡г

Введение

В настоящей статье рассматривается задача построения каркаса поверхности, если известна его центральная проекция на некоторую плоскость. Эту задачу можно отнести к общей задаче фотограмметрии при анализе одиночного снимка. Нужно отметить, что задача восстановления поверхности возникает и при сканировании, объекта, когда карта глубин имеет дефекты и искажения [1], и когда поверхность строится по облаку точек [7], и когда сама поверхность обладает свойством зеркальности [6]. Вообще говоря, однозначно определить пространственные координаты точки по ее проекции нельзя, однако при имеющейся дополнительной информации это сделать удается. Например, если известна высота съемки и то, что искомые точки располагаются на горизонтальной плоскости [5]. Другой дополнительной информацией могут быть известные углы между некоторыми точками в пространстве. Простейшей здесь задачей является задача нахождения вершин пространственного треугольника по координатам проекций его вершин при известных углах треугольника. Данная задача рассматривалась в работе [4]. При исследовании задачи о вычислении параметров плоскости пространственного треугольника по его центральной проекции в этой работе были установлены условия существования и единственности решения. Помимо этого, был предложен алгоритм приближенного поиска всех возможных решений задачи при выполнении найденных условий. В настоящей статье мы применяем разработанный алгоритм для восстановления триангулированной поверхности по ее центральной проекции на некоторую плоскость, а также для определения пространственной ориентации здания по его фотоснимку. Дадим необходимые обозначения и более точную формулировку задачи.

Мы предполагаем, что центральная проекция имеет центр в начале координат, а проектирование происходит на плоскость г = й. Таким образом, центральная проекция имеет вид

'хс1

(z.V. г) ^ (X.Y

где (х,у, z) — точка в пространстве, величины X, Y есть координаты проекции этой точки в плоскости z = d.

Пусть в пространстве расположена поверхность S, заданная уравнением z = f(x, у), где (х, у) принадлежит некоторой плоской области Q. Мы предполагаем, что на поверхности S задана треугольная сетка в виде набора треугольников (Tfc1, вершинами которых являются точки из конечного набора (Д}™ 1, лежащие на поверхности S. Пусть (xi, г/i, Zi) — координаты точек P¿, где Zi = f(xi, y¿). Мы будем предполагать, что этот набор треугольников образует триангуляцию поверхности S, то есть каждая точка Pi принадлежит какому-то треугольнику Тк только в качестве его вершины, а треугольники могут пересекаться только по своим сторонам. Через afc, вк, Yfc будем обозначать углы треугольника Тк. Пусть Qi,i = 1,..,m — центральные проекции точек Pi. Тогда Qi = (Xi,Yi,d) и

v _xd v _ yid

xí = —, yÍ = —.

Задача состоит в следующем. Зная координаты точек Q¿, способ соединения их в треугольники и углы этих треугольников afc, вк, Yfc, требуется найти координаты точек (xi, yi, Zi). Под способом соединения мы понимаем набор из троек натуральных чисел (i1, ifc, ifc), к = 1,..., N, означающих номера точек Pi, которые образуют треугольник Tfc.

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

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

Р (и,ь) = а1и2 + а2иу + а3ь2 + а4и + а5у + а6 =0, т

С(и, ь) = Ь1и2 + Ь2иь + Ь3у2 + Ь4и + Ь5ь + Ь6 =0,

{

где коэффициенты уравнений известны и вычислены через углы исходного треугольника и углы его проекции [4]. Неизвестные переменные и,у имеют такой смысл. Если искомые вершины треугольника Р1, Р2, Р3, то

И |Рз|

и = т' " = щк.

Алгоритм решения этой системы уравнений следующий:

1) Определяется прямоугольник Я = [и1,и2] х [у1,у2\ в плоскости параметров (и,ь), в котором расположены корни данной системы уравнений. Если кривая второго порядка из системы (1) является эллипсом, то мы рассматриваем прямоугольник, описанный вокруг него. Если обе кривые являются эллипсами, то берем пересечение таких прямоугольников.

2) Проводя прямые линии и = (и1 + и2)/2 и V = (ь1 + ь2)/2, прямоугольник Я разбивается на четыре равных прямоугольника Я1 ,Я2,Я3,Я4. Далее выбираются из этих прямоугольников только те, каждый из которых пересекает обе кривые второго порядка, соответствующие уравнениям системы (1). Проверка пересечения осуществляется так. Рассматривая каждое уравнение, мы проверяем, имеется ли точка пересечения соответствующей кривой со сторонами прямоугольника, что сводится к вопросу о количестве корней некоторого квадратного уравнения.

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

Отметим, что с помощью данного алгоритма мы найдем пары (и, у), которые позволят вычислить все вершины треугольника. Получим формулы для этого. Зафиксируем треугольник, и пусть Р^, Р^2, — его вершины. Если известна величина |Р^ |, то получаем такие формулы:

PI IP- I IP-

р. = п. р. = и \£ъ±п. р. = v |П11 о

Для вычисления нормального вектора плоскости треугольника мы используем следующие формулы:

N = -¿^, (2)

х П|,

где

Qi 2 Qii ~> Qi3 Qii

r v-2 ^ 'П

ь = ^^—Г _ 77^—Г, П = v i

|&2 | ' |^з1 1^1 Г

Отметим, что точки можно вычислить и с помощью таких формул:

Р. _ МО- р. _ П. ^) р, _ 0, ) (3)

Рис. 1. Поиск решений системы уравнений (1)

Описание алгоритма восстановления поверхности

Как было отмечено выше, треугольник по своей центральной проекции восстанавливается с точностью до гомотетии. Однако, даже если зафиксировать одну его вершину, то и в этом случае однозначного решения может не получиться (см. работу [4]). Это связано с тем, что система (1) может иметь не единственное решение. В то же время с помощью описанного выше алгоритма можно найти все приближенные решения системы (1). По этим решениям легко определяются из формулы (2) нормали плоскостей, в которых может лежать искомый треугольник. Поэтому основной проблемой при восстановлении поверхности является выбор одной из вычисленных нормалей.

Итак, нам дан набор точек {^г}™! с координатами (Х^,!^). Так же нам известно, что треугольник Тк образован вершинами с номерами (г\, , ), то есть Тк _

_ ДР^1 Ргз. Нужно отметить, что такая конструкция носит название триангуляции

к к к

и используется нами в разных задачах аппроксимации интегралов [3] и дифференциальных операторов [2]. Для восстановления поверхности мы фиксируем определенный порядок прохода по треугольникам сетки, чтобы нормаль соседнего треугольника уже была вычислена. Поэтому, мы считаем, что задан набор чисел щ,П2,...,Пк, которые имеют следующий смысл. Во-первых, полагаем п\ _ 1. Во-вторых, пг < г есть номер некоторого треугольника, который имеет общую сторону с треугольником Тг. Как было сказано выше, для каждого треугольника Тк с помощью системы (1) вычислены векторы нормали Й1,..,Й)к плоскостей, в которых может находиться искомый треугольник, и таких, что (N1 ,е3) > 0, е3 _ (0, 0,1).

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

1) Обозначим через N1 нормаль плоскости первого треугольника.

2) Продолжаем с к = 2. Выбираем треугольник Тк и вычисляем все векторы N¡1,.., М1кк.

3) Находим такой номер ]к, на котором достигается минимум величины — МПк 3 = 1, 2,..,1к.

4) Полагаем Ик = Й3кк.

5) Пусть Я одна из общих вершин треугольников Тк и ТПк. Так как Пк < к, то вершины треугольника ТПк вычислены. В частности, известны координаты точки Я. Другие две вершины треугольника Тк вычисляем по формулам (3).

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

Пример 1. Рассмотрим поверхность, заданную уравнением г = —0.2ж2 + 0.5у2 + + 3, где (х,у) € П = [0, 2] х [0, 2]. Разобьем прямоугольник П на рд прямоугольников прямыми х = Хг,у = у], где

Хг = 2i/'p, г = 0,...,p, Уз = 2j/q, 3 = 0,...,д.

Каждый такой прямоугольник разделим диагональю на два треугольника. В итоге получим (р + 1)(д + 1) точек и 2рц треугольников. Мы считаем, что координаты проекций точек (хг,уз), % = / (хг,уз) известны. Взяв р = д =10, мы получили набор точек

Уз ).

В результате по заданной плоской сетке (см. рис. 2) была восстановлена пространственная треугольная сетка, причем погрешность вычислений составила 6.2^-05. Приведем изображение полученной поверхности с нескольких ракурсов (см. рис. 3).

X

Рис. 2. Проекция треугольной сетки, нанесенной на эту поверхность

Определение ориентации здания по фотоснимку

Рассмотрим задачу определения угла поворота здания относительно плоскости фотокамеры. Для этого можно воспользоваться описанным выше алгоритмом. Будем считать, что здание имеет архитектурные элементы (треугольные или четырехугольные),

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

Рис. 3. Восстановленная поверхность

Для примера рассмотрим снимок 3D модели здания, выполненного в программе Blender с известным углом поворота вокруг вертикальной оси. Прежде чем решать систему уравнений (1), мы определили коэффициент для перевода координат в пикселах в те же единицы измерения, которые установлены в программе Blender. Это позволило воспользоваться значением фокусного расстояния (значение параметра d) из той же программы. Чтобы минимизировать погрешность вычислений, мы рассмотрим достаточно удаленные друг от друга три точки на снимке, как показано на рисунке 4 а. Координаты этих точек на самом изображении в пикселах Q0 = (97, 36), Ql = (98, 88) и Q2 = (146,85). Решая соответствующую этому случаю систему (1), мы получили значение угла поворота, равное 0, 499. Настоящее значение угла равно 0, 481, что соответствует погрешности в 0, 018 радиана, или приблизительно 1, 03°.

Для проверки были рассмотрены и другие тройки точек. Например, выделим точки, как указано на рисунке 4б. Координаты этих точек Q0 = (54,33), Ql = (54,89) и Q2 = (91, 35).

Решая соответствующую этому случаю систему (1), мы получили значение угла поворота, равное 0, 468, что соответствует погрешности в 0, 013 радиана, или приблизительно 0, 71°. Остальные измерения и вычисления дали погрешность в среднем 0, 84°. В следующей таблице приводятся результаты вычисления угла поворота по ряду измерений опорных точек Q0,Ql и Q2 по снимкам здания с разных позиций.

в.

б)

Рис. 4. Снимок здания с отмеченными точками

Учитывая, что изображения имели разрешение всего лишь 240 х 135 пикселей, неизбежными были ошибки при измерениях координат точек Qo, Q\ и Поэтому, полученную погрешность в вычислении углов поворота здания можно считать вполне удовлетворительной.

Точное значение угла поворота Вычисленное значение угла поворота Погрешность

27, 55° 28, 590° 1, 03°

13,80° 14,43° 0, 63°

27, 55° 26,81° 0, 74°

13,80° 13,12° 0, 68°

17, 01° 18,22° 1, 20°

Заключение

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

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

ПРИМЕЧАНИЕ

1 Исследование выполнено при финансовой поддержке РФФИ и Администрации Волгоградской области в рамках научного проекта № 19-47-340015.

СПИСОК ЛИТЕРАТУРЫ

1. Анализ основных этапов метода реконструкции трехмерных моделей поверхностей объектов / О. С. Левина, В. В. Воронин, М. М. Письменскова, Н. В. Гапон, А. В. Кур-кина // Информационные технологии. Радиоэлектроника. Телекоммуникации. — 2016. — № 6 (2). — C. 25-32.

2. Клячин, А. А. Аппроксимация уравнений с частными производными 4-го порядка в классе кусочно-полиномиальных функций на треугольной сетке / А. А. Клячин, В. А. Кля-чин // Математическая физика и компьютерное моделирование. — 2019. — № 22 (2). — C. 65-72.

3. Клячин, А. А. Оценка погрешности вычисления площади при кусочно-полиномиальной аппроксимации / А. А. Клячин, А. Г. Панченко // Математическая физика и компьютерное моделирование. — 2020. — № 23 (2). — C. 22-30.

4. Клячин, А. А. Теоремы существования и единственности решения обратных задач проективной геометрии для 3D реконструкции по фотоснимкам / А. А. Клячин, В. А. Клячин // Чебышевский сборник. — 2020. — № 21(4). — C. 117-128.

5. Лобанов, А. Н. Фотограмметрия / А. Н. Лобанов. — М. : Недра, 1984. — 552 с.

6. Fixed Viewpoint Mirror Surface Reconstruction Under an Uncalibrated Camera / K. Han, M. Liu, D. Schnieders, K.-Y. K. Wong // IEEE Transactions on Image Processing. — 2021. — № 30. — P. 2141-2154. — DOI: 10.1109/TIP.2021.3049946.

7. Luo, Y. DeepDT: Learning Geometry From Delaunay Triangulation for Surface Reconstruction / Y. Luo, Z. Mi, W. Tao // arXiv preprint. — 2021. — P. 1-25.

REFERENCES

1. Levina O.S., Voronin V.V., Pismenskova M.M., Gapon N.V., Kurkina A.V. Analiz osnovnykh etapov metoda rekonstruktsii trekhmernykh modeley poverkhnostey obyektov [Analysis of the Main Stages of the Method of Reconstruction of Three-Dimensional Models of Object Surfaces]. Informatsionnye tekhnologii. Radioelektronika. Telekommunikatsii [Information Technology. Radio Electronics. Telecommunications], 2016, no. 6 (2), pp. 25-32.

2. Klyachin A.A., Klyachin V.A. Approksimatsiya uravneniy s chastnymi proizvodnymi 4-go poryadka v klasse kusochno-polinomialnykh funktsiy na treugolnoy setke [Approximation of 4th Order Partial Differential Equations in the Class of Piecewise Polynomial Functions on a Triangular Grid]. Matematicheskaya fizika i kompyuternoe modelirovanie [Mathematical Physics and Computer Simulation], 2019, no. 22 (2), pp. 65-72.

3. Klyachin A.A., Panchenko A.G. Otsenka pogreshnosti vychisleniya ploshchadi pri kusochno-polinomialnoy approksimatsii [Estimation of the Area Computation Error for Piecewise Polynomial Approximation]. Matematicheskaya fizika i kompyuternoe modelirovanie [Mathematical Physics and Computer Simulation], 2020, no. 23 (2), pp. 22-30.

4. Klyachin A.A., Klyachin V.A. Teoremy sushchestvovaniya i edinstvennosti resheniya obratnykh zadach proektivnoy geometrii dlya 3D rekonstruktsii po fotosnimkam [Existence and Uniqueness Theorems for Solutions Inverse Problems of Projective Geometry for 3D Reconstruction From Photographs]. Chebyshevskiy sbornik [Chebyshev Collection], 2020, no. 21(4), pp. 117-128.

5. Lobanov A.N. Fotogrammetriya [Photogrammetry]. Moscow, Nedra Publ., 1984. 552 p.

6. Han K., Liu M., Schnieders D., Wong K.-Y.K. Fixed Viewpoint Mirror Surface Reconstruction Under an Uncalibrated Camera. IEEE Transactions on Image Processing, 2021, no. 30, pp. 2141-2154. DOI: 10.1109/TIP.2021.3049946.

7. Luo Y., Mi Z., Tao W. DeepDT: Learning Geometry From Delaunay Triangulation for Surface Reconstruction. arXiv preprint, 2021, pp. 1-25.

ALGORITHM FOR RESTORING THE SURFACE OF AN OBJECT

FROM ITS IMAGE

Aleksey A. Klyachin

Doctor of Physical and Mathematical Sciences, Head of the Department of Mathematical Analysis and Function Theory, Volgograd State University

Aleksey.klyachin@volsu.ru, klyachin-aa@yandex.ru https://orcid.org/0000-0003-3293-9066

Prosp. Universitetsky, 100, 400062 Volgograd, Russian Federation

Vladimir A. Klyachin

Doctor of Physical and Mathematical Sciences, Head of the Department of Computer

Science and Experimental Mathematics,

Volgograd State University

klyachin.va@volsu.ru, klchnv@mail.ru

https://orcid.org/0000-0003-1922-7849

Prosp. Universitetsky, 100, 400062 Volgograd, Russian Federation

Abstract. This paper describes an algorithm for constructing a surface based on the projection of a triangular mesh applied to this surface. In this case, the angles of the mesh triangles are assumed to be known. This algorithm can be applied to determining the orientation of a three-dimensional object from its snapshot, if the object surface has triangular elements with known angles in advance. In addition to the description of the algorithm, the article gives examples of surface restoration (see figures 3, 4), calculates the calculation error for them and examples of the algorithm application in the problem of determining the orientation of buildings from a photograph. As a result, a spatial triangular mesh was reconstructed from a given flat grid (see figure 2), and the calculation error was 6.21e-05. Measurements of the coordinates of a point in the images and calculations using the formulas (2) and (3) gave an error on average of 0.84°.

Key words: surface triangulation, central projection, object spatial orientation, system of quadratic equations, algorithm for restoring.

i Надоели баннеры? Вы всегда можете отключить рекламу.