ついに決定版発見!WebODMはnodeODMやMicMacのGUIとして機能します。MicMacのようにDEMやオルソの作成も可能なうえ、GCPファイル作成のGUIも備えています。2022年2月時点でベストな無料ツールです!
WebODMはフリーでオープンソースのドローン画像処理ソフトです。
インストールは以前より簡単になっています
ネットで調べると、WebODMのインストールは結構難しいというレポートがいくつも出てきます。まずWindowsネイティブではなく、Dockerという仮想化ソフトの上に構築するとか、DockerだとメモリやCPUを無駄にするのでがんばってWSLにインストールした方が良いとか、なかなか面倒そうです。しかし、決定版の解説をYoutubeで見つけました。英語ですが、画面の通りにやれば、あっという間にインストールできてしまいました!しかも2022年2月現在、Dockerも進歩してWindows純正のWSL2上で動作するようになっており、おそらくメモリやCPUの面でも無駄が少なくなっているものと思われます。
ビデオでも紹介されていますが、簡単インストーラは有料です。無料で使うためにはマニュアルでインストールしましょう。日本語の説明も作りました。
まずは動かしてみよう
ビデオのとおりにインストールすると、Docker Desktopにwebodmというコンテナができています。このコンテナが動作中の緑色になっていることを確認し、もし灰色ならSTARTボタンを押して緑色になるまで待ちましょう。(逆に、終了するときは関連ブラウザを閉じてSTOPです。)
webodmコンテナが緑色なら、左の三角をクリックして展開し、webappの行のOPEN IN BROWSERボタンをクリックします。
するとデフォルトブラウザにWebODMのタブが追加され、以下の画面が表示されます。ブラウザに表示されてはいますが、同じPC上のサーバであり、オフラインでも動きます。
GCPファイルを作成する(GCPを使わない場合は不要)
このプロセスが、素のMicMacにはない、WebODMの美点です!
左側の「GCPインターフェイス」タブをクリックし、「Load existing Control」をクリックして、あらかじめ用意しておいたGCP座標定義のテキストファイルを開きます。下図右側がそれです。一行目は座標系のEPSGコード、2行目以降、点名、経度、緯度、標高がスペース区切りで記入されたものです。座標系は、WGS84かUTMしか受け付けないようです。平面直角座標系を試しましたがエラーになりました。
「Load」をクリックすると、右側の地図に読み込んだGCPが灰色の点で表示されます。
次に、「Choose images」をクリックしてGCPが含まれていそうなjpg画像をロードします。間違えてGCPが含まれていないものをロードしても削除できますので大丈夫です。(なお、下図右側のGCPは緑色になっていますが、既に数枚の画像で作業を行った後の画像だからです。画像とGCPの対応が定義されると右側の対応する点が緑色になります。)
基本的に、左の画像をクリックして1枚開き、右側のGCPとの間に対応をつけていくわけですが、注意点があります。画像を開いたとき、下図のようにオレンジの点が左右に現れますが、オレンジの点は2つとも吹き出しにあるDeleteを押して削除してください!その上で、左の画像の右上にある+マークをクリックし、左画像上でGCPの場所を灰色の点でマークして、次に右の地図で対応するGCPをクリックします。すると左の画像上の点が緑になり、GCPの対応関係が確立します。
同じ画像に複数のGCPが写っている場合は、この作業を繰り返します。下図では左画像の左上にオレンジの小丸が1つありますが、最終的にここには関係が確立されたGCPの数だけ緑の小丸が現れます。
左画像左上の「<」をクリックして画像選択画面に戻り、他の画像に対しても同じ作業を繰り返します。
画像を開いたときオレンジの点が左右に現れるのは、事前にGCP座標定義ファイルを作成せず、右側の地図画像から目視でGCPを選ぶ使い方を想定しているのでしょう。平面上の位置あわせをするだけで、標高の精度を気にしないならそれも一法ですね。
すべての画像の処置が終わったら、右上のEXPORT FILEをクリックして、GCPファイルを保存します。なお下図では、少なくとも5個のGCPがあるべきだ、との警告が赤字で出ていますが、処理自体は行うことができます。
いよいよ画像の合成です!
ダッシュボード右上の「+プロジェクトを追加」ボタンを押して名称を決め、「+Create Project」をクリックします。
次に、「画像とGCPを選択」をクリックし、先ほど作成したgcpファイルと画像をまとめて選択して「開く」をクリックします。データが「アップロード」されますが、同じPC内にインストールされたNodeODMへのアップロードであり、外に出て行っているわけではありません。
なお、GCPがなければ画像だけでもOKです。その時にはExifのGPS情報を使ってジオリファレンスされます。GPSの精度によっては位置ずれが生じますが、目的によってはそれでも十分なこともあるのではないでしょうか。
下図の「編集」ボタン等からいろいろ設定できそうですが、ここはデフォルトのままとし、「レビュー」ボタンを押すと設定が確定されて「レビュー」が「処理開始」に変わります。
「処理開始」をクリックすると、下図のように処理が進み、終了すると「処理」のプログレスバーが「完了」に変わります。たったこれだけです!SfMとかMVSとか難しいことは一切表に出てきません!
結果をみる
プロジェクト右側の「マップを表示」ボタンをクリックすると、たちまちオルソが表示されます。下図は背景をOpen Street Mapにしていますが、デフォルトは衛星画像です。オルソのほか、植物健全度と表層モデル(DTM)が生成されているようです。
下図ではDTMとともにGCPとカメラ位置も表示させてみました。もちろんオルソやDEMはExportしてGISで利用できます。
さらに右下の「3D」ボタンで3D表示できます。素晴らしい!
ちなみに、他のソフトと同じ58枚の画像を処理したときの時間はわずか20分弱でした。点群の密度等はまだ検証していませんが、他のフリーソフトと比べると、圧倒的な速度です!
ことねちゃん
ぼくたちでもマウスをつつくだけでできちゃったよ!
いかがでしょうか。SKラボは感動しました。これぞ素人・個人のための写真測量ツールです。
Have fun!
コメント
とても参考になります。
的ハズレな質問かと思いますが、質問させていただきます。
Web odmで作成されたデータを計測すると標高が地理院地図の標高と相違します。
gcpを設置しないと駄目なのでしょうか?
仕事のつごうで長らくブログ対応できませんでした。ごめんなさい。さて、元のデータに何を使っておられるかによるのですが、WebODMのようなソフトはGCPを与えないとカメラの座標を搭載されたGPSの値を元に推定します。搭載GPSが与えるZ値は標高ではなく楕円体高だったり、標高でも鉛直方向の精度は水平方向より低かったりするので、どうしても高さ方向の誤差が目立ちます。気づきにくいですが地形のゆがみや傾きなども生じていることが多いです。GCPを与えることでカメラの座標やカメラレンズのパラメータなどがより正確に求められ、より正確な地形が求まります。UAVのGPSが特に正確な場合(RTK-GPS搭載などの高価なUAV)ならともかく、地図と合わせたいならGCPは必須だとお考え下さい。