Link to this sectionTổng quan về tập dữ liệu Oriented Bounding Box (OBB)#
Việc huấn luyện một model object detection chính xác với Oriented Bounding Box (OBB) đòi hỏi một tập dữ liệu đầy đủ. Hướng dẫn này giải thích các định dạng tập dữ liệu OBB khác nhau tương thích với các model Ultralytics YOLO, cung cấp thông tin chi tiết về cấu trúc, ứng dụng và các phương pháp chuyển đổi định dạng.
Link to this sectionCác định dạng tập dữ liệu OBB được hỗ trợ#
Link to this sectionĐịnh dạng YOLO OBB#
Định dạng YOLO OBB xác định bounding box bằng bốn điểm góc với tọa độ được chuẩn hóa từ 0 đến 1. Nó tuân theo định dạng sau:
class_index x1 y1 x2 y2 x3 y3 x4 y4Ở bên trong, YOLO xử lý các hàm mất mát và đầu ra theo định dạng xywhr, biểu thị điểm trung tâm (xy), chiều rộng, chiều cao và góc xoay của bounding box.

Một ví dụ về tệp nhãn *.txt cho hình ảnh ở trên, chứa một đối tượng thuộc lớp 0 ở định dạng OBB, có thể trông như sau:
0 0.780811 0.743961 0.782371 0.74686 0.777691 0.752174 0.776131 0.749758Link to this sectionĐịnh dạng YAML cho tập dữ liệu#
Framework Ultralytics sử dụng định dạng tệp YAML để xác định cấu hình tập dữ liệu và model cho việc huấn luyện các model OBB. Dưới đây là ví dụ về định dạng YAML được sử dụng để xác định một tập dữ liệu OBB:
# 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.zipLink to this sectionCách sử dụng#
Để huấn luyện một model sử dụng các định dạng OBB này:
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 sectionCác tập dữ liệu được hỗ trợ#
Hiện tại, các tập dữ liệu sau với Oriented Bounding Box được hỗ trợ:
- DOTA-v1: Phiên bản đầu tiên của tập dữ liệu DOTA, cung cấp một bộ hình ảnh trên không toàn diện với các Oriented Bounding Box cho object detection.
- DOTA-v1.5: Một phiên bản trung gian của tập dữ liệu DOTA, cung cấp thêm các chú thích và cải tiến so với DOTA-v1 để tăng cường các tác vụ object detection.
- DOTA-v2: DOTA (A Large-scale Dataset for Object Detection in Aerial Images) phiên bản 2, tập trung vào việc phát hiện từ góc nhìn trên không và chứa các Oriented Bounding Box với 1,7 triệu thực thể và 11.268 hình ảnh.
- DOTA8: Một tập con nhỏ gồm 8 hình ảnh của tập dữ liệu DOTA đầy đủ, phù hợp để kiểm tra quy trình làm việc và các bước kiểm tra Continuous Integration (CI) của việc huấn luyện OBB trong repository
ultralytics. - DOTA128: Một tập con gồm 128 hình ảnh của tập dữ liệu DOTA với tất cả hình ảnh nằm trong thư mục train (được sử dụng cho cả train và val), cung cấp sự cân bằng tốt giữa quy mô và sự đa dạng để kiểm tra các model OBB.
Link to this sectionKết hợp tập dữ liệu OBB của riêng bạn#
Đối với những người muốn đưa tập dữ liệu của riêng họ với các Oriented Bounding Box vào, hãy đảm bảo tính tương thích với "định dạng YOLO OBB" đã đề cập ở trên. Chuyển đổi các chú thích của bạn sang định dạng bắt buộc này và liệt kê chi tiết đường dẫn, lớp và tên lớp trong tệp cấu hình YAML tương ứng.
Link to this sectionChuyển đổi định dạng nhãn#
Link to this sectionĐịnh dạng tập dữ liệu DOTA sang định dạng YOLO OBB#
Việc chuyển đổi nhãn từ định dạng tập dữ liệu DOTA sang định dạng YOLO OBB có thể đạt được bằng tập lệnh này:
from ultralytics.data.converter import convert_dota_to_yolo_obb
convert_dota_to_yolo_obb("path/to/DOTA")Cơ chế chuyển đổi này là công cụ hữu ích cho các tập dữ liệu ở định dạng DOTA, đảm bảo sự đồng nhất với định dạng OBB của Ultralytics YOLO.
Việc xác thực tính tương thích của tập dữ liệu với model của bạn và tuân thủ các quy ước định dạng cần thiết là điều bắt buộc. Các tập dữ liệu có cấu trúc phù hợp là yếu tố then chốt để huấn luyện các model object detection hiệu quả với các Oriented Bounding Box.
Link to this sectionCâu hỏi thường gặp#
Link to this sectionOriented Bounding Box (OBB) là gì và chúng được sử dụng như thế nào trong các model Ultralytics YOLO?#
Oriented Bounding Box (OBB) là một loại chú thích bounding box mà trong đó hộp có thể được xoay để căn chỉnh sát hơn với đối tượng đang được phát hiện, thay vì chỉ căn chỉnh theo trục. Điều này đặc biệt hữu ích trong hình ảnh trên không hoặc hình ảnh vệ tinh nơi các đối tượng có thể không căn chỉnh theo trục hình ảnh. Trong các model Ultralytics YOLO, các OBB được biểu diễn bằng bốn điểm góc của chúng trong định dạng YOLO OBB. Điều này cho phép phát hiện đối tượng chính xác hơn vì các bounding box có thể xoay để khớp với đối tượng tốt hơn.
Link to this sectionLàm thế nào để tôi chuyển đổi nhãn tập dữ liệu DOTA hiện có của mình sang định dạng YOLO OBB để sử dụng với Ultralytics YOLO26?#
Bạn có thể chuyển đổi nhãn tập dữ liệu DOTA sang định dạng YOLO OBB bằng cách sử dụng hàm convert_dota_to_yolo_obb từ Ultralytics. Việc chuyển đổi này đảm bảo tính tương thích với các model Ultralytics YOLO, cho phép bạn tận dụng các khả năng OBB để tăng cường object detection. Đây là một ví dụ nhanh:
from ultralytics.data.converter import convert_dota_to_yolo_obb
convert_dota_to_yolo_obb("path/to/DOTA")Tập lệnh này sẽ định dạng lại các chú thích DOTA của bạn thành định dạng tương thích với YOLO.
Link to this sectionLàm thế nào để tôi huấn luyện một model YOLO26 với Oriented Bounding Box (OBB) trên tập dữ liệu của mình?#
Việc huấn luyện một model YOLO26 với OBB bao gồm việc đảm bảo tập dữ liệu của bạn ở định dạng YOLO OBB và sau đó sử dụng Ultralytics API để huấn luyện model. Đây là một ví dụ bằng cả Python và 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)Điều này đảm bảo model của bạn tận dụng các chú thích OBB chi tiết để cải thiện độ chính xác.
Link to this sectionNhững tập dữ liệu nào hiện được hỗ trợ cho việc huấn luyện OBB trong các model Ultralytics YOLO?#
Hiện tại, Ultralytics hỗ trợ các tập dữ liệu sau cho việc huấn luyện OBB:
- DOTA-v1: Phiên bản đầu tiên của tập dữ liệu DOTA, cung cấp một bộ hình ảnh trên không toàn diện với các Oriented Bounding Box cho object detection.
- DOTA-v1.5: Một phiên bản trung gian của tập dữ liệu DOTA, cung cấp thêm các chú thích và cải tiến so với DOTA-v1 để tăng cường các tác vụ object detection.
- DOTA-v2: Tập dữ liệu này bao gồm 1,7 triệu thực thể với các Oriented Bounding Box và 11.268 hình ảnh, tập trung chủ yếu vào object detection trên không.
- DOTA8: Một tập con nhỏ hơn gồm 8 hình ảnh của tập dữ liệu DOTA được sử dụng cho việc kiểm tra và kiểm tra continuous integration (CI).
- DOTA128: Một tập con gồm 128 hình ảnh với tất cả hình ảnh nằm trong thư mục train (được sử dụng cho cả train và val), cung cấp sự đa dạng hơn so với DOTA8 trong khi vẫn dễ quản lý để phát triển và thử nghiệm model OBB ban đầu.
Các tập dữ liệu này được thiết kế riêng cho các kịch bản mà OBB mang lại lợi thế đáng kể, chẳng hạn như phân tích hình ảnh trên không và hình ảnh vệ tinh.
Link to this sectionTôi có thể sử dụng tập dữ liệu của riêng mình với các Oriented Bounding Box để huấn luyện YOLO26 không, và nếu có thì bằng cách nào?#
Có, bạn có thể sử dụng tập dữ liệu của riêng mình với các Oriented Bounding Box để huấn luyện YOLO26. Đảm bảo các chú thích trong tập dữ liệu của bạn được chuyển đổi sang định dạng YOLO OBB, bao gồm việc xác định bounding box bằng bốn điểm góc của chúng. Sau đó, bạn có thể tạo một tệp cấu hình YAML chỉ định đường dẫn tập dữ liệu, các lớp và các chi tiết cần thiết khác. Để biết thêm thông tin về việc tạo và cấu hình tập dữ liệu của bạn, hãy tham khảo phần Supported Datasets.