Ultralytics YOLO27:

Bộ dữ liệu Roboflow 100#

Roboflow 100, được Intel tài trợ, là một bộ dữ liệu benchmark phát hiện đối tượng mang tính đột phá. Bộ dữ liệu này bao gồm 100 dataset đa dạng. Benchmark này được thiết kế đặc biệt để kiểm thử khả năng thích ứng của các model thị giác máy tính, như các model Ultralytics YOLO, với nhiều lĩnh vực khác nhau, bao gồm chăm sóc sức khỏe, ảnh chụp từ trên không và trò chơi điện tử.

Roboflow 100 diverse object detection benchmark

Tính năng chính#

  • Lĩnh vực đa dạng: Bao gồm 100 dataset thuộc bảy lĩnh vực riêng biệt: Trên không, Trò chơi điện tử, Hiển vi, Dưới nước, Tài liệu, Điện từ và Thế giới thực.
  • Quy mô: Benchmark bao gồm 224.714 ảnh thuộc 805 class, tương đương hơn 11.170 giờ gán nhãn dữ liệu.
  • Tiêu chuẩn hóa: Tất cả ảnh đều được tiền xử lý và thay đổi kích thước thành 640x640 pixel để đảm bảo đánh giá nhất quán.
  • Đánh giá sạch: Tập trung loại bỏ sự mơ hồ giữa các class và lọc các class có ít đại diện để đảm bảo đánh giá model rõ ràng hơn.
  • Chú thích: Bao gồm bounding box cho các đối tượng, phù hợp để huấn luyện và đánh giá các model phát hiện đối tượng bằng những metric như mAP.

Cấu trúc bộ dữ liệu#

Bộ dữ liệu Roboflow 100 được tổ chức thành bảy danh mục, mỗi danh mục chứa một tập hợp riêng biệt gồm các dataset, ảnh và class:

  • Trên không: 7 dataset, 9.683 ảnh, 24 class.
  • Trò chơi điện tử: 7 dataset, 11.579 ảnh, 88 class.
  • Hiển vi: 11 dataset, 13.378 ảnh, 28 class.
  • Dưới nước: 5 dataset, 18.003 ảnh, 39 class.
  • Tài liệu: 8 dataset, 24.813 ảnh, 90 class.
  • Điện từ: 12 dataset, 36.381 ảnh, 41 class.
  • Thế giới thực: 50 dataset, 110.615 ảnh, 495 class.

Cấu trúc này cung cấp một môi trường kiểm thử đa dạng và toàn diện cho các model phát hiện đối tượng, phản ánh nhiều kịch bản ứng dụng thực tế trong các Giải pháp Ultralytics khác nhau.

Benchmark#

Benchmark dataset bao gồm việc đánh giá hiệu năng của các model machine learning trên những dataset cụ thể bằng các metric tiêu chuẩn hóa. Các metric phổ biến bao gồm độ chính xác, độ chính xác trung bình (mAP) và điểm F1. Bạn có thể tìm hiểu thêm về các metric này trong hướng dẫn về Metric Hiệu năng YOLO của chúng tôi.

Kết quả Benchmark

Mọi output được nhóm trong một thư mục runs/<task>/multitrain/ duy nhất: mỗi dataset được fine-tune trong thư mục con riêng (với results.png riêng), còn các metric theo từng dataset và metric trung bình được ghi vào multitrain_results.json cùng với biểu đồ cột multitrain_results.png. Lệnh gọi model.train() cũng trả về một dictionary {dataset: metrics} để truy cập theo chương trình.

Ví dụ Benchmark

Script dưới đây tải các dataset Roboflow 100 được liệt kê trong datasets_links.txt từ Roboflow, sau đó fine-tune một base model duy nhất (ví dụ: YOLO26n) trên toàn bộ tập hợp chỉ bằng một lệnh gọi model.train(). Việc truyền vào một danh sách dataset sẽ fine-tune base model trên từng dataset theo tuần tự và tự động trực quan hóa kết quả giữa các dataset.

import re
from pathlib import Path

from roboflow import Roboflow

from ultralytics import YOLO
from ultralytics.utils import ASSETS_URL, LOGGER, YAML
from ultralytics.utils.downloads import safe_download

# Download the RF100 datasets (requires a Roboflow API key)
rf = Roboflow(api_key="YOUR_ROBOFLOW_API_KEY")
safe_download(f"{ASSETS_URL}/datasets_links.txt")  # list of RF100 dataset links

datasets = []
for line in Path("datasets_links.txt").read_text().splitlines():
    try:
        _, _url, workspace, project, version = re.split("/+", line.strip())
        location = f"rf-100/{project}-{version}"
        rf.workspace(workspace).project(project).version(version).download("yolov8", location=location)
        yaml = Path(location) / "data.yaml"
        cfg = YAML.load(yaml)  # point train/val at the downloaded image folders
        cfg["train"], cfg["val"] = "train/images", "valid/images"
        YAML.save(yaml, cfg)
        datasets.append(str(yaml))
    except Exception as e:
        LOGGER.warning(f"Failed to prepare dataset from {line!r}: {e}")

# Fine-tune one base model across all RF100 datasets and visualize the cross-dataset results
model = YOLO("yolo26n.pt")
results = model.train(data=datasets, epochs=100, imgsz=640)  # {dataset: metrics}

# Per-dataset runs, multitrain_results.json (per-dataset + mean), and multitrain_results.png are saved
# together under runs/detect/multitrain. Read results in-memory or from the JSON for custom post-processing.
for dataset, metrics in results.items():
    if metrics:  # None if that dataset failed to train
        print(f"{dataset}: mAP50-95 = {metrics['metrics/mAP50-95(B)']:.4f}")

Ứng dụng#

Roboflow 100 vô cùng hữu ích cho nhiều ứng dụng liên quan đến thị giác máy tínhdeep learning. Các nhà nghiên cứu và kỹ sư có thể tận dụng benchmark này để:

  • Đánh giá hiệu năng của các model phát hiện đối tượng trong bối cảnh đa lĩnh vực.
  • Kiểm thử khả năng thích ứng và độ robust của các model trong các kịch bản thực tế vượt ra ngoài những benchmark dataset phổ biến như COCO hoặc PASCAL VOC.
  • Benchmark khả năng của các model phát hiện đối tượng trên nhiều dataset đa dạng, bao gồm các lĩnh vực chuyên biệt như chăm sóc sức khỏe, ảnh chụp từ trên không và trò chơi điện tử.
  • So sánh hiệu năng model giữa các kiến trúc neural network và các kỹ thuật tối ưu hóa khác nhau.
  • Xác định các thách thức đặc thù theo lĩnh vực, có thể cần đến mẹo huấn luyện model chuyên biệt hoặc các phương pháp fine-tuning như transfer learning.

Để có thêm ý tưởng và cảm hứng về các ứng dụng thực tế, hãy khám phá hướng dẫn của chúng tôi về các project thực tiễn hoặc xem Ultralytics Platform để thực hiện huấn luyện modeltriển khai tinh gọn.

Cách sử dụng#

Bộ dữ liệu Roboflow 100, bao gồm metadata và các link tải xuống, có sẵn trên repository Roboflow 100 chính thức trên GitHub. Bạn có thể truy cập và sử dụng trực tiếp dataset từ đó cho nhu cầu benchmark của mình. Sau khi các dataset được tải xuống và chuẩn bị như minh họa ở trên, các model Ultralytics có thể được fine-tune trên toàn bộ tập hợp chỉ bằng một lệnh gọi model.train() thông qua việc truyền vào danh sách các tệp YAML của dataset.

Dữ liệu mẫu và Annotation#

Roboflow 100 bao gồm các dataset với những ảnh đa dạng được chụp từ nhiều góc độ và trong nhiều lĩnh vực. Dưới đây là các ví dụ về ảnh đã chú thích trong benchmark RF100, thể hiện sự đa dạng của các đối tượng và khung cảnh. Các kỹ thuật như tăng cường dữ liệu có thể tiếp tục nâng cao tính đa dạng trong quá trình huấn luyện.

Roboflow 100 sample images with annotations

Tính đa dạng trong benchmark Roboflow 100 thể hiện một bước tiến đáng kể so với các benchmark truyền thống, vốn thường tập trung tối ưu một metric duy nhất trong một lĩnh vực hạn chế. Phương pháp toàn diện này hỗ trợ phát triển các model thị giác máy tính robust và linh hoạt hơn, có khả năng hoạt động tốt trong nhiều kịch bản khác nhau.

Trích dẫn và ghi nhận đóng góp#

Nếu sử dụng bộ dữ liệu Roboflow 100 trong công trình nghiên cứu hoặc phát triển, vui lòng trích dẫn bài báo gốc:

Trích dẫn
@misc{rf100benchmark,
    Author = {Floriana Ciaglia and Francesco Saverio Zuppichini and Paul Guerrie and Mark McQuade and Jacob Solawetz},
    Title = {Roboflow 100: A Rich, Multi-Domain Object Detection Benchmark},
    Year = {2022},
    Eprint = {arXiv:2211.13523},
    url = {https://arxiv.org/abs/2211.13523}
}

Chúng tôi xin cảm ơn đội ngũ Roboflow và tất cả những người đóng góp vì những nỗ lực to lớn trong việc tạo và duy trì bộ dữ liệu Roboflow 100 như một tài nguyên giá trị cho cộng đồng thị giác máy tính.

Nếu bạn quan tâm đến việc khám phá thêm các dataset để nâng cao những project phát hiện đối tượng và machine learning của mình, hãy truy cập bộ sưu tập dataset toàn diện của chúng tôi, bao gồm nhiều dataset phát hiện khác.

FAQ#

  • Bộ dữ liệu Roboflow 100 là một benchmark dành cho các model phát hiện đối tượng. Bộ dữ liệu này gồm 100 dataset đa dạng, bao phủ các lĩnh vực như chăm sóc sức khỏe, ảnh chụp từ trên không và trò chơi điện tử. Ý nghĩa của nó nằm ở việc cung cấp một cách thức tiêu chuẩn hóa để kiểm thử khả năng thích ứng và độ robust của model trên nhiều kịch bản thực tế, vượt ra ngoài các benchmark truyền thống vốn thường bị giới hạn theo lĩnh vực.

  • Bộ dữ liệu Roboflow 100 bao phủ bảy lĩnh vực đa dạng, mang đến những thách thức riêng cho các model phát hiện đối tượng:

    1. Trên không: 7 dataset (ví dụ: ảnh vệ tinh, góc nhìn từ drone).
    2. Trò chơi điện tử: 7 dataset (ví dụ: các đối tượng từ nhiều môi trường game khác nhau).
    3. Hiển vi: 11 dataset (ví dụ: tế bào, hạt).
    4. Dưới nước: 5 dataset (ví dụ: sinh vật biển, các đối tượng chìm dưới nước).
    5. Tài liệu: 8 dataset (ví dụ: vùng văn bản, thành phần biểu mẫu).
    6. Điện từ: 12 dataset (ví dụ: tín hiệu radar, hình ảnh trực quan hóa dữ liệu phổ).
    7. Thế giới thực: 50 dataset (một danh mục rộng bao gồm các vật thể hằng ngày, khung cảnh, bán lẻ, v.v.).

    Sự đa dạng này khiến RF100 trở thành một tài nguyên xuất sắc để đánh giá khả năng tổng quát hóa của các model thị giác máy tính.

  • Khi sử dụng bộ dữ liệu Roboflow 100, vui lòng trích dẫn bài báo gốc để ghi nhận công lao của các tác giả. Dưới đây là trích dẫn BibTeX được khuyến nghị:

    Trích dẫn
    @misc{rf100benchmark,
        Author = {Floriana Ciaglia and Francesco Saverio Zuppichini and Paul Guerrie and Mark McQuade and Jacob Solawetz},
        Title = {Roboflow 100: A Rich, Multi-Domain Object Detection Benchmark},
        Year = {2022},
        Eprint = {arXiv:2211.13523},
        url = {https://arxiv.org/abs/2211.13523}
    }

    Để tìm hiểu thêm, hãy truy cập bộ sưu tập dataset toàn diện của chúng tôi hoặc duyệt qua các dataset phát hiện khác tương thích với các model Ultralytics.

Bình luận