ultralytics/xview-yolov3
YOLOv3 training, preprocessing, validation, and inference for object detection in xView satellite imagery and the xView detection challenge.
What it solves
이 프로젝트는 고해상도 위성 이미지로 구성된 xView 데이터셋에서 YOLOv3 객체 탐지 모델을 학습하기 위한 특화 구현을 제공합니다. 항공 이미지에서 발견되는 객체들의 규모와 다양성 때문에 원격 탐사 데이터에서 객체 탐지는 어려운 작업이며, 이를 돕기 위해 설계되었습니다.
How it works
프로젝트는 YOLOv3 아키텍처를 사용하고 위성 이미지에 특화된 파이프라인을 구현합니다:
- Preprocessing: sigma‑rejection을 이용해 이상치를 제거하고 데이터를 정제합니다. 또한 xView 데이터셋의 바운딩 박스 크기와 종횡비에 맞게 30개의 커스텀 k‑means 앵커를 생성합니다.
- Training: 전체 해상도 이미지에서 무작위로 추출한 608×608 픽셀 칩을 사용해 모델을 학습합니다. 마지막 저장 체크포인트에서 학습을 재개할 수 있는 resume 기능을 포함합니다.
- Augmentation: 과적합을 방지하고 견고성을 높이기 위해 학습 중에 회전, 이동, 스케일링, 반사, HSV 색상 조정 등 다양한 이미지 변환을 적용합니다.
- Inference: 전용 스크립트를 통해 사용자는 새로운 위성 이미지에 학습된 모델을 실행하여 객체를 탐지하고 바운딩 박스를 그릴 수 있습니다.
Who it’s for
주로 xView 챌린지 참가자, 원격 탐사를 위한 컴퓨터 비전 연구자 및 위성 이미지 분석 개발자를 위한 프로젝트입니다.
Highlights
- Custom Anchor Generation: k‑means를 사용해 위성 전용 객체에 대한 바운딩 박스 예측을 최적화합니다.
- Comprehensive Augmentation: 모델 일반화를 향상시키기 위해 다양한 기하학적 및 색상 변환을 포함합니다.
- Checkpointing: 중단된 세션에서 학습을 재개할 수 있도록 지원합니다.
- Ready-to-use Inference: 학습된 가중치를 새로운 이미지에 빠르게 적용할 수 있는 스크립트를 제공합니다.