본문 바로가기

Review

시간에 따른 도시 개발을 추적해봅시다 - SpaceNet 7 수상자 기술 분석

SpaceNet 7: The Multi-Temporal Urban Development Challenge 

SpaceNet은 지리 정보와 관련된 AI 응용 연구를 하는 비영리 기관입니다. 특히 값비싼 위성영상 데이터, 어노테이션과 관련해 다양한 오픈소스 데이터셋 공개 및 경진대회 개최를 하고 있어 위성영상을 활용하고 싶은 연구자, 개발자들에게 많은 각광을 받고 있습니다.

SpaceNet이 주최했던 경진대회들

 

목표

이번 SpaceNet7은 Multi-Temporal Urban Development Challenge로 시간 경과에 따른 도시 개발을 추산하는 대회입니다. 이를 위해 각 위성영상이 촬영된 시점 별로 건물의 위치와 면적을 검출하고, 해당하는 건물이 다른 시점에서도 존재하는지, 없어지거나 변화하는지 (Re-identification)를 추적(Tracking)합니다.

예를 들자면 아래 사진에서 시점 별로 찾아낸 건물의 ID는 다음 시점에서도 해당 건물을 찾고 이전에 검출했던 건물과 동일한 ID를 부여해야 합니다.

시간 흐름에 따른 건물 검출 예시

성능

이번 대회에서 주목할 만한 점 중 하나는 ensemble을 사용하지 않은 HRNet 단일 모델이 다른 여러 모델을 결합한 ensemble 모델들을 이기고 1등을 기록했다는 것입니다. 대부분의 경진대회에서는 성능을 극대화하기 위해 여러 모델들을 결합한 ensemble을 일반적인 트릭으로 사용하기 때문에, 이번에는 어떤 점이 성능의 차이를 크게 만들었는지 확인할 필요가 있습니다.

원본 해외 블로그도 이야기하고 있지만, 사실 어떤 문제를 해결할 때 적합한 모델을 찾는 것보다 중요한 부분이 pre/post-processing 입니다.

We see from Table 1 that ensembles of models are not a panacea, and in fact post-processing techniques have a far greater impact on performance than the individual architecture chosen. 

SpaceNet 7 경진대회 결과표

위 테이블에서 확인하실 수 있듯이 여러 개의 무거운 모델을 결합한 다른 방법보다 단일 모델 하나로 가장 높은 성능에 도달한 것을 볼 수 있습니다.

성능과 속도 관계 테이블

또한, 추론 속도 측면에서도 당연히 ensemble을 사용하지 않은 모델이 빨랐습니다. 다만 일반적인 딥 러닝 논문의 성능 테이블과 달리 초당 처리할 수 있는 이미지 배치의 수 등으로 표현하지 않고 분당 얼마큼의 면적을 처리하는지로 평가했습니다. 

평가 지표 (SCOT Metric)

  • 경진대회에서 제안한 태스크를 평가하기 위해 자체적으로 새로 정의한 평가 지표는 아래 링크에서 자세히 확인하실 수 있습니다. 
  • 목표 단락에서 언급했듯이 해당 경진대회는 도시의 개발 정도를 추산하는 태스크이지만, 이를 위해 Re-Identification 등 Visual Tracking과 유사한 성격을 갖기 때문에 해당 분야에서 널리 쓰이는 MOTA를 참고하여 평가 지표를 설계했습니다.
We originally intended to use the Multiple Object Tracking Accuracy (MOTA) metric for SpaceNet 7, which is a commonly used metric for object tracking in video.

 

Dataset

  • 이번에 공개한 데이터셋은 시간에 따른 변화를 파악해야 하기 때문에 time dimension 정보를 포함하고 있습니다.
  • 사용한 위성영상은 지난번 Spacenet6 경진대회에서 사용되었던 World View 2와 다르게 평균 GSD 4.0m 정도에 해당하는 medium resolution  Planet 영상을 사용하였습니다. 시간 흐름에 따른 변화를 추적해야 하기 때문에 짧은 주기로 동일 지역을 촬영할 수 있는 상대적으로 저해상도의 Planet을 사용한 것으로 보입니다.

 

결과

  • 아래 사진에서 1등 수상자(lxastro0)를 확인할 수 있습니다.

 

수상자들이 중요하게 생각한 부분

수상자들은 깊고/크고 적합한 모델을 찾는 것보다 후처리 기술에 중심을 두었습니다.

As noted above, post-processing techniques are really where the winning submissions differentiated themselves (and will be covered in depth later),

다음 단락부터 각 내용들을 상세히 소개하겠습니다.

 

Upsampling improved performance

  • 주어진 Planet 영상이 고해상도가 아닌 중간 정도의 해상도이므로 원본 영상을 그대로 사용할 경우 건물이 매우 작은 픽셀로 표현될 수 있습니다. 특히 CNN의 경우 Depth가 깊어질 경우 Resolution을 줄이는 게 보통이기 때문에  Segmenation Mask가 너무 작은 경우에 아예 GT가 사라져 학습이 되지 않을 수도 있습니다.
    • 이에 따라 Upsampling을 수행하여 강제적으로 키운 영상으로 학습과 인퍼런스를 진행하였습니다.
    • 아래 결과를 대략적으로 봐도 원본 크기의 baseline 모델과 HRNet 보다는 확대한 영상에서 세부 디테일이 살아있는 것을 확인할 수 있습니다.
    • 실험은 2x, 3x 로 진행하였고 3x (3배)로 했을 때 성능이 가장 우수했습니다.

1등 수상자 결과 (lxastro0)

Additional Class (Masks)

  • 위성영상의 특성상 건물들이 매우 작은 크기를 지니고 있으므로 footprint를 추출하여 분류하는게 어렵습니다. 따라서 이번 대회 수상자들은 SpaceNet 4 수상자들이 사용하였던 방법인 객체의 Boundary class 와 인접한 영역에 대한 class 를 추가하여 Ground Truth를 다시 제작했습니다.
  • Test 시 추가한 클래스를 제외시키는 방법으로 건물과 건물 사이를 띄워줍니다. 건물 및 Boundary 클래스까지만 사용할 수 도 있고, 추가한 2개 클래스 모두 배경 클래스로 바꿔 사용할 수도 있습니다. 

Ensemble

  1. 성능을 소수점 단위라도 높이기 위해 거의 당연하게 사용하는 것 중 하나가 Ensemble입니다. Bagging을 쓰든 Voting을 하든지 서로 다른 모델에서 나온 결과들을 모아 Ensemble을 하는게 성능 확보에 좋은 것은 맞습니다.
    • 그런데 이번의 경우에 1등 참가자는 Ensemble을 사용하지 않았습니다. 대신 다른 참가자들이 사용하지 않은 후처리를 적용해 1개의 모델로 1등을 했습니다.  심지어 참가했던 팀중에서는 1등이 사용한 HRNet을 Ensemble로 활용한 팀이 있었으나 순위권에 들지 못했습니다.
  2. 4등 수상자의 경우에는 EfficientNet과 U-Net을 Ensemble해 아래와 같이 적용하였습니다.

  • 모델의 결과를 기본적인 Average로 합치고 Mask Output으론 건물 body 와 추가한 2개 채널 edge, contact를 사용했습니다.

1위 참가자는 어떻게 단일 모델로 1위를 했는가?

참조: https://medium.com/the-downlinq/spacenet-7-results-tis-the-season-fadc722fdff0 

  • 본 경진대회의 목적은 시간에 따른 건물 건설을 추적하는 것이기 때문에, 주최 측은 해상도가 좋아진다고 평가 결과가 마냥 좋아지는 건 아니라는 점을 명시합니다.
We also note unexpected correlations between algorithmic performance and locale properties, namely: decreasing performance as resolution improves.

SpaceNet7 Baseline algorithm for building footprint extraction and tracking

 

Winning Approach

우승 팀이 적용한 대표적인 방법들은 다음과 같습니다.

  1. baseline 으로 제공한 VGG16+U-Net 대신 작은 건물을 잘 찾기위해서 HRNet (High resolution network) 을 사용하였습니다.
  2. 마찬가지로 작은 크기의 물체의 문제를 해결하기 위해 HRNet에 입력으로 들어가는 크기를 3배로 Upsampling하였습니다.
  3. 가장 핵심적인 것으로 저자들이 "temporal collapse" 라고 이름 지은 post-processing을 적용하였습니다.

 

Temporal Collapse

SpaceNet 7을 위한 후처리를 향상시키기 위해 우승 팀은 아래와 같은 항목들을 가정했습니다.

  1. 건물은 첫번째 관찰(observation) 이후에는 변하지 않는다.
    • 한번 건물이 지어져서 나타나면 이후 시간 동안 변화가 없다고 가정하였습니다.
  2. 3x upscaling 스케일에서 건물들 사이에는 최소 1 pixel의 갭이 있다.
    • 3배로 영상을 확대했으므로 건물이 아무리 붙어 있다고 하더라도 건물 사이에 마진이 생길 수 밖에 없다고 가정한 것입니다.
  3. 모든 건물 후보들은 다음 3가지 시나리오 중 하나를 따른다.
    1. 모든 frame에 항상 존재하는 경우
    2. 어떤 frame에도 존재하지 않는 경우 (모든 영상에서 해당 지역에 건물이 존재하지 않음, surface 지역)
    3. 특정 시점 (k번째 frame) 에서 건물이 나타난 후 계속 유지되는 경우
    즉, 건물이 생겼다가 다시 없어지는 경우는 고려하지 않았습니다.

 

각 AOI에서의 영상들은 time dimension을 가지므로 매우 적은 프레임을 가진 Video라고 생각할 수 있습니다. 첫 번째 가정은 건물의 경계가 시간이 지나도 변하지 않는다는 것을 의미하기 때문에 다음 그림과 같이 변동되지 않은 time dimension을 압축하여, 각 건물의 공간적 위치는 단 한 번만 예측하였습니다.

Ground Truth(윗줄)와 예측 결과(아랫줄)를 위한 temporal collapse의 시각화. 가장 왼쪽의 프레임은 우측 3개의 시간별 건물을 합쳐 놓은 압축된 확률 맵 (compressed probability map) 을 의미합니다.

건물의 경계들은 최종적으로 합쳐진 마스크에서 watershed 알고리즘과 adaptive threshold를 이용해 결정하였고, 이때 두 번째 가정과 같이 이를 통해 모든 건물들의 경계를 결정할 수 있다고 보았습니다.

이제 모든 건물에 대한 공간적 위치가 결정되었기 때문에 시간적 생성 시점(언제부터 건물이 있었는지)를 계산해야 합니다. 매 프레임에서 각 건물에 대해 미리 결정된 건물의 경계 내에 있는 각 픽셀들의 예측된 확률 값들을 이용해 평균을 냈습니다. 이러한 매핑을 통해 어떤 프레임에서부터 건물이 생겨났는지 아래 그림과 같이 결정할 수 있습니다.

각 건물의 시간적 생성 시점을 결정하기 위한 방법. 윗줄: 세 번째 가정에서 언급한 세 가지 시나리오. 아랫줄: 각 타임 스텝에서의 각 건물의 합친 예측 확률(파란색 선)은 최종적으로 예측한 건물 생성 여부(빨간 선)를 결정하는 데에 사용됩니다.

위 그림에서 (1)은 모든 프레임에서 건물이 존재하는 경우, (2)는 항상 없었던 경우, (3)은 중간에 건물이 생긴 경우를 의미합니다.

  • 즉 각 건물마다 건물의 경계에 해당하는 probability map을 합산하여, time step 별로 그 추세를 계산합니다.
  • 모든 프레임에서 (1)과 같이 꾸준히 높은 값을 가진다면 항상 있었던 건물을 의미하며 이러한 경우에 동일한 ID를 부여합니다.
  • 모든 프레임에서 대체적으로 낮은 값을 지닌다면, 중간에 높은 값을 갖는다고 하더라도 노이즈일 수 있으므로 해당 영역은 건물이 항상 없는 것으로 판단합니다.
  • 값이 어느 정도 유지되다가 특정 시점 이후부터 앞선 구간보다 높은 값을 지니게 되면 해당 시점부터 새로운 건물이 생성되었다고 가정합니다. 이때 이전 프레임에 잡힌 건물이 있다고 하더라도 노이즈라 판단하여 해당 건물들은 없었다고 판단합니다.

 

 

이 방법은 다양한 지표에서 성능 향상을 보여주었는데 무엇보다 Change Detection과 관련된, 대회에서 정의한 SCOT에서 큰 성능 향상을 보였습니다.

 

아래 그림은 1행부터 아래로 원본 영상, baseline 결과, 1등 결과, GT를 나타냅니다.

베이스라인(2행)에서는 ID Switch가 일어나기도 하고, T=6에서 존재했던 건물들이 T=12에서 갑자기 사라지는 경우가 발생하지만, 1등 결과(3행)에서는 위에서 정의된 가정을 따르기 때문에 ID Switch가 일어나지 않고 이전에 생성되었던 건물도 사라지지 않는 것을 확인할 수 있습니다.

 

결론

이번 글에서는 SpaceNet 7에서 우승한 팀의 접근 방법을 통해 위성영상을 이용해 시간에 따른 도시 개발 양상을 효과적으로 추정하는 방법을 살펴보았습니다. 특히 우승 팀이 접근한 방법들로부터 크게 다음과 같은 결론이나 인사이트들을 얻어낼 수 있습니다.

  • Feature 를 잘 뽑아내기 위해 어떤 모델을 써야 하는지는 어느 수준 이상에 도달하면 큰 차이를 만들어내지 못합니다.
  • Ensemble도 성능을 높이기 위해서 좋은 방법이지만 시간도 오래 걸리고 성능을 향상시키는 데 한계점이 존재하며, 보다 가볍고 효율적인 모델을 운영해야 하는 제품화 관점에서는 Ensemble 보단 단일 모델 형태가 더 좋을 수 있습니다.
  • 다양한 아이디어와 접근법으로 Pre/Post-processing 에 집중하고 여러 형태의 정보와 데이터를 융합하여 사용하는 방향으로 나아가는게 성능과 제품화 두 마리 토끼를 잡는 가장 좋은 방법일 수 있습니다.

즉, 일반적인 연구 환경에서는 잘 정제된 데이터셋에서 잘 정의된 문제를 풀기 때문에 전처리, 후처리 등보다는 모델 자체에 집중하는 경향이 있지만, 실제 환경에서의 데이터를 이용해 문제를 해결하기 위해선 다각도로 문제를 정의해야 하고, 전처리 또는 후처리와 같은 모델 아키텍처 외의 접근이 문제 해결에 결정적인 영향을 미칠 수 있다는 좋은 사례를 확인할 수 있었습니다.

 

[##최형욱##]