Построение карты относительной глубины по одному изображению в режиме реального времени | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 11 мая, печатный экземпляр отправим 15 мая.

Опубликовать статью в журнале

Автор:

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №9 (456) март 2023 г.

Дата публикации: 06.03.2023

Статья просмотрена: 156 раз

Библиографическое описание:

Копанев, Р. А. Построение карты относительной глубины по одному изображению в режиме реального времени / Р. А. Копанев. — Текст : непосредственный // Молодой ученый. — 2023. — № 9 (456). — С. 20-23. — URL: https://moluch.ru/archive/456/100532/ (дата обращения: 27.04.2024).



В настоящей работе представлено программное решение задачи определения относительной глубины по одному изображению в режиме реального времени. Представленное решение было реализовано на основе программной модели «DPT» группы моделей «MiDaS» при помощи программной библиотеки «OpenCV».

Ключевые слова : карта относительной глубины, PyTorch, OpenCV, MiDaS, DPT.

Введение

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

Данная информация, например, может иметь применение для определения ориентации в окружающем пространстве беспилотных робототехнических комплексов.

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

Карту относительной глубины также может быть получена с использованием искусственных нейронных сетей. Одним из готовых решений является группа моделей «MiDaS» [2], реализованная на основе программной библиотеки «PyTorch». Модели «MiDaS» предназначены для вычисления относительной глубины по одному изображению. Программные модели были обучены на 10 различных наборах данных, включающие данные, полученные с использованием стереоскопического метода. Различные наборы данных, содержащие информацию о глубине, несовместимы с точки зрения масштаба и смещения. «MiDaS» вводит новую функцию потерь, которая позволяет устранить проблемы совместимости и позволяя одновременно использовать для обучения несколько наборов данных из различных источников [3].

Представленное программное решение будет основываться на программной модели «DPT», представленной компанией Intel Corp.

Основная часть

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

Загрузка модели и преобразований

Для передачи кадра в модель необходимо изначально произвести наладку программной модели. Затем произвести подготовку входного кадра.

Для подготовки входного кадра к передаче необходимо произвести над ним определенные преобразования. Загрузка модели и преобразований представлена в листинге 1.

Листинг 1. Загрузка модели и преобразований

1

2

3

4

5

6

7

model_type = "DPT_Large"

model = torch.hub.load("intel-isl/MiDas", model_type)

midas_transforms = torch.hub.load("intel-isl/MiDas", "transforms")

if model_type == "DPT_Large" or model_type == "DPT_Hybrid":

transform = midas_transforms.dpt_transform

else:

transform = midas_transforms.small_transform

В данном случае используется программная модель «DPT-Large».

В зависимости от установленной программной модели производится выбор необходимого типа преобразования.

Загрузка входного кадра

Для загрузки входного кадра применяется программная библиотека «OpenCV». Для загрузки кадра необходимо создать объект захвата видео VideoCapture [4]. Исходный программный код представлен в листинге 2.

Листинг 2. Загрузка входного кадра

1

2

3

cap = cv2.VideoCapture(0)

if not cap.isOpened()

exit()

Для получения кадра из видео применятся функция VideoCapture().read() .

Прогнозирование и обработка выходных данных

Для прогнозирования изначально производится передача преобразованных данных входного кадра в модель. После прогнозирования результата производится преобразование полученных выходных данных к исходному размеру. В завершении производится нормализация выходных данных для визуализации. Исходный программный код представлен в листинге 3.

Листинг 3. Прогнозирование и обработка выходных данных

1

2

3

4

5

6

7

8

9

10

11

12

while True:

retval, frame = cap.read()

if not retval:

break

input_batch = transform(frame)

with torch.no_grad():

predict = model(input_batch)

predict = torch.nn.functional.interpolate(predict.unsqueeze(1),

size=frame.shape[:2], mode="bilinear")

predict = predict.squeeze()

predict = torch.nn.functional.normalize(input=predict, p=3)

output = predict.numpy()

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

аб

Рис. 1. Результат определения относительной глубины для входного кадра при помощи программной модели «DPT-Large» группы «MiDaS»: a — пример входного кадра («Руины Пальмиры»); б — полученная карта относительной глубины ( mode=«bilinear »)

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

Чем дальше распложены объекты от плоскости камеры, тем они более темнее. Объекты, расположенные ближе к камере — более светлее.

Соответствующая карта глубины для рассмотренного примера в трехмерной системе координат представлена на рисунке 2.

Соответствующая карта глубины для рассмотренного входного кадра в трехмерной системе координат

Рис. 2. Соответствующая карта глубины для рассмотренного входного кадра в трехмерной системе координат

Представленная карта глубины в трехмерной системе координат приведена в сокращенном виде. В данном случае количество точек сокращено на 100 единиц.

Заключение

В результате выполнения настоящей работы было представлено программное решение задачи определения относительной глубины по оному кадру в режиме реального времени. Представленное решение было реализовано на основе программной модели «DPT-Large» группы моделей «MiDaS» при помощи программной библиотеки «OpenCV». Применение искусственных нейронных сетей в решении задачи построения карты относительной глубины позволяет производить вычисления глубины с применением одного изображения, в отличии от стереоскопического метода, который использует два изображения в качестве входной информации об объекте и который дополнительно требует точной наладки и настройки оборудования для захвата кадра. Рассмотренная программная модель «DPT» является практичным средством для решения задачи вычисления относительной глубины по одному изображению.

Литература:

  1. Gary Bradski. Learning OpenCV 3 / Gary Bradski, Adrian Kaehler. O'Reilly Media. — 2016. — 1024 с. — [Электронный ресурс]. Режим доступа: https://www.oreilly.com/library/view/learning-opencv-3/9781491937983/?_gl=1*du23ls*_ga*MTMwNzc2NzkyNy4xNjc3ODI3MjM5*_ga_092EL089CH*MTY3NzgyNzIzOS4xLjEuMTY3NzgyNzUwMy42MC4wLjA
  2. MIDAS: MiDaS models for computing relative depth from a single image. [Электронный ресурс]. Режим доступа: https://pytorch.org/hub/intelisl_midas_v2/
  3. René Ranftl. Towards Robust Monocular Depth Estimation: Mixing Datasets for Zero-shot Cross-dataset Transfer / René Ranftl, Katrin Lasinger, David Hafner, Konrad Schindler, Vladlen Koltun. — 2020. — 14 c. — [Электронный ресурс]. Режим доступа: https://arxiv.org/abs/1907.01341
  4. Jan Erik Solem. Programming Computer Vision with Python / Jan Erik Solem. O'Reilly Media. — 2012. — 272 с. — [Электронный ресурс]. Режим доступа: https://www.oreilly.com/library/view/programming-computer-vision/9781449341916/
Основные термины (генерируются автоматически): относительная глубина, входной кадр, программная модель, программная библиотека, группа моделей, загрузка модели, реальное время, трехмерная система координат, исходный программный код, стереоскопический метод.


Ключевые слова

OpenCV, карта относительной глубины, PyTorch, MiDaS, DPT

Похожие статьи

Основные принципы создания 3D-моделей. Понятия и методы...

Трёхмерное моделирование — это процесс создания трёхмерной модели объекта.

– Анимация по ключевым кадрам состоит из множества коротких сегментов.

Следующий популярный метод оптимизации 3D-объектов — редукция полигонов готовых моделей.

Ещё один важный метод оптимизации 3D-моделей — оптимизация путем удаления невидимых...

Автономная система ориентирования беспилотного летательного...

Программно-пилотируемые БЛА (2 класса) — автономные воздушные роботы.

4-й этап — получение трехмерной геометрической модели.

Если 3D-лазерные сканеры, дают возможность получать 3D-модель окружающей среды, то 2D-лазерные сканеры

Алгоритм из этой библиотеки позволяет строить карту глубины по двум изображениям стереопары [12].

Разработка программного обеспечения для промышленной видео...

Библиографическое описание: Мартынов, И. А. Разработка программного обеспечения для

Кроме того, необходим доступ к исходному коду с целью совершенствования программного

Для графического представления изображения реализован метод аппаратно-независимого

CamCap поддерживает частоту кадров до 40 Гц в зависимости от модели камеры и режима...

Распознавание и извлечение 3D-моделей по двумерным...

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

Моделирование операционной системы реального времени...

Определяется, какие действия происходят в системе, какие состояния предшествовали этим действиям и какие состояния примет система после выполнения действия. Выполнения событийной модели в сетях Петри описывает поведение реальной системы во времени.

Необходимость создания единой структуры цифровой модели...

Она состоит из цифровой модели рельефа местности (ЦМРМ) и цифровой модели контуров

Исходными данными для создания цифровых моделей местности является совокупность

Для построения цифровой модели местности система позволяет различным образом выполнить

В отличие от программного комплекса CREDO, ArcGIS не является специализированным...

Оптимизация времени проектирования с использованием...

Наиболее мощные (тяжелые) программные системы сквозного проектирования и

Их общее назначение — создание трехмерных моделей деталей и сборочных изделий.

- построение математических моделей оптимизации и разработка машинных алгоритмов; - создание или заимствование программного обеспечения решения задач оптимизации

Обзор программ для визуализации медицинских данных

3D-ДОКТОР создает 3D модели поверхности и 2D сечения изображения в реальном

3D Slicer распространяется бесплатно с открытым исходным кодом (лицензия BSD), и представляет

Visualization Toolkit (ВТК) имеет открытый исходный код, является программным

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

Аппаратные и программные средства систем реального времени

 Статья посвящена автоматизированным системам управления реального времени, их аппаратным и программным средствам. Ключевые слова: автоматизированные системы управления, системы реального времени, аппаратные средства, программные средства.

Похожие статьи

Основные принципы создания 3D-моделей. Понятия и методы...

Трёхмерное моделирование — это процесс создания трёхмерной модели объекта.

– Анимация по ключевым кадрам состоит из множества коротких сегментов.

Следующий популярный метод оптимизации 3D-объектов — редукция полигонов готовых моделей.

Ещё один важный метод оптимизации 3D-моделей — оптимизация путем удаления невидимых...

Автономная система ориентирования беспилотного летательного...

Программно-пилотируемые БЛА (2 класса) — автономные воздушные роботы.

4-й этап — получение трехмерной геометрической модели.

Если 3D-лазерные сканеры, дают возможность получать 3D-модель окружающей среды, то 2D-лазерные сканеры

Алгоритм из этой библиотеки позволяет строить карту глубины по двум изображениям стереопары [12].

Разработка программного обеспечения для промышленной видео...

Библиографическое описание: Мартынов, И. А. Разработка программного обеспечения для

Кроме того, необходим доступ к исходному коду с целью совершенствования программного

Для графического представления изображения реализован метод аппаратно-независимого

CamCap поддерживает частоту кадров до 40 Гц в зависимости от модели камеры и режима...

Распознавание и извлечение 3D-моделей по двумерным...

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

Моделирование операционной системы реального времени...

Определяется, какие действия происходят в системе, какие состояния предшествовали этим действиям и какие состояния примет система после выполнения действия. Выполнения событийной модели в сетях Петри описывает поведение реальной системы во времени.

Необходимость создания единой структуры цифровой модели...

Она состоит из цифровой модели рельефа местности (ЦМРМ) и цифровой модели контуров

Исходными данными для создания цифровых моделей местности является совокупность

Для построения цифровой модели местности система позволяет различным образом выполнить

В отличие от программного комплекса CREDO, ArcGIS не является специализированным...

Оптимизация времени проектирования с использованием...

Наиболее мощные (тяжелые) программные системы сквозного проектирования и

Их общее назначение — создание трехмерных моделей деталей и сборочных изделий.

- построение математических моделей оптимизации и разработка машинных алгоритмов; - создание или заимствование программного обеспечения решения задач оптимизации

Обзор программ для визуализации медицинских данных

3D-ДОКТОР создает 3D модели поверхности и 2D сечения изображения в реальном

3D Slicer распространяется бесплатно с открытым исходным кодом (лицензия BSD), и представляет

Visualization Toolkit (ВТК) имеет открытый исходный код, является программным

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

Аппаратные и программные средства систем реального времени

 Статья посвящена автоматизированным системам управления реального времени, их аппаратным и программным средствам. Ключевые слова: автоматизированные системы управления, системы реального времени, аппаратные средства, программные средства.

Задать вопрос