Ultralytics YOLO27:

Dataset Roboflow 100#

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

Roboflow 100 diverse object detection benchmark

Tính năng chính#

  • Các lĩnh vực đa dạng: 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 gồm 224,714 ảnh thuộc 805 lớp, tương đương hơn 11,170 giờ công 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á không nhiễu: Tập trung loại bỏ sự mơ hồ giữa các lớp và lọc các lớp ít đại diện để đảm bảo đánh giá model rõ ràng hơn.
  • Chú thích: Gồm bounding box cho các đối tượng, phù hợp để huấn luyện và đánh giá model phát hiện đối tượng bằng các metric như mAP.

Cấu trúc dataset#

Dataset Roboflow 100 được chia thành bảy danh mục, mỗi danh mục gồm một tập hợp riêng gồm các dataset, ảnh và lớp:

  • Trên không: 7 dataset, 9,683 ảnh, 24 lớp.
  • Trò chơi điện tử: 7 dataset, 11,579 ảnh, 88 lớp.
  • Hiển vi: 11 dataset, 13,378 ảnh, 28 lớp.
  • Dưới nước: 5 dataset, 18,003 ảnh, 39 lớp.
  • Tài liệu: 8 dataset, 24,813 ảnh, 90 lớp.
  • Điện từ: 12 dataset, 36,381 ảnh, 41 lớp.
  • Thế giới thực: 50 dataset, 110,615 ảnh, 495 lớp.

Cấu trúc này tạo ra môi trường kiểm thử đa dạng và phong phú cho các model phát hiện đối tượng, phản ánh nhiều tình huống ứng dụng thực tế trong các Giải pháp Ultralytics.

Đánh giá benchmark#

Đánh giá benchmark dataset là quá trình đá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. Các metric phổ biến 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 trong hướng dẫn về các metric hiệu năng YOLO của chúng tôi.

Kết quả đánh giá benchmark

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

Ví dụ đánh giá benchmark

Script bên dưới tải các dataset Roboflow 100 được liệt kê trong datasets_links.txt từ Roboflow, sau đó fine-tune một model cơ sở (ví dụ: YOLO26n) trên toàn bộ tập hợp chỉ bằng một lệnh gọi model.train(). Khi truyền danh sách dataset, model cơ sở sẽ được fine-tune lần lượt trên từng dataset 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ính và deep 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 model phát hiện đối tượng trong bối cảnh đa lĩnh vực.
  • Kiểm tra khả năng thích ứng và độ bền vững của model trong các tình huống thực tế, vượt ra ngoài những dataset benchmark phổ biến như COCO hoặc PASCAL VOC.
  • Đánh giá benchmark năng lực của 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ư y tế, ả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 mạng nơ-ron và 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.

Để tìm thêm ý tưởng và nguồn cảm hứng về ứng dụng thực tế, hãy khám phá hướng dẫn của chúng tôi về các dự án thực tiễn hoặc xem Ultralytics Platform để đơn giản hóa quy trình huấn luyện model và triển khai.

Cách sử dụng#

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

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

Roboflow 100 gồm các dataset chứa ảnh đa dạng được ghi lại từ nhiều góc độ và lĩnh vực. Dưới đây là ví dụ về ảnh có chú thích trong benchmark RF100, thể hiện sự đa dạng của đối tượng và bối cảnh. Các kỹ thuật như data augmentation có thể tiếp tục tăng 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 là 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ế. Cách tiếp cận toàn diện này hỗ trợ phát triển các model thị giác máy tính bền vững và linh hoạt hơn, có khả năng hoạt động tốt trong nhiều tình huống khác nhau.

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

Nếu sử dụng dataset Roboflow 100 trong nghiên cứu hoặc công việ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 chân thành cảm ơn nhóm Roboflow và tất cả cộng tác viên vì những nỗ lực đáng kể trong việc tạo và duy trì dataset Roboflow 100 như một tài nguyên hữu ích cho cộng đồng thị giác máy tính.

Nếu muốn khám phá thêm dataset để nâng cao các dự án phát hiện đối tượng và machine learning, hãy truy cập bộ sưu tập dataset toàn diện của chúng tôi, nơi có nhiều dataset phát hiện đối tượng khác.

Câu hỏi thường gặp#

  • Dataset Roboflow 100 là benchmark dành cho các model phát hiện đối tượng. Dataset gồm 100 dataset đa dạng thuộc các lĩnh vực như y tế, ảnh chụp từ trên không và trò chơi điện tử. Dataset này có ý nghĩa quan trọng vì cung cấp phương pháp tiêu chuẩn hóa để kiểm tra khả năng thích ứng và độ bền vững của model trong nhiều tình huống thực tế, vượt ra ngoài các benchmark truyền thống thường bị giới hạn trong một lĩnh vực.

  • Dataset Roboflow 100 bao phủ bảy lĩnh vực đa dạng, tạo ra 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ụ: đối tượng trong nhiều môi trường trò chơi).
    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, vật thể chìm).
    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, trực quan hóa dữ liệu quang phổ).
    7. Thế giới thực: 50 dataset (danh mục rộng gồm các vật thể thường ngày, bối cảnh, bán lẻ, v.v.).

    Sự đa dạng này khiến RF100 trở thành tài nguyên tuyệt vời để đánh giá khả năng khái quát hóa của các model thị giác máy tính.

  • Khi sử dụng dataset Roboflow 100, vui lòng trích dẫn bài báo gốc để ghi nhận công sức của những người tạo dataset. 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 xem các dataset phát hiện đối tượng khác tương thích với model Ultralytics.

Bình luận