Skip to content

深度推定入門 — ゼロから理解する奥行き推定技術

1. はじめに

このページは、深度推定(Depth Estimation)の全体像をつかむための入門ガイドです。プログラミングの基礎は分かるが、コンピュータビジョンや深度推定については初めて、という新入社員を主な読者として想定しています。

このページを読み終えると、以下のことが分かるようになります。

  • 深度推定とは何か、何ができる技術なのか
  • 当社がなぜ深度推定を使っているのか(LKGディスプレイとの関係)
  • どんなモデルがあり、用途ごとにどれを選べばよいか
  • 実際に手を動かすために何を準備すればよいか

まずは全体像を把握し、そのあと各モデルの導入ガイドへ進むという流れで読み進めてください。


2. 深度推定とは

一言でいうと

深度推定とは、1枚の写真(2D画像)から、各ピクセルの「カメラからの距離」を推定する技術です。

深度マップ

推定結果は「深度マップ(Depth Map)」と呼ばれるグレースケール画像として出力されます。画像の各ピクセルが明るいほど近い(または遠い)ことを意味し、白黒のグラデーションで奥行きが表現されます。

注意: モデルによって「白=近い」「黒=近い」の向きが異なります。後述するLKG表示では、この向き(ネガポジ)を正しく合わせることが重要です。

直感的な理解

人間は1枚の写真を見ただけでも「この人は手前にいる、背景のビルは奥にある」と直感的に分かります。これは、物体の大きさ・重なり・遠近法・テクスチャの細かさなど、さまざまな視覚的手がかりを脳が統合して判断しているからです。

深度推定AIは、この人間の能力を数値化します。大量の画像と奥行きデータで訓練されたニューラルネットワークが、写真の中の手がかりを読み取り、ピクセルごとの距離情報を出力します。

処理の流れ

元画像(RGB)  →  深度推定モデル  →  深度マップ(グレースケール)
[カラー写真]      [ニューラルネット]     [白黒グラデーション画像]

深度マップの出力例

以下は Depth Anything V2 で推定した深度マップの例です。

Depth Anything V2で推定した深度マップ例

人物が手前(明るい)に、背景が奥(暗い)に表現されていることが分かります。


3. なにがいいのか — 応用分野

深度推定は、画像や映像に「奥行き」の情報を付与する技術であるため、非常に幅広い分野で活用されています。

1. 3D表示・ホログラム表示

LKG(Looking Glass)ディスプレイで写真を立体的に表示します。深度マップがあれば、通常の2D写真を3D化できます。当社のメインユースケースであり、このページの主な動機でもあります。

2. AR/VR

AR(拡張現実)では、現実空間の奥行きを理解することで、仮想オブジェクトを正しい位置に配置できます。たとえば「テーブルの上に仮想の花瓶を置く」には、テーブルの奥行き位置を知る必要があります。

3. 自動運転

前方の車両や歩行者までの距離を推定します。LiDARなどのセンサーと組み合わせて使われることが多いですが、カメラ映像のみから距離を推定する研究も進んでいます。

4. 3Dモデリング

1枚の画像から3Dメッシュを生成します。MoGe のように、深度情報だけでなく3D形状そのものを推定するモデルも登場しています。

5. 動画編集

背景ぼかし(ボケ効果)の適用、奥行き感のあるパララックス演出、前景と背景の分離など。スマートフォンのポートレートモードも、内部的には深度推定を利用しています。

6. ロボティクス

障害物回避、物体把持(ロボットアームで物を掴む)、ナビゲーションなど。ロボットが「目の前の物体までどのくらい離れているか」を把握するために使われます。


4. なんのために — 当社での活用

LKG(Looking Glass)ディスプレイとは

LKG(Looking Glass)は、ホログラフィックディスプレイの一種です。特殊なメガネやゴーグルを使わず、裸眼で3D映像を見ることができるのが最大の特徴です。

社内では 16インチモデル を使用しており、撮影した写真を立体表示してプレゼンテーションやデモンストレーションに活用しています。

深度推定 → LKG表示のワークフロー

2D写真をLKGで立体表示するまでの流れは以下の通りです。

1. 元画像を用意
   └─ 通常のカラー写真(RGB画像)

2. 深度推定モデルで深度マップを生成
   └─ Depth Anything V2、Apple Depth Pro など

3. 元画像と深度マップをSDS(Side-by-Side)方式で結合
   └─ 横に並べた1枚の画像にする(左: RGB、右: 深度マップ)

4. Looking Glass Studio に読み込み(RGBDモード)
   └─ アプリケーションが RGB + Depth を解釈

5. 立体表示
   └─ 裸眼3Dで奥行きのある映像として表示される

注意: ネガポジの方向

深度マップの白黒方向(白が近いか、黒が近いか)はモデルによって異なります。LKGの仕様に合わせてネガポジを正しく設定しないと、奥行きが反転してしまいます(手前のものが奥に見えてしまいます)。各モデルの導入ガイドにネガポジの取り扱いについて記載していますので、必ず確認すること。


5. 深度推定モデルの種類

相対深度推定 vs メトリック深度推定

深度推定モデルは、出力する深度値の意味によって大きく2種類に分かれます。

相対深度推定(Relative Depth Estimation)

ピクセル同士の「どちらが前か、どちらが後ろか」という相対的な順序関係を推定します。出力値はモデル固有のスケールであり、実際のメートル単位の距離は分かりません。

  • 例: Depth Anything V2、Marigold
  • LKG表示用途であれば、相対深度で通常は十分です。立体表示に必要なのは「何が手前で何が奥か」という情報だからです。

メトリック深度推定(Metric Depth Estimation)

実際の距離をメートル単位で推定します。「このピクセルはカメラから3.2m離れている」といった絶対的な値が得られます。

  • 例: Apple Depth Pro
  • 自動運転やロボティクスなど、実際の距離が必要な用途で重要になります。
  • LKG表示に使う場合は、出力値を0-255の範囲に正規化(Normalization)する必要があります。

画像 vs 動画

画像の深度推定

1枚の静止画に対して深度マップを生成します。各フレーム(画像)は独立して処理されます。

動画の深度推定

動画のフレーム間の**時間的一貫性(Temporal Consistency)**を考慮して深度マップを生成します。フレームごとに独立処理すると、隣り合うフレームで深度がガタつく(ちらつく)問題が起きます。動画対応モデルは、これを抑制して滑らかな深度変化を実現します。


6. 主要モデル一覧

以下は当社で検証済みの深度推定モデルの一覧です。

モデル開発元種類特徴詳細
Depth Anything V2香港大学 / TikTok相対深度LKGで最も強い立体感。Small / Base / Large の3サイズ導入ガイド
Apple Depth ProAppleメトリック深度丁寧で自然な奥行き。高速(2秒以下)。正規化が必要導入ガイド
MoGeMicrosoft3D形状推定深度 + 3Dメッシュ出力。Blenderに直接読み込み可能導入ガイド
MarigoldETH Zurich相対深度拡散モデル(Diffusion Model)ベース。丸みの表現が滑らか(HuggingFace で利用)
Video Depth Anything香港大学 / TikTok動画対応フレーム間一貫性のある深度推定導入ガイド
Distill Any DepthWestlake-AGI-Lab蒸留型複数モデルの長所を知識蒸留(Knowledge Distillation)で統合導入ガイド

用途別おすすめ

やりたいことおすすめモデル理由
LKGで写真を立体表示Depth Anything V2 (Large)立体感が最も強い
自然な立体感で表示(ポートレート等)Apple Depth Pro違和感のない丁寧な奥行き
3Dモデルとして書き出したいMoGeGLB形式で直接出力
動画を立体表示Video Depth Anything時間方向の一貫性
手軽に試したい(インストール不要)各モデルの HuggingFace Spaceブラウザで即使用可能

迷ったら、まず Depth Anything V2 から始めるのがおすすめです。最も情報が多く、セットアップも比較的容易で、LKG表示での立体感も最も強いです。


7. 環境構築の基礎知識

深度推定モデルを動かすには、いくつかのツールや環境が必要になります。ここでは、新人が最初に押さえておくべきポイントを簡潔にまとめます。詳細は各モデルの導入ガイドを参照してください。

Python 仮想環境

深度推定モデルは Python で書かれているものがほとんどです。モデルごとに依存ライブラリのバージョンが異なるため、プロジェクト(モデル)ごとに仮想環境を分離するのが鉄則です。

  • venv: Python 標準の仮想環境ツール。軽量でシンプル。
  • conda: Anaconda / Miniconda に付属。CUDA のバージョン管理もできるため、深度推定では conda が便利な場面が多いです。

仮想環境を使わないと、あるモデル用にインストールしたライブラリが別のモデルと衝突して動かなくなる、という事態が頻繁に起きます。

CUDA

CUDA は NVIDIA GPU 上で汎用計算を行うためのプラットフォームです。深度推定は計算量が大きいため、GPU(CUDA)なしでは極端に遅くなるか、そもそも動かないモデルもあります。

  • CUDA のバージョンと PyTorch のバージョンの組み合わせに注意が必要です。
  • nvidia-smi コマンドで現在の GPU と対応 CUDA バージョンを確認できます。

PyTorch

PyTorch は、深度推定モデルの多くが採用している深層学習フレームワークです。インストール時に CUDA 対応版を明示的に選ぶ必要があります。CPU 版を誤ってインストールすると GPU が使えず、処理速度が大幅に低下します。

bash
# 例: CUDA 12.1 対応の PyTorch をインストール
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu121

WSL(Windows Subsystem for Linux)

Windows 上で Linux 環境を使うための仕組みです。一部のモデルは bash スクリプトや Linux 固有のツールを前提としているため、WSL が必要になることがあります。

  • Windows 11 であれば wsl --install で導入可能です。
  • WSL 2 を推奨します。GPU パススルーにも対応しています。

8. 用語集

用語説明
深度マップ (Depth Map)各ピクセルのカメラからの距離を表すグレースケール画像
単眼深度推定 (Monocular Depth Estimation)1枚の画像から深度を推定すること。ステレオカメラ(2眼)を使わない手法
ViT (Vision Transformer)画像をパッチ(小さな区画)に分割し、Transformer アーキテクチャで処理する手法
DPT (Dense Prediction Transformer)密な予測(全ピクセルに値を割り当てる)のための Transformer 構造
SDS (Side-by-Side)元画像と深度マップを横に並べた画像形式。LKG の RGBD モードで使用する
RGBDRGB(色情報)+ D(深度情報)の組み合わせ。4チャンネルの画像データ
LKG (Looking Glass)ホログラフィックディスプレイ。裸眼で3D表示が可能なデバイス
正規化 (Normalization)深度値を 0-255 の範囲に変換すること。表示やモデル間の互換性のために行う
パーセンタイルクリッピング (Percentile Clipping)外れ値(極端に大きい/小さい値)を除外してから正規化する手法。深度マップのコントラストを改善する
知識蒸留 (Knowledge Distillation)大きなモデル(教師)の知識を小さなモデル(生徒)に転写する手法
時間的一貫性 (Temporal Consistency)動画の各フレーム間で深度推定結果がちらつかず安定していること

9. 次のステップ

ここまで読んで深度推定の全体像がつかめたら、次は実際の出力を見て、手を動かしてみましょう。

  1. 各モデルの出力を見比べる深度推定モデル比較 で、同じ画像に対する各モデルの深度マップ出力を比較しています。モデルごとの特徴を視覚的に確認できます。

  2. 実際にモデルを動かしてみる — まずは Depth Anything V2 導入ガイド から始めるのがおすすめです。LKG表示での立体感が最も強く、セットアップ手順も詳しく記載しています。

  3. 3Dモデル出力に興味があればMoGe 導入ガイド を参照してください。深度マップだけでなく、3Dメッシュ(GLB形式)を直接出力できるため、Blender での編集や 3D プリントなどにも応用できます。

  4. メトリック深度に興味があればApple Depth Pro 導入ガイド を参照してください。実際のメートル単位での距離推定が可能です。


このページは新人教育用に作成されたガイドです。 | AI Generated — 2026-03-05