Lihe Yang 1 · Bingyi Kang 2 † · Zilong Huang 2
Zhen Zhao · Xiaogang Xu · Jiashi Feng 2 · Hengshuang Zhao 1*
1HKU 2TikTok
†líder del proyecto *autor correspondiente
Este trabajo presenta Depth Anything V2. Supera significativamente al V1 en detalles finos y robustez. En comparación con los modelos basados en SD, disfruta de una velocidad de inferencia más rápida, menos parámetros y una mayor precisión de profundidad.
2024-07-06: Depth Anything V2 es compatible con Transformers. Consulte las instrucciones para un uso conveniente.
2024-06-25: Depth Anything está integrado en los modelos Apple Core ML. Consulte las instrucciones (V1, V2) para su uso.
22/06/2024: Lanzamos modelos de profundidad métrica más pequeños basados en Depth-Anything-V2-Small y Base.
2024-06-20: GitHub marca nuestro repositorio y la página del proyecto y los elimina del público durante 6 días. Lo siento por los inconvenientes ocasionados.
2024-06-14: Se publican el documento, la página del proyecto, el código, los modelos, la demostración y las pruebas comparativas.
Proporcionamos cuatro modelos de diferentes escalas para una estimación sólida de la profundidad relativa:
Modelo | parámetros | Control |
---|---|---|
Profundidad-cualquier cosa-V2-pequeña | 24,8 millones | Descargar |
Profundidad-cualquier cosa-V2-Base | 97,5 millones | Descargar |
Profundidad-cualquier cosa-V2-grande | 335,3 millones | Descargar |
Profundidad-cualquier cosa-v2-gigante | 1.3B | Muy pronto |
clon de git https://github.com/DepthAnything/Depth-Anything-V2cd Depth-Anything-V2 instalación de pip -r requisitos.txt
Descargue los puntos de control enumerados aquí y colóquelos en el directorio de checkpoints
.
importar cv2importar antorchadesde profundidad_cualquier cosa_v2.dpt importar ProfundidadAnythingV2DEVICE = 'cuda' si torch.cuda.is_available() más 'mps' si torch.backends.mps.is_available() más 'cpu'model_configs = {'vits': {'encoder': 'vits', 'características': 64, 'out_channels': [48, 96, 192, 384]},'vitb': {'encoder': 'vitb', 'features': 128, 'out_channels': [96, 192, 384, 768]},'vitl': {'encoder': ' vitl', 'características': 256, 'out_channels': [256, 512, 1024, 1024]},'vitg': {'codificador': 'vitg', 'características': 384, 'out_channels': [1536, 1536, 1536, 1536]} }encoder = 'vitl' # o 'vits', 'vitb', 'vitg'model = DepthAnythingV2(**model_configs[encoder])model.load_state_dict(torch.load(f'checkpoints/ Depth_anything_v2_{encoder}.pth', map_location='cpu'))model = model.to(DEVICE).eval()raw_img = cv2.imread('tu/imagen/ruta')profundidad = model.infer_image(raw_img) # Mapa de profundidad sin formato HxW en numpy
Si no deseas clonar este repositorio, también puedes cargar nuestros modelos a través de Transformers. A continuación se muestra un fragmento de código simple. Consulte la página oficial para obtener más detalles.
Nota 1: asegúrese de poder conectarse a Hugging Face y de haber instalado los últimos Transformers.
Nota 2: Debido a la diferencia de muestreo entre OpenCV (usamos) y Pillow (usamos HF), las predicciones pueden diferir ligeramente. Por lo tanto, se recomienda utilizar nuestros modelos de la forma presentada anteriormente.
desde transformadores importar tuberíadesde PIL importar Imagepipe = tubería(task="profundidad-estimación", modelo="profundidad-cualquier cosa/Depth-Anything-V2-Small-hf")image = Image.open('your/image/path') profundidad = tubería(imagen)["profundidad"]
ejecutar python.py --codificador <vits | vib | vitil | vitg> --img-path <ruta> --outdir <directorio exterior> [--input-size <tamaño>] [--pred-only] [--escala de grises]
Opciones:
--img-path
: Puede 1) apuntarlo a un directorio de imágenes que almacene todas las imágenes interesadas, 2) apuntarlo a una sola imagen o 3) apuntarlo a un archivo de texto que almacene todas las rutas de las imágenes.
--input-size
(opcional): de forma predeterminada, utilizamos el tamaño de entrada 518
para la inferencia del modelo. Puede aumentar el tamaño para obtener resultados aún más detallados.
--pred-only
(opcional): guarda solo el mapa de profundidad previsto, sin imagen sin formato.
--grayscale
(opcional): guarda el mapa de profundidad en escala de grises, sin aplicar paleta de colores.
Por ejemplo:
python run.py --encoder vitl --img-path activos/ejemplos --outdir Depth_vis
Python run_video.py --codificador <vits | vib | vitil | vitg> --video-path activos/examples_video --outdir video_profundidad_vis [--input-size <tamaño>] [--pred-only] [--escala de grises]
Nuestro modelo más grande tiene una mejor consistencia temporal en los videos.
Para utilizar nuestra demostración de gradio localmente:
aplicación python.py
También puede probar nuestra demostración en línea.
Nota: En comparación con la versión 1, hemos realizado una modificación menor en la arquitectura DINOv2-DPT (a raíz de este problema). En V1, utilizamos involuntariamente características de las últimas cuatro capas de DINOv2 para decodificar. En V2, utilizamos funciones intermedias. Aunque esta modificación no mejoró los detalles ni la precisión, decidimos seguir esta práctica común.
Consulte la estimación de profundidad métrica.
Consulte el punto de referencia DA-2K.
Agradecemos sinceramente el apoyo de toda la comunidad a nuestra serie Depth Anything. ¡Muchas gracias!
Apple Core ML:
https://developer.apple.com/machine-learning/models
https://huggingface.co/apple/coreml-profundidad-cualquier cosa-v2-small
https://huggingface.co/apple/coreml- Depth-anything-small
Transformadores:
https://huggingface.co/docs/transformers/main/en/model_doc/ Depth_anything_v2
https://huggingface.co/docs/transformers/main/en/model_doc/ Depth_anything
TensorRT:
https://github.com/spacewalk01/profundidad-cualquier cosa-tensorrt
https://github.com/zhujiajian98/Depth-Anythingv2-TensorRT-python
ONNX: https://github.com/fabio-sim/Depth-Anything-ONNX
Cómoda UI: https://github.com/kijai/ComfyUI-DepthAnythingV2
Transformers.js (profundidad en tiempo real en la web): https://huggingface.co/spaces/Xenova/webgpu-realtime- Depth-estimation
Androide:
https://github.com/shubham0204/Depth-Anything-Android
https://github.com/FeiGeChuanShu/ncnn-android- Depth_anything
Estamos sinceramente agradecidos al increíble equipo de Hugging Face (@Pedro Cuenca, @Niels Rogge, @Merve Noyan, @Amy Roberts, et al.) por sus enormes esfuerzos para respaldar nuestros modelos en Transformers y Apple Core ML.
También agradecemos al equipo DINOv2 por contribuir con modelos tan impresionantes a nuestra comunidad.
El modelo Depth-Anything-V2-Small está bajo la licencia Apache-2.0. Los modelos Depth-Anything-V2-Base/Large/Giant están bajo la licencia CC-BY-NC-4.0.
Si encuentra útil este proyecto, considere citar:
@artículo{profundidad_cualquier cosa_v2, título={Profundidad Cualquier cosa V2}, autor={Yang, Lihe y Kang, Bingyi y Huang, Zilong y Zhao, Zhen y Xu, Xiaogang y Feng, Jiashi y Zhao, Hengshuang}, diario={arXiv: 2406.09414}, año={2024}}@inproceedings{profundidad_cualquier cosa_v1, título={Profundidad Cualquier cosa: liberar el poder de los datos sin etiquetar a gran escala}, autor={Yang, Lihe y Kang, Bingyi y Huang, Zilong y Xu, Xiaogang y Feng, Jiashi y Zhao, Hengshuang}, título del libro={CVPR}, año={2024}}