Depth Estimation
Оценка глубины определяет расстояние от камеры до каждого пикселя, формируя карту глубины по данным стереокамер, активных датчиков или одного изображения.
Оценка глубины — это задача компьютерного зрения, в которой для каждого пикселя изображения предсказывается расстояние от камеры до поверхности, изображенной этим пикселем. Результат — карта глубины, сетка расстояний размером с изображение, которая добавляет третье измерение, отсутствующее у плоской фотографии. Она дает роботам, транспортным средствам и устройствам дополненной реальности представление о трехмерной структуре сцены по изображениям обычных камер.
Способы определения глубины#
- Стереозрение: две откалиброванные камеры, расположенные на известном расстоянии друг от друга, видят каждую точку в немного разных горизонтальных позициях. Это смещение, называемое диспаратностью, дает глубину по формуле: фокусное расстояние × расстояние между камерами ÷ диспаратность. Поэтому расстояния до удаленных объектов с небольшой диспаратностью измеряются менее точно, а текстурные однородные поверхности, например белые стены, трудно сопоставить на двух изображениях.
- LiDAR и другие активные датчики: LiDAR измеряет время возврата лазерных импульсов и дает точные, но разреженные точки на большом расстоянии; камеры на основе времени пролета и структурированного света обеспечивают плотные карты глубины на небольшом расстоянии, преимущественно в помещениях. Эти датчики также дают эталонные данные для обучения моделей.
- Оценка глубины по одному изображению: нейросеть предсказывает глубину по одному изображению, используя такие признаки, как перспектива, известный размер знакомых объектов, градиенты текстуры и перекрытие объектов. Эта задача не имеет однозначного решения: игрушечная машинка крупным планом и настоящая машина вдали могут давать одинаковое изображение, поэтому модель опирается на усвоенные закономерности типичных сцен.
- Визуальная SLAM и другие методы с несколькими ракурсами: алгоритмы восстановления структуры по движению и визуальная SLAM определяют глубину, триангулируя точки между кадрами, снятыми из разных положений.
Оценка глубины с помощью глубокого обучения#
Обученные модели оценки глубины делятся на два типа. Модели относительной глубины предсказывают порядок и форму поверхностей с неизвестными масштабом и смещением, чего достаточно для таких эффектов, как размытие фона, и для определения, что находится ближе. MiDaS сделал этот подход применимым к самым разным сценам благодаря обучению на смешанных наборах данных, включая 3D-фильмы, с функцией потерь, инвариантной к масштабу и смещению; Depth Anything V2 обучает модели с 25 миллионами — 1,3 миллиардами параметров на синтетических метках и больших наборах реальных изображений с псевдометками. Модели метрической глубины предсказывают расстояния в метрах, которые нужны роботам и измерительным инструментам: Depth Pro от Apple создает карту метрической глубины с разрешением 2,25 мегапикселя за 0,3 секунды на стандартном GPU, не используя внутренние параметры камеры.
Модели глубины Ultralytics YOLO26 предсказывают метрическую глубину по одному изображению с помощью головы логарифмической глубины, выходные значения которой охватывают диапазон примерно от 0,02 до 150 метров. Поэтому одна модель подходит и для помещений глубиной в несколько метров, и для дорожных сцен с дальностью до 80 метров. Для загрузки модели, выполнения предсказания и сохранения результата достаточно нескольких строк:
from ultralytics import YOLO
# Load a YOLO26 monocular depth model
model = YOLO("yolo26n-depth.pt")
# Predict a depth map for one image
results = model("https://ultralytics.com/images/bus.jpg")
result = results[0]
# Per-pixel depth in meters, at the original image's resolution
depth = result.depth.data
print(f"Nearest {depth.min():.1f} m, farthest {depth.max():.1f} m")
# Save a colorized depth map blended over the photo
result.save(filename="depth_result.jpg")Выведенный диапазон показывает ближайшие и самые дальние поверхности, которые модель видит в уличной сцене, а сохраненное изображение окрашивает каждый пиксель в соответствии с предсказанным расстоянием.
Оценка точности#
Модели глубины оценивают по каждому пикселю, сравнивая предсказания с эталонными данными датчиков. Средняя абсолютная относительная ошибка (AbsRel) показывает среднюю ошибку в долях от истинной глубины, среднеквадратичная ошибка (RMSE) выражается в метрах, а δ1 — доля пикселей, для которых предсказание отличается от истинного значения не более чем в 1,25 раза. Стандартные бенчмарки — NYU Depth V2, набор сцен в помещениях, снятых датчиком Kinect, и KITTI, набор дорожных сцен с эталонными данными LiDAR, обычно оцениваемый на расстоянии до 80 метров. Перед оценкой предсказания относительной глубины выравнивают по масштабу и смещению относительно эталонных данных, поэтому итоговые показатели характеризуют только форму. Усреднение по всем пикселям также скрывает растекание глубины, когда предсказанная глубина размывается на границах объектов; поэтому в Depth Pro появились специальные метрики точности на границах.
Оценка глубины и смежные задачи#
- Обнаружение 3D-объектов: для каждого объекта предсказывает трехмерную рамку с положением, размером и направлением, часто используя глубину в качестве входных данных.
- Семантическая сегментация: назначает каждому пикселю метку класса; вместе с картой глубины она сообщает роботу, что представляет собой каждая поверхность и насколько далеко она находится.
- 3D-реконструкция: создает полную сетку или облако точек сцены, обычно объединяя данные о глубине с множества ракурсов.
Примеры применения в реальных условиях#
- Системы помощи водителю и автономное вождение: оценка глубины по камерам дополняет обнаруженные автомобили и пешеходов оценками расстояния, заменяя LiDAR или работая вместе с ним.
- Робототехника: для захвата объектов и навигации нужно знать расстояние до каждой поверхности; оценка глубины по одной RGB-камере позволяет небольшим роботам обходиться без дополнительных датчиков.
- Дополненная реальность: карты глубины позволяют правильно скрывать виртуальные объекты за реальными и размещать их на реальных поверхностях.
- Фотография: в портретном режиме телефона фон размывается на основе глубины, полученной с двух камер, датчиков Dual Pixel или монокулярной модели; степень размытия задается расчетным расстоянием для каждого пикселя.










