Одной из важных практических задач компьютерной графики является наглядная визуализация реальных сцен окружающего мира. Например, визуализация городской обстановки может использоваться при проектировке новых строений в существующей городской застройке, для визуальной ориентации в городском пространстве различных служб, а также для туристической и развлекательной сфер деятельности. Однако моделирование таких сцен с помощью трехмерных графических редакторов требует большого количества времени и натурных измерений. Помочь в решении этой задачи могут как спутниковые и аэрофотоснимки, так и накопленные за предыдущие годы топографические планы местности. Необходимо только с помощью методов компьютерной графики извлечь из них всю возможную информацию. На сегодняшний день уже существует ряд методов, направленных на решение задачи трехмерной реконструкции объектов городской обстановки, используя фотоснимки в качестве исходных данных, в основе которых лежат алгоритмы выделения геометрических примитивов [1, 2]. Другой способ, как было сказано выше, заключается в использовании уже существующего топографического плана, как правило, содержащего достаточное количество полезной информации о местности [3–5]. При таком подходе требуется определить геометрическую форму зданий, условно изображенных на топоплане, выделить и распознать служебную информацию о них, а также найти все дополнительные объекты, такие как светофоры, уличные фонари, деревья, клумбы и т.д. Затем эти данные можно преобразовать в трехмерное представление и для большей реалистичности нанести текстуры [6–8].
Начальные данные и постановка задачи
Реконструкция сцены городского окружения – это комплексная задача, которая выпол- няется путем объединения решений ряда подзадач. Каждая такая подзадача имеет свой набор исходных данных, поэтому для детальной реконструкции выберем следующие компоненты.
· Топографический план – черно-белое растровое изображение (рис. 1). Топографический план содержит данные о геометрической форме оснований зданий, количестве этажей в них, типе строений (кирпичные, жилые, нежилые, смешанные и т.п.), расположении таких объектов, как деревья, кусты, светофоры, уличные фонари.
· Географическая привязка топоплана в виде двух точек, для которых известны их географические координаты и координаты на изображении топоплана. Данная информация необходима для построения рельефа сцены и привязки текстур к зданиям.
· Набор текстур сцены. Текстуры – это фотоснимки, на которых скорректирована перспектива. Совместно со снимками принимается информация о географических координатах места съемки и о ее направлении.
Реконструкция объектов городской обстановки по топографическому плану будет выполняться в несколько этапов:
- найти, распознать и выровнять контуры зданий;
- распознать служебную информацию внутри таких контуров;
- построить трехмерную модель каждого здания по выровненному контуру и уточненной информации о здании;
- нанести текстуру на каждое здание в зависимости от его типа и этажности;
- распознать и добавить в сцену дополни- тельные объекты;
- установить найденные здания и дополнительные объекты с использованием геопривязки на рельеф данной местности.
Контуром в рамках данной работы будет называться упорядоченная последовательность точек топоплана, где каждая точка связана с двумя другими. Никакие две точки не образуют пересечения соединяющих их отрезков. При этом соединенные последовательно точки должны максимально точно описывать форму объекта. Количество вершин может сильно различаться в зависимости от того, к какому объекту принадлежит контур. Как правило, контуры зданий имеют небольшое количество точек из-за того, что в большинстве случаев в действительности у них относительно небольшое количество стен. В то же время другие объекты, такие как условные обозначения или текстовая информация, содержат больше точек контура, так как они плотно расположены друг к другу и каждая точка важна для понимания формы объекта.
Построение моделей зданий
Модели зданий будут представляться прямоугольными призмами. Высота моделей определяется количеством этажей, информация о числе которых находится внутри каждого здания. В основании моделей будут контуры, указанные на топоплане. Для определения контуров необходимо выделить их из изображения.
Существует ряд алгоритмов и методик выделения контуров объектов на цифровых фотоснимках. Часть этих методов (Превитта, Собеля, Робертса, Канни-детектора и др. [9]) основаны на фильтрации изображения некоторым окном-матрицей и нахождении отклика в каждой точке изображения. Достоинством данных методов является их универсальность, так как они позволяют обрабатывать не только черно-белые изображения, но и цветные. Однако данные алгоритмы не могут быть применены к выделению зданий на топоплане, так как они не способны получить упорядоченную последовательность точек контура.
Получить такую последовательность можно с помощью волнового алгоритма [10], который предназначен для поиска пути выхода из лабиринта. С помощью предложенной авторами модификации этого алгоритма будут выделяться и упорядочиваться все точки контура объекта. Последовательно во всех возможных точках топоплана запускается волновой алгоритм, который сформирует массив всех контуров на изображении. Каждый контур изначально представляется в виде набора неупорядоченных точек, но после повторного применения волнового алгоритма к этим точкам будет сформирован готовый контур.
Основные этапы волнового алгоритма.
1. Указывается начальная точка, из которой должна распространяться волна внутри контура. Начальной точке с координатами x и y устанавливается некоторое начальное числовое значение. Указанная начальная точка становится текущей.
2. Осуществляется поиск всех точек на топоплане, которые имеют то же значение, что и текущая точка.
3. Соседним с текущей точкам устанавливается значение, на единицу большее, чем у текущей.
4. Все найденные соседние точки становятся текущими, процесс повторяется с шага 2.
5. Соседние точки, являющиеся преградами (частью контура), запоминаются.
6. Если ни одной соседней относительно текущей точки не найдено, работа алгоритма завершается.
Полученный в результате набор точек преград является неупорядоченной последовательностью. Упорядочение происходит аналогично с помощью волнового алгоритма. В этот раз он запускается по найденным точкам преград (рис. 2).
Результатом выполнения алгоритма будет массив контуров, каждый из которых является упорядоченной последовательностью точек. На основании данного массива и служебной информации, располагающейся внутри них, строятся модели зданий. Зная количество эта- жей здания kэт. (указано внутри зданий) и задав некоторое значение высоте одного этажа hэт., получим трехмерный каркас строения (рис. 3).
Высота одного этажа – условная величина. Она не может быть явно определена для каждого здания, поэтому устанавливается и может изменяться в зависимости от масштаба топоплана. Стандартная высота потолков в основном варьируется в диапазоне 2,5–3,2 м. Если для топоплана задан масштаб, то линейные пиксельные расстояния можно привести к метрическим.
Для большей визуальной реалистичности для каждого здания генерируется крыша. Из информации на топоплане данные о крыше получить невозможно, поэтому крыша будет выбираться для каждого здания случайным образом из определенного набора нескольких видов заготовок (рис. 4).
Очевидно, что все заготовленные виды крыш являются частным случаем плоской со скатами. Выбирая случайным образом ее параметры (выступ, высота, размеры верхнего среза), получим набор разнообразных видов крыш. Это позволит придать сцене неформализованный вид.
Текстурирование
Текстурирование зданий осуществляется с помощью фотоснимков реальных объектов при наличии следующих данных:
- географическое положение и направление камеры;
- координаты углов стены на фотоснимке для коррекции перспективы;
- географические координаты всех объектов сцены.
Современные телефоны и планшеты позволяют производить фотоснимки с записью географических координат, определяемых с помощью систем GPS или ГЛОНАСС.
Нахождение углов стены на фотоснимке – довольно сложная и нетривиальная задача, поэтому выделение стены на фотоснимке выполняется вручную. Для этого разработано специальное ПО для мобильных устройств (рис. 5).
На основании выделенных четырех точек стены корректируется перспектива на фотоснимке.
Один снимок содержит следующую информацию: исходный фотоснимок сцены, четыре точки, расставленные по углам текстуры, географическая точка места съемки, данные акселератора о направлении съемки.
Для каждого фотоснимка на модели необходимо определить здание и стену, на которую должна быть нанесена текстура. Каждый снимок содержит данные о географических координатах места и направлении съемки. На основании двух географических точек, применявшихся для построения рельефа, определяются координаты места съемки на топоплане:
где a, b, c – координаты точек на топоплане; A, B, C – географические координаты.
На рисунке 6 представлен топоплан, на котором отмечены вычисленные места фотосъемки с направлением камеры.
Таким образом, все фотоснимки будут перенесены в плоскость топоплана. Определение стены здания, к которой принадлежит фотоснимок текстуры, осуществляется с помощью данных о направлении съемки. На топоплане проводится луч по направлению съемки из точки, с которой она производилась. По каждому зданию определяются стены, с которыми пересекся луч. Из всех этих стен выбирается та, точка пересечения которой ближе остальных к точке съемки (рис. 7).
У этой стены известны линейные размеры высоты и ширины, поэтому к ним приводится размер текстуры после коррекции перспективы (рис. 8).
Таким образом, получается нанесение реальной текстуры на стену здания. Однако обработка больших топографических планов даже с несколькими десятками зданий требует серьезных трудозатрат для получения фотогра- фий текстур. Поэтому, помимо метода нанесения текстур, полученных из фотоизображений, предлагается метод автоматического тексту- рирования с использованием шаблонных текстур (рис. 9), которые просто дают представление о типе здания. На основании распознанной служебной информации каждому зданию будет установлена та или иная текстура, если ранее для нее не была установлена текстура с фотоснимка.
Текстура здания должна составляться из композиции текстур базового набора (рис. 10). По вертикали базовая текстура должна повторяться столько раз, сколько у здания этажей. По горизонтали базовая текстура должна повторяться следующее число раз:
.
Заключение
Предложенная методика выделения контуров на бинарном изображении, основанная на волновом алгоритме Ли, позволяет находить все контуры на всем изображении. При этом каждый контур имеет известное положение и может быть отделим от остальных. Полученные контуры максимально точно описывают формы объектов. Это позволяет классифицировать их более точно, отнеся к одному из типов городских объектов. Особенностью методики является упорядочение последовательности точек контуров, которое производится с помощью волнового алгоритма. Метод позволяет обрабатывать топопланы больших размеров, например (см. http://www.swsys.ru/uploaded/image/2019-3/2019-3-dop/9.jpg, http://www.swsys. ru/uploaded/image/2019-3/2019-3-dop/10.jpg).
Полученные результаты показывают эффективность метода текстурирования сцены по фотоснимкам и их географическим данным. Основными преимуществами метода являются его доступность и простота в использовании, так как не требуется применение сложных тех- нических устройств. Время реконструкции сцены зависит преимущественно только от количества используемых фотографий зданий и размеров топографического плана.
Разработано ПО (см. http://www.swsys.ru/ uploaded/image/2019-3/2019-3-dop/30.jpg), которое позволяет полностью пройти все этапы реконструкции с возможностью ручных корректировок сцены.
Общая схема метода реконструкции, кото- рая используется в разработанном ПО, пред- ставлена на рисунке 11.
Таким образом, описанный подход является эффективным инструментом для реконструкции сцен городской обстановки, апробированным на реальных топопланах г. Владивостока. Он позволяет в автоматическом режиме распознать и восстановить порядка 95 % зданий и около 80 % дополнительных объектов, указанных на топографическом плане.
Литература
1. Khattak S.R., Buckstein D.S., Hogue A. Reconstructing 3D buildings from LIDAR using level set methods. Proc. Intern. Conf. CRV-2013, Regina, SK, Canada, 2013, pp. 151–158. DOI: 10.1109/CRV.2013.38.
2. Santoso F., Garratt M.A., Pickering M.R., Asikuzzaman M. 3D mapping for visualization of rigid structures: a review and comparative study. Sensors Journal IEEE, 2016, vol. 16, no. 6, pp. 1484–1507. DOI: 10.1109/JSEN.2015.2498940.
3. Кудряшов А.П., Соловьев И.В. Распознавание контуров зданий на топографическом плане для реконструкций городских сцен // Вестн. компьютер. и информ. технологий. 2015. № 2. С. 3–8. DOI: 10.14489/vkit.2015.02.pp.003-008.
4. Кудряшов А.П., Соловьев И.В. Реконструкция городской обстановки с учетом рельефа местности c использованием топографического плана и сервисов Google Maps // Информационные технологии. 2017. № 5. C. 382–387.
5. Чернов А.В., Чупшев Н.В. Автоматическое распознавание контуров зданий на картографических изображениях // Компьютерная оптика. 2017. № 31. С. 101–103.
6. Гуненко И.В., Салтыкова Ю.С., Середович В.А., Комиссаров Д.В. Технология построения трехмерных моделей городов на основе топографических планов // Гео-Сибирь: матер. конф. 2006. Т. 1. № 2. С. 153–157.
7. Хрящев Д.А. Об одном методе выделения контуров на цифровых изображениях // Вестн. АГТУ. 2010. № 2. С. 181–187.
8. Lin B.C., You R.J. Tensor-based quality prediction for building model reconstruction from LIDAR data and topographic map. Int. Arch. Photogramm. Remote Sens. Spatial Inf. Sci., 2012, vol. XXXIX-B7, pp. 437–441. DOI: 10.5194/isprsarchives-XXXIX-B7-437-2012.
9. Canny J.A. Computational approach to edge detection. IEEE Trans. PAMI. 1986, vol. PAMI-8, no. 6, pp. 679–698.
10. Lee C.Y. An algorithm for path connections and its applications. IRE Transactions on Electronic Computers, 1961, vol. EC-10, no. 2, pp. 346–365.
References
1. Khattak S.R., Buckstein D.S., Hogue A. Reconstructing 3D buildings from LIDAR using level set methods. Proc. Intern. Conf. CRV-2013. Regina, SK, Canada, 2013, pp. 151–158. DOI: 10.1109/CRV.2013.
38.
2. Santoso F., Garratt M.A., Pickering M.R., Asikuzzaman M. 3D mapping for visualization of rigid structures: a review and comparative study. Sensors Journal IEEE. 2015, vol. 16, no. 6, pp. 1484–1507. DOI: 10.1109/JSEN.2015.2498940.
3. Kudryashov A.P., Solovyov I.V. Recognition of buildings contours on a topographical plan to reconstruct urban scenes. Herald of Computer and Information Technologies. 2015, no. 2, pp. 3–8. DOI: 10.14489/vkit.2015.02, pp.003–008 (in Russ.).
4. Kudryashov A.P., Solovyov I.V. Urban setting reconstruction taking into account a topographical relief using a topographic plan and Google Maps services. Information Technologies. 2017, no. 5, pp. 382–387
(in Russ.).
5. Chernov A.V., Chupshev N.V. Automatic recognition of building contours on cartographic images. Computer Optics. 2017, no. 31, pp. 101–103 (in Russ.).
6. Gunenko I.V., Saltykova Yu.S., Seredovich V.A., Komissarov D.V. The technology of building three-dimensional models of cities based on topographic plans. Proc. Conf. Geo Siberia. 2006, vol. 1, no. 2,
pp. 153–157 (in Russ.).
7. Khryashchev D.A. On one method of contour selection on digital images. Vestn. of Astrakhan State Tech. Univ. Series: Management, Computer Science and Informatics. 2010, no. 2, pp. 181–187 (in Russ.).
8. Lin B.C., You R.J. Tensor-based quality prediction for building model reconstruction from LIDAR data and topographic map. Int. Arch. Photogramm. Remote Sens. Spatial Inf. Sci. 2012, vol. XXXIX-B7,
pp. 437–441. DOI: 10.5194/isprsarchives-XXXIX-B7-437-2012.
9. Canny J.A. Computational approach to edge detection. IEEE Trans. PAMI. 1986, vol. PAMI-8, no. 6, pp. 679–698.
10. Lee C.Y. An algorithm for path connections and its applications. IRE Trans. on Electronic Computers. 1961, vol. EC-10, no. 2, pp. 346–365.