콘텐츠로 건너뛰기

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 형식 예제

의 예 *.txt 클래스 오브젝트가 포함된 위 이미지의 레이블 파일을 생성합니다. 0 는 다음과 같이 보일 수 있습니다:

0 0.780811 0.743961 0.782371 0.74686 0.777691 0.752174 0.776131 0.749758

사용법

이러한 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

지원되는 데이터 세트

현재 오리엔티드 바운딩 박스가 있는 다음 데이터 집합이 지원됩니다:

  • 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 형식과 일치하도록 보장합니다.

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

자주 묻는 질문

OBB(오리엔티드 바운딩 박스)란 무엇이며 Ultralytics YOLO 모델에서 어떻게 사용되나요?

오리엔티드 바운딩 박스(OBB)는 바운딩 박스 주석의 한 유형으로, 상자를 단순히 축에 정렬하는 것이 아니라 감지되는 물체에 더 가깝게 정렬하도록 회전할 수 있습니다. 이는 물체가 이미지 축에 정렬되지 않을 수 있는 항공 또는 위성 이미지에서 특히 유용합니다. In Ultralytics YOLO 모델에서 OBB는 4개의 모서리 점으로 표시되는 YOLO OBB 형식으로 표시됩니다. 이렇게 하면 경계 상자가 물체에 더 잘 맞도록 회전할 수 있으므로 보다 정확한 물체 감지가 가능합니다.

Ultralytics YOLO11 에서 사용할 수 있도록 기존 DOTA 데이터 세트 레이블을 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)를 사용하여 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 년 전 생성됨 ✏️ 업데이트됨 7일 전

댓글