Architecture위성영상 토지피복 분류 개선기 · 1/2

NDVI를 믿지 않기로 했다 - 토지피복 분류에서 식생 지수가 불안정했던 이유

forest/meadow/ground 토지피복 분류 모델을 학습하며 NDVI가 왜 불안정한 신호가 되는지 원인을 짚고, Water 히스토그램 이동·계절성 붕괴 실험을 거쳐 NDVI를 빼는 쪽으로 방향을 튼 과정.

2026-07-2812 min read
#컴퓨터 비전#NDVI#위성영상#세그멘테이션#토지피복분류

문제: NDVI를 넣었더니 오히려 불안정했다

위성영상으로 forest/meadow/ground 등 토지피복을 분류하는 세그멘테이션 모델을 학습하는 중이다. 어제는 20 에폭에서 학습이 끊겨 재학습했는데, 같은 20 에폭 기준 7-class macro-F1이 0.6872→0.6890, 6-class가 0.7176→0.7216으로 소폭 상승하는 정도였다 - 절대 성능보다 "어떤 입력 특징이 실제로 분류에 도움이 되는가"를 검증하는 단계였다. 그 과정에서 가장 먼저 의심하게 된 게, 식생 지수의 표준으로 오랫동안 써온 NDVI였다.

원인 진단: NDVI라는 압축 공식의 한계

NDVI(Normalized Difference Vegetation Index)는 아래 공식으로 계산한다.

NDVI = (NIR - R) / (NIR + R)

이 공식은 "식생이 있는가 없는가"라는 질문 하나에만 답하도록 설계된, NIR과 R이라는 2차원 정보를 1차원으로 압축하는 공식이다. 압축 과정에서 광량 정보, 그림자, 텍스처 같은 나머지 정보가 전부 사라진다. 게다가 고정된 수식이라 계절과 그림자를 구별하지 못한다 - 겨울 숲과 그늘진 초지가 비슷한 NDVI 값으로 뭉개질 수 있다.

더 근본적인 문제는 지금 쓰는 모델이 4채널(RGBN)을 입력받는 CNN/ViT라는 점이다. 이런 모델은 원래 R과 NIR을 문맥에 맞게(context-aware) 조합해서 식생 특징을 스스로 추출할 수 있다. NDVI는 이미 R과 NIR의 고정된 조합으로 만들어진 종속적인(redundant) 채널이다 - 모델이 스스로 학습할 수 있는 조합 방식을 미리 하나로 고정해서 떠먹여주는 셈이라, 입력에 추가해도 새로운 정보를 주지 못하고 오히려 표현력을 제한할 수 있다는 뜻이다.

시도 1: Water 히스토그램 분포를 중앙으로 옮길 수 있는가

물 영역의 NDVI 분포가 예상 위치에 있지 않아서, 이미지 처리로 이동시킬 수 있는지부터 확인했다. 결론은 가능은 하지만 NDVI가 아니라 NIR·NDWI 축에서만 유효하고, 단순 이미지 처리만으로는 한계가 있다는 것이었다.

어두운 지표면의 공통점: 맨땅(Ground), 낡은 아스팔트 도로(Road), 콘크리트·슬레이트 지붕(Building)은 전부 적색광(Red)과 근적외선(NIR)을 비슷하게 낮은 수준으로 반사한다. 순수한 물은 NIR을 거의 완전히 흡수해서 이론상 NDVI가 뚜렷한 음수여야 하지만, 실제 데이터는 물리적 반사율(Reflectance)이 아니라 상대적 밝기(14-bit Radiance DN) 값이다 - 절대 물리량이 아니라서 어두운 지면·그림자·물이 비슷한 대역에 뭉쳐 나타난다.

검토한 이동 방법은 네 가지였다.

  1. TOA(Top of Atmosphere) Reflectance 보정 - 촬영 각도·시간을 근거로 대기 상단 기준 반사 비율(0.0~1.0)이라는 절대 물리량을 계산하는 방식이다. 서로 다른 위성의 데이터를 함께 쓸 때는 의미가 크지만, 지금처럼 단일 위성·비슷한 각도와 계절로 촬영된 데이터에서는 효과가 크지 않았다.
  2. Standardization / Percentile Clipping(전역 정규화) - 씬 전체 밴드에 Z-score 정규화나 Percentile Clipping을 적용해 밴드 간 상대적 모드를 명확히 하는 방식. Percentile(2-98)은 이미 적용 중이었다.
  3. TOA + Percentile 동시 적용 - TOA와 이유가 같아서 단일 위성 데이터에서는 마찬가지로 이점이 적었다. Percentile이 이미 씬 간 차이를 지워버리기 때문에, TOA와 같이 써도 서로 보완되지 않는다.
  4. 물 영역 히스토그램을 목표 분포(예: 평균 0.5 가우시안)로 강제 변형 - 검토는 했지만 진행하지 않기로 했다.

시도 2: Forest의 튀어나온 부분이 분류에 강점을 주는가

NDVI 히스토그램에서 오른쪽으로 +0.6 이상 튀어나온 둔덕은 강력한 식생 신호라 분류에 바로 도움이 된다. 문제는 왼쪽 +0.1~0.3 구간이다 - 여기에 겨울 숲(낙엽 진 forest)이 다른 클래스와 겹쳐 나타난다. 이 구간은 NDVI 수치 하나가 아니라 형태·텍스처 같은 공간 단서가 있어야만 구분이 가능했다. 결국 계절성(겨울)에 따라 forest/meadow/field의 식생 신호 자체가 붕괴한다는 게 핵심이다 - NDVI가 여름 기준으로는 잘 갈라놓는 클래스들을 겨울에는 뭉개버린다.

개선 방향

1. 추가 채널

SAVI(토양 배경 영향 감소)와 EVI(대기·그림자에 강함), RGB→HSV/Lab 색공간 변환을 검토했다. 다만 이미 비슷한 역할의 특징이 어느 정도 들어가 있어서 추가 효과는 크지 않았다 - HSV는 오히려 라벨 신호를 해칠 수 있다는 걸 확인했는데, 이 부분은 검토 과정이 길어서 다음 글로 따로 뺐다.

2. 공간·텍스처 특징 강화

RGB 밴드보다 NIR이 엣지를 훨씬 날카롭게 반사한다. 4채널을 그대로 넣기보다 NIR의 엣지를 모델에게 집중적으로 보여주는 방식이 유리해 보인다.

  • NIR 채널에서 Canny, Sobel, Laplacian 또는 High-pass Filter로 엣지를 추출해 1채널을 추가 - 4채널을 5채널로 확장
  • CNN 대신 BiSeNet / Detail Branch 계열 네트워크로 공간 디테일 경로를 분리
  • Sobel Edge Loss - 셀 값의 수평/수직 변화율을 계산해, 경계선·질감만 하얗게 깎아내는 필터를 손실 함수에 반영

3. 계절·위치 메타데이터 주입

식생 신호는 월별로 편차가 크다. 학습 시 NDVI 기대치를 계절별로 재보정할 수 있는지 확인하려고, 특징 조합별로 macro-F1과 forest↔meadow 혼동 정확도를 비교했다.

조합forest/meadow/ground macro-F1forest↔meadow 정확도
(A) NDVI + 텍스처만0.4730.338
(B) A + 진짜 month, lat0.575 (+0.10)0.473 (+0.14)
(C) A + 뒤섞은(shuffled) month, lat0.479 (≈A)0.350 (≈A)

(B)와 (C)를 비교하면, 진짜 계절·위치 메타데이터를 넣었을 때만 유의미하게 개선되고 뒤섞은 값을 넣으면 (A)와 다르지 않다 - 메타데이터 자체가 실제로 작동한다는 뜻이다. 다만 이 개선 효과는 NDVI 기반 조합에서만 나타났고, 4밴드(RGBN) 조합에서는 메타데이터를 넣어도 차이가 거의 없었다. 즉 "NDVI의 부족한 문맥 정보를 메타데이터로 메워주는 것"에 가깝다 - NDVI 자체에 근본적인 장점이 있어서가 아니라, NDVI를 쓸 때만 아쉬운 부분을 메타데이터가 대신 채워주는 셈이다. 그래서 NDVI 자체는 안 쓰는 쪽으로 결론 내렸다.

4. 손실 함수 개편 (Contrastive / Margin Loss)

대조 학습(Contrastive Learning) 계열 손실로 전환하는 방향이다. 같은 클래스는 임베딩 공간에서 서로 모으고, 다른 클래스는 겉보기에 비슷해도(예: 겨울 숲과 초지) 서로 밀어내도록 학습한다.

5. 후처리 고도화

필지·객체 단위로 결과를 다듬는 단계다.

  • CRF(Conditional Random Fields) - 픽셀 단위 예측을 주변 픽셀과의 관계까지 고려해 매끄럽게 다듬는 후처리
  • Superpixel 기반 다수결 Voting - 비슷한 픽셀끼리 묶은 슈퍼픽셀 단위로 다수결을 적용해 낱개 픽셀의 오분류 노이즈를 제거

두 방식 모두 모델 자체를 바꾸지 않고도 예측 결과의 노이즈를 줄이는 효과를 기대할 수 있다.

결과와 남은 문제

지금까지의 실험으로 확인한 건, NDVI가 "식생 유무"라는 단일 질문에는 강력하지만 계절·그림자·어두운 지표면이 섞인 실제 위성영상 분류에서는 정보를 지나치게 압축해버려서 오히려 불안정한 신호가 된다는 점이다. Water 히스토그램 이동 실험에서는 물리 보정(TOA)과 정규화(Percentile)가 서로 대체재에 가깝다는 것을, 계절 메타데이터 실험에서는 그 개선이 NDVI의 약점을 메우는 것일 뿐 NDVI 자체의 이점이 아니라는 것을 확인했다.

방향은 NDVI라는 파생 채널에 의존하기보다, 원본 4채널(RGBN)에 NIR 엣지 같은 공간 특징을 더해 모델이 직접 문맥에 맞는 식생 표현을 학습하게 하는 쪽으로 잡았다. 손실 함수 개편과 CRF/Superpixel 후처리는 아직 실험 전이고, 결과가 정량적으로 확정되면 별도로 기록할 계획이다. 조명 문제를 색공간 변환(HSV)으로 풀 수 있는지도 같이 검토했는데, 그 과정과 왜 채택하지 않았는지는 다음 글에서 이어간다.