グループ会社がPhantom4RTK(以下P4RTK)を購入したので色々と検証してみました。
以前のBLOGでも書きましたが販売店でもないし、褒めてもけなしてもなんの得にもならない立場なので正直に書きます。あと、レーザードローン(PPK)を飛ばした経験から、GCP無しでそんなに精度が出るわけないじゃんとネットにある検証について否定的な考えを持っていました。
今回検証した場所には12個のGCPが設置されています。これらはRTKで数回観測し平均値を出した2点からTSで設置し、レベルで高さを観測したものです(1~9)。3点は建物の高い場所に設置するためノンプリで観測しました(11~12)。
いくら撮影箇所が精密に観測出来ていたとしても、セルフキャリブレーションを行い焦点距離等を推測するので撮影方法が重要になってきます。推測がしやすいように垂直写真だけではなく斜め写真も撮影し解析を行いました。
昨年、facebookのドローン研究会のコメントにも書いたのですが、
SFMの処理で難しいのが垂直方向(カメラの奥行き方向)の誤差だと思います。
垂直方向の誤差を生じさせる原因にセルフキャリブレーション時の焦点距離の誤まった推定があります。
ファントム4クラスで高度70mであれば焦点距離が0.01mm推定を誤っただけで地面の標高は8cm変わってしまいます。
焦点距離の推測をする場合に難しい要因として、同高度での並行移動での垂直写真と、取得するモデルが同一平面(GCPの標高の差が無い)があると思います。
この条件の時にセルフキャリブレーションでSFMの処理をした場合、Z方向(垂直方向)に伸びたり縮んだりしたモデルが出来たりしますが、これはセルフキャリブレーションをした焦点距離が大きく違って推測されてしまったからです。
斜め写真を入れるとモデルが同一平面であっても、カメラ方向に奥行き(手前と奥ではカメラとの距離が変わる)が出るために焦点距離が推測しやすくなります。
また、PHANTOM 4 RTK等のように撮影位置が正確な場合においても、GCPを設置しない場合で撮影高度が同一の場合は焦点距離の推測が難しいので斜め写真や、高度を変えての撮影を取り入れるのが有効だと思います。
という自論が正しいのも証明する時がきました (笑)
すべての検証において
- 撮影枚数は垂直・斜め合わせて60枚程度
- 地上解像度は2cm(対地高度72m程度)
- 解析はMetashape Professional(旧Photoscan)を使用
- GCPは検証点としてのみ使用
- 段階的選択で画像数2枚のものは削除
- プロジェクションエラーは0.3以上のものは削除 で行いました。
1.RTKでの解析
ネットワーク型RTKでは撮影位置の高さは楕円体高で保存されています。Metashape Professionalではジオイド補正がうまく出来ないので(検証中)、撮影位置をCSVで吐き出しジオイド高(地理院サイトから参照)をEXCELで引き算してMetashapeに戻してやる必要があります。
2.D-RTK2での解析
ベースステーションを既知点に設置するのですがマニュアルが説明不足。GS RTKアプリではアンテナ高さをプラスした標高を入力します。ベースステーションとリンクしたら機体を再起動してやる必要があるなど何か仕様的に不思議な感じです。あと気泡もあるんですがアンテナがちゃんとまっすぐに立ってるかどうか不安。追加の気泡で設置するも脚の長さでしか調整出来ないので難しい(笑)。まあジオイド高を計算せずに使えるのでその分楽かな。
※追記 D-RTK2 の既知座標の入力ですが楕円体高を入力するのが正解のようです。RTKの計算を行っているので確かに楕円体高の入力になってきますよね。
3.PPKでの解析
D-RTK2で撮影した時に作成されたRINEXファイルやタイミングファイルを用いてPPK処理を行いました。以前の記事で書いた方法です。ただ、高度を変えての撮影などマニュアル飛行した場合はこれらの必要なファイルは作成されないので注意が必要です。
PPKの処理では高さの誤差が他と比べて大きくなっています。他の方法では撮影時のカメラ精度も一枚づつEXIFに入っているのでこの数値を使用していますが、PPKの場合は全てのカメラ精度を3cmで解析しました。ここを1mmとかにして完全固定で解析すると垂直誤差も2cm程度に収まりました。なんで誤差が少なくなるのか不明ですが・・・
D-RTKとPPKでの撮影位置を比較するとRMSEで水平方向で1cm程度、垂直方向で2cm程度の違いが出ていました。
これが全ての検証結果ですが地上解像度2cmでこの水平・垂直誤差の数字は自分的には信じられませんでした…。誤差の少ない検証点ではXYZ全てにおいて1cm以下のものもあります。撮影位置の誤差が数センチはあって、セルフキャリブレーションも完全では無いずなのに何でmm単位の誤差???
Metashapeの処理的に何かあって良い方に数字がでているのかと色々やってみましたがそうでも無いようです。
レーザードローン(PPK)とかでは機体位置の誤差、レーザー誤差と要因が蓄積してくるのでこんな数字になるはずがありません。
色々と考えたのですがSFMって解析前の撮影位置がある程度の精度を持っていれば、撮影位置の推測がしやすくなり結果的に精度を高める事が可能なのでしょうか?(mm単位まで!)でなければこの数字は考えられません。
いくら撮影位置の推測が良くなってもセルフキャリブレーションがきちんと推測出来ていないとダメなので、やはり撮影の方法が精度には大きく関わってきます。やはり斜め写真を入れるのと入れないのでは差が出てきます。
以下はネットワークRTKでの撮影で垂直写真のみで解析したものですが、このだけの誤差が出てしまうので斜め写真の有効性は確実のようですね。
ということで、信じたく無いのですがP4RTKは撮影次第でかなりの精度が期待できるようです。何とか穴を見つけたかったのですが本当に残念です。というかSFMって本当に凄い技術ですね!両方に驚かされてしまいました。
そういえばありました、一定の高度しか飛行できない大穴が!(笑)