Appearance
Apple Depth Pro — Depth生成とLKG表示
Apple Depth Pro — 静止画向けDepth生成とLKG表示
Apple Depth Pro は、Appleが公開した単眼画像向けの深度推定プログラムとして検証されました。公式リポジトリの説明は「Depth Pro: Sharp Monocular Metric Depth in Less Than a Second.」です。
検証ステータス
| 項目 | 状態 |
|---|---|
| ローカル実行 | 完了 |
| Depth Mapのみの出力 | 完了 |
| Depth画像とカラー画像を合わせたLKG用出力 | 完了 |
| LKGでの表示 | 完了 |
| Unityで3Dメッシュ化 | 未完了 |
| 深度推定からサイドバイサイド画像までをクラウド処理 | 未完了 |
Windowsセットアップ概要
作業は apple/DepthProをローカルで動かす - Qiita に沿って実施されています。採用前にはApple Depth Pro本体とモデル重みのライセンスを確認してください。
Windows環境での手順には、以下が含まれます。
- 作業フォルダで仮想環境を作成
- 仮想環境をアクティベート
ml-depth-proをgit clonepip install -e .でライブラリをインストールcheckpointsフォルダを作成- GitHubからダウンロードしたモデルファイルを
checkpointsに配置 - CPU版PyTorchをアンインストール
- CUDA 11.8版PyTorchをインストール
CUDA 11.8版PyTorchの導入コマンドです。
bash
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118コマンドプロンプトでは、セットアップ用コマンド群を一括コピーせず、一行ずつコピーして実行する必要があると記録されています。
Depth Map出力処理
Depth Map出力用スクリプトでは、GPUが利用可能な場合はCUDAを使用します。depth_pro.create_model_and_transforms() でモデルと変換処理を読み込み、depth_pro.load_rgb(input_path) で画像を読み込み、model.infer(image, f_px=f_px) で推論します。
prediction["depth"] から深度を取得し、0〜255範囲に正規化してグレースケール画像として保存します。入力画像のパスはスクリプト内の input_image_path で指定します。
bash
python generate_depth_map.py出力画像は ml-depth-pro フォルダ直下に生成されると記録されています。
ローカル実行時にはMatplotlibの表示ウィンドウ(例: Figure 1)が開き、ウィンドウ左下の保存ボタンから画像を保存できました。
LKG表示手順
Apple Depth Proの出力をLKG表示する際は、以下の手順が使われました。
画像結合には フォトコンバイン が使用されました。Looking Glass Studioでは、作成したサイドバイサイド画像をドラッグアンドドロップし、RGBDを選択して表示しました。
最初に表示した際、奥にある壁が手前に見えるなど、奥行きが反転して見えたため、Depth画像を反転して再確認しました。反転後の画像では、Looking Glass Studio上で奥行き方向が改善した例があります。

正規化の検証
初期のDepth Map出力では、depthの最大値と最小値が外れ値の影響を受けている可能性が記録されています。深度値の確認では以下が出力されました。
| 項目 | 値 |
|---|---|
| Min depth | 0.56856734 |
| Max depth | 10000.0 |
屋外画像がうまく出力されない原因として、正規化方法の影響が検証されました。
| 正規化方法 | 内容 | 結果 |
|---|---|---|
| 通常の0〜255正規化 | prediction["depth"] を0〜255に変換 | 画像によって最大・最小値の影響が大きい |
| パーセンタイルクリッピング | 1パーセンタイルと99パーセンタイルを計算し、その範囲でクリッピング後に正規化 | ハト画像は反転すると良好に見える例があった。ただしLKGでは手前方向の立体感が弱い例もあった |
| 対数変換 | 深度値をシフトして自然対数を取り、正規化 | ハト画像では背景と前景の両方が立体視しやすくなった。人物画像では以前より立体感が弱くなる例があった |
推定する画像によって、深度推定の正規化方法を変えた方がよい可能性があります。

Apple Depth ProのLKGレビュー
| 画像 | 記録された評価 |
|---|---|
| 人物画像A | 黒くなっているところだけ凹んで見え、他は平面的に見えた例がある。別検証では深度推定が良好な例もあった |
| 人物画像B | 立体感は控えめだが、肩の奥行きが分かりやすい |
| ハト画像 | 難しい画像。対数変換では深度推定が改善し、LKGでも背景と前景が立体視しやすくなった |
| バスケ画像 | 出力が非常に暗くなり、屋外画像では正規化調整が必要。一見黒く見えても濃淡は残っている |
| ポートレート画像 | 他モデルと比べると、強い立体感を付ける用途はやや苦手という印象 |
Depth Anything V2 Largeとの比較では、Depth Anything V2は奥行きの付与が強め、Apple Depth Proは奥行きの付与が自然で写実寄りに見えると記録されています。
| 用途 | 記録された判断 |
|---|---|
| LKGの立体感を強く見せたい場合 | Depth Anything V2が向く場合がある |
| 人物写真を自然・写実的に見せたい場合 | Apple Depth Proが向く場合がある |
LKG向け出力と表示上の注意点
LKG表示で必要な処理
LKG表示では、DepthからMeshによる奥行き再構築を行う方式と、RGBDからQuiltによる多視点画像生成を行う方式が整理されています。Looking Glass SDKではキャリブレーションファイルを読み込み、立体表示します。
ピクセル整列とDepthスケール
LKG表示は、RGBDまたはQuilt形式の正確なピクセル整列が前提です。また、Depthスケールの再マッピングが必要です。
| 注意点 | 内容 |
|---|---|
| RGBD整列 | RGB画像とDepth画像のピクセル位置がずれると立体表示が崩れる |
| Depth反転 | モデルや正規化によって奥行きが反転する場合がある |
| Depthスケール | LKG側でDepthの強さを再マッピングする必要がある |
| フォーカス | LKGレビューではFocusを適宜調整して確認 |
| 網・細部構造 | 複数モデルで網のような細かい構造が苦手と記録 |
Unity運用イメージ
Unityでの深度データ再生・可視化では、事前生成されたEXR / NPZ / PNG連番を読み込みます。以下は実装済み・検討中・将来要望を分けた整理です。
| 機能 | 内容 | 状態 |
|---|---|---|
| テクスチャ / 深度 / メッシュ表示 | 表示モードを切り替える | 実装または検証対象 |
| 奥行きスケール調整 | Depthの強さをスライダーで調整 | 実装または検証対象 |
| コントラスト調整 | 深度の見え方を調整 | 検討中 |
| オートフォーカス | 操作性改善のため、焦点位置を自動調整する案 | 将来要望 / 要検証 |
| 厚み調整 | LKGらしい立体感を調整する案 | 将来要望 / 要検証 |
← ローカル深度推定 Windows — Depth Anything V2 / Video Depth Anything / Apple Depth Pro / MoGe 検証ガイド 概要に戻る