Link to this sectionOBB를 포함한 DOTA 데이터셋#
DOTA는 항공 이미지 내 객체 탐지에 중점을 둔 특수 데이터셋입니다. DOTA 시리즈 데이터셋에서 유래했으며, 회전형 경계 상자(Oriented Bounding Boxes, OBB)를 사용하여 다양한 항공 장면을 포착한 주석이 달린 이미지를 제공합니다.

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 이미지 분할 섹션을 방문하십시오.