Yolo Vision Shenzhen
Шэньчжэнь
Присоединиться сейчас

Что такое монокулярная оценка глубины? Обзор

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

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

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

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

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

Изучая визуальные сигналы, такие как размер объекта, перспектива, текстура и затенение, эти модели могут предсказывать глубину без использования дополнительных датчиков, таких как LiDAR (Light Detection and Ranging) или стереокамеры. В этой статье мы рассмотрим, что такое монокулярная оценка глубины, как она работает и некоторые из ее реальных применений. Приступим!

Краткое введение в монокулярную оценку глубины

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

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

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

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

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

Рис. 1. Пример прогнозируемой карты глубины, созданной с помощью монокулярной оценки глубины (Источник)

От датчиков к изображениям: оценка глубины

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

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

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

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

В отличие от этого, монокулярная оценка глубины определяет глубину, используя только одно RGB-изображение. Поскольку она не зависит от нескольких камер или специальных датчиков, ее проще внедрять в больших масштабах, и она является хорошим вариантом, когда стоимость и аппаратные ресурсы ограничены. 

Обучение глубине на основе одного изображения

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

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

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

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

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

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

Классические и геометрические подходы

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

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

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

Ранние подходы к машинному обучению

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

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

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

Алгоритмы глубокого обучения

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

Многие подходы построены с использованием сверточных нейронных сетей (CNN), типа нейронных сетей, предназначенных для обработки изображений путем обнаружения таких паттернов, как края и формы. Эти модели часто используют схему «кодер-декодер»: кодер извлекает визуальные характеристики из изображения, а декодер преобразует эти характеристики в карту глубины. Обработка изображения в нескольких масштабах помогает модели уловить общую компоновку сцены, при этом сохраняя четкие границы объектов.

Более поздние модели сосредоточены на понимании взаимосвязей между различными частями изображения. Модели на основе трансформеров и Vision Transformer (ViT) используют механизмы внимания, которые позволяют модели определять, какие области изображения являются наиболее релевантными, и связывать между собой удаленные области. Это помогает модели построить более последовательное понимание глубины во всей сцене.

Некоторые системы сочетают обе идеи. Гибридные модели CNN–Transformer используют CNN для захвата мелких локальных деталей и Transformers для моделирования глобального контекста сцены. Хотя это часто повышает точность, обычно требует больше вычислительных ресурсов, таких как дополнительная память и вычислительная мощность.

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

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

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

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

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

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

Как работают монокулярные модели оценки глубины

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

  • Ввод и предварительная обработка: Рабочий процесс начинается с ввода изображения. Перед передачей в модель исходное изображение обычно изменяется по размеру, нормализуется и преобразуется в tensor, который является форматом, используемым нейронными сетями для эффективной обработки данных изображений.
  • Извлечение признаков: сеть кодировщика анализирует изображение для извлечения значимых визуальных признаков. Эти признаки фиксируют такую информацию, как текстуры, границы объектов и общая компоновка сцены. Большинство моделей работают в нескольких масштабах, чтобы понимать как мелкие детали, так и общую структуру.
  • Глубинное рассуждение: Используя извлеченные особенности, модель объединяет локальные детали с глобальным контекстом, чтобы рассуждать о пространственных отношениях в сцене. На этом этапе она учится определять, какие области изображения находятся ближе к камере, а какие — дальше.
  • Генерация карты глубины: декодер затем преобразует эту информацию в плотную карту глубины. Каждому пикселю изображения присваивается значение глубины, часто путем смешивания прогнозов из разных масштабов для повышения точности и согласованности.

Как обучаются монокулярные модели оценки глубины

Процесс, который мы только что обсудили, предполагает, что у нас уже есть обученная или предварительно обученная модель. Но как на самом деле работает обучение монокулярной модели оценки глубины?

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

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

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

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

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

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

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

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

Новые модели, как видно из недавних исследований, опубликованных на arXiv, больше фокусируются на глобальном контексте, что приводит к более стабильным и реалистичным прогнозам глубины. Хорошо известные модели, такие как MiDaS и DPT, способствовали этому сдвигу, обучаясь глубине на основе разнообразных наборов данных с высоким разрешением и хорошо обобщаясь на многих сценах. 

Более поздние модели, включая ZoeDepth и Depth Anything V2, основываются на этой работе, улучшая согласованность масштаба при сохранении высокой производительности в широком диапазоне настроек. Такой прогресс часто измеряется с помощью общих наборов данных для тестирования, таких как KITTI и NYU, которые охватывают как наружные, так и внутренние сцены. 

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

Приложения для монокулярной оценки глубины

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

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

Картирование местности и навигация с помощью дронов

Дроны часто работают в условиях, когда сигналы GPS ненадежны, например, в лесах, на строительных площадках, в зонах бедствий или в густонаселенных городских районах. Чтобы безопасно летать в таких условиях, им необходимо понимать окружающий рельеф и знать, на каком расстоянии находятся препятствия. Раньше для этого обычно требовалось добавлять датчики, такие как LiDAR или стереокамеры, что увеличивало вес, энергопотребление и общую стоимость.

Монокулярная оценка глубины — более простая альтернатива. Используя всего одну RGB-камеру, дроны могут оценивать глубину по изображениям и формировать базовое трехмерное представление о своем окружении. Это позволяет им detect , такие как здания, деревья или резкие изменения рельефа, и корректировать траекторию полета в режиме реального времени.

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

Рис. 2. Монокулярная оценка глубины может использоваться для анализа изображений, полученных с помощью дронов (Источник)

Заполнение слепых зон для автономных гоночных автомобилей

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

Монокулярная оценка глубины может помочь восполнить эти пробелы, предоставляя подробную информацию о глубине на основе одного RGB-изображения, даже если данные LiDAR являются неполными. Рассмотрим сценарий, в котором самоуправляемый автомобиль на высокой скорости приближается к вершине холма. Лучи LiDAR могут проходить мимо дороги за вершиной, оставляя неопределенность относительно того, что находится впереди. 

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

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

Роботизированная навигация и обход препятствий

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

Монокулярная оценка глубины может обеспечить такое пространственное восприятие с помощью одной RGB-камеры, без использования тяжелого или дорогостоящего оборудования. Изучая визуальные сигналы, такие как масштаб и перспектива, модели оценки глубины могут генерировать плотные карты глубины окружающей среды. Это дает роботам четкое представление о расстоянии до поверхностей и объектов.

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

Рис. 4. Обнаружение объектов с помощью монокулярной оценки глубины и обнаружения объектов (Источник)

Плюсы и минусы монокулярной оценки глубины

Вот некоторые из основных преимуществ использования монокулярной оценки глубины:

  • Легкость и энергоэффективность: использование одной камеры снижает вес системы и энергопотребление, что особенно важно для мобильных роботов, дронов и встроенных систем.
  • Совместимость с сенсорной интеграцией: монокулярная глубина может дополнять другие датчики, такие как LiDAR или радар, заполняя пробелы или обеспечивая избыточность.
  • Работает во многих средах: один и тот же подход на основе камеры можно использовать в помещениях, на открытом воздухе и на разных платформах без необходимости изменения оборудования.

Хотя монокулярная оценка глубины имеет очевидные преимущества, следует учитывать некоторые ограничения:

  • Меньшая точность по сравнению с активными датчиками: несмотря на быстрое совершенствование, монокулярная оценка глубины, как правило, не может сравниться с абсолютной точностью датчиков LiDAR или датчиков структурированного света в контролируемых условиях.
  • Чувствительность к условиям освещения: производительность может снижаться в условиях слабого освещения, сильных теней, бликов или сцен с плохой текстурой.
  • Проблемы обобщения: модель, обученная в одной среде, не всегда может быть надежно перенесена в неизвестные области без адаптации или тонкой настройки.

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

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

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

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

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

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

Основные выводы

Монокулярная оценка глубины — это метод компьютерного зрения, который позволяет машинам оценивать расстояние до объектов, используя только изображение с одной камеры. Изучая визуальные признаки, такие как перспектива, размер объекта, текстура и затенение, эти модели искусственного интеллекта могут определять трехмерную структуру сцены без использования датчиков, таких как LiDAR или стереокамеры. Это делает монокулярную оценку глубины экономичным и масштабируемым подходом для таких приложений, как автономное вождение, робототехника и понимание трехмерных сцен.

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

Давайте строить будущее
ИИ вместе!

Начните свой путь в будущее машинного обучения

Начать бесплатно