Distill-Any-Depth - метод обучения моделей монокулярной оценки глубины, который сочетает кросс-контекстную дистилляцию и мульти-учительский подход для точного определения расстояния до объектов на RGB-изображении. Он предназначен для обучения моделей (например, DPT, MiDaS или DepthAnythingv2), которые учатся на псевдо-метках, сгенерированных учительскими моделями (Genpercept, DepthAnythingv2).
Метод не просто улучшает существующие алгоритмы, но и задает новый стандарт в области определения глубины. Методика может применяться в сфере автономного транспорта и AR-решений. Она может ускорить создание точных 3D-карт для навигации и улучшить реалистичность виртуальных миров за счет детализированного анализа пространства. При этом, обучение CV-моделей с Distill-Any-Depth довольно энергоэффективно — достаточно одной NVIDIA V100.
Основа Distill-Any-Depth - кросс-контекстная дистилляция, объединяющая 2 сценария:
🟠
Shared-Context Distillation — модель-учитель и модель-ученик обучаются на одинаковых фрагментах изображения.🟠
Local-Global Distillation — модель-учитель анализирует локальные фрагменты, а модель-ученик предсказывает глубину для всего изображения, отвечая за глобальную согласованность сцены.Экспериментальная модель обучалась на 50 тыс. изображений из SA-1B с разрешением 560×560. Использовались псевдо-метки от Genpercept (диффузионная модель) и DepthAnythingv2 (DINOv2). В рамках мульти-учительского подхода на каждой итерации случайно выбирался один учитель.
На тестах DIODE и ETH3D метод сократил значение AbsRel на 9.6–20% по сравнению с базовой дистилляцией. Например, при обучении модели-ученика DPT с учителями Genpercept и DepthAnythingv2 AbsRel на ETH3D составил 0.065 против 0.096 у Genpercept.
На бенчмарках NYUv2, KITTI, ScanNet модель достигла SOTA: AbsRel 0.043 (NYUv2), 0.070 (KITTI), 0.042 (ScanNet). В сравнении с DepthAnything v2 (AbsRel: 0.045 на NYUv2) и Marigold (0.055) Distill-Any-Depth показал более высокую детализацию и точность относительной глубины.
▶️В открытом доступе 3 модели, обученные с Distill-Any-Depth:
🟢Distill-Any-Depth-Multi-Teacher-Small - 24.8М параметров
🟢Distill-Any-Depth-Multi-Teacher-Base - 95.5М параметров
🟢Distill-Any-Depth-Multi-Teacher-Large - 335.3М параметров
▶️Локальная установка и инференс в Gradio:
# Create Conda env
conda create -n distill-any-depth -y python=3.10
conda activate distill-any-depth
# Clone Repo
git clone https://github.com/rmurai0610/MASt3R-SLAM.git --recursive
cd MASt3R-SLAM/
# Install dependencies
pip install -r requirements.txt
pip install -e .
# If use hf_hub_download, you can use the following code
checkpoint_path = hf_hub_download(repo_id=f"xingyang1/Distill-Any-Depth", filename=f"large/model.safetensors", repo_type="model")
# Launch Gradio demo
python app.py
📌Лицензирование: MIT License.
🟡Страница проекта
🟡Arxiv
🟡Набор моделей
🟡Demo
🖥GitHub
@ai_machinelearning_big_data
#AI #ML #Depth #DIstillAnyDepth


