Chuyển đến nội dung

Tổng quan về bộ dữ liệu

Ultralytics hỗ trợ nhiều bộ dữ liệu khác nhau để tạo điều kiện thuận lợi cho các tác vụ thị giác máy tính như phát hiện, phân vùng thực thể (instance segmentation), ước tính tư thế, phân loại và theo dõi đa đối tượng. Dưới đây là danh sách các bộ dữ liệu Ultralytics chính, tiếp theo là tóm tắt về từng tác vụ thị giác máy tính và các bộ dữ liệu tương ứng.



Xem: Tổng quan về Bộ dữ liệu Ultralytics

Phát Hiện Đối Tượng

Phát hiện đối tượng bằng khung giới hạn (bounding box) là một kỹ thuật thị giác máy tính liên quan đến việc phát hiện và định vị các đối tượng trong một hình ảnh bằng cách vẽ một khung giới hạn xung quanh mỗi đối tượng.

  • Argoverse: Một bộ dữ liệu chứa dữ liệu theo dõi 3D và dự báo chuyển động từ môi trường đô thị với các chú thích phong phú.
  • COCO: Common Objects in Context (COCO) là một bộ dữ liệu chú thích, phân đoạn và phát hiện đối tượng quy mô lớn với 80 danh mục đối tượng.
  • LVIS: Một bộ dữ liệu chú thích, phân đoạn và phát hiện đối tượng quy mô lớn với 1203 danh mục đối tượng.
  • COCO8: Một tập hợp con nhỏ hơn của 4 hình ảnh đầu tiên từ COCO train và COCO val, phù hợp cho các thử nghiệm nhanh.
  • COCO8-Grayscale: Một phiên bản thang độ xám của COCO8 được tạo bằng cách chuyển đổi RGB sang thang độ xám, hữu ích cho việc đánh giá mô hình đơn kênh.
  • COCO8-Multispectral: Một phiên bản đa phổ 10 kênh của COCO8 được tạo bằng cách nội suy các bước sóng RGB, hữu ích cho việc đánh giá mô hình nhận biết quang phổ.
  • COCO128: Một tập hợp con nhỏ hơn của 128 hình ảnh đầu tiên từ COCO train và COCO val, phù hợp cho các thử nghiệm.
  • Global Wheat 2020: Một bộ dữ liệu chứa hình ảnh về bông lúa mì cho Global Wheat Challenge 2020.
  • Objects365: Một bộ dữ liệu quy mô lớn, chất lượng cao để phát hiện đối tượng với 365 danh mục đối tượng và hơn 600 nghìn hình ảnh được chú thích.
  • OpenImagesV7: Một bộ dữ liệu toàn diện của Google với 1,7 triệu hình ảnh huấn luyện và 42 nghìn hình ảnh xác thực.
  • SKU-110K: Một bộ dữ liệu nổi bật với khả năng phát hiện đối tượng dày đặc trong môi trường bán lẻ với hơn 11 nghìn hình ảnh và 1,7 triệu hộp giới hạn.
  • HomeObjects-3K Mới 🚀: Một tập dữ liệu về các cảnh trong nhà được chú thích có 12 vật dụng gia đình phổ biến, lý tưởng để phát triển và thử nghiệm các mô hình computer vision trong các hệ thống nhà thông minh, robotics và thực tế tăng cường.
  • VisDrone: Một bộ dữ liệu chứa dữ liệu theo dõi đa đối tượng và phát hiện đối tượng từ hình ảnh chụp từ máy bay không người lái với hơn 10 nghìn hình ảnh và chuỗi video.
  • VOC: Bộ dữ liệu Pascal Visual Object Classes (VOC) để phát hiện và phân đoạn đối tượng với 20 lớp đối tượng và hơn 11 nghìn hình ảnh.
  • xView: Một bộ dữ liệu để phát hiện đối tượng trong hình ảnh trên không với 60 danh mục đối tượng và hơn 1 triệu đối tượng được chú thích.
  • RF100: Một chuẩn đánh giá phát hiện đối tượng đa dạng với 100 bộ dữ liệu trải rộng trên bảy lĩnh vực hình ảnh để đánh giá mô hình toàn diện.
  • Brain-tumor: Một bộ dữ liệu để phát hiện khối u não bao gồm hình ảnh MRI hoặc CT scan với thông tin chi tiết về sự hiện diện, vị trí và đặc điểm của khối u.
  • African-wildlife: Một bộ dữ liệu có hình ảnh về động vật hoang dã châu Phi, bao gồm trâu, voi, tê giác và ngựa vằn.
  • Signature: Một bộ dữ liệu có hình ảnh các tài liệu khác nhau với chữ ký đã được chú thích, hỗ trợ xác minh tài liệu và nghiên cứu phát hiện gian lận.
  • Medical-pills: Một bộ dữ liệu chứa các hình ảnh được gắn nhãn của medical-pills, được thiết kế để hỗ trợ trong các tác vụ như kiểm soát chất lượng dược phẩm, phân loại và đảm bảo tuân thủ các tiêu chuẩn ngành.

Phân đoạn thực thể

Phân vùng thể hiện là một kỹ thuật thị giác máy tính liên quan đến việc xác định và định vị các đối tượng trong một hình ảnh ở cấp độ pixel. Không giống như phân vùng ngữ nghĩa chỉ phân loại từng pixel, phân vùng thể hiện phân biệt giữa các thể hiện khác nhau của cùng một lớp.

  • COCO: Một bộ dữ liệu quy mô lớn được thiết kế cho các tác vụ phát hiện đối tượng, phân vùng và tạo chú thích với hơn 200 nghìn hình ảnh được gắn nhãn.
  • COCO8-seg: Một bộ dữ liệu nhỏ hơn cho các tác vụ phân vùng thực thể, chứa một tập hợp con gồm 8 hình ảnh COCO với các chú thích phân vùng.
  • COCO128-seg: Một bộ dữ liệu nhỏ hơn cho các tác vụ phân vùng thực thể, chứa một tập hợp con gồm 128 hình ảnh COCO với các chú thích phân vùng.
  • Crack-seg: Bộ dữ liệu được tạo riêng để phát hiện các vết nứt trên đường và tường, có thể áp dụng cho cả tác vụ phát hiện đối tượng và phân vùng.
  • Package-seg: Bộ dữ liệu được thiết kế riêng để xác định các gói hàng trong nhà kho hoặc môi trường công nghiệp, phù hợp cho cả ứng dụng phát hiện đối tượng và phân vùng.
  • Carparts-seg: Bộ dữ liệu được xây dựng có mục đích để xác định các bộ phận xe, phục vụ cho nhu cầu thiết kế, sản xuất và nghiên cứu. Nó phục vụ cho cả tác vụ phát hiện đối tượng và phân vùng.

Ước tính tư thế

Ước tính tư thế là một kỹ thuật được sử dụng để xác định tư thế của đối tượng so với camera hoặc hệ tọa độ thế giới. Điều này liên quan đến việc xác định các điểm hoặc khớp chính trên các đối tượng, đặc biệt là người hoặc động vật.

  • COCO: Một bộ dữ liệu quy mô lớn với các chú thích tư thế người được thiết kế cho các tác vụ ước tính tư thế.
  • COCO8-pose: Một bộ dữ liệu nhỏ hơn cho các tác vụ ước tính tư thế, chứa một tập hợp con gồm 8 hình ảnh COCO với các chú thích tư thế người.
  • Tiger-pose: Một bộ dữ liệu nhỏ gọn bao gồm 263 hình ảnh tập trung vào hổ, được chú thích với 12 điểm chính trên mỗi con hổ cho các tác vụ ước tính tư thế.
  • Hand-Keypoints: Một bộ dữ liệu ngắn gọn có hơn 26.000 hình ảnh tập trung vào bàn tay người, được chú thích với 21 điểm chính trên mỗi bàn tay, được thiết kế cho các tác vụ ước tính tư thế.
  • Dog-pose: Một bộ dữ liệu toàn diện có khoảng 6.000 hình ảnh tập trung vào chó, được chú thích với 24 điểm chính trên mỗi con chó, được thiết kế riêng cho các tác vụ ước tính tư thế.

Phân loại (Classification)

Phân loại ảnh là một tác vụ thị giác máy tính liên quan đến việc phân loại một hình ảnh vào một hoặc nhiều lớp hoặc danh mục được xác định trước dựa trên nội dung trực quan của nó.

  • Caltech 101: Một bộ dữ liệu chứa hình ảnh của 101 danh mục đối tượng cho các tác vụ phân loại ảnh.
  • Caltech 256: Một phiên bản mở rộng của Caltech 101 với 256 loại đối tượng và hình ảnh phức tạp hơn.
  • CIFAR-10: Một bộ dữ liệu gồm 60 nghìn ảnh màu 32x32 thuộc 10 lớp, với 6 nghìn ảnh trên mỗi lớp.
  • CIFAR-100: Một phiên bản mở rộng của CIFAR-10 với 100 loại đối tượng và 600 ảnh trên mỗi lớp.
  • Fashion-MNIST: Một bộ dữ liệu bao gồm 70.000 ảnh thang độ xám của 10 loại thời trang cho các tác vụ phân loại ảnh.
  • ImageNet: Một bộ dữ liệu quy mô lớn để phát hiện đối tượng và phân loại ảnh với hơn 14 triệu hình ảnh và 20.000 danh mục.
  • ImageNet-10: Một tập hợp con nhỏ hơn của ImageNet với 10 danh mục để thử nghiệm và kiểm tra nhanh hơn.
  • Imagenette: Một tập hợp con nhỏ hơn của ImageNet chứa 10 lớp dễ phân biệt để huấn luyện và kiểm tra nhanh hơn.
  • Imagewoof: Một tập hợp con khó hơn của ImageNet chứa 10 loại giống chó để phân loại ảnh.
  • MNIST: Một bộ dữ liệu gồm 70.000 ảnh thang độ xám của chữ số viết tay cho các tác vụ phân loại ảnh.
  • MNIST160: 8 hình ảnh đầu tiên của mỗi danh mục MNIST từ bộ dữ liệu MNIST. Bộ dữ liệu chứa tổng cộng 160 hình ảnh.

Hộp giới hạn xoay (Oriented Bounding Boxes - OBB)

Hộp giới hạn có hướng (Oriented Bounding Boxes - OBB) là một phương pháp trong thị giác máy tính để phát hiện các đối tượng có góc cạnh trong hình ảnh bằng cách sử dụng các hộp giới hạn xoay, thường được áp dụng cho ảnh chụp từ trên không và vệ tinh. Không giống như các hộp giới hạn truyền thống, OBB có thể phù hợp hơn với các đối tượng ở nhiều hướng khác nhau.

  • DOTA-v2: Một bộ dữ liệu hình ảnh trên không OBB phổ biến với 1,7 triệu đối tượng và 11.268 hình ảnh.
  • DOTA8: Một tập hợp con nhỏ hơn gồm 8 hình ảnh đầu tiên từ bộ chia DOTAv1, 4 cho huấn luyện và 4 cho xác thực, phù hợp cho các thử nghiệm nhanh.

Theo dõi đa đối tượng (Multi-Object Tracking)

Theo dõi đa đối tượng là một kỹ thuật thị giác máy tính bao gồm việc phát hiện và theo dõi nhiều đối tượng theo thời gian trong một chuỗi video. Tác vụ này mở rộng khả năng phát hiện đối tượng bằng cách duy trì tính nhất quán của danh tính các đối tượng trên các khung hình.

  • Argoverse: Một bộ dữ liệu chứa dữ liệu theo dõi 3D và dự đoán chuyển động từ môi trường đô thị với các chú thích phong phú cho các tác vụ theo dõi đa đối tượng.
  • VisDrone: Một bộ dữ liệu chứa dữ liệu theo dõi đa đối tượng và phát hiện đối tượng từ hình ảnh chụp từ máy bay không người lái với hơn 10 nghìn hình ảnh và chuỗi video.

Đóng góp bộ dữ liệu mới

Đóng góp một bộ dữ liệu mới bao gồm một số bước để đảm bảo rằng nó phù hợp với cơ sở hạ tầng hiện có. Dưới đây là các bước cần thiết:



Xem: Cách đóng góp vào bộ dữ liệu Ultralytics 🚀

Các bước để đóng góp một bộ dữ liệu mới

  1. Thu thập hình ảnh: Thu thập các hình ảnh thuộc về bộ dữ liệu. Chúng có thể được thu thập từ nhiều nguồn khác nhau, chẳng hạn như cơ sở dữ liệu công khai hoặc bộ sưu tập của riêng bạn.
  2. Chú thích hình ảnh: Chú thích những hình ảnh này bằng các hộp giới hạn, phân đoạn hoặc điểm chính, tùy thuộc vào tác vụ.
  3. Xuất chú thích: Chuyển đổi các chú thích này thành YOLO *.txt định dạng tệp mà Ultralytics hỗ trợ.
  4. Sắp xếp bộ dữ liệu: Sắp xếp bộ dữ liệu của bạn vào cấu trúc thư mục chính xác. Bạn nên có train/val/ các thư mục cấp cao nhất và trong mỗi thư mục, một images/labels/ thư mục con.

    dataset/
    ├── train/
    │   ├── images/
    │   └── labels/
    └── val/
        ├── images/
        └── labels/
    
  5. Tạo một data.yaml Tệp: Trong thư mục gốc của bộ dữ liệu, hãy tạo một data.yaml tệp mô tả bộ dữ liệu, các lớp và thông tin cần thiết khác.

  6. Tối ưu hóa hình ảnh (Tùy chọn): Nếu bạn muốn giảm kích thước của bộ dữ liệu để xử lý hiệu quả hơn, bạn có thể tối ưu hóa hình ảnh bằng mã bên dưới. Điều này không bắt buộc, nhưng được khuyến nghị để có kích thước bộ dữ liệu nhỏ hơn và tốc độ tải xuống nhanh hơn.
  7. Nén bộ dữ liệu: Nén toàn bộ thư mục bộ dữ liệu thành một tệp zip.
  8. Tài liệu và PR: Tạo một trang tài liệu mô tả bộ dữ liệu của bạn và cách nó phù hợp với khuôn khổ hiện có. Sau đó, gửi một Pull Request (PR). Tham khảo Hướng dẫn đóng góp của Ultralytics để biết thêm chi tiết về cách gửi PR.

Ví dụ về Code để Tối ưu hóa và Nén một Bộ dữ liệu

Tối ưu hóa và nén bộ dữ liệu

from pathlib import Path

from ultralytics.data.utils import compress_one_image
from ultralytics.utils.downloads import zip_directory

# Define dataset directory
path = Path("path/to/dataset")

# Optimize images in dataset (optional)
for f in path.rglob("*.jpg"):
    compress_one_image(f)

# Zip dataset into 'path/to/dataset.zip'
zip_directory(path)

Bằng cách làm theo các bước này, bạn có thể đóng góp một bộ dữ liệu mới tích hợp tốt với cấu trúc hiện có của Ultralytics.

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

Ultralytics hỗ trợ những bộ dữ liệu nào cho việc phát hiện đối tượng?

Ultralytics hỗ trợ nhiều loại tập dữ liệu khác nhau để phát hiện đối tượng, bao gồm:

  • COCO: Một bộ dữ liệu quy mô lớn để phát hiện, phân đoạn và chú thích đối tượng với 80 danh mục đối tượng.
  • LVIS: Một bộ dữ liệu mở rộng với 1203 danh mục đối tượng, được thiết kế để phát hiện và phân đoạn đối tượng chi tiết hơn.
  • Argoverse: Một bộ dữ liệu chứa dữ liệu theo dõi 3D và dự báo chuyển động từ môi trường đô thị với các chú thích phong phú.
  • VisDrone: Một bộ dữ liệu với dữ liệu theo dõi đa đối tượng và phát hiện đối tượng từ hình ảnh chụp bằng máy bay không người lái.
  • SKU-110K: Nổi bật với khả năng phát hiện đối tượng dày đặc trong môi trường bán lẻ với hơn 11 nghìn hình ảnh.

Các bộ dữ liệu này tạo điều kiện thuận lợi cho việc đào tạo các mô hình Ultralytics YOLO mạnh mẽ cho các ứng dụng phát hiện đối tượng khác nhau.

Làm cách nào để đóng góp một bộ dữ liệu mới cho Ultralytics?

Đóng góp một bộ dữ liệu mới bao gồm một số bước:

  1. Thu thập hình ảnh: Thu thập hình ảnh từ cơ sở dữ liệu công khai hoặc bộ sưu tập cá nhân.
  2. Chú thích hình ảnh: Áp dụng hộp giới hạn, phân đoạn hoặc điểm chính, tùy thuộc vào tác vụ.
  3. Xuất chú thích: Chuyển đổi chú thích sang YOLO *.txt định dạng.
  4. Sắp xếp bộ dữ liệu: Sử dụng cấu trúc thư mục với train/val/ các thư mục, mỗi thư mục chứa images/labels/ các thư mục con.
  5. Tạo một data.yaml Tệp: Bao gồm mô tả bộ dữ liệu, các lớp và thông tin liên quan khác.
  6. Tối ưu hóa hình ảnh (Tùy chọn): Giảm kích thước bộ dữ liệu để đạt hiệu quả.
  7. Nén bộ dữ liệu: Nén bộ dữ liệu vào một tệp zip.
  8. Tài liệu và PR: Mô tả bộ dữ liệu của bạn và gửi Pull Request theo Hướng dẫn đóng góp của Ultralytics.

Truy cập Đóng góp bộ dữ liệu mới để có hướng dẫn toàn diện.

Tại sao tôi nên sử dụng Ultralytics HUB cho bộ dữ liệu của mình?

Ultralytics HUB cung cấp các tính năng mạnh mẽ để quản lý và phân tích bộ dữ liệu, bao gồm:

  • Quản lý tập dữ liệu liền mạch: Tải lên, sắp xếp và quản lý tập dữ liệu của bạn ở một nơi.
  • Tích hợp đào tạo ngay lập tức: Sử dụng trực tiếp các bộ dữ liệu đã tải lên để đào tạo mô hình mà không cần thiết lập thêm.
  • Công cụ trực quan hóa: Khám phá và trực quan hóa hình ảnh và chú thích bộ dữ liệu của bạn.
  • Dataset Analysis: Nhận thông tin chi tiết về phân phối và đặc điểm bộ dữ liệu của bạn.

Nền tảng này hợp lý hóa quá trình chuyển đổi từ quản lý bộ dữ liệu sang huấn luyện mô hình, giúp toàn bộ quy trình hiệu quả hơn. Tìm hiểu thêm về Bộ dữ liệu Ultralytics HUB.

Các tính năng độc đáo của mô hình Ultralytics YOLO cho thị giác máy tính là gì?

Các mô hình Ultralytics YOLO cung cấp một số tính năng độc đáo cho các tác vụ thị giác máy tính:

  • Hiệu suất theo thời gian thực: Khả năng suy luận và huấn luyện tốc độ cao cho các ứng dụng nhạy cảm về thời gian.
  • Tính linh hoạt: Hỗ trợ các tác vụ phát hiện, phân vùng, phân loại và ước tính tư thế trong một khuôn khổ thống nhất.
  • Các mô hình được huấn luyện trước: Truy cập vào các mô hình được huấn luyện trước, hiệu suất cao cho các ứng dụng khác nhau, giảm thời gian huấn luyện.
  • Hỗ trợ cộng đồng rộng rãi: Cộng đồng tích cực và tài liệu toàn diện để khắc phục sự cố và phát triển.
  • Tích hợp dễ dàng: API đơn giản để tích hợp với các dự án và quy trình làm việc hiện có.

Tìm hiểu thêm về các mô hình YOLO trên trang Mô hình Ultralytics.

Làm cách nào tôi có thể tối ưu hóa và nén một bộ dữ liệu bằng các công cụ Ultralytics?

Để tối ưu hóa và nén một bộ dữ liệu bằng các công cụ Ultralytics, hãy làm theo đoạn mã ví dụ sau:

Tối ưu hóa và nén bộ dữ liệu

from pathlib import Path

from ultralytics.data.utils import compress_one_image
from ultralytics.utils.downloads import zip_directory

# Define dataset directory
path = Path("path/to/dataset")

# Optimize images in dataset (optional)
for f in path.rglob("*.jpg"):
    compress_one_image(f)

# Zip dataset into 'path/to/dataset.zip'
zip_directory(path)

Quy trình này giúp giảm kích thước bộ dữ liệu để lưu trữ hiệu quả hơn và tốc độ tải xuống nhanh hơn. Tìm hiểu thêm về cách Tối ưu hóa và nén bộ dữ liệu.



📅 Đã tạo 1 năm trước ✏️ Cập nhật 3 tháng trước

Bình luận