> For the complete documentation index, see [llms.txt](https://docs.roboflow.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roboflow.com/models/ko/supported-models/depth-anything-v2.md).

# Depth Anything V2

Depth Anything V2는 단안 깊이 추정 모델입니다. 입력 이미지에 대해 정규화된 깊이 맵(값은 0과 1 사이)을 반환합니다.

{% hint style="info" %}
Depth Anything V2는 Serverless Cloud API에서 사용할 수 없습니다. 다음에서 실행하세요: [전용 배포](https://docs.roboflow.com/deployment/roboflow-cloud/dedicated-deployments) 또는 [셀프 호스팅 Inference](https://docs.roboflow.com/deployment/self-hosted/self-hosted).
{% endhint %}

## Depth Anything V2 API

{% stepper %}
{% step %}

### API 키를 받으세요

Roboflow 계정을 만들고, 다음에서 키를 찾으세요 [Roboflow API 설정 페이지](https://app.roboflow.com/settings/api) 그리고 셸에서 사용할 수 있게 설정하세요:

```bash
export ROBOFLOW_API_KEY="your-key-here"
```

{% endstep %}

{% step %}

### 종속성을 설치하세요

설치하세요 [Inference SDK](https://docs.roboflow.com/deployment/self-hosted/self-hosted):

```bash
pip install -U inference-sdk opencv-python supervision
```

{% endstep %}

{% step %}

### 모델을 실행하세요

설정하세요 `api_url` 전용 배포 URL 또는 로컬 Inference 서버에 연결합니다. 이 스크립트는 깊이 맵에 색을 입히고 입력 이미지와 나란히 비교한 결과를 저장합니다.

```python
import os
import cv2
import numpy as np
import supervision as sv
from inference_sdk import InferenceHTTPClient, InferenceConfiguration

image = sv.load_image_from_url("https://media.roboflow.com/notebooks/examples/bicycle.png")
client = InferenceHTTPClient(
    api_url="https://your-deployment.roboflow.cloud",
    api_key=os.environ["ROBOFLOW_API_KEY"],
).configure(InferenceConfiguration(api_key_transport="header"))
result = client.depth_estimation(image)

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("depth_annotated.png", np.hstack([image, depth_color]))
```

<figure><img src="/files/5eb66a1f5367d97683b9c6c790ab814914ca6450" alt=""><figcaption></figcaption></figure>
{% endstep %}
{% endstepper %}

## Depth Anything V2 추론 속도

지연 시간은 다음으로 측정됨 [Roboflow Inference](https://docs.roboflow.com/deployment/self-hosted/self-hosted) 1x NVIDIA L4, 배치 크기 1, 워밍업 후 평균 기준.

<table data-search="false"><thead><tr><th>모델</th><th>지연 시간(ms)</th></tr></thead><tbody><tr><td><code>depth-anything-v2</code></td><td>40.1</td></tr></tbody></table>

Small 체크포인트에서 측정됨.

{% hint style="info" %}
설정하세요 `api_url` 배포 대상에 맞게:

* `http://localhost:9001` 로컬 [Inference](https://docs.roboflow.com/deployment/self-hosted/self-hosted) 서버입니다.
* 귀하의 [전용 배포](https://docs.roboflow.com/deployment/roboflow-cloud/dedicated-deployments) 비공개 엔드포인트용 URL입니다.
  {% endhint %}

## 사용 가능한 Depth Anything V2 모델

깊이 추정 엔드포인트와 `depth_estimation@v1` Workflow 블록은 하나의 순서형 깊이 계약 뒤에서 두 모델 계열을 제공합니다. 이는 이미지 크기의 맵을 이미지별로 정규화한 것이며, `1.0` 가 가장 가깝고 `0.0` 가 가장 멉니다.

* **Depth Anything** (상대 깊이): `depth-anything-v2/small`, `depth-anything-v3/small`, `depth-anything-v3/base`
* **YOLO26 깊이** (미터 단위 깊이, 이 경로에서는 정규화되며, 훨씬 더 빠름): `yolo26n-depth-768`, `yolo26s-depth-768`, `yolo26m-depth-768`, `yolo26l-depth-768`, `yolo26x-depth-768`

공유 출력은 모델 전반에 걸쳐 형태, 범위, 그리고 가까움에서 멀어짐의 순서를 유지하지만, 중간 값은 모델 계열 간에 기하학적으로 동일하지 않습니다. 값은 실제 거리값이 아니라 순서형 근접도 점수이며, 서로 다른 이미지나 모델 계열 간에 수치적으로 비교해서는 안 됩니다. YOLO26 체크포인트에서 미터 단위의 절대적 깊이를 얻으려면, 다음으로 직접 로드하세요: `inference_models.AutoModel`.

## Depth Anything V2 응답 형식

이 `/infer/depth-estimation` 엔드포인트는 직렬화합니다 `normalized_depth` 요청의 `depth_map_format` 필드에 따라:

* `json` (기본값): 0과 1 사이의 float 중첩 리스트입니다. 이전 클라이언트와 호환되지만, 1080x810 이미지 기준 약 17MB입니다.
* `png16`: base64로 인코딩된 16비트 그레이스케일 PNG입니다(양자화 단계 1/65535, 일반적으로 10배 이상 더 작고 제공 속도도 훨씬 빠름).
* `png8`: base64로 인코딩된 8비트 그레이스케일 PNG입니다(256개의 깊이 수준, 대략 또 한 자릿수 정도 더 작음). 시각화와 임계값 처리에는 적합하지만, 미분 기반 기하학적 용도에는 손실이 있습니다.

SDK의 `depth_estimation()` 메서드의 기본값은 `json`, 따라서 기존 통합에서는 계속 중첩 리스트를 받습니다. 다음을 전달하세요 `depth_map_format="png16"` (또는 `"png8"`)를 사용해 더 작은 페이로드를 선택할 수 있습니다. SDK는 이를 다시 다음으로 디코딩합니다: `numpy.ndarray` (필요하면 `.tolist()` JSON 직렬화 가능한 출력이 필요하다면).

{% hint style="warning" %}
SDK의 `json` 기본값은 더 이상 권장되지 않습니다. 2027년 초기 Inference 릴리스 중 하나에서 기본값은 다음으로 변경됩니다 `png16` 호환성을 깨는 방식으로, 그리고 `normalized_depth` 그때부터는 다음으로 반환됩니다: `numpy.ndarray`. SDK는 다음 경고를 발생시킵니다: `InferenceSDKDeprecationWarning` 다음 `json` 형식을 사용할 때. 다음을 미리 사용하도록 설정하세요 `png16` 조기에, 또는 다음을 전달하세요 `depth_map_format="json"` 전환 후에도 리스트 형식을 유지하려면 명시적으로 지정하세요. 원시 REST 호출자는 영향받지 않습니다. 서버 측 기본값은 계속 `json`.
{% endhint %}

## 셀프 호스팅 Inference로 Depth Anything V2 실행

다음으로 모델을 직접 로드할 수도 있습니다: [`inference`](https://docs.roboflow.com/deployment/self-hosted/self-hosted) 패키지

{% stepper %}
{% step %}

### 패키지를 설치하세요

```bash
pip install "inference[transformers]"
```

다음을 사용하세요 `inference-gpu[transformers]` GPU 머신에서.
{% endstep %}

{% step %}

### Hugging Face로 인증

가중치는 Hugging Face에서 가져오므로 다음을 설정하세요 [Hugging Face 토큰](https://huggingface.co/join):

```bash
export HUGGING_FACE_HUB_TOKEN=your_token_here
```

{% endstep %}

{% step %}

### 모델을 실행하세요

```python
from PIL import Image

from inference.models.depth_estimation.depthestimation import DepthEstimator

model = DepthEstimator()

image = Image.open("your_image.jpg")
results = model.predict(image)

depth_map = results[0]["normalized_depth"]
visualization = results[0]["image"]
```

`normalized_depth` 는 이미지별 깊이 맵을 담고 있으며, `image` 는 밝은 색이 더 가깝고 어두운 색이 더 먼 색상화된 시각화를 담고 있습니다.
{% endstep %}
{% endstepper %}

### Workflows의 실행 모드

다음에서 사용할 때 [Workflow](https://docs.roboflow.com/workflows), 깊이 추정은 두 가지 모드 중 하나로 실행됩니다:

* **로컬 실행**: 모델이 사용자의 Inference 서버에서 실행됩니다(GPU 권장).
* **원격 실행**: 모델이 원격 Inference 서버에서 HTTP로 다음을 통해 호출됩니다: `depth_estimation()` 클라이언트 메서드.
