Depth Anything V2

Use Depth Anything V2 for monocular depth estimation on a Dedicated Deployment or self-hosted Inference

Depth Anything V2 is a monocular depth estimation model. It returns a normalized depth map (values between 0 and 1) for any input image.

Depth Anything V2 is not available on the Serverless Hosted API. Run it on a Dedicated Deployment or self-hosted Inference.

Code sample

Install the Inference SDK:

pip install inference-sdk opencv-python

Set api_url to your Dedicated Deployment URL or a local Inference server. Pass your Roboflow API Key via the API_KEY environment variable. The script colorizes the depth map and writes a side-by-side comparison with the input.

import os
import urllib.request

import cv2
import numpy as np
from inference_sdk import InferenceHTTPClient

IMAGE_URL = "https://storage.googleapis.com/com-roboflow-marketing/notebooks/examples/bicycle.png"
IMAGE_PATH = "bicycle.png"
OUTPUT_PATH = "depth_annotated.png"

urllib.request.urlretrieve(IMAGE_URL, IMAGE_PATH)
image = cv2.imread(IMAGE_PATH)

client = InferenceHTTPClient(
    api_url="https://your-deployment.roboflow.cloud",
    api_key=os.getenv("API_KEY"),
)
result = client.depth_estimation(IMAGE_PATH)

depth = np.array(result["normalized_depth"], dtype=np.float32)
depth = cv2.resize(depth, (image.shape[1], image.shape[0]))
depth_vis = (depth * 255).astype(np.uint8)
depth_color = cv2.applyColorMap(depth_vis, cv2.COLORMAP_INFERNO)

cv2.imwrite(OUTPUT_PATH, np.hstack([image, depth_color]))

Set api_url to match your deployment target:

Last updated

Was this helpful?