microsoft/satclip

PyTorch implementation of SatCLIP

해결하는 문제

SatCLIP은 지구상의 모든 좌표에 대해 재사용 가능한 단일 표현(벡터)을 생성합니다. 원시 위도/경도를 모델에 입력하는 대신, SatCLIP의 위치 임베딩을 온도, 소득, 생물 군계 유형 예측과 같은 다양한 작업의 입력으로 사용할 수 있습니다. 해당 위치의 위성 이미지를 통해 장소의 특성을 학습하므로, 임베딩은 의미 있는 지리적 및 환경적 특징을 포착합니다.

작동 원리

SatCLIP은 OpenAI의 CLIP 모델에서 사용된 것과 동일한 개념인 대조 학습(contrastive learning)으로 훈련됩니다. 훈련 데이터는 위성 이미지와 해당 이미지가 촬영된 좌표의 쌍으로 구성됩니다. 위성 이미지를 벡터로 변환하는 이미지 인코더와 좌표(경도/위도)를 벡터로 변환하는 위치 인코더, 두 개의 인코더가 함께 훈련됩니다. 훈련 과정에서 모델은 일치하는 쌍에 대해서는 두 벡터를 유사하게 만들고, 일치하지 않는 쌍에 대해서는 다르게 만들도록 학습합니다. 훈련 후에는 위치 인코더만 있으면 됩니다. 임의의 좌표를 입력하면 해당 위치를 요약하는 벡터가 출력됩니다. 이 모델은 Sentinel‑2에서 샘플링된 10만 개의 다중 분광 위성 이미지(256×256 픽셀, 12개 밴드, 10m 해상도)를 포함하는 S2‑100K라는 새로운 데이터셋으로 훈련되었습니다.

대상 사용자

환경 변수 예측, 지역 분류, 이미지 위치 파악 등 지리 공간 머신러닝 작업을 수행하는 연구자 및 개발자. 또한 처음부터 직접 구축할 필요 없이 사전 훈련된 위치 임베딩이 필요한 모든 사람에게 유용합니다. 이 프로젝트는 Python 코드, 사전 훈련된 모델, 예제 노트북을 제공합니다.

주요 특징

  • 3가지 비전 백본(ResNet‑18, ResNet‑50, ViT‑B/16) 및 2가지 공간 해상도 설정에 대한 사전 훈련된 모델 제공.
  • 저자들이 공개한 10만 개의 다중 분광 위성 이미지로 구성된 S2‑100K 데이터셋으로 훈련됨.
  • 다양한 다운스트림 작업에서 평가됨: 회귀(온도, 강수량, 소득, 주택, 고도, 인구 밀도) 및 분류(국가, 생물 군계, 생태 지역, 종).
  • 훈련 코드, 명령줄 인터페이스, 사용하기 쉬운 노트북을 포함한 오픈 소스.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트