Bỏ qua nội dung

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

DOTA là một tập dữ liệu chuyên biệt, tập trung vào việc phát hiện vật thể trong hình ảnh trên không. Có nguồn gốc từ loạt tập dữ liệu DOTA, nó cung cấp hình ảnh có chú thích chụp nhiều cảnh trên không khác nhau với Oriented Bounding Box (OBB).

Lớp DOTA trực quan

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

  • Bộ sưu tập từ nhiều 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,7 triệu hộp giới hạn định hướng trong 18 danh mục.
  • Bao gồm phát hiện đối tượng đa thang đo.
  • Các trường hợp được các chuyên gia chú thích bằng cách sử dụng hình tứ giác (8 dof) tùy ý, chụp các vật thể có nhiều tỷ lệ, hướng và hình dạng khác nhau.

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

DOTA-v1.0

  • Bao gồm 15 danh mục phổ biến.
  • Bao gồm 2.806 hình ảnh với 188.282 trường hợp.
  • Tỷ lệ phân chia: 1/2 cho đào tạo, 1/6 cho xác thực và 1/3 cho thử nghiệm.

DOTA-v1.5

  • Kết hợp các hình ảnh giống như DOTA-v1.0.
  • Những trường hợp rất nhỏ (nhỏ hơn 10 pixel) cũng được chú thích.
  • Thêm 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 ảnh hàng không.

DOTA-v2.0

  • Bộ sưu tập từ Google Hình ảnh Trái Đất, vệ tinh GF-2 và các hình ảnh trên không khác.
  • Bao gồm 18 danh mục phổ biến.
  • Bao gồm 11.268 hình ảnh với tổng cộng 1.793.658 trường hợp.
  • Đã giới thiệu các danh mục mới: "sân bay" và "bãi đáp trực thăng".
  • Phân chia 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 trường hợp.
    • Kiểm thử-phát triển: 2.792 hình ảnh với 353.346 trường hợp.
    • Kiểm tra-thách thức: 6.053 hình ảnh với 1.090.637 trường hợp.

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

DOTA thể hiện bố cục có cấu trúc được thiết kế riêng cho các thử thách phát hiện đối tượng OBB:

  • Hình ảnh : Bộ sưu tập lớn các hình ảnh trên không có độ phân giải cao chụp nhiều địa hình và công trình khác nhau.
  • Hộp giới hạn định hướng : Chú thích dưới dạng hình chữ nhật xoay bao bọc 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 thủy 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ế riêng cho phân tích hình ảnh trên không. Với việc đưa vào 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 biệt đáp ứng các sắc thái của hình ảnh trên không.

Bộ dữ liệu YAML

Thông thường, các tập dữ liệu kết hợp một tệp YAML (Yet Another Markup Language) nêu 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. Để biết thêm chi tiết về các tệp 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

Chia nhỏ hình ảnh DOTA

Để đào tạo tập dữ liệu DOTA, chúng tôi chia các hình ảnh DOTA gốc có độ phân giải cao thành các hình ảnh có độ phân giải 1024x1024 theo phương pháp đ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,
)

Cách sử dụng

Để đào tạo 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 của mô hình để biết danh sách đầy đủ các đối số khả dụng.

Cảnh báo

Xin lưu ý rằng tất 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 mục đích thương mại bị cấm. Chúng tôi rất trân trọng 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!

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

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

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

Nhìn vào tập dữ liệu sẽ thấy rõ độ sâu của nó:

Hình ảnh mẫu của bộ 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ác 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 vật thể theo hướng tự nhiên của chúng.

Sự phong phú của tập dữ liệu cung cấp những hiểu biết vô giá về những thách thức trong việc phát hiện vật thể chỉ có ở hình ảnh trên không.

Trích dẫn và Lời cảm ơn

Đối với những người tận dụng DOTA trong các nỗ lực của mình, việc trích dẫn các bài báo nghiên cứu có liên quan là rất cần thiết:

@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}
}

Xin gửi lời cảm ơn đặc biệt đến nhóm đằng sau bộ dữ liệu DOTA vì những nỗ lực đáng khen ngợi của họ trong việc biên soạn bộ dữ liệu này. Để hiểu rõ hơn về bộ 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 .

CÂU HỎI THƯỜNG GẶP

Bộ dữ liệu DOTA là gì và tại sao nó lại quan trọng trong việc phát hiện vật thể trong ả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 vật thể trong ảnh chụp trên không. Bộ dữ liệu này có các Hộp giới hạn định hướng (OBB), cung cấp hình ảnh có chú thích từ nhiều cảnh chụp trên không khác nhau. Sự đa dạng của DOTA về hướng vật thể, tỷ lệ và hình dạ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 được thiết kế riêng cho phân tích ảnh chụp 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ý thảm họa.

Bộ 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 bao bọc 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 đối tượng, dù nhỏ hay ở các góc khác nhau, đều được chụp chính xác. Các hình ảnh đa tỷ lệ của tập dữ liệu, từ 800 × 800 đến 20.000 × 20.000 pixel, cho phép phát hiện cả các đối tượng nhỏ và lớn một cách hiệu quả.

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

Để đào tạo 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 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

Để biết thêm chi tiết về cách phân chia và xử lý trước hình ảnh DOTA, hãy tham khảo phần phân chia 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 chung trên 2.806 hình ảnh với 188.282 trường hợp. Bộ dữ liệu được chia thành các tập huấn luyện, 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 trường hợp rất nhỏ (nhỏ hơn 10 pixel) và thêm một danh mục mới, "cần cẩu container", tổng cộng là 403.318 trường hợp.
  • DOTA-v2.0 : Mở rộng hơn nữa với các chú thích từ Google Earth 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à "bãi đáp trực thăng".

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

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

Hình ảnh DOTA, có thể rất lớn, được chia thành các độ phân giải nhỏ hơn để dễ quản lý khi đào tạo. Đây là 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. Để biết hướng dẫn chi tiết, hãy truy cập phần hình ảnh DOTA chia nhỏ .

📅 Được tạo ra cách đây 1 năm ✏️ Đã cập nhật cách đây 2 tháng

Bình luận