Research and Development of Algorithms and Methods for Constructing Three-dimensional Computer Models of Real Objects
- Authors: Mikhaiylova S.S.1
-
Affiliations:
- Financial University under the Government of the Russian Federation
- Issue: Vol 11, No 1 (2024)
- Pages: 13-24
- Section: MATHEMATICAL MODELING, NUMERICAL METHODS AND COMPLEX PROGRAMS
- URL: https://journals.eco-vector.com/2313-223X/article/view/630994
- DOI: https://doi.org/10.33693/2313-223X-2024-11-1-13-24
- ID: 630994
Cite item
Full Text
Abstract
The article describes a technique for constructing a 3D model of an object based on the resulting images of an object using the Python programming language. As part of the study, an overview of existing solutions and an analysis of the use of algorithms for constructing three-dimensional models were performed. As a result of the work done, software was created that allows you to create a three-dimensional model based on several presented images. The scope of this work is the analysis of an object using a three-dimensional model, as well as the use of three-dimensional terrain models.
Full Text
ВВЕДЕНИЕ
В настоящее время компьютерная графика используется во всех сферах человеческой деятельности. В последние годы практически завершен переход от двумерной компьютерной графики к трехмерной. При этом все большую актуальность обретает вопрос построения трехмерных моделей объектов реального мира. Трехмерные модели используются в широком спектре областей от строительства до печати на 3D-принтерах.
Полученные модели могут быть использованы для 3D-печати, анализа свойств реального объекта, создания моделей. Построение трехмерных моделей объектов дает возможность сохранить все характеристики объекта и наладить его производство с помощью соответствующего оборудования, также такие модели позволяют сохранить образ объектов, которые имеют высокую вероятность быть утерянными или уничтоженными.
Актуальность темы исследования обусловлена возрастающей потребностью в средствах создания 3D-моделей на основе серий двумерных изображений. Использование серий двумерных изображений вызвано тем, что в настоящее время получение качественных двумерных снимков, содержащих не только изображение, но и метаинформацию, является хорошо проработанной задачей. Вместе с тем задача по восстановлению объекта в трехмерном виде требует дальнейшего изучения и совершенствования методов.
Цифровое изображение – это упорядоченный массив информации в памяти, являющийся полутоновым изображением при визуализации. Оно может быть получено как путем сканирования, так и путем съемки на цифровые устройства. В настоящее время последний путь наиболее распространен. Сохраняются цифровые изображения в различных растровых форматах с потерей качества или без потери качества. Суть сохранения сводится к хранению всего массива пикселей или определенного представления данного массива, позволяющего путем снижения качества сэкономить дисковое пространство.
В задачах фотограмметрии в общем случае решается задача по последовательному переводу координат с серии снимков в трехмерную систему координат модели, сопоставления полученных координат и формированию облака точек. В связи с этим важно провести сравнение систем координат, поскольку программная реализация будет связана с переводом координат множества точек, находящейся в плоской системе координат на геоцентрическую систему [7].
1. АЛГОРИТМЫ ПОСТРОЕНИЯ 3D-МОДЕЛЕЙ
Для получения трехмерных моделей объекта существует несколько алгоритмов, которые показывают различные результаты. Наиболее распространены методы 3D-моделирования и 3D-съемки объекта. В основном эти методы работают следующим образом: определяются местоположения точек рассматриваемого объекта, величина координат объекта в искомом пространстве с сохранением масштаба и при необходимости последующем текстурировании.
Ручной метод построения модели объекта основан на построении модели объекта с помощью специализированных программ 3D-моделирования. Процесс построения 3D-модели состоит в построении трехмерной визуальной и объемной модели конкретного объекта. Модель может быть, как абстрактного объекта, так и конкретного реально существующего объекта.
Построение модели проводится путем выполнения нескольких этапов:
1) построение каркаса модели в виде полигональной сетки – осуществляется путем переноса геометрической формы объекта и его масштабных характеристик на модель;
2) задание материалов для областей объекта – задается конкретный тип материала и его характеристики для каждого необходимого участка объекта;
3) настройка параметров освещения объекта;
4) настройка сцены объекта – заключается в задании точек расположения виртуальных камер для зрителя и определении угла проекции изображения;
5) установка внешних воздействий на объект для возможности создания динамической модели;
6) настройка дополнительных эффектов – задаются произвольные эффекты, имитирующие какие-либо условия, например, эффекты имитирующие погодные условия.
Ручной метод построения трехмерной модели имеет ряд преимуществ: точность метрических характеристик за счет точности измерений, возможность задания физических характеристик для глубокого анализа реального объекта, возможность моделирования в условиях отсутствия самого объекта. Существенным недостатком данного метода являются высокие временные затраты на создание модели и высокая трудоемкость.
Метод построения трехмерной модели из набора изображений объекта со всех сторон требует получение изображений объекта с соответствующим перекрытием кадров. Перекрытие между двумя кадрами фотографируемого объекта должно составлять не менее 50%. Невыполнение данного показателя приведет к разрыву в модели. Также необходимо учитывать, что как минимум три смежных снимка должны перекрываться. Выполнение данных требований позволяет получить трехмерную модель, определяя только параметр масштаба. Схема фотографирования объекта с необходимым процентом перекрытия представлена на рис. 1.
Рис. 1. Общая схема фотографирования объекта
Fig. 1. The general scheme of photographing the object
После получения набора снимков необходимого объекта следующим шагом является обработка данного набора. При обработке требуется найти соответствующие точки на каждом изображении и решить систему уравнений, основанную на соответствии этих точек. Нужны положение, фокусное расстояние, ориентация устройства, с которого производилась съемка. Затем необходимо найти одинаковые точки на смежных изображениях. Вычисляем положение точек в системе координат снимка, который мы выбрали за базовый. На следующем шаге полученный набор координат триангулируется для удобства работы при последующем наложении текстуры объекта [8].
Данный способ позволяет получить модель объекта высокого качества путем повышения количества смежных снимков. Недостатками данного метода являются долгий процесс съемки, необходимость стационарного размещения объекта и невозможность потоковой съемки в связи с технологией съемки, при которой требуется остановка съемки на время установки объекта.
Метод построения модели изображения путем сканирования 3D-сканером состоит из двух основных способов: контактного и бесконтактного.
Контактный способ основывается на наличии у сканера специального щупа, с помощью которого выбираются точки объекта для сканирования. Принцип работы данного устройства основан на датчиках, расположенных в каждом шарнире устройства, который имеет крепление щупа. Точность полученной модели напрямую зависит от точности используемых датчиков. Сканеры такого типа предназначены для работы с простыми геометрическими объектами небольших форм.
Бесконтактный способ является более сложным. Для создания каркаса модели применяются лазерные датчики и фотокамера для возможности наложения текстуры на получаемую модель. Применяется двойная система ввода координат точек объекта посредством комбинирования фотосъемки и показаний датчиков.
Метод построения псевдо3D-изображения объекта со стереоизображения заключается в получении модели объекта на основе изображений, полученных с помощью стереокамеры (стереопары). Для построения трехмерной модели необходимы два изображения, на которых определяются точки соответствия путем сравнивания их окрестностей. На следующем шаге изображения выравниваются, что позволяет упростить геометрические преобразования.
Выравнивание изображений происходит с применением к каждому из них специальных проективных преобразований. После выполнения выравнивания и нахождения соответствий строится карта глубин. Для построения карты требуется определить сдвиг между соответствующими точками, что позволяет определить дальность до точки объекта. Для получения 3D-модели необходимо выполнить следующие шаги:
1) определить фундаментальную матрицу;
2) определить матрицы камер по фундаментальной матрице, содержащие параметры камеры и ее пространственные характеристики;
3) определить нахождение соответствующих точек изображения в пространстве;
4) построить облако точек объекта;
5) наложить текстуру.
Для точного определения удаленности точек необходима информация о параметрах матрицы камеры. На основе сдвига точек на изображениях возможно определить их удаленность от камеры.
Основными преимуществами данного метода являются высокая скорость съемки, возможность потокового процесса съемки, а также легкость установки оборудования. Однако данный метод осуществляет возможность получения 2.5D-модели, поскольку съемка с одного ракурса не позволяет снять объект полностью, и тем самым строится только модель поверхности объекта.
2. АЛГОРИТМЫ ВЫЯВЛЕНИЯ ПРИЗНАКОВ
Поскольку в основе алгоритмов построения 3D-моделей лежит выявление признаков необходимо рассмотреть существующие алгоритмы выявления признаков и выполнить их сравнительный анализ. По итогам проведенного анализа необходимо выбрать алгоритм определения признаков, который будет использован при реализации алгоритма построения 3D-модели из серии плоских изображений. Алгоритмы определения признаков используются для поиска особых точек. В случае построения 3D-модели такими точками являются те точки, которые совпадают на различных изображениях и должны быть восстановлены в единую точку 3D-модели. Для повышения качества выявления признаков они должны обладать рядом свойств, такими как точность, репрезентативность, локальность и повторяемость. Дополнительным свойством выявления признаков является эффективность их выявления, поскольку она важна при решении реальных задач.
Существует несколько алгоритмов выявления признаков, краткое описание которых приведено далее.
SIFT. Данный алгоритм основан на вычислении значения магнитуды ориентации градиента в каждом пикселе окрестности (16 × 16 пикселей) ключевой точки. Веса магнитуд считаются пропорциональными плотности математического ожидания в рассматриваемой точке. Окрестность разбивается на квадраты 4 × 4 пикселя, для каждого из которых вычисляется гистограмма ориентированных градиентов. Таким образом получается дескриптор, который впоследствии нормализуется для снижения влияния освещенности на изображении [17].
PCA-SIFT. Является модифицированным вариантом алгоритма SIFT с использованием метода главных компонент. Модификация заключается в выборе большей окрестности точки – 41 × 41 пиксель, а также изменении размерности векторов, в которые занесены значения вычисленных градиентов.
BRIEF. Алгоритм как правило применяется к текстовым изображениям и основан на наивном Байесовском классификаторе, что делает его достаточно эффективным в плане производительности. В более простом варианте алгоритма может использоваться метод ближайшего соседа, в котором в качестве меры близости выбрано расстояние Хэмминга.
ORB. Данный алгоритм является модификацией алгоритма BRIEF, использующей фильтрацию точек с применением метода оценки Корнера. Алгоритм позволяет определить точки независимо от масштабов изображений и положения (вращения) устройства.
SURF. Это алгоритм одновременно ищет некоторые выделенные точки и строит их описание, несмотря на разный масштаб изображений и положение (вращение) устройства. Определение выделенных точек происходит с помощью матрицы Гессе.
KAZE. Данный алгоритм основан на использовании нелинейного пространства. Алгоритм основывается на нормированной шкале и вычислении определителя матрицы Гессе с масштабированием.
AKAZE. Алгоритм является дальнейшим развитием метода KAZE. Метод дополняется высокопроизводительным алгоритмом MLDB. Также алгоритм инвариантен по отношению к масштабу и вращению.
GLOH. Данный алгоритм является модификацией алгоритма SIFT, в которой вместо линейной системы координат используется полярная система координат, в которой окрестность точки разбивается на окружности с радиусами от 6 до 15 пикселей. На основе этого формируется вектор, который впоследствии обрабатывается с использованием метода главных компонент.
BRISK. Алгоритм основан на применении метода FAST в сочетании с фильтром Корнера и основывается на определении градиентов точек при вращении. Алгоритм инвариантен по отношению к масштабу и вращению.
DAISY. Метод построен на сочетании алгоритмов SIFT и GLOH. Окрестность строится аналогично методу GLOH, также по аналогии с этим методом используется полярная система координат, однако полученная взвешенная сумма магнитуд обрабатывается фильтром Гаусса. Алгоритм является достаточно быстродействующим и характеризуется неизменностью относительно масштаба и вращения.
В части практической реализации данных алгоритмов необходимо заметить, что некоторые из них реализованы в широко применяемой библиотеке компьютерного зрения OpenCV [9].
Краткая информация об использовании указанных алгоритмов в библиотеке OpenCV описана в статье [5] и приведена в табл. 1.
Таблица 1
Объекты OpenCV [OpenCV objects]
Алгоритм [Algorithm] | Объект OpenCV [Open CV object] | Размер дескриптора [Descriptor size] |
SIFT | cv.SIFT(‘ConstrastThreshold’,0.04,’Sigma’,1.6) | 128 |
SURF | cv.SURF(‘Extended’,true,’HessianThreshold’,100) | 128 |
KAZE | cv.KAZE(‘NOctaveLayers’,3,’Extended’,true) | 128 |
AKAZE | cv.AKAZE(‘NOctaveLayers’,3) | 61 |
ORB | cv.ORB(‘MaxFeatures’,100000) | 32 |
BRISK | cv.BRISK() | 64 |
Исследования по практике применения алгоритмов показывают, что достаточно часто верны соотношения, приведенные в табл. 2. Число на пересечении строки с алгоритмом и столбца с характеристикой показывает ранг алгоритма при градации характеристики от большего к меньшему.
Таблица 2
Практические характеристики алгоритмов [Practical characteristics of algorithms]
Алгоритм [Algorithm] | Частота обнаружения признаков особых точек [Detection rate of singular point features] | Вычислительная эффективность для каждой точки [Computational efficiency per point] | Порядок эффективного сопоставления объектов для каждой точки [How to effectively match objects for each point] | Скорость общего сопоставления [General matching speed] |
ORB | 1 | 1 | 3 | 3 |
BRISK | 2 | 2 | 4 | 4 |
SURF | 3 | 3 | 6 | 6 |
SIFT | 4 | 5 | 5 | 5 |
AKAZE | 5 | 4 | 1 | 1 |
KAZE | 6 | 6 | 2 | 2 |
Необходимо заметить, что наиболее эффективные алгоритмы, как правило, характеризуются наиболее специализированной направленностью и не всегда могут решать задачи общего характера.
3. МЕТОДЫ ОЦЕНКИ ПАРАМЕТРОВ МОДЕЛИ
Существует несколько методов оценки параметров моделей. Среди них можно выделить следующие.
Алгоритм RANSAC (Random Sample Consensus) представляет собой алгоритм для надежного подбора моделей при наличии множества выбросов данных. Алгоритм достаточно прост и заключается в том, что случайным образом выбирается множество элементов данных, далее задается оценочный параметр. После этого вычисляется мера соответствия модели оценочному параметру, если мера соответствия превышает заданный параметр, то алгоритм завершается успешно, в противном случае повторяется с начала.
Алгоритм MSAC (M-estimator Sample Consen-sus) является модификацией алгоритма RANSAC, направленной на повышение быстродействия. Модификация заключается в том, что за отклонения от оценочного параметра назначаются штрафные веса. Таким образом обеспечивается лучшая сходимость алгоритма.
Алгоритм PROSAC (Progressive Sample Consen-sus) также является модификацией RANSAC, которая с определенной вероятностью для каждого шага оценивает, входит ли заданная точка в значения оценочного параметра или нет. Оценка может проводиться в том числе с вычислением байесовской вероятности.
4. ОБЗОР СУЩЕСТВУЮЩИХ РЕШЕНИЙ
В настоящее время существует достаточно большое количество программных средств, позволяющих работать с различными аспектами преобразования изображений в 3D-модели. Среди такого программного обеспечения можно выделить следующие.
OpenDroneMap – это набор инструментов фотограмметрии с открытым исходным кодом для обработки аэрофотоснимков в картах и 3D-моделях. Программное обеспечение размещается является свободно распространяемым.
OpenDroneMap – интегрирован в полевую портативную систему OpenStreetMap Американского Красного Креста.
OpenDroneMap – консольный инструмент, который построен по принципу конвейера и позволяет одновременно запускать несколько заданий. В связи с этим над ним реализовано большое количество надстроек. Например, WebODM, надстройка, предоставляющая доступ к функциональности ODM посредством веб-интерфейса. WebODM реализует следующие основные функции:
- карты с географической привязкой, орторектифицированные;
- геопривязанные, отфильтрованные и классифицированные плотные облака точек;
- цифровые модели рельефа с географической привязкой (DSM и DTM);
- текстурированные 3D-модели в формате .OBJ;
- средства измерения объема и площади;
- создание и использование опорных точек для дополнительной точности;
- предварительный просмотр и экспорт контуров высот в AutoCAD, ShapeFile, GeoPackage;
- обработка аэрофотоснимков и наземных изображений, снятых надиром или косой;
- обработка многоспектральных изображений.
RealityCapture – это программный продукт, предназначенный создавать трехмерные модели из наземных и аэрофотографий или из совокупности данных фотографий, а также изображений лазерного сканирования. Данное программное обеспечение позволяет решать широкий круг задач: создание сцен виртуальной реальности, текстурирование трехмерных сеток, создание ортографических проекций, карт с географической привязкой. Это программное предназначено выбора для широкого спектра отраслей.
3DF Zephyr – коммерческий программный продукт для фотограмметрии и 3D-моделирования. Это полный пакет программного обеспечения для фотограмметрических источников данных, которые включают в себя множество инструментов для пoстобработки, 3D-моделирования и создания контента. Он позволяет 3D-реконструкцию как из фотографий, так и из видео, автоматически извлекая кадры и выбирая наиболее подходящие для вычислений.
Agisoft Metashape Professional – этот программный продукт для фотограмметрии, отличающееся от других продуктов в лучшую сторону тем, что включает в себя возможности анализа и пост-обработки на основе машинного обучения. Данные возможности дают преимущество для получения лучших результатов. Помимо этого, Metashape предоставляет функции преобразования снимков в ортофотопланы с геопривязкой, текстурированные полигональные модели, плотные облака точек и цифровые модели местности. Эти функции основываются на возможности программного продукта работать с фотографиями с различных камер, а также с изображениями с мультикамерных систем.
Результаты сравнения приведены в табл. 3.
Таблица 3
Результаты сравнения программного обеспечения [Software comparison results]
Характеристика [Characteristic] | OpenDroneMap | RealityCapture | 3DF Zephyr | Agisoft Metashape Professional |
Лицензия [License] | Свободная [Free] | Проприетарная [Proprietary] | Проприетарная [Proprietary] | Проприетарная [Proprietary] |
Основной язык разработки [Main development language] | Python | Python | Не заявлен [Not stated] | Не заявлен [Not stated] |
Доступные ОС [Available OS] | Linux | Не заявлено [Not stated] | Windows | Windows |
Интерфейс [Interface] | Консольный, надстройка в виде веб-интерфейса [Console, add-on in the form of a web interface] | Веб-интерфейс [Web interface] | Десктопный [Desktop] | Десктопный [Desktop] |
Геопривязка [Georeferencing] | Да [Yes] | Да [Yes] | Не заявлено [Not stated] | Да [Yes] |
Фотограмметрия [Photogrammetry] | Да [Yes] | Да [Yes] | Да [Yes] | Да [Yes] |
Текстурирование [Texturing] | Да [Yes] | Да [Yes] | Да [Yes] | Да [Yes] |
Генерация 3D-модели [Generation of 3D model] | Да [Yes] | Да [Yes] | Да [Yes] | Да [Yes] |
Область применения [Application area] | Моделирование местности [Terrain modeling] | Игры, картография, моделирование тел [Games, cartography, body modeling] | Реконструкция изображений, моделирование тел [Image reconstruction, body modeling] | Игры, картография, реконструкция изображений [Games, cartography, image reconstruction] |
5. РАЗРАБОТКА АЛГОРИТМА
В общем виде алгоритм может быть представлен в виде последовательности следующих шагов: считывание исходных фотографий. генерация облака точек. анализ положения камеры, текстурирование, генерация остова. Данные шаги представлены на диаграмме деятельности, приведенной на рис. 2.
Fig. 2. Activity diagram
Прототип программы разработан в соответствии с модульным принципом, используемом при разработке многих приложений на языке Python.
Модульный принцип заключается в распределении функций программы по логически завершенным единицам – модулям и позволяет инкапсулировать сложность и реализацию функций в рамках одной структурной единицы. Каждый модуль должен иметь определенную законченную функциональность, набор интерфейсов для внешнего доступа (поведение) и возможность связывания с другими модулями системы.
Таким образом в программе-прототипе выделяется следующие модули:
- модуль считывания;
- модуль генерации облака точек;
- модуль анализа положения камеры;
- модуль преобразования координат;
- модуль текстурирования;
- модуль генерации остова.
Для получения итогового результата данные модули работают по принципу конвейера и передают промежуточные данные с выхода одного модуля на выход другого.
Приведем краткое описание каждого модуля.
Модуль считывания. Считывает входные изображения, создает временную базу данных, извлекает из изображений информацию, параметры (из тегов, называемых EXIF). Этот модуль отвечает за извлечение всех доступных метаданных из набора файлов, содержащих последовательные фотоснимки картинки. Считывается само изображение, а также наиболее важные значения, которые могут считаны. Это такие значения как: фокусное расстояние, объектив, который использовался для съемки фотографии и положения кадров GNSS, в качестве первое поле может повысить точность результирующей реконструкции, высота, ширина, тип проекции, ориентация, время съемки. После того, как метаданные были прочитаны из изображений, они сохраняются в отдельную папку, поэтому при следующем запуске не требуется повторять ту же операцию.
Модуль генерации облака точек. Один из наиболее важных процессов конвейера – это переход от изображений к положениям камеры и получаем разреженное облако точек (процесс, называемый «структура из движения». Однако процесс фотограмметрии еще не закончен, так как нужно «уплотнить» или «извлечь» больше точек, чтобы получить «плотное» облако точек, с помощью OpenSfM. OpenSfM – это библиотека реализующая алгоритм «Структура из движения» (Structure from Motion), написанная на Python. Библиотека служит конвейером обработки для восстановления положения камеры и трехмерных объектов из нескольких изображений. Она включает базовые модули для поддержки алгоритма Structure from Motion (обнаружение / сопоставление функций, минимальные решатели). Она также объединяет измерения внешнего датчика (например, GPS, акселерометр) для географического выравнивания и устойчивости.
OpenSfM обеспечивает высокую точность определения местоположения камер. Библиотека была создана для точного определения местоположения и формы в условиях представления об окружающей среде. Имеются требования к входным ключевым характеристикам на изображениях и оценивать относительные положения камер в зависимости от качества изображения, реконструированной структуры или облако точек может быть недостаточно хорошим для извлечения трехмерных объектов и даже не распознается человеком. Есть несколько факторов, которые могут привести к неточностям реконструкции, например:
- размытое изображение из-за движения камеры или несфокусированности фокусировки (небольшие вибрации могут привести к размытию изображения и оказать существенное влияние на тонкий элемент структуры или для элементов на расстоянии), динамические объекты, которые могут постоянно двигаться и, следовательно, приводить к ложным совпадениям между изображениями;
- повторение структуры в разных местах (светофоры, кирпичные/каменные стены, здания и т.д.).
Модуль анализа положения камеры. Осуществляет от облаков точек к трехмерным моделям путем соединения точек в облаке точек, чтобы была построена модель с непрерывной поверхностью. Основная цель этого модуля – оценить трехмерные положения характерных точек и положения камер, которые представляют изображения набора данных с некоторым переводом и ротацией. На этом этапе формируется базовое облако точек вместе с позициями камеры.
Программный код, реализующий этап формирования облака точек приведен на рис. 3.
Рис. 3. Код формирования облака точек
Fig. 3. Point cloud formation code
Модуль преобразования координат. Когда процесс фотограмметрии завершен, все модели используют локальную систему координат (они не размещаются нигде в реальном мире, они находятся в фиктивном произвольно определенном положении). На этом этапе добавляются координаты реального мира к трехмерным моделям и облакам точек.
Этот модуль отвечает за обнаружение функций на изображениях набора данных. Элементы – это места на изображении, где интенсивность существенно изменяется, представляющая углы, края и точки. Процесс обнаружения признаков необходим для преобразования информации о фотографии в векторное пространство, которое в дальнейшем может использоваться для выполнения математических операций (преобразование, вращение, сравнение и т.д.).
Существуют различные алгоритмы извлечения признаков, такие как SIFT, SURF, AKAZE, HAHOG, ORB, которые отличаются точностью и производительностью. В данной работе использован алгоритм SIFT.
Также модуль выполняет сопоставление пар изображений. Сначала он создает набор пар изображений в виде комбинации всех изображений. Затем вычисляются соответствующие пары, и оценивается значение совпадения. Эти совпадения сохраняются в папке набора данных [3].
Далее выполняется создание треков из полученных парных совпадений. Трек в основном представляет набор характерных точек, которые были обнаружены как элементы изображения-пары и соответствуют одному и тому же месту в реальном мире.
Код основного алгоритма модуля преобразования координат показан на рис. 4.
Рис. 4. Алгоритм модуля SIFT
Fig. 4. The algorithm of the SIFT module
Модуль текстурирования. Берет трехмерную сетку (файл, представляющий трехмерную поверхность) и добавляет цвета к модели («текстуры» в компьютерной графике), чтобы модель выглядела реалистично.
Маппинг (или текстурирование) – один из этапов работы при построении 3d модели. На данном этапе поверхностям модели объекта придаются нужные свойства, для того чтобы сделать ее более реалистичной.
Для создания текстуры выполняется следующая последовательность действий следующую последовательность действий:
1) на созданные плоскости модели накладываются сгенерированные на предыдущих шагах текстуры;
2) создается карта нормалей для отображения переходов цвета, бликов и неровностей.
Модуль генерации остова. Генерирует 2D-изображения, представляющие модели объекта (цифровая модель поверхности или цифровая модель рельефа), начиная с облака точек с географической привязкой. Текстура – растровое изображение, накладываемое на модель (высокополигональную или низкополигональную).Модуль вычисляет треугольную сетку сцены и используется для имитации плавного перехода.
Также в модуле извлекается плотное облако точек реконструкции в формате .ply, который может быть использован при просмотре, в MeshLab.
Код генерации ply-файла приведен на рис. 5.
Рис. 5. Генерация ply-файла
Fig. 5. Generating a ply file
6. ОПИСАНИЕ ИНТЕРФЕЙСА
Разработанное программное обеспечение обладает десктопным интерфейсом, созданным с помощью библиотеки Swing. Интерфейс программного обеспечения дополняется динамическим вызовом среды просмотра 3D-моделей MeshLab.
Интерфейс отображается в следующей последовательности:
1) основная форма загрузки фотографий;
2) форма выбора файлов;
3) открываемый после генерации 3D-модели интерфейс MeshLab.
Работа программы начинается с открытия основного окна программы. Основное окно программы представлено на рис. 6 и содержит следующие элементы интерфейса:
1) меню действий;
2) область списка файлов;
3) область детальной информации о файле;
4) область предпросмотра.
Рис. 6. Основное окно программы
Fig. 6. The main window of the program
В меню действий содержатся действия, позволяющие выбрать необходимый каталог с изображениями и запустить его преобразование в 3D-модель.
Выбор каталог с исходными файлами изображений осуществляется с помощью формы, представленной на рис. 7.
Рис. 7. Форма выбора файлов
Fig. 7. File Selection Form
После выбора каталога с исходными файлами все графические файлы из данного каталога отображаются в области списка файлов. При выборе файла из списка детальная информация о нем отображается в области детальной информации, а миниатюра изображения в области предпросмотра как показано на рис. 8.
Рис. 8. Форма с загруженными файлами
Рис. 8. Форма с загруженными файлами
После загрузки каталога с исходными файлами необходимо активировать действие меню по созданию 3D-модели. После активации действия происходит обработка путем запуска модулей, описанных в настоящем разделе. Обработка может занять значительное время, поскольку зависит от размера исходных файлов и их количества.
Далее происходит открытие среды просмотра MeshLab, которая позволяет просмотреть сгенерированную 3D-модель. Пример сгенерированной модели приведен на рис. 9.
Рис. 9. Пример сгенерированной модели
Fig. 9. Example of the generated model
Необходимо заметить, что MeshLab является программной системой визуализации трехмерных моделей. Данная система ориентирована на работу с неструктурированными большими трехмерными полигонами и стеками, а также предоставляет набор инструментов для редактирования, очистки, исцеления, проверки, рендеринга и преобразования этих типов сеток. MeshLab – это бесплатное программное обеспечение с открытым исходным кодом, выпускаемое под лицензией GNU (GPL) версии 2 и широко используется как дополнительный пакет для работы с другим программным обеспечением.
ЗАКЛЮЧЕНИЕ
Существует несколько классов алгоритмов построения 3D-моделей, каждый из которых применяются в различных областях. В основе всех указанных алгоритмов лежит принцип переноса из одной системы координат в другую. По данному принципу происходит построение трехмерной модели из ряда двумерных изображений, то есть фотографий. Фотограмметрия широко применяется в различных областях деятельности. Необходимо заметить, что существует широкий спектр программного обеспечения для работы с 3D-моделями, однако большая часть такого программного обеспечения является проприетарной. При этом для достижения приемлемого качества создания 3D-моделей на основе серии фотографий каждое программное обеспечение использует собственные модификации известных алгоритмов и эвристики в сочетании с ориентацией на конкретные предметные области.
Таким образом, задача построения трехмерных моделей по ряду изображений является актуальной, поскольку она не решена в общем случае. Разработанная программная система успешно прошла функциональное тестирование, все требования были выполнены, фактические результаты тестирования соответствуют желаемым.
About the authors
Svetlana S. Mikhaiylova
Financial University under the Government of the Russian Federation
Author for correspondence.
Email: ssmihajlova@fa.ru
ORCID iD: 0000-0001-9183-8519
Dr. Sci. (Econ.), Associate Professor, Professor, Department of Data Analysis and Machine Learning, Faculty of Information Technology and Big Data Analysis
Russian Federation, MoscowReferences
- Liu L., Jiang H., He P. et al. On the variance of the adaptive learning rate and beyond. URL: https://www.arXiv:1908.03265v4
- Subbarao R., Meer P. Projection based M-estimators. URL: https://link.springer.com/chapter/10.1007/11744023_24 (data of accesses: 14.12.2023).
- Structure from motion – classical implementation (full translation). URL: https://habr.com/ru/post/228525 (data of accesses: 14.12.2023).
- Szeliski R. Computer vision: Algorithms and applications – springer science & business media. 2010. 812 p.
- Tareen Sh., Zahra Kh., Zahra S. A comparative analysis of SIFT, SURF, KAZE, AKAZE, ORB, and BRISK. 10.1109/ICOMET.2018.8346440. URL: https://www.researchgate.net/publication/323561586_A_comparative_analysis_of_SIFT_SURF_KAZE_AKAZE_ORB_and_BRISK (data of accesses: 14.12.2023).
- Antipov I.T. Mathematical foundations of spatial analytical phototriangulation. Moscow: Kartgeocenter-Geodesizdat, 2003. 296 p. ISBN: 5-86066-055-3.
- Bezmenov V.M. Photogrammetry. Construction and equalization of analytical phototriangulation. Kazan.: KSU Publishing House, 2009. 86 p.
- Blokhinov Yu.B. Algorithms for the formation of a digital surface model and texture coating in terrestrial photogrammetry. Izvestiya vuzov. Geodesy and Aerial Photography. 2011. No. 1. Pp. 51–57. (In Rus.)
- Bulatnikov E.V., Goeva A.A. Comparison of computer vision libraries for use in an application using flat image recognition technology. Bulletin of the Moscow State Unitary Enterprise named after Ivan Fedorov. 2015. No. 6. Pp. 85–91. (In Rus.)
- Kashaganova G.B., Mergaziev K.K. Research and development of algorithms for constructing three-dimensional computer models of real objects for virtual reality systems. NAU. 2020. No. 56-1 (56). URL: https://cyberleninka.ru/article/n/issledovanie-i-razrabotka-algoritmov-postroeniya-trehmernyh-kompyuternyh-modeley-realnyh-obektov-dlya-sistem-virtualnoy-realnosti (data of accesses: 14.12.2023).
- Kostyuk Yu.L., Novikov Yu.L. Graph models of high-resolution color bitmaps. Bulletin of Tomsk State University. 2002. No. 275. Pp. 153–160. (In Rus.)
- Mashchenko P.E., Shiryaev P.P. The NetVLAD visual terrain recognition method for localizing a locomotive. Automation, Communication, Informatics. 2020. No. 10. Pp. 14–17. (In Rus.)
- Novikov Yu.L. Polygonal linear graph models of raster images. In: Geoinformatics-2000. Proceedings of the International Scientific and Practical Conference. A.I. Ryumkin, Yu.L. Kostyuk, A.V. Skvortsov (eds.). Tomsk: Publishing House of Tomsk University, 2000. Pp. 50–55.
- Stepura L.V., Demin A.Yu. Review of image vectorization methods. In: Microsoft technologies in theory and practice of programming. Proceedings of the XIII All-Russian Scientific and practical Conference of students, postgraduates and young Scientists, 2016. Scientific director A.Yu. Demin. National Research Tomsk Polytechnic University (TPU); Institute of Cybernetics. Ed. col.: A.V. Liepins et al. Tomsk: TPU Publishing House, 2016. Pp. 184–186.
- Point detection of the OpenCV-Python Feature 2D function (including SIFT/SURF/ORB/KAZE/FAST/BRISK/AKAZE). URL: https://russianblogs.com/article/70281143807 (data of accesses: 14.12.2023).
- Rosenfeld A. Image recognition and processing using computers. Transl. from English. Moscow: Mir, 1972. 230 p.
- Safonov A.S. Building SIFT Descriptors and finding special points in images. Izvestiya TulGU. 2017. No. 2. Pp. 182–187.
Supplementary files









