Architecture위성 변화탐지 플랫폼 아키텍처 · 4/10

그림자를 변화로 착각하는 모델 - 전/후처리로 오탐을 줄인 기록

변화탐지 모델을 그대로 붙이자 조도 차이와 그림자가 전부 '변화'로 잡혔다. 전처리(그림자 제거·색상 정규화)와 후처리(면적 필터링·형태학적 연산)로 오탐을 줄인 과정과, 아직 끝나지 않은 모델 선정 이야기.

2026-07-226 min read
#컴퓨터 비전#AI#ONNX#이미지 전처리#위성영상

문제: 모델은 정확한데 결과가 틀렸다

변화탐지 모델(전/후 위성영상 두 장을 비교해 달라진 영역을 표시하는 모델) 자체는 오픈소스/사전학습 기반으로 가져다 붙였다. 그런데 실제 위성영상 쌍으로 돌려보면 결과가 이상했다 - 아무 것도 바뀌지 않은 지역인데 넓은 영역이 "변화"로 표시됐다.

원인은 모델이 아니라 입력이었다. 같은 장소를 다른 시점에 찍은 두 영상은 촬영 시각·계절·태양 고도가 다르다. 그림자의 길이와 방향이 다르고, 전체적인 색감(조도)도 다르다. 모델 입장에서는 이 차이도 "픽셀이 달라졌다"는 신호이므로, 실제 지형 변화와 구분하지 못하고 전부 변화로 잡아냈다. 게다가 모델 출력을 후처리 없이 그대로 썼기 때문에, 원본 신호에 섞여 있던 노이즈(한두 픽셀짜리 잡음성 변화 후보)까지 그대로 결과에 노출됐다.

시도한 것: 모델 앞뒤를 손보기

모델 자체를 바꾸기 전에, 모델에 들어가기 전과 나온 후를 먼저 정리했다.

전처리 - 비교 가능한 상태로 맞추기

  • 그림자 제거: 그림자 영역을 별도로 추정해 보정하거나 마스킹해서, 그림자의 유무·길이 차이가 "변화"로 오인되지 않도록 했다.
  • 색상 정규화: 두 영상의 전반적인 색상 분포(밝기·대비)를 같은 기준으로 맞췄다. 촬영 시각·대기 조건 차이로 생기는 전역적인 색감 차이를 변화 신호와 분리하기 위한 작업이다.

이 두 처리 없이는 모델이 "오늘 날씨가 달랐다"는 사실과 "건물이 새로 생겼다"는 사실을 구분할 방법이 없었다.

후처리 - 모델 출력에서 노이즈 걷어내기

  • 면적 기반 필터링: 변화 후보 폴리곤 중 면적이 임계값 이하인 것(한두 픽셀 단위의 잡음성 변화)은 걸러냈다. 실제 유의미한 지형 변화는 대체로 일정 면적 이상을 차지한다는 전제다.
  • 형태학적 연산(morphological operations): 변화 폴리곤 경계를 다듬었다. 모델 출력 그대로는 경계가 들쭉날쭉하거나 인접한 변화 영역이 미세하게 끊어져 있는 경우가 많았는데, 팽창·침식 연산으로 경계를 정리하고 끊어진 영역을 자연스럽게 이었다.
[전/후 위성영상]
     │
     ▼
[전처리] 그림자 제거 → 색상 정규화
     │
     ▼
[변화탐지 모델] ONNX 추론
     │
     ▼
[후처리] 면적 기반 필터링 → 형태학적 연산
     │
     ▼
[변화 폴리곤] 지도에 시각화

결과와 남은 문제

정성적으로는 확실히 나아졌다 - 그림자·조도 차이로 인한 명백한 오탐(예: 같은 건물 그림자가 길어진 것뿐인데 "변화"로 잡히는 경우)이 눈에 띄게 줄었다. 다만 이 개선을 정량 지표로 아직 확정하지 못했다. IoU(Intersection over Union), 정밀도/재현율 같은 표준 변화탐지 평가 지표로 전/후를 비교하는 작업이 남아 있다.

더 근본적인 이유는 모델 자체가 아직 확정되지 않았기 때문이다. 현재 ECT, MambaCD, MINIMA 세 후보를 놓고 어떤 모델이 이 플랫폼의 위성영상 특성(해상도, 촬영 조건, 관심 지형 종류)에 가장 잘 맞는지 검증하는 중이다. 전/후처리 파이프라인은 이미 만들어뒀으니, 모델이 확정되면 같은 전/후처리 위에서 바로 정량 비교를 시작할 수 있는 상태다.

정리하면 지금 단계는 "모델의 정확도를 높이는 단계"가 아니라 "모델이 정확도를 제대로 평가받을 수 있는 입력·출력 조건을 먼저 만드는 단계"였다. 오탐의 상당수가 모델 문제가 아니라 입력 데이터의 조건 차이에서 왔다는 걸 확인한 것 자체가, 다음에 모델을 교체하거나 튜닝할 때 헛다리를 짚지 않게 해주는 성과라고 본다.