콘텐츠로 건너뛰기

OBB가 있는 DOTA 데이터세트

DOTA는 항공 이미지의 객체 검출을 강조하는 특수 데이터 세트입니다. DOTA 시리즈 데이터 세트에서 파생되었으며, OBB(Oriented Bounding Boxes)를 사용하여 다양한 항공 장면을 캡처한 주석이 달린 이미지를 제공합니다.

DOTA 클래스 시각 자료

주요 기능



참고: Google Colab에서 방향이 지정된 경계 상자에 대한 DOTA 데이터 세트에서 Ultralytics YOLO11을 훈련하는 방법

  • 다양한 센서와 플랫폼에서 수집되었으며, 이미지 크기는 800 × 800에서 20,000 × 20,000 픽셀까지 다양합니다.
  • 18개 카테고리에서 170만 개 이상의 방향성 경계 상자를 특징으로 합니다.
  • 다중 스케일 객체 감지를 포함합니다.
  • 인스턴스는 전문가가 임의의 (8 d.o.f.) 사변형을 사용하여 주석을 달아 다양한 스케일, 방향 및 모양의 객체를 캡처합니다.

데이터 세트 버전

DOTA-v1.0

  • 15개의 일반적인 범주를 포함합니다.
  • 188,282개의 인스턴스가 포함된 2,806개의 이미지로 구성됩니다.
  • 분할 비율: 학습 1/2, 검증 1/6, 테스트 1/3.

DOTA-v1.5

  • DOTA-v1.0과 동일한 이미지를 통합합니다.
  • 매우 작은 객체(10픽셀 미만)도 어노테이션 처리됩니다.
  • 새로운 범주 "컨테이너 크레인" 추가.
  • 총 403,318개의 인스턴스가 있습니다.
  • 항공 이미지의 객체 감지에 대한 DOAI 챌린지 2019를 위해 출시되었습니다.

DOTA-v2.0

  • Google Earth, GF-2 위성 및 기타 항공 이미지에서 수집되었습니다.
  • 18개의 일반적인 범주를 포함합니다.
  • 1,793,658개의 인스턴스가 포함된 11,268개의 이미지로 구성됩니다.
  • "공항" 및 "헬기 착륙장"의 새로운 카테고리가 도입되었습니다.
  • 이미지 분할:
    • 훈련: 268,627개의 인스턴스가 있는 1,830개의 이미지.
    • 유효성 검사: 81,048개의 인스턴스가 있는 593개의 이미지.
    • 테스트-dev: 353,346개의 인스턴스가 있는 2,792개의 이미지.
    • 테스트-챌린지: 1,090,637개의 인스턴스가 있는 6,053개의 이미지.

데이터 세트 구조

DOTA는 OBB 객체 감지 문제에 맞춰 구조화된 레이아웃을 보여줍니다.

  • 이미지: 다양한 지형과 구조를 캡처하는 방대한 고해상도 항공 이미지 컬렉션입니다.
  • 방향이 지정된 경계 상자: 객체의 방향에 관계없이 객체를 캡슐화하는 회전된 사각형 형태의 어노테이션으로, 비행기, 선박 및 건물과 같은 객체를 캡처하는 데 이상적입니다.

응용 분야

DOTA는 특히 항공 이미지 분석에 맞게 조정된 모델을 훈련하고 평가하기 위한 벤치마크 역할을 합니다. OBB 어노테이션을 포함함으로써 고유한 과제를 제공하여 항공 이미지의 뉘앙스를 충족하는 특수 객체 감지 모델 개발을 가능하게 합니다. 이 데이터 세트는 원격 감지, 감시 및 환경 모니터링 애플리케이션에 특히 유용합니다.

데이터세트 YAML

일반적으로 데이터 세트는 데이터 세트의 구성을 자세히 설명하는 YAML(Yet Another Markup Language) 파일을 통합합니다. DOTA v1 및 DOTA v1.5의 경우 Ultralytics는 다음을 제공합니다. DOTAv1.yamlDOTAv1.5.yaml 파일을 참조하십시오. 이러한 내용과 DOTA v2에 대한 자세한 내용은 DOTA 공식 저장소 및 문서를 참조하십시오.

DOTAv1.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
#     └── dota1 ← downloads here (2GB)

# 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.zip

DOTA 이미지 분할

DOTA 데이터 세트를 학습하기 위해 고해상도의 원본 DOTA 이미지를 다중 스케일 방식으로 1024x1024 해상도의 이미지로 분할합니다. 이 전처리 단계는 원본 이미지가 매우 클 수 있으므로 효율적인 학습에 매우 중요합니다.

이미지 분할

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 v1 데이터 세트에 대해 모델을 학습시키려면 다음 코드 스니펫을 활용할 수 있습니다. 사용 가능한 인수의 전체 목록은 항상 모델 설명서를 참조하십시오. 먼저 더 작은 하위 집합으로 실험하려는 경우 빠른 테스트를 위해 8개의 이미지만 포함된 DOTA8 데이터 세트를 사용하는 것이 좋습니다.

경고

DOTAv1 데이터 세트의 모든 이미지와 관련 주석은 학술적인 목적으로 사용할 수 있지만 상업적 사용은 금지되어 있습니다. 데이터 세트 제작자의 바람에 대한 이해와 존중을 부탁드립니다!

훈련 예제

from ultralytics import YOLO

# Create a new YOLO11n-OBB model from scratch
model = YOLO("yolo11n-obb.yaml")

# Train the model on the DOTAv1 dataset
results = model.train(data="DOTAv1.yaml", epochs=100, imgsz=1024)
# Train a new YOLO11n-OBB model on the DOTAv1 dataset
yolo obb train data=DOTAv1.yaml model=yolo11n-obb.pt epochs=100 imgsz=1024

샘플 데이터 및 주석

데이터 세트를 살펴보면 그 깊이를 알 수 있습니다.

데이터 세트 샘플 이미지

  • DOTA 예제: 이 스냅샷은 항공 장면의 복잡성과 자연스러운 방향으로 객체를 캡처하는 방향성 바운딩 박스 어노테이션의 중요성을 강조합니다.

이 데이터 세트의 풍부함은 항공 이미지에만 있는 객체 감지 문제에 대한 귀중한 통찰력을 제공합니다. DOTA-v2.0 데이터 세트는 포괄적인 주석과 다양한 객체 범주로 인해 원격 감지 및 항공 감시 프로젝트에 특히 인기가 높습니다.

인용 및 감사의 말씀

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 웹사이트를 방문하십시오.

FAQ

DOTA 데이터 세트는 무엇이며, 항공 이미지에서의 객체 감지에 왜 중요합니까?

DOTA 데이터 세트는 항공 이미지의 객체 감지에 중점을 둔 특수 데이터 세트입니다. OBB(Oriented Bounding Boxes)를 특징으로 하며 다양한 항공 장면에서 주석이 달린 이미지를 제공합니다. 170만 개의 주석과 18개 범주에 걸친 객체 방향, 크기 및 모양의 다양성으로 인해 감시, 환경 모니터링 및 재해 관리에 사용되는 것과 같이 항공 이미지 분석에 맞게 조정된 모델을 개발하고 평가하는 데 이상적입니다.

DOTA 데이터 세트는 이미지에서 다양한 스케일과 방향을 어떻게 처리합니까?

DOTA는 어노테이션을 위해 OBB(Oriented Bounding Boxes)를 활용하며, 이는 방향에 관계없이 객체를 캡슐화하는 회전된 사각형으로 표시됩니다. 이 방법을 통해 작거나 다른 각도에 있는 객체를 정확하게 캡처할 수 있습니다. 800 × 800에서 20,000 × 20,000 픽셀에 이르는 데이터 세트의 멀티스케일 이미지를 통해 작고 큰 객체를 모두 효과적으로 감지할 수 있습니다. 이 접근 방식은 객체가 다양한 각도와 스케일로 나타나는 항공 이미지에 특히 유용합니다.

DOTA 데이터 세트를 사용하여 모델을 어떻게 훈련할 수 있습니까?

DOTA 데이터 세트에 대해 모델을 학습시키려면 Ultralytics YOLO와 함께 다음 예제를 사용할 수 있습니다.

훈련 예제

from ultralytics import YOLO

# Create a new YOLO11n-OBB model from scratch
model = YOLO("yolo11n-obb.yaml")

# Train the model on the DOTAv1 dataset
results = model.train(data="DOTAv1.yaml", epochs=100, imgsz=1024)
# Train a new YOLO11n-OBB model on the DOTAv1 dataset
yolo obb train data=DOTAv1.yaml model=yolo11n-obb.pt epochs=100 imgsz=1024

DOTA 이미지를 분할하고 전처리하는 방법에 대한 자세한 내용은 DOTA 이미지 분할 섹션을 참조하세요.

DOTA-v1.0, DOTA-v1.5, DOTA-v2.0의 차이점은 무엇인가요?

  • DOTA-v1.0: 2,806개의 이미지에 걸쳐 188,282개의 인스턴스와 함께 15개의 일반적인 범주를 포함합니다. 데이터 세트는 훈련, 검증 및 테스트 세트로 분할됩니다.
  • DOTA-v1.5: 매우 작은 인스턴스(10픽셀 미만)를 어노테이션하고 "컨테이너 크레인"이라는 새로운 범주를 추가하여 총 403,318개의 인스턴스를 포함함으로써 DOTA-v1.0을 기반으로 합니다.
  • DOTA-v2.0: Google Earth 및 GF-2 위성의 어노테이션을 통해 더욱 확장되어 11,268개의 이미지와 1,793,658개의 인스턴스를 특징으로 합니다. 여기에는 "공항" 및 "헬기 착륙장"과 같은 새로운 범주가 포함됩니다.

자세한 비교 및 추가 정보는 데이터 세트 버전 섹션을 확인하세요.

고해상도 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,
)

이 프로세스는 더 나은 훈련 효율성과 모델 성능을 촉진합니다. 자세한 내용은 split DOTA images 섹션을 참조하십시오.



📅 1년 전에 생성됨 ✏️ 3개월 전에 업데이트됨

댓글