PhotoScanを極める 21. 【本題】適切な設定の探し方 | 山口大学 空中測量(UAV写真測量)研究室の技術ノート

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

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

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

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

 

**********

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

**********

 

本テーマ「PhotoScanを極める」では既に20ページ(記事)を書いてきたが、いよいよ本題に入る

これまでの説明を多分に参照利用しつつ、この1ページに本題のすべてを凝縮したい。

 

 

<本テーマの趣旨確認と提案方法の特徴>

SfMには精度に影響する設定項目が多いが、PhotoScanでは多くの設定が内部で自動的に決まる(または、固定されている)。そのため、精度をそれほど気にしなければ、または設定の不適切さを空撮や現地測量(対空標識の測量)の量・質でカバーする余裕があれば、SfMは簡単に実行できる。

 

しかし、限られた空撮・現地測量データで出来るだけ精度を高めたい状況/性格のとき、残された設定項目に戸惑いやすい。前ページまでに述べた「教科書的手順」では、次のような悩ましい設定項目があることを示した:

  1. SfMの中心的な処理「写真をアラインメント」における「キーポイント制限」「タイポイント制限」


     
  2. バンドル調整「カメラを最適化」において最適化する内部パラメータ、つまりカメラモデルにおいて考慮する内部パラメータの選択

     
  3. 疎な点群の品質管理のために「段階的選択」で削除する点を選ぶときの基準とレベル(閾値)

 

このテーマの記事の目的は、SfMの各設定項目について状況に合った適切な設定を探すための、設定の良し悪しに関する合理的かつ現実的な判断基準を提案することであった。つまり、色々な設定を試行錯誤で試す状況で、それぞれの設定の良さを判断する方法を示すことである。


ここで「合理的」とは、統計学的な合理性を指している。カメラモデルが過適合の問題(例:余計な内部パラメータを考慮することで精度に悪影響を与える)問題を避けるために、バンドル調整に用いていないデータを使って評価した精度を、各設定候補の良さの判断基準とすることだ。このデータの正体は、バンドル調整に用いられないように工夫した手動タイポイントである。

また「現実的」とは、対空標識の設置・測量・回収は高くつくことを踏まえ、SfMに必要な対空標識の数を最小限(最小で4)に抑えることを指している。これを実現するため、対空標識を置いた標定点を、SfMの設定の調整において各設定候補の良さを判断するためには割かず、バンドル調整における外部・内部パラメータの調整に使うこともせず、密な点群などの最終的な成果物の精度確認用に残す検証用地点以外は、ジオリファレンスのためだけに使う。また、精度を維持するため、上記の手動タイポイントと、統計学における交差検証を利用し、慎重な解析を行う。

 

対空標識を減らす代わりとして上記のように、解析時に手動タイポイントの入力が必要になるが、これは必ずしもデメリットではない。第1には、これらの手動タイポイントも最終的にはバンドル調整に動員し、SfMの精度向上に役立てることができるからだ。第2には、対空標識に関しても、画像上での自動判読が可能な対空標識を置いてそれが成功した場合を除いて、画像座標の手動調整が必要になるからだ。


<提案方法によるSfMの手順>

このテーマの記事で私が提案したかったSfMの手順は、ずばり、次の通りである。

  1. ガイド付きマーカー設置を可能にするために、「教科書的手順」のStep 5まで進める。
    ここで得られるカメラパラメータの精度は、マーカー設置の作業効率に影響するだけなので、設定はデフォルトなどで構わない。
     
  2. 手動タイポイントを、対象領域に広く分布するように、また対空標識に近接しないように設置する。
    対空標識には、まだマーカーを設けない。
     
  3. 手動タイポイントの画像座標について想定する誤差のRMS(「座標設定」ダイアログの「マーカー精度 (pix)」)を、非常に大きく(例:2000 pix)設定することで、「カメラを最適化」で行われるバンドル調整における手動タイポイントの重みを実質的にゼロにする
    これにより、手動タイポイントは、画像座標に関するフェアな検証用データとなる。
     
  4. 上記の悩ましい設定項目の設定を様々に変えながら、Step 4の「写真をアラインメント」からStep 7の「カメラを最適化」までを繰り返し、Step 7終了時点での、手動タイポイントの再投影誤差のRMS(「座標データ」ペインの「チェックポイント」行「誤差 (pix)」列に表示される値)を判断基準として、この値が出来るだけ小さくなるような設定を探す
     
  5. 用いる設定を決めたら、その設定で、Step 4からStep 7までを実行する。
     
  6. 手動タイポイントをバンドル調整にも活かしたいなら、「座標設定」ダイアログの「マーカー精度 (pix)」「タイポイント精度 (pix)」を修正した上で、ここで「カメラを最適化」を行う。
    その場合、ここまで非常に大きな値を設定していた「マーカー精度 (pix)」には、上記4で最小化した、手動タイポイントの再投影誤差のRMSを入力しておく。「タイポイント精度 (pix)」には、Chunk 1の「情報表示」で見られる画素単位の「RMS再プロジェクションエラー」を入れる(Step 11参照)。
     
  7. 対空標識のうち、SfMではなく最終的な成果物の精度検証のために取り置くもの以外について、マーカーを設置し、現地測量した世界座標を入力する。
     
  8. 「座標データ」ペインに表示されている対空標識のうち、1つだけチェックを外す。
    つまり、1点だけが検証用地点(「チェックポイント」)、他の全てがGCP(「コントロールポイント」)となる。ジオリファレンスには最低3つのGCPが必要だから、対空標識の必要最低数は4である。
     
  9. 「更新」ボタンを押し、ジオリファレンスを更新して(「カメラの最適化」を行わないところがミソ)、「チェックポイント」に関する世界座標の推定誤差(「誤差 (m)」)を記録する。
    本方法では、Step 12の状況と違い、これらのマーカーは最適化に全く使われていないので、「チェックポイント」はフェアな検証用地点となっている
    ここで、誤差 [m]欄に表示される値は、誤差のX, Y, Z成分を、三平方の定理で合成したもの(現地測量した世界座標が表す点と推定した世界座標が表す点とのユークリッド距離)だ。X, Y, Z成分別に精度評価する場合は、「エラーを表示」ボタンを押して表示される各成分の誤差を記録する必要がある。
     
  10. 上記8, 9を、チェックを外すマーカーを1つ1つ変えながら、世界座標を現地測量したマーカー全てが1回ずつ検証用地点になるまで繰り返す。
     
  11. 各マーカーが検証用地点になった際に記録したその世界座標の推定誤差の、全マーカーに関するRMSを計算する。
    例えば、現地測量した対空標識が5つあれば、上記8, 9を5回繰り返して得られる5つの「誤差 (m)」のRMSを計算する。これが統計学的に合理的な、SfMの精度の指標になる。この精度評価方法は、leave-one-out cross validation(交差検証)と呼ばれる統計学のテクニックを、ジオリファレンスに使われる7自由度の線形変換モデルに適用したものだ。交差検証の利用により、多数の対空標識を検証用地点として設置・測量する必要がなくなり、必要な対空標識の数は GCPの数(最低3)+1 に抑えられる
     
  12. 最終的な成果物に用いるジオリファレンスを得るため、世界座標を現地測量したマーカーの全てにチェックを入れ、最終的なジオリファレンスの「更新」を行う。
    このとき「チェックポイント」は1つもなくなるが、先ほどの交差検証の際よりGCPが多いわけだから、期待値としては交差検証で評価した精度と同等以上の精度が得られる。

 

<注意>

  • この方法は、高度・画角などにもよるが、大きな対象領域を一度に解析するには適さない。GCPをバンドル調整に動員しないということは、画像間のマッチングのみを根拠にカメラパラメータを推定するということであり、その際に点群の相対的な配置を、GCPで矯正しないということだ。イメージとしては、画像を縦横に繋げば繋ぐほど、誤差が蓄積してしまうわけである。
  • 大きな領域や河道のように細長い領域を対象にする場合、領域を小さなブロックに分割して解析を行い、事後に成果物を繋げることが推奨される。どのくらい小さければ良いのか、は条件次第であり、対象別の経験的知見の蓄積が望まれる。
  • 同様にこの方法は、「教科書的手順」で示した例のような弱いカメラの配置」には適さない恐れがある。例えば、もし撮影が完全に平行なら、内部パラメータのfは原理的に不定となる。撮影の段階で、向きに変化をつけて撮るなどの工夫により、GCPがなくともバンドル調整が破たんしないような画像セットを準備しておくことが望ましい。
  • 対空標識を外部・内部パラメータの調整に使わず、ジオリファレンスのためだけに使うこと自体は、突飛なことではなく、James and Robson (2014)やEltner et al. (2016; doi:10.5194/esurf-4-359-2016)によれば、SfMの本来のやり方である。提案方法の特徴は、さらに試行錯誤による設定の調整を、統計学的に合理的に行えるようにしたところだ。
  • 180126更新:このページと合わせて、こちらのページもお読みください。小規模ながら実際のUAV空撮写真を使ったデモと、より最新の情報があります。本テーマの次ページからはCGを使ったデモになります。