Depth Bleeding
深度にじみは、オブジェクトの境界を越えて距離がにじむ深度マップのアーティファクトです。点群やARシーンに浮遊ピクセルやハローが生じます。
深度ブリーディングとは、深度マップで深度値が前景オブジェクトと背景の境界を越えて漏れ、エッジ沿いのピクセルがもう一方の面の深度、または両方の深度を混ぜた値を取るアーティファクトです。一方の面が終わり、はるか遠くにある別の面が始まる遮蔽境界、つまり深度が不連続に変化する箇所で発生します。ステレオビジョン、ToFセンサーやLiDARセンサー、学習ベースの深度推定など、あらゆる深度取得方式に影響します。エッジの影響は、ピクセル数から想像するよりはるかに大きくなります。深度ブリーディングが起きたピクセルを逆投影して3D点群にすると、飛び出しピクセルとなり、オブジェクトと背後の壁の間の空間に点が浮かびます。拡張現実では、仮想オブジェクトが実物のエッジを突き抜けたり、手前に浮いたりします。新規視点合成では、エッジがゴムのように引き伸ばされます。また、ロボティクスや自動運転車では、オブジェクトが実際より大きく見えるため、ロボットの把持位置がずれ、3D物体検出のバウンディングボックスが引き伸ばされます。
深度ブリーディングの発生源#
ステレオマッチングでは、近傍画素のウィンドウを比較して各ピクセルの対応を決めます。エッジ付近では、このウィンドウが両方の面にまたがります。ウィンドウ内の前景ピクセルがマッチングコストを左右し、前景の深度が隣接する背景ピクセルに広がることがあります。ステレオ分野では、この現象を前景の肥大化と呼びます。片方のカメラにしか映らないピクセルには正しい対応点が存在せず、近傍ピクセルの深度が割り当てられます。
単眼深度推定用のニューラルネットワークでは、2つの原因でブリーディングが発生します。エンコーダーは画像を粗い特徴マップにダウンサンプリングするため、多くのデコーダーは入力解像度より低い解像度で深度を予測し、それを補間して拡大します。これにより、各エッジで両方の面が混ざります。また、境界ピクセルがどちらの面にも属する可能性がある場合、二乗誤差の損失関数は2つの深度の平均を予測すると最小になりますが、その値はどちらの面にも存在しません。Ultralytics YOLO26の深度モデルは入力解像度の4分の1で対数深度を予測し、予測器はマップを双線形補間して元の画像サイズに拡大します。そのため、出力で2つの面の間にあった段差は、数ピクセル幅のなだらかな傾斜になります。
センサーでは物理的にブリーディングが発生します。エッジをまたぐ視野を持つToFピクセルやLiDARビームは両方の面から光を受け取り、中間の深度を報告します。これは深度カメラの点群で飛び出しピクセルが発生する代表的な原因です。RGB-Dカメラでは位置ずれも生じます。深度とカラーはわずかに異なる位置から測定されるため、一方をもう一方に再投影するとエッジがずれます。
この例では、人物が壁から1.5 m手前に立ち、壁が4 m先にある深度マップを、一般的な深度ネットワークと同じ方法で解像度4分の1から拡大します。そして、どちらの面にも属さない深度を持つピクセル数を数えます。
import torch
import torch.nn.functional as F
# A depth map predicted at 1/4 resolution: a person 1.5 m away in front of a wall 4 m away
low = torch.full((1, 1, 120, 160), 4.0)
low[..., 30:, 60:100] = 1.5
for mode in ["bilinear", "nearest"]:
# Upsample 4x to the 480 x 640 image
depth = F.interpolate(low, size=(480, 640), mode=mode)[0, 0]
# Bleeding pixels hold depths that belong to neither surface
bleeding = (depth > 1.6) & (depth < 3.9)
print(f"{mode}: {bleeding.sum().item()} bleeding pixels, row 300 across the edge: {depth[300, 394:404].tolist()}")双線形アップサンプリングでは3,518個のブリーディングピクセルが生じ、シルエットの各エッジに沿って1.81、2.44、3.06、3.69 mの傾斜ができます。これらのピクセルは点群内で空中に浮いてしまいます。最近傍アップサンプリングでは新しい値を作らないため、ブリーディングは発生しません。しかし、実画像では真のエッジが粗いピクセルの内部にあるため、最近傍出力ではエッジが最大2ピクセルずれ、斜めのエッジが階段状になります。
深度ブリーディングの低減と測定#
ガイド付き深度超解像の一種であるエッジ対応アップサンプリングでは、高解像度のカラー画像をガイドとして使います。Johannes Kopfらが2007年に発表したジョイントバイラテラルアップサンプリングとガイデッドフィルターは、色の類似度に応じて近傍ピクセルを重み付けするため、深度が画像エッジで止まります。その反対の問題であるテクスチャのコピーは、箱の印刷文字のように、深度が変わらない色のエッジが深度マップに刻み込まれると発生します。ネットワークでは、高解像度出力、境界を考慮したトレーニング損失、画像セグメンテーションを使ったガイド付き補正によってブリーディングを抑えます。AppleのDepth Proは、シャープな境界を特に重視して設計・評価されました。ステレオでは左右の整合性チェックで、左右の方向で対応点が一致しないピクセルを特定します。どの方式でも、近傍ピクセル間で深度が急変する点や、面が視線とほぼ平行になる点を除外すれば、飛び出しピクセルを取り除けます。
エッジのピクセルは画像全体に占める割合が小さく、絶対相対誤差などの平均誤差もほとんど変化しないため、標準的な指標ではブリーディングをほとんど捉えられません。Tobias Kochらが2018年にミュンヘン工科大学から公開したiBims-1ベンチマークは、深度境界誤差を使って深度エッジを直接評価します。精度は予測エッジと人手でアノテーションしたエッジとの距離を測定し、完全性は予測で見逃された真のエッジの数を測定します。










