Исследование и разработка методов трехмерного сканирования и сегментации объектов с использованием поляризации света тема диссертации и автореферата по ВАК РФ 05.13.01, кандидат наук Таамазян Ваге Арамаисович
- Специальность ВАК РФ05.13.01
- Количество страниц 88
Оглавление диссертации кандидат наук Таамазян Ваге Арамаисович
Введение
Глава 1. Аналитический обзор методов и алгоритмов трехмерного сканирования и сегментации объектов с использованием поляризации света
1.1. Методы трехмерного сканирования объектов
1.1.1. Структурированная подсветка
1.1.2. Времяпролетные камеры и лидары
1.1.3. Стерео
1.1.4. Фотометрические методы
1.2. Алгоритмы формы из поляризации (ФиП)
1.3. Алгоритмы объединения карт глубин и карт нормалей
1.4. Методы разделения отраженной и рассеянной компонент
1.5. Алгоритмы и методы сегментации прозрачных объектов
1.6. Использование поляризации света в прочих задачах вычислительного имаджинга (computational imaging)
1.7. Выводы к первой главе и постановка задач, которые должны быть решены в диссертационной работе
Глава 2. Совершенствование технологии 3D сканирования с помощью ФиП
2.1. Увеличение точности и детализации карт глубин с помощью информации о поляризации отраженного света
2.1.1. Коррекция низкочастотной п-неопределенности азимута
2.1.2. Коррекция высокочастотной п-неопределенности азимута
2.1.3. Коррекция зенита
2.1.4. Объединение скорректированной карты нормалей и карты глубин
2.1.5. Доказательства некоторых используемых утверждений
2.1.6. Анализ результатов работы алгоритма
2.2. Поляризация при смешанном отражении
2.2.1. Симуляции
2.2.2. Эксперименты
2.3. Выводы ко второй главе
Глава 3. Сегментация прозрачных объектов на изображении с помощью поляризации отраженного света
3.1. Архитектуры Mask R-CNN и Polar Mask R-CNN для сегментации изображений
3.2. Датасет прозрачных объектов с поляризационными данными
3.3. Полученные результаты и их анализ
3.4. Выводы к третьей главе
Заключение
Литература
Приложение 1. Код обработки поляризационных данных на Python
Приложение 2. Акт о внедрении результатов диссертационной работы
Введение
Актуальность темы диссертации
Поляризация - неотъемлемое свойство любых электромагнитных волн, включая также видимый свет. При этом, это свойство незаметно глазу: органы чувств человека, как и большинства других живых существ (за редким исключением типа креветок, осьминогов и ряда других морских существ) не способны улавливать наличие или отсутствие поляризации у поступающего света, не говоря уже о степени поляризации или угле поляризации света. Вероятно, именно поэтому долгое время поляризация крайне неактивно использовалась в исследованиях по вычислительному имаджингу (computational imaging) и компьютерному зрению (computer vision).
Тем не менее, в последние годы интерес к использованию информации о поляризации света в решении различных задач компьютерного зрения постоянно растет. Поляризация помогает в решении множества задач, таких как трехмерное сканирование лица и прочих объектов [5,8,11], включая также восстановление формы поверхности океана [9], для дехэйзинга изображений [13], разделении отраженной и рассеянной компонент изображения [17,23], и в прочих исследованиях.
Наибольшее число публикаций и исследований относится именно к области трехмерного сканирования объектов, потому что поляризация света несет в себе информацию о форме объекта, от которого свет отразился. Влияние формы объекта на поляризацию отраженного света было известно веками и сформулирована в уравнениях Френеля. Этот принцип лежит в основе методов Формы из Поляризации (ФиП) [1], целью которой является реконструкция информации о трехмерной форме объекта на основе данных о поляризации света, извлеченных из трех и более фотографий объекта под разными углами поляризатора. Одной из целей данной работы было продемонстрировать использование алгоритмов ФиП в сочетании с неточной картой глубин для ее
последующего уточнения, а также показать способ использования поляризации для более точного разделения рассеянной и отраженной компонент.
Еще одной областью компьютерного зрения, очень активно развивающейся в последние 5 лет, является сегментация изображений. Задачу сегментации можно разделить на 2 основных направления:
1. Семантическая сегментация - определение всех пикселей для объектов определённого класса или фона на изображении. Если несколько объектов одного класса пересекаются, их пиксели никак не отделяются друг от друга.
2. Сегментация объектов - определение пикселей, принадлежащих каждому объекту каждого класса по отдельности.
С развитием глубинного обучения и сверточных нейронных сетей, полноценное решение этой задачи стало ближе. Однако тем не менее, все еще существует ряд типов объектов, с которыми современные алгоритмы сегментации справляются плохо или не справляются вовсе. Одним из показательных примеров является сегментация прозрачных объектов: стаканов, бутылок, игушек и так далее. Использование поляризации света для более точного решения этой задачи также рассмотрено в данном диссертационном исследовании, а также приведены результаты, демонстрирующие качественное и количественное улучшение результатов, что также определяет актуальность данной диссертации.
Степень разработанности темы.
3D сканирование на основе поляризации (Shape from Polarization, SFP, Форма из поляризации, ФиП) света базируется на фундаментальном физическом принципе, связывающем ориентацию нормали на поверхности объекта с поляризацией света, отраженного или рассеянного от данной точки объекта. Различные части данного метода были впервые описаны в публикациях Lawrence
B. Wolff, Terrance E. Boult, Megumi Saito et al., Stefan Rahmann, Daisuke Miyazaki и других в 1990х и начале 2000х годов [1 - 4].
Как правило, для оценки параметров поляризации отраженного от объекта света используется камера с закрепленным на объективе поляризатором. С помощью этой камеры делается 3 фотографии с разными углами поляризатора, которые затем обрабатываются для реконструкции карты нормалей. Существует 2 основных направления ФиП: на основе отраженного зеркально света, а также на основе рассеянного света. Первый направление активно используется для оценки формы металлов [5], прозрачных объектов [6,7], темных объектов [8] и даже океанских волн [9]. Второе направление базируется на анализе света, который претерпел рассеяние внутри объекта (возможно, в тонком слое у поверхности), из-за чего уравнения Френеля применяются в ином виде [10].
Существуют работы по использованию поляризованного света для детализированного трехмерного сканирования лиц [11]. Однако в данных работах используется активная поляризованная подсветка, а также анализ ее отражения от поверхности с нескольких ракурсов. Также ряд работ демонстрирует использование круговой поляризации для трехмерной реконструкции объекта [12], исправление эффекта задымления в изображении [13], мультиплексирование освещения [14], создание панорам [15], подводное рассеяние света [16], а также трехмерные дисплеи [17].
Также в последние годы крайне активно развивается область детектирования и сегментации объектов, в особенности благодаря развитию глубоких сверточных нейронных сетей. Так, в течение последних 3-4 лет вышли публикации Fast/Faster R-CNN [59,60], Mask R-CNN [61], Fully Convolutional Network (FCN) [62], YOLO [63], SSD [64], U-Net [65], а также ряд других статей. Отдельное внимание исследователей обращено на сегментирование и детектирование прозрачных объектов, как более сложный частный случай задачи сегментирования [66,67,68].
Целью исследования является улучшение методов трехмерного сканирования объектов, а также сегментации объектов с помощью поляризации света.
Объектом исследования диссертации являются системы трехмерного сканирования объектов с использованием поляризации, а также системы сегментации объектов на изображениях.
Предметом исследования диссертации являются модели, методы, алгоритмы и программы трехмерного сканирования объектов, а также сегментации объектов на изображении с использованием поляризации света и сверточных нейронных сетей.
Методы исследования. Для решения задач используются методы вычислительной математики, компьютерные методы обработки изображений, сверточные нейронные сетей, а также методы разработки приложений на языках Matlab и Python.
В соответствии с целью, объектом и предметом диссертации были поставлены и решены следующие основные
Задачи исследования:
1. Провести исследование по улучшению ФиП метода трехмерного сканирования объектов.
2. Провести исследование и разработать методы по улучшению сегментации прозрачных объектов с использованием поляризации света.
3. Собрать датасет для последующего использования в исследованиях задачи сегментации другими научными группами.
Научная новизна результатов, полученных в диссертационной работе, состоит в следующем:
1. Предложены способы усовершенствования ФиП метода трехмерного сканирования объектов. Показано, как можно добиться уточнения формы объекта с помощью сшивки карты нормалей, полученных из анализа поляризации отраженного света и карты глубин низкого разрешения. Также предложен метод разделения зеркальной и рассеянной компонент отраженного света для более точной реконструкции в случае смешанного отражения.
2. Собран датасет прозрачных объектов с попиксельной сегментацией, а также информацией о поляризации отраженного от объекта света.
3. Предложен способ более точной и качественной сегментации прозрачных объектов с использованием информации о поляризации света и сверточных нейронных сетей. Показано, как можно работать с поляризационными данными с использованием сверточных нейронных сетей.
Практическая значимость. Результаты данной диссертационнй работы могут быть применены в области трехмерного сканирования объектов, а также в области, где требуется сегментация прозрачных объектов. Результаты диссертационного исследования внедрены в Федеральном государственном автономном научном учреждении "Центр информационных технологий и систем органов исполнительной власти" (ФГАНУ ЦИТиС), что подтверждено актом о внедрении. Кроме того, на результаты и программы исследования зарегистрирован патент США, а также они используются компанией Акаша Имаджинг (США) для разработки роботизированного манипулятора, захватывающего прозрачные объекты.
Основные научные положения, выносимые на защиту:
1. Алгоритм использования ФиП для уточнения карт глубин, позволяющий получить прирост в точности до 50% относительно карты глубин и до 55% относительно наиболее актуального шейдингового метода уточнения карты глубин.
2. Метод и алгоритм использования ФиП для разделения компонент смешанного отражения - наиболее распространенного случая отражения света, позволяющий на практике произвести само разделение с вдвое меньшей ошибкой определения ориентации нормалей.
3. Алгоритм сегментации прозрачных объектов с использованием поляризации света, позволяющий добиться до 79% снижения ошибки сегментации прозрачных объектов.
4. Способы использования информации о поляризации света в сверточных нейронных сетях.
5. Размеченный датасет прозрачных объектов с поляризационными данными - единственный доступный датасет прозрачных объектов с более 700 размеченными изображениями с помощью поляризационной камеры.
Апробация работы. Материалы диссертационной работы были доложены и обсуждены на следующих всероссийских и международных конференциях: «Нейрокомпьютеры и их применение», 14 марта 2017, МГППУ, 60-ой Научной Конференции МФТИ, 25 ноября 2017, МФТИ, 61-ой Научной Конференции МФТИ, 25 ноября 2018, МФТИ, ITNT-2019, май 2019, Самара.
Публикации. По теме диссертации опубликовано 6 работ в журналах и трудах конференций и еще 1 работа подана в печать, 3 из них находятся в списке научных изданий, зарегистрированных в Высшей аттестационной комиссии Министерства науки и высшего образования России (в том числе 3 статьи в журналах из перечня RSCI - Web of Science):
1. Kadambi A., Taamazyan, V., Shi, B., & Raskar, R. Polarized 3d: High-quality depth sensing with polarization cues //Proceedings of the IEEE International Conference on Computer Vision. - 2015. - С
2. Kadambi A., Taamazyan, V., Shi, B., & Raskar, R. Depth sensing using geometrically constrained polarization normals //International Journal of Computer Vision. - 2017. - Т. 125. - №. 1-3. - С
3. Таамазян В. А. Поляризация при смешанном отражении в задаче трехмерного сканирования объектов //Компьютерная оптика. - 2018. -Т. 42. - №
Структура и объем диссертации. Диссертационная работа состоит из титульного листа, оглавления, введения, трех глав, заключения, списка литературы, приложений и акта о внедрении. Основная часть (без приложений) изложена на 88 страницах машинописного текса. Работа содержит 24 рисунка, 5 таблиц, список литературы, которой включает 95 наименований.
Краткое содержание работы по главам
Во введении обосновывается актуальность темы диссертации, сформулированы цель и задачи, объект и предмет исследования, научная новизна и практическая ценность диссертации, определена степень изученности темы. Также представлены основные научные положения, которые выносятся на защиту, а также сведения об апробации полученных результатов и публикациях автора по теме диссертации.
В первой главе «Аналитический обзор методов и алгоритмов трехмерного сканирования и сегментации объектов с использованием поляризации света» описаны основные и наиболее значимые публикации в области использования поляризации в компьютерном зрении и вычислительном имаджинге, а также наиболее значимые публикации по сегментации объектов. В заключении этой главы делаются выводы по материалам обзора и формулируются задачи, которые должны быть решены в диссертации.
Во второй главе «Совершенствование технологии 3D сканирования с помощью ФиП» приводится описание предложенного алгоритма использования поляризации для трехмерной реконструкции объектов, а также обосновывается ряд утверждений. Приводится качественный и количественный анализ
полученных результатов. Производится сравнения с другими наиболее современными методами. Также в данной главе описывается метод разделения света на отраженную и рассеянную компоненты с помощью поляризации света.
В третьей главе «Сегментация прозрачных объектов на изображении с помощью поляризации отраженного света» описывается способ значительного улучшения точности сегментирования прозрачных объектов с помощью поляризации отраженного света. Также приводится описание собранного датасета прозрачных объектов вместе с поляризационными данными. Наконец, описывается алгоритм предварительной обработки поляризационных данных перед использованием их для тренировки сверточных нейросетей, чтобы улучшить сходимость обучения и лучше использовать поляризационные данные, с учетом их физических свойств, а также модификация архитектуры сверточной нейронной сети для более качественной работы с поляризационными данными.
В заключении сформулированы основные результаты диссертационного исследования.
Приложение 1: Код обработки поляризационных данных на Python.
Приложение 2: Копия акта о внедрении результатов диссертационной
Рекомендованный список диссертаций по специальности «Системный анализ, управление и обработка информации (по отраслям)», 05.13.01 шифр ВАК
Методы восстановления параметров сцены для решения проблемы реалистичной визуализации в системах смешанной реальности2021 год, кандидат наук Сорокин Максим Игоревич
Обработка и анализ видеоданных в системе управления беспилотного автомобиля2022 год, кандидат наук Зубов Илья Геннадьевич
Исследование метода 3D сканирования, основанного на модели отражения света поверхностью2020 год, кандидат наук Кузнецов Виталий Александрович
Разработка и исследование методов сегментации и распознавания трехмерных объектов2020 год, кандидат наук Левашев Сергей Петрович
Разработка методов определения биометрических и температурных параметров вымени лактирующих животных на основе оптических технологий2022 год, кандидат наук Юрочка Сергей Сергеевич
Введение диссертации (часть автореферата) на тему «Исследование и разработка методов трехмерного сканирования и сегментации объектов с использованием поляризации света»
работы.
Глава 1. Аналитический обзор методов и алгоритмов трехмерного сканирования и сегментации объектов с использованием поляризации света
1.1. Методы трехмерного сканирования объектов
Существует 2 ключевых подхода к сканированию объектов: захват глубины и захват нормалей. Другими словами, можно как измерить расстояние от некоторой точки (как правило, 3D видеокамеры) до точки объекта, так и нормаль к поверхности объекта в данной точке, без измерения расстояния до самого объекта. Нормаль к точке в данном случае является вектором, модуль которого равен 1, перпендикулярным касательной плоскости к объекту в данной точке. Для того, чтобы визуализировать карту нормалей в виде полигональной 3D модели, ее необходимо проинтегрировать аналогично тому, как интегрируются карты градиентов и восстанавливаются функции. Карты глубин и карты нормалей актуальны для разных типов задач, однако все больше публикаций появляется на тему совмещения технологий, что также подробнее будет рассмотрено ниже.
1.1.1. Структурированная подсветка
Ключевая идея метода структурированной подсветки заключается в использовании активной иллюминации с помощью специально подобранного, варьрующегося в пространстве и во времени 2D паттерна и съемке проекции этого паттерна на видеокамеру. Этот паттерн позволяет установить однозначное соответствие между каждой точкой видеокамеры и излучаемого паттерна, позволяя тем самым триангулировать положение точек объекта. Источником света для проецирования паттера как правило является проектор, но иногда используется также лазер. 3D сканирование с использованием лазерной подсветки часто называется лазерным 3D сканированием. При этом этот метод, принципиально, никак не отличается от сканирования с помощью подсветки
проектором. Одной из ключевых сложностей метода является корректное сопоставление спроецированного паттерна с оригинальным и, другими словами, поиск соответствий между изображением сцены и проецируемым паттерном. Существует ряд методов, позволяющих делать это как с помощью переменной во времени подсветки и, таким образом, бинарного кодирования значений каждой точки, так и с помощью более сложных методов с использованием цветов и самонеповторяющихся паттернов [83]. Метод структурированной подсветки -один из самых популярных и массово используемых методов трехмерного сканирования за счет высокой точности результата, надежности и простоты. Так, погрешность измерения расстояний с помощью структурированной подсветки может достигать долей мм (350 мкм) на расстояниях выше 2-3 метров [84]. Этот метод в том числе используется в множестве потребительских продуктов, например в Microsoft Kinect v1.
1.1.2. Времяпролетные камеры и лидары
Один из базовых способов измерения расстояния между любыми двумя точками - измерение времени, которое требуется для света чтобы долететь от одной точки к другой. Именно на этом эффекте базируются времяпролетные видеокамеры (суть которых зашифрована в их названии), а также лидары: они измеряют время пролета света от излучателя до объекта и обратно. Такие 3D видеокамеры всегда содержат в себе активный излучатель света (в случае с лидаром - это лазер). Несмотря на высокую скорость света (свет пролетает 1 метр за 1 наносекунду), достижения в оптоэлектронике сделали возможными массовое распространение фазовых времяпролетных видеокамер, таких как Microsoft Kinect v2 (Kinect One). Такие видеокамеры излучают модулированный по амплитуде свет, например меандр или синусоидальную волну. Отраженный от объекта свет имеет фазовый сдвиг, зависящий от расстояния до объекта, и его можно измерить с помощью временной корреляции [85].
Принцип работы лидара на физическом уровне схож с принципом работы времяпролетной видеокамеры. Разница заключается в том, что в лидарах используется лазер, поэтому в единицу времени лидар измеряет расстояние только до одной точки, меняя направление пучка, и за счет высокой мощности лазера может измерять расстояния существенно большие, чем времяпролетные видеокамеры (сотни метров и километры в сравнении с 1-10 метрами для времяпролетных видеокамер). При этом, точность измерения расстояния до точек объекта лидарами также существенно выше, чем времяпролетными камерами. Так, например, лидар от компании Leica способен измерять расстояния до точек с погрешностью порядка 1-10 мм на расстояниях порядка десятков метров [86].
1.1.3. Стерео
В отличие от предыдущих двух методов 3D сканирования, стерео (включая мультиракурсное стерео) - полностью пассивная технология, то есть не требуется никакой активной подсветки. Более того, это единственная пассивная технология, которая по точности и качеству реконструкции может быть сравнима с методами на основе структурированной подсветки и времяпролетными видеокамерами [87, 88]. Основной принцип стерео и мультиракурсного стерео в реконструкции 3D модели сцены из группы фото с разных ракурсов. При этом, положение видеокамер для трехмерной реконструкции знать не обязательно, но для того, чтобы восстановить реальные размеры объектов, нужно знать либо положение видеокамер, либо физические размеры какого-либо из объектов в сканируемой сцене. Классические стерео алгоритмы работают на основе двух фотографий с видеокамер с небольшим сдвигом и позволяют вычислить расстояние до разных точек объектов с помощью триангуляции: эти точки будут расположены на изображениях с небольшим сдвигом, и это позволит триангулировать их реальное положение в пространстве (при этом, для случая реконструкции по двум видеокамерам необходимо, чтобы они были предварительно взаимно откалиброваны). Результатом на выходе становится карта глубин. Задача
мультиракурсного стерео - реконструкция 3D модели сцены, а не просто карты глубин. Два ключевых принципа мультиракурсного стерео: на основе сопоставления точек с разных кадров и их триангуляции или на основе извлечения силуэтов и наложения ограничений на модель с их учетом [89]. Примеры использования мультиракурсного стерео для задачи фотограмметрии (измерения расстояний по набору фотографий с разных ракурсов) приведены в публикациях Козлова В.Л. и Шубниковой И.С. [90, 91], в том числе с субпиксельной точностью [92].
Ввиду схожего фундаментального принципа работы с методом структурированной подсветки (триангуляция точек объекта, захваченного с разных ракурсов), теоретическая точность может быть сравнимой со структурированной подсветкой. Однако важной проблемой стереоалгоритмов является существенно меньшая надежность работы.
1.1.4. Фотометрические методы
Фотометрические методы - это методы захвата карты нормалей. Основная задача таких методов - оценивать ориентацию поверхности объекта, что эквивалентно измерению ориентации нормалей к поверхности в различных точках объекта. Эти нормали далее могут быть интегрированы для реконструкции поверхности, а также могут быть объединены с данными о глубине.
Существует 2 ключевых фотометрических метода оценки ориентации нормалей: форма из затенения (shape from shading, SFS) и фотометрическое стерео (photometric stereo, PS). Суть обоих методов заключается в измерении интенсивности света, отраженного от различных точек объекта при разнообразных условиях освещения. Интенсивность отраженного света зависит от отражательных характеристик поверхности объекта, условий освещения и ориентации нормали поверхности [93].
Метод измерения формы из затенения был предложен Бертольдом Хорном в начале 1970-х годов. Суть метода в измерении ориентации нормали из яркостей
разных точек объекта по одной фотографии. В общем случае задача не может быть решена однозначно, поэтому необходимы дополнительные ограничения, за которые обычно принимают следующие положения: источник света находится достаточно далеко, поверхность объекта гладкая и подчиняется закону Ламберта (рассеивает свет во все стороны равномерно). SFS позволяет добиться реконструкции поверхности в реальном времени без какой-либо активной подсветки. Это было в том числе продемонстрировано в работе Wu et а1., в которой был также предложен метод объединения карт глубин с нормалями, полученными с помощью SFS [40]. Рисунок 1.1.1 показывает пример результата, полученного авторами.
Рисунок. 1.1.1. Слева направо: метод получает на вход карту глубин и выровненное с ней RGB изображение, используемые для вычисления альбедо и положения источника света в реальном времени для уточнения формы объекта; сырые входные данные до коррекции (отрендеренные с нормалями и шейдингом Фонга); результат после коррекции; полноценная 3D реконструкция на основе
исправленных карт глубин [40].
Фотометрическое стерео - более общий метод, решающий ту же задачу поиска нормалей на основе набора фотографий с разными положениями источников света. Это позволило избавиться от множества ограничений, включая ограничения на свойства материалов на поверхности и свойства света. Однако в свою очередь, чем более общая задача решается, тем больше входных данных
необходимо. Так, для случая с объектами с анизотропной двулучевой функцией отражательной способности и прозрачными частями требуется не менее 1000 фотографий [94, 95].
1.2. Алгоритмы формы из поляризации (ФиП)
Форма из Поляризации (ФиП) - термин, используемый в компьютерном зрении для объединения класса методов, оценивающих ориентацию нормалей поверхности объекта на основе уравнений Френеля. В [24] приведен обзор методов использования степени и угла поляризации отраженного света для определения ориентации нормалей к поверхности объекта. При этом, информация о поляризации света также несет информацию и о форме прозрачных объектов, что особенно актуально в данной работе [25,7]. С другой стороны, поляризация рассеянного света также несет информацию о форме объекта, что может быть использовано для реконструкции формы диэлектриков [4,10]. Ряд публикаций предлагал методы по улучшению ФиП. Так, например, в [26] был предложен способ использования внешнего активного поляризованного излучения для увеличения отношения сигнала к шуму в итоговых измерениях рассеянной поляризации. В другой публикации был предложен способ комбинации спектральной информации отраженного света с поляризационными измерениями для определения ориентации поверхностных нормалей и коэффициента преломления объекта [27]. Недавно, в [28] был предложен способ позволяющий оценить также карту глубин, а не только карту нормалей, но предполагающий известным некоторые свойства сцены, такие как коэффициент преломления. Все данные публикации явно демонстрируют преимущества использования информации о поляризации света, но ни в одной из данных публикаций не были решены основные проблемы ФиП, упомянутые в Главе 2 и разрешенные в рамках данной диссертационной работы. Некоторые из неопределеноостей были
разрешены, например, в [29] с использованием нескольких ракурсов для захвата данных. В работе [4] вместо этого полагаются на априорно известное распределение поверхностных нормалей, а в работе [8] распространяют этот подход на определение формы поверхности объекта с помощью мультиракурсного объединения силуэтов. Также обзоры полариметрических способов захвата формы объекта приведены в [30, 31]. Предложенный в данной диссертационной работе метод усовершенствования ФиП близок по смыслу к методу предложенному в [32] по использованию шейдинга в качестве пограничного условия для ФиП. Только в отличие от [32] мы предлагаем использовать грубую карту глубин сцены, что позволяет успешно справляться со всеми главными проблемами ФиП.
1.3. Алгоритмы объединения карт глубин и карт нормалей
Объединение карт глубин и карт нормалей - популярный способ реконструкции трехмерной формы объекта. Идея такого объединения логична и понятна:
1. Информация из карты глубин позволяет избавиться от любых неопределенностей в карте нормалей, особенно полученных с помощью ФиП, фотометрического стерео или формы из шейдинга.
2. Карта нормалей позволяет добавить дополнительные детали к карте глубин - небольшие объекты намного более отчетливо видны в карте нормалей в сравнении с картой глубин, особенно низкого разрешения.
3. Карта глубин позволяет интегрировать карту нормалей корректнее, с учетом разрывов в глубине.
Существен ряд работ, демонстрирующих использование всех трех аспектов. Так, ранее были исследованы следующие комбинации:
• Лазерный сканер и фотометрическое стерео [33].
• Мультиракурсное стерео и форма из шейдинга [34] или фотометрического стерео [35,36,37].
• Объединение карт глубин и нормалей, полученных с помощью формы из шейдинга [38,39,40].
• Объединение карт глубин и нормалей, полученных с помощью фотометрического стерео [41,42,43].
1.4. Методы разделения отраженной и рассеянной компонент
Задача разделения отраженной зеркально и рассеянной компонент света решается широким классом вычислительных и оптических методов. Часть методов базируется исключительно на одном изображении и использует характеристики цветов объекта, однако данный класс методов подвержен возникновению артефактов. Например, в [19] был представлен метод, базирующийся на независимых от угла обзора эффектах, чтобы определить рассеянную компоненту в фотографии. Другие методы также используют анализ одного изображения и цветов объекта в этом изображении [19, 54, 55, 56, 57]. В рамках данной диссертацонной работы показана польза применения информации о поляризации света для решения этой задачи. Часть предыдущих методов, использовавших поляризацию для решения этой задачи, базировались на активной подсветке [44, 11]. Для случая отсутствия активной подсветки в [18] был предложен метод, использующий информацию о поляризации света, отраженного от объекта, а также цвет. Этот метод, а также похожий метод, предложенный в [58], хорошо справляются с задачей в случае плавного варьирования цвета на поверхности объекта.
1.5. Алгоритмы и методы сегментации прозрачных объектов
Сегментация изображений - одна из фундаментальных проблем компьютерного зрения. Задачей процедуры сегментации изображения является назначение лейблов пикселям изображения, с помощью которых определяется, к какому объекту или к какому классу относятся те или иные пиксели. Пример отсегментированного изображения приведен на рисунке 1.5.1. Задача сегментации отдельно взятых объектов на изображениях начала крайне активно решаться в последние 5 лет благодаря появлению общедоступных обширных датасетов, а также развитию аппаратного обеспечения и архитектур сверточных нейронных сетей. Так, за последние годы вышли публикации, описывающие архитектуры: Fully Convolutional Network (FCN) [62], U-Net [65], PSPNet [69], Mask R-CNN [61], DeepLab, DeepLabv3 и DeepLabv3+ [70,71,72], PANet [73] с фокусом именно на решение задачи сегментирования объектов. То есть если на изображении находятся два объекта одного класса (например, два стула), каждый из них
Рисунок 1.5.1. Пример работы алгоритма сегментации объектов [61].
Одним из наиболее популярных датасетов для обучения данных архитектур является MSCOCO [74], содержащий более 200 000 изображений различных объектов с попиксельноц сегментацией объектов из 80 различных категорий.
Среди классов объектов такие, как человек, слон, стул, и тп. Для абсолютного большинства объектов в MSCOCO верно, что объекты непрозрачны. Это условие существенно упрощает процедуру сегментации для алгоритма. Тем не менее, человек все еще справляется существенно лучше компьютера в задаче сегментирования объектов, особенно в случаях зеркальных/прозрачных объектов, так как сегментирование таких объектов требует на порядок более качественную степень обобщения сцены нейросетью. При этом, стоит отметить, что даже человеку иногда трудно понять по изображению, как выглядит объект и к какому объекту относятся те или иные части изображения, особенно если изображение
полупрозрачное, например, как на рисунке 1.5.2.
Рисунок 1.5.2. Фото группы прозрачных объектов, собранных в кучу. Даже человеку трудно определить, какой пиксель относится к какому стеклянному
объекту на данном изображении.
В связи с этим параллельно развивались методы детектирования и сегментирования прозрачных объектов на изображении. Как правило, такие методы полагаются на некоторый дополнительный источник данных. Так, например, [66] показывает, как можно уточнить сегментирование прозрачного объекта с помощью светового поля. В публикациях [68,75,76] дополнительным источником данных является карта глубин от активного сенсора глубины. В [67] показывают детектирование прозрачных объектов, однако не пытаются сделать сегментирование. Наконец, были попытки использовать движение камеры для определения положения и формы прозрачного объекта [77].
Использование поляризации для сканирования прозрачного объекта уже было упомянуто ранее [3,7], однако использование поляризации для сегментирования - не исследованная гипотеза. Также новым направлением исследований в целом является совмещение поляризационных данных и сверточных нейросетей [78].
1.6. Использование поляризации света в прочих задачах вычислительного
имаджинга (computational imaging)
Поляризация активно используется и при решении некоторых других задач в области вычислительного имаджинга. Так, например, ряд исследователей анализировали использование поляризованного излучения для сканирования лица человека [44], определения поверхностной шероховатости и анизотропии [45], попиксельного определения отражательных свойств поверхности объекта с помощью круговой поляризации [46,47], а также для мультиракурсного сканирования лица в реальном времени [11]. Также поляризация использовалась для разделения мультилучевой информации во времяпролетных сканерах [48], дехейзинга изображений [13], реконструкции изображения по частям, в том числе для панорам [15], мультиплексинга [14], детектирования транспорта [49]. Также
поляризация активно использовалась для определения формы прозрачных объектов [50], формы поверхности океана [9], или для работы с подводным рассеянием [51]. Также полный обзор использования поляризации в вычислительном имаджинге приведен в [52,53].
1.7. Выводы к первой главе и постановка задач, которые должны быть
решены в диссертационной работе
Обзор уже существующих публикаций показывает, что поляризация занимает свою нижу в области компьютерного зрения и вычислительного имаджинга. Поляризация достаточно активно применялась для задач трехмерной реконструкции объектов. Тем не менее, ни один из существующих подходов ФиП не нашел своего массового применения в силу ряда причин. Данная диссертационная работа предлагает новый подход ФиП, решающий большинство проблем с предыдущими методами.
Также, поляризация никогда не применялась для задач сегментации объектов, хотя ее особенности и физические свойства позволяют предположить, что сегментация прозрачных объектов должна решаться точнее с использованием поляризации.
Целью данной диссертационной работы является расширение спектра задач компьютерного зрения, которые могут более точно решаться с помощью поляризации света, а именно: более качественная 3D реконструкция объектов, а также более точная сегментация прозрачных объектов.
Для реализации данных целей необходимо решить следующие задачи: 1. Разработать алгоритм трехмерной реконструкции объектов с использованием поляризации света, в комбинации с картой глубин. Сравнить данный алгоритм с уже существующими решениями качественно и количественно.
2. Разработать алгоритм разделения компонент света с использованием поляризации света. Сравнить с существующими методами качественно и количественно.
3. Разработать алгоритм сегментации прозрачных объектов с использованием поляризации света. Сравнить результаты работы с алгоритмом сегментации без использования поляризации света.
Глава 2. Совершенствование технологии 3Б сканирования с помощью ФиП
2.1. Увеличение точности и детализации карт глубин с помощью информации о поляризации отраженного света
Согласно уравнениям Френеля, свет, отразившийся от поверхности объекта, частично поляризуется, то есть его можно разделить на 2 компоненты: не поляризованную и поляризованную (с явно выделенной осью колебаний электромагнитной волны). Известно, что свойства отраженного света зависят от:
1. свойств поляризации падающего света,
2. ориентации нормали в точке отражения поверхности,
3. свойств материала поверхности.
Таким образом, в предположении неполяризованного падающего света и известного до определенной точности коэффициента преломления материала отражающей поверхности можно восстановить ориентации нормали поверхности объекта. Отметим здесь 2 ключевых фактора:
1. При определении ориентации нормалей есть ряд неопределенностей, таких как неопределенность азимута на п и неопределенность зенита на п /2.
2. Ориентация поверхности не определяет абсолютные размеры объекта. Таким образом, с помощью данного метода можно восстановить форму объекта с точностью до масштаба, и нельзя восстановить расстояние до него.
Данные ограничения делают непригодным использование исключительно поляризационного метода для сканирования трехмерных моделей людей и прочих объектов. Однако карта нормалей может быть использована для уточнения неточных карт глубин, полученных с помощью альтернативных методов, что и показано в описанном ниже методе.
Интенсивность света, отраженного от определенной точки объекта и поступившая в пиксель матрицы камеры, пройдя предварительно через поляризатор, может быть выражена в следующем виде:
(фр0) =
^тах + 1'тт , ^тах ^тт ,
+-"-С05(2(Фро1 - ф))
2
2
где фро1 - угол оси поляризатора, ф - фаза поляризованного света, 1тах и !тт - величины, показанные на рисунке 2.1.1. Таким образом, так как для аппроксимации синусоиды необходимо три уравнения, измерив значение интенсивности при трех разных углах поляризатора, возможно оценить неизвестные величины ф, 1тах и 1т1П. Решение данного уравнения производится в каждом пикселе сформированного на предыдущем шаге стека изображений линеаризацией с помощью замены переменных, а затем методом наименьших квадратов.
Угол поляризатора
Рисунок 2.1.1. Интенсивность измеренного в камере света в зависимости от
угла поляризатора [10]
I
После вычисления угла азимута производится вычисление зенита. Оценка угла зенита полагается на величину степени поляризации света, вычисляемой следующим образом:
Р =
I — I
lmax 1min I-max + Imin
Как и в случае с азимутом, тип отражения влияет на зависимость зенита от степени поляризации света. В случае зеркального отражения зависимость может быть записана следующим образом:
2 sin в tan в Vñ^—siin^e ^ п2 — sin2 в + tan2 в
где п - коэффициент преломления материала объекта, а в - угол зенита нормали к поверхности. Если известны коэффициент преломления материала, а также степень поляризации отраженного света, то можно найти угол зенита, решив уравнение выше.
Для рассеянного отражения уравнение, связывающее данные величины, выглядит несколько иначе:
-
(п--)2 sin2 в
Р= П)
-
2 + 2п2 — (п + -)2sin2 в + 4 cose VñF—siñte v w
В данном случае, выбор за основу модели отражения не играет большой роли, так как в дальнейшем производится коррекция угла зенита. Поэтому мы берем за основу модель рассеянного отражения, как более простую для обратного решения при вычислении зенита.
На последнем этапе алгоритма производится сшивка карты глубин, полученной с помощью стерео, активного стерео, времяпролетных методов и прочих методов захвата карт глубин с картой нормалей, полученной с помощью поляризации, с попутной коррекцией карты нормалей. Данная сшивка должна позволить увеличить детализацию карты глубин. Данный этап состоит из
нескольких последовательных шагов. Сначала производится коррекция низкочастотной п-неопределенности азимута, с помощью сгенерированной методом Ш деревьев карты нормалей из карты глубин. Вторым шагом производится коррекция высокочастотной п-неопределенности азимута. Затем корректируется искажение карты нормалей поляризации, связанное с погрешностью выбора коэффициента преломления объекта, то есть таким образом выправляется зенит-компонента нормали. И после этого полученная карта нормалей интегрируется вместе с картой глубины в едином оптимизационном алгоритме.
2.1.1. Коррекция низкочастотной п-неопределенности азимута
Пусть Б Е ЖМхМ - карта глубин объекта. Предложенная схема использования поляризации для уточнения карты глубин оперирует в пространстве нормалей, поэтому из карты глубин вычисляется карта нормалей:
Е щМхМх3 Для карты глубин Б производится преобразование в облако
точек:
и V ~\Т
Рх,у = -ТХ°Х,У -%Бх,у Бх,у ,
где и, V - координаты в пиксельном пространстве на карте глубин, Ух, Уу -фокусные расстояния в пикселях. Для каждой точки Рху находится J точек, для которых Евклидово расстояние до точки Рхуу меньше либо равно некоторого заданного расстояния. Таким образом, для каждой точки Рху находится группа точек в окрестности [Рху РХ1,У1 ■■■ Рх],у]}. Сформировав матрицу
Q =
РТ
гх,у
РТ
гх1,у1
РТ
Вычисление нормалей производится оптимизационным алгоритмом
N^ch = argmin\\(Q - Q)n\\l
П
где Q - матрица ^3 координат всех J точек, лежащих в заданном радиусе, а () - матрица Jx3, в каждом ряду которой находится центроида окрестности Q. Степень гладкости получившейся карты нормали контролируется с помощью радиуса окрестности для оптимизации.
Похожие диссертационные работы по специальности «Системный анализ, управление и обработка информации (по отраслям)», 05.13.01 шифр ВАК
Разработка и исследование оптико-электронных методов определения трехмерной формы объектов2014 год, кандидат наук Фесько, Юрий Александрович
Восстановление геометрических свойств трехмерных форм методами машинного обучения с приложением к инженерным задачам2023 год, кандидат наук Матвеев Альберт Антонович
Разработка и исследование метода и алгоритмов прецедентной идентификации фрагментов сканированного рукописного текста2019 год, кандидат наук Ефимов Никита Олегович
Алгоритмы и методы применения многокамерных систем кругового обзора в контуре управления мобильного робота2024 год, кандидат наук Варлашин Виктор Витальевич
Оптико-электронный комплекс для визуализации физических процессов в пристеночном слое жидкости2013 год, кандидат технических наук Павлов, Илья Николаевич
Список литературы диссертационного исследования кандидат наук Таамазян Ваге Арамаисович, 2019 год
Литература
1. Wolff, L., and Boult, T. Constraining object features using a polarization reflectance model. IEEE Transactions on Pattern Analysis and Machine Intelligence 13, 7 (1991), 635-657.
2. Rahmann, S. Polarization images: A geometric interpretation for shape analysis. In In Proc. of Intl. Conf. on Pattern Recognition (ICPR (2000), pp. 542-546.
3. Miyazaki, D., Saito, M., Sato, Y., and Ikeuchi, K. Determining surface orientations of transparent objects based on polarization degrees in visible and infrared wavelengths. J. Opt. Soc. Am. A 19, 4 (Apr 2002), 687-694.
4. Miyazaki, D., Tan, R., Hara, K., and Ikeuchi, K. Polarization-based inverse rendering from a single view. In Computer Vision, 2003. Proceedings. Ninth IEEE International Conference on (Oct 2003), pp. 982-987 vol.2.
5. Morel, O., Meriaudeau, F., Stolz, C., Gorria, P.: Polarization imaging applied to 3d reconstruction of specular metallic surfaces. Electronic Imaging (2005)
6. Saito, M., Sato, Y., Ikeuchi, K., Kashiwagi, H.: Measurement of surface orientations of transparent objects using polarization in highlight. Systems and Computers in Japan 32(5) (2001) 64-71
7. Miyazaki, D., Kagesawa, M., Ikeuchi, K.: Transparent surface modeling from a pair of polarization images. Pattern Analysis and Machine Intelligence, IEEE Transactions on 26(1) (2004) 73-82
8. Miyazaki, D., Shigetomi, T., Baba, M., Furukawa, R., Hiura, S., Asada, N.: Polarization-based surface normal estimation of black specular objects from multiple viewpoints. In: 3D Imaging, Modeling, Processing,
Visualization and Transmission (3DIMPVT), 2012 Second International Conference on, IEEE (2012) 104-111
9. Zappa, C.J., Banner, M.L., Schultz, H., Corrada-Emmanuel, A., Wolff, L.B., Yalcin, J.: Retrieval of short ocean wave slope using polarimetric imaging. Measurement Science and Technology 19(5) (2008) 055503
10.Gary A. Atkinson and Edwin R. Hancock. Recovery of surface orientation from diffuse polarization. IEEE Transactions on Image Processing, 15(6):1653-1664, 2006.
11.Ghosh, A., Fyffe, G., Tunwattanapong, B., Busch, J., Yu, X., Debevec, P.: Multiview face capture using polarized spherical gradient illumination. (2011)
12.Guarnera, G.C., Peers, P., Debevec, P., Ghosh, A.: Estimating surface normal from spherical stokes reflectance fields. ECCV Workshops (2012)
13.Schechner, Y.Y., Narasimhan, S.G., Nayar, S.K.: Instant dehazing of images using polarization. In: Computer Vision and Pattern Recognition, 2001. CVPR 2001. Proceedings of the 2001 IEEE Computer Society Conference on. Volume 1., IEEE (2001) I-325
14.Cula, O.G., Dana, K.J., Pai, D.K., Wang, D.: Polarization multiplexing and demultiplexing for appearance-based modeling. IEEE TPAMI (2007)
15.Schechner, Y.Y., Nayar, S.K.: Generalized mosaicing: Polarization panorama. IEEE TPAMI (2005)
16.Treibitz, T., Schechner, Y.Y.: Active polarization descattering. (2009)
17.Lanman, D., Wetzstein, G., Hirsch, M., Heidrich, W., Raskar, R.: Polarization fields: Dynamic light field display using multi-layer lcds. (2011)
18.Nayar, S.K., Fang, X.S., Boult, T.: Separation of reflection components using color and polarization. (1997)
19.Nishino, K., Zhang, Z., Ikeuchi, K.: Determining reflectance parameters and illumination distribution from a sparse set of images for view-dependent image synthesis. In: Computer Vision, 2001. ICCV 2001. Proceedings. Eighth IEEE International Conference on. Volume 1., IEEE (2001) 599-606
20.Jakob, W.: Mitsuba renderer (2010)
21.Madsen K., Nielsen H. B., Tingleff O. Methods for non-linear least squares problems. - 1999.
22.Bentley J. L. Multidimensional binary search trees used for associative searching //Communications of the ACM. - 1975. - Т. 18. - №. 9. - С. 509-517.
23.Таамазян В. А. Поляризация при смешанном отражении в задаче трехмерного сканирования объектов //Компьютерная оптика. - 2018. -Т. 42. - №. 5.
24.Rahmann S., Canterakis N. Reconstruction of specular surfaces using polarization imaging //Proceedings of the 2001 IEEE Computer Society Conference on Computer Vision and Pattern Recognition. CVPR 2001. -IEEE, 2001. - Т. 1. - С. I-I.
25.O'Toole M. et al. Temporal frequency probing for 5D transient analysis of global light transport //ACM Transactions on Graphics (ToG). - 2014. - Т. 33. - №. 4. - С. 87.
26.Zhang L., Hancock E. R. A comprehensive polarisation model for surface orientation recovery //Proceedings of the 21st International Conference on Pattern Recognition (ICPR2012). - IEEE, 2012. - С. 3791-3794.
27.Huynh C. P., Robles-Kelly A., Hancock E. Shape and refractive index recovery from single-view polarisation images //2010 IEEE Computer Society Conference on Computer Vision and Pattern Recognition. - IEEE, 2010. - C. 1229-1236.
28.Smith W. A. P., Ramamoorthi R., Tozza S. Linear depth estimation from an uncalibrated, monocular polarisation image //European Conference on Computer Vision. - Springer, Cham, 2016. - C. 109-125.
29.Atkinson G. A., Hancock E. R. Multi-view surface reconstruction using polarization //Tenth IEEE International Conference on Computer Vision (ICCV'05) Volume 1. - IEEE, 2005. - T. 1. - C. 309-316.
30.Robles-Kelly A., Huynh C. P. Imaging spectroscopy for scene analysis. -Springer Science & Business Media, 2012.
31.Stolz C., Kechiche A. Z., Aubreton O. Short review of polarimetric imaging based method for 3D measurements //Optics, Photonics and Digital Technologies for Imaging Applications IV. - International Society for Optics and Photonics, 2016. - T. 9896. - C. 98960P.
32.Ngo Thanh T., Nagahara H., Taniguchi R. Shape and light directions from shading and polarization //Proceedings of the IEEE conference on computer vision and pattern recognition. - 2015. - C. 2310-2318.
33.Nehab D. et al. Efficiently combining positions and normals for precise 3D geometry //ACM transactions on graphics (TOG). - 2005. - T. 24. - №. 3. - C. 536-543.
34.Wu C. et al. High-quality shape from multi-view stereo and shading under general illumination //CVPR 2011. - IEEE, 2011. - C. 969-976.
35.Zhang L. et al. Shape and motion under varying illumination: unifying multiview stereo, photometric stereo, and structure from motion //International Conference on Computer Vision. - 2003. - C. 618-625.
36.Joshi N., Kriegman D. J. Shape from varying illumination and viewpoint //2007 IEEE 11th International Conference on Computer Vision. - IEEE, 2007. - C. 1-7.
37.Esteban C. H., Vogiatzis G., Cipolla R. Multiview photometric stereo //IEEE Transactions on Pattern Analysis and Machine Intelligence. - 2008.
- T. 30. - №. 3. - C. 548-554.
38.Yu L. F. et al. Shading-based shape refinement of rgb-d images //Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. - 2013. - C. 1415-1422.
39.Han Y., Lee J. Y., So Kweon I. High quality shape from a single rgb-d image under uncalibrated natural illumination //Proceedings of the IEEE International Conference on Computer Vision. - 2013. - C. 1617-1624.
40.Wu C. et al. Real-time shading-based refinement for consumer depth cameras //ACM Transactions on Graphics (ToG). - 2014. - T. 33. - №. 6.
- C. 200.
41.Zhang Q. et al. Edge-preserving photometric stereo via depth fusion //2012 IEEE Conference on Computer Vision and Pattern Recognition. - IEEE, 2012. - C. 2472-2479.
42.Haque M. et al. High quality photometric reconstruction using a depth camera //Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. - 2014. - C. 2275-2282.
43.Shi B. et al. Photometric stereo using internet images //2014 2nd International Conference on 3D Vision. - IEEE, 2014. - T. 1. - C. 361368.
44.Ma W. C. et al. Rapid acquisition of specular and diffuse normal maps from polarized spherical gradient illumination //Proceedings of the 18th Eurographics conference on Rendering Techniques. - Eurographics Association, 2007. - C. 183-194.
45.Ghosh A. et al. Estimating specular roughness and anisotropy from second order spherical gradient illumination //Computer Graphics Forum. -Oxford, UK : Blackwell Publishing Ltd, 2009. - T. 28. - №. 4. - C. 11611170.
46.Ghosh A. et al. Circularly polarized spherical illumination reflectometry //ACM Transactions on Graphics (TOG). - 2010. - T. 29. - №. 6. - C. 162.
47.Guarnera G. C. et al. Estimating surface normals from spherical stokes reflectance fields //European Conference on Computer Vision. - Springer, Berlin, Heidelberg, 2012. - C. 340-349.
48.Wallace A. M. et al. Improving depth image acquisition using polarized light //International Journal of Computer Vision. - 1999. - T. 32. - №. 2. -C. 87-109.
49.Dickson C. N. et al. Long-wave infrared polarimetric cluster-based vehicle detection //JOSA A. - 2015. - T. 32. - №. 12. - C. 2307-2315.
50.Chen T. et al. Polarization and phase-shifting for 3D scanning of translucent objects //2007 IEEE conference on computer vision and pattern recognition. - IEEE, 2007. - C. 1-8.
51.Treibitz T., Schechner Y. Y. Active polarization descattering //IEEE transactions on pattern analysis and machine intelligence. - 2008. - T. 31. - №. 3. - C. 385-399.
52.Wolff L. B. Polarization vision: a new sensory approach to image understanding //Image and Vision computing. - 1997. - T. 15. - №. 2. - C. 81-93.
53.Zhao Y. et al. Multi-band polarization imaging and applications. -Springer, 2016.
54.Lin S., Shum H. Y. Separation of diffuse and specular reflection in color images //Proceedings of the 2001 IEEE Computer Society Conference on Computer Vision and Pattern Recognition. CVPR 2001. - IEEE, 2001. - T. 1. - C. I-I.
55.Lin S. et al. Diffuse-specular separation and depth recovery from image sequences //European conference on computer vision. - Springer, Berlin, Heidelberg, 2002. - C. 210-224.
56.Tan R. T., Nishino K., Ikeuchi K. Separating reflection components based on chromaticity and noise analysis //IEEE transactions on pattern analysis and machine intelligence. - 2004. - T. 26. - №. 10. - C. 1373-1379.
57.Tan R. T., Ikeuchi K. Separating reflection components of textured surfaces using a single image //Digitally Archiving Cultural Objects. -Springer, Boston, MA, 2008. - C. 353-384.
58.Zickler T. et al. Reflectance sharing: Predicting appearance from a sparse set of images of a known shape //IEEE Transactions on Pattern Analysis and Machine Intelligence. - 2006. - T. 28. - №. 8. - C. 1287-1302.
59.Girshick R. Fast r-cnn //Proceedings of the IEEE international conference on computer vision. - 2015. - C. 1440-1448.
60.Ren S. et al. Faster r-cnn: Towards real-time object detection with region proposal networks //Advances in neural information processing systems. -2015. - C. 91-99.
61.He K. et al. Mask r-cnn //Proceedings of the IEEE international conference on computer vision. - 2017. - C. 2961-2969.
62.Long J., Shelhamer E., Darrell T. Fully convolutional networks for semantic segmentation //Proceedings of the IEEE conference on computer vision and pattern recognition. - 2015. - C. 3431-3440.
63.Redmon J. et al. You only look once: Unified, real-time object detection //Proceedings of the IEEE conference on computer vision and pattern recognition. - 2016. - C. 779-788.
64.Liu W. et al. Ssd: Single shot multibox detector //European conference on computer vision. - Springer, Cham, 2016. - C. 21-37.
65.Ronneberger O., Fischer P., Brox T. U-net: Convolutional networks for biomedical image segmentation //International Conference on Medical image computing and computer-assisted intervention. - Springer, Cham, 2015. - C. 234-241.
66.Xu Y. et al. Transcut: Transparent object segmentation from a light-field image //Proceedings of the IEEE International Conference on Computer Vision. - 2015. - C. 3442-3450.
67.Khaing M. P., Masayuki M. Transparent Object Detection Using Convolutional Neural Network //International Conference on Big Data Analysis and Deep Learning Applications. - Springer, Singapore, 2018. -C. 86-93.
68.Guo-Hua C., Jun-Yi W., Ai-Jun Z. Transparent object detection and location based on RGB-D camera //Journal of Physics: Conference Series.
- IOP Publishing, 2019. - T. 1183. - №. 1. - C. 012011.
69.Zhao H. et al. Pyramid scene parsing network //Proceedings of the IEEE conference on computer vision and pattern recognition. - 2017. - C. 28812890.
70.Chen L. C. et al. Deeplab: Semantic image segmentation with deep convolutional nets, atrous convolution, and fully connected crfs //IEEE transactions on pattern analysis and machine intelligence. - 2017. - T. 40.
- №. 4. - C. 834-848.
71.Chen L. C. et al. Rethinking atrous convolution for semantic image segmentation //arXiv preprint arXiv: 1706.05587. - 2017.
72.Chen L. C. et al. Encoder-decoder with atrous separable convolution for semantic image segmentation //Proceedings of the European conference on computer vision (ECCV). - 2018. - C. 801-818.
73.Liu S. et al. Path aggregation network for instance segmentation //Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. - 2018. - C. 8759-8768.
74.Lin T. Y. et al. Microsoft coco: Common objects in context //European conference on computer vision. - Springer, Cham, 2014. - C. 740-755.
75.Alt N., Rives P., Steinbach E. Reconstruction of transparent objects in unstructured scenes with a depth camera //2013 IEEE International Conference on Image Processing. - IEEE, 2013. - C. 4131-4135.
76.Wang T., He X., Barnes N. Glass object segmentation by label transfer on joint depth and appearance manifolds //2013 IEEE International Conference on Image Processing. - IEEE, 2013. - C. 2944-2948.
77.Ben-Ezra M., Nayar S. K. What does motion reveal about transparency? //null. - IEEE, 2003. - C. 1025.
78.Ba Y. et al. Physics-based Neural Networks for Shape from Polarization //arXiv preprint arXiv: 1903.10210. - 2019.
79.Russakovsky O. et al. Imagenet large scale visual recognition challenge //International journal of computer vision. - 2015. - T. 115. - №. 3. - C. 211-252.
80.He K. et al. Deep residual learning for image recognition //Proceedings of the IEEE conference on computer vision and pattern recognition. - 2016. -C. 770-778.
81.Or-El R. et al. Rgbd-fusion: Real-time high precision depth recovery //Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. - 2015. - C. 5407-5416.
82.Kadambi A., Taamazyan, V., Shi, B., & Raskar, R. Depth sensing using geometrically constrained polarization normals //International Journal of Computer Vision. - 2017. - T. 125. - №. 1-3. - C. 34-51.
83.Geng J. Structured-light 3D surface imaging: a tutorial //Advances in Optics and Photonics. - 2011. - T. 3. - №. 2. - C. 128-160.
84.Photoneo PhoXi 3D Scanner XL: http: //www.photoneo .com/product-detail/phoxi-scan-xl/
85.Kadambi A., Schiel J., Raskar R. Macroscopic interferometry: Rethinking depth estimation with frequency-domain time-of-flight //Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. - 2016. -C. 893-902.
86.Leica Nova MS60 Datasheet: http://leica-geosystems.com/-/media/files/leicageosystems/products/datasheets/leica nova ms60 ds.ash x?la=en
87.Li L. et al. 3D cost aggregation with multiple minimum spanning trees for stereo matching //Applied Optics. - 2017. - Т. 56. - №. 12. - С. 34113420.
88.Zbontar J. et al. Stereo Matching by Training a Convolutional Neural Network to Compare Image Patches //Journal of Machine Learning Research. - 2016. - Т. 17. - №. 1-32. - С. 2.
89.Seitz S. M. et al. A comparison and evaluation of multi-view stereo reconstruction algorithms //2006 IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR'06). - IEEE, 2006. - Т. 1. - С. 519-528.
90. Козлов В. Л., Кузьмичев И. Р. Измеритель дальности и размерных параметров объектов на основе цифровой фотокамеры. - 2011.
91.Шубникова И. С., Палагута К. А. Анализ способов и алгоритмов определения параметров объекта и расстояния до него по изображению //Труды Международного симпозиума «Надежность и качество». - 2013. - Т. 1.
92.Козлов В. Л., Васильчук А. С. Субпиксельная обработка изображений для измерения дальности на основе цифровой фотокамеры //Приборы и методы измерений. - 2012. - №. 1 (4).
93.Herbort S., Wôhler C. An introduction to image-based 3D surface reconstruction and a survey of photometric stereo methods //3D Research. - 2011. - Т. 2. - №. 3. - С. 4.
94.Holroyd M. et al. A photometric approach for estimating normals and tangents //ACM Transactions on Graphics (TOG). - ACM, 2008. - Т. 27. -№. 5. - С. 133.
95.Yeung S. K. et al. Normal estimation of a transparent object using a video //IEEE transactions on pattern analysis and machine intelligence. - 2014. -Т. 37. - №. 4. - С. 890-897.
Приложение 1. Код обработки поляризационных данных на Python
import cv2 import numpy as np import numpy.matlib
from scipy.sparse import csr_matrix, vstack from scipy.sparse.linalg import spsolve from scipy.sparse.linalg import lsqr from scipy import signal import math
import matplotlib.pyplot as plt pi = 3.14159265
def polarimgs2norms (imgs, xvals, n, mask): ymax, xmax, imax = imgs.shape I = np.zeros((ymax,xmax)) ro = np.zeros((ymax,xmax)) phi = np.zeros((ymax,xmax)) theta = np.zeros((ymax,xmax)) B = np.zeros((imax,3))
for y in range(0,ymax): for x in range(0,xmax): if mask[y,x]==1:
yvals = np.zeros((1,imax)) for i in range(0,imax): yvals[0,i] = imgs[y,x,i]
B[i,:] = np.mat([1, math.cos(2*xvals[0,i]), math.sin(2*xvals[0,i])]) solth = 0
if (np.linalg.norm(yvals,1)==0): ro[y,x] = 0 theta[y,x] = 0 phi[y,x] = 0
continue x1 = np.linalg.solve(B,yvals.T) I[y,x] = 2*x1[0]
ro[y,x] = (2*((x1[1])**2 + (x1[2])**2)**(1/2))/I[y,x] r = ro[y,x]
phi[y,x] = math.atan2(x1[2],x1[1]) if (r>0) and (r<0.6):
alpha = (n-1/n)**2 + r*(n+1/n)**2 bb = 4*r*(n**2+1)*(alpha-4*r)
discr = bb**2 + 16*(r**2)*(16*(r**2)-alpha**2)*(n**2-1)**2 temp = ((-bb -discr**(1/2))/(2*(16*(r* *2)-alpha**2))) **(1/2) solth = math.asin(temp) theta[y,x] = solth return (phi, theta, ro)
def get_kdtree_normals(XYZ, objmask): N = np.zeros(XYZ.shape) NX = np.zeros(XYZ[:,:,0].shape) NY = np.zeros(XYZ[:,:,0].shape) NZ = np.zeros(XYZ[:,:,0].shape) ymax = XYZ[:,:,0].shape[0] xmax = XYZ[:,:,0].shape[1] thrsh = 5 r = 6
view_point = np.array([0,0,0])
for y in range(0, ymax): for x in range(0, xmax): if objmask[y,x]==0: continue
nbhood = np.array([XYZ[y,x,0], XYZ[y,x,1], XYZ[y,x,2]]) patch = XYZ[(y-r):(y+r),(x-r) :(x+r),:] for i in range(0, (2*r)**2): yy = i//(2*r)
xx = i%(2*r)
if 0<abs(XYZ[y,x,2]-patch[yy,xx,2])<thrsh: nbhood = np.vstack([nbhood, patch[yy,xx,:]]) if nbhood.shape[0]>2:
shnbhood = nbhood - numpy.matlib.repmat(np.mean(nbhood, axis=0),nbhood.shape[0],1)
u, s, vh = np.linalg.svd(shnbhood, full_matrices=True) normal = vh[2,:]
normal = np.divide(normal, np.linalg.norm(normal)) if np.dot(normal,(view_point-XYZ[y,x,:])) < 0:
normal = -normal NX[y,x] = normal[0] NY[y,x] = normal[1] NZ[y,x] = -normal[2] N[:,:,0] = NX N[:,:,1] = NY N[:,:,2] = NZ return N
def fuser(phi, objmask, azimuth): r = 2
ymax = phi.shape[0] xmax = phi.shape[1] ch_mask=np.zeros(phi .shape) phi_corr = phi.copy() for y in range(0,ymax): for x in range(0,xmax): if objmask[y,x]==0:
continue phixy = phi[y,x]
phi_patch = phi[(y-r):(y+r), (x-r):(x+r)] azimuth_patch = azimuth[(y-r):(y+r), (x-r):(x+r)] mask_patch = objmask[(y-r):(y+r), (x-r):(x+r)]
error = np.linalg.norm(np.multiply(mask_patch, (phi_patch-azimuth_patch))) error_pi_minus = np.linalg.norm(np.multiply(mask_patch, (phi_patch-pi-azimuth_patch)))
error_pi_plus = np.linalg.norm(np.multiply(mask_patch, (phi_patch+pi-azimuth_patch))) er = np.array([error, error_pi_minus, error_pi_plus]) if (np.min(er)==abs(error_pi_minus)) and (phixy>=0):
ch_mask[y,x] = 1 elif (np.min(er)==abs(error_pi_plus)) and (phixy<=0):
ch_mask[y,x] = 1 elif (abs(phixy-azimuth[y,x])>=2): ch_mask[y,x] = 1
if (ch_mask[y,x] == 1): if (phixy>=0):
phi_corr[y,x] = phixy - pi elif (phixy<0):
phi_corr[y,x] = phixy + pi return phi_corr
def normals (phi, theta): ymax = phi.shape[0] xmax = phi.shape[1] norms = np.zeros((ymax,xmax,3)) grad = np.zeros((ymax,xmax,3)) one = np.ones((ymax,xmax))
PX = np.multiply(np.cos(phi), np.sin(theta)) PY = np.multiply(np.sin(phi), np.sin(theta)) PZ = np.cos(theta)
norms[:,:,0] = PX norms[:,:,1] = PY norms[:,:,2] = PZ
grad[:,:,0] = np.divide(-PX, PZ) grad[:,:,1] = np.divide(-PY, PZ) grad[:,:,2] = -one
return (grad, norms)
def matlab_style_gauss2D(shape=(3,3),sigma=0.5): m,n = [(ss-1.)/2. for ss in shape] y,x = np.ogrid[-m:m+1,-n:n+1] h = np.exp( -(x*x + y*y) / (2.*sigma*sigma) ) h[ h < np.finfo(h.dtype).eps*h.max() ] = 0 sumh = h.sum() if sumh != 0: h /= sumh return h
def calculate_f_tensor(gx,gy,d11,d12,d21,d22): ymax = gx.shape[0] xmax = gx.shape[1]
gx1= gx*d11 gy1 = gy*d22
gx1 = np.pad(gx1, 1, mode='constant') gy1 = np.pad(gy1, 1, mode='constant')
gxx = np.zeros(gx1.shape)
gyy = gxx
for j in range(0,ymax+1): for k in range(0,xmax+1):
gyy[j+1,k] = gy1[j+1,k] - gy1[j,k] gxx[j,k+1] = gx1[j,k+1] - gx1[j,k]
f = gxx+gyy f = f[1:-1,1:-1]
gx1= gx*d12 gy1 =gy*d21
gx2= gy*d12 gy2 = gx*d21
gx2[-1,:] = gx1[-1,:] gy2[-1,:] = gy1[-1,:]
gx2[:,-1] = 0
gy2[-1,:] = 0
gx2 = np.pad(gx2, 1, mode='constant') gy2 = np.pad(gy2, 1, mode='constant') gxx = np.zeros(gx2.shape)
gyy = gxx
for j in range(0,ymax+1): for k in range(0,xmax+1):
gyy[j+1,k] = gy2[j+1,k] - gy2[j,k] gxx[j,k+1] = gx2[j,k+1] - gx2[j,k]
f2 = gxx+gyy f2 = f2[1:-1,1:-1]
f = f + f2 return f
def laplacian_matrix_tensor(H,W,D11,D12,D21,D22): D11 = np.pad(D11, 1, mode-constant') D12 = np.pad(D12, 1, mode-constant')
D21 = np.pad(D21, 1, mode-constant') D22 = np.pad(D22, 1, mode-constant')
N = (H+2)*(W+2) mask = np.zeros((H+2, W+2)) mask[1:-1,1:-1] = 1 idx = np.where(mask==1) idd = np.zeros((idx[0].shape[0],1)) for i in range(0,ldx[0].shape[0]): idd[i] = ldx[1][l]*(H+2)+ldx[0][l]
A = csr_matrlx((-D22[ldx][:, np.newaxls].T[0],(ldd.T[0],ldd.T[0]+1)),shape=[N,N]) A = A + csr_matrix((-D11[idx][:, np.newaxls].T[0],(ldd.T[0],ldd.T[0]+H+2)),shape=[N,N]) A = A + csr_matrlx((-D22[ldx[0],ldx[1]-1][:, np.newaxls].T[0],(ldd.T[0],ldd.T[0]-
1)),shape=[N,N])
A = A + csr_matrlx((-D11[ldx[0]-1,ldx[1]][:, np.newaxis].T[0],(idd.T[0],idd.T[0]-H-
2)),shape=[N,N])
A = A + csr_matrix((-D12[idx][:, np.newaxls].T[0],(ldd.T[0],ldd.T[0]+1)),shape=[N,N]) A = A + csr_matrlx((-D12[ldx[0]-1,ldx[1]][:, np.newaxls].T[0],(ldd.T[0],ldd.T[0]-H-2)),shape=[N,N])
A = A + csr_matrlx((D12[ldx[0]-1,ldx[1]][:, np.newaxls].T[0],(ldd.T[0],ldd.T[0]-H-2+1)),shape=[N,N])
A = A + csr_matrix((-D21[idx][:, np.newaxls].T[0],(ldd.T[0],ldd.T[0]+H+2)),shape=[N,N]) A = A + csr_matrlx((-D21[ldx[0],ldx[1]-1][:, np.newaxls].T[0],(ldd.T[0],ldd.T[0]-1)),shape=[N,N])
A = A + csr_matrix((D21[idx[0],idx[1]-1][:, np.newaxls].T[0],(ldd.T[0],ldd.T[0]-1+H+2)),shape=[N,N] )
A = A[ldd.T[0]][:,ldd.T[0]] N = A.shape[0] dd = np.sum(A,1).A1 idx = np.arange(N).T
A = A + csr_matrix((-dd,(idx,idx)),shape=[N,N]) return A
def fast_spanning_tree_integrator(nx,ny,dm,clambda,ro,calpha): ymax = ro.shape[0] xmax = ro.shape[1]
ww = matlab_style_gauss2D((3,3),0.5) T11 = signal.convolve2d(np.square(ro),ww,mode = 'same') T22 = signal.convolve2d(np.square(ro),ww,mode = 'same') T12 = signal.convolve2d(np.square(ro),ww,mode = 'same')
ImagPart = np.sqrt(np.square(T11-T22)+4*np.square(T12)) EigD_1 = (T22 + T11 + ImagPart)/2.0 EigD_2 = (T22 + T11 - ImagPart)/2.0 THRESHOLD_SMALL = 1*np.amax(EigD_1)/100.0
L1 = np.ones((ymax,xmax)) idx = np.where(EigD_1 > THRESHOLD_SMALL) L1[idx] = calpha + 1 - np.exp(-3.315/EigD_1[idx]**4) L2 = np.ones((ymax,xmax))
D11 = np.zeros((ymax,xmax)) D12 = np.zeros((ymax,xmax)) D22 = np.zeros((ymax,xmax)) # print ('Step 1 done') for y in range(0,ymax):
# if (y%200==0):
# print (y)
for x in range(0,xmax):
Wmat = np.array([[T11[y,x], T12[y,x]], [T12[y,x], T22[y,x]]]) d, v = np.linalg.eig(Wmat) if d[0]>d[1]: d1 = d.copy()
d1[0] = d[1] d1[1] = d[0] d = d1
v1 = v.copy() v1[:,0] = v[:,1] v1[:,1] = v[:,0] v = v1
d[0] = L2[y,x]
d[1] = L1[y,x]
dd = np.diag(d)
Wmat = v.dot(dd.dot(v.T))
D11[y,x] = Wmat[0,0] D22[y,x] = Wmat[1,1] D12[y,x] = Wmat[0,1]
# print ('Step 2 done')
A = laplacian_matrix_tensor(ymax,xmax,D11,D12,D12,D22)
# print (A.shape)
# print ('Step 3 done')
f = cal culate_f_tensor(nx,ny,D11,D12,D12,D22)
# Операции со sparse матрицами
A = A[:,1:]
# print (A.shape) f = f.flatten()
A_bot = csr_matrix((ymax*xmax, ymax*xmax))
A_bot_lil = A_bot.tolil()
for ii in range(0, ymax*xmax): A_bot_lil[ii,ii] = clambda
A_bot = A_bot_lil.tocsr()
A_bot = A_bot[:,1:]
f_bot = clambda * (-dm).flatten()
# print (A_bot.shape)
AA = vstack([A, A_bot])
ff = np.vstack([f[:, np.newaxis], f_bot[:, np.newaxis]])
# print ('Step 4 done')
# print (AA.shape, ff.shape) surface0 = lsqr(AA,ff.T)
surface = np.zeros((ymax*xmax,1)) surface[0,0] = 0 surface[1:,0] = surface0[0]
surface = surface.reshape((ymax,xmax))
# surface = surface - np.amin(surface) return surface
Приложение 2. Акт о внедрении результатов диссертационной работы
Обратите внимание, представленные выше научные тексты размещены для ознакомления и получены посредством распознавания оригинальных текстов диссертаций (OCR). В связи с чем, в них могут содержаться ошибки, связанные с несовершенством алгоритмов распознавания. В PDF файлах диссертаций и авторефератов, которые мы доставляем, подобных ошибок нет.