
Apple выпустила Depth Pro — модель компьютерного зрения, которая строит карты глубины из одного RGB-изображения без данных о камере, фокусном расстоянии или EXIF. Модель опубликована с открытым исходным кодом на GitHub, код, веса и препринт доступны для загрузки.
Depth Pro решает задачу monocular depth estimation — восстановление глубины по одному кадру. В отличие от многих современных решений, она не требует метаданных камеры и работает на произвольных снимках, включая изображения из интернета, сгенерированные нейросетями или архивные фотографии без EXIF.
Архитектура и принцип работы
Depth Pro построена на основе Vision Transformer (ViT) с модификациями для работы с высоким разрешением. Модель обрабатывает изображение целиком, а не фрагментами, что позволяет избежать артефактов на границах окон. Авторы из Apple использовали multi-scale feature extraction и обучали модель на комбинации синтетических и реальных датасетов с контролируемой глубиной.
Ключевые технические характеристики:
– Время вывода — 0,3 секунды на кадр на потребительском GPU (NVIDIA V100).
– Выходное разрешение карты глубины совпадает с разрешением входного изображения.
– Модель не требует калибровки камеры или знания фокусного расстояния.
– Поддерживаются изображения произвольного размера без изменения пропорций.
В статье авторы подчёркивают, что модель даёт метрически точные карты, а не только относительные. Это важно для приложений, где нужны реальные расстояния, а не просто ранжирование объектов по удалённости.
Сравнение с популярными аналогами
Чтобы понять, стоит ли использовать Depth Pro в вашем проекте, рассмотрим её позиционирование на рынке open-source моделей оценки глубины.
| Модель | Время вывода | Требует метаданных камеры | Разрешение карты | Открытый код |
|---|---|---|---|---|
| Depth Pro (Apple) | 0,3 с | Нет | Равно входному | Да |
| MiDaS v3.1 | 0,5–1 с | Нет | Фиксированное | Да |
| ZoeDepth | 0,4–0,8 с | Да | Фиксированное | Да |
| DPT (Intel) | 0,6–1,2 с | Нет | Равно входному | Да |
| Depth Anything V2 | 0,3–0,7 с | Нет | Равно входному | Да |
Depth Pro показывает конкурентные результаты на бенчмарках NYU Depth v2 и KITTI, особенно в режиме zero-shot — без дообучения на целевом датасете. Однако на KITTI модель ZoeDepth с калибровкой камеры всё ещё опережает Depth Pro по метрике RMSE.
Практические сценарии применения
Depth Pro решает задачи, в которых нужна быстрая и точная оценка глубины без аппаратной привязки. Вот где модель уже находит применение:
- Автономная навигация роботов и дронов — один RGB-кадр позволяет построить карту препятствий без LiDAR.
- AR/VR-приложения — глубина сцены восстанавливается из фотографии для наложения виртуальных объектов.
- Предобработка изображений — карты глубины улучшают сегментацию и 3D-реконструкцию.
- Анализ медицинских и спутниковых снимков — EXIF-информация часто недоступна или недостоверна.
- Аугментация датасетов — Depth Pro генерирует синтетические карты глубины для обучения других моделей.
Открытая лицензия позволяет встраивать модель в коммерческие и исследовательские проекты без ограничений. Разработчики уже интегрируют Depth Pro в пайплайны для обработки видео в реальном времени.
Известные ограничения и подводные камни
Авторы честно перечисляют сценарии, где Depth Pro может давать неточные результаты:
- Сцены с сильной прозрачностью, отражениями или однородными текстурами без границ.
- Пиксели за пределами видимого спектра — например, через дым, туман или воду.
- Экзотические сцены, далёкие от обучающих датасетов — zero-shot-режим не гарантирует метрической точности.
На бенчмарках Depth Pro уступает специализированным моделям, которые обучались на конкретном датасете с известной калибровкой камеры. Например, ZoeDepth с дообучением на KITTI показывает RMSE на 15% ниже, чем Depth Pro в zero-shot-режиме.
Сообщество GitHub уже сообщает об ошибках при сборке на Windows и несовместимости с некоторыми версиями PyTorch. Документация на момент публикации ограничена — нет подробных примеров для batch-обработки или интеграции с ONNX.
Пошаговая инструкция по запуску
Репозиторий Depth Pro на GitHub (apple/ml-depth-pro) содержит инструкции по установке, веса модели и скрипты для запуска на одном изображении. Вот минимальный набор шагов:
Клонируйте репозиторий: `git clone https://github.com/apple/ml-depth-pro.git`
Установите зависимости: `pip install -r requirements.txt`
3. Скачайте веса модели (примерно 2 ГБ) через скрипт `download_weights.sh`
4. Запустите инференс: `python run.py –image path/to/image.jpg`
5. Результат сохранится в формате PNG карты глубины с 16-битным значением.
Рекомендуется тестировать модель на собственных данных перед интеграцией в продакшн — особенно если сцена отличается от типичных датасетов. Для batch-обработки потребуется написать собственный скрипт, так как встроенной поддержки нет.
Что выбрать: Depth Pro или альтернативы
Выбор модели зависит от вашей задачи:
- Если метаданные камеры отсутствуют или варьируются — Depth Pro или MiDaS v3.1.
- Если камера фиксирована и известно фокусное расстояние — ZoeDepth или DPT с дообучением дадут более высокую точность.
- Если важна скорость и разрешение карты глубины — Depth Pro оптимален благодаря времени вывода 0,3 с и полному разрешению.
- Если нужна поддержка Windows или ONNX — пока лучше смотреть в сторону Depth Anything V2, у которого более зрелая экосистема.
Depth Pro — универсальный инструмент для случаев, когда метаданные отсутствуют или варьируются от снимка к снимку. Для задач с фиксированной камерой и известным фокусным расстоянием специализированные модели могут дать более высокую точность. Репозиторий активно развивается, и сообщество GitHub уже предлагает исправления для Windows и расширения функциональности.
