Link to this sectionOBB를 포함한 DOTA 데이터셋#
DOTA는 항공 이미지에서의 객체 탐지에 중점을 둔 특화된 데이터셋입니다. DOTA 시리즈 데이터셋에서 비롯된 이 데이터셋은 회전 경계 상자(OBB, Oriented Bounding Boxes)로 주석이 달린 다양한 항공 장면을 포함하는 이미지를 제공합니다.

Link to this section주요 특징#
Watch: How to Train Ultralytics YOLO26 on the DOTA Dataset for Oriented Bounding Boxes in Google Colab
- 다양한 센서 및 플랫폼에서 수집되었으며, 이미지 크기는 800 × 800에서 20,000 × 20,000 픽셀까지 다양합니다.
- 18개 카테고리에 걸쳐 170만 개 이상의 회전형 경계 상자를 포함하고 있습니다.
- 이미지당 객체 크기가 매우 다양하여 멀티스케일 객체 탐지를 포함합니다.
- 인스턴스는 전문가가 임의의(8 자유도) 사각형을 사용하여 주석을 달았으며, 다양한 스케일, 방향 및 형태의 객체를 포착합니다.
Link to this section데이터셋 버전#
Link to this sectionDOTA-v1.0#
- 15개의 공통 카테고리를 포함합니다.
- 2,806개의 이미지와 188,282개의 인스턴스로 구성됩니다.
- 데이터 분할 비율: 훈련용 1/2, 검증용 1/6, 테스트용 1/3입니다.
Link to this sectionDOTA-v1.5#
- DOTA-v1.0과 동일한 이미지를 포함합니다.
- 매우 작은 인스턴스(10 픽셀 미만)도 주석 처리되었습니다.
- 새로운 카테고리인 "container crane(컨테이너 크레인)"이 추가되었습니다.
- 총 403,318개의 인스턴스입니다.
- DOAI Challenge 2019 on Object Detection in Aerial Images를 위해 공개되었습니다.
Link to this sectionDOTA-v2.0#
- Google Earth, GF-2 위성 및 기타 항공 이미지에서 수집되었습니다.
- 18개의 공통 카테고리를 포함합니다.
- 11,268개의 이미지와 무려 1,793,658개의 인스턴스로 구성됩니다.
- 새로운 카테고리인 "airport(공항)"와 "helipad(헬리패드)"가 도입되었습니다.
- 이미지 분할:
- 훈련: 1,830개의 이미지, 268,627개의 인스턴스.
- 검증: 593개의 이미지, 81,048개의 인스턴스.
- Test-dev: 2,792개의 이미지, 353,346개의 인스턴스.
- Test-challenge: 6,053개의 이미지, 1,090,637개의 인스턴스.
Link to this section데이터셋 구조#
DOTA는 OBB 객체 탐지 챌린지에 맞게 설계된 구조화된 레이아웃을 보여줍니다:
- Images(이미지): 다양한 지형과 구조물을 포착한 고해상도 항공 이미지의 방대한 컬렉션입니다.
- Oriented Bounding Boxes(회전형 경계 상자): 비행기, 선박, 건물과 같은 객체를 포착하는 데 이상적인, 방향에 관계없이 객체를 감싸는 회전된 직사각형 형태의 주석입니다.
Link to this section응용 분야#
DOTA는 항공 이미지 분석에 특화된 모델을 학습하고 평가하기 위한 벤치마크 역할을 합니다. OBB 주석을 포함하여 독특한 과제를 제공하며, 항공 이미지의 미묘한 차이를 처리할 수 있는 전문적인 객체 탐지 모델 개발을 가능하게 합니다. 이 데이터셋은 원격 탐사, 감시 및 환경 모니터링 분야의 애플리케이션에 특히 유용합니다.
Link to this section데이터셋 YAML#
데이터셋 YAML(Yet Another Markup Language) 파일은 이미지/라벨 루트, 클래스 이름 및 기타 중요한 메타데이터를 지정합니다. Ultralytics는 가장 일반적으로 사용되는 두 가지 릴리스에 대한 공식 YAML 파일을 유지 관리합니다:
다운로드한 릴리스와 일치하는 YAML을 사용하거나, DOTA-v2 또는 기타 파생 버전을 사용하는 경우 사용자 지정 YAML을 작성하십시오.
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
# DOTA 1.0 dataset https://captain-whu.github.io/DOTA/index.html for object detection in aerial images by Wuhan University
# Documentation: https://docs.ultralytics.com/datasets/obb/dota-v2
# Example usage: yolo train model=yolov8n-obb.pt data=DOTAv1.yaml
# parent
# ├── ultralytics
# └── datasets
# └── DOTAv1 ← downloads here (2 GB)
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: DOTAv1 # dataset root dir
train: images/train # train images (relative to 'path') 1411 images
val: images/val # val images (relative to 'path') 458 images
test: images/test # test images (optional) 937 images
# Classes for DOTA 1.0
names:
0: plane
1: ship
2: storage tank
3: baseball diamond
4: tennis court
5: basketball court
6: ground track field
7: harbor
8: bridge
9: large vehicle
10: small vehicle
11: helicopter
12: roundabout
13: soccer ball field
14: swimming pool
# Download script/URL (optional)
download: https://github.com/ultralytics/assets/releases/download/v0.0.0/DOTAv1.zipLink to this sectionDOTA 이미지 분할#
원시 이미지는 일반적으로 한 변이 10,000 픽셀을 초과하므로 데이터를 YOLO에 입력하기 전에 타일링이 필요합니다. 아래 도우미를 사용하여 주석을 동기화한 상태에서 원본 이미지를 여러 스케일로 겹치는 1024 × 1024 크기로 조각내십시오.
from ultralytics.data.split_dota import split_test, split_trainval
# Split train and val set, with labels.
split_trainval(
data_root="path/to/DOTAv1.0/",
save_dir="path/to/DOTAv1.0-split/",
rates=[0.5, 1.0, 1.5], # multiscale
gap=500,
)
# Split test set, without labels.
split_test(
data_root="path/to/DOTAv1.0/",
save_dir="path/to/DOTAv1.0-split/",
rates=[0.5, 1.0, 1.5], # multiscale
gap=500,
)데이터셋 YAML에서 직접 참조할 수 있도록 출력 디렉토리를 표준 YOLO 레이아웃(images/train, labels/train 등)으로 구성하십시오.
Link to this section사용법#
DOTA v1 데이터셋으로 모델을 학습하려면 다음 코드 스니펫을 사용할 수 있습니다. 사용 가능한 인수의 전체 목록은 항상 모델의 문서를 참조하십시오. 더 작은 하위 집합으로 먼저 실험해 보고 싶다면, 빠른 테스트를 위해 8개의 이미지만 포함된 DOTA8 데이터셋 사용을 고려하십시오.
DOTAv1 데이터셋의 모든 이미지와 관련 주석은 학술적 목적으로 사용할 수 있으나 상업적 사용은 금지되어 있습니다. 데이터셋 제작자의 의도를 이해하고 존중해 주셔서 대단히 감사합니다!
from ultralytics import YOLO
# Create a new YOLO26n-OBB model from scratch
model = YOLO("yolo26n-obb.yaml")
# Train the model on the DOTAv1 dataset
results = model.train(data="DOTAv1.yaml", epochs=100, imgsz=1024)Link to this section샘플 데이터 및 주석#
데이터셋을 한눈에 살펴보면 그 깊이를 알 수 있습니다:

- DOTA 예제: 이 스냅샷은 항공 장면의 복잡성과 자연스러운 방향으로 객체를 포착하는 회전형 경계 상자 주석의 중요성을 강조합니다.
이 데이터셋의 풍부함은 항공 이미지 전용 객체 탐지 과제에 대한 귀중한 통찰력을 제공합니다. DOTA-v2.0 데이터셋은 포괄적인 주석과 다양한 객체 카테고리로 인해 원격 탐사 및 항공 감시 프로젝트에 특히 인기가 많습니다.
Link to this section인용 및 감사의 글#
귀하의 작업에 DOTA를 사용하는 경우 관련 연구 논문을 인용해 주십시오:
@article{9560031,
author={Ding, Jian and Xue, Nan and Xia, Gui-Song and Bai, Xiang and Yang, Wen and Yang, Michael and Belongie, Serge and Luo, Jiebo and Datcu, Mihai and Pelillo, Marcello and Zhang, Liangpei},
journal={IEEE Transactions on Pattern Analysis and Machine Intelligence},
title={Object Detection in Aerial Images: A Large-Scale Benchmark and Challenges},
year={2021},
volume={},
number={},
pages={1-1},
doi={10.1109/TPAMI.2021.3117983}
}이 데이터셋을 큐레이션하기 위해 훌륭한 노력을 기울인 DOTA 데이터셋 팀에게 특별한 감사를 표합니다. 데이터셋과 그 뉘앙스에 대한 철저한 이해를 원하시면 공식 DOTA 웹사이트를 방문해 주십시오.
Link to this sectionFAQ#
Link to this sectionDOTA 데이터셋이란 무엇이며, 항공 이미지의 객체 탐지에 왜 중요한가요?#
DOTA 데이터셋은 항공 이미지의 객체 탐지에 중점을 둔 특수 데이터셋입니다. 회전형 경계 상자(OBB)를 특징으로 하며 다양한 항공 장면의 주석이 달린 이미지를 제공합니다. 170만 개의 주석과 18개의 카테고리에 걸친 DOTA의 객체 방향, 스케일 및 형태의 다양성은 감시, 환경 모니터링 및 재난 관리와 같이 항공 이미지 분석에 특화된 모델을 개발하고 평가하는 데 이상적입니다.
Link to this sectionDOTA 데이터셋은 이미지의 서로 다른 스케일과 방향을 어떻게 처리하나요?#
DOTA는 주석을 위해 회전형 경계 상자(OBB)를 사용하며, 이는 방향에 관계없이 객체를 감싸는 회전된 직사각형으로 표현됩니다. 이 방법은 객체가 작든 다른 각도에 있든 상관없이 정확하게 포착되도록 보장합니다. 800 × 800에서 20,000 × 20,000 픽셀까지 이르는 데이터셋의 멀티스케일 이미지는 작은 객체와 큰 객체를 모두 효과적으로 탐지할 수 있게 합니다. 이 접근 방식은 객체가 다양한 각도와 스케일로 나타나는 항공 이미지에 특히 유용합니다.
Link to this sectionDOTA 데이터셋을 사용하여 모델을 어떻게 훈련할 수 있나요?#
DOTA 데이터셋으로 모델을 학습하려면 Ultralytics YOLO를 사용하는 다음 예제를 참조하십시오:
from ultralytics import YOLO
# Create a new YOLO26n-OBB model from scratch
model = YOLO("yolo26n-obb.yaml")
# Train the model on the DOTAv1 dataset
results = model.train(data="DOTAv1.yaml", epochs=100, imgsz=1024)DOTA 이미지를 분할하고 전처리하는 방법에 대한 자세한 내용은 DOTA 이미지 분할 섹션을 참조하십시오.
Link to this sectionDOTA-v1.0, DOTA-v1.5 및 DOTA-v2.0의 차이점은 무엇인가요?#
- DOTA-v1.0: 2,806개의 이미지와 188,282개의 인스턴스에 걸쳐 15개의 공통 카테고리를 포함합니다. 데이터셋은 훈련, 검증 및 테스트 세트로 나뉩니다.
- DOTA-v1.5: DOTA-v1.0을 기반으로 매우 작은 인스턴스(10 픽셀 미만)에 주석을 달고 "container crane"이라는 새로운 카테고리를 추가하여 총 403,318개의 인스턴스로 구성됩니다.
- DOTA-v2.0: Google Earth 및 GF-2 위성의 주석으로 더욱 확장되었으며, 11,268개의 이미지와 1,793,658개의 인스턴스를 특징으로 합니다. "airport" 및 "helipad"와 같은 새로운 카테고리를 포함합니다.
자세한 비교 및 추가 정보는 데이터셋 버전 섹션을 확인하십시오.
Link to this section훈련을 위해 고해상도 DOTA 이미지를 어떻게 준비할 수 있나요?#
매우 클 수 있는 DOTA 이미지는 관리가 용이한 훈련을 위해 더 작은 해상도로 분할됩니다. 이미지를 분할하기 위한 Python 코드 조각은 다음과 같습니다:
from ultralytics.data.split_dota import split_test, split_trainval
# split train and val set, with labels.
split_trainval(
data_root="path/to/DOTAv1.0/",
save_dir="path/to/DOTAv1.0-split/",
rates=[0.5, 1.0, 1.5], # multiscale
gap=500,
)
# split test set, without labels.
split_test(
data_root="path/to/DOTAv1.0/",
save_dir="path/to/DOTAv1.0-split/",
rates=[0.5, 1.0, 1.5], # multiscale
gap=500,
)이 과정은 훈련 효율성과 모델 성능을 향상시킵니다. 자세한 지침은 DOTA 이미지 분할 섹션을 방문하십시오.