GGRS: Geoscience, GIS, & Remote Sensing

지구과학, GIS, 그리고 원격탐사 블로그입니다.

Orfeo ToolBox(OTB): 객체지향영상분할

댓글 2

REMOTE SENSING

2021. 6. 15.

안녕하세요? 이번 글은 Orfeo ToolBox(OTB)를 통해 객체지향영상분할(object-oriented image segmentation)*하는 방법을 정리해 보겠습니다. 객체지향영상분할이란, 영상분할을 할 때 분광정보와 공간정보를 동시에 이용하여 모양이나 분광정보가 균일한 영역인 영상객체를 만드는 과정을 말합니다.

 

공간정보 용어사전

 

www.ngii.go.kr

OTB와 QGIS를 연동하는 방법은 다음 글을 참고하시면 됩니다.

 

Orfeo ToolBox(OTB): QGIS와 연동하기

안녕하세요? 이번 글은 Orfeo ToolBox(줄여서 OTB)와 QGIS를 연동하는 방법을 정리해 보겠습니다. 원래 OTB와 QGIS 연동을 위해서는 qgis-otb-plugin 플러그인 설치가 필요했으나, QGIS 3.8부터는 QGIS 소스코드

blog.daum.net

지리산국립공원 돼지평전 지역을 촬영한 드론 정사영상을 실습자료로 사용합니다. 참고로, 이 정사영상은 오픈드론맵(OpenDroneMap)을 통해 제작되었습니다.

실습자료 다운로드

전체 정사영상을 객체지향영상분할 처리하는데는 일정 시간이 소요되기 때문에, 여기서는 일부 지역만 잘라내서 사용하겠습니다. 원하는 영역을 깔끔하게 추출하기 위해 상단 메뉴에서 '보기 > 꾸미기 > 그리드'를 실행합니다.

'그리드 속성' 창이 실행되는데요,

'그리드 활성화'를 체크하고,

XY 간격을 지정해 줍니다. 여기서는 각각 20m로 지정했습니다.

'주석 그리기'를 체크하신 후 원하는 주석 글꼴을 적절히 변경합니다.

아래와 같이 그리드가 표시되었는데요, 이 그리드를 참고하여 적정 영역을 잘라내겠습니다.

상단 메뉴 중 '래스터 > 추출 > 범위로 래스터 자르기'를 실행합니다.

아래와 같이 '범위로 래스터 자르기' 창이 실행되었습니다.

그리드를 참고하여 '잘라낼 영역'을 입력합니다.

'잘라낸 산출물 (영역)' 파일명도 설정해 줍니다.

자, 이제 실행하면,

아래와 같이 100x60m 영역을 잘라냈습니다. 이 자료에 객체지향영상분할을 적용해 보겠습니다.

'OTB > Segmentation > LargeScaleMeanShift'를 실행합니다.

 

LargeScaleMeanShift — Orfeo ToolBox 7.3.0 documentation

Docs » All Applications » Segmentation » LargeScaleMeanShift Edit on GitLab LargeScaleMeanShift Large-scale segmentation using MeanShift Description This application chains together the 4 steps of the MeanShift framework, that is the MeanShiftSmoothing,

www.orfeo-toolbox.org

'LargeScaleMeanShift' 실행 창은 아래와 같습니다. 일단 Input Image에 잘라낸 정사영상을 지정해 봅니다.

Spatial radius는 공간정보 반경을, Range radius는 분광정보 반경을 지정합니다.

Minimum Segment Size는 최소 세그먼트 크기를 지정합니다.

Size of tiles in pixel은 화소 단위의 타일 크기(X축, Y축)를 지정합니다.

아래와 같이 Output GIS vector file까지 설정했습니다. 자, 이제 결과를 확인해볼까요?!

다음과 같이 3개 파일이 생성되었습니다.

LargeScaleMeanShift(줄여서 LSMS) 기능은 내부적으로 아래와 같은 작업절차를 진행합니다.

정사영상에 LSMS.shp(작업절차 중 Object Vector에 해당)을 중첩한 결과입니다.

속성에는 라벨, 화소개수, 밴드별 평균과 표준편차 통계치가 자동 추가되어 있습니다.

작업절차 중 첫번째 Object Image에 해당하는 labelmap.tif는 아래와 같습니다.

작업절차 중 두번째 Object Image에 해당하는 labelmap_merged.tif는 아래와 같습니다.

'Minimum Segment Size'에 따라 50보다 작은 세그먼트들을 인근에 병합한 영상입니다.