REMOTE SENSING

Orfeo ToolBox(OTB): 훈련데이터 생성

유병혁 2021. 6. 15. 02:55

안녕하세요? 이번 글은 Orfeo ToolBox(OTB)에서 훈련데이터를 생성하는 과정을 정리해 보겠습니다.

이전 글은 다음 링크를 참조하시면 되겠습니다.

 

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

안녕하세요? 이번 글은 Orfeo ToolBox(OTB)를 통해 객체지향영상분할(object-oriented image segmentation)*하는 방법을 정리해 보겠습니다. 객체지향영상분할이란, 영상분할을 할 때 분광정보와 공간정보를 동

blog.daum.net

먼저, 폴리곤 파일을 하나 생성하겠습니다. 화면 상단에서 '레이어 > 레이어 생성 > 새 Shapefile 레이어'를 클릭합니다.

다음과 같이 '새 shapefile 레이어' 창이 실행됩니다.

아래와 같이 TRNG_RAW.shp 파일을 하나 생성하고 C_ID라는 정수형 필드를 하나 추가했습니다.

디지타이즈 작업 툴바에서 '편집 모드 전환' 버튼을 클릭하면 현재 선택된 레이어를 편집할 수 있습니다. 

'폴리곤 객체 추가' 버튼을 클릭하고,

화면상에서 훈련데이터로 사용하고자 하는 영역을 지정해 줍니다. C_ID는 1: Dead tree, 2: Live tree, 3: Shadow로 정의하겠습니다. 아래와 같이 분석가의 판단 하에 훈련데이터 영역을 지정해 줍니다.

해당 데이터의 속성을 보시면 C_ID에 정의된 값이 들어있는 상태를 확인하실 수 있습니다.

앞서 처리한 세그먼테이션 폴리곤을 레이어 추가합니다. 이제 훈련데이터 영역에 해당하는 세그먼트를 선택하고 해당 C_ID 값을 이식해 주면 되겠습니다.

'벡터 > 데이터 관리 도구 > 위치에 따라 속성을 결합'을 클릭합니다.

기준 레이어는 영상융합 레이어를, 결합 레이어는 훈련데이터 영역을 지정합니다. 결합 유형 등을 지정해주고 훈련용 세그먼트를 추출합니다. 

자, 아래와 같이 훈련데이터가 생성되었습니다. 속성 테이블을 한 번 열어볼까요?!

속성 테이블에는 기존 필드값에 C_ID 필드가 추가된 것을 확인하실 수 있습니다.

이제 훈련데이터를 학습과 검증 목적으로 분할하겠습니다. '벡터 > 조사 도구 > 하위 집합 내 랜덤 선택'을 클릭합니다.

하위 집합 내 랜덤 선택 창에서 ID 필드는 C_ID, 메소드는 선택한 객체의 백분율, 선택한 객체의 개수/백분율은 70을 선택합니다.

아래와 같이 C_ID 필드를 기준으로 전체 데이터의 70%에 해당하는 세그먼트가 임의 선택됩니다.

훈련 데이터 명을 우클릭하고 '내보내기 > 선택한 객체를 다른 이름으로 저장'을 선택합니다.

선택된 객체를 TRN.shp으로 저장하겠습니다.

훈련 데이터의 속성 테이블에 들어가서 선택되지 않은 객체를 선택합니다. 속성 테이블 상단에 '선택 반전' 버튼을 클릭하시면 됩니다.

자, 반대로 세그먼트가 선택됐죠?! 이걸 VAL.shp으로 저장해줍니다.

이제 분류기 훈련데이터를 위한 학습용, 검증용 데이터가 확보되었습니다.