【このテーマでは、きちんと記事にまとめる暇のない、速報的なメモ書きを掲載します。】
Metashapeで「写真のアラインメント」を実施した後の見落としがちなチェックポイントたちを、
走り書き程度ですがメモします。
他に、本記事では触れない基本的チェックポイントとして、次のポイントがあります。
- 点群全体の統計量(再投影誤差RMSなど)
- 内部パラメータの推定結果(「カメラキャリブレーション」ダイアログ、「歪曲プロット」含め)
- (すでにマーカーを置いている場合)マーカー関連諸量(「誤差 (pix)」「誤差 (m)」など)
1. 全画像アラインメントできた場合
SfMにおいてアラインメントできればOKという考えは間違いです。
「アラインメントできる」ことは(その画像に関する)カメラパラメータ推定の必要条件であっても、
高精度な推定の十分条件ではないためです。
「ギリギリ」アラインメントできた画像ばかりのグラグラなネットワークでは、良い精度は期待できません。
全画像アラインメントできた場合でも、「座標データペイン」の「カメラ」の部分を使って以下を確認します。各列を昇順・降順でソートしたり、上位のカメラを選択してモデルビューでその位置を確認したりします。
- 「プロジェクション」数(投影されたタイポイント数)が不十分な画像はないか
- そのような画像はたとえ何とかアラインメントできていても、カメラパラメータの推定精度は期待できない。
- 再投影誤差RMS「誤差 (pix)」が大きな画像はないか
- これによってブレなど異常のある画像を発見できることがある。
- (撮影位置を高精度に測位している場合、)光学中心の位置の推定残差「誤差 (m)」が大きな画像はないか
- RTK測位などの高精度測位ができなかった画像に誤って「チェック」を入れていた場合などに、気づくことができる。
- (撮影位置を高精度に測位している場合、)光学中心の位置の推定残差のXYZ成分それぞれに、測位誤差のレベルより大きい系統誤差はないか。
- 各成分を昇順・降順に並べ替えて、上位の画像の分布をモデルビューでチェックすることで、比較的短時間でチェックできる。
- はっきりした系統誤差がある場合、モデルに歪みがある、すなわち(これから作る密な点群に)ドーム状変形・ボウル状変形などの非線形系統誤差が生じると予想される。
- このチェックは、マーカーを使わずにモデルの歪みに気づける数少ない方法の1つである。「歪曲プロット」の「残差」のチェックが内部パラメータからのアプローチ(北斗?)ならば、こちらは外部パラメータからのアプローチ(南斗?)であり、両輪として両方チェックしたい。
2. アラインメントできない画像が生じた場合:
ある画像がアラインできない原因は、理屈上、下記の箇条書きのように分類できると思います。
アラインできないということは他画像との有効なマッチング(他のマッチングたちと比べて幾何学的に矛盾しないマッチング)が絶対的に足りないということを意味し、つまりは
被写体 and/or 撮影方法 and/or 解析方法に深刻な問題があるということですので、
アラインメントをやり直したり手動タイポイントなどを追加したりして何とかアラインしてやれば解決というわけではありません。
「マッチングを見る」コマンドなどを使って、次のどれに該当するか原因を推測すれば、
たとえその画像はどうしようもなくとも、有用な示唆が得られることがあります。
↑下記の要因の複数に該当してアラインメントできていない例。
- 他画像とのマッチング(有効・無効の合計数)が絶対的に少ない
- 他画像との重なり(オーバーラップ)が足りない
- テクスチャが不十分である
- 被写体の形状や風などの影響で、画像間で被写体上の各点の特徴の変化が大きい
- 画像自体にブレなど異常がある
- 他画像とのマッチングの大多数が「無効」と判定されている(「マッチングを見る」画面で、赤い線ばかりになっている)
- カメラパラメータの初期値が不適切であるなどの原因で、Metashapeによるマッチングの有効/無効判定が適切に機能しないため
- 画像間で、風などによる被写体の特徴のランダムな変位が大きいため
なお研究室では、たとえブラックボックスを含む複雑な解析技術を扱う場合でも、
それをブラックボックスのまま振り回して量をこなすことではなく、
1つ1つを確かめながら、理解に努めながら進む体験を目指しています。
楽しさ・興味を失っては元も子もないので徹底はできませんが、
最先端の複雑な技術でお金が動く時代に、
それと正しく付き合う技術者としての姿勢・リテラシーのようなものを養えたらと考えています。