PhotoScanを極める 12. 教科書的手順 Step 5 | 山口大学 空中測量(UAV写真測量)研究室の技術ノート

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

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

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

【このテーマの記事は、UAV写真測量に必要な解析や、そのためのAgisoft PhotoScanの操作について解説しつつ、適切な設定の探し方を提案することを目的とします。注意事項や用語説明もありますので、最初のページから読んでください。教科書的な操作手順表はこちらのページにあります。】

 

Step 5では、最適化する内部パラメータを任意に変更した上で、カメラパラメータと点群座標の更なる最適化を行う。

 

操作としては、「ツール」メニューから「カメラを最適化」("Optimize Cameras")を選ぶなどして、「カメラアラインメントを最適化」 ("Optimize Camera Alignment")ダイアログを立ち上げ、最適化するパラメータをチェックする。

 

ダイアログを立ち上げたときには、Step 4で推定された内部パラメータ(今回の例ではfのみ)のみがチェックされている。今回は、次のように、追加で基本的な内部パラメータにチェックを入れてみる。

このダイアログにおける、最適化する内部パラメータの選択は、重要かつ悩ましい設定項目である。

 

 

このように、考慮する内部パラメータを増やす場合には、ただチェックを加えるだけでよい。一方、考慮する内部パラメータを減らしてカメラモデルを単純にしたい場合には、元々チェックが入っているパラメータ(Step 4で最適化されたパラメータ)のチェックを外すだけは不十分である。先に「カメラキャリブレーション」("Camera Calibration")ダイアログの「修正値」("Adjusted")タブで、当該パラメータの値を0にしておかなければならない。

 

「カメラを最適化」の実行後、再度、「カメラキャリブレーション」ダイアログで内部パラメータの推定値を、Chunk 1ダイアログ(「ワークスペース」ペインでChunk 1のコンテキストメニューから「情報表示」を選択して出てくる画面を、以降こう呼ぶ)再投影誤差のRMSなどを確認する。今回は次のようになった。

 

 

「カメラキャリブレーション」ダイアログを見ると、チェックを追加した内部パラメータの値が0でなくなっている。それに伴いfの推定値も変わっている。

 

例えば主点の座標(cx, cy) = (-528.59, -370.562)と、画像中心(0, 0)から横・縦方向に数百画素もずれている。今回のカメラでは主点は画像中心と一致するのが正しいから、かなり間違った方向にずれている。実際のカメラについては内部パラメータの真値が誤差なくわかることはないので、良し悪しの判断は容易ではないが、室内でキャリブレーションしたときと比べて大幅に異なれば、怪しいな、というくらいの判断はできるだろう。今回のずれは明らかに大きすぎる。
 

 

Chunk 1ダイアログを見ると、Step 4の直後と比べて、わずかに再投影誤差(単位がない方)のRMSが減少している(0.0472717 → 0.0472478)。統計的に見れば、モデルのあてはめの残差が減少して、パラメータは不正確になっているのだから、過適合が生じている。本来モデルに必要ないパラメータまで選択してしまうと、このようなことが起こる。

 

繰り返すが、今回は過適合の説明がしやすいように、内部パラメータの真値がわかった理想的なカメラで答え合わせをしているだけで、現実のカメラでは、この段階での過適合の判断は難しい。

 

なお、今回は画素(pix)単位の再投影誤差のRMSも減少しているが、最適化の目的関数(最小化する対象)はあくまで単位がない方なので、画素単位の方は増えていても異常ではない。

 

Step 4でも最適化(おそらくは疎な点群に関する再投影誤差のRMSの最小化)が行われているのだから、チェックを変更しない場合、以上のStep 5は不要に思える。しかし、Step 4での最適化が簡易的なものであるのか、「カメラを最適化」によって結果が変わることも多い(フォーラムにもそのような書き込みがある)。さらに、「カメラを最適化」での最適化も甘いのか、このステップを2度実行すると、1回目と結果が変わる(再投影誤差のRMSが減る)こともある。念のため、2回行って、Chunk 1ダイアログで再投影誤差のRMSが変わっていないことを確認することが望ましい。

 

最後に、「カメラを最適化」コマンドは、実は疎な点群に関する再投影誤差のRMSだけを最小化するものではない。マーカーがある場合、マーカーの再投影誤差も考慮するし、コントロールポイントに関する世界座標が入力されている場合、その推定誤差も考慮する。


しかし、Step 5の時点ではマーカーを設置していないので、疎な点群に関する再投影誤差のRMSが最小化されることになる。Step 5は、まずは考慮する内部パラメータを自由に決めて、次のステップでの疎な点群のフィルタリングの効果の確認のためにも、きっちり最適化を行っておくために設けた次第である。