방향성 바운딩 박스(OBB) 데이터셋 개요#
정확한 객체 감지 모델을 방향성 바운딩 박스(OBB)로 학습하려면 충분한 데이터셋이 필요합니다. 이 가이드에서는 Ultralytics YOLO 모델과 호환되는 다양한 OBB 데이터셋 형식을 설명하고, 구조와 적용 방법, 형식 변환 방법에 관한 정보를 제공합니다.
지원되는 OBB 데이터셋 형식#
YOLO OBB 형식#
YOLO OBB 형식에서는 바운딩 박스를 네 모서리 점으로 지정하고 좌표를 0과 1 사이로 정규화합니다. 형식은 다음과 같습니다:
class_index x1 y1 x2 y2 x3 y3 x4 y4내부적으로 YOLO는 xywhr 형식으로 손실과 출력을 처리합니다. 이 형식은 바운딩 박스의 중심점(xy), 너비, 높이 및 회전을 나타냅니다.

위 이미지에 대해 OBB 형식의 클래스 0 객체를 포함하는 *.txt 레이블 파일은 다음과 같습니다:
0 0.780811 0.743961 0.782371 0.74686 0.777691 0.752174 0.776131 0.749758데이터셋 YAML 형식#
Ultralytics 프레임워크는 OBB 모델 학습에 사용할 데이터셋과 모델 구성을 정의할 때 YAML 파일 형식을 사용합니다. 다음은 OBB 데이터셋 정의에 사용하는 YAML 형식의 예입니다:
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
# DOTA8 dataset (8 images from the DOTAv1 split) by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/obb/dota8
# Example usage: yolo train model=yolov8n-obb.pt data=dota8.yaml
# parent
# ├── ultralytics
# └── datasets
# └── dota8 ← downloads here (1 MB)
# 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: dota8 # dataset root dir
train: images/train # train images (relative to 'path') 4 images
val: images/val # val images (relative to 'path') 4 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/dota8.ziptrain, val 및 test는 각각 디렉터리, 디렉터리 목록 또는 줄마다 이미지 경로 하나를 나열하는 *.txt 파일을 허용합니다(경로가 ./로 시작하면 *.txt 파일을 기준으로 해석됩니다). *.txt 파일을 사용하면 디렉터리의 일부만 학습에 사용하거나, 레이블이 없는 이미지를 건너뛰거나, 여러 소스의 이미지를 하나의 분할 데이터셋으로 결합할 수 있습니다.
path: datasets/dota8 # dataset root
train: train.txt # a directory, a list e.g. [images/a, images/b], or a *.txt file
val: val.txt
names:
0: plane사용법#
이러한 OBB 형식을 사용해 모델을 학습하려면 다음과 같이 합니다:
from ultralytics import YOLO
# 사전 학습된 YOLO26n-OBB 모델 로드
model = YOLO("yolo26n-obb.pt")
# DOTAv1 데이터셋으로 모델 학습
results = model.train(data="DOTAv1.yaml", epochs=100, imgsz=1024)지원되는 데이터셋#
현재 방향성 바운딩 박스를 지원하는 데이터셋은 다음과 같습니다. 이러한 데이터셋 대부분은 Ultralytics Platform에서도 호스팅되며, 여기에서 이미지와 주석을 살펴보고 데이터셋 통계를 확인하거나 클라우드 학습용으로 복제할 수 있습니다.
- DOTA-v1: DOTA 데이터셋의 첫 번째 버전으로, 객체 감지를 위한 방향성 바운딩 박스가 포함된 종합적인 항공 이미지 모음을 제공합니다.
- DOTA-v1.5: DOTA 데이터셋의 중간 버전으로, 객체 감지 작업의 성능 향상을 위해 DOTA-v1보다 주석과 개선 사항을 추가했습니다.
- DOTA-v2: DOTA(항공 이미지 객체 감지를 위한 대규모 데이터셋) 버전 2는 항공 시점에서의 감지에 중점을 두며, 170만 개의 인스턴스와 11,268개의 이미지로 구성된 방향성 바운딩 박스를 포함합니다.
- DOTA8: 전체 DOTA 데이터셋에서 추출한 8개 이미지의 소규모 하위 집합으로,
ultralytics리포지토리에서 워크플로 테스트와 OBB 학습의 지속적 통합(CI) 검사에 적합합니다. - DOTA8 Multispectral: Ultralytics Platform에서 다중 스펙트럼 OBB 학습을 테스트하기 위한 8개 이미지, 10채널 TIFF 하위 집합입니다.
- DOTA128: DOTA 데이터셋에서 추출한 128개 이미지의 하위 집합으로, 모든 이미지가 학습 폴더에 있습니다(학습과 검증에 모두 사용). 크기와 다양성의 균형이 좋아 OBB 모델 테스트에 적합합니다.
자체 OBB 데이터셋 통합하기#
방향성 바운딩 박스가 포함된 자체 데이터셋을 추가하려면 위에서 언급한 "YOLO OBB 형식"과 호환되는지 확인하세요. 주석을 필수 형식으로 변환하고, 해당 YAML 구성 파일에 경로, 클래스 및 클래스 이름을 지정하세요.
레이블 형식 변환#
DOTA 데이터셋 형식을 YOLO OBB 형식으로 변환#
다음 스크립트를 사용해 DOTA 데이터셋 형식의 레이블을 YOLO OBB 형식으로 변환할 수 있습니다:
from ultralytics.data.converter import convert_dota_to_yolo_obb
convert_dota_to_yolo_obb("path/to/DOTA")이 변환 방식은 DOTA 형식 데이터셋에 필수적이며, Ultralytics YOLO OBB 형식에 맞게 변환할 수 있습니다.
데이터셋이 모델과 호환되는지 검증하고 필요한 형식 규칙을 준수해야 합니다. 방향성 바운딩 박스를 사용하는 효율적인 객체 감지 모델을 학습하려면 데이터셋을 올바르게 구성하는 것이 중요합니다.
자주 묻는 질문#
방향성 바운딩 박스(OBB)는 바운딩 박스를 감지 대상 객체에 더 가깝게 맞추도록 회전할 수 있는 주석 형식으로, 축에 정렬된 박스와 다릅니다. 객체가 이미지 축과 정렬되지 않을 수 있는 항공 또는 위성 이미지에서 특히 유용합니다. Ultralytics YOLO 모델에서 OBB는 YOLO OBB 형식의 네 모서리 점으로 표현됩니다. 바운딩 박스를 객체에 더 잘 맞도록 회전할 수 있어 객체 감지 정확도를 높일 수 있습니다.
Ultralytics의
convert_dota_to_yolo_obb함수를 사용하면 DOTA 데이터셋 라벨을 YOLO OBB 형식으로 변환할 수 있습니다. 이 변환을 통해 Ultralytics YOLO 모델과의 호환성을 확보하고, OBB 기능을 활용해 객체 감지 성능을 향상할 수 있습니다. 간단한 예시는 다음과 같습니다:from ultralytics.data.converter import convert_dota_to_yolo_obb convert_dota_to_yolo_obb("path/to/DOTA")이 스크립트는 DOTA 어노테이션을 YOLO 호환 형식으로 다시 구성합니다.
OBB를 사용해 YOLO26 모델을 학습하려면 데이터셋이 YOLO OBB 형식인지 확인한 다음 Ultralytics API를 사용해 모델을 학습하면 됩니다. Python과 CLI를 사용한 예시는 다음과 같습니다:
예제from ultralytics import YOLO # 새 YOLO26n-OBB 모델을 처음부터 생성합니다 model = YOLO("yolo26n-obb.yaml") # 사용자 지정 데이터셋으로 모델을 학습합니다 results = model.train(data="your_dataset.yaml", epochs=100, imgsz=640)이를 통해 모델이 상세한 OBB 어노테이션을 활용하여 감지 정확도를 높일 수 있습니다.
현재 Ultralytics는 OBB 학습을 위해 다음 데이터셋을 지원합니다:
- DOTA-v1: DOTA 데이터셋의 첫 번째 버전으로, 객체 감지를 위한 방향성 바운딩 박스가 포함된 종합적인 항공 이미지 모음을 제공합니다.
- DOTA-v1.5: DOTA 데이터셋의 중간 버전으로, 객체 감지 작업의 성능 향상을 위해 DOTA-v1보다 주석과 개선 사항을 추가했습니다.
- DOTA-v2: 이 데이터셋에는 방향성 바운딩 박스로 어노테이션된 170만 개의 인스턴스와 11,268개의 이미지가 포함되어 있으며, 주로 항공 이미지 객체 감지에 중점을 둡니다.
- DOTA8: 테스트 및 지속적 통합(CI) 검사에 사용되는 DOTA 데이터셋의 8개 이미지 소규모 하위 집합입니다.
- DOTA128: 모든 이미지가 train 폴더에 포함된 128개 이미지 하위 집합입니다(train과 val 모두에 사용). DOTA8보다 다양성이 높으면서도 초기 OBB 모델 개발 및 실험에 적합한 관리 가능한 규모를 유지합니다.
이 데이터셋은 OBB가 큰 이점을 제공하는 항공 및 위성 이미지 분석과 같은 시나리오에 적합합니다.
예, 방향성 바운딩 박스가 포함된 자체 데이터셋으로 YOLO26을 학습할 수 있습니다. 데이터셋 어노테이션을 YOLO OBB 형식으로 변환해야 하며, 이 형식에서는 바운딩 박스를 네 개의 모서리 점으로 정의합니다. 그런 다음 데이터셋 경로, 클래스 및 기타 필수 세부 정보를 지정하는 YAML 구성 파일을 만들 수 있습니다. 데이터셋의 생성 및 구성에 관한 자세한 내용은 지원되는 데이터셋 섹션을 참조하세요.



