Cемантическая сегментация, панорама и фотограмметрия (Semantic segmentation, panorama and photogrammetry)

Автор: | 30.11.2020

Tags: 3D семантическая сегментация панорама AtlantaNet HorizonNet сканер

Введение
2D и 3D сегментация
Примеры семантической 3D сегментации сцены
Панорамное фото
Фотограмметрия
3D сканеры
Полезные ссылки

Введение

В компьютерном зрении, сегментация — это процесс разделения цифрового изображения на несколько сегментов (множество пикселей).

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

Reverse engineering — это процесс восстановления геометрической модели изделия из дискретного представления, например, облака точек или триангуляции (mesh model).

2D и 3D сегментация

Несмотря на широкий спектр решений в области 2D семантической сегментации (рисунки в первом ряду), семантическая сегментация объектов в трехмерном пространстве (рисунки во втором ряду) по прежнему представляет собой сложную проблему. Но, при решении этой проблемы  качество получаемых сцен значительно выше
Анализ трехмерных сцен и данных — задача, которая в последнее время становится все более актуальной в связи с появлением и распространением новых систем сканирования пространства.

Примеры семантической 3D сегментации

  • Входное облако точек (стены и потолок для наглядности скрыты).
  • Семантическая сегментация точек (точки, принадлежащие к разным семантическим областям, окрашены по-разному).
  • Обнаружение объектов (ограничение их рамками) на основе предсказаний семантической сегментации.

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

На рисунке для каждой строки показано:

  1. оригинальное панорамное изображение;
  2. сравнение между подходом AtlantaNet (зеленая линия) и HorizonNet (красная линия),  реальное основание закрашено;
  3. 3D-макет, полученный сравниваемым подходом HorizonNet;
  4. 3D-макет, полученный, подходом AtlantaNet.

Панорамное фото

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

После упорядочивания кадров панорамное фото позволяет имитировать 3D модель из 2D изображений. Панораму можно крутить мышкой в разные стороны, а также приближать и отдалять колёсиком (см. онлайн пример по ссылке).

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

 

Для такой схемы максимальное количество необходимых кадров = Imax*Jmax =10*10=100

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

Если ходить по квартире, поворачиваясь в горизонтальной плоскости, то количество параметров увеличится на один (будет 3), а необходимых кадров – на порядок 10*10*10 =1000. Два параметра – это перемещение в плоскости квартиры и один параметр – это вращение.

В пределах дверного проема количество точек для съемки можно увеличить.

  • Если поворачивать голову еще по вертикали (смотреть на пол и потолок), то уже параметров будет 4, а необходимых кадров –10*10*10*10 =10000.

  • Если подниматься на 2-й этаж, то параметров будет пять –10*10*10*10*10 =100000
  • Если поворачивать голову набок, то параметров будет шесть –10*10*10*10*10=1000000 кадров

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

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

Фотограмметрия

Кадры, подготовленные для панорамного фото, можно также использовать для фотограмметрии (реальной 3D реконструкции).

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

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

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

На стыке двух комнат сложно получить соответствующие точки вследствие узкого проема и разного освещения, теней и т.п. Один из возможных вариантов решения проблемы — установить приспособление с несколькими яркими точками (не менее 3-х).

3D сканеры

3D сканеры делятся на два типа:

  1. Контактный, что подразумевает под собой, что предмет, который будет отсканирован, соприкасается одной из своих поверхностей со сканером;
  2. Бесконтактный, который сканирует поверхность, не соприкасаясь с поверхностью, сканируемого объекта. Так же бесконтактные сканеры делятся на:
  • Активные трехмерные сканеры.
  • Пассивные трехмерные сканеры.

Активные трехмерные сканеры излучают на предмет сканирования направленные волны (чаще свет, луч лазера) и обнаруживают отражение. Эти типы используемого излучения включают свет, ультразвук или рентгеновские лучи.

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

При выборе трехмерного сканера как правило обращают внимание на его следующие характеристики:

  1. Разрешение (разрешающая способность), описывает наименьшее расстояние между сканируемыми точками в мм;
  2. Детализация, описывает размер объекта в мм, форму которого может распознать сканер;
  3. Шум, случайная образовывающая суммарной ошибки измерения. Может быть установлена при повторных сканированиях данного объекта в абсолютно тех же условиях путём сравнения с первым результатом;
  4. Точность, общая суммированная ошибка измерения.

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

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

Актуальным примером обработки облака точек является система сканирования пространства с помощью lidar в новом iPad Pro 2020, которая позволяет мобильным устройствам лучше детектировать плоскости в пространстве в реальном времени.

Lidar использует ультрафиолетовое, видимое или близко к инфракрасному типы излучения для отображения объектов. Он может быть использован для определения расстояния до объектов, изготовленных из различного рода материалов, таких как неметаллические предметы, камни, дождь, химические соединения, аэрозоли, облака и даже одиночные молекулы. Узкий лазерный луч может отображать физические характеристики с очень высоким разрешением. Например, самолет может снимать карты местности с разрешением 30 см или выше.

Kinect  – это линия девайсов-сенсоров движения, разработанная Microsoft для консолей Xbox 360 и Xbox One, и компьютеров Windows. Kinect позволяет пользователям управлять и взаимодействовать с консолью или компьютером не путем использования игрового контроллера (мышка, джойстик), а через  естественный пользовательский интерфейс жестов.

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

В ходе реверс-инжиниринга установлено, что различные датчики
выходного видеосигнала в Kinect со скоростью кадров от 9 Гц до 30 Гц в
зависимости от разрешения. RGB видео поток по умолчанию использует 8-битные изображения с разрешением 640×480 пикселей с фильтром Байера, но оборудование способно выдавать разрешение до 1280×1024 (при более низкой частоте кадров) и другие цветовые форматы, такие как UYVY. Разрешение монохромного видеопотока глубины имеет разрешение 640 × 480 пикселей с 11-битной глубиной, что обеспечивает 2048 уровней чувствительности.

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

Полезные ссылки:

 

Автор: Николай Свирневский