ВИЗУАЛИЗАЦИЯ ИЗОБРАЖЕНИЙ ПО ДАННЫМ ЛАЗЕРНОГО СКАНИРОВАНИЯ
IMAGE RENDERING OF LASER SCAN DATA

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Настоящее изобретение относится к способу и системе для визуализации изображения по данным лазерного сканирования.
УРОВЕНЬ ТЕХНИКИ
Трехмерное лазерное сканирующее устройство может использоваться для обследования некой среды, например технологической установки, сосуда или другого оборудования. Обычное сканирующее устройство включает в себя лазерный дальномер, который может измерять расстояние между сканирующим устройством и точкой на поверхности, которая находится в поле зрения. Перемещаясь через поле зрения (обычно 360 градусов по горизонтали и почти 180 по вертикали), сканирующее устройство может захватывать набор дальностей (в материалах настоящей заявки называемых «данными лазерного сканирования») для окружающей среды. Они могут использоваться для формирования набора точек в трехмерном пространстве, часто называемого «облаком точек». Пример облака точек описан в EP 1 176 393 A2.
В разных положениях в среде может выполняться множество сканирований, и облака точек из разных сканирований могут объединяться для создания объединенного (или «агрегированного») облака точек, охватывающего более широкую область. Пример объединения данных облака точек можно найти в WO 2004/003844 A1.
В дополнение к получению данных дальности сканирующее устройство также может захватывать изображения окружающей среды путем измерения интенсивности отраженного лазерного излучения или с использованием камеры.
Облако (облака) точек и изображения могут использоваться для визуализации и/или анализа среды с использованием приложения просмотра облака точек или приложения трехмерного автоматизированного проектирования (CAD). Обычно эти приложения делятся на две категории, а именно, те которые работают с точками из отдельных сканирований, и те, которые работают с точками, объединенными из множества сканирований.
Одним из простейших приложений лазерного сканирования является отображение изображения, захваченного отдельным сканированием. Поскольку изображение из лазерного сканирования сферическое, охватывающее область вокруг лазерного сканирующего устройства, программное приложение может отображать изображение на внутреннюю часть сферы. Приложение может отображать часть сферы на экране компьютера. Пользователь может вращать это отображения, чтобы рассматривать разные части всего изображения. Это отображение называется «отображением пузыря».
В отображении пузыря пользователь может выбирать пятно на изображении и извлекать трехмерную координату этого местоположения с использованием данных облака точек для этого лазерного сканирования. Выбирая две точки, пользователь может измерять расстояния.
Один тип приложения может накладывать трехмерную CAD-модель в отображении пузыря. Поскольку приложение знает трехмерное местоположение точек в отображении пузыря, оно может скрывать подходящие части CAD-модели позади отображения пузыря. Это объединенное изображение может быть полезно при проектировании новых областей оборудования.
Привлекательной особенностью отображения пузыря является то, что оно выглядит реалистичным. Реализм образуется из изображения, захваченного в местоположении сканирующего устройства. Однако ограничением отображения пузыря является то, что они могут создаваться только для местоположений, в которых располагалось лазерное сканирующее устройство. Пользователь может выбирать отображение пузыря и вращать его влево и вправо либо вверх и вниз, но он/она не может двигаться вперед, назад, горизонтально или вертикально, чтобы рассматривать среду с другой перспективы.
Для обеспечения возможности свободного перемещения некоторые программные приложения работают с объединенным облаком точек из множества сканирований. Используя такое приложение, пользователь выбирает местоположение в пределах оборудования и направление наблюдения. Затем приложение отображает каждую точку в объединенном облаке точек вокруг этого местоположения из точки наблюдения пользователя. Пользователь может двигать местоположение и направление наблюдения, чтобы видеть точки с разных перспектив.
Некоторые приложения могут отображать CAD-модель в том же трехмерном пространстве, что и объединенное облако точек. Тогда пользователь может измерять расстояния между местоположениями в CAD-модели и точками в облаке точек. Пользователь также может определять, пересекают ли части облака точек части CAD-модели.
Хотя отображение объединенного облака точек дает пользователю возможность рассматривать точки более чем с одной перспективы, такой подход может иметь один или более недостатков.
Отображение отдельных точек, как правило, затратно в вычислительном отношении. В представлении сканированной поверхности на близких расстояниях могут появляться пропуски, и поэтому различение поверхностей может быть затруднительным
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
В соответствии с первым аспектом настоящего изобретения предложен способ визуализации изображения по данным трехмерного лазерного сканирования. Способ содержит обеспечение набора данных лазерного сканирования для определенного сканирования в виде карты сферического смещения и формирование структуры мозаичного заполнения путем дискретизации карты сферического смещения. Способ содержит визуализацию изображения с использованием структуры мозаичного заполнения.
Сохраняя данные лазерного сканирования для определенного сканирования в виде набора точек (в отличие от агрегирования данных лазерного сканирования для множества сканирований) и пользуясь тем, что данные лазерного сканирования могут обеспечиваться в виде карты смещения, которая может обрабатываться напрямую графической системой, могут эффективно и/или быстро визуализировать изображение по данным лазерного сканирования. Это может быть особенно полезным при объединении изображений из множества сканирований, поскольку каждое сканирование может обрабатываться независимо, и изображения из разных сканирований могут легко объединяться в общий буфер. Это делает возможным эффективную/быструю визуализацию не только неподвижных изображений, но также движущихся изображений, например, когда пользователь «перемещается» по среде.
Обеспечение набора данных лазерного сканирования для определенного сканирования в виде карты сферического смещения может содержать прием набора данных лазерного сканирования, сформированного лазерным сканирующим устройством в определенном местоположении, и копирование значения дальности для определенной точки лазерного сканирования при определенном азимуте и определенном угле места из данных лазерного сканирования в соответствующий пиксель текстуры двумерной текстуры (или текстуры более высокой размерности) в положении пикселя текстуры, соответствующем определенному азимуту и определенному углу места.
Способ может содержать формирование структуры мозаичного заполнения графическим процессором (GPU). Однако способ может содержать формирование структуры мозаичного заполнения центральным процессором (CPU).
Процессор может быть выполнен с возможностью конфигурирования с использованием интерфейса прикладного программирования (API) Microsoft (RTM) DirectX (RTM) 11 (или более поздней версии) или OpenGL 4.4 (или более поздней версии).
Способ может дополнительно содержать идентификацию разрывов между соседними точками на карте сферического смещения и маркировку соседних точек. Маркировка соседних точек может содержать установку значения смещения на заданное число, например 0 или –1.
Способ может дополнительно содержать формирование карты нормалей в зависимости от упомянутой карты сферического смещения. Карта смещения и карта нормалей могут объединяться в одну текстуру. Одна текстура может содержать по меньшей мере четыре канала.
Формирование карты нормалей может содержать вычисление нормали для каждой точки на карте сферического смещения и сохранение нормали в карте нормалей. Нормаль может содержать значения первой, второй и третьей составляющей вектора.
Способ может дополнительно содержать формирование текстуры смешивания в зависимости от карты сферического смещения. Текстура смешивания может содержать массив пикселей текстуры смешивания, причем каждый пиксель текстуры смешивания содержит значение, которое зависит от расстояния до разрыва.
Способ может дополнительно содержать формирование карты фрагментов для определенного сканирования, причем карта фрагментов содержит множество фрагментов.
Карта фрагментов может содержать многоугольные фрагменты, при этом каждый фрагмент имеет три или более вершин. Фрагменты могут иметь одинаковую форму. Фрагменты могут иметь одинаковый размер. Фрагменты могут быть прямоугольниками. Если фрагменты являются прямоугольниками, то карта фрагментов может содержать положения противоположных вершин.
Положение, форма и/или размер фрагментов могут зависеть от разрывов на карте сферического смещения.
Карта фрагментов может включать в себя относительный уровень мозаичного заполнения для каждого фрагмента. Способ может содержать задание относительного уровня мозаичного заполнения у определенного фрагмента в зависимости от разрывов. Способ может содержать задание относительного уровня мозаичного заполнения у определенного фрагмента в зависимости от дисперсии нормалей по определенному фрагменту.
Способ может содержать вычисление абсолютного уровня мозаичного заполнения для определенного фрагмента в зависимости от положения наблюдения и/или видимости определенного фрагмента.
Способ может дополнительно содержать определение, маркируется ли вершина, образующая часть треугольника в структуре мозаичного заполнения, как находящаяся на разрыве или рядом с ним, и отбраковку (или «отбрасывание») треугольника в зависимости от определения того, что вершина недопустима.
Способ может дополнительно содержать формирование набора пикселей для сканирования и выполнение проверки глубины.
Способ может содержать окрашивание пикселя в зависимости от нормали пикселя. Способ может содержать окрашивание пикселя в зависимости от интенсивности и/или цвета в соответствующей части изображения.
Способ может содержать обеспечение более одного набора данных лазерного сканирования, причем каждый набор данных лазерного сканирования соответствует соответствующему сканированию. Каждый набор данных лазерного сканирования обеспечивается в виде соответствующей карты сферического смещения. Способ может содержать объединение визуализированных изображений из разных сканирований. Объединение визуализированных изображений из разных сканирований может содержать использование буфера глубины.
В соответствии со вторым аспектом настоящего изобретения предложена компьютерная программа, которая содержит команды для выполнения способа.
В соответствии с третьим аспектом настоящего изобретения предложен машиночитаемый носитель или постоянный машиночитаемый носитель, который хранит компьютерную программу.
В соответствии с четвертым аспектом настоящего изобретения предложена компьютерная система, содержащая память и по меньшей мере один процессор. Память хранит набор данных лазерного сканирования для определенного сканирования в виде карты сферического смещения, и по меньшей мере один процессор выполнен с возможностью формирования структуры мозаичного заполнения путем дискретизации карты сферического смещения.
По меньшей мере один процессор может содержать по меньшей мере один графический процессор. По меньшей мере один процессор может содержать по меньшей мере один центральный процессор. По меньшей мере один процессор может содержать один процессор, например один графический процессор.
По меньшей мере один процессор может быть выполнен с возможностью конфигурирования с использованием интерфейса прикладного программирования Microsoft (RTM) DirectX (RTM) 11 (или более поздней версии). По меньшей мере один процессор может быть выполнен с возможностью конфигурирования с использованием интерфейса прикладного программирования OpenGL.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Некоторые варианты осуществления настоящего изобретения далее будут описаны в качестве примера со ссылкой на прилагаемые чертежи, на которых:
Фиг. 1 – блок-схема системы для получения и обработки данных лазерного сканирования, и визуализации изображения;
Фиг. 2 – блок-схема компьютерной системы, которая может использоваться для обработки данных лазерного сканирования и визуализации изображения;
Фиг. 3 – последовательность операций способа обработки данных лазерного сканирования;
Фиг. 4 иллюстрирует формирование карты сферического смещения;
Фиг. 5 показывает разрыв между двумя поверхностями;
Фиг. 6 показывает обновление карты сферического смещения для маркировки разрыва;
Фиг. 7 иллюстрирует формирование карты нормалей;
Фиг. 8 показывает формирование карты смешивания;
Фиг. 9 иллюстрирует размещение правильных прямоугольных фрагментов;
Фиг. 10 иллюстрирует размещение неправильных прямоугольных фрагментов;
Фиг. 11 иллюстрирует размещение неправильных непрямоугольных фрагментов;
Фиг. 12 показывает карту фрагментов;
Фиг. 13 показывает добавление относительных данных мозаичного заполнения в карту фрагментов;
Фиг. 14 – блок-схема графического конвейера и графической памяти;
Фиг. 15 иллюстрирует выход шейдера поверхности;
Фиг. 16 иллюстрирует уровни мозаичного заполнения для фрагмента;
Фиг. 17 иллюстрирует выход шейдера мозаичного заполнения и вход шейдера областей;
Фиг. 18 иллюстрирует работу шейдера областей с использованием текстуры, которая включает в себя карту смещения и карту нормалей;
Фиг. 19 иллюстрирует вывод списка вершин из шейдера областей;
Фиг. 20 показывает работу геометрического шейдера, который отбраковывает недопустимые треугольники;
Фиг. 21 иллюстрирует работу средства прорисовки;
Фиг. 22 иллюстрирует работу пиксельного шейдера;
Фиг. 23 – последовательность операций проверки глубины;
Фиг. 24 иллюстрирует параллельную обработку сканирований;
Фиг. 25 иллюстрирует объединенное облако точек, сформированное из множества сканирований;
Фиг. 25a – увеличенное изображение части облака точек, показанного на фиг. 25;
Фиг. 26 показывает объединенное изображение с мозаичным заполнением, сформированное из отдельных сканирований облака точек, показанного на фиг. 25;
Фиг. 26a – увеличенное изображение части изображения с мозаичным заполнением, показанного на фиг. 26;
Фиг. 26b – увеличенное изображение другой части изображения с мозаичным заполнением, показанного на фиг. 26;
Фиг. 27 показывает объединенное визуализированное изображение, сформированное с использованием мозаичного заполнения, показанного на фиг. 26; и
Фиг. 28 показывает объединенное визуализированное изображение, сформированное из отдельных сканирований облака точек, показанных на фиг. 25, с другой точки наблюдения.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
ОБЗОР СИСТЕМЫ
Обращаясь к фиг. 1, показана система 1 для формирования и обработки данных лазерного сканирования и визуализации изображения.
Система 1 включает в себя одно или более трехмерных лазерных сканирующих устройств 2 для обследования среды 3, которая включает в себя некоторое количество целевых поверхностей 4. Лазерное сканирующее устройство 2, или каждое из них, включает в себя блок 5 лазерного сканирования, который формирует данные 6 лазерного сканирования (в материалах настоящей заявки называемые просто «данными сканирования»), при необходимости камеру 7, которая может использоваться для формирования данных 8 изображения, например файл в формате JPEG, и встроенное хранилище 9 для хранения данных 6, 8. Лазерное сканирующее устройство 2, или каждое из них, включает в себя процессор(ы) 10 и память 11, которые могут использоваться для обработки данных 6 лазерного сканирования, например, для форматирования данных. Для обработки данных может использоваться отдельная компьютерная система (не показана).
Блок 5 лазерного сканирования формирует элемент данных 6 сканирования для некоторой точки путем излучения импульсного лазерного луча 12 в определенном направлении (то есть при определенном горизонтальном угле и определенном вертикальном угле), обнаружения отраженного луча 13, который отражается от целевой поверхности 4 обратно к лазерному сканирующему устройству 2, и определения дальности до целевой поверхности 4 на основе времени пролета лазерного луча 12, 13. Набор данных 6 сканирования может собираться путем горизонтального и вертикального сканирования лазерного луча 12, таким образом, чтобы сформировать набор точек вокруг сканирующего устройства 2. Каждая точка в данных 6 сканирования обеспечивается в виде набора декартовых координат, то есть каждая точка выражается в виде (x, y, z). Точки в наборе данных 6 упорядочиваются по азимуту и углу места.
Данные 6 сканирования и, при необходимости, данные 8 изображения поступают в компьютерную систему 15, которая включает в себя модуль 16 обработки данных сканирования, который формирует набор 17 текстур 18, 19, 20, 21, причем некоторые текстуры объединены в одну текстуру 22, и карту 23 фрагментов для каждого сканирования. Компьютерная система 15 также включает в себя хранилище 24 в виде одного или более жестких дисков для хранения данных. Жесткий диск (диски) может быть накопителем на жестком диске, твердотельным накопителем, оптическим накопителем или другим видом подходящего хранилища.
Как будет более подробно объяснено далее, набор 17 текстур включает в себя карту 18 сферического смещения (в материалах настоящей заявки также называемую «картой глубин») и карту 19 нормалей, полученные из данных 6 сканирования. Как также будет более подробно объяснено далее, карта 18 смещения и карта 19 нормалей объединяются в одну 4-канальную текстуру 22 (в материалах настоящей заявки называемую «объединенной текстурой»).
Набор 17 текстур может включать в себя карту 20 смешивания. Набор 17 текстур может включать в себя карту 21 цветов, полученную из данных 8 изображения.
Компьютерная система 15 включает в себя пользовательские устройства 25 ввода (например, мышь и/или клавиатуру), систему 26 визуализации и дисплей 27 для отображения изображения 28 из точки 29 наблюдения, которая передается пользователем посредством пользовательского устройства 25 ввода. Система 26 визуализации создает триангулированные трехмерные поверхности с использованием набора 17 текстур и карты 23 фрагментов, полученных из одного или более разных сканирований, и визуализирует поверхности в реальном масштабе времени из любой точки наблюдения, объединяя полученные из сканирования (сканирований) поверхности в изображение 28.
Модуль 16 обработки данных сканирования и система 26 визуализации могут быть реализованы в различных компьютерных системах. Например, модуль 16 обработки данных сканирования может быть полностью или частично реализован с помощью лазерного сканирующего устройства 2. В качестве альтернативы, лазерное сканирующее устройство 2 может формировать карту 18 смещения, а первая компьютерная система может формировать другую текстуру (текстуры) 19, 20, 21 и карту 23 фрагментов, или только карту 23 фрагментов, и передавать текстуру (текстуры) 18, 19, 20, 21 и карту 23 фрагментов второй компьютерной системе, которая реализует систему 26 визуализации.
Обращаясь также к фиг. 2, компьютерная система 15 показана более подробно.
Компьютерная система 15 включает в себя один или более центральных процессоров 31 (CPU), имеющих соответствующую кэш-память (не показана), системную память 32, графический модуль 33, например, в виде графической платы, которая включает в себя графический процессор 34 (GPU) и графическую память 35 (которая может называться «видеопамятью»), и интерфейс 36 ввода/вывода (I/O), функционально соединенные с помощью шины 37. Примером подходящего графического модуля 33 является GPU GeForce 460 от NVIDIA (RTM) с 1 Гб видеопамяти.
Интерфейс 36 I/O функционально соединен с шиной и/или сетевым интерфейсом (интерфейсами) 38 (например, интерфейсом USB или интерфейсом WLAN) для приема данных 6 сканирования от сканирующего устройства 2 или каждого из них. Интерфейс 36 I/O также функционально соединен с пользовательскими устройствами 25 ввода и хранилищем 24, например, в виде одного или более накопителей на жестком диске и/или твердотельных накопителей. Не показаны некоторые периферийные устройства, например съемные носители, и другие компоненты компьютера. Компьютерная система 15 может иметь отличную конфигурацию от показанной на фиг. 2.
Модуль 16 обработки сканирования реализуется в программном обеспечении. Машинный код 39 для реализации модуля 16 обработки сканирования хранится в хранилище 24 и загружается в память 32 для исполнения посредством CPU 31.
Система 26 визуализации предпочтительно реализуется с использованием GPU, с тем чтобы воспользоваться расширенными возможностями графической обработки у GPU, в частности – мозаичным заполнением. Однако система 26 визуализации может быть реализована с использованием одного или более CPU.
Как будет более подробно объяснено далее, система 26 визуализации реализует графический конвейер 60 (фиг. 14), который включает в себя множество модулей 61, 62, 63, 64, 65, 66, 67, 68 (фиг. 14), включающих в себя программируемые и с фиксированными функциями шейдеры 61, 62, 63, 64, 65, 67, 68 и средство 66 прорисовки.
ОБРАБОТКА СКАНИРОВАНИЯ
Обращаясь к фиг. 1, 2 и 3, далее будет более подробно описана работа модуля 16 обработки данных сканирования.
Модуль 16 загружает набор данных 6 сканирования для некоего сканирования из сканирующего устройства 2 по шине или сети (не показано), или портативного хранилища (не показано), и/или из хранилища 24 (этап S1). Данные 6 сканирования представлены декартовыми координатами, и поэтому модуль 16 преобразует и сохраняет данные 6 сканирования в виде карты 18 сферического смещения (этап S2).
i,j
Обращаясь также к фиг. 4, показана сферическая система 41 координат. Сферическая система 41 координат включает в себя начало 42 координат (то есть точку привязки в сканирующем устройстве 2) и горизонтальную и вертикальную оси 43, 44 координат. Как показано на фиг. 4, сканирующее устройство 2 захватывает расстояние (или «дальность»), d, между началом 42 координат и точкой 45 на целевой поверхности 4 (фиг. 1).
1
2
3
4
Данные 6 сканирования для некоего сканирования копируются в текстуру 22. Текстура 22 принимает вид карты (u,v), которая включает в себя двумерный массив элементов 46 текстуры (или «пикселей текстуры»). Каждый пиксель текстуры 46 содержит первый, второй, третий и четвертый элементы 46, 46, 46, 46.
Как объяснялось ранее, текстура 22 имеет четыре канала. Первый канал хранит карту 18 смещения, а второй, третий и четвертый каналы хранят карту 19 нормалей.
i,j
Горизонтальная ось текстуры 22, u, пропорциональна горизонтальному углу (или «азимуту») лазерного сканирующего устройства 2. Вертикальная ось текстуры, v, пропорциональна вертикальному углу («углу места») лазерного сканирующего устройства 2. Каждый пиксель текстуры 46 хранит значение дальности для точки в сканировании в виде глубины, d, при азимуте и угле места, соответствующих его местоположению (u,v). Таким образом, значения дальности при сохранении в текстуре 22 обеспечивают карту 18 сферического смещения лазерного сканирования.
Данные 8 изображения в виде составляющих значений RGB могут аналогичным образом быть скопированы в карту 21 цветов.
TH
Обращаясь к фиг. 1, 2, 3, 5 и 6, модуль 16 обработки данных сканирования изучает пиксели 46 текстуры для определения, имеются ли какие-нибудь разрывы на карте 18 смещения, путем поиска соседних пикселей 46 текстуры с разностью по глубине, Δd, которая превышает заданную пороговую величину, Δd, и если это так, маркирует разрыв, чтобы местоположение не было мозаично заполнено (этап S3). Разрыв маркируется с использованием заданного числа, например 0 или –1.
1
2
Карта 18 смещения сферическая и получается из точки наблюдения лазерного сканирующего устройства 2. Таким образом, разрыв между соседними пикселями 46 текстуры на карте 18 сферического смещения представляет собой область или линию 47, где лазерное сканирующее устройство 2 перешло с одной поверхности 48 на другую поверхность 48. Поэтому в этой области не следует изображать никакой поверхности.
TH
TH
Например, как показано на фиг. 5, две соседние точки сканирования попадают на каждую сторону границы 47. Как показано на фиг. 6, соответствующие пиксели 46 текстуры имеют значения глубины, например, 855 и 22 соответственно. Пороговая величина, Δd, может быть равна, например, 300. Таким образом, разность глубины Δd=855–22=833, и Δd>Δd, и поэтому модуль 16 маркирует разрыв путем установки обоих значений равными нулю.
Могут сравниваться соседние пиксели 46 текстуры в u- и/или v-направлениях.
Обращаясь к фиг. 1, 2, 3 и 7, модуль 16 обработки данных сканирования формирует карту 19 нормалей из карты 18 смещения и сохраняет карту 19 нормалей (этап S4).
Для каждого пикселя 46 текстуры на карте 18 смещения модуль 16 вычисляет декартовы координаты из сферических координат, представленных пикселем 46 текстуры. Модуль вычисляет нормаль 49 для определенного пикселя 46 текстуры (который на фиг. 7 показан заштрихованным) путем взятия векторного произведения первого вектора между горизонтальными соседними пикселями 46 текстуры и второго вектора между вертикальными соседними пикселями 46 текстуры, которые находятся рядом с пикселем 46 текстуры, в декартовых координатах. Модуль 16 не вычисляет нормаль 49 на разрыве.
x
y
z
2
3
4
Модуль 16 сохраняет x-, y- и z-составляющие (n, n, n) нормали 49 в пикселе 46 текстуры во втором, третьем и четвертом элементах 46, 46, 46.
Обращаясь к фиг. 1, 2, 3 и 8, модуль 16 обработки данных сканирования опционально может сформировать текстуру 20 смешивания, которая содержит информацию, используемую для сглаживания границы поверхности возле разрыва (этап S5).
Каждый пиксель 50 текстуры в текстуре 20 смешивания содержит значение смешивания, s, которое находится в диапазоне между 0 и 1.
Модуль 16 обработки данных сканирования идентифицирует пиксели 46 текстуры на карте 18 смещения, которые соответствуют точкам вдоль разрыва, и устанавливает 0 значение смешивания у соответствующих пикселей 50 текстуры в текстуре 20 смешивания (то есть имеющих такие же значения u и v). Модуль 16 обработки данных сканирования формирует дальнейшие смешивания значения, которые постепенно продвигаются по текстуре 20 смешивания, то есть значения, которые постепенно увеличиваются. Например, как показано на фиг. 8, значение 0,5 задается пикселю 50 текстуры, который является первым ближайшим соседом для разрыва, значение 0,8 задается пикселю 50 текстуры, который является вторым ближайшим соседом, и значение 1 задается пикселю 50 текстуры, который является третьим ближайшим соседом.
Обращаясь к фиг. 1, 2, 3 и 9, модуль 16 обработки данных сканирования разбивает сканирование на фрагменты 51 и сохраняет карту 23 фрагментов (этап S6).
Каждый фрагмент 51 определяет область сканирования текстур в (u,v) координатах. Каждый фрагмент имеет набор вершин 52.
Фрагменты 51 могут иметь любую форму и могут быть равномерно или неравномерно распределены при сканировании. Форма и положение фрагментов 51 могут устанавливаться заранее или основываться на любом аспекте сканирования, например на местоположениях разрывов или дисперсии нормалей.
Например, фиг. 9 показывает размещение прямоугольных фрагментов 51, которые имеют одинаковую форму и размер.
1
2
3
4
5
В другом примере фиг. 10 показывает размещение прямоугольных фрагментов 51 разных размеров, которые учитывают местоположение разрывов 47. Например, как показано на фиг. 10, вместо использования фрагментов 51 фиксированного размера модуль 16 обработки данных сканирования может разбить более крупный фрагмент 51 на меньшие фрагменты 51, 51, 51, 51, 51 в соответствии с тем, обнаружен ли разрыв во фрагменте 51.
6
7
8
9
6
7
8
9
6
В еще одном примере фиг. 11 показывает размещение, в котором модуль 16 обработки данных сканирования формирует непрямоугольные фрагменты 51, 51, 51, 51, имеющие границы, которые учитывают ветвящийся разрыв 47 (например, совпадают с ним). Для ясности внешние границы фрагментов 51, 51, 51, 51 показаны усеченными, чтобы они выглядели как прямые вертикальные или горизонтальные границы. Следует понимать, что фрагменты не должны быть усеченными и могут иметь неправильный контур, например, как показано пунктиром для фрагмента 51 на фиг. 11.
Обращаясь к фиг. 12, для каждого фрагмента 51 сохраняется набор элементов 54 в карте 23 фрагментов для каждого фрагмента 51, причем каждый элемент 54 содержит положение вершины 52 фрагмента. В случае прямоугольного фрагмента 51 (например, который показан на фиг. 9) фрагмент 51 может быть задан с использованием только двух вершин 52, например, верхней левой и нижней правой вершины 52. Тем не менее, может быть больше, чем два элемента 54, особенно для фрагментов неправильной формы.
Обращаясь к фиг. 1, 2, 3 и 13, модуль 16 вычисляет относительный уровень 55 мозаичного заполнения для каждого фрагмента 51 (этап S7).
Относительный уровень 55 мозаичного заполнения представляет то, насколько будет мозаично заполнен фрагмент 51 относительно других фрагментов 51. Абсолютный уровень мозаичного заполнения вычисляется позже, после того как применяются видозависимые факторы или другие факторы. Относительный уровень 55 мозаичного заполнения может устанавливаться заранее или основываться на любом аспекте фрагмента, например местоположении разрывов или дисперсии нормалей.
Карта 18 смещения, карта 19 нормалей, текстура 20 смешивания и карта 23 фрагментов могут создаваться один раз для каждого сканирования и сохраняться для последующего использования.
ВИЗУАЛИЗАЦИЯ
Обращаясь к фиг. 1, 2 и 14, модуль 16 обработки данных сканирования загружает текстуры 18, 19, 20 и карту 23 фрагментов для каждого сканирования в систему 26 визуализации. Система 26 визуализации используется для создания мозаично заполненной поверхности (поверхностей) сканирования с использованием информации в карте 23 фрагментов. Может использоваться любая система визуализации, которая поддерживает мозаичное заполнение. Предпочтительно используется система визуализации, которая может обрабатывать 100 миллионов треугольников в секунду или с большей скоростью. Система визуализации может работать на CPU или GPU.
Система 26 визуализации применяет Microsoft (RTM) DirectX 11 (RTM), работающий на GPU 34. Однако могут использоваться другие графические системы, например OpenGL 4.x.
Текстуры 18, 19, 20 и карта 23 фрагментов хранятся в виде, который может эффективно обрабатываться системой 26 визуализации.
Текстуры 18, 19, 20 хранятся в виде ресурсов двумерных текстур, а карта 23 фрагментов хранится в виде буфера вершин с топологией списка фрагментов с одной контрольной точкой. Как объяснялось ранее, карты 18, 19 смещения и нормалей объединяются в объединенную текстуру 22 с четырьмя каналами.
Текстуры 18, 19, 20 и буфер 23 вершин, то есть карта 23 фрагментов, отправляются в GPU 34.
Обращаясь к фиг. 14, показан графический конвейер 60 для графической системы.
Графический конвейер 60 включает в себя шейдер 61 вершин, шейдер 62 поверхности, шейдер 63 мозаичного заполнения (в материалах настоящей заявки также называемый просто «средством мозаичного заполнения»), шейдер 64 областей, геометрический шейдер 65, средство 66 прорисовки, пиксельный шейдер 67 и этап 68 выходного слияния, который осуществляет, в том числе, проверку глубины вместе с буфером 69 глубины (также называемым «z-буфером»).
В OpenGL шейдер поверхности называется «шейдером управления мозаичным заполнением», шейдер мозаичного заполнения называется «генератором примитивов», шейдер областей называется «шейдером оценки мозаичного заполнения», а пиксельный шейдер называется «фрагментным шейдером».
Обращаясь к фиг. 14 и 15, каждый фрагмент 51 в буфере 23 вершин обрабатывается шейдером 62 поверхности. Шейдер 62 поверхности вычисляет абсолютный уровень 70 мозаичного заполнения для каждого фрагмента 51. Уровень 70 мозаичного заполнения может устанавливаться заранее или основываться на одном или более факторах, например расстоянии фрагмента 51 от точки 29 наблюдения или его видимости. Может учитываться относительный уровень 55 мозаичного заполнения у фрагмента 51.
В этом примере абсолютный уровень 70 мозаичного заполнения для каждого фрагмента 51 вычисляется на основе точки 28 наблюдения и относительного уровня 55 мозаичного заполнения. Шейдер 62 поверхности также регулирует уровень мозаичного заполнения около границ фрагмента 51, чтобы он совпадал с уровнем мозаичного заполнения соседних фрагментов 51. Это создает непрерывное мозаичное заполнение около фрагментов 51.
Обращаясь также к фиг. 16 и 17, шейдер 63 мозаичного заполнения является модулем с фиксированными функциями, который создает соответствующую структуру 71 мозаичного заполнения для каждого фрагмента 51.
Шейдер 63 мозаичного заполнения формирует структуру 71 мозаичного заполнения (в материалах настоящей заявки называемую «мозаично заполненным фрагментом») на основе абсолютного уровня 70 мозаичного заполнения, вычисленного шейдером 62 поверхности. Структура 71 мозаичного заполнения состоит из треугольников 72. Точки 73 в структуре 71 мозаичного заполнения содержат их координаты (u,v) в объединенной текстуре 22.
Как показано на фиг. 17, шейдер 63 мозаичного заполнения выводит структуру 71 мозаичного заполнения в виде списка точек, перечисляющего координаты точек 73 треугольников 72, составляющих каждый фрагмент 51. Каждая точка 73 (u,v) отправляется поочередно в шейдер 64 областей.
Обращаясь также к фиг. 18 и 19, каждая точка 73 в каждом фрагменте 51 обрабатывается шейдером 64 областей. Шейдер 64 областей подвергает дискретизации объединенную текстуру 22 глубины/нормали и проецирует мозаично заполненные точки на трехмерное пространство.
Шейдер 64 областей вычисляет положение каждой точки 73 в структуре 71 мозаичного заполнения во фрагменте 51. Шейдер 64 областей подвергает дискретизации объединенную текстуру 22 глубины/нормали в координате (u, v) точки 73, чтобы извлечь значения глубины и нормали. Если выборка включает в себя пиксель 46 текстуры, который находится рядом с разрывом, то точка маркируется недопустимой.
Шейдер 64 областей вычисляет азимут и угол места из координаты (u, v), используя информацию во фрагменте 51. Затем шейдер 64 областей преобразует сферические координаты (то есть азимут, угол места, глубину) в координаты 74 наблюдения либо сразу, либо поэтапно (как показано на фиг. 18), а именно происходит преобразование сферических координат в декартово положение 75 в системе координат сканирования, а затем преобразование положения и нормали во внешние координаты, и затем в координаты 74 наблюдения. Координаты 74 выводятся в виде списка 76 вершин.
Шейдер 64 областей эффективно смещает точки на сферической поверхности на глубину, заданную в карте 19 (сферического) смещения.
Обращаясь к фиг. 20, каждый треугольник 72 в мозаично заполненном фрагменте 71 обрабатывается геометрическим шейдером 65. Геометрический шейдер 65 отбраковывает треугольники 72 в разрывах.
Геометрический шейдер 65 определяет, содержит ли треугольник 72 какие-либо недопустимые вершины 77. Вершина 74 является недопустимой, если она находится рядом с разрывом. Если присутствует недопустимая вершина 77, то геометрический шейдер 65 отбрасывает треугольник 72, то есть отбрасывает недопустимый треугольник 78. Геометрический шейдер 65 также определяет, находится ли треугольник 72 под углом, который слишком скошенный для положения лазерного сканирующего устройства. Если это так, то треугольник 72 также отбрасывается. Геометрический шейдер 65 выводит обновленный список 79 вершин.
Обращаясь к фиг. 21, средство 66 прорисовки преобразует каждый треугольник 72 в обновленном списке 79 вершин в растровые данные 80, содержащие пиксели 81. Каждый пиксель 81 включает в себя значение глубины 82.
Каждый растрированный треугольник 72 затем обрабатывается пиксельным шейдером 67.
Обращаясь к фиг. 22, пиксельный шейдер 67 подвергает дискретизации текстуру 20 смешивания для определения, находится ли пиксель 81 слишком близко к разрыву 47 (фиг. 5). Если пиксель 81 находится слишком близко к разрыву, то он отбрасывается. Пиксельный шейдер 67 подвергает дискретизации объединенную текстуру 22 глубины/нормали для извлечения нормали 49 (фиг. 7) в пикселе 81. Пиксельный шейдер 67 преобразует нормаль 49 (фиг. 7) в вектор (не показан) во внешнем пространстве. Пиксельный шейдер 67 вычисляет цвет 83 пикселя 81 и выводит растровые данные 84 для включения глубины 82 и цвета 83 для каждого пикселя 81.
Обращаясь к фиг. 14 и 23, когда множество сканирований визуализируются в одно изображение, данные сканирования могут объединиться с использованием буфера 69 глубины.
Пиксельный шейдер 67 может измерять качество глубины путем дискретизации глубины 82 в определенном местоположении и смещении. Пиксельный шейдер 67 может предпочитать выборки более высокого качества в одной и той же аппаратной координате устройства. Пиксельный шейдер 67 может использовать информацию в текстуре 20 смешивания и/или объединенной текстуре 22 глубины/нормали для определения качества дискретизации.
Этап 68 выходного слияния выполняет, в том числе, проверку глубины.
Обращаясь также к фиг. 24, каждый пиксель 81 сравнивается с соответствующим пикселем в буфере 69 глубины (этапы S11, S12 и S13). Если поступающий пиксель 81 имеет меньшее значение глубины, чем соответствующий пиксель, сохраненный в буфере 69 глубины, то поступающий пиксель 81 записывается в буфер 69 (этап S14). Если поступающий пиксель 81 имеет большее значение глубины, чем соответствующий пиксель, сохраненный в буфере 69 глубины, то поступающий пиксель 81 отбрасывается (этап S15).
Данные пикселя, сформированные из нескольких сканирований, могут записываться в один и тот же буфер 69 глубины, и соответственно, могут образовывать изображение, содержащее данные из нескольких сканирований.
Обращаясь к фиг. 25–28, показан способ обработки данных лазерного сканирования и визуализации изображения для набора сканирований на разных этапах в течение процесса.
Фиг. 25 – изображение 91 облака точек, сформированного из множества сканирований. Фиг. 25a – увеличенное изображение части 91a изображения 91, показанного на фиг. 25.
Изображение 91 показывает внутреннюю часть технологической установки, которая включает в себя, в том числе, пол 92, потолок 93, баки-хранилища 94, линию из трех реакционных сосудов 95, различные трубы 96, линию из четырех панелей 97 управления, кабельные лотки 98, подвешенные под потолком 93, осветительные устройства 99 (или «светильники») и линию из четырех контейнеров 100 паллетного типа для хранения жидкостей.
Фиг. 25a – представляет собой более подробное изображение среднего реакционного сосуда 95, труб 96 и соответствующей панели 97 управления. Изображение 91, 91a образуется из точек 45 облака точек. В этом случае каждая точка 45 имеет соответствующий цвет, захваченный во время сканирования.
Как показано на фиг. 25a, видны сравнительно отдаленные объекты, например панель 97 управления, даже если сравнительно близкие объекты, например реакционный сосуд 95, находятся перед ними и поэтому должны скрывать отдаленный объект. Этот эффект становится еще отчетливее, когда изображение увеличивается.
Фиг. 26 показывает объединенное изображение 101 с мозаичным заполнением, сформированное из отдельных сканирований облака точек, показанного на фиг. 25. Фиг. 26a и 26b – увеличенные изображения частей 111a, 111b изображения 111, показанного на фиг. 26.
Обращаясь к фиг. 25a и 26b, точки 45 из облака точек используются для образования структур 71 мозаичного заполнения, составленных из треугольников 72.
Фиг. 26b показывает треугольники 72, имеющие разные размеры, другими словами, имеющие разные уровни мозаичного заполнения.
Объекты, которые должны быть невидимы, например реакционные сосуды 95, по-прежнему прозрачны, поскольку треугольники 72 не растрированы и, соответственно, не заполнены.
Фиг. 27 показывает объединенное визуализированное изображение 28, 111, сформированное с использованием мозаичного заполнения.
Как показано на фиг. 27, сравнительно отдаленные объекты, такие как панели 97 управления, теперь скрыты сравнительно близкими объектами, такими как сосуды 95.
Как объяснялось ранее, система 26 визуализации (фиг. 1) может визуализировать изображения в реальном масштабе времени с использованием множества сканирований. Кроме того, система 26 (фиг. 1) позволяет изменять положение и формировать изображения с мозаичным заполнением, наблюдаемые из разных положений. Положение может изменяться ступенчато или непрерывно, позволяя пользователю «перемещаться» или «летать» по обследуемой среде.
Фиг. 28 показывает другое объединенное визуализированное изображение 28, 111’, сформированное из того же облака точек, показанного на фиг. 25, но с иной точки наблюдения.
Как показано на фиг. 28, изображение 111’ показывает такие же объекты, такие как панели 97 управления и реакционные сосуды 95, но с другой точки наблюдения. Изображение 111, показанное на фиг. 27, получается из точки наблюдения, которая находится перед дверьми 112, показанными на фиг. 28.
Фиг. 28 показывает положения сканирующего устройства 2 (фиг. 1) при осуществлении сканирования. Каждая темная круглая область 113 соответствует области под сканирующим устройством 2, где сканирующее устройство 2 не регистрирует точки.
Сравнение изображения 91 облака точек (фиг. 25) и визуализированного изображения 111’ (фиг. 29) показывает визуальный артефакт, ассоциированный с отображением изображения 91 облака точек, сформированного из множества сканирований. Визуализированное изображение 111’ показывает лицевые поверхности панелей 97 управления. Каждая лицевая поверхность несет ярлык 113 производителя и предупреждающие знаки 114. Однако эти ярлыки 113 и знаки 114 видны на изображении 91 облака точек, тогда как на практике их не было бы видно.
В результате отказа от агрегирования данных сканирования для отдельных сканирований в один более крупный набор данных сканирования система может воспользоваться последовательностью, в которой собираются данные сканирования. Каждый набор данных сканирования может рассматриваться как карта сферического смещения и может подвергаться дискретизации для формирования структуры мозаичного заполнения, используя методики, эффективные в вычислительном отношении. Могут выполняться дополнительные графические процессы, например растрирование, и только затем объединяются изображения из разных сканирований. Таким образом, система позволяет эффективно и/или быстро визуализировать изображение по данным сканирования, особенно если используются графические возможности GPU.
Следует понимать, что могут быть внесены различные модификации в вышеописанные варианты осуществления. Такие модификации могут заключать в себе эквивалентные и другие признаки, которые уже известны в проектировании, производстве и использовании систем лазерного сканирования и/или систем графической обработки и их составных частей, и которые могут использоваться вместо или в дополнение к уже описанным в материалах настоящей заявки признакам. Признаки одного варианта осуществления могут заменяться или дополняться признаками другого варианта осуществления.
Хотя формула изобретения составлена в этой заявке с конкретными сочетаниями признаков, следует понимать, что объем раскрытия настоящего изобретения также включает в себя любые новые признаки или любое новое сочетание признаков, раскрытых в материалах настоящей заявки явным или неявным образом, или любое их обобщение независимо от того, относится ли оно к такому же изобретению, как заявлено в настоящее время в любом пункте формулы изобретения, и решает ли оно какую-нибудь или все такие же технические проблемы, как и настоящее изобретение. Заявители настоящим сообщают, что может быть составлена новая формула изобретения с такими признаками и/или сочетаниями таких признаков во время рассмотрения настоящей заявки или любой другой заявки, производной от нее.