OpenDroneMap を Windwos 10 で使う。(WSL+Ubuntu20.04編)

いやいや、もう使えてますよという声が聞こえそうだが、

はご存じだろう。ここではWindows10 nativeで使う方法のメモである。

とはいえ、そんなの必要あるのと思われるだろうが、メモリ管理の問題でDockerを利用する方法があまり融通が利かない。

結局DockerはHyper-V

 なんだよね。メモリ割り当ても排他的に必要だし、それなりにCPU能力も要求する。

個人的にだが、だいたい30haの正方形エリアで8GBytes以上のメモリを占用する。

そうなると、Windows上でDockerを走らせるとメインメモリは16GBytesは必要となるだろう。

Windows10で8GBytes、Dockerで8GBytesくらい。でも経験上これではOpenDroneMap(以下ODM)は小エリアでしか動かない。16GBytesのメモリが入っているなら目一杯使いたいじゃないですか・・・

Linux(UBUNTU)上で動かすと・・・

ネイティブのUbuntuで動かせば30ha程度なら8GBytesのメモリ容量でもそこそこ動かせる。

じゃあUbuntu(xx.xxLTS)で動かせばいいじゃん的な思想になりがちだが、まず100%Windowsのソフトしか利用しない。OSをubuntuに変えてもなぁ・・じゃあどうするの?

そうなんです。WSLWindows Subsystem for Linux)機能を使う(win10限定)

そう、Windows10には素晴らしい機能がついている。使い方は[Windows10 wsl]などでググってほしい。OpenDroneMapに限定して言えば、Hyper-Vなんかより断然使い勝手がいい。でも、コマンドラインだけど・・・私はMS-DOS世代なので、コマンドラインはちっとも面倒ではないので、これについて順を追ってインストール方法を書いていく。

 

まず、Windows10の設定。詳細は書かないけど、順に

  1. 設定-アプリと機能-プログラムと機能
  2. Windows機能の有効化または無効化-Windows Subsystem for Linux にチェックOkで再起動
  3. Windows ストアから、ubuntu 20.04を検索してインストール(※この記事を書いた頃は16.04だったけど、今じゃ20.04ですよ・・・)

で準備オッケー

何がいいかというと

  • メモリ管理がWindwosネイティブ。お互いにメモリを融通しながらつかえる。独占的使用ではないのでメモリ割り当てとか心配する必要はないのだ。
  • そうはいっても計算中は相当メモリを使うので、できるだけ増設した方がいいに決まっている。
  • Hyper-Vだと作業用フォルダがLinuxの共有フォルダ的なテクニックがいるが、WSLだと、適当な内蔵ドライブが直接指定できる。
  • ubuntu の /mnt/ 配下にc,d,e,fなどと割り当てられていて何も考えずに直接指定が可能
  • ネットワークドライブ使うときは若干の作業が必要ですけどね。

OpenDroneMapをインストールする。

ここからは、ある程度Ubuntuの知識の元で、コマンドラインで手打ちしなければいけないので、Linux系の多少の基礎知識が必要。ど素人向けではないので、ごくごく簡単に説明します。

  1. ubuntu20.04を起動する。f:id:chiikiseibi:20210419133819p:plain

  2. インストール直後は初期設定で若干の時間がかかります。その後、新しいユーザー名とパスワードを入れます。これが後々のデフォルト・・Windwosと同じでもいいけど、たとえばUID:odm,P:odmとか設定しちゃう。
  3. お約束のコマンドをたたく(カレントユーザーディレクトリ内にいることが前提です。)
    • sudo apt-get update
    • sudo apt-get upgrade
    • sudo apt-get install unzip
  4. OpenDroneMapのインストール、ここから
  5. Native Install (Ubuntu 20.04) の項目通りに実行する

    • sudo ln -s /home/[ユーザーフォルダ]/ODM /code (これをしておくと後々いいことがあるかも。エラーを出さないおまじないみたいなもの。)
    • cd ./ODM (上記コマンドをたたいていれば、 cd /code でもOK)
    • bash configure.sh install
     で、コピーとかコンパイルとかいろいろやって、一時間くらい待つと出来上がり。
  6. vim settings.yaml で設定ファイルの編集をします。
    • プロジェクトファイルの位置と解像度のデフォルトを決定します。
    • エディタの使い方は自分で・・・
    • project のところに /mnt/d/ODM/Projects とリンク先を記載するとデータをDドライブの指定のフォルダに入れることができてubuntuフォルダを探さなくてすみます。
    • さらに、orthophoto-resolution を10にします。これは、私の扱う範囲が50ha位の範囲なので、デフォルトの5のままだと、300-500メガのオルソ写真になってしまうため、QGISなどで読み込むのに時間がかかるためです。
  7. sh run.sh [project folder name] でGo!!!

ですね。

この次のレベルで、node-OpenDroneMapが、そしてWebODMがあるのですが、これはコマンドラインを必要としないツールで何かと便利。でもインストールは大変。

これについては、またあとで・・・!!

 

WSL上のUbuntuも20.04と新しくなったので、ちょっと内容のアップデートをしました。