В nanoCAD Plus 7, который вышел 18 мая 2015 года появился ряд функций, существенно расширяющих область применения и позиционирование платформы nanoCAD. Мы предлагаем вниманию наших читателей ряд технических статей, в которых подробнее погружаемся в эти функции, рассматриваем, какими возможностями они обладают и как их можно применить на практике. Эта статья посвящена комплексу функций, объединенных общим названием Облако точек.

Введение

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

Рис. 1. Облака точек получаются в результате 3D-сканирования объектов
Изображение взято из статьи Н. Пелевина «Какие типы 3D-сканеров существуют?»

Качество облака напрямую зависит от качества 3D-сканера, его разрешающей способности, точности и скорости сканирования. Понятно, что серьезные задачи требуют серьезных устройств, но на сегодня источником облака может служить даже популярный сенсор Kinect игровой приставки Microsoft XBOX, который у многих обитает под домашним телевизором и посредством пары незамысловатых датчиков формирует трехмерное изображение. Технологии становятся доступнее с каждым днем – именно этим и объясняется интерес к облакам точек.

Зачем ни нужны? В первую очередь облака точек обеспечивают быструю визуализацию интересующего вас объекта реального мира. Но, конечно, только этой областью они не ограничиваются – облака точек успешно используют для изменений и контроля, 3D-печати, виртуализации труднодоступных мест или больших протяженных объектов, создания трехмерных и математических моделей, распознавания образов, а также при автоматизированном анализе, реконструкциях и эксплуатации. Без сомнения, облака точек привносят много полезного и в системы автоматизированного проектирования: о некоторых направлениях мы поговорим в этой статье, а что-то, может быть, вы придумаете сами – нам кажется, что потенциал трехмерных облаков точек еще до конца не раскрыт и эта технология может стать отличным инструментом для решения ваших задач.

Облака точек в nanoCAD Plus

Итак, начиная с версии 7.0, поддержка облаков точек появилась и в отечественной САПР-платформе nanoCAD Plus. В частности, программный продукт получил дополнительный раздел меню, который объединяет функции импорта и отображения облаков точек (рис. 2). Первым пунктом идет функция импорта.


Рис. 2. Набор команд, который появился в nanoCAD Plus 7.0 для работы с облаками точек

Поддерживаемые форматы
Для начала давайте разберемся с тем, какие форматы поддерживает nanoCAD Plus 7.0. Команда Импорт предоставляет возможность загружать облака точек пяти популярных форматов: BIN (TerraSolid), LAS (ASPRS), PTX (Leica), PTS (Leica) и PCD (Point Cloud Library). Собственный модуль прямого импорта позволяет сохранить максимум информации из исходного файла.

Такой поход не просто делает работу более удобной – в процессе импорта пользователь может получать общую информацию об облаке точек, фильтровать импортируемые метаданные и проводить предварительную классификацию точек: по классу (коду), по отражению и т.д. Таким образом, данные уже приходят в САПР более упорядоченно (рис. 3).


Рис. 3. Прямая поддержка популярных форматов, с которыми работают 3D-сканеры, позволяет контролировать параметры импорта облака точек в САПР

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

Объем данных 3D-сканирования, поддерживаемых nanoCAD Plus
Количество точек в облаке зависит от разрешающей способности 3D-сканера. Вполне обычными считаются облака на 3-4 миллиона точек. Сверхбольшие облака содержат миллиард точек и больше – для обработки такого объема данных необходимы достаточно мощные компьютеры и специализированные алгоритмы.

В nanoCAD Plus 7.0 не предусмотрено никаких технических ограничений на объем облаков точек, а сами алгоритмы оптимизированы для обработки сверхбольших массивов – см. рис. 4, на котором приведены примеры работы с крупными облаками точек (файл-пример цеха (129 миллионов точек) получен с помощью сканеров компании Leica и предоставлен представителями этой компании).


Рис. 4. nanoCAD Plus 7.0 позволяет работать со сверхбольшими облаками размерностью 1 миллиард точек и больше

Отображение облаков точек
nanoCAD Plus позволяет настроить отображение импортированного облака точек – за это отвечает команда Режим отображения. Здесь можно настроить тип раскраски облака и размер точки – очень эффектно отображаются облака точек, раскрашенные по цвету сканирования (рис. 5). Фактически получаются трехмерные фотографии отсканированных объектов, по которым можно прогуляться, встроить их в существующую 3D-модель и даже использовать привязки к точкам облака при любых построениях. Стоит отметить, что этот функционал открыт для вертикальных приложений, загружаемых в nanoCAD Plus. А разработчики таких приложений могут использовать обширный программный интерфейс для доступа к информации о точках облака и их параметрах.


Рис. 5. Облака можно раскрасить в соответствии с метаданными точек: по цвету сканирования, высоте, интенсивности, углу сканирования и т.д.

Если у вас установлен nanoCAD Plus 7.0, вы можете сами побродить в облаке точек – папка примеров содержит в формате *.dwg несложную модель с фильтрационным оборудованием. Попробуйте поменять у нее цвет, толщину точек, походить по модели в режиме перспективной навигации. В этой же папке вы найдете и другие примеры трехмерных точечных проектов.

Операции над облаками точек

Что можно делать с облаками точек, кроме визуализации? Если теоретизировать, то число полезных функций окажется просто огромным: можно сравнивать модели, определяя коллизии, вычленять объекты по определенным признакам (например, по метаданным), классифицировать группы точек по различным признакам, сшивать-разрезать облака точек по этим или дополнительным признакам, распознавать поверхности и объекты…

Но все эти задачи – функционал узкоспециализированных решений, специфичных для конкретной предметной области. В nanoCAD Plus 7.0 набор инструментов для работы с облаками точек несколько скромнее и рассчитан на массовое применение. В частности, платформа позволяет выполнять:
  • обрезку облаков точек по прямоугольникам либо по полигону. Это позволяет сократить размер облака, с которым пользователь работает в данный момент, и вычленить из облака точек нужную для работы модель;
  • построение вертикального или горизонтального сечения по облаку точек. Например, с помощью этой функции можно получить сечение здания либо поверхность земли (рис. 6);
  • привязку к ближайшим точкам сечения и геометрические построения по сечению облака точек.


Рис. 6. Сечение, построенное по облаку точек в nanoCAD Plus 7.0

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

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

Примеры работ с облаками точек

Применяя к данным, полученным из облаков точек, дополнительные алгоритмы, можно решать более интеллектуальные задачи. Например, вот видео оцифровки фасадов зданий в Венеции (с помощью мобильной лазерной системы сканирования RIEGL VMX-250) и дальнейшего анализа фасадов на результаты деформаций и последствия действий вандалов:

Пример использования облаков точек для автоматизированного анализа фасадов зданий в Венеции

А вот пример оцифровки Большого каньона (США) с помощью сканеров RIEGL VZ-4000 – посмотрите, как создаются трехмерные модели:

Практическое сканирование на примере создания трехмерной модели Большого каньона

Трехмерное сканирование позволяет описывать модели труднодоступных объектов – например, заброшенных шахт:

Пример создания трехмерной модели заброшенной шахты

Кроме того, в Интернете вы найдете массу других примеров оригинального применения технологии облака точек. Решение всех этих задач стало возможным благодаря развитию программного и аппаратного обеспечения.

Заключение

Вот какая интересная технология реализована теперь в платформе nanoCAD Plus. Кто-то скажет, что пока направление 3D-сканирования носит скорее рекламный характер. Отчасти соглашусь – эту технологию можно еще развивать и совершенствовать. Собственно, именно к этому мы и призываем – давайте находить практические задачи, в которых востребованы технологии трехмерного сканирования, распознавания образов и интеллектуальной обработки данных. Мы готовы к сотрудничеству.

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

Комментарии (10)


  1. AcidVenom
    24.09.2015 15:14
    +1

    Чисто технический вопрос: поддерживается ли «многоядерность» или вся нагрузка ложится на 1 ядро ЦП?


    1. dows
      24.09.2015 15:42
      +2

      Если говорить технически четко, то ответ «нет».
      Если немного пофилософствовать, то с нашей точки зрения для технологии Облаков точек многопоточность не принесет особо ощутимых результатов и ускорения. Многопоточность может принести ощутимые результаты при импорте данных (распараллелить загрузку), но вот дальше на обработке облачных данных накладные расходы на создание потоков, подготовку данных, слияние выше, чем весь эффект от параллельной обработки…


      1. AcidVenom
        24.09.2015 16:04
        +1

        Спасибо за развернутый ответ.
        А вообще планируете ли внедрение этой технологии в ваши программные комплексы?
        Я не могу сказать точно есть ли затыки на уровне ЦП при работе с Нанокадом, но вот в Автокаде это просто беда.


        1. dows
          24.09.2015 17:24
          +1

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


  1. krox
    25.09.2015 07:55

    Возможен ли /планируете сделать импорт данных с Faro Laser Scanner формата fws?


    1. dows
      25.09.2015 09:20

      А подробнее можно спросить? Почему именно этот формат, зачем он именно вам?


      1. krox
        25.09.2015 09:23

        Потому что у нас имеется Faro Laser Scanner Focus 3D. Ну и ПО выдаёт результаты в этом формате. Конечно, можно экспорт делать и в другие, но лучше же работать с родным форматом сканера.


        1. dows
          25.09.2015 11:02

          Ага, понятно. Напишите в личку — нас еще интересуют объемы и какие потом задачки решаете. Может быть расширить задачу на чуть больше, чем просто поддержка формата? Вы к этому готовы?


        1. dows
          25.09.2015 11:51

          Так… параллельно чуть подробнее узнал об этом формате — это проприетарный формат, а значит надо покупать их библиотеки; это затраты…

          Поэтому без внятного обоснования, бизнес-планирования его поддержка будет затягиваться — это экономически нецелесообразно. Если появляется Заказчик, которому это жизненно необходимо и который готов вложиться в работу + поддержку формата, то без сомнения сделаем…


  1. SHVV
    25.09.2015 12:11

    Интересно, конечно. Но хотелось бы почитать подробнее о самой реализации (на сколько это возможно). С какими проблемами сталкивались, как их решали. Миллиард точек — на сколько это много для современного железа. Есть ли возможность динамической детализации без загрузки всего облака в оперативную память и т.д.
    Всё-таки, это технический ресурс.