REMOTE SENSING

QGIS에서 영상 분류를 위한 관심영역(ROI) 생성하기

유병혁 2016. 2. 3. 00:59

앞서 소백산국립공원 일원 센티널 2호 위성영상을 밴드 셋(band set) 생성하였는데요,

 

QGIS에서 다중 래스터를 클리핑하고 밴드 셋(band set) 생성하기

http://blog.daum.net/geoscience/907

 

이번 글에서는 해당 밴드 셋에서 영상 분류를 위한 관심영역(ROI, Region of Interest)

를 생성하는 방법을 학습해보도록 하겠습니다.

 

여기서는 상록수(evergreen trees)와 낙엽수(deciduous trees) 2개 클래스를 ROI 생성해 보겠습니다.

참고로, 상록수와 낙엽수에 대한 차이를 설명한 그림은 아래와 같습니다(출처: https://www.plt.org/family-activities-signs-of-fall)

 

제가 사용하고 있는 센티널 2호 위성영상은 지난 2015년 12월 30일 겨울에 촬영되어, 상록수와 침엽수 경계가 명확히 구분되고 있습니다.

일단, TMS for Korea 플러그인을 이용해서 해당 지역의 네이버 하이브리드(Naver Hybrid) 항공영상을 추가하였습니다.

 

센티널 2호 위성영상을 그 위에 중첩한 결과입니다. RGB 합성은 NIR(8번), Red(4번), Green(3번)입니다.

 

자, 이제 본격적으로 ROI를 생성해보도록 하겠습니다.

 

저는 영역 성장(region growing) 알고리듬을 통해 ROI를 설정하려고 하는데요,

Semi-Automated Classification Plugin(줄여서 SCP)가 이 기능을 제공해주고 있습니다.

 

아래 유튜브 영상은 영역 성장 알고리듬이 어떤 원리로 수행되는지를 쉽게 설명하고 있습니다.


먼저 SCP: ROI creation 패널을 활성화하고 Training shapefile에서 'New shp'를 클릭합니다.

 

ROI 쉐이프파일을 생성하고,

 

ROI parameters를 설정한 후,

 

아래 '+' 버튼을 클릭하여 시드 화소(seed pixel)를 선정해 보도록 하겠습니다.

 

이렇게 ROI를 선정할 때는 공간해상도가 우수한 항공영상이 도움이 될 수 있겠는데요,

네이버 항공영상과 센티널 2호 위성영상을 비교해가며 정확한 ROI를 설정하면 되겠습니다.

 

ROI parameters에서 범위 반경(Range radius)은 0.01, 최소 ROI 크기(Min ROI size)는 60,

최대 ROI 폭(Max ROI width)은 100을 설정한 후 상록수 구간에서 '+' 버튼을 클릭한 결과입니다.

 

이번에는 범위 반경을 0.1로 높여본 결과입니다. 임계치가 0.01에서 0.1로 높아졌기 때문에,

해당 값보다 같거나 작아 동일한(homogenous) 것으로 인식되는 화소 수는 더 증가됩니다.

 

범위 반경을 아래와 같이 지나치게 높이게 되면, 영역 성장이 커지기 때문에

아래와 같이 고유한 ROI로는 의미가 없어집니다. 적절한 조정이 필요하겠죠?!

 

저는 상록수 화소들을 ROI로 설정하기 위해 범위 반경을 0.12로 조정하였습니다.

 

ROI Signature definition에서 매크로 클래스(MC)와 클래스(C) ID, Info는 아래와 같이 설정하였습니다.

이제 'Save ROI'를 클릭하면,

 

화면 우측 ROI list에 목록이 추가된 것을 확인할 수 있습니다.

 

같은 방식으로 낙엽수 클래스도 추가하였습니다.

 

이번에는 설정된 2개 클래스의 분광 특징(spectral signature)를 살펴보도록 하겠습니다.

 

아래와 같이 ROI list에서 원하는 목록을 선택하고,

아래 '분광 특징 플롯(spectral signature plot)' 버튼을 클릭합니다.

 

Signature list에 선택된 목록과 함께 아래 플롯이 그려졌습니다.

상록수와 낙엽수가 분광 특징에서 구분되는 모습을 보여주고 있는데요,

 

Signature details를 보면 클래스별로 각 밴드의 화소값과 표준편차를 확인할 수 있습니다.

 

또한 Spectral distances에서는 아래와 같이 4종의 통계를 제시해 줍니다.

 

이번에는 ROI list 하단에 산점도(Scatter Plot) 버튼을 클릭한 결과입니다. 앞서 소개된

분광 플롯을 보고 2개 클래스가 구분되는 4번 밴드를 X축으로, 5번 밴드를 Y축으로 설정하였습니다.

 

현재 밴드 셋은 아래 밴드들 중 1번, 9번, 10번을 제외하고 순차적으로 쌓여 있습니다.

4번째 밴드와 5번째 밴드는 각각 5번(0.705)과 6번(0.740)으로 Red Edge 구간에 해당됩니다.

이제 ROI를 보다 구체적으로 생성한 후에, 머신러닝 알고리듬을 통해 영상 분류를 수행해 보도록 하겠습니다.

L1C_20151230_SOBAEK_ROI.zip

L1C_20151230_SOBAEK_ROI.zip
0.0MB