Bỏ để qua phần nội dung

Bộ dữ liệu DOTA với OBB

DOTA là viết tắt của một bộ dữ liệu chuyên dụng, nhấn mạnh việc phát hiện đối tượng trong hình ảnh trên không. Bắt nguồn từ loạt bộ dữ liệu DOTA, nó cung cấp các hình ảnh được chú thích chụp một loạt các cảnh trên không đa dạng với Hộp giới hạn định hướng (OBB).

Các lớp DOTA trực quan

Các tính năng chính

  • Bộ sưu tập từ các cảm biến và nền tảng khác nhau, với kích thước hình ảnh từ 800 × 800 đến 20.000 × 20.000 pixel.
  • Có hơn 1,7M Hộp giới hạn định hướng trên 18 danh mục.
  • Bao gồm phát hiện đối tượng đa quy mô.
  • Các trường hợp được chú thích bởi các chuyên gia bằng cách sử dụng tứ giác tùy ý (8 d.o.f.), chụp các đối tượng có tỷ lệ, hướng và hình dạng khác nhau.

Phiên bản tập dữ liệu

DOTA-v1.0

  • Chứa 15 loại phổ biến.
  • Bao gồm 2.806 hình ảnh với 188.282 phiên bản.
  • Tỷ lệ phân chia: 1/2 cho đào tạo, 1/6 cho xác nhận và 1/3 cho thử nghiệm.

DOTA-v1.5

  • Kết hợp các hình ảnh tương tự như DOTA-v1.0.
  • Các trường hợp rất nhỏ (dưới 10 pixel) cũng được chú thích.
  • Bổ sung một danh mục mới: "cần cẩu container".
  • Tổng cộng có 403.318 trường hợp.
  • Được phát hành cho Thử thách DOAI 2019 về Phát hiện đối tượng trong hình ảnh trên không.

DOTA-v2.0

  • Bộ sưu tập từ Google Trái đất, vệ tinh GF-2 và các hình ảnh trên không khác.
  • Chứa 18 loại phổ biến.
  • Bao gồm 11.268 hình ảnh với con số khổng lồ 1.793.658 trường hợp.
  • Danh mục mới được giới thiệu: "sân bay" và "sân bay trực thăng".
  • Chia tách hình ảnh:
    • Đào tạo: 1.830 hình ảnh với 268.627 trường hợp.
    • Xác thực: 593 hình ảnh với 81.048 phiên bản.
    • Test-dev: 2.792 hình ảnh với 353.346 phiên bản.
    • Thử thách kiểm thử: 6.053 hình ảnh với 1.090.637 phiên bản.

Cấu trúc tập dữ liệu

DOTA thể hiện bố cục có cấu trúc phù hợp với các thách thức phát hiện đối tượng OBB:

  • Hình ảnh: Một bộ sưu tập lớn các hình ảnh trên không có độ phân giải cao ghi lại các địa hình và cấu trúc đa dạng.
  • Hộp giới hạn định hướng: Chú thích ở dạng hình chữ nhật xoay đóng gói các đối tượng bất kể hướng của chúng, lý tưởng để chụp các đối tượng như máy bay, tàu và tòa nhà.

Ứng dụng

DOTA đóng vai trò là chuẩn mực để đào tạo và đánh giá các mô hình được thiết kế đặc biệt để phân tích hình ảnh trên không. Với việc bao gồm các chú thích OBB, nó cung cấp một thách thức độc đáo, cho phép phát triển các mô hình phát hiện đối tượng chuyên dụng phục vụ cho các sắc thái của hình ảnh trên không.

Tập dữ liệu YAML

Thông thường, các bộ dữ liệu kết hợp tệp YAML (Yet Another Markup Language) chi tiết cấu hình của tập dữ liệu. Đối với DOTA v1 và DOTA v1.5, Ultralytics Cung cấp DOTAv1.yamlDOTAv1.5.yaml Tập tin. Để biết thêm chi tiết về những điều này cũng như DOTA v2, vui lòng tham khảo kho lưu trữ và tài liệu chính thức của DOTA.

DOTAv1.yaml

# Ultralytics YOLO 🚀, AGPL-3.0 license
# DOTA 1.0 dataset https://captain-whu.github.io/DOTA/index.html for object detection in aerial images by Wuhan University
# Documentation: https://docs.ultralytics.com/datasets/obb/dota-v2/
# Example usage: yolo train model=yolov8n-obb.pt data=DOTAv1.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── dota1  ← downloads here (2GB)

# 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: ../datasets/DOTAv1 # dataset root dir
train: images/train # train images (relative to 'path') 1411 images
val: images/val # val images (relative to 'path') 458 images
test: images/test # test images (optional) 937 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/DOTAv1.zip

Tách hình ảnh DOTA

Để đào tạo tập dữ liệu DOTA, chúng tôi chia hình ảnh DOTA gốc có độ phân giải cao thành hình ảnh có độ phân giải 1024x1024 theo cách đa tỷ lệ.

Chia nhỏ hình ảnh

from ultralytics.data.split_dota import split_test, split_trainval

# split train and val set, with labels.
split_trainval(
    data_root="path/to/DOTAv1.0/",
    save_dir="path/to/DOTAv1.0-split/",
    rates=[0.5, 1.0, 1.5],  # multiscale
    gap=500,
)
# split test set, without labels.
split_test(
    data_root="path/to/DOTAv1.0/",
    save_dir="path/to/DOTAv1.0-split/",
    rates=[0.5, 1.0, 1.5],  # multiscale
    gap=500,
)

Sử dụng

Để đào tạo một mô hình trên tập dữ liệu DOTA v1, bạn có thể sử dụng các đoạn mã sau. Luôn tham khảo tài liệu về mô hình của bạn để biết danh sách đầy đủ các đối số có sẵn.

Cảnh báo

Xin lưu ý rằng tất cả các hình ảnh và chú thích liên quan trong tập dữ liệu DOTAv1 có thể được sử dụng cho mục đích học thuật, nhưng việc sử dụng thương mại bị cấm. Sự hiểu biết và tôn trọng của bạn đối với mong muốn của người tạo tập dữ liệu được đánh giá rất cao!

Ví dụ về tàu hỏa

from ultralytics import YOLO

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

# Train the model on the DOTAv2 dataset
results = model.train(data="DOTAv1.yaml", epochs=100, imgsz=640)
# Train a new YOLOv8n-OBB model on the DOTAv2 dataset
yolo obb train data=DOTAv1.yaml model=yolov8n-obb.pt epochs=100 imgsz=640

Dữ liệu mẫu và chú thích

Nhìn lướt qua tập dữ liệu minh họa độ sâu của nó:

Hình ảnh mẫu tập dữ liệu

  • Ví dụ về DOTA: Ảnh chụp nhanh này nhấn mạnh sự phức tạp của cảnh trên không và tầm quan trọng của chú thích Hộp giới hạn định hướng, chụp các đối tượng theo hướng tự nhiên của chúng.

Sự phong phú của bộ dữ liệu cung cấp những hiểu biết vô giá về những thách thức phát hiện đối tượng dành riêng cho hình ảnh trên không.

Trích dẫn và xác nhận

Đối với những người tận dụng DOTA trong nỗ lực của họ, cần phải trích dẫn các tài liệu nghiên cứu có liên quan:

@article{9560031,
  author={Ding, Jian and Xue, Nan and Xia, Gui-Song and Bai, Xiang and Yang, Wen and Yang, Michael and Belongie, Serge and Luo, Jiebo and Datcu, Mihai and Pelillo, Marcello and Zhang, Liangpei},
  journal={IEEE Transactions on Pattern Analysis and Machine Intelligence},
  title={Object Detection in Aerial Images: A Large-Scale Benchmark and Challenges},
  year={2021},
  volume={},
  number={},
  pages={1-1},
  doi={10.1109/TPAMI.2021.3117983}
}

Một lưu ý đặc biệt về lòng biết ơn đối với nhóm đằng sau các bộ dữ liệu DOTA vì nỗ lực đáng khen ngợi của họ trong việc quản lý bộ dữ liệu này. Để hiểu toàn diện về tập dữ liệu và các sắc thái của nó, vui lòng truy cập trang web chính thức của DOTA.

FAQ

Bộ dữ liệu DOTA là gì và tại sao nó lại quan trọng đối với việc phát hiện đối tượng trong hình ảnh trên không?

Bộ dữ liệu DOTA là một bộ dữ liệu chuyên biệt tập trung vào phát hiện đối tượng trong hình ảnh trên không. Nó có tính năng Hộp giới hạn định hướng (OBB), cung cấp hình ảnh chú thích từ các cảnh trên không đa dạng. Sự đa dạng của DOTA về định hướng, quy mô và hình dạng đối tượng trên 1,7 triệu chú thích và 18 danh mục khiến nó trở nên lý tưởng để phát triển và đánh giá các mô hình phù hợp với phân tích hình ảnh trên không, chẳng hạn như các mô hình được sử dụng trong giám sát, giám sát môi trường và quản lý thiên tai.

Tập dữ liệu DOTA xử lý các tỷ lệ và hướng khác nhau trong hình ảnh như thế nào?

DOTA sử dụng Oriented Bounding Boxes (OBB) để chú thích, được biểu diễn bằng các hình chữ nhật xoay đóng gói các đối tượng bất kể hướng của chúng. Phương pháp này đảm bảo rằng các vật thể, dù nhỏ hay ở các góc khác nhau, đều được chụp chính xác. Hình ảnh đa tỷ lệ của tập dữ liệu, từ 800 × 800 đến 20.000 × 20.000 pixel, tiếp tục cho phép phát hiện cả vật thể nhỏ và lớn một cách hiệu quả.

Làm thế nào tôi có thể đào tạo một mô hình bằng cách sử dụng tập dữ liệu DOTA?

Để huấn luyện một mô hình trên tập dữ liệu DOTA, bạn có thể sử dụng ví dụ sau với Ultralytics YOLO:

Ví dụ về tàu hỏa

from ultralytics import YOLO

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

# Train the model on the DOTAv1 dataset
results = model.train(data="DOTAv1.yaml", epochs=100, imgsz=640)
# Train a new YOLOv8n-OBB model on the DOTAv1 dataset
yolo obb train data=DOTAv1.yaml model=yolov8n-obb.pt epochs=100 imgsz=640

Để biết thêm chi tiết về cách tách và xử lý trước các hình ảnh DOTA, hãy tham khảo phần tách hình ảnh DOTA.

Sự khác biệt giữa DOTA-v1.0, DOTA-v1.5 và DOTA-v2.0 là gì?

  • DOTA-v1.0: Bao gồm 15 danh mục phổ biến trên 2.806 hình ảnh với 188.282 phiên bản. Tập dữ liệu được chia thành các bộ đào tạo, xác thực và thử nghiệm.

  • DOTA-v1.5: Được xây dựng dựa trên DOTA-v1.0 bằng cách chú thích các phiên bản rất nhỏ (dưới 10 pixel) và thêm một danh mục mới, "cần cẩu container", tổng cộng 403.318 phiên bản.

  • DOTA-v2.0: Mở rộng hơn nữa với các chú thích từ Google Trái đất và vệ tinh GF-2, có 11.268 hình ảnh và 1.793.658 trường hợp. Nó bao gồm các danh mục mới như "sân bay" và "sân bay trực thăng".

Để so sánh chi tiết và các chi tiết cụ thể bổ sung, hãy kiểm tra phần phiên bản tập dữ liệu.

Làm thế nào tôi có thể chuẩn bị hình ảnh DOTA có độ phân giải cao để đào tạo?

Hình ảnh DOTA, có thể rất lớn, được chia thành các độ phân giải nhỏ hơn để đào tạo có thể quản lý được. Đây là một Python Đoạn trích để tách hình ảnh:

Ví dụ

from ultralytics.data.split_dota import split_test, split_trainval

# split train and val set, with labels.
split_trainval(
    data_root="path/to/DOTAv1.0/",
    save_dir="path/to/DOTAv1.0-split/",
    rates=[0.5, 1.0, 1.5],  # multiscale
    gap=500,
)
# split test set, without labels.
split_test(
    data_root="path/to/DOTAv1.0/",
    save_dir="path/to/DOTAv1.0-split/",
    rates=[0.5, 1.0, 1.5],  # multiscale
    gap=500,
)

Quá trình này tạo điều kiện cho hiệu quả đào tạo và hiệu suất mô hình tốt hơn. Để được hướng dẫn chi tiết, hãy truy cập phần hình ảnh DOTA tách.



Đã tạo 2023-11-12, Cập nhật 2024-07-04
Tác giả: glenn-jocher (10), Laughing-q (1)

Ý kiến