Rcs формат облака точек чем открыть

Обновлено: 04.07.2024

Облако точек (англ. point cloud) — набор вершин в трёхмерной системе координат. Эти вершины, как правило, определяются координатами X, Y и Z и предназначены для представления внешней поверхности объекта.

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

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

Хотя облака точек могут быть непосредственно визуализированы и проверены, они, как правило, не используются напрямую в большинстве 3D-приложений, и поэтому, как правило, конвертируются в полигональную сетку, модели с NURBS—поверхностями или CAD-модели при помощи процесса, известного как «реконструкция поверхности» (англ. surface reconstruction).




Классификация алгоритмов перехода от облака точек к поверхности

Общая классификация алгоритмов проводится в соответствии с качеством (типом) исходных данных:

  • Неорганизованные облака точек: алгоритмы, которые используют лишь информацию про пространственное положение точек. При этом нет никаких предположений про геометрию объекта.
  • Структурированные облака точек: алгоритмы на основе структурированных данных могут учесть дополнительную информацию по точкам (например, структурные линии).


Структурные линии – это линии соединяющие точки поверхности и однозначно определяющие триангулирование участка поверхности. Каждый отрезок структурной линии при формировании цифровой модели рельефа обязательно будет являться ребром треугольника.

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

Другая классификация основана на способе представления поверхности:


  • Параметрическое представление: эти методы представляют поверхность как набор параметрических участков поверхности, описываемых параметрическими уравнениями. Затем можно соединить несколько участков вместе, чтобы сформировать непрерывную поверхность. Примеры параметрических представлений включают B-сплайн, кривые Безье.
  • Неявное представление: эти методы пытаются найти гладкую функцию.

Поверхность называется N-гладкой относительно заданной параметризации, если каждая из координатных функций x(u,v), y(u,v), z(u,v) имеют непрерывную производную до порядка N включительно.

  • Симплициальное представление: в этом представлении поверхность представляет собой набор простых объектов, включая точки, ребра и треугольники.


Классификация по использованию данных:




Классификация алгоритмов по наличию дополнительной информации:

  • известен топологический тип поверхности (например, плоскость, цилиндр или сфера)


  • информация о структуре (чайник с носиком, ручкой и крышкой) и ориентации


Этапы перехода от облака точек к поверхности

Преобразование облака точек в поверхность состоит из четырех шагов:

Предварительная обработка:

Определение глобальной топологии поверхности объекта:

  • установление отношений между соседними частями поверхности
  • сортировка и рассмотрения возможных «ограничений» (например, определение структурных линий)
  • выделения особых свойств (например, кромок).

Создание многоугольной поверхности:

Пакеты для 3D-визуализации сетей. Модуль PyVista

В Python есть несколько вариантов 3D-визуализации сетей, среди которых несколько известных проектов:

  • Matplotlib (Hunter, 2007),
  • Mayavi (Ramachandran & Varoquaux, 2011),
  • the yt Project (Turk et al., 2010),
  • the Visualization Toolkit (VTK) (Schroeder, Lorensen, & Martin, 2006).

Примеры, демонстрирующие возможности PyVista

Ниже приводятся несколько быстрых примеров, демонстрирующих возможности PyVista.

Пример 1. Создание объекта PolyData (триангулированная поверхность) из массивов NumPy вершин и граней. Объект PolyData можно быстро создать из множества массивов. Массив вершин содержит местоположения точек в сетке, а массив граней содержит количество точек каждой грани и индексы вершин, составляющих эту грань.


Пример 2.



Пример 4. Использование фильтра связности, чтобы удалить зашумленные изоповерхности

Изображенная на рисунке слева сетка очень зашумлена. Мы можем извлечь самые большие связанные isosurface в этой сетке с помощью func: `pyvista.DataSetFilters.connectivity` или с помощью фильтра: func: pyvista.DataSetFilters.extract_largest` (обе эквивалентны).


Форматы файлов облака точек

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

Используемые типы файлов поддерживают как ASCII код, передающий данные в виде строк текста, так и двоичные форматы. Каждая строка текста в файле ASCII представляет запись в виде пространственных координат (x, y, z). Дополнительная информация, такая как цвет и интенсивность, может быть включена в некоторые форматы. Файлы ASCII можно открывать в текстовых редакторах. Однако использование текста для передачи данных связано с расходами. Форматы двоичных файлов более компактны. Также требуется меньше времени для обработки и визуализации двоичных файлов, поскольку их можно проиндексировать, что позволяет читать их по частям, а не последовательно.

STL (от англ. stereolithography ) — формат файла, широко используемый для хранения трёхмерных моделей объектов c целью использования в аддитивных технологиях. Информация об объекте хранится как список треугольных граней, которые описывают его поверхность, и их нормалей.

OBJ — это простой формат данных, который содержит только 3D геометрию, а именно, позицию каждой вершины, связь координат текстуры с вершиной, нормаль для каждой вершины, а также параметры, которые создают полигоны.


Автор:

Вставка индексированного файла облака точек в проект Revit .

Формат файла .rcp является файлом проекта, в котором группируется одновременно несколько файлов сканирования .rcs. Результатом индексации файла исходного формата является файл .rcp и один или несколько файлов .rcs. Прим.: Для преобразования данных файла сканирования (исходные форматы) в формат облака точек можно использовать программу Autodesk ® ReCap ™ . Данный формат можно открыть и редактировать в других продуктах (например, Revit ). Дополнительные сведения о программе Autodesk ReCap доступны на странице Справка по Autodesk Recap.
  • Создайте пользовательскую папку PointClouds на локальном компьютере, как в следующем примере: C:\Users\имя_пользователя\Documents\PointClouds.
  • Это относительная ссылка. Если все пользователи хранят копию облака точек в этой папке на своем компьютере, программа Revit ссылается на нее при загрузке ссылок на главную модель для совместной работы, даже если имя пользователя на разных компьютерах отличается.


  1. Откройте проект Revit .
  2. Выберите вкладку "Вставка" панель "Связь" ("Облако точек").
  3. Задайте файл или файлы для установки связи с помощью следующих операций:
    • В поле "Область поиска" перейдите в папку, содержащую файл(ы).
    • Для параметра "Тип файлов" выберите один из следующих параметров:
      • Проекты облаков точек (*.rcp). Укажите индексированный файл проекта облака точек с расширением .rcp. Файл .rcp включает в себя несколько файлов облака точек формата .rcs.
      • Облака точек (*.rcs). Укажите индексированный файл облака точек с расширением .rcs.
    • В поле "Имя файла" выберите файлы или укажите имена файлов.
Совет: Нажмите клавишу CTRL или SHIFT для выбора нескольких файлов. Прим.: По умолчанию начало проекта и общее (геологическое) начало находятся в одном местоположении. При связывании файла облака точек конечный результат выбора параметров "Авто - Совмещение начал координат" и "Авто - По общим координатам" будет одинаковым.

Revit извлекает текущую версию файла облака точек и привязывает ее к проекту.

Программы для фотограмметрического создания облаков точек

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

Видео 4K в форматах avi, mov, wmv и mp4

аэротриангуляция, уплотнение облака точек, построение трехмерной сетки, ортотрансформирование

• Ортомозаика в формате GeoTIFF

• Карты фрагментов в KML, HTML

• Карта индекса растительности в GeoTIFF

• Карта приложения в SHP

• Тепловые карты в GeoTiff

• 3D PDF для 3D сетки

• DSM и DTM в GeoTIFF

• Трехмерная текстурированная сетка в форматах OBJ, PLY, DXF и FBX

• Трехмерная сетка с уровнем детализации (LoD) в SLPK и OSGB

• Облако точек в LAS, LAZ, XYZ и PLY

• Контурные линии в SHP, DXF и PDF

• Векторные объекты в DXF, SHP, DGN и KML

LAS, LAZ, e57, PTX, PTS, POD, TDX, TopoDOT, RCP, ASCII

GeoTIFF, JPEG, KML / KMZ, 3D PDF

DWG, DXF, SHP, SKP

• Ортомозаика в формате GeoTIFF

• Карта индекса растительности в GeoTIFF

• Тепловые карты в GeoTiff

• DSM и DTM в GeoTIFF

• Трехмерная текстурированная сетка в OBJ, PLY

• Облако точек в LAS, LAZ и PLY

• Контурные линии в SHP, DXF

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

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

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

CAD / Mesh: FBX, OBJ

LAS, LAZ, e57, PTX, PTS, POD, TDX, TopoDOT, RCP, ASCII

GeoTIFF, JPEG, KML / KMZ, 3D PDF

DWG, DXF, SHP, SKP

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

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


В 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 несложную модель с фильтрационным оборудованием. Попробуйте поменять у нее цвет, толщину точек, походить по модели в режиме перспективной навигации. В этой же папке вы найдете и другие примеры трехмерных точечных проектов.

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

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

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

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

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

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

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

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

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

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

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

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

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

Заключение

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

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

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

Тематическая картинка (собственные данные), городская дорога - облако точек в среде CloudCompare Тематическая картинка (собственные данные), городская дорога - облако точек в среде CloudCompare

1. Инициализация и первичная обработка облаков точек

Здесь мы должны переварить тот материал, который будет у нас в распоряжении. То есть сконвертировать (если это возможно), облако точек в общедоступный формат данных.

Предполагается, что предоставленное облако точек сидит в "плоских координатах". Существует 2 основных пути получения облака точек - это лазерное сканирование (наземное/воздушное), где съемка ведется сразу в прямоугольных координатах, которые при обработке пересчитываются из условных в прямоугольные другой системы координат и фотограмметрия (где идет сшивка ряда фотографий), где используются географические координаты WGS-84 и последующее преобразование результата (ортофотоплана и облака точек) в нужную СК.

1.1 Если облако точек в СК WGS-84

Встречаются ситуации, когда пользователь так и выгружает облако точек в СК WGS-84. Насколько я знаю, бесплатное ПО не умеет конвертировать подобное представление данных. Это можно сделать программно, и я, пожалуй, это как-то рассмотрю, но пока не будем трогать этот момент.

Примечание : технически, данный процесс реализован утилитой gdalwarp в составе пакета GDAL, но мы посвятим этому отдельную статью позже.

Из коммерческих программ, в базовом функционале которых есть опция преобразования координат точек при загрузке в какую-либо СК, я знаю Autodesk ReCap (преобразование только в плоские международные СК, имеющие код EPSG) и Credo 3D Scan.

2 CloudCompare - загрузка и классификация облаков точек

Имея на руках облако точек в плоских координатах, перейдем к следующей позиции - загрузку его в среду CloudCompare для обработки

CloudCompare - это большой open source проект, само приложение написано на C++ и доступно на github. Когда-нибудь позже я постараюсь написать и про него с программной точки зрения, как получу больше практики в C++.

Скачиваем последнюю версию (можно alpha-версию) отсюда и устанавливаем программу.

Читайте также: