このブログ記事では、コンピュータビジョンにおける単視点計測について紹介します。

前回の記事では、カメラモデルと同次座標の基礎について説明し、それらをカメラキャリブレーションに適用しました。 しかし、カメラキャリブレーションには十分なが既知である必要があり、これは現実世界のほとんどのシナリオでは利用できません。 実際は、どちらかというとについて推論したい場合がほとんどです。そこで、この記事では、単一の画像から同次座標の性質を使用してカメラをキャリブレーションし、 を推定する方法、または単視点計測を実行する方法について紹介します。
2次元変換
単視点計測について議論する前に、2次元における様々な変換を理解する必要があります。等距変換は回転と平行移動によって記述できる変換であり、 距離を保存します。同次座標では、左上に回転行列、右上に平行移動ベクトル、左下にゼロ、右下に1を含む行列を使用してこれらを表現できます。
相似変換は等距変換に適用されるスケーリング変換を含み、形状を保存します。したがって、対角行列にスカラー因子を含むスケーリング行列を、 等距変換行列の回転行列に乗算することで、相似変換行列に到達できます。ここで、等距変換はのときの相似変換の特殊形であることがわかります。
アフィン変換は相似変換に適用される剪断変換(ずらす変換)を含み、行列による線形変換とによる平行移動をもたらします。 アフィン変換は点、直線、および平行性を保存します。したがって、等距変換と相似変換の両方がアフィン変換の特殊形です。 射影変換は、以下のようにとを使用して追加の次元を変換することで、アフィン変換をさらに一般化します。
その結果、射影変換はもはや平行性を保存せず、代わりに点の共線性を保存します。これは、線が異なる角度と長さを持つ可能性のある線にマッピングされることを意味します。 2次元の同次座標における線はによって定義でき、ここで傾きとy切片はそれぞれとによって捉えられます。 線上のすべての点はを満たします。射影変換は点の共線性を保存するため、を新しい傾きと切片を持つにマッピングします。
無限遠の点と直線
2つの線とが交わるとき、交点はとの両方を満たす必要があり、これはがとの両方に直交する必要があることを意味します。 これらの直交性を使用してを求めることができ、これは外積の定義によりがとの両方に直交するように制約します。 これを使用して、平行線との間の仮想的な交点を計算できます。ここで留意すべく点は、平行線は傾きが等しいということです (すなわち、であり、かつを意味する)。
上記から最後の要素がゼロであることがわかり、これは2つの平行線が無限遠で交わることを意味します。 無限遠の直線も定義でき、すべての無限遠の点(平行線の交点)がそこに存在します。 これらの直線はとして表現され、ここでは単純に1に設定できる任意の値です。 無限遠の点と直線の射影変換は、の影響により、必ずしも別の無限遠の点と直線にマッピングされるわけではありませんが、 アフィン変換は必ず別の無限遠の点と直線にマッピングします。(これは直感的に理にかなっています。 なぜなら、無限遠の点を構成する平行線は、射影変換後にもはや平行であることが保証されないからです。)
消失点と消失線
3D世界では、平面の概念を導入する必要があります。平面はとして表現でき、 ここでは平面の法線ベクトルを形成し、は原点と法線ベクトルとの間の距離を表します。 平面は、を満たすすべての点によって正式に定義できます。 直線は2つの平面の交線として定義できますが、4つの自由度を持つ3D空間での直線の表現は複雑です。

3D空間の平行線がカメラ座標系において方向を指している場合、 無限遠点はとなります。カメラモデルにおけるによる射影変換は、 これを2D画像平面上の消失点にマッピングしますが、この点はもはや無限遠点ではない可能性があります。 これはまたはとして表現でき、ここではカメラ行列です。 さらなる導出により、をもたらした平行線の方向が得られ、となります。

同様に、平面上の無限遠点からなる無限遠直線は、画像平面上で水平線と呼ばれる直線に投影されますが、 これももはや無限遠直線ではない可能性があります(水平線や地平線の原理)。水平線上の消失点をもたらした同一平面上の平行線のすべての方向は、 その平面上に存在し、平面の法線ベクトルに直交する必要があるため、が成り立ちます。 消失点も水平線上にあることから、であり、したがっておよびが導かれます。
したがって、キャリブレーションによってを取得し、画像内の平面に関連する水平線を認識できれば、 平面の法線ベクトルを推定し、3D空間における表面の向きを捉えることができます。 これらの方程式は、異なる消失点(と)に対応する2つの方向(と)間の角度や、 水平線(と)に対応する2つの平面(と)間の角度を、 上記で示したようにコサイン法則を用いて導出するためにさらに発展させることができます。
単視点計測
上記で確立された数学に基づいて、画像内のカメラと被写体に関する様々な量を推定することができます。 例えば、互いに直交する2つの平面上の2組の平行線から2つの消失点を得ることができ、 コサイン法則を用いた方程式を使用してに到達できます。 しかし、は歪みがなく正方画素を用いていると仮定しても少なくとも3つの自由度を持ち、制約が1つだけではからを解くことはできません。 したがって、両方の平面に直交する別の平面から別の消失点を取ることができます。 これにより、を直接知ることなくを解くための3つの制約(、、および)を導くことができます。

が分かれば、を使用して平面の向きを推定し、それらを使用して単一画像から推定3Dシーンを再構築できます。 しかし、この方法では画像に捉えられた3Dシーンを適切に再構築するために不可欠である、平面のスケールと位置を取得することはできず、 当然遮蔽された物体も考慮されません。(異なるサイズ、位置、向きを持つ異なる物体が、全く同一の投影を生じる可能性があります。) これは、無限遠の点と直線の射影変換の性質を使用することで単一画像から豊富な情報を抽出できることを実証していますが、 同時に単一視点測量法のアプローチの本質的な限界も明らかにしています。
これは、なぜ訓練データから学習することで物体のサイズや遮蔽部分をある程度推論できる深層学習を用いたとしても、単一画像からの深度推定が困難であるかを説明してます。 (これが、タスクを簡単にし、モデルが表面の向きの学習に集中できるようにするために、単一視点深度推定にスケール不変損失を使用する傾向がある理由です。) 人間は画像を解釈し、物体の向きを理解し、現実世界での経験からそれらのサイズを推論することにおいて、深層学習モデルよりもさらに優れた能力を持っているかもしれませんが、 それでも同じ物理的限界が私たち人間にも適用されます。我々人間が(特に異常な形状やサイズの物体に対して)錯覚に陥ることが多分にあるのもこのためです。
結論
この記事では、2Dにおける様々な変換、無限遠の点と直線、無限遠の点と直線の射影変換の結果としての消失点と消失線、 そしてこれらの概念によって可能になったキャリブレーションと平面向き推定のための単視点計測を取り上げました。 さらに単視点計測は有用である一方で、表面のスケールと位置(遮蔽された物体も含む)に関する情報の不可避的な損失により本質的な限界があることを発見しました。 しかし、私たちが単視点計測において取り上げた概念と数学は、3Dシーンを理解する別のアプローチについて議論する今後の記事でも引き続き不可欠である可能性が高いです。 したがって、この記事と以下に引用されたリソースを読み込むことで、これらについて深く理解することをお勧めします。
リソース
- Hartley, R. & Zisserman, A. 2002. Multiple View Geometry in Computer Vision, Second Edition. Academic Press.
- Hata, K. & Savarese, S. 2025. CS231A Course Notes 2: Single View Metrology. Stanford.
- Savarese, S. & Bohg, J. 2025. Lecture 4 Single View Metrology. Stanford.