いぬおさんのおもしろ数学実験室

おいしい紅茶でも飲みながら数学、物理、工学、プログラミング、そして読書を楽しみましょう

写真から立体を再現(4) カメラ、座標軸、透視投影行列

 写真から立体を再現する準備です。用語、記号や基本的な考え方など、まとめておきます。

 空間に図のような座標軸を考えます。座標軸にカメラをセットすることもあります。カメラは原点oの位置に、z軸の正の向きに向けることにします。カメラをセットしたときにはこの座標を「カメラ座標」と呼びます。

f:id:Inuosann:20200223145323p:plain

z座標がfの点を通る、xy平面と平行な平面を考えます。これを画像面と呼ぶことにしましょう。原点は図の通りo'です。 

f:id:Inuosann:20200223150611p:plain

f:id:Inuosann:20200223151000p:plain

画像面に写った図はカメラ内部で変換されてぼくたちが目にする写真になります。通常写真の左上を原点とし、右へuドット、下へvドット進んだ点の座標を(u, v)と表します。写真上の点、空間内の点はそれぞれ、通常の成分に1を付け加えたベクトル(拡張ベクトルと言います)、

f:id:Inuosann:20200423101320p:plain

で表します。最後の成分の1は、これを追加しておくことによって平行移動と回転をいっぺんに行列のかけ算で表せるようになり、都合がよいのです。なお、色々なテキストでは拡張ベクトルは文字の上に”~”をつけて表すようですが、こちらの都合でアッパーライン” ̄”にしました。

  今、座標系αにカメラをセットします。座標系αを空間の中の平行移動Tと、空間の中の回転Rによって座標軸βに一致させることができるとします。

f:id:Inuosann:20200223154629p:plain

 このとき、

f:id:Inuosann:20200423101107p:plain

が成立します。sは定数で、相手にする点によって様々に変わります。これは空間点の位置をβ系で測った座標から、この点をα系のカメラで撮ったとき写真のどこに写るかを計算できる式です。Pは3×4の行列です。この式を行列の成分が分かる式で書くと

f:id:Inuosann:20200423101150p:plain

となります。行列Pは、座標軸の平行移動、回転移動と、カメラの様々なパラメータ(焦点距離、その他いろいろ)からできあがっており、透視投影行列、カメラ行列などと呼ばれます。今回記事にする「写真から立体を再現」では上のような関係式が成立するということだけ理解していればよいのでPの詳細については書きません。

 

 記事「写真から立体を再現」の目標は

構造物を違う角度で撮影した2枚の写真から、その構造物をPC内で再現する

ということです。これに向け、あと何回か書く予定です。

 

 参考にしているテキストは以下の通りです。 

3次元ビジョン

3次元ビジョン

 
コンピュータビジョン―視覚の幾何学

コンピュータビジョン―視覚の幾何学

 
3次元コンピュータビジョン計算ハンドブック

3次元コンピュータビジョン計算ハンドブック

 

 2020年4月23日(木) 10:29 一部訂正しました。