ВИЗУАЛИЗАЦИЯ ИЗОБРАЖЕНИЯ ДАННЫХ ЛАЗЕРНОГО СКАНИРОВАНИЯ
LASER SCANNING DATA IMAGE VISUALIZATION

Область техники
Настоящее изобретение относится к способу и системе для визуализации изображения данных лазерного сканирования.
Уровень техники
Трехмерный лазерный сканер может использоваться для обследования окружающей среды, например, технологического оборудования, судна или другого объекта. Типичный сканер включает в себя лазерный дальномер, который может измерять расстояние между сканером и точкой на поверхности, которая находится в поле зрения. Охватывая поле зрения (как правило, 360 градусов по горизонтали и почти 180 градусов по вертикали), сканер может захватить набор дистанций (в настоящем документе называемое "данными лазерного сканирования") для окружающей среды. Они могут использоваться для формирования набора точек в трехмерном пространстве, часто называемого "облаком точекʺ. Пример облака точки описан в документе EP 1176393 A2.
Множественные циклы сканирования могут быть выполнены в разных позициях в окружающей среде, и облака точек из разных циклов сканирования могут быть объединены для получения объединенного (или "агрегированного") облака точек, покрывающего более широкую область. Пример данных объединенного облака точек может быть найден в документе WO 2004/003844 A1.
В дополнение к сбору данных дистанции сканер также может захватывать изображения окружающей среды, измеряя интенсивность отраженного лазерного света или используя камеру.
Облако (облака) точек и изображения могут использоваться для визуализации и/или анализа окружающей среды с использованием приложения просмотра облака точек или приложения трехмерного автоматизированного проектирования (CAD). Как правило, эти приложения попадают в две категории, а именно, те, которые работают с точками из индивидуальных циклов сканирования, и те, которые работают с точками, объединенными из нескольких циклов сканирования.
Одно из самых простых приложений лазерного сканирования заключается в том, чтобы отобразить изображение, захваченное посредством индивидуального цикла сканирования. Поскольку изображение от лазерного сканирования является сферическим, покрывающим область вокруг лазерного сканера, прикладная программа может спроецировать изображение на внутреннюю часть сферы. Приложение может отобразить участок сферы на мониторе. Пользователь может вращать изображение для просмотра разных частей всего изображения. Это представление называется ʺсферическим ракурсомʺ.
В сферическом ракурсе пользователь может выбрать место на изображении и извлечь трехмерную координату того местоположения, используя данные облака точек для этого лазерного сканирования. Выбирая две точки, пользователь может измерять расстояния.
Приложение одного типа может накладывать трехмерную модель CAD в сферическом ракурсе. Поскольку приложение знает трехмерное местоположение точек в сферическом ракурсе, оно может загораживать подходящие части модели CAD за сферическим ракурсом. Это комбинированное изображение может быть полезным при проектировании новых областей объекта.
Привлекательным признаком сферического ракурса является то, что он выглядит реалистично. Реализм происходит из изображения, захваченного в местоположении сканера. Однако ограничением сферических ракурсов является то, что они могут быть произведены только для местоположений, в которые был помещен лазерный сканер. Пользователь может выбрать сферический ракурс и совершать вращение налево и направо или вверх и вниз, но он не может переместиться вперед, назад, горизонтально или вертикально, чтобы рассмотреть окружающую среду из другой точки обзора.
Чтобы позволить свободное перемещение, некоторые прикладные программы работают с комбинированным облаком точек из нескольких циклов сканирования. Используя такое приложение, пользователь выбирает местоположение в объекте и направление обзора. Затем приложение отображает каждую точку в объединенном облаке точек вокруг этого местоположения с точки обзора пользователя. Пользователь может перемещать местоположение обзора и направление, чтобы видеть точки с разных точек обзора.
Некоторые приложения могут отображать модель CAD в одном и том же трехмерном пространстве как объединенное облако точек. Затем пользователь может измерить расстояния между местоположениями в модели CAD и точками в облаке точек. Пользователь также может определить, пересекают ли части облака точек части модели CAD.
Хотя отображение объединенного облака точек позволяет пользователю рассматривать точки с более чем с одной точки обзора, этот подход может иметь один или более недостатков.
Отображение индивидуальных точек обычно является затратным в вычислительном отношении. На близких расстояниях в представлении отсканированной поверхности могут появиться промежутки, и, таким образом, может стать трудно распознавать поверхности.
Сущность изобретения
В соответствии с первым аспектом настоящего изобретения обеспечен способ визуализации изображения данных трехмерного лазерного сканирования. Способ содержит обеспечение кубической карты дистанции и соответствующей кубической карты изображения, формирование шаблона замощения (тесселяции) с использованием кубической карты дистанции и визуализацию изображения на основе шаблона замощения посредством дискретизации кубической карты изображения.
В соответствии со вторым аспектом настоящего изобретения обеспечен способ обработки данных трехмерного лазерного сканирования. Способ содержит подготовку кубической карты дистанции и соответствующей кубической карты изображения для использования при визуализации на основе данных трехмерного лазерного сканирования.
Посредством сохранения данных лазерного сканирования для заданного цикла сканирования как набора точек (в противоположность агрегированию данных лазерного сканирования для нескольких циклов сканирования) и посредством использования преимущества того факта, что данные лазерного сканирования могут быть обеспечены в форме карты смещения, которая может обрабатываться непосредственно графической системой, изображение данных лазерного сканирования может быть визуализировано эффективно и/или быстро. Это может быть особенно полезно при объединении изображений из нескольких циклов сканирования, поскольку каждый цикл сканирования может быть обработан независимо, и изображения из разных циклов сканирования могут быть легко объединены в общем буфере. Это дает возможность эффективной/быстрой визуализации не только статических изображений, но также и динамических изображений, например, как будто бы пользователь "гуляет" по окружающей среде.
Кроме того, изображение может быть визуализировано более эффективно и/или быстро посредством преобразования каждого набора данных сканирования в кубическую карту посредством преобразования данных сканирования в панорамную сферическую текстуру, если они еще не в форме панорамной сферической текстуры, и последующего отображения панорамной сферической текстуры на куб.
Кубическая карта изображения может содержать текстуру интенсивности для визуализации монохромного изображения цикла сканирования или цветовую текстуру (которая может быть захвачена с использованием камеры) для визуализации цветного изображения цикла сканирования.
Способ может содержать процесс превизуализации (предварительной визуализации), содержащий подготовку кубической карты дистанции и соответствующей кубической карты изображения, которая может быть выполнена один раз, и последующий процесс визуализации. Превизуализация предпочтительно выполняется с использованием одного или более графических процессоров (GPU). Визуализация предпочтительно выполняется с использованием одного или более графических процессоров. Один и тот же графический процессор или графические процессоры могут использоваться для превизуализации и визуализации.
Способ может содержать, например, в процессе превизуализации формирование кубической карты дистанции на основе сферической панорамной текстуры дистанции.
Способ может содержать, например, в процессе превизуализации формирование кубической карты изображения на основе сферической панорамной текстуры изображения. Кубическая карта изображения может содержать кубическую карту изображения текстуры интенсивности. Кубическая карта изображения может содержать кубическую карту изображения цветовой текстуры.
Способ может содержать, например, в процессе превизуализации формирование первой и второй кубических карт изображения. Первая кубическая карта изображения может представлять собой кубическую карту изображения текстуры интенсивности, и вторая кубическая карта может представлять собой кубическую карту изображения цветовой текстуры.
Формирование каждой кубической карты изображения может содержать формирование или использование карты плиток. Карта плиток может содержать множество плиток на каждой грани куба. Карта плиток может содержать многоугольные плитки, каждая плитка имеет три или более вершин. Плитки могут иметь одинаковую форму. Плитки могут иметь одинаковый размер. Плитки могут представлять сбой прямоугольники. Грань может содержать n×m плиток, где n и m - положительные целые числа. n может быть равно m, т.е., n=m.
n может быть равно по меньшей мере 8, т.е., n≥8. n может быть равно вплоть до 64, т.е., n≤64, или больше. n может быть равно 16, т.е. n=16. Прямоугольная плитка может быть определена с использованием двух диагонально противоположных вершин. Каждая плитка может быть разделена на примитивы. Примитивы могут представлять собой треугольники. Способ может содержать выполнение замощения каждой плитки и проецирование точек замощения на грань куба с использованием соответствующих текстурных пикселей дистанции в сферической панорамной текстуре дистанции.
Формирование каждой кубической карты изображения может содержать обеспечение набора вершин, размещенных в плитках для грани куба, и для каждой грани выполнение замощения каждой плитки и проецирование точек замощения на грань куба с использованием соответствующих текстурных пикселей в сферической панорамной текстуре дистанции.
Формирование каждой кубической карты изображения может дополнительно содержать отбрасывание меньшей мере одного примитива (например, треугольника). Отбрасывание примитивов может содержать определение, ориентирован ли примитив под острым углом к исходной точке сканирования, и в зависимости от определения, что примитив ориентирован под острым углом к исходной точке сканирования, отбрасывание примитива. Определение, ориентирован ли примитив под острым углом к точке обзора, может содержать выполнение теста нормали.
Способ может содержать идентификацию одной или более плиток ("бесполезных плиток"), соответствующих значениям дистанции, которые не удовлетворяют набору из одного или более условий (например, имеют нулевую дистанцию и/или превышают заданное пороговое значение), и сохранение идентификационной информации бесполезной плитки (плиток) для грани в файле.
Формирование каждой кубической карты изображения может содержать разделение каждого примитива на фрагменты примитива (например, фрагменты треугольника) и для каждого фрагмента примитива дискретизацию соответствующего текстурного пикселя сферической панорамной текстуры изображения.
Кубическая карта изображения может быть сохранена в памяти, например, в видеопамяти, и/или в системной памяти, и/или в запоминающем устройстве.
Процесс превизуализации может быть выполнен один раз, и после этого не требуется использование сферической панорамной текстуры обзора, текстуры изображения и/или цветовой текстуры во время последующей визуализации.
Способ может содержать для каждого кадра скрытую (не отображаемую) визуализацию изображений, соответствующих множеству циклов сканирования, с относительно низким разрешением для данной точки обзора и выбор, какое изображение следует визуализировать на экране с относительно высоким разрешением для данной точки обзора.
Визуализация может содержать формирование или использование карты плиток. Карта плиток может содержать множество плиток на каждой грани куба. Карта плиток может содержать многоугольные плитки, каждая плитка имеет три или более вершин. Плитки могут иметь одинаковую форму. Плитки могут иметь одинаковый размер. Плитки могут представлять собой прямоугольники. Грань может содержать n×m плиток, где n и m - положительныt целые числа. n может быть равно m, т.е., n=m, n может быть равно по меньшей мере 8, т.е., n≥8. n может быть равно вплоть до 64, т.е. n≤64, или более. n может быть равно 16, т.е., n=16. Прямоугольная плитка может быть определена с использованием двух диагонально противоположных вершин. Каждая плитка может быть разделена на примитивы. Примитивы могут представлять собой треугольники. Способ может содержать выполнение замощения каждой плитки и проецирование точек замощения на грань куба с использованием соответствующих текстурных пикселей дистанции в сферической панорамной текстуре дистанции.
Визуализация может содержать обеспечение набора вершин, размещенных в плитках для грани куба. В зависимости от определения, что плитка является бесполезной плиткой, бесполезную плитку не требуется подвергать замощению. Другими словами, вершины для бесполезных плиток могут быть отброшены. Это может помочь сократить использование ресурсов графического процессора. Отбрасывание вершин бесполезных плиток может быть выполнено шейдером управления замощением (или шейдером, имеющим такую же или подобную функцию).
Визуализация может содержать для каждой грани выполнение замощения каждой плитки и проецирование точки замощения на грань куба с использованием соответствующих текстурных пикселей дистанции в кубической карте дистанции.
Визуализация может содержать отбрасывание примитивов (например, треугольников). Отбрасывание примитивов может содержать определение, ориентирован ли примитив под острым углом к исходной точке сканирования, и в зависимости от определения, что примитив ориентирован под острым углом к исходной точке сканирования, отбрасывание примитива. Определение, ориентирован ли примитив под острым углом к точке обзора, может содержать выполнение теста нормали.
Визуализация изображения может содержать дискретизацию кубической карты интенсивности. Визуализация изображения может содержать дискретизацию цветовой кубической карты.
Графический процессор (процессоры) может быть сконфигурирован с использованием прикладного программного интерфейса (API) OpenGL 4.3 (или более поздней версии) или Microsoft (RTM) DirectX (RTM) 11 (или более поздней версии).
Способ может дополнительно содержать формирование набора пикселей для цикла сканирования и выполнения теста глубины.
Способ может содержать окрашивание пикселя в зависимости от нормали пикселя. Способ может содержать окрашивание пикселя в зависимости от интенсивности и/или цвета в соответствующей части изображения.
Способ может содержать обеспечение более чем одного набора данных лазерного сканирования, каждый набор данных лазерного сканирования соответствует соответствующему циклу сканирования. Каждый набор данных лазерного сканирования обеспечивается как соответствующая кубическая карта дистанции и по меньшей мере одна кубическая карта изображения. Способ может содержать объединение визуализированных изображений из разных циклов сканирования. Объединение визуализированных изображений из разных циклов сканирования может содержать использование буфера глубины.
В соответствии с третьим аспектом настоящего изобретения обеспечена компьютерная программа, которая содержит команды для выполнения способа.
В соответствии с четвертым аспектом настоящего изобретения обеспечен машиночитаемый носитель или энергонезависимый машиночитаемый носитель, который хранит компьютерную программу.
В соответствии с пятым аспектом настоящего изобретения обеспечена компьютерная система, содержащая память и по меньшей мере один процессор. По меньшей мере один процессор выполнен с возможностью формировать шаблон замощения посредством использования кубической карты дистанции и визуализировать изображение на основе шаблона замощения посредством дискретизации кубической карты изображения, соответствующей кубической карте дистанции.
По меньшей мере один процессор предпочтительно содержит по меньшей мере один графический процессор. По меньшей мере один процессор может содержать один процессор, например, один графический процессор.
По меньшей мере один процессор может быть сконфигурирован с использованием прикладного программного интерфейса OpenGL 4.3 (или более поздней версии). По меньшей мере один процессор может быть сконфигурирован с использованием прикладного программного интерфейса Microsoft (RTM) DirectX (RTM) 11 (или более поздней версии).
Краткое описание чертежей
Некоторые варианты осуществления настоящего изобретения теперь будут описаны в качестве примера со ссылкой на прилагаемые чертежи.
Фиг. 1 - блок-схема системы для получения и обработки данных лазерного сканирования и визуализации изображения;
Фиг. 2 - блок-схема компьютерной системы, которая используется для обработки данных лазерного сканирования и визуализации изображения;
Фиг. 3 - блок-схема последовательности операций процесса превизуализации;
Фиг. 4 - блок-схема конвейера для отображения панорамной сферической текстуры на куб (в настоящем документе называемого ʺотображением на кубʺ);
Фиг. 5 иллюстрирует куб, в котором каждая грань разделена на плитки;
Фиг. 6 показывает проецирование точек замощения на куб во время отображения на куб;
Фиг. 7 показывает дискретизацию панорамной сферической текстуры на грань куба для формирования кубической карты;
Фиг. 8 схематично иллюстрирует отображение на куб;
Фиг. 9 иллюстрирует отображение на куб с использованием реальных данных сканирования и изображения;
Фиг. 10 показывает скомпонованную кубическую карту;
Фиг. 11 схематично иллюстрирует пометку бесполезных плиток;
Фиг. 12 иллюстрирует визуализированное изображение реальной цветовой панорамной сферической текстуры и визуализированные изображения ее соответствующей цветовой кубической карты в трехмерном пространстве изображения с бесполезными плитками и без них;
Фиг. 13 - блок-схема данных проекта;
Фиг. 14 - блок-схема последовательности операций процесса визуализации;
Фиг. 15 иллюстрирует первую и вторую подвергнутые замощению поверхности и точку обзора;
Фиг. 16 - блок-схема конвейера процесса визуализации;
Фиг. 17 иллюстрирует куб, в котором каждая грань разделена на плитки;
Фиг. 18 показывает проецирование точек замощения на куб во время визуализации;
Фиг. 19 иллюстрирует фрагменты затенения/окрашивания с использованием монохромной/цветовой кубической карты во время визуализации;
Фиг. 20 - первый снимок экрана, сделанный с первой точки обзора во время полета через наблюдаемую окружающую среду; и
Фиг. 21 - второй снимок экрана, сделанный со второй точки обзора во время полета через наблюдаемую окружающую среду, показанную на фиг. 20.
Подробное описание некоторых вариантов осуществления
Обзор системы
Со ссылкой на фиг. 1 показана система 1 для формирования и обработки данных лазерного сканирования и для визуализации изображения.
Система 1 включает в себя один или более трехмерных лазерных сканеров 2 для обследования окружающей среды 3 (или "сцены"), которая включает в себя несколько целевых поверхностей 4. Каждый лазерный сканер 2 включает в себя блок 5 лазерного сканирования, который формирует исходные данные 6 лазерного сканирования (упоминаемые в настоящем документе просто как "данные лазерного сканирования" или просто "данные сканирования"), например, которые содержат дистанцию, интенсивность, азимут и возвышение для каждого пикселя (и которые могут быть сохранены в сжатой форме), факультативную цветную камеру 7, которая может использоваться для формирования данных 8 цветного изображения, например, в форме файла JPEG, и встроенное запоминающее устройство 9 для хранения данных 6, 8. Данные 6 лазерного сканирования могут быть преобразованы в файловый формат ZFC. Каждый лазерный сканер 2 включает в себя процессор (процессоры) 10 и память 11, которые могут может использоваться для обработки данных 6 лазерного сканирования, например, для форматирования данных и/или данных 8 изображения.
Блок 5 лазерного сканирования формирует элемент (который может упоминаться как "пиксель") данных 6 сканирования для точки посредством испускания импульсного лазерного луча 12 в заданном направлении (т.е., с заданным горизонтальным углом и заданным вертикальным углом), обнаружения луча 13, который отражен от целевой поверхности 4 обратно к лазерному сканеру 2, и определения дистанции R до целевой поверхности на основе времени пролета лазерного луча 12, 13. Набор данных 6 сканирования может быть собран посредством сканирования лазерным лучом 12 быстрыми круговыми охватами вверх и вниз, т.е., охват лежит в вертикальной плоскости сканирования, с медленным поворотом, т.е., вращением плоскости сканирования вокруг вертикальной оси, чтобы создать набор точек вокруг сканера 2. Каждая точка в данных 6 сканирования обеспечена в виде набора декартовых координат, т.е. каждая точка выражена как (x, y, z). Точки в наборе данных 6 упорядочены по азимуту и возвышению.
Данные 6, 8 сканирования и изображения загружаются на сервер 14 данных сканирования (в настоящем документе также называемый "шлюзом"). Сервер 14 данных сканирования включает в себя модуль 15 обработки данных сканирования и запоминающее устройство 16. Сервер 14 данных сканирования может предварительно обрабатывать данные 6 сканирования, например, извлекая данные 17 интенсивности из данных 6 сканирования для монохромного изображения.
Данные 6 сканирования, данные 17 интенсивности и, факультативно, данные 8 изображения загружаются в компьютерную систему 19 для визуализации. Компьютерная система 19 включает в себя систему 20 превизуализации и запоминающее устройство 21 для выполнения однократной предварительной обработки данных.
Система 20 превизуализации преобразует данные 6 сканирования, данные 17 интенсивности и данные 8 изображения в соответствующие эквиполярные панорамные сферические текстуры 22, 23, 24 (здесь также называемые ʺпанорамными сферическими текстурамиʺ или ʺравнопрямоугольными текстурамиʺ). Преобразование может привести к промежуткам или дыркам (не показаны) в текстуре 22, 23, 24, и, таким образом, система 20 превизуализации также может выполнять заполнение дырок, например, с использованием интерполяции.
Система 20 превизуализации преобразует панорамные сферические текстуры 22, 23, 24 для каждого цикла сканирования в соответствующие кубические карты 25, 26, 27. Система 20 превизуализации также формирует файлы 28 бесполезных плиток, т.е., файл для каждой грани каждой кубической карты, который идентифицирует те регионы грани куба, которые не содержат полезные данные дистанции. Это может быть особенно полезно для сканирования вне помещения.
Отображение панорамной сферической текстуры 22, 23, 24 на грани куба может помочь сократить объем сохраненных данных (например, приблизительно, на четверть) без какой-либо заметной потери качества просмотра. Кроме того, грани кубической карты 25, 26, 27 могут быть индивидуально загружены по требованию в графическую систему для визуализации. Кроме того, гранями кубической карты можно управлять эффективнее в памяти, например, посредством отбрасывания бесполезных плиток (т.е., регионов, не содержащих полезных данных дистанции).
Компьютерная система 19 включает в себя устройства 30 пользовательского ввода (такие как мышь и/или клавиатура), систему 31 визуализации и дисплей 32 (или дисплеи 32) для показа изображения 33 сцены 3 из точки 34 обзора (POV). Система 31 визуализации производит разбитые на треугольники трехмерные поверхности с использованием текстур 25, 26, 27, полученных из одного или более разных циклов сканирования, и визуализирует поверхности в режиме реального времени из любой точки 34 обзора, объединяя поверхности, полученные из цикла (циклов) сканирования, в изображении.
Система 20 превизуализации и система 31 визуализации реализованы в одной и той же компьютерной системе. Однако системы 20, 31 могут быть реализованы в разных компьютерных системах.
Также со ссылкой на фиг. 2 компьютерная система 19 показана более подробно.
Компьютерная система 19 может принимать форму рабочей станции, настольного компьютера, ноутбука или другого вычислительного устройства с достаточной мощностью.
Компьютерная система 19 включает в себя один или более центральных процессоров (ЦП; CPU) 35, имеющих соответствующие кэши памяти (не показаны), системную память 36, графический модуль 37, например, в виде видеокарты, которая включает в себя графический процессор (GPU) 38 и графическую память 39 (которая может упоминаться как "видеопамять"), которая обеспечивает, среди прочего, буфер 40 кадров и интерфейс 41 ввода/вывода (I/O), функционально соединенный с системой 42 шин. Примером подходящего графического модуля 37 является графический процессор NVIDIA (RTM) GeForce 460 с 1 ГБ видеопамяти.
Интерфейс 41 ввода/вывода функционально соединен с шиной и/или сетевым интерфейсом (интерфейсами) 43 (таким как интерфейс Ethernet или интерфейс WLAN) для приема данных 6 сканирования, данных 8 изображения 8 и данных 17 интенсивности. Интерфейс 41 ввода/вывода также функционально соединен с устройствами 30 пользовательского ввода и запоминающим устройством 21, например, в виде одного или более жестких дисков и/или твердотельных накопителей. Некоторые периферийные устройства, такие как сменное запоминающее устройство и другие компьютерные компоненты, не показаны. Компьютерная система 19 может иметь конфигурацию, отличающуюся от показанной на фиг. 2.
Как будет описано более подробно позже, данные 44 проекта хранятся в запоминающем устройстве 21. Данные 44 проекта включают в себя обработанные данные 45 сканирования для множества циклов сканирования (фиг. 13), каждое множество включает себя имя 46 (фиг. 13), преобразование 47 (фиг. 13) и для каждой грани 63 куба (фиг. 13) текстуру 25 дистанции, текстуру 26 интенсивности, факультативную цветовую текстуру 27 и файл 28 бесполезных плиток.
Преобразование данных 6, 17 сканирования и интенсивности и факультативных данных 8 изображения в соответствующие панорамные сферические текстуры 22, 23, 24 реализовано в программном обеспечении, выполняемом центральным процессором (процессорами) 35. Машинный код 48 для реализации преобразования хранится в запоминающем устройстве 21 и загружается в память 36 для исполнения центральным процессором (процессорами) 35. Другие процессы превизуализации, а именно, отображение на куб и обнаружение бесполезных плиток, предпочтительно реализованы с использованием графического процессора 38.
Визуализация реализуется с использованием графического процессора 38, чтобы использовать преимущества улучшенных возможностей графической обработки графического процессора, в частности, замощение.
Прикладное программное обеспечение 49 используется для осуществления доступа к данным 44 проекта и взаимодействия с графическим модулем 37.
Обработка превизуализации
Теперь со ссылкой на фиг. 1, 2 и 3 работа системы 20 превизуализации будет описана более подробно.
Преобразование данных сканирования в панорамные сферические текстуры
Система 20 превизуализации загружает набор данных 6 сканирования, данных 17 интенсивности и, факультативно, данных 8 цветного изображения для цикла сканирования с сервера 14 данных сканирования через сеть связи (не показана) (этап S3-1).
Система 20 превизуализации преобразует данные 6 сканирования, данные 17 интенсивности и, факультативно, данные 8 цветного изображения в соответствующие панорамные сферические текстуры 22, 23, 24 (этап S3-2). Каждая панорамная текстура 22, 23, 24, как правило, содержит 10000 × 5000 пикселей.
Отображение данных дистанции из координат сканера в панорамные сферические координаты может привести к дыркам. Поэтому значения дистанций могут быть добавлены с использованием интерполированных значений, чтобы избежать разрывов (этап S3-3). Дырки имеют нулевое значение, таким образом, изображение сканируется для поиска дырок и для вычисления ненулевого значения с использованием окружающих соседей, чтобы заполнить дырку.
Значения интенсивности копируются и отображаются на панорамную сферическую текстуру 23 интенсивности таким же образом. Цветовые данные 8, например, в виде значений компонентов RGB могут быть скопированы в цветовую панорамную сферическую карту 27 аналогичным образом.
Панорамные сферические текстуры 22, 23, 24 временно сохраняются в запоминающем устройстве 21. Как будет описан более подробно позже, панорамные сферические текстуры 22, 23, 24 преобразуются в соответствующие кубические карты 25, 26, 27, и как только это произошло, от текстур 22, 23, 24 можно отказаться.
Преобразование панорамных сферических текстур в кубические карты
Система 20 превизуализации преобразует каждую панорамную сферическую текстуру 22, 23, 24 в соответствующую кубическую карту 25, 26, 27. Хотя отображение на куб может быть выполнено центральным процессором (процессорами) 35, оно может быть выполнено более быстро посредством графического процессора 38.
Как показано на фиг. 4, отображение на куб выполняется с использованием конвейера 51, который реализован посредством графического процессора 38 (фиг. 2). Конвейер 41 включает в себя вершинный шейдер 52, шейдер 53 управления замощением, шейдер 54 оценки замощения, геометрический шейдер 55 и фрагментный шейдер 56. Шейдер 53 управления замощением может упоминаться как "шейдер поверхностиʺ, шейдер 54 оценки замощения может упоминаться как "шейдер областей", и фрагментный шейдер 56 может упоминаться как "пиксельный шейдер".
Также, как показано на фиг. 5, конвейер 51 обрабатывает вершины 57 (в настоящем документе также называемые "данными вершин"), которые размещены в плитках 58 для куба 59, имеющего шесть граней 60. Вершины 57 выражены в координатах (u, v). Каждая грань 60 разделена на плитки 58. В данном случае каждая грань разделена на 16×16 плиток 58.
Вершины 57 для каждой грани 60 подаются по плиткам 58 на вершинный шейдер 52, который передает вершины 57 через шейдер 53 управления замощением. Шейдер 53 управления замощением выдает уровень замощения (не показан) для каждой плитки 58 шейдеру 54 оценки замощения. В данном случае используется значение замощения по умолчанию.
Как показано на фиг. 6, шейдер 54 оценки замощения подвергает замощению каждую плитку 58 и проецирует точки 61 замощения на грань 62 единичного куба 63 в трехмерном пространстве. Плитка 58 описывается посредством левого верхнего угла и правого нижнего угла в декартовом пространстве. После выполнения замощения каждая вершина 57 каждой треугольной грани 64, которая расположена на единичном кубе, проецируется посредством своего соответствующего значения дистанции с использованием текстуры 22 дистанции. Затем вершины 57 проецируются в корректную мировую позицию с использованием преобразования 47 сканирования, например, в форме матрицы размером 4×4 однородного преобразования, сохраняющего позицию и ориентацию.
Точки 62 замощения передаются на геометрический шейдер 55. Геометрический шейдер 55 отвечает за отбрасывание треугольников 64. Треугольники 64, которые являются остроугольными относительно сканирования, выбрасываются. Это делается с использованием теста нормали к поверхности для каждого треугольника 64. Полученные в результате точки 61 передаются фрагментному шейдеру 56.
Также, как показано на фиг. 7, фрагментный шейдер 56 отображает текстуру 23 интенсивности и/или цветовую текстуру 24 на корректные треугольники 64. Фрагментный шейдер 56 дискретизирует текстуру 23 интенсивности и/или цветовую текстуру 24 и копирует значение в текстурном пикселе 65 в текстуре 23, 24 в значение для фрагмента 66 треугольника (который может также упоминаться как "пиксель") на грани 62 куба 63, тем самым формируя новую основанную на кубах текстуру 23, 24, т.е. кубическую карту 23, 24. Кубическая карта 25 может быть скомпонована в столбец. Однако могут использоваться другие схемы компоновки. Фрагментный шейдер 56 также отрисовывает задние стороны, т.е., внешние направленные наружу грани 73 (фиг. 12), с синим оттенком, что может быть видно в визуализациях куба.
Кубическая карта (карты) 23, 24 сохраняется, например, в неотображаемом буфере 40.
Фиг. 8 схематично иллюстрирует преобразование панорамной сферической текстуры 22, 23, 24 в соответствующую кубическую карту 25, в том числе полюса 67, 68, центральную точку 69, расположенную на горизонте 70 между полюсами 67, 68, и линию 71 меридиана, проходящую через центральную точку 69. Фиг. 8 показывает мертвую зону 72 вокруг одного из полюсов 68.
Фиг. 9 иллюстрирует изображение реальной цветной панорамной сферической текстуры 22 и изображения ее соответствующих кубических карт 25, 27 скомпонованной дистанции и цвета.
Обнаружение бесполезных плиток
Как показано на фиг. 10, каждая грань 62 на кубической карте 25 построена из плиток 74. Некоторые плитки 74 могут не содержать полезные данные дистанции. Например, когда сканирование выполняется вне помещения, сканирование может покрывать небо. Таким образом, вероятно, что все плитки 74 на верхней грани 62 кубической карты 25 не содержат полезных данных. Кроме того, вероятно, что верхние плитки 74 на передней, задней, левой и правой гранях 62 также не содержат полезных данных дистанции.
D
D
D
Как показано на фиг. 11, идентифицируется каждая плитка 74, которая не содержит полезных данных дистанции, например, в которой нет значения дистанции или значение дистанции превышает заданное пороговое значение, и идентификатор 72 плитки, соответствующий бесполезной плитке 74, добавляется к списку 28 бесполезных плиток 74. Файл 28 бесполезных плиток сохраняется в запоминающем устройстве 21 (фиг. 2).
D
D
D
Бесполезные плитки 74 обнаруживаются в процессе превизуализации. Это делается один раз, и затем результат сохраняется. Поиск бесполезных плиток 74 выполняется в геометрическом шейдере 55 (фиг. 4). Треугольники 64 (фиг. 6) для бесполезной плитки 74, как правило, являются остроугольными и, таким образом, будут отброшены. Поэтому для этой плитки 74 не будет треугольников 64, и, таким образом, она будет зарегистрирована как бесполезная.
D
D
Как будет описано более подробно позже, бесполезные плитки 74 в соответствующих кубических картах 26, 27 изображения не визуализируются. Отказ от визуализации бесполезных плиток 74 может ускорить визуализацию сцены.
D
Фиг. 12 иллюстрирует визуализированное изображение реальной цветной панорамной сферической текстуры 24 и визуализированные изображения ее соответствующей цветовой кубической карты 27 в трехмерном пространстве изображения с бесполезными плитками 74 и без них.
Данные проекта
Как описано выше, процесс обработки данных превизуализации требуется выполнить только один раз для каждого цикла сканирования. Когда текстуры 25 дистанции, текстуры 26 интенсивности, цветовые текстуры 27 и файлы 28 бесполезных плиток были сформированы для цикла сканирования, от первоначальных данных 6 сканирования, данных 17 интенсивности и, факультативно, данных 8 цветного изображения, а также от сферических панорамных текстур 22, 23, 24, можно отказаться.
Текстуры 25 дистанции, текстуры 26 интенсивности и факультативные цветовые текстуры 27 обычно сохраняются с высоким разрешением. Во время визуализации текстуры 25, 26, 27 могут быть дискретизированы с высоким разрешением, т.е., с отношением 1:1, или дискретизированы с понижением с отношением n:1, где n - положительное целое число.
Фиг. 13 показывает проект 44. Проект 44 может хранить данные 45 сканирования для большого количества (например, 500 или более) циклов сканирования.
Как показано на фиг. 13, каждый набор данных 45 сканирования включает в себя имя 46 цикла сканирования, преобразование 46 сканирования и для каждой грани 62 куба текстуру 25 дистанции, текстуру 26 интенсивности, факультативную цветовую текстуру 27 и файл 28 бесполезных плиток.
Визуализация
Теперь со ссылкой на фиг. 1, 2, 13 и 14 будет описан процесс визуализации.
Система 31 визуализации инициализируется (этап S14-1), и система 31 идентифицирует точку 34 обзора, этим может управлять пользователь через устройства 30 ввода (этап S14-2).
Как описано ранее, проект лазерного сканирования может содержать до 500 или более циклов сканирования. Может иметься слишком много циклов сканирования, чтобы графический модуль 37 справился с ними. Система 31 визуализации решает, какие циклы сканирования следует визуализировать для точки 34 обзора, визуализируя ключ к решению в начале каждого кадра (этап S14-3) и идентифицируя, какие циклы сканирования следует визуализировать (этап S14-4). Отобранные циклы сканирования визуализируются (этап S14-5), и процесс визуализации продолжается для следующего кадра (этап S14-6).
Ключ к решению
Ключ к решению подразумевает скрытую визуализацию всех циклов сканирования в проекте с очень низким разрешением.
Каждая грань имеет 16×16 плиток, и графический процессор 38 вычисляет среднюю дистанцию для каждой плитки таким образом, чтобы каждая грань имела 256 грубых уровней дистанции. Таким образом, каждый цикл сканирования состоит из 1536 точек (т.е., 6 граней × 256 уровней дистанции). Однако, количество точек может отличаться, например, из-за различного количества плиток.
Со ссылкой на фиг. 15 первая и вторая подвергнутые замощению поверхности 75, 76, происходящие из первого и второго разных циклов сканирования, показаны в трехмерном пространстве изображения. Из точки 34 обзора первая подвергнутая замощению поверхность 75 является видимой и превышает минимальный порог размера. Однако вторая подвергнутая замощению поверхность 75 может быть загорожена первой поверхностью и/или может находиться ниже порога размера. Это происходит автоматически в z-буфере (не показан) после шейдеров. Шейдеры не имеют никакой совокупной видимости изображения, и ключ к решению выполняется в z-буфере. Самые близкие треугольники будут отрисованы на переднем плане.
Визуализация
Система 31 визуализации извлекает из запоминающего устройства 21 текстуры 25 дистанции, текстуры 26 интенсивности, цветовые текстуры 27 и файлы 35 бесполезных плиток 35 для циклов 45 сканирования, идентифицированных в ключе к решению, и передает текстуры 25, 26, 27 и файлы 28 бесполезных плиток графическому модулю 37.
Как показано на фиг. 16, визуализация выполняется с использованием конвейера 81, который реализован графическим процессором 38 (фиг. 2), и который включает в себя вершинный шейдер 82, шейдер 83 управления замощением, шейдер 84 оценки замощения, геометрический шейдер 85 и фрагментный шейдер 86. Шейдеры могут называться по-другому.
Также, как показано на фиг. 17, конвейер 81 обрабатывает вершины 87, которые размещены в плитках 88 для куба 89, имеющего шесть граней 90. Вершины 87 выражены в координатах (u, v). Каждая грань 90 разделена на плитки 88. В данном случае каждая грань разделена на 16×16 плиток.
Вершины 87 для каждой грани 90 подаются по плиткам 88 на вершинный шейдер 82, который применяет преобразование 92 сканирования, которое основано на заданной пользователями точке 34 обзора. Вершинный шейдер 82 выдает преобразованные данные 82 вершин шейдеру 83 управления замощением. Шейдер 83 управления замощением выдает уровень замощения (не показан) для каждой плитки 88 шейдеру 54 оценки замощения.
Вершины 87 для бесполезных плиток обнаруживаются отброшенными шейдером 83 управления замощением и не передаются. Таким образом, это может помочь сократить использование ресурсов графического процессора и тем самым ускорить визуализацию.
Также, как показано на фиг. 18, шейдер 84 оценки замощения выполняет замощение каждой плитки 88 и проецирует точки замощения 92 на грань 93 единичного куба 94 в трехмерном пространстве со смещением на дистанцию R, полученную посредством дискретизации текстурных пикселей 95 дистанции в текстуре 25 дистанции в координатах (u, v) точки 87.
Поток точек 92 замощения подается на геометрический шейдер 85, который отбрасывает треугольники, которые находится под тупыми углами.
Также, как показано на фиг. 19, в зависимости от того, визуализируется ли монохромное или цветное изображение, фрагментный шейдер 86 дискретизирует кубическую карту 26 интенсивности или цветовую кубическую карту 27 и копирует значение в текстурном пикселе 96 в кубической карте 26, 27 в значение для фрагмента 97 треугольника на грани 93 куба 94. На грани 93 куба 94 это имеет эффект проецирования монохромного или цветного изображения на рельеф, обеспеченный текстурой дистанции.
Пиксельные данные 97 отправляют в буфер 40 кадра. Пиксельные данные 97, сформированные из нескольких циклов сканирования, могут быть записаны в один и тот же буфер 40 кадра 40, и тем самым может быть сформировано изображение, содержащее данные из нескольких циклов сканирования.
Фиг. 20 и 21 иллюстрируют снимки экрана во время ʺпролета черезʺ обследуемую окружающую среду, которая включает в себя здание 98 (помеченное как ʺLaw School Management Schoolʺ). Цветовая панорамная сферическая текстуру 25 для цикла сканирования и соответствующие кубические карты 25, 27 скомпонованной дистанции и цветного изображения показаны на фиг. 9. Соответствующие данные цветного изображения показаны на фиг. 12. Сцены сформированы из нескольких циклов сканирования и визуализированы из разных точек обзора. Пользователь может плавно полететь через окружающую среду в режиме реального времени. Снимки экрана показывают "тени", указывающие позицию 99 сканера 2 (фиг. 1) при выполнении сканирования.
Очевидно, что различные модификации могут быть внесены в описанные выше варианты осуществления. Такие модификации могут включать в себя эквивалентные и другие признаки, которые уже известны в проектировании, производстве и использовании систем лазерного сканирования и/или систем графической обработки, и их составные части, и которые могут использоваться вместо или в дополнение к признакам, уже описанным в настоящем документе. Признаки одного варианта осуществления могут быть заменены или дополнены признаками другого варианта осуществления.
Хотя формула изобретения была сформулирована в этой заявке для конкретных комбинаций признаков, следует понимать, что объем раскрытия настоящего изобретения также включает в себя любые новые признаки или любую новую комбинацию признаков, раскрытых в настоящем документе, явным или неявным образом, или любое их обобщение, независимо от того, связано ли оно с таким же изобретением, как в настоящий момент заявляется в любом пункте формулы изобретения, и независимо от того, уменьшает ли оно некоторые или все аналогичные технические проблемы, как это делает настоящее изобретение. Заявитель тем самым дает знать, что новая формула изобретения может быть сформулирована для таких признаков и/или комбинаций таких признаков во время рассмотрения настоящей заявки или любой другой заявки, полученной на ее основе.