OpenDroneMapの使い方 – WebODMの紹介

with 3件のコメント

OpenDroneMap(ODM)はドローンで撮影した画像を処理するオープンソース(無償で使用可能でソースコードが公開されている)ソフトウェアです。ドローンで撮影した画像を処理する有用な機能が提供されています。そしてWebODMとは、ODMの機能をGUIで操作させるようにし、描画機能をかね揃えたソフトウェアです。

OpenDroneMapの主な機能

OpenDroneMapのプロジェクトでは、GUIで操作するWebODMとコマンドラインで自動処理させるODMという主に2つの機能が開発・提供されています。コマンド操作が苦手な人、ユーザフレンドリーなインターフェースが必要な人はWebODMを使うのが良いと思います。大量のデータがあり、機械的に処理をしたい、処理の再現性が必要な人はODMが良いでしょう。

また、OpenDroneMapの最大の特徴はオープンソースであることです。ドローン画像を処理する代表的な有償サービスはPix4Dでしょう。業務で最先端な事を行いたい、あらゆる自主保守などから解放されたい、などといった要望がある方はこのような有償サービスを使用することが良いでしょう。費用を抑えたい、基本的な機能があれば十分という方であればOpenDroneMapはおすすめです。

OpenDroneMapで提供される処理機能は以下に挙げられます。

  • オルソモザイク
  • 点群データ処理(LiDARなどのデータをジオリファレンス、フィルタリング、分類など)
  • 3次元データの作成・処理など(地形図、標高、等高線などの作成や測定など)
  • 植生指数の計算
  • Webブラウザ上でのデータ描画

WebODMの利用方法

WebODMはWindows、Linux、Macの様々なOSで簡単に動作が可能です。なぜならDockerという仮想環境ツールを使用して動かすことができるからです。

Dockerでのインストール方法やODMの基本的な使い方はこちらで紹介しています。

しかし、Dockerでの利用には制約がある可能性があります。WindowsやMacでは、Dockerに割り当てるCPUのコア数やメモリ容量の都合上、動作が安定しない場合があります。非常に広範囲の画像をオルソ処理する際、より多くのCPU、メモリ、ディスク容量をDockerに割り当てる必要があります。

処理がうまくいかない場合が発生したら、 Dockerを介さず、PCに直接インストールして利用するのが良いです。また、WindowsでDockerを利用する際、WindowsのProfesional版が必要となるため、全てのWindows OSで気軽にWebODMを利用できるというわけではありません。

一旦整理すると、WindowsやMacでWebODMを利用する方法として、以下が挙げられます。

  • Dockerを使ってビルドする
  • ソースコードからビルドする
  • インストーラを購入する(WindowsとMacそれぞれ$57 コチラ

コマンドラインのODMのみを利用する場合、「ソースコードからビルドする」は比較的容易でしょう。しかし、WebODMの場合、「Dockerからビルド」か「インストーラを購入する」のどちらかが良いと思います。なぜなら、WebODMは、DjangoというPython言語のWebフレームワークで動いており、動作させるためにPostgreSQL、Redis、Nginx、Gunicornといった、データベース、キャッシュサーバ、Webエンジンなど複数の環境を用意する必要があるからです。これらの環境構築は、Dockerを利用すれば自動的に行ってくれます。

特殊な環境で利用したいなどといったことがない限り、DockerでWebODMを動かすことが最も手軽で確実です。Windows環境のDockerでの処理が不安定・処理が遅いなどといった場合、Linuxのコンピュータで試みるのが良いと思います。不要なコンピュータにUbuntuなどのLinuxをインストールして、利用することもできます。

さらに、LiveODMというのがあります。こちらは、既にWebODMの環境が構築されているLinux OSのイメージファイルです。このイメージファイルをUSBメモリ書き込みます。USBメモリをコンピュータに差し込み、起動させることで、コンピュータのディスクにインストールさせることなく、WebODMを利用することができます。しかし、大きな処理はできません。あくまでお試しでの利用です。気に入れば、そのコンピュータにインストールし、WebODM専用の環境を用意することができます。

WebODMのインストール方法

ここでは、Ubuntu 20.04でのWebODMの利用法について紹介します。端末を起動し、以下のコマンドを入力してください(コメントアウトは無視してください)。

# 適当なディレクトリで以下のコマンドでWebODMのソースコードリポジトリをクローン
git clone https://github.com/OpenDroneMap/WebODM --config core.autocrlf=input --depth 1

# WebODMにディレクトリを移動
cd WebODM

# 以下のコマンドでDockerによる環境構築し起動
./webodm.sh start

以上です。メッセージがたくさん出て一通り終わった後、Webブラウザを開き、 http://localhost:8000/ のURLアドレスを開いてください。アカウント作成画面が表示され、適当に入力すると、以下のような画面が表示されるはずです。

Dashboardは、プロジェクトを管理するページです。プロジェクト単位で撮影したドローン画像のオルソ処理などを行います。

Lightning Networkは、ODMが提供するクラウドサービスにアクセスする機能のようです。利用には登録が必要であり、コストがかかります。

Diagnosticは、動作しているコンピュータのディスク容量やメモリの使用状況が確認できます。

GCP Interfaceは、Ground Controll Pointを作成する機能です。画像ファイルをアップロードし、地図と重ね合わせ、自ら点を打ち、GCPを作成します。

Processing Nodesは、処理ノードを管理する機能です。ノードを増やして、複数の画像処理を行なったり、機能の設定や制約を定義することができます。

管理は、アカウント、色テーマ、プラグインの管理を行います。

WebODMのオルソ処理

WebODMを使ったオルソ画像の処理方法について紹介します。ここでは、OpenDroneMapが提供するデモデータを利用します。デモデータはコチラで公開されています。たくさんありますが、まずbellusを試してみましょう。bellusのリポジトリをクローンしてください。

WebODMのDashboardを開いてください。既にあるFirst Projectでも構いません。Select Images and GCPをクリックしてください。ファイル選択のウィンドウが表示されます。先ほどクローンしたbellusリポジトリ内にあるimagesディレクトリのjpg画像ファイルを全て選択してください。すると以下のように表示されると思います。ReviewボタンをクリックするとStart Processingに変わります。ボタンをクリックすると処理が開始されます。コンピュータのスペックにもよりますが10分以内に終わると思います。

処理状況はプログレスバーで逐次確認できます。完了したら以下のように表示されます。

View Mapボタンを押してみましょう。処理されたオルソ画像が、Webマップ上で表示されます。DSMの地形図も確認できます。

View 3D Modelボタンをクリックすると、点群処理されたデータを確認できます。

Download Assetsボタンでは、処理されたオルソ画像、DSM、点群LAZファイル、パラメータファイルや処理品質結果レポートのpdfファイルなどを取得することができます。処理結果レポートでは、処理精度やデータの概要を確認することができます。

今回利用したbellasのデータは、画像のEXIF情報に座標情報が含まれているため、GCPのファイルを与える必要がありません(用意はされています)。GCPの情報がない場合、オルソ画像の処理はできません。GCPはUTM座標系のみで対応しているようです。

最後にWebODMのプロセスを止めます。端末上で以下のコマンドを実行してください。

./webodm.sh stop

まとめ

以上がWebODMの簡単な紹介です。今回は導入なので、より詳細な設定方法などは省いてます。今後、 WebODMを利用した例など紹介します。

3 Responses

  1. 青木広行
    | 返信

    はじめまして。
    ODM情報をさがしGeo-quantz.comにたどり着きました。

    7月にセンサーサイズが大きくて価格がそれなりのDJI Air2Sをあまり考えずに購入してしまいました。
    仕事が市役所の林務なので、森林の状況を空から見ることができればよいと簡単に考え使ってみることに。

    タイミングよくODMのウィンドウズインストール版が販売されているので、購入しwindows10homeにインストールしたところ、動作して森林のオルソ写真を作ってくれます。オルソ写真を作ってからわかったのですが、自動飛行ルートを設定できるMavicシリーズを購入すべきだったと今更ながら反省してます。それでも、初めてのドローンなので、飛行ルートを確認しながら2秒間隔で写真を撮ることによりオルソを撮ることができたので、いろいろ模索しようと思ってます。

    オルソ写真ができるとQGISで表示できるのが非常にうれしいです。QGISも地図ビューワーと測量データを重ねて使用している状況だったので、ドローンからの写真を張り付けることができたのは森林では1,2mの誤差は完全に許容範囲なので驚きでした。

    立体表現ができるので、Google航空写真だけでは難しかった所有境界判別に使えたり、森林の生育のばらつきなど現地で歩くだけでは比較しにくかった事例を簡単に見ることができたり感激してます。立体表現ができるだけでなく地面の傾斜、距離などを測ることができるので、これを3Dデータビューワーで簡単に表示できないか調べています。残念ながら3Dについては全く知識がないので、表示に必要なファイルがわからずどんなビューワーがあるのかもわかりません。

    取り留めもない話になりましたが、ODMの使い方、立体データのQGIS表示、ビューワー表示などについて教えていただければありがたいです。

    追伸 メールでも同じ内容を送らせていただきましたが、下記のメールアドレスではなんとなく届かない気がしてこちらに記入しました。

    • Kuwata
      | 返信

      青木様、

      コメントいただきありがとうございます。
      回答が遅れて申し訳ありません。また、頂いたメールへの返信ができずに誠に申し訳ありませんでした。

      3Dデータのビューワーで最も良いと思われるのは、potreeだと思います。
      こちらは、ブラウザで3Dデータを閲覧することができます。ただ、Lasファイルなどを専用のフォーマットへ変換する必要があります。
      potreeは、WebODMでも利用できるようになっております。
      potreeも変換ツールのどちらもGithubで公開されています。
      使用方法については、そのうちブログで公開する予定です。

      QGISで3Dデータを他のGISデータとオーバレイするプラグインは今の所ないように思います。lasデータを別ウインドウで表示するツールはありますが、動作が遅く、使いづらいと思います。

      よろしくお願いいたします。

      • 青木広行
        | 返信

        kuwata様

        potree紹介ありがとうございます。

        QGISで無理やりlasデータを表示させてみましたが、点の集合が表示されるだけで、WebODMで3D表示したように臨場感ある表示できなくて残念でした。

        potreeはWebODMと同じインターフェイスなのでエンジンが同じなんでしょね。ローカルでlasデータをビューワーが欲しいですね。

        すこしづつ勉強してゆきたいと思います。
        ありがとうございました。

Leave a Reply to 青木広行 コメントをキャンセル

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください