Meet YOLO26: next-gen vision AI.

Link to this section회전된 경계 상자(OBB) 데이터셋 개요#

회전된 경계 상자(OBB)를 사용하여 정밀한 객체 탐지 모델을 학습시키려면 철저한 데이터셋이 필요합니다. 이 가이드는 Ultralytics YOLO 모델과 호환되는 다양한 OBB 데이터셋 형식을 설명하며, 그 구조, 애플리케이션 및 형식 변환 방법에 대한 통찰력을 제공합니다.

Link to this section지원되는 OBB 데이터셋 형식#

Link to this sectionYOLO OBB 형식#

YOLO OBB 형식은 경계 상자를 0과 1 사이로 정규화된 네 개의 모서리 좌표로 지정합니다. 형식은 다음과 같습니다:

class_index x1 y1 x2 y2 x3 y3 x4 y4

Internally, YOLO processes losses and outputs in the xywhr format, which represents the bounding box's center point (xy), width, height, and rotation.

Oriented bounding box annotation format examples

위 이미지에 대한 *.txt 라벨 파일의 예시는 OBB 형식으로 클래스 0인 객체를 포함하며 다음과 같을 수 있습니다:

0 0.780811 0.743961 0.782371 0.74686 0.777691 0.752174 0.776131 0.749758

Link to this section데이터셋 YAML 형식#

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

ultralytics/cfg/datasets/dota8.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.zip

Link to this section사용법#

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

예시
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-v1: DOTA 데이터셋의 첫 번째 버전으로, 객체 탐지를 위한 회전된 경계 상자가 포함된 포괄적인 항공 이미지 세트를 제공합니다.
  • DOTA-v1.5: DOTA 데이터셋의 중간 버전으로, 향상된 객체 탐지 작업을 위해 DOTA-v1보다 더 많은 주석과 개선 사항을 제공합니다.
  • DOTA-v2: DOTA(항공 이미지의 객체 탐지를 위한 대규모 데이터셋) 버전 2는 항공 관점에서의 탐지를 강조하며 170만 개의 인스턴스와 11,268개의 이미지가 포함된 회전된 경계 상자를 제공합니다.
  • DOTA8: 전체 DOTA 데이터셋의 8개 이미지로 구성된 작은 하위 집합으로, ultralytics 저장소의 OBB 학습 워크플로우 테스트 및 CI(지속적 통합) 확인에 적합합니다.
  • DOTA128: train 폴더의 모든 이미지를 포함하는(train 및 val 모두에 사용) DOTA 데이터셋의 128개 이미지 하위 집합으로, OBB 모델 테스트를 위한 크기와 다양성 사이의 균형을 잘 제공합니다.

Link to this section나만의 OBB 데이터셋 통합하기#

자체 회전된 경계 상자 데이터셋을 도입하려는 경우, 위에서 언급한 "YOLO OBB 형식"과의 호환성을 확인하십시오. 주석을 이 필수 형식으로 변환하고 해당 YAML 구성 파일에 경로, 클래스 및 클래스 이름을 자세히 기재하십시오.

Link to this section라벨 형식 변환#

Link to this sectionDOTA 데이터셋 형식에서 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 형식과의 정렬을 보장합니다.

데이터셋이 모델과 호환되는지 검증하고 필수 형식 규칙을 준수하는 것이 중요합니다. 올바르게 구조화된 데이터셋은 회전된 경계 상자를 사용하여 효율적인 객체 탐지 모델을 학습시키는 데 중추적인 역할을 합니다.

Link to this sectionFAQ#

Link to this section회전된 경계 상자(OBB)란 무엇이며 Ultralytics YOLO 모델에서 어떻게 사용됩니까?#

회전된 경계 상자(OBB)는 단순히 축에 정렬된 상자가 아니라, 탐지 대상 객체에 더 가깝게 정렬되도록 상자를 회전시킬 수 있는 경계 상자 주석 유형입니다. 이는 객체가 이미지 축과 정렬되지 않을 수 있는 항공 또는 위성 이미지에서 특히 유용합니다. Ultralytics YOLO 모델에서 OBB는 YOLO OBB 형식의 네 개 모서리 좌표로 표현됩니다. 이를 통해 경계 상자가 객체에 맞게 회전할 수 있어 더 정확한 객체 탐지가 가능합니다.

Link to this sectionUltralytics YOLO26에서 사용하기 위해 기존 DOTA 데이터셋 라벨을 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 호환 형식으로 다시 포맷합니다.

Link to this section내 데이터셋으로 회전된 경계 상자(OBB)를 사용하여 YOLO26 모델을 어떻게 학습시킵니까?#

OBB를 사용한 YOLO26 모델 학습은 데이터셋이 YOLO OBB 형식인지 확인한 다음, Ultralytics API를 사용하여 모델을 학습시키는 과정이 포함됩니다. Python 및 CLI를 사용한 예시는 다음과 같습니다:

예시
from ultralytics import YOLO

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

# Train the model on the custom dataset
results = model.train(data="your_dataset.yaml", epochs=100, imgsz=640)

이를 통해 모델이 상세한 OBB 주석을 활용하여 탐지 정확도를 향상시킬 수 있습니다.

Link to this sectionUltralytics YOLO 모델에서 OBB 학습을 위해 현재 지원되는 데이터셋은 무엇입니까?#

현재 Ultralytics는 OBB 학습을 위해 다음 데이터셋을 지원합니다:

  • DOTA-v1: DOTA 데이터셋의 첫 번째 버전으로, 객체 탐지를 위한 회전된 경계 상자가 포함된 포괄적인 항공 이미지 세트를 제공합니다.
  • DOTA-v1.5: DOTA 데이터셋의 중간 버전으로, 향상된 객체 탐지 작업을 위해 DOTA-v1보다 더 많은 주석과 개선 사항을 제공합니다.
  • DOTA-v2: 이 데이터셋에는 회전된 경계 상자가 포함된 170만 개의 인스턴스와 11,268개의 이미지가 포함되어 있으며, 주로 항공 객체 탐지에 중점을 둡니다.
  • DOTA8: 테스트 및 지속적 통합 (CI) 확인에 사용되는 DOTA 데이터셋의 8개 이미지로 구성된 더 작은 하위 집합입니다.
  • DOTA128: train 폴더의 모든 이미지를 포함하는(train 및 val 모두에 사용) 128개 이미지 하위 집합으로, DOTA8보다 더 많은 다양성을 제공하면서도 초기 OBB 모델 개발 및 실험을 관리하기에 적합합니다.

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

Link to this sectionYOLO26 학습을 위해 회전된 경계 상자가 포함된 나만의 데이터셋을 사용할 수 있습니까? 가능하다면 어떻게 해야 합니까?#

네, YOLO26 학습을 위해 회전된 경계 상자가 포함된 나만의 데이터셋을 사용할 수 있습니다. 데이터셋 주석이 YOLO OBB 형식으로 변환되었는지 확인하십시오. 이는 네 개의 모서리 좌표로 경계 상자를 정의하는 것을 포함합니다. 그런 다음 데이터셋 경로, 클래스 및 기타 필요한 세부 정보를 지정하는 YAML 구성 파일을 생성할 수 있습니다. 데이터셋 생성 및 구성에 대한 자세한 내용은 지원되는 데이터셋 섹션을 참조하십시오.

댓글