PhotoScanを極める 22. 提案方法のデモ 手順1-4 | 山口大学 空中測量(UAV写真測量)研究室の技術ノート

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

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

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

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

 

**********

この記事を含む「PhotoScanを極める」21 - 23で述べている提案手法は、平行撮影などの弱いカメラの配置あるいはSfMが出来ない撮り方による悪影響を十分検出できないため、現在はおすすめしません。この記事を削除してしまうと「PhotoScanを極める」テーマの全体構成がわかりにくくなるので、残している次第です。

**********

 

本記事からは、前記事で述べた提案方法に関する、簡単なデモを示す。

【追記170928:小規模ながら実際の画像を使ったデモを、こちらのページに掲載の発表資料に収録した】

 

<概要>

デモには、これまでも使ってきたCGの谷状地形を撮影した、たった6枚の画像を用いる。ただし、「教科書的手順」のデモでの反省から、「弱いカメラの配置」にならないよう、鉛直下向きの画像だけでなく、傾きをつけて撮った画像も3枚入れている。下図に、最終的に得られた密な点群を先借りして鳥瞰図を示す。

 

 

前記事では、適切な設定を探すべき悩ましい設定項目として3つを挙げた。提案方法は本来、この3つの色々な組み合わせを検討できるのだが、このデモでは簡単のため、「2. バンドル調整『カメラを最適化』において最適化する内部パラメータ、つまりカメラモデルにおいて考慮する内部パラメータの選択」のみを検討する状況を考える:「キーポイント制限」「タイポイント制限」はデフォルトとし、「段階的選択」による疎な点群の削除は行わない。


以下、前記事に示した提案方法の手順に沿って述べるので、前記事と対照しながらご覧いただきたい。前記事に示した手順を再度述べることはしていない

 

 

<手順1>

特に説明を要しないだろう。ただし本デモでは理想的条件のデータを使っており、通常の設定だと上手く行き過ぎて面白くないため、わざと「最低」の精度設定で「写真のアラインメント」を行った。

 

 

 

<手順2>

手動タイポイントは下図のように6つだけ配置した。前記事によると、この段階ではまだ、対空標識にはマーカーを置かないのだが、ここでは便利のため、対空標識(4つ)のマーカーをも一緒に設置している。この後、対空標識のマーカーは「ツール」メニュー → 「エクスポート」 → 「マーカーのエクスポート」でファイル出力した後、「座標データ」ペインのコンテキストメニュー「マーカーを削除」により、一度削除した。

 

 

 

<手順3>

下図に今回の設定を示す。マーカー精度 (pix)について、厳密を期すためにはもっと大きな値を入れたいのだが、開発側の想定を大幅に超える値を入れると何か変なことが起こるかもしれないから、2000程度に抑えた。マーカー精度を少し変えても次の手順の最適化の結果が変わらないなら、実質的にマーカーが使われないレベルに達しているということだ。

 

 

 

<手順4>

このデモでは上記のように、「最適化する内部パラメータの選択」のみについて適切な設定を探す。まずはfのみを選択して「カメラを最適化」してみる。

 

 

 

自動タイポイントに関する再投影誤差のRMS(「RMS再プロジェクションエラー」)は0.0560736だ。

 

 

手動タイポイントの再投影誤差のRMS(「座標データ」ペインの「チェックポイント」行「誤差 (pix)」列に表示される値)は、0.703画素だ。

 

この要領で、最適化するパラメータを変えながら、様々な内部パラメータの組み合わせについて「カメラを最適化」を試す。パラメータを取り除く場合、「カメラキャリブレーション」ダイアログでそれを0にする必要がある

 

今回は徹底的に調べ上げたわけではないが、下表のような結果になった。「1」がついている内部パラメータが、最適化された内部パラメータであり、その他の内部パラメータは0となっている。この表の行は、手動タイポイントに関する再投影誤差のRMSが小さい順に並べている。自動タイポイントに関する再投影誤差のRMSは無次元の方であり、手動タイポイントに関するそれと比較はできないので注意されたい。なぜ無次元の方を載せるかと言えば、それがこの段階の「カメラを最適化」における最小化対象であり、最適化の成否や過適合の判断に必要だからだ。

 

表. 様々な内部パラメータの組み合わせに関するバンドル調整の結果

 

最適化される(カメラモデルに含められる)内部パラメータがfだけの状態から、k1, p1, 「cxとcy」のいずれかを加えると、自動タイポイントに関する再投影誤差のRMSは減るのに対し、手動タイポイントに関するそれは減らないか増えている。つまり、カメラモデルを複雑にすると、トレーニングデータ(カメラパラメータの調整に使ったデータ)へのあてはめの残差が減る(統計学的に当然)が、それとは独立なテストデータに関する推定誤差が増えている。これが過適合である。

 

今回の場合、全体を見ても、内部パラメータがfだけのときに、手動タイポイントに関する再投影誤差のRMSが最小である。従って、今回のデータでは「fだけ」という設定が良いと判断される。今回レンダリングに使用したBlenderのカメラは、中心のずれ、歪み、スキューなどが一切ないので、この判断は正解だ。大変シンプルな例だが、提案手法により適切な設定を探り当てられることを例示出来た

なお、最適化空間の多峰性により、最適化を始める(「カメラを最適化」を実行する)際の内部パラメータの有無・値が、最適化の結果に影響しうる。パラメータが1つだけ違う2つのケース(組み合わせ)を比べたとき、パラメータが1つ多い方が自動タイポイントに関する再投影誤差のRMSが大きいならば、少なくとも大きい方は大域的最適解(一番低い谷の底)ではなく局所最適解(一番低くない谷の底)に収束していることになり、どちらの組み合わせがよいかの判断ができない。PhotoScan上での対策は、色々な状態(内部パラメータの有無・値)から最適化を試みるしかないだろうが、それを効率よく行うためには、バンドル調整における最適化空間の性質を勉強する必要がありそうだ。