Views
No views yet

1from transformers import AutoImageProcessor, DPTForDepthEstimation
2import torch
3import numpy as np
4from PIL import Image
5import requests
6
7url = "http://images.cocodataset.org/val2017/000000039769.jpg"
8image = Image.open(requests.get(url, stream=True).raw)
9
10image_processor = AutoImageProcessor.from_pretrained("facebook/dpt-dinov2-base-kitti")
11model = DPTForDepthEstimation.from_pretrained("facebook/dpt-dinov2-base-kitti")
12
13# prepare image for the model
14inputs = image_processor(images=image, return_tensors="pt")
15
16with torch.no_grad():
17 outputs = model(**inputs)
18 predicted_depth = outputs.predicted_depth
19
20# interpolate to original size
21prediction = torch.nn.functional.interpolate(
22 predicted_depth.unsqueeze(1),
23 size=image.size[::-1],
24 mode="bicubic",
25 align_corners=False,
26)
27
28# visualize the prediction
29output = prediction.squeeze().cpu().numpy()
30formatted = (output * 255 / np.max(output)).astype("uint8")
31depth = Image.fromarray(formatted)1@misc{oquab2023dinov2,
2 title={DINOv2: Learning Robust Visual Features without Supervision},
3 author={Maxime Oquab and Timothée Darcet and Théo Moutakanni and Huy Vo and Marc Szafraniec and Vasil Khalidov and Pierre Fernandez and Daniel Haziza and Francisco Massa and Alaaeldin El-Nouby and Mahmoud Assran and Nicolas Ballas and Wojciech Galuba and Russell Howes and Po-Yao Huang and Shang-Wen Li and Ishan Misra and Michael Rabbat and Vasu Sharma and Gabriel Synnaeve and Hu Xu and Hervé Jegou and Julien Mairal and Patrick Labatut and Armand Joulin and Piotr Bojanowski},
4 year={2023},
5 eprint={2304.07193},
6 archivePrefix={arXiv},
7 primaryClass={cs.CV}
8}