Научная статья на тему 'Методика сборки и обработки данных, полученных в процессе 3D-сканирования'

Методика сборки и обработки данных, полученных в процессе 3D-сканирования Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
765
164
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
СКАНИРОВАНИЕ / МЕТОД / METHOD / ПОВЕРХНОСТЬ / SURFACE / КОПИЯ / COPY / 3D-МОДЕЛЬ / 3D MODEL / SCANNING

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Тишкин Виталий Олегович

Множество существующих на сегодняшний день программных пакетов 3D-сканирования дает широкие возможности по обработке получаемых в процессе регистрации поверхности данных. Тем не менее, специфика данной области накладывает определенные требования, и во всех этих программах присутствует ряд схожих функций, которые, в свою очередь, определяют алгоритм первоначальной работы с результатами сканирования. В данной работе предлагается общий алгоритм, являющийся результатом практического многолетнего опыта автора по сборке «сырого» материала в единую электронную копию и последующей обработки.

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

TECHNIQUE OF DATA ASSEMBLAGE AND PROCESSING, RECEIVED IN 3D SCANNING PROCESS

Lots of 3D scanning software packages existing for today give wide opportunities for processing data received in the surface registration course. Nevertheless, specificity of the 3D scanning area imposes certain requirements, and all of these programs have number of similar functions which define algorithm of initial work with results of scanning. The general algorithm which is the result of practical long-term author's experience on collection of a "crude" material in a uniform electronic copy and the subsequent processing is offered in the present work.

Текст научной работы на тему «Методика сборки и обработки данных, полученных в процессе 3D-сканирования»

Сервисный запрос - это выражение сервисных вычислений в форме {s | у (s)}, где s - это переменная, представляющая запись из сервисного отношения SR, а у - это формула сервисных вычислений. Формулы составляются рекурсивно и имеют один из следующих форматов:

- xQqy , где 6q - оператор сравнения параметров QoWS (один из {=, >, >, <, <, ^}); x и y могут быть параметрами QoWS или константами;

- s.op == t.op, где s.op означает операцию из записи s, а t.op - операцию из записи t; s.op == t.op принимает истинное значение, если t и s имеют одинаковый набор сервисных операций, и ложное в противном случае;

- SR(s) , где SR - сервисное отношение; s - переменная, содержащая сервисную запись; отношение SR(s) принимает истинное значение, если s принадлежит SR, и ложное в противном случае.

Заключение

Практическое применение представленной выше модели и ее математического описания можно продемонстрировать на примере использования сервиса-реестра недвижимости. Сервисный запрос на получение истории покупаемой недвижимости при стоимости выполнения запроса не более 200 рублей может быть составлен следующим образом:

Ql = {s.sid,s[G(history _report)]|RE(s) л fee(s.history _report) < 200} ,

где G(history _report) - граф операций получения history report; fee(s.history _report) указывает на стоимость вызова операции; RE (RealEstate) - сервис-реестр недвижимости.

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

Литература

1. Eyhab Al-Masri, Qusay H. Mahmoud. Investigating Web Services on the World Wide Web // WWW 2008. -Р. 795-804.

2. Anbazhagan Mani, Arun Nagarajan. Understanding quality of service for Web services // Материалы компании IBM [Электронный ресурс]. - Режим доступа: http://www.ibm.com/developerworks/library/ws-quality.html, свободный.

3. Клименков С.В., Максимов А.Н., Харитонова А.Е. Семантический анализ проектной документации // Научно-технический вестник СПбГУ ИТМО. - 2008. - № 46. - C. 198-202.

4. Бессмертный И.А. Теоретико-множественный подход к логическому выводу в базах знаний // Научно-технический вестник СПбГУ ИТМО. - 2010. - № 66. - C. 4З-48.

5. Qi Yu, Athman Bouguettaya. Foundations for Efficient Web Service Selection // Springer - 2009. - 160 c.

Дергачев Андрей Михайлович - Санкт-Петербургский государственный университет информационных технологий, механики и оптики, старший преподаватель, [email protected]

УДК 681.786.23

МЕТОДИКА СБОРКИ И ОБРАБОТКИ ДАННЫХ, ПОЛУЧЕННЫХ В ПРОЦЕССЕ 3Б-СКАНИРОВАНИЯ В.О. Тишкин

Множество существующих на сегодняшний день программных пакетов 3Б-сканирования дает широкие возможности по обработке получаемых в процессе регистрации поверхности данных. Тем не менее, специфика данной области накладывает определенные требования, и во всех этих программах присутствует ряд схожих функций, которые, в свою очередь, определяют алгоритм первоначальной работы с результатами сканирования. В данной работе предлагается общий алгоритм, являющийся результатом практического многолетнего опыта автора по сборке «сырого» материала в единую электронную копию и последующей обработки. Ключевые слова: сканирование, метод, поверхность, копия, 3Б-модель.

Введение

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

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

помощью которых осуществляется сканирование объектов, называют 3D-сканерами. Эти устройства не только упрощают процесс создания 3D-моделей, но и позволяют решать эту задачу с максимальной степенью достоверности по отношению к исходному оригиналу. Одни подразумевают наличие механического устройства - «щупа», при помощи которого в компьютер передаются координаты выбранных оператором точек; другие (бесконтактные) являются значительно более сложными приборами, в которых заложены весьма изощренные алгоритмы создания пространственных каркасов. Так, во многих из них используется двойная (дополняющая основную) система ввода координат тела. Многие устройства совмещают лазерные датчики (заменяющие механический «щуп» контактных 3D-сканеров) и цифровой фотоаппарат, который используют для большей точности сканирования, что позволяет получить модели объектов с наложенными текстурами.

Помимо аппаратного уровня, в технологии объемного сканирования присутствует и программный уровень, который подразумевает работу с получаемыми от 3D-сканеров данными. На сегодняшний день существует достаточное количество пакетов как коммерческого, так и некоммерческого планов, позволяющих получать компьютерные копии совершенно с разных сторон и в разных формах. Это могут быть обычные полигональные модели, доступные для распространенных дизайнерских программ (например, 3DMax), также есть возможность получения параметрической (математической, CAD) модели, доступной для различных проектировочных программ (SolidWorks, ProEngineer и т.д.) [1-4].

Так или иначе, первым шагом после процедуры сканирования будет обработка полученных данных. Такая обработка подразумевает определенную последовательность действий, которая имеет характерную логику вследствие специфики области 3Б-сканирования и работы с объемными моделями, в частности. Это означает, что в различных программных пакетах логика обработки будет реализована посредством схожих функций, которые, в свою очередь, и будут определять те или иные алгоритмы обработки.

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

Предобработка

Примерный порядок действий предлагаемого метода представлен на рис. 1.

Как видно, перед получением собственно копии должны быть уже совершены действия, направленные, в общем случае, на уменьшение объема данных, что означает освобождение оперативной памяти компьютера и уменьшение загрузки центрального процессора (ЦП). Естественно, в случае небольшого объема данных теряется смысл соблюдения такой последовательности, но данный алгоритм направлен на экономию времени, с одной стороны, и получение максимально качественного результата, с другой, при условии работы со средним или большим количеством материала. Объем данных в технологии 3D-сканирования определяется количеством и весом «сканов», полученных в процессе сканирования. Этот термин является аналогом термина «снимок» в фотографировании, но ввиду принципиальной разницы получаемых данных - двумерное фотоизображение в фотографировании и трехмерная копия определенной площади поверхности в 3Б-сканировании - корректнее использовать термин «скан».

Метод был опробован на программном обеспечении RapidForm 2006, Inus Tech., Inc.

Предобработка подразумевает следующие действия (рис. 1).

- Сканирование. Процесс регистрации поверхности сканируемого изделия. В результате получается определенное количество сканов. В зависимости от используемого вида сканера можно получить ска-ны разного размера и качества. Размер определяется захватываемой площадью, а качество - точностью передачи деталей поверхности.

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

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

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

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

димо удалять, но встает закономерный вопрос, когда и как эффективнее это сделать. Когда речь идет о работе с 2-3 сканами, это не имеет принципиального значения, но при увеличении их количества, например, до 10, и площади захвата каждого порядка одного квадратного метра главным становится вопрос об экономии времени. Решается же данная проблема достаточно просто: при большом количестве данных удаление лишних областей необходимо производить сразу после удаления текстур, переходя от скана к скану, и, в таком случае, программа не тратит лишнее время на загрузку в память нужного инструмента. При этом экономится тем больше времени, чем большее количество сканов загружено для обработки. После соответствующих измерений установлено, что при обычной загрузке в 10-20 сканов и общем их количестве около 100 работа будет протекать быстрее примерно на 15%.

СКАНИРОВАНИЕ

ИМПОРТ В ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ

УДАЛЕНИЕ TEKCTST

ПРЕДОБРАБОТКА

УДАЛЕНИЕ ЛИШНИХ ОБЛАСТЕЙ

СОЕДИНЕНИЕ

МАТЕМАТИЧЕСКИ! РАСЧЕТ СОЕДИНЕНИЯ

УДАЛЕНИЕ ПЕРЕСЕЧЕНИИ

СШИВКА

ОБРАБОТКА ОТВЕРСТИИ

СГЛАЖИВАНИЕ

ПОЛУЧЕНИЕ

ЦЕЛЬНОЙ

МОДЕЛИ-КОПИИ

ОБРАБОТКА ОТВЕРСТШ1

ПЕРЕСЧЕТ ПОЛИГОНАЛЬНОЙ ПОВЕРХНОСТИ

ОБРАБОТКА OTBEPCTIHI

РАБОТА С ПОВЕРХНОСТЬЮ

СГЛАЖИВАНИЕ

ЭКСПОРТ

Рис. 1. Алгоритм сборки и обработки данных 30-сканирования Получение цельной модели-копии

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

Процесс получения цельной копии включает следующие операции. - Соединение. Когда используются сканирующие системы без специальных позиционирующих маркеров, сканы не сгруппированы друг относительно друга таким образом, чтобы получилась цельная копия. Для этого в специализированном ПО предусмотрена функция соединения (но не в общее целое) двух сканов, имеющих общую поверхность. В RapidForm 2006 эта функция реализуется с помощью процедуры «Initial» (рис. 2, 3).

** ГЦ'1 гИ г тп ..... ■'ifr.v1:'-.-|i.....-.-[.ijllnnii I - rtiM" г л .п ■ л П11II mi 1111 и 1 '.М_- h еа ^ Л,, Jrpi [I: Ю , I iJ[i 11Ч LIT И^ H I «7?......... = 011 I.hiI _iih j in. |-

wUJSф^'Э in™- it- -j---- >■■»'- a ® » j и:л»ов шв и-* Ям»мШГа^»вь- э

■nr.MilWimi-l-; «п»• ИМ'н'дДШ -------- - "Д1""" - ■inm.i-ryBra^Fa'g-»- I an. .... У 'зч.|.\ "ШД.ИМ с-------- ■ ТИйие - »"--

Рис. 2. Начальное положение сканов и процесс регистрации общих точек

Рис. 3. Результат соединения двух сканов

- Математический расчет соединения («Fine», RapidForm 2006). При соединении сканов возможны локальные погрешности, которые можно аннулировать, используя данную функцию. Эта функция особенно важна при работе с цельнотрехмерными объектами (статуи, автомобили и т.д.), и необходимо ее использовать до процедуры сшивки со всем комплексом уже соединенных между собой сканов (при достаточной мощности компьютера). Это позволяет избежать общей погрешности соединения на всей модели.

Соединение и математический расчет представляют из себя процесс сборки.

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

- Сшивка («Merge», RapidForm 2006). Процедура сшивки позволяет соединить двух или более сканов в единое целое. Используемый метод предполагает сшивание всего комплекса соединенных между собой сканов после проведенной процедуры досоединения, что экономит время, в отличие от попарного сшивания сканов (что, тем не менее, в некоторых случаях эффективнее).

Рис. 4. До и после процедуры математического расчета соединения. Пунктиром выделена большая

площадь наложения

Работа с поверхностью

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

- Обработка отверстий (Fill holes). Практически на любом объекте существуют такие места на поверхности, сканирование которых, так или иначе, невозможно (отрицательные углы, высокая глубина рельефа), поэтому во всех пакетах для 3Э-сканирования существует функция «зашивания» отверстий. Эта функция также оказывается полезной и в тех случаях, когда сканирование отдельных участков возможно, но представляет собой довольно кропотливую задачу, в то время как обработка недостающего материала программными методами проще и быстрее (рис. 5).

Рис. 5. Работа с недостающим материалом

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

- Пересчет полигональной поверхности (ретриангуляция, remesh). Такая функция позволяет перестроить структуру полигональной поверхности с тем, чтобы придать ей однородный вид. Это необходимо с точки зрения облегчения расчетов ЦП компьютера и, как следствие, уменьшения времени на проведения операций над моделью. С другой стороны, вследствие процедуры пересчета исчезают большие полигоны, которые появляются на гранях, острых или отрицательных углах поверхности. Это может быть даже более важно, чем уменьшение загрузки ЦП, так как, учитывая производительность современных компьютеров, получаемая экономия времени не так очевидна, как получение однородной полигональной структуры, обработку которой (в частности, различного рода деформации) можно вести более тонко (рис. 6).

Рис. б. Процедура remesh

Заключение

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

Экономия времени реализуется за счет алгоритма сборки, а именно, использования функций соединения и расчета соединения. Среднее время на последовательную работу, т.е. соединение, расчет, удаление пересечений, сшивание с парами сканов весом около 600 тысяч полигонов составляет около 1 мин 10 с (без учета возможных программных ошибок). При дальнейшем присоединении дополнительных сканов эта цифра увеличивается. Предлагаемый алгоритм на отрезке получения цельной модели позволяет сэкономить от S0 с до 1 мин при работе с уже 4 сканами (около 3 мин S с по предлагаемому алгоритму против 4 мин при работе парами). Экономия возрастает при увеличении общего количества ска-нов.

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

Литература

1. Rioux M. Digital 3-D imaging: theory and applications // Proc. of SPlE: Proceedings, Videometrics lll, International Symposium on Photonic and Sensors and Controls for Commercial Applications, Boston, 1994. - V. 23S0. - Р. 2-1S.

2. Борисенко Б., Ярошенко С. 3D-сканирование в интересах 3D-моделирования // Компьютер Price. -2004.

3. Beraldin J.A., Blais F., Cournoyer L., Godin G., Rioux M. Active 3D sensing // Scuola Normale Superiore Pisa, Centro di Ricerche lnformatiche per i Beni Culturali, 2000.

4. Baumberg A., Lyons A., Taylor R. 3D S.O.M. A commercial software solution to 3D-scanning // Vision, Video, and Graphics (2003).

Тишкин Виталий Олегович - Санкт-Петербургский государственный университет информационных технологий, механики и оптики, аспирант, [email protected]

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