콘텐츠로 건너뛰기

OBB(Oriented Bounding Box) 데이터 세트 개요

OBB(Oriented Bounding Box)를 사용하여 정확한 객체 감지 모델을 학습하려면 철저한 데이터 세트가 필요합니다. 이 가이드에서는 Ultralytics YOLO 모델과 호환되는 다양한 OBB 데이터 세트 형식을 설명하고 해당 구조, 애플리케이션 및 형식 변환 방법에 대한 통찰력을 제공합니다.

지원되는 OBB 데이터 세트 형식

YOLO OBB 형식

YOLO OBB 형식은 좌표가 0과 1 사이에서 정규화된 네 개의 모서리 점으로 경계 상자를 지정합니다. 다음과 같은 형식을 따릅니다.

class_index x1 y1 x2 y2 x3 y3 x4 y4

내부적으로 YOLO는 손실과 출력을 다음에서 처리합니다. xywhr format)을 나타냅니다. 경계 상자의 중심점(xy), 너비, 높이 및 회전입니다.

OBB 형식 예시

다음의 예 *.txt 클래스 객체를 포함하는 위 이미지의 레이블 파일 0 OBB 형식은 다음과 같습니다:

0 0.780811 0.743961 0.782371 0.74686 0.777691 0.752174 0.776131 0.749758

데이터 세트 YAML 형식

Ultralytics 프레임워크는 YAML 파일 형식을 사용하여 OBB 모델 학습을 위한 데이터 세트 및 모델 구성을 정의합니다. 다음은 OBB 데이터 세트를 정의하는 데 사용되는 YAML 형식의 예입니다.

ultralytics/cfg/datasets/dota8.yaml

# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

# DOTA8 dataset 8 images from split DOTAv1 dataset 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 (1MB)

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

사용법

이러한 OBB 형식을 사용하여 모델을 학습하려면:

예시

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

지원되는 데이터 세트

현재 OBB(Oriented Bounding Box)가 있는 다음 데이터 세트가 지원됩니다.

  • DOTA-v1: 객체 감지를 위해 방향이 지정된 경계 상자가 있는 포괄적인 항공 이미지 세트를 제공하는 DOTA 데이터 세트의 첫 번째 버전입니다.
  • DOTA-v1.5: DOTA 데이터 세트의 중간 버전으로, 향상된 객체 감지 작업을 위해 DOTA-v1에 대한 추가 주석 및 개선 사항을 제공합니다.
  • DOTA-v2: 항공 이미지의 객체 감지를 위한 대규모 데이터 세트인 DOTA 버전 2는 항공 관점에서의 감지를 강조하며 170만 개의 인스턴스와 11,268개의 이미지가 있는 방향이 지정된 경계 상자를 포함합니다.
  • DOTA8: 전체 DOTA 데이터 세트의 작은 8개 이미지 하위 세트로, OBB 학습의 워크플로 및 지속적 통합(CI) 검사를 테스트하는 데 적합합니다. ultralytics 저장소에서 가져옵니다.

자체 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 형식과의 정렬을 보장합니다.

데이터 세트와 모델의 호환성을 검증하고 필요한 형식 규칙을 준수하는 것이 중요합니다. 올바르게 구성된 데이터 세트는 방향이 지정된 경계 상자를 사용하여 효율적인 객체 감지 모델을 훈련하는 데 매우 중요합니다.

FAQ

OBB(Oriented Bounding Boxes)란 무엇이며 Ultralytics YOLO 모델에서 어떻게 사용됩니까?

OBB(Oriented Bounding Box)는 축 정렬만 하는 대신 감지되는 객체에 더 가깝게 정렬되도록 상자를 회전할 수 있는 경계 상자 주석 유형입니다. 이는 객체가 이미지 축과 정렬되지 않을 수 있는 항공 또는 위성 이미지에서 특히 유용합니다. Ultralytics YOLO 모델에서 OBB는 YOLO OBB 형식으로 네 개의 모서리 점으로 표시됩니다. 이를 통해 경계 상자가 객체에 더 잘 맞도록 회전할 수 있으므로 객체 감지 정확도가 향상됩니다.

기존 DOTA 데이터 세트 레이블을 Ultralytics YOLO11에서 사용하기 위해 YOLO OBB 형식으로 어떻게 변환합니까?

다음을 사용하여 DOTA 데이터 세트 레이블을 YOLO OBB 형식으로 변환할 수 있습니다. convert_dota_to_yolo_obb Ultralytics의 함수입니다. 이 변환은 Ultralytics YOLO 모델과의 호환성을 보장하여 향상된 객체 감지를 위해 OBB 기능을 활용할 수 있도록 합니다. 다음은 간단한 예입니다.

from ultralytics.data.converter import convert_dota_to_yolo_obb

convert_dota_to_yolo_obb("path/to/DOTA")

이 스크립트는 DOTA 주석을 YOLO 호환 형식으로 다시 포맷합니다.

데이터 세트에서 OBB(Oriented Bounding Box)를 사용하여 YOLO11 모델을 어떻게 학습시키나요?

OBB를 사용하여 YOLO11 모델을 학습하려면 데이터 세트가 YOLO OBB 형식인지 확인한 다음 Ultralytics API를 사용하여 모델을 학습해야 합니다. 다음은 python과 CLI 모두의 예입니다.

예시

from ultralytics import YOLO

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

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

이렇게 하면 모델이 개선된 탐지 정확도를 위해 자세한 OBB 주석을 활용할 수 있습니다.

Ultralytics YOLO 모델에서 OBB 훈련을 위해 현재 지원되는 데이터 세트는 무엇입니까?

현재 Ultralytics는 OBB 훈련을 위해 다음 데이터 세트를 지원합니다.

  • DOTA-v1: 객체 감지를 위해 방향이 지정된 경계 상자가 있는 포괄적인 항공 이미지 세트를 제공하는 DOTA 데이터 세트의 첫 번째 버전입니다.
  • DOTA-v1.5: DOTA 데이터 세트의 중간 버전으로, 향상된 객체 감지 작업을 위해 DOTA-v1에 대한 추가 주석 및 개선 사항을 제공합니다.
  • DOTA-v2: 이 데이터 세트는 주로 항공 객체 감지에 중점을 두고 있으며 방향이 지정된 경계 상자가 있는 170만 개의 인스턴스와 11,268개의 이미지를 포함합니다.
  • DOTA8: 테스트 및 지속적 통합(CI) 검사에 사용되는 DOTA 데이터 세트의 더 작은 8개 이미지 하위 세트입니다.

이러한 데이터 세트는 항공 및 위성 이미지 분석과 같이 OBB가 상당한 이점을 제공하는 시나리오에 맞게 조정되었습니다.

YOLO11 훈련을 위해 방향성 경계 상자가 있는 자체 데이터 세트를 사용할 수 있습니까? 그렇다면 어떻게 해야 합니까?

예, YOLO11 훈련을 위해 방향성 경계 상자가 있는 자체 데이터 세트를 사용할 수 있습니다. 데이터 세트 주석이 네 개의 모서리 점으로 경계 상자를 정의하는 YOLO OBB 형식으로 변환되었는지 확인하십시오. 그런 다음 데이터 세트 경로, 클래스 및 기타 필요한 세부 정보를 지정하는 YAML 구성 파일을 만들 수 있습니다. 데이터 세트 생성 및 구성에 대한 자세한 내용은 지원되는 데이터 세트 섹션을 참조하십시오.



📅 1년 전에 생성됨 ✏️ 10일 전에 업데이트됨

댓글