以前にOpenDroneMapの使い方を紹介しました。過去の記事ではDocker Toolboxのインストールから基本的な処理の手順を説明しました。Docker ToolboxはWindows7以降のWindows OSに対応しています。このDocker Toolboxとは別に仮想化機能が利用可能なWindowsに向けたDocker for Windowsが公開されています。今回は、OpenDroneMapをDocker for Windowsで動作させる際に少々勝手が違ったので簡単なインストールから基本処理の手順を紹介します。
Docker for Windowsのインストール
まずはWindowsの仮想化機能であるHyper-Vが有効になっているかを確認します。有効かどうかは「Windowsの機能の有効かまたは無効化」で「Hyper-V」のチェックボックスにチェックが入っているかで確認することができます。「Windowsの機能の有効かまたは無効化」を開く方法として一番手っ取り早いのはWindows10のCortanaで「windowsの機能」キーワードで検索することです。メニューから順に開いていく場合は、デスクトップ左下のWindowsメニューボタンから「設定」>「アプリと機能」を開き、画面右上の関連設定から「プログラムと機能」を開くと、表示されたウィンドウの左メニュー内に「Windowsの機能の有効かまたは無効化」があります。
次にDocker for Windowsのインストーラを入手します。インストーラは公式のDocker Storeから入手が可能です。リンク先のページから”Get Docker CE for Windows (stable)”を選択してダウンロードを開始します。なお、使用するOSはWindows10 Proです。
ダウンロードが完了したならば、インストーラを起動し、インストールを進めます。インストールは最初にAgreementに同意するだけで、後は自動で進みます。なお、インストールしようとしているWindows OSが非対応の場合は、インストーラ起動時に警告が表示され、インストールは中止されます。
Docker for Windowsの初期設定
インストール完了後、Hyper-Vマネージャーから仮想マシンが作成されているかを確認します。「Hyper-Vマネージャー」は、上と同じくCortanaで「Hyper-V」と入力するか、「設定」>「システム」を開き、画面左メニューから「バージョン情報」を選択して、画面右上の「その他管理ツール」を開きます。
新しく開いたウィンドウ内にHyper-Vマネージャーがあります。Hyper-Vマネージャーの画面左のツリーを展開していくことで、メイン画面に「MobyLinuxVM」があることを確認します。
また、Docker for Windowsのインストール完了後にDocker Hubへのログインを求められるので、アカウントを作成してログインしておきます。
仮想マシンを確認できたら次にDocker for WindowsのSettingsを開きます。Settingsは画面右下のタスクトレイにDockerのクジラアイコンがあるので、これを右クリックしてメニューから「Settings」を開きます。
ここではOpenDroneMapでデータの入出力をホストOSとやりとりするためにドライブの共有設定を行います。Settings画面の左メニューから「Shared Drives」を開き、仮想マシンとデータをやりとりするドライブにチェックを入れます。ウィンドウ右下の「Apply」を押すことで設定が適用されます。なお、設定時に管理者のパスワード認証を求められる、ファイアウォールが邪魔をして設定できないといった場合があります。ファイアウォールに関しては、例外設定を施すか、一時的に停止する等の対処が必要です。
以上の設定が完了したら、CLI(コマンドラインインターフェース)からDockerが動くことを確認します。CLIはWindows Powershell ISEを使用します。これもCortanaの検索ボックスに「Powershell ISE」と入力することで呼び出すことができます。後は起動したpowershellに以下コマンドを入力して、Dockerのバージョンが表示されれば完了です。
docker --version
KitematicでOpenDroneMapのイメージを取得
次にOpenDronMapのイメージを取得するためKitematicを使用します。Kitematicは大まかに言ってしまうとGUIでDockerが使えるようになるツールです。ここではイメージのダウンロードをKitematicで行います。KitematicはSettingsと同様にタスクトレイのDockerメニューから「Kitematic」を選択することで開きます。なお、初回選択時はインストーラダウンロードページへのリンクが開くので、そこからzipデータをダウンロードして下さい。ダウンロードしたzipファイルは解凍して、フォルダ名を「Kitematic」にしてからDocker.exeが保存されている以下ディレクトリに保存しておきます。
C:\Program Files\Docker\
保存したフォルダ内の「Kitematic.exe」を起動すると、Docker Hubアカウントへのログインを求められるので、ログインします。ログイン後は取得したコンテナの一覧とコンテナ検索画面が表示されているので、ウィンドウ上部の検索ボックスに「OpenDroneMap」と入力して見つかったコンテナの「Create」をクリックします。そこからダウンロードが完了するのを待ちます。なお、このKitematicの操作はイメージのダウンロードを視覚的に行っただけなので、この手順を飛ばして次項のコマンドをそのまま実行しても問題ありません。その場合は、初回実施時にイメージのダウンロードが自動的に行われます。
OpenDroneMapで基本処理
Kitematicでのイメージ取得完了後、powershellでイメージ一覧取得のコマンドを入力して一覧にOpenDroneMapが動作することを確認します。
docker run -it --rm opendronemap/opendronemap --help
後はDocker Toolboxで行ったのと同様のコマンドを実行します。まず、入出力を行う親ディレクトリパスを変数にセットします。
$img="C:\Workspace"
後は入力画像群のディレクトリ、出力ディレクトリの指定、必要に応じてオプションの設定を行い処理を実行します。
docker run -it --user root --rm -v ${img}\images:/code/images -v ${img}\odm_orthophoto:/code/omd_orthophoto opendronemap/opendronemap --mesh-size 20000 --orthophoto-resolution 40
処理完了後は指定したディレクトリにオルソ画像が出力されていることを確認します。
以上が一通りの手順となります。前回と同様にDockerを使ってはいますが、仮想マシンを構築できる機能があれば構築した仮想LinuxからOpenDroneMapを動作させることは可能です。その場合はLinuxでの処理コマンドがありますので、公式のWikiを参照されるのが良いかと思います。なお、入力画像が多すぎたり、ファイルサイズが大き過ぎたりすると途中で”killed”のメッセージを残して終了してしまうので、仮想マシンのスペックに応じた入力を気にする必要があります。
7 Responses
中森博昭
Hyper-Vマネージャーの画面左のツリーを展開しても、メイン画面に「MobyLinuxVM」がありません。
どうすればいいでしょうか?
中森博昭
更に、くじらアイコンのメニューにKitematicが無いですが、どうしますか?
中森博昭
メニュー表示の内容が変更になっているので、うまくインストールできません。
スクリーンショットを更新してください。
中森博昭
Hyper-Vマネージャーで仮想マシンが作成されていません。
どうすればよいでしょうか?
Ishida
中森博昭 様
コメントありがとうございます。5年前のdocker for Windowsのキャプチャとなっておりますので、dockerの更新に伴って画面や機能が変わっているものと思います。こちらの記事の方が最近の物になりますのでご参考までに
OpenDroneMapの使い方 – WebODMの紹介
中森博昭
回答ありがとうございました。
案内の新しいページでも、全く歯が立ちませんでした。
Dockerのインストールは出来るのですが、HYper-Vでの仮想マシン設定できず、さきにすすめません。
やはり、初心者には、説明だけではインストールすらできない。
Ishida
中森博昭 様
お役に立てなかったようで申し訳ないです。HYPER-Vの仮想マシン設定で止まっているとのことですが、使用されているOSはWindows10 Proでしょうか?
また、仮想マシンの設定が困難なようでしたら有料になりますが、インストーラー版も公開されているのでそちらをご検討されても良いかもしれません。以下、参考までにリンクを貼っておきます。
https://www.opendronemap.org/webodm/download/