多視点のTriangulation(三角測量)アルゴリズム | 山口大学 空中測量(UAV写真測量)研究室の技術ノート

山口大学 空中測量(UAV写真測量)研究室の技術ノート

UAV写真測量, ドローン測量, フォトグラメトリ, SfMなどと呼ばれる技術の情報を掲載します。
1. 効率化・高精度化に関する研究速報・マニュアル
2. SfM/MVSソフトAgisoft Metashapeの使い方
などなど。

※「ブログトップ」の注意・免責事項からご覧ください。

【このテーマでは、きちんと記事にまとめる暇のない、速報的なメモ書きを掲載します。】

 

Multi-View Triangulationとは、多数の画像間でマッチングされた点の、各画像への投影位置(各画像上での座標)から、その点の3次元座標を求めることです。

日本語に訳せば、「多視点三角測量」でしょうか。言うまでもなく、SfMに必須の処理の1つです。

 

Multi-View Triangulationの標準的なアルゴリズムは「再投影誤差の2乗和の最小化」だとされてきました(1)のp.13)が、Metashapeなどが多数の検証点の座標を瞬時に求めてくれるのを見るにつけ、より速い近似解法が使われている香りがします。

 

私には難解な文献も多く、例によって長らく勉強を怠っていましたが、今回、Multi-View Triangulationのアルゴリズムを平易に分類してくれている最新文献2)を見つけましたので、これを読みつつ理解したことをメモしていきます。論文2)に記載されていることと、私の解釈が混ざっていますので、ご注意願います。

 

A. Linear Method (線形解法)

タイポイントの同次座標をXで表すと、共線条件を右辺=0の形で書き表したものを、投影の数だけ連立してAX = 0の形にまとめることが出来ます(1)のp.13にも登場)。この連立方程式の最小二乗解つまりは||AX|| = 0を満たすようなXを、特異値分解か固有値分解を使って求める方法です。

 

この古典的な方法は、数値的最適化が不要という美点がある一方で、再投影誤差の小さい解を求めるわけではなく、||AX||に幾何学的な意味が見いだせないという欠点があります。1)でも、Cの方法の初期値を与えるための方法として位置付けられています。

 

対策として、各方程式に重みをつけた方法 (Iterative-Eigen method)もあるようですが、それはまだ勉強していないため省略します。

 

C. L2 Triangulation Method (L2ノルム最小化法;都合によりBより先に置きます)

冒頭で標準的な方法として挙げた「再投影誤差の2乗和の最小化」です。最急こう配法、ニュートン法、LM (Levenberg-Marquardt) 法などの数値的最適化アルゴリズムを、再投影誤差の2乗和に適用します。

 

1)では"Gold Standard"とされているほか、私も理解しやすく、研究で使ってきました。なぜなら、バンドル調整と目的関数が同じ(再投影誤差2乗和)であり、「バンドル調整でカメラパラメータを固定した場合」と考えることができるためです。

 

しかし、局所最適解に陥りやすい(本当の最適解を見つけにくい)という欠点があります。画像がたったの2枚の場合でも、局所最適解に陥る場合がある(最適化空間に多峰性がある)そうです。

 

D. L∞ Triangulation Method(L∞ノルム最小化法)

Cの方法の欠点(局所最適解に陥りやすい)を克服するために編み出さた方法のようです。

なぜかは未勉強ですが、L∞ノルムを使うと最適化空間が準凸関数になるとか。

 

L∞ノルムとは、「絶対値が最大の要素の絶対値」を評価することにあたります。

一口に「L2ノルムの代わりにL∞ノルムを使う」と言っても、

  • 1画像に関する再投影誤差を評価する際に、u, v成分(横・縦成分)の2乗和ではなく、絶対値が大きい方の絶対値を使うのか
  • 多画像に関する再投影誤差の統計量として、2乗和ではなく、再投影誤差の絶対値が最大の画像における絶対値を評価するのか
2通りの使い方、あるいはその組み合わせがあります。両方を組み合わせた場合(例:polyhedron collapse method 3) 未読)、最小化の目的関数は
「再投影誤差のu, v成分のうち絶対値が大きい方の絶対値の、全画像に関する最大値」
となります。ただし、当然ながら誤ったマッチングなどアウトライアに弱いので、
「再投影誤差のu, v成分のうち絶対値が大きい方の絶対値の、全画像に関する中央値」
を使う方法 (Q-Sweep method 4) た未読)もあるそうです。
 
しかし、最大値とか中央値とかを使って、目的関数が微分不可能になると、勾配ベースの最適化アルゴリズムが使えなくなりそうですが、大丈夫なのでしょうか。要勉強です。
 

B. Midpoint Method (中点法)

最後にもってきましたが、文献2)の分類Bは、全視線への距離の二乗和が最小となるような点を求める方法です。

私も論文5)で、名前も知らないまま、見かけの点を求めるために使用していました。

画像上ではなく3次元空間上での距離の和の最小化です。

高速である一方で、視線の向きが平行に近い場合は誤差が大きすぎるという欠点があるようです(※)。

 

※ 文献2)には"when the camera is parallel"と表記されていましたが、カメラの光軸の向きが平行な場合ではなく、目標点(座標を推定する対象の点)をみる視線が互いに平行に近い場合と解釈しました。光軸の向きは関係ないと思われるためです。しかし視線が平行に近い場合とは、2視点で喩えれば基線長が短い場合ですから、何をしても誤差は大きいのではないかと思います。このあたりは別途要勉強/検討です。

 

1) D.P. Robertson and R. Cipolla. Structure from Motion. In Varga, M., editors, Practical Image Processing and Computer Vision, John Wiley, 2009.

 

2) J. Chen, D. Wu, P. Song, F. Deng, Y. He and S. Pang, "Multi-View Triangulation: Systematic Comparison and an Improved Method," in IEEE Access, vol. 8, pp. 21017-21027, 2020, doi: 10.1109/ACCESS.2020.2969082.

 

3) Simon Donne, Bart Goossens, Wilfried Philips; Proceedings of the IEEE International Conference on Computer Vision (ICCV), 2015, pp. 792-800.

 

4) Q. Zhang, T. Chin and D. Suter, "Quasiconvex Plane Sweep for Triangulation with Outliers," 2017 IEEE International Conference on Computer Vision (ICCV), 2017, pp. 920-928, doi: 10.1109/ICCV.2017.105.

 

5) 神野有生, 米原千絵, I. G. Y. Partama, 小室隆, 乾隆帝, 後藤益滋, 赤松良久, UAVとSfM-MVSを用いた河床冠水部の写真測量のための水面屈折補正係数に関する検討, 河川技術論文集, vol. 24, pp.19-24, 2018.