> 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/ja/supported-models/depth-anything-v2.md).

# Depth Anything V2

Depth Anything V2 は単眼深度推定モデルです。任意の入力画像に対して、正規化された深度マップ（0～1の値）を返します。

{% hint style="info" %}
Depth Anything V2 はサーバーレスホステッド API では利用できません。以下で実行してください： [専用デプロイメント](https://docs.roboflow.com/deployment/roboflow-cloud/dedicated-deployments) または [セルフホスト型 Inference](https://docs.roboflow.com/deployment/self-hosted/self-hosted).
{% endhint %}

## コード例

{% 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

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"],
)
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/636eba49b655e75106588a7306491d7bf7019b98" alt=""><figcaption></figcaption></figure>
{% endstep %}
{% endstepper %}

## 推論速度

レイテンシの測定条件： [Roboflow Inference](https://docs.roboflow.com/deployment/self-hosted/self-hosted) NVIDIA L4 1基、バッチサイズ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_estimation@v1` Workflow ブロックは、1つの序数深度コントラクトの背後で2つのモデルファミリーを提供します。これは画像サイズの、画像ごとに正規化されたマップであり、 `1.0` が最も近く、 `0.0` が最も遠いことを示します。

* **Depth Anything** （相対深度）： `depth-anything-v2/small`, `depth-anything-v3/small`, `depth-anything-v3/base`
* **YOLO26 depth** （メートル法深度、このパスでは正規化済み、大幅に高速）： `yolo26n-depth-768`, `yolo26s-depth-768`, `yolo26m-depth-768`, `yolo26l-depth-768`, `yolo26x-depth-768`

共有出力は、モデル間で形状、範囲、および近い順から遠い順への並びを維持しますが、中間の値はモデルファミリー間で幾何学的に同等ではありません。値は物理的な距離ではなく序数的な近接度スコアであり、異なる画像間またはモデルファミリー間で数値比較してはなりません。YOLO26 チェックポイントからメートル単位の絶対メートル法深度を取得するには、以下を使用して直接ロードしてください： `inference_models.AutoModel`.

## レスポンス形式

以下の `/infer/depth-estimation` エンドポイントは次をシリアル化します： `normalized_depth` リクエストの以下に従って： `depth_map_format` フィールド：

* `json` （デフォルト）：0～1の浮動小数点数からなるネストされたリスト。古いクライアントとワイヤ互換ですが、1080x810画像では約17 MBになります。
* `png16`：base64 エンコードされた16ビットグレースケール PNG（量子化ステップは1/65535。通常は10倍以上小さく、配信もはるかに高速）。
* `png8`：base64 エンコードされた8ビットグレースケール PNG（256深度レベルで、さらにおよそ1桁小さい）。可視化としきい値処理には適していますが、微分に基づく幾何学的用途では損失があります。

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（セルフホスト型）で使用する

以下を使用してモデルを直接ロードすることもできます： [`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)では、深度推定は2つのモードのいずれかで実行されます：

* **ローカル実行**：モデルは Inference サーバー上で実行されます（GPU 推奨）。
* **リモート実行**：モデルは、以下を介してリモート Inference サーバー上で HTTP 経由で呼び出されます： `depth_estimation()` クライアントメソッド。
