Лихэ Ян 1 · Биньи Кан 2† · Цзилун Хуан 2
Чжэнь Чжао · Сяоган Сюй · Цзяши Фэн 2 · Хэншуан Чжао 1*
1 HKU 2 TikTok
†руководитель проекта *соответствующий автор
Эта работа представляет Depth Anything V2. Он значительно превосходит V1 по детализации и надежности. По сравнению с моделями на основе SD, он имеет более высокую скорость вывода, меньшее количество параметров и более высокую точность глубины.
06.07.2024: В Transformers поддерживается Depth Anything V2. Ознакомьтесь с инструкцией по удобному использованию.
25 июня 2024 г.: Depth Anything интегрирован в модели Apple Core ML. См. инструкции (V1, V2) по использованию.
22 июня 2024 г.: Мы выпускаем модели меньшей метрической глубины на основе Depth-Anything-V2-Small и Base.
20 июня 2024 г.: Наш репозиторий и страница проекта помечены GitHub и удалены из общего доступа на 6 дней. Приносим извинения за неудобства.
14 июня 2024 г.: выпущены документ, страница проекта, код, модели, демо-версия и тесты.
Мы предоставляем четыре модели различного масштаба для надежной оценки относительной глубины:
Модель | Параметры | Контрольно-пропускной пункт |
---|---|---|
Глубина-Что-нибудь-V2-Маленькая | 24,8 млн. | Скачать |
Глубина-Что-нибудь-V2-База | 97,5 млн. | Скачать |
Глубина-Что угодно-V2-Большая | 335,3 млн. | Скачать |
Глубина-Что-нибудь-V2-Гигант | 1,3Б | Вскоре |
git clone https://github.com/DepthAnything/Depth-Anything-V2cd Depth-Anything-V2 pip install -r требования.txt
Загрузите перечисленные здесь контрольные точки и поместите их в каталог checkpoints
.
import cv2import torchfrom deep_anything_v2.dpt import DepthAnythingV2DEVICE = 'cuda' if torch.cuda.is_available() else 'mps' if torch.backends.mps.is_available() else 'cpu'model_configs = {'vits': {'encoder': «витс», «особенности»: 64, 'out_channels': [48, 96, 192, 384]},'vitb': {'encoder': 'vitb', 'features': 128, 'out_channels': [96, 192, 384, 768]},' vitl': {'encoder': 'vitl', 'features': 256, 'out_channels': [256, 512, 1024, 1024]},'vitg': {'encoder': 'vitg', 'features': 384, 'out_channels': [1536, 1536, 1536, 1536]} }encoder = 'vitl' # или 'vits', 'vitb', 'vitg'model = DepthAnythingV2(**model_configs[encoder])model.load_state_dict(torch.load(f'checkpoints/length_anything_v2_{encoder}.pth', map_location='cpu'))model = model.to(DEVICE).eval()raw_img = cv2.imread('your/image/path')Depth = model.infer_image(raw_img) # Необработанная карта глубины HxW в numpy
Если вы не хотите клонировать этот репозиторий, вы также можете загрузить наши модели через Трансформеры. Ниже приведен простой фрагмент кода. Пожалуйста, обратитесь к официальной странице для более подробной информации.
Примечание 1. Убедитесь, что вы можете подключиться к Hugging Face и установили последние версии Transformers.
Примечание 2. Из-за разницы в повышении частоты дискретизации между OpenCV (мы использовали) и Pillow (использули HF), прогнозы могут незначительно отличаться. Поэтому вам более рекомендуется использовать наши модели способом, описанным выше.
из конвейера импорта трансформаторовиз импорта PIL Imagepipe = конвейер(task="глубина-оценка", модель="глубина-что-нибудь/Depth-Anything-V2-Small-hf")image = Image.open('ваш/изображение/путь') глубина = труба(изображение)["глубина"]
python run.py --encoder <витс | витб | витл | витг> --img-path <путь> --outdir <исходящий каталог> [--input-size <размер>] [--pred-only] [--greyscale]
Параметры:
--img-path
: вы можете либо 1) указать его на каталог изображений, в котором хранятся все интересующие вас изображения, 2) указать его на одно изображение или 3) указать его на текстовый файл, в котором хранятся все пути к изображениям.
--input-size
(необязательно): по умолчанию мы используем входной размер 518
для вывода модели. Вы можете увеличить размер для получения еще более точных результатов.
--pred-only
(необязательно): сохраните только прогнозируемую карту глубины без необработанного изображения.
--grayscale
(необязательно): сохранить карту глубины в оттенках серого без применения цветовой палитры.
Например:
python run.py --encoder vitl --img-path assets/examples --outdir deep_vis
python run_video.py --encoder <витс | витб | витл | витг> --video-path assets/examples_video --outdir video_length_vis [--input-size <размер>] [--pred-only] [--greyscale]
Наша более крупная модель имеет лучшую временную согласованность на видео.
Чтобы использовать нашу демонстрационную версию Gradio локально:
приложение Python.py
Вы также можете попробовать нашу онлайн-демо.
Примечание. По сравнению с версией V1 мы внесли незначительные изменения в архитектуру DINOv2-DPT (исходя из этой проблемы). В V1 мы непреднамеренно использовали для декодирования функции последних четырех уровней DINOv2. В V2 вместо этого мы используем промежуточные функции. Хотя эта модификация не улучшила детализацию или точность, мы решили последовать этой общепринятой практике.
Пожалуйста, обратитесь к метрической оценке глубины.
Пожалуйста, обратитесь к тесту DA-2K.
Мы искренне ценим поддержку сообщества нашей серии Depth Anything. Большое спасибо!
Apple Core ML:
https://developer.apple.com/machine-learning/models
https://huggingface.co/apple/coreml-Deep-anything-v2-small
https://huggingface.co/apple/coreml-length-anything-small
Трансформаторы:
https://huggingface.co/docs/transformers/main/en/model_doc/length_anything_v2
https://huggingface.co/docs/transformers/main/en/model_doc/length_anything
ТензорРТ:
https://github.com/spacewalk01/Deep-anything-tensorrt
https://github.com/zhujiajian98/Depth-Anythingv2-TensorRT-python
ONNX: https://github.com/fabio-sim/Depth-Anything-ONNX
ComfyUI: https://github.com/kijai/ComfyUI-DepthAnythingV2
Transformers.js (глубина в реальном времени в сети): https://huggingface.co/spaces/Xenova/webgpu-realtime-length-estimation
Андроид:
https://github.com/shubham0204/Depth-Anything-Android
https://github.com/FeiGeChuanShu/ncnn-android-length_anything
Мы искренне благодарны замечательной команде Hugging Face (@Pedro Cuenca, @Niels Rogge, @Merve Noyan, @Amy Roberts и др.) за их огромные усилия по поддержке наших моделей в Transformers и Apple Core ML.
Мы также благодарим команду DINOv2 за предоставление нашему сообществу таких впечатляющих моделей.
Модель Depth-Anything-V2-Small находится под лицензией Apache-2.0. Модели Depth-Anything-V2-Base/Large/Giant находятся под лицензией CC-BY-NC-4.0.
Если вы считаете этот проект полезным, пожалуйста, процитируйте:
@article{length_anything_v2, title={Depth Anything V2},author={Ян, Лихэ и Кан, Биньи и Хуан, Цзилун и Чжао, Чжэнь и Сюй, Сяоган и Фэн, Цзяши и Чжао, Хэншуан}, журнал={arXiv: 2406.09414}, год={2024}}@inproceedings{глубина_anything_v1, title={Глубина что угодно: раскрывая возможности крупномасштабных немаркированных данных}, автор={Ян, Лихэ и Кан, Биньи и Хуан, Цзилун и Сюй, Сяоган и Фэн, Цзяши и Чжао, Хэншуан}, booktitle={CVPR}, год={2024}}