Например, Бобцов

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

В.О. Тишкин

УДК 681.786.23
МЕТОДИКА СБОРКИ И ОБРАБОТКИ ДАННЫХ, ПОЛУЧЕННЫХ В ПРОЦЕССЕ 3D-СКАНИРОВАНИЯ
В.О. Тишкин
Множество существующих на сегодняшний день программных пакетов 3D-сканирования дает широкие возможности по обработке получаемых в процессе регистрации поверхности данных. Тем не менее, специфика данной области накладывает определенные требования, и во всех этих программах присутствует ряд схожих функций, которые, в свою очередь, определяют алгоритм первоначальной работы с результатами сканирования. В данной работе предлагается общий алгоритм, являющийся результатом практического многолетнего опыта автора по сборке «сырого» материала в единую электронную копию и последующей обработки. Ключевые слова: сканирование, метод, поверхность, копия, 3D-модель.
Введение
В настоящее время существует целый ряд методов, позволяющих создавать трехмерные образы аппаратными средствами, т.е. без привычного 3D-моделирования в специализированных программных пакетах. Одним из передовых является метод трехмерного сканирования.
3D-сканирование  это систематический процесс определения координат точек, принадлежащих поверхностям физических объектов, с целью последующего получения их объемных компьютерных моделей, которые могут модифицироваться с помощью специализированных CAD-систем. Устройства, с

Научно-технический вестник Санкт-Петербургского государственного университета информационных технологий, механики и оптики, 2011, № 1 (71)

87

МЕТОДИКА СБОРКИ И ОБРАБОТКИ ДАННЫХ, ПОЛУЧЕННЫХ ...
помощью которых осуществляется сканирование объектов, называют 3D-сканерами. Эти устройства не только упрощают процесс создания 3D-моделей, но и позволяют решать эту задачу с максимальной степенью достоверности по отношению к исходному оригиналу. Одни подразумевают наличие механического устройства  «щупа», при помощи которого в компьютер передаются координаты выбранных оператором точек; другие (бесконтактные) являются значительно более сложными приборами, в которых заложены весьма изощренные алгоритмы создания пространственных каркасов. Так, во многих из них используется двойная (дополняющая основную) система ввода координат тела. Многие устройства совмещают лазерные датчики (заменяющие механический «щуп» контактных 3D-сканеров) и цифровой фотоаппарат, который используют для большей точности сканирования, что позволяет получить модели объектов с наложенными текстурами.
Помимо аппаратного уровня, в технологии объемного сканирования присутствует и программный уровень, который подразумевает работу с получаемыми от 3D-сканеров данными. На сегодняшний день существует достаточное количество пакетов как коммерческого, так и некоммерческого планов, позволяющих получать компьютерные копии совершенно с разных сторон и в разных формах. Это могут быть обычные полигональные модели, доступные для распространенных дизайнерских программ (например, 3DMax), также есть возможность получения параметрической (математической, CAD) модели, доступной для различных проектировочных программ (SolidWorks, ProEngineer и т.д.) [14].
Так или иначе, первым шагом после процедуры сканирования будет обработка полученных данных. Такая обработка подразумевает определенную последовательность действий, которая имеет характерную логику вследствие специфики области 3D-сканирования и работы с объемными моделями, в частности. Это означает, что в различных программных пакетах логика обработки будет реализована посредством схожих функций, которые, в свою очередь, и будут определять те или иные алгоритмы обработки.
Представленный ниже метод разрабатывался на основе опытных исследований в коммерческой фирме, поэтому его эффективность была неоднократно проверена на реальных объектах.
Предобработка
Примерный порядок действий предлагаемого метода представлен на рис. 1. Как видно, перед получением собственно копии должны быть уже совершены действия, направленные, в общем случае, на уменьшение объема данных, что означает освобождение оперативной памяти компьютера и уменьшение загрузки центрального процессора (ЦП). Естественно, в случае небольшого объема данных теряется смысл соблюдения такой последовательности, но данный алгоритм направлен на экономию времени, с одной стороны, и получение максимально качественного результата, с другой, при условии работы со средним или большим количеством материала. Объем данных в технологии 3Dсканирования определяется количеством и весом «сканов», полученных в процессе сканирования. Этот термин является аналогом термина «снимок» в фотографировании, но ввиду принципиальной разницы получаемых данных  двумерное фотоизображение в фотографировании и трехмерная копия определенной площади поверхности в 3D-сканировании  корректнее использовать термин «скан». Метод был опробован на программном обеспечении RapidForm 2006, Inus Tech., Inc. Предобработка подразумевает следующие действия (рис. 1).  Сканирование. Процесс регистрации поверхности сканируемого изделия. В результате получается определенное количество сканов. В зависимости от используемого вида сканера можно получить сканы разного размера и качества. Размер определяется захватываемой площадью, а качество  точностью передачи деталей поверхности.  Импорт в программное обеспечение (ПО). Зачастую компьютерная программа, используемая в процессе сканирования, непригодна для удобной и быстрой обработки полученных данных, поэтому необходимо следить за тем, чтобы сохраняемые «сырые» данные можно было импортировать в программное обеспечение (ПО), которое будет использовано для дальнейшей обработки. При кажущейся очевидности данной рекомендации нужно помнить, что компании, разрабатывающие ПО, используют свои форматы данных, которые, чаще всего, не будут пригодны для других программных пакетов. Это приводит к необходимости сохранения в популярных форматах, например, .STL или .DXF (если говорить о полигональной модели или облаке точек).  Удаление текстур. Некоторые сканеры позволяют получить сканы с наложенными текстурами, которые зачастую используются дизайнерами в 3D-моделях (кино, анимация). В подавляющем большинстве случаев текстуры являются излишними данными, поэтому их следует удалять. При этом, вопервых, освобождается дополнительное пространство памяти, и, во-вторых, экономится время на обработку программой этих текстур при дальнейшем соединении сканов и обработке поверхности.  Удаление лишних областей. Во время сканирования всегда захватываются лишние элементы, например, поверхность, на которой лежит сканируемый объект. Естественно, что такие области необхо-
88 Научно-технический вестник Санкт-Петербургского государственного университета
информационных технологий, механики и оптики, 2011, № 1 (71)

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

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

Научно-технический вестник Санкт-Петербургского государственного университета информационных технологий, механики и оптики, 2011, № 1 (71)

89

МЕТОДИКА СБОРКИ И ОБРАБОТКИ ДАННЫХ, ПОЛУЧЕННЫХ ...
Рис. 2. Начальное положение сканов и процесс регистрации общих точек
Рис. 3. Результат соединения двух сканов
 Математический расчет соединения («Fine», RapidForm 2006). При соединении сканов возможны локальные погрешности, которые можно аннулировать, используя данную функцию. Эта функция особенно важна при работе с цельнотрехмерными объектами (статуи, автомобили и т.д.), и необходимо ее использовать до процедуры сшивки со всем комплексом уже соединенных между собой сканов (при достаточной мощности компьютера). Это позволяет избежать общей погрешности соединения на всей модели.
Соединение и математический расчет представляют из себя процесс сборки.  Удаление пересечений. При соединении возникают места больших площадей наложения двух или более поверхностей (рис. 4). Такие места необходимо удалять, во-первых, для освобождения пространства памяти, а, следовательно, для уменьшения времени на обработку программой тех или иных действий, и, во-вторых, для того, чтобы избежать возможных ошибок (при наложении одной поверхности на другую) во время процедуры сшивания в единое целое.  Сшивка («Merge», RapidForm 2006). Процедура сшивки позволяет соединить двух или более сканов в единое целое. Используемый метод предполагает сшивание всего комплекса соединенных между собой сканов после проведенной процедуры досоединения, что экономит время, в отличие от попарного сшивания сканов (что, тем не менее, в некоторых случаях эффективнее).
90 Научно-технический вестник Санкт-Петербургского государственного университета
информационных технологий, механики и оптики, 2011, № 1 (71)

В.О. Тишкин

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

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

Научно-технический вестник Санкт-Петербургского государственного университета информационных технологий, механики и оптики, 2011, № 1 (71)

91

МЕТОДИКА СБОРКИ И ОБРАБОТКИ ДАННЫХ, ПОЛУЧЕННЫХ ...

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

Заключение

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

Литература

1. Rioux M. Digital 3-D imaging: theory and applications // Proc. of SPIE: Proceedings, Videometrics III, International Symposium on Photonic and Sensors and Controls for Commercial Applications, Boston, 1994.
 V. 2350.  Р. 215.
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 Informatiche 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).

Тишкин Виталий Олегович

– Санкт-Петербургский государственный университет информационных технологий, механики и оптики, аспирант, tiviol@gmail.com

92 Научно-технический вестник Санкт-Петербургского государственного университета
информационных технологий, механики и оптики, 2011, № 1 (71)