PHOTOGRAMMETRY

우분투(Ubuntu) 16.04에서 노드-오픈드론맵(node-OpenDroneMap) 설치하기

유병혁 2017. 5. 16. 17:07

이번 글에서는 '노드 오픈드론맵(node-OpenDroneMap)'을 설치해 보겠습니다.
노드 오픈드론맵은 오픈드론맵 접속용 Node.js App 및 REST API입니다.

기존 오픈드론맵은 터미널에서 직접 명령어를 입력하는 번거로움이 있었는데요,
노드 오픈드론맵은 웹 브라우저를 통해 오픈드론맵을 쉽게 접속하실 수 있습니다.

일단, 오픈드론맵 설치는 아래 글을 참고하시면 됩니다.

우분투(Ubuntu) 16.04에서 오픈드론맵(OpenDroneMap) 설치하기
http://blog.daum.net/geoscience/1081

노드 오픈드론맵의 설치 방법은 아래 깃허브에 단계별로 잘 소개되어 있습니다.

노드 오픈드론맵 깃허브(GitHub)
https://github.com/OpenDroneMap/node-OpenDroneMap


1. 먼저, 포트리컨버터(PotreeConverter)와 라스집(LASzip) 의존성 소프트웨어를 설치합니다.

포트리(Potree)는 WebGL 기반 대용량 포인트 클라우드 뷰어입니다.
포트리 공식 홈페이지 | http://potree.org/
포트리 컨버터는 LAS, LAZ, PLY, XYZ, 또는 PTX 파일을 포트리 포맷으로 변환할 수 있습니다.


라스집은 무료 무손실 라이다 압축(free and lossless LiDAR compression) 라이브러리를 지칭합니다.
라스집 공식 홈페이지 | http://www.laszip.org/
라스집은 LAZ파일의 압축을 풀 수 있으며, 원시 LAS 파일을 80% 이상 압축할 수 있습니다.


터미널에서 su(Super User의 약어)명령어로 루트 권한을 획득 후, 아래 명령어를 순서대로 입력합니다.

apt-get install -y libboost-dev libboost-program-options-dev

mkdir /staging
git clone https://github.com/pierotofy/LAStools /staging/LAStools
cd staging/LAStools/LASzip
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make && make install
ldconfig

git clone https://github.com/pierotofy/PotreeConverter /staging/PotreeConverter
cd /staging/PotreeConverter
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release -DLASZIP_INCLUDE_DIRS=/staging/LAStools/LASzip/dll -DLASZIP_LIBRARY=/staging/LAStools/LASzip/build/src/liblaszip.so ..
make && make install

2. gdal2tiles.py 스크립트, node.js, 그리고 npm 의존성 소프트웨어를 설치합니다.
   npm(Node Packaged Modules)은 node.js에서 사용되는 모듈을 관리하는 패키지 관리자입니다.
gdal2tiles.py | http://www.gdal.org/gdal2tiles.html
Node.js | https://nodejs.org/ko/
npm | https://www.npmjs.com/

sudo curl --silent --location https://deb.nodesource.com/setup_6.x | sudo bash -
sudo apt-get install -y nodejs python-gdal
git clone https://github.com/pierotofy/node-OpenDroneMap

git clone https://github.com/OpenDroneMap/node-OpenDroneMap

cd node-OpenDroneMap
npm install

3. 아래와 같이 환경변수를 등록합니다. bhyu는 사용자 계정 폴더입니다.

gedit /etc/bash.bashrc > 아래 3줄 추가 >  source /etc/bash.bashrc

export PYTHONPATH=$PYTHONPATH:/home/bhyu/OpenDroneMap/SuperBuild/install/lib/python2.7/dist-packages
export PYTHONPATH=$PYTHONPATH:/home/bhyu/OpenDroneMap/SuperBuild/src/opensfm
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/bhyu/OpenDroneMap/SuperBuild/install/lib

4. 노드 오픈드론맵을 실행합니다.
여기서 --odm_path는 오픈드론맵의 설치경로를 뜻합니다.
cd node-OpenDroneMap
node index.js --odm_path /home/bhyu/OpenDroneMap

이제 http://localhost:3000/을 접속해볼까요?! 화면은 아래와 같습니다.


Project Name은 내가 시작할 작업 모음의 이름을 지정합니다.
Aerial Images and GCP List (optional)에서는 드론 영상과 GCP 목록(선택)을 선택합니다.


GCP 파일을 선택하실 경우에는 아래 글을 참고하시기 바랍니다.
https://github.com/OpenDroneMap/OpenDroneMap/wiki/Running-OpenDroneMap

Switch to URL 버튼을 클릭하시면, 드론 영상과 GCP 목록(선택) zip 파일이 위치한 URL을 선택하실 수도 있습니다.



이번엔 Show Options 버튼을 클릭해 보겠습니다. 아래 목록들은 OpenDroneMap의
런타임 파라미터인데요, OpenDroneMap 폴더 하부에 settings.yaml 파일에 내용이 있습니다.

오픈드론맵의 런타임 파라미터는 아래 글을 참고하시면 되겠습니다.
https://github.com/OpenDroneMap/OpenDroneMap/wiki/Run-Time-Parameters


자, 이제 Start Task 버튼을 클릭하면 작업이 진행됩니다.

작업결과는 Download All Assets 또는 Download Orthophoto 클릭으로 다운로드 받으실 수 있습니다.


Download All Assets은 all.zip 파일이며 아래와 같이 구성되어 있습니다.
참고로, 결과값 파일들은 /home/bhyu/node-OpenDroneMap/data/ 에 위치합니다.

오픈드론맵의 최신 소스는 아래와 같이 (옵션을 통해) DSM, DTM을 제작하실 수 있습니다.