И н ф о р м а т и к а и с и с т е м ы у п р а в л е н и я
УДК: 519.674
А.П. Кудряшов, И.В. Соловьев
РЕКОНСТРУКЦИЯ ТРЕХМЕРНОЙ МОДЕЛИ ГОРОДСКОГО ПРОСТРАНСТВА НА ОСНОВЕ ТОПОГРАФИЧЕСКОГО ПЛАНА
В статье описывается метод реконструкции городского пространства на основе данных топографического плана. Также предлагается метод трехмерной реконструкции объектов городской обстановки по выделенной информации на топоплане. Описывается метод выделения и распознавания служебной информации, с логическим анализом.
Ключевые слова: реконструкция, распознавание, топографический план, контуры, компьютерное зрение.
CITY 3D MODEL DEVELOPED ON THE BASIS OF THE TOPOGRAPHIC PLAN
The paper presents the reconstruction method applied for the city environment and based on the topographic plan data. The authors suggest the 3D reconstruction method with the use of highlighted topographic information which is applied for city objects. The paper describes the procedures of elimination and identification of service information and its logical analysis.
Key words: reconstruction, recognition, topographical plan, contours, computer vision, computer graphics, wave algorithm, classification.
Введение
Трехмерное моделирование реальных объектов является актуальной проблемой компьютерной графики и машинного зрения. Одна из важных практических задач - реконструкция объектов городского пространства. Полученные модели могут быть использованы при проектировке новых строений в существующей городской застройке, для визуальной ориентации в городском пространстве различных служб, а также для туристической и развлекательной сфер деятельности.
На сегодняшний день уже существует ряд методов, направленных на решение задачи трехмерной реконструкции [1, 2, 3] объектов городской обстановки, с использованием фотоснимков в качестве исходных данных, в основе которых лежат алгоритмы выделения геометрических примитивов. Другой способ реконструкции городских сцен заключается в использовании уже существующего топографического плана, который, как правило, содержит достаточное количество полезной информации о местности. При таком подходе требуется определить геометрическую форму зданий, условно изображенных на топоплане, выделить и распознать служебную информацию о них, а также найти все дополнительные объекты - такие как светофоры, уличные фонари, деревья, клумбы и др. Информация об их расположении полезна, поскольку дает некоторое представление о структуре электросетей, дорожных коммуникациях и растительных зонах сцены. Далее эти данные можно преобразовать в наглядное трехмерное представление.
1. Начальные данные и постановка задачи
Топографический план (рис. 1) - растровое черно-белое изображение, содержащее контуры зданий, служебную информацию, данные о ландшафте, названия улиц, изолинии, расположение растительности и других объектов.
Для реконструкции объектов городской обстановки по топографическому плану необходимо выполнить несколько действий:
построить трехмерную модель каждого здания по геометрии его основания и количеству этажей;
текстурировать каждую трехмерную модель здания на основании его внутренней служебной информации и соответствующей ей текстуре;
добавить в сцену трехмерных моделей дополнительные объекты.
К дополнительным объектам на топоплане относятся светофоры, клумбы, деревья и уличные фонари (рис. 2).
*Г Г о! о,
о) 6) в) Й
Рис. 2. Символы на топоплане и соответствующие им 3D-модели: а) фонарь; б) светофор; в) дерево; г) клумба.
Контуром в рамках текущей задачи будет называться множество точек, каждая из которых связана с двумя соседними. Таким образом, контур - замкнутый циклический список точек с дискретными координатами.
На основе топографического плана и набора текстур будет создаваться трехмерная модель сцены на плоской поверхности, состоящая из зданий и дополнительных объектов. Каждое здание представляет прямую призму, в основании которой лежит форма контура.
Реконструкция городской сцены по топоплану будет происходить в несколько этапов.
1. Подготовка. Сначала подготавливается топоплан, на котором могут находиться некоторые препятствия, ухудшающие результат работы алгоритма (например, разрывы в контурах зданий или наложение других объектов на важную информацию).
2. Поиск контуров. На топоплане необходимо выделить все контуры.
3. Классификация. Необходимо определить, к какому типу объектов относится каждый контур.
4. Выделение служебной информации. Для того чтобы определить количество этажей и тип здания, нужно выделить внутри его контура служебную информацию и распознать ее.
5. Построение трехмерной модели и текстурирование. На основе полученных данных осуществляется построение каркаса зданий и добавление на них крыш. И наконец, на трехмерную модель накладываются текстуры для придания сцене большей реалистичности [4, 5].
Рис. 1. Топографический план (фрагмент).
2. Выделение контуров
В качестве алгоритма поиска контуров зданий в рассматриваемом методе используется волновой алгоритм Ли [6]. Как правило, волновой алгоритм применяется для задач поиска кратчайшего пути в лабиринте. В нашем случае путь не имеет никакого значения, нам важно только воздействие алгоритма на ту область, в которой распространяется волна.
Реализация волнового алгоритма достаточна проста. Пусть на прямоугольной дискретной сетке все элементы равны либо 0 (пустые клетки), либо 1 (стены). Выбирается любая пустая клетка и ей присваивается значение 10>1. Далее сканируется вся сетка, и если находится клетка со значением t0, то проверяются ее соседи. Каждой пустой соседней ячейке присваивается значение t 0+1. Если какая-нибудь соседняя клетка является «стеной», то ей присваивается значение -1. Затем вся сетка сканируется вновь, только на этот раз идет поиск ячеек со значением ^+1 и т.д. Алгоритм повторяется до тех пор, пока в замкнутой области, окруженной «стенами», не останется пустых ячеек. Таким образом, множество точек, значения которых -1, будет определять границу контура.
Данная реализация была модифицирована. Для того чтобы сократить время перебора всех ячеек сетки, будет проверяться не вся сетка, а только определенная прямоугольная область. Эта область строится на основании уже найденных стен. Если на каком-то шаге алгоритма была обнаружена стена, то ее координаты проверяются на принадлежность текущей области. Если точка лежит вне ее, то размеры области увеличиваются до требуемого значения.
Такой подход позволяет сократить время выделения граничных точек в несколько раз, что дает возможность значительно сократить время обработки изображений больших размеров.
После работы волнового алгоритма исходная сетка будет содержать информацию о том, где располагаются стены (рис. 3).
0 0 0 0 0 0 0 0 0 1 0 0 0 0 0
1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1
0 0 -1 15 14 13 12 11 12 11 10 9 -1 0 0
-1 -1 -1 -1 -1 -1
0 0 -1 13 -1 15 -1 9 -1 -1 г 1 -1 0 0
-1 -1 -1 -1 -1 -1
0 0 -1 11 10 9 -1 1 -1 5 -1 5 -1 1 1
0 0 -1 10 9 а 7 6 4 4 -1 0 0
1 -1 -1 -1 -1 -1 ч Лш -1
0 1 0 0 0 0 0 -1 4 з 4 -1 0 0
1 -1 -1
0 0 0 0 0 1 1 1 -1 -1 -1 -1 1 0 0
1
Рис. 3. Пример результата работы волнового алгоритма. Значение в ячейках-стенах равно -1.
Весь внешний набор ячеек необходимо преобразовать в упорядоченный список вершин. Для этого также используется волновой алгоритм. На этот раз распространяться волны будут не по четырем, а по восьми направлениям. При последовательном переборе ячеек выбирается первая, у которой значение равно -1. Эта ячейка является началом распространения волнового алгоритма. Пусть на своем пути волны движутся только по ячейкам, значения которых равны -1. Каждой соседней ячейке от волны должно присваиваться значение на единицу меньшее. После того, как алгоритм заполнил все возможные ячейки со значениями -1, начинается последовательный обход ячеек от самого минимального значения к самому максимальному, т.е. начальной ячейке. При обходе значение каждой
пройденной точки изменяется на значение 1 для того, чтобы алгоритм пропускал их при следующем шаге. Таким образом мы получили половину упорядоченных точек контура. Чтобы получить вторую, нужно снова найти точку с минимальным отрицательным значением и снова произвести подъем к начальной. При этом каждая пройденная точка должна записываться в конец ранее найденной последовательности.
По окончании поиска на топоплане образуется множество К, состоящее из п контуров. К i -один из этих контуров, где / = 1..п.
3. Классы объектов
Выделим несколько классов объектов на топоплане: здание, символ служебной информации, фонарь, светофор, дерево, клумба. Чтобы привязать каждый контур к определенному классу, необходимо выделить в каждом классе уникальные черты.
Все объекты сцены должны иметь некоторые координаты на топоплане. Положение здания определяется на основании координат вершин его основания. Дополнительные объекты на топоплане имеют только условное обозначение и не дают никакой информации о себе, кроме своего положения, которое задается опорной точкой (рис. 4).
Положение опорной точки на изображении каждого вида дополнительного объекта устанавливается на этапе подготовки начальных данных.
1*1
о
3.1. Здание
Основная цель выделения контура здания состоит в том, чтобы определить геометрию его основания. Как правило, оно состоит из прямых линий. В связи с этим достаточно выделить только вершины основания, а промежуточные точки между ними можно исключить из контура. В большинстве случаев здания имеют форму основания с небольшим числом вершин. Это дает возможность ввести ограничивающий диапазон количества вершин.
Пусть контур К[ состоит из т точек. Тогда первой характеристикой класса зданий будет условие, что
4 < т < М,
где М - максимально допустимое число вершин в контуре здания. На практике установлено, что его можно принять равным 20. Нижняя граница выбрана с учетом того, что, как правило, зданий треугольной формы крайне мало.
Каждое здание на топоплане характерно тем, что имеет внутри своего контура служебную информацию, которая состоит из отдельных контуров вокруг символов. Следовательно, наличие как минимум одного контура внутри основания является еще одним признаком здания.
Рис.4. Эталонные объекты с опорными точками (отмечены крестом).
3.2. Символ
Внутри контура здания обязательно содержится информация о его типе и количестве этажей в нем. Тип здания зависит от материала, из которого оно сделано, и от того, является ли оно жилым. Если здание сделано из камня, то на топоплане его тип обозначается буквой «К», из металла - «М». Жилые дома обозначаются буквой «Ж», нежилые соответственно буквой «Н». Комбинация этих символом с числом этажей составляет служебную информацию.
Распознавание служебной информации происходит путем сравнивания ее отдельных символов с эталонными знаками, которые встречаются на топопланах. Но чтобы распознать служебную информацию, ее нужно сперва привести к горизонтальному положению, а для этого следует найти угол наклона надписи, который всегда имеет такое же направление, как и одна из стен здания. Либо,
если надпись состоит из нескольких букв, то угол наклона можно найти, проведя линию, проходящую через центры прямоугольников, описанных вокруг каждой буквы. Проведя прямую через две самые удаленные друг от друга точки, можно будет определить приблизительный угол, под которым находится надпись (рис. 5).
Далее берется каждый символ из повернутой надписи и сравнивается с каждым эталонным знаком (рис. 6).
0123456789ЖКМНС/
Рис. 6. Пример базы эталонов, которые встречаются в служебной информации о зданиях.
Рис. 5. Результат поворота надписи на угол, найденный по построенной прямой.
Для этого они приводятся к одинаковому размеру, после чего считается количество элементов, которые, имея одинаковое положение, имеют и одинаковое значение (0 или 1). На основании того, какой эталонный знак обладает наибольшим количеством совпадений с выбранным символом, устанавливается его значение.
Дополнительной проверкой корректности распознанных данных является синтаксический разбор найденной последовательности символов. Он основан на том, что есть всего несколько вариантов записи служебной информации: «К», «Н», «Ж», «КЖ», «КН», «СМЖ», «СМН». Перед надписью может быть число, означающее количество этажей. Если этого числа нет, то у здания один этаж. Синтаксический контроль позволяет исправить ошибочно распознанные надписи. Например, текст вида «0МН» или «НЖ» будет преобразован соответственно в «СМН» и «КЖ».
3.3. Фонарь
Внешний контур фонарного столба на топоплане может накладываться на какой-нибудь другой объект. В связи с этим анализ внешнего контура будет проблематичным. Фонарный столб имеет внутренние контуры, которые не содержат никаких других. Определив эти контуры, можно будет получить представление о положении фонарного столба на топоплане.
Пусть имеется часть некоторого топоплана (рис. 7а), на котором обозначение фонаря накладывается на некоторую линию.
Имеется внутренний контур (выделен серым). Опишем вокруг него прямоугольник, параллельный границам рисунка. Определим его ширину м> и высоту h. Пусть w э и h э - ширина и высота аналогичного прямоугольника на эталоне фонаря (рис. 7б).
Для данных прямоугольников должно выполняться условие (1):
Рис. 7. Прямоугольники описаны вокруг соответствующих контуров на фонаре топоплана и эталона: а) часть топоплана; б) эталон фонаря.
< 5,
где 5 - значение погрешности. На практике значение выбирается равным 0,4.
э
э
Обозначение фонарного столба имеет два параллельных контура, поэтому для точного определения его положения требуется выделить их оба.
Пусть расстояние между центрами прямоугольников, которые описаны вокруг внутренних контуров эталона фонаря, равно L э. Поскольку изображение фонаря на эталоне и топоплане может
быть разных размеров, то определим масштабирующий коэффициент г: г = — . Следовательно, соответствующее расстояние L между описанными прямоугольниками на фонаре топоплана будет: I = zLэ.
Выполним проверку на наличие второго контура фонаря по близости от контура, выделенного на рис.8а. Для этого опишем вокруг каждого контура прямоугольник. У второго внутреннего контура фонаря центр описанного прямоугольника должен располагаться не дальше расстояния г от точки, находящейся на дистанции L от центра описанного прямоугольника вокруг исходного контура (рис. 8).
На практике установлено, что достаточным значением г может быть w. Если второй контур будет обнаружен, то он должен удовлетворять условию (1).
Для того, чтобы повысить вероятность распознавания фонаря, проведем сравнение эталона с некоторой прямоугольной областью топоплана. Данная область должна иметь следующую высоту и ширину: W = zW,
э '
Н = гН ,
э "
где W, Н - соответственно высота и ширина области на топоплане; Wэ, Нэ - соответственно высота и ширина эталона. Левая верхняя точка данной области на топоплане будет иметь координаты х и у, определяемые как: х = — г!э, у = — ztэ,
Рис. 8. Данные для распознавания фонаря: а) произвольный контур; б) фонарь на топопла-не; в) эталонный фонарь.
где I, t - координаты центра описанного прямоугольника вокруг исходного контура на топоплане;;, Ьэ -координаты центра описанного прямоугольника вокруг исходного контура на эталоне. Зная координаты левого верхнего угла, а также высоту и ширину области, сравним ее с эталоном. На практике установлено, что допустимое значение корреляции составляет 0,8 от общего количества точек эталона.
Получив подтверждение того, что область содержит обозначение фонаря, определим его опорную точку:
X = х + гХэ,
У = у + гУэ,
где X, У - координаты опорной точки фонаря на топоплане; X э, Уэ - координаты опорной точки на эталоне.
Таким образом на топоплане выделяется информация о фонарных столбах и их местоположении.
3.4. Светофор
Внутренний контур светофора должен содержать три небольших вложенных контура, центры тяжестей которых примерно выстроены в вертикальную линию. Площади этих контуров должны быть приблизительно одинаковыми.
Другой характеристикой класса является то, что отношение ширины и высоты прямоугольника, описанного вокруг внутреннего контура, должно быть примерно таким же, как и на шаблоне. Данное условие аналогично условию (1). Значение погрешности также составляет 0,4.
Если условия выше выполняются, то выделяем требуемую область на топоплане и сравниваем ее с шаблоном светофора аналогично тому, как это делалось при выделении фонаря. Если порог корреляции будет больше определенного значения, то можно сделать вывод, что светофор на топо-плане обнаружен. Для светофора этот порог составляет 0,8 от количества точек эталона.
3.5. Дерево
Для того, чтобы задать характеристики класса контуров для дерева, воспользуемся пропорциональным отношением ширины и высоты прямоугольника, описанного вокруг внутреннего контура прямоугольника, к соответствующей высоте и ширине контура на шаблоне. Внутренний контур не должен содержать вложенных.
При выполнении данных условий выделим на топоплане требуемую область аналогично тому, как это делалось при распознавании фонаря и светофора, которую сравним с шаблоном дерева. Контур будет определен как дерево, если коэффициент корреляции при сравнении будет больше 0,8.
3.5. Клумба
Клумба обозначается на топоплане обычным кругом, внутри которого ничего не должно быть. А это значит, что при некоторой погрешности отношение квадрата периметра контура к его площади будет равно всегда примерно одному и тому же числу, а именно 4/п ~ 1,27. Это свойство помогает решить проблему инвариантности объекта к масштабированию. Однако, на пиксельном уровне достаточно маленькие контуры не воспринимаются как круги. Опорная точка клумбы лежит в центре контура.
4. Построение трехмерной модели и текстурирование
На основе геометрической формы здания и служебной информации можно построить его упрощенную модель (как говорилось ранее, эта модель будет иметь вид прямоугольной призмы). Зная количество этажей здания к эт и задав некоторое значение высоте одного этажа ¡ьт, получим трехмерный каркас строения (рис. 9) [7].
Для автоматического текстурирования трехмерной сцены предлагается использовать шаблонные текстуры, которые дают представление о типе здания. На основании выделенной служебной информации каждому зданию будет установлена та или иная текстура.
"ЭТ
Z
т
F
/
н
Рис. 9. Образование трехмерного каркаса на основе формы здания.
Результаты
Для демонстрации работы алгоритма была произведена реконструкция нескольких реальных городских сцен.
Все вычисления и замеры эффективности алгоритма были выполнены на персональном компьютере со следующей конфигурацией: Intel i7-2670QM CPU 2,20 GHz, ОЗУ 8 Гб, Windows 7 Home Premium x64.
Алгоритм реконструкции был применен к топоплану (рис. 10).
Рис. 10. Автоматически реконструированная сцена по топоплану: а) без текстур; б) с текстурами.
Как видно из результата реконструкции сцены, удалось воссоздать все объекты на топоплане. Автоматический алгоритм произвел распознавание за 50 секунд на топоплане размером 860х600 пикселей.
Алгоритм реконструкции был применен к топоплану (рис. 11). Размер топоплана 7800х7800. Время реконструкции составило 34 мин.
с!
Рис. 11. Автоматически реконструированная сцена: а) исходный топоплан; б) без текстур; в) с текстурами; г) увеличенная сцена.
Заключение
Полученные результаты свидетельствуют о надежности метода не только в выделении контуров зданий на топографических планах, но и в распознавании служебной информации внутри них, с точностью около 96-98%. Простота и эффективность данного метода делает его приемлемым инструментом для реконструкции трехмерных сцен реальной городской обстановки. Благодаря автоматизации всего процесса реконструкции существует возможность работать со сценами огромных размеров, экономя при этом значительное количество времени.
Данный метод позволяет на основании минимального набора начальных данных осуществлять реконструкции городских пространств с дополнительной информацией о содержании сцены.
1. Vezhnevets, V., Konushin, A., Ignatenko, A. Interactive image-based urban modeling. - PIA-2007, 2007.
2. Barinova, O., Kuzmishkina, A., Vezhnevets, A., Vezhnevets, V.. Learning class specific edges for vanishing point estimation. - Graphicon, 2007.
3. Жук, Д.В., Тузиков, А.В. Реконструкция трехмерной модели по двум цифровым изображениям // Информатика. - 2006. - № 1. - С. 16-26.
4. Collomosse. Fundamentals of Computer Graphics. Lecture Notes. - P. 27 - 50.
5. Shirley, P., Marschner, S. Fundamentals of Computer Graphics. - Third Edition. - P. 91-111.
6. Lee, C.Y. An Algorithm for Path Connections and Its Applications // IRE Transactions on Electronic Computers. - Vol. EC-10, № 2. - P. 364—365.
7. Hughes, J.F. Computer Graphics Principles and Practice. - Third Edition. - P. 505.
8. Кудряшов, А.П., Соловьев, И.В. Распознавание контуров зданий на топографическом плане для реконструкций городских сцен // Вестник компьютерных и информационных технологий. - 2015. - № 2. - С. 3-8