PHOTOGRAMMETRY

오픈드론맵(OpenDroneMap) 학습하기 - (3) 오픈드론맵 설치 및 실행하기

유병혁 2016. 6. 26. 23:22

이제 본격적으로 오픈드론맵 실행에 사용할 드론 영상을 준비하도록 하겠습니다.

여기서는 속리산국립공원 문장대를 DJI 인스파이어 1 기체로 촬영한 영상을 이용하겠습니다.

 

아래와 같이 C:\Users\사용자계정\songnisan_dev\images 폴더에 사진 65장을 저장하였습니다.

이곳은 속리산국립공원 문장대 일원의 훼손지 복원 대상지로, 조성환 님이 직접 촬영하여 제공해 주셨습니다.

 

아래와 같이 초고해상도로 사진들이 촬영되었는데요,

 

각각의 사진들은 EXIF(Exchangeable Image File Format)에 위도, 경도, 고도값 정보를 저장하고 있습니다.

EXIF는 디지털 카메라 이미지 안에 저장되어 있는 파일 형식으로 위 사진은 아래와 같은 정보들을 포함하고 있습니다.

 

오픈드론맵은 Exif 메타데이터를 읽어오는 ExifRead 파이썬 패키지를 이용하고 있습니다.
ExifRead 공식 사이트: https://pypi.python.org/pypi/ExifRead/2.1.2

 

기본적으로 오픈드론맵은 지오레퍼런싱(Georeferencing, 래스터 데이터의

각 픽셀에 실세계 좌표를 할당하는 과정)을 위해 이 GPS exif 데이터를 이용합니다.

 

사진들이 Exif 메타데이터에 GPS 정보를 가지고 있지 않거나, 더 나은 정확도를 원하는 경우에는

별도 지상기준점(Ground Control Point) 파일을 정의할 수 있습니다. 관련 글은 아래와 같습니다.

여기서는 GPS 정보만을 이용하고, QGIS에서 지오레퍼런서(Georeferencer) 툴을 통해 처리하도록 하겠습니다.

 

저는 직접 드론 데이터를 준비했지만, 오픈드론맵 예제 데이터를 이용하셔도 됩니다.

오픈드론맵 예제 데이터: https://github.com/OpenDroneMap/odm_data

 

이제 위 영상에 대해 오픈드론맵을 설치하고 실행해보도록 하겠습니다.

오픈드론맵 이미지는 아래 '도커 허브(Docker Hub)' 저장소에 등록되어 있는데요,

도커 허브(Docker Hub): https://hub.docker.com/

 

'도커 허브'란, 도커 이미지를 생성하고 공유할 수 있도록 해주는 클라우드 기반 서비스입니다.

사용자는 이 네트워크 상의 가상 공간(즉, 도커 허브)에 접속하여 언제 어디서나 데이터를 다운로드 받을 수 있습니다.

 

아래 그림과 같이 'opendronemap'도 검색해보시면, 등록되어 있는 저장소들을 확인하실 수 있습니다.

 

여기서는 opendronemap/opendronemap 저장소를 이용하도록 하겠습니다.

 

해당 저장소의 Tags 탭을 보시면 latest와 dev 탭이 있는데요, 저는 dev 태그를 이용하였습니다.

 

참고로, Docker Quickstart Terminal에서 'docker search' 명령어를 이용하시면 동일한 검색이 가능합니다. 

 

이제 오픈드론맵 이미지를 다운로드 받도록 하겠습니다.

아래와 같이 pull 명령어를 이용하시면 되는데요, 여기서 dev는 위의 태그(tag)입니다.

이렇게 별도의 태그를 지정하지 않으면, 도커 엔진(Docker Engine)은 :latest를 기본으로 이용합니다.

 

참고로, 도커 명령어와 관련된 정보는 https://docs.docker.com/engine/reference/commandline/ 사이트를 이용하시면 됩니다.

 

아래와 같이 오픈드론맵 이미지가 다운로드됩니다.

YouTube 동영상: https://youtu.be/DBuTfH_Si-M

 

자, 이제 앞서 준비한 영상의 경로를 설정하고,

 

도커 명령어 run을 통해 오픈드론맵 이미지를 실행합니다. 결과값은 다음 글에서 정리하겠습니다.

YouTube 동영상: https://youtu.be/YpQ1-LrHcs4