Windows10+VMWare+Ubuntu20.04+OpenDroneMap+NodeODMネイティブで動いたかも。

なんとかDocker環境なしのネイティブ環境でWebODMまでこぎ着けないか・・・

ということで、悶絶しながらやってきたが、PCがcore-i9という素晴らしく強力な環境を手に入れたことでUbuntuの構築が楽になったので、まずは、NodeODMまでやってみた。自分用備忘録メモ。わかりにくいとか、怒らないでね

OpenDroneMapのインストールはわたしのこのブログの

chiikiseibi.hatenablog.comこの記事を参照してもらうとして、

Node-ODMは、Python環境とかが肝になってくるので、そのあたりを簡単にメモ。

githubのOpenDroneMap/NodeODMのページを参照しつつやってみたらうまくいったので、そこまでのメモ。

entwine環境を入れる必要があるようだ。

 

entwine.io

ここを読んでいくと、まずはミニコンダをインストールしなければならないので

さらにこれ、

docs.conda.ioで、Python 3.8環境を選択した、3.9環境はまだまだなので、ODM的には以前のバージョンも2.7と3.8環境でインストールしていたようだからなぁと・・・なんとなく3.8を選択

Minicond3 Linux 64bit 89.9MiBを選択すると、bash Miniconda3-latest-Linux-x86_64.sh

がダウンロードされる。自分の環境にあったものを選択。

ダウンロードディレクトリにカレントポジションを移して

bash Miniconda3-latest-Linux-x86_64.sh

後は適当に質問に答えていくとインストールされる。

まぁ、大体はただのリターン、スペースと[yes]と入れてリターンのどれか

最後にイニシャライズするか?的な聞き方をしてくるが、後でいろいろあるが、ここでは[yes]としてリターン

端末を一度閉じて開き直すとcondaの動作環境になっているはず。
これで終了

 

次はentwine環境を構築

さっきのentwineページに戻りつつ

entwine.io

  • conda create -n entwine -c conda-forge entwine

でOK

で、いよいよnodeODMのインストールだが、前段の作業がある。

端末を開くと(base)という表示がされているはずである。これはすでにconda環境下でpython3.8が使用可能という意味らしい。

 しかし、この状態でNodeODMをインストール(もしくは起動)してもだめっぽい事がわかってきた。そこで、

  • conda deactivate

として、conda環境を終わらす。後々、conda環境が動いているとOpenDroneMapも動かないことがわかった。そのため、

として、最下行に

  • conda deactivate

と一行入力して、端末を再立ち上げした方がよい。

そして、NodeODM、ODMをインストールするのである。

 

Pythonはバージョン3環境が20.04のデフォルトなので、pythonのツールを入れるときはpythonのところを大体python3に修正すればインストールされる。

curlが入っていないので入れます。

※ここは、サイトではsetup_6.xであったが、そのまま実行すると最新版を入れろ!みたいに言ってくるので、最初から14.xと指定した。  

※nodejsはnodesourceをインストールしたあとに入れると良いみたい。というか、そんなメッセージが出た。

  • sudo apt install nodejs npm python3-gdal
  • sudo ln -s /home/[User dir]/NodeODM /www

  ※後々のネイティブ環境のWebODMに備えてリンクを張っておく。すぐに必要となるものではないです。

  • cd NodeODM
  • npm install

できた!

vmwareで新しい環境で作ったので、順番は逆だがOpenDroneMap環境も続けてインストール

・・・・・・・・・configuration Finished  で、終了!

 

では、いよいよ

  • cd /www
  • node index.js

ブラウザからlocalhost:3000で確認。なんとなく動いているかな・・・まだ未確認だけど外形的には動いているような・・・40個程度のファイルで試してみたが問題なく動いた。やった!!!!

***********************************

ここから、追記

どうも、condaを入れて.bashrcで自動的にアクティブ化されてしまったせいで、ODMが途中で落ちるようになった。以下のラーが出る。

no module name cv2

そのため、前述したが、conda deactivateで一端conda環境を終わらすことにした。

ただし、Node-ODM内の挙動はわからないが、condaへのパスは残したい・・・結局.bashrcでパスも切っているようなので、その部分は残し、condaのみdeactivateした。

これでダメなら.bashrcのcondaの部分を削除かと思ったが、・・・なんかうまくいったみたい。