UAVで撮影した写真をマッピングに利用しようとした場合、Sfm/MVS(Structure from Motion / Multi-View Stereo)ソフトウェアを使い、3次元モデルやオルソ画像を作成します。Sfm/MVSとは写真や動画から撮影位置を推定し、3次元形状を復元する技術を指します。
Sfm/MVSソフトで広く流通しているのはPhotoscanやPix4Dだと思います。共に撮影した画像データを入力して、処理することでほぼ自動で3次元モデルやオルソ画像を作成することができます。ただし、Photoscanで¥500,000、Pix4Dで¥1,270,000と個人で気軽に購入できる金額のソフトではありません。
そこで、フリーで処理を可能とする方法としてGitHubで公開されているOpenDroneMap(https://github.com/OpenDroneMap/OpenDroneMap)を紹介します。OpenDroneMapはGitHub上で開発が進められており、無償で入手可能です。ここでは、WindowsでOpenDroneMapを動作させる手順を紹介します。
Docker環境の構築
DOCKER TOOLBOXはWindows及びMac OS X上にDocker環境を簡単に構築・運用するためのアプリケーションセットです。なお、Dockerについての詳細は省かせてもらいます。アプリケーションが動作するための環境をハードウェアに依らず構築できるもの程度の認識で良いかと思います。
公式サイトからインストーラを入手し、インストールを進めます。ここでは、DOCKER TOOLBOXで作業を進めます。
・DOCKER FOR WINDOWS:Windows 10 Professional または Enterprise 64-bitの場合
https://www.docker.com/products/docker#/windows
(WINDOWS10の場合のインストールから使い方をまとめました)
・DOCKER TOOLBOX:上記以前のバージョンの場合(Windows7以降)
https://www.docker.com/products/docker-toolbox
Docker環境構築にはOracle VM Virtualboxを必要とします。Virtualboxをインストールしていない場合は、インストール途中のVirtualboxのインストールにチェックを入れておきます。
DOCKER TOOLBOXのインストールが完了すると、デスクトップに”Docker Quickstart Terminal”というショートカットが追加されているので、これを実行すると以下のような画面が起動します。
OpenDroneMapのインストール
提供元のWikiより、以下コマンドを入力してインストールを進めます。ソースダウンロードも行うので、少々時間が掛かります。
git clone https://github.com/OpenDroneMap/OpenDroneMap.git
cd OpenDroneMap
docker build -t packages -f packages.Dockerfile .
docker build -t odm_image .
※追記:3行目のbuildが失敗する場合があるみたいです。動かなければ以下試してみて下さい。
docker build -t packages -f Dockerfile .
OpenDroneMapの実行
シンプルな処理を行います。まず、処理したい画像を任意のディレクトリに保存します。(処理用のサンプルデータ)
以下コマンドで保存場所のショートカットを用意します。ここでは、サンプルデータを解凍してデスクトップに保存した場合の設定になります。
export IMG=/c/Users/xxxx/Desktop/odm_sample
※”xxxx”の部分には自分のユーザディレクトリ名を入力してください。
指定したディレクトリ内の画像に対して、以下コマンドで処理を実行します。
docker run -it --user root \ -v $IMG/images:/code/images \ -v $IMG/odm_orthopoto:/code/odm_orthophoto \ -v $IMG/odm_texturing:/code/odm_texturing \ --rm odm_image
1行目:root権限での実行宣言(動かなければ、it以降を省いて”docker run \”にしてみる)
2行目:入力画像ディレクトリの設定
3行目:オルソ画像の出力ディレクトリの設定
4行目:3Dモデルの出力ディレクトリの設定
5行目:処理終了後のコンテナ削除(–rm)と実行イメージの指定
5行目の末尾にオプションを追加することで処理パラメータを調整可能です。各オプションはWikiに一覧があります。
処理結果の確認
処理が完了すると、入力画像のディレクトリに”odm_orthophoto”、”odm_texturing”と”pmvs”フォルダができていることが確認できます。
“odm_orthophoto”にはTiff形式のオルソ画像があるので、
QGIS(http://qgis.org/ja/site/)等で確認します。
“odm_texturing”にはobj形式の3Dモデルファイルが保存されています。このファイルはMeshLab(http://www.meshlab.net/)等の3Dモデルビューワで読み込みが可能です。
3Dモデルの閲覧方法として、SketchfabというWebサービス上にアップロードされたモデルを閲覧する方法があります。この下にある画面がSketchfabにアップロードしたモデルリンクを張り付けたものです。中央のボタンを押すことでモデルがロードされるので、マウスドラッグで好きに動かしながら閲覧することができます。
他、オプションの指定等によって出力の調整も可能ですので、色々と試してみて下さい。
※OpenDroneMapをGUIで使えるWebODMの使い方の紹介記事を公開しました。
OpenDroneMapの使い方 – WebODMの紹介 – GeoQuantz LLC (geo-quantz.com)
Leave a Reply