Tổng quan về tập dữ liệu
Ultralytics cung cấp hỗ trợ cho nhiều tập 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, instance segmentation, phân đoạn ngữ nghĩa (semantic segmentation), ước tính tư thế (pose estimation), phân loại và theo dõi đa đối tượng (multi-object tracking). Dưới đây là danh sách các tập dữ liệu chính của Ultralytics, theo sau là tóm tắt về từng tác vụ thị giác máy tính và các tập dữ liệu tương ứng.
Watch: Ultralytics Datasets Overview
Object Detection
Phát hiện đối tượng bằng 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 ảnh bằng cách vẽ một khung bao quanh từng đối tượng.
- African-wildlife: Một tập dữ liệu chứa hình ảnh động vật hoang dã châu Phi, bao gồm trâu, voi, tê giác và ngựa vằn.
- Argoverse: Một tập 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ú.
- Brain-tumor: Một tập dữ liệu để phát hiện khối u não bao gồm hình ảnh quét MRI hoặc CT 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.
- COCO: Common Objects in Context (COCO) là một tập dữ liệu quy mô lớn về phát hiện đối tượng, phân đoạn và chú thích với 80 danh mục đối tượng.
- COCO8: Một tập hợp con nhỏ hơn gồm 4 hình ảnh đầu tiên từ COCO train và COCO val, phù hợp để kiểm tra nhanh.
- COCO8-Grayscale: Một phiên bản thang độ xám (grayscale) của COCO8 được tạo bằng cách chuyển đổi RGB sang thang độ xám, hữu ích để đánh giá model đơ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á model nhận thức phổ.
- COCO128: Một tập hợp con nhỏ hơn gồm 128 hình ảnh đầu tiên từ COCO train và COCO val, phù hợp cho các bài kiểm tra.
- Construction-PPE: Một tập dữ liệu hình ảnh công trường xây dựng được chú thích với các thiết bị an toàn thiết yếu như mũ bảo hộ, áo khoác, găng tay, ủng và kính bảo hộ, cùng với các nhãn cho thiết bị bị thiếu, hỗ trợ phát triển các model AI cho việc tuân thủ và bảo vệ người lao động.
- Global Wheat 2020: Một tập dữ liệu chứa hình ảnh đầu lúa mì cho Thử thách Global Wheat 2020.
- HomeObjects-3K: Một tập dữ liệu 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 model thị giác máy tính trong hệ thống nhà thông minh, robotics và thực tế tăng cường.
- KITTI Mới: Một tập dữ liệu lái xe tự hành nổi tiếng có các đầu vào stereo, LiDAR và GPS/IMU, được sử dụng để phát hiện đối tượng 2D trong các cảnh đường phố đa dạng.
- LVIS: Một tập dữ liệu quy mô lớn về phát hiện đối tượng, phân đoạn và chú thích với 1203 danh mục đối tượng.
- Medical-pills: Một tập dữ liệu chứa hình ảnh được dán nhãn của các loại thuốc y tế, được thiết kế để hỗ trợ 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.
- Objects365: Một tập 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 tập dữ liệu toàn diện của Google với 1,7 triệu hình ảnh train và 42 nghìn hình ảnh validation.
- RF100: Một điểm chuẩn phát hiện đối tượng đa dạng với 100 tập dữ liệu trải rộng trên bảy lĩnh vực hình ảnh để đánh giá model toàn diện.
- Signature: Một tập 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.
- SKU-110K: Một tập dữ liệu có tính 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 bounding box.
- VisDrone: Một tập dữ liệu chứa dữ liệu phát hiện đối tượng và theo dõi đa đối tượng từ hình ảnh do drone chụp với hơn 10 nghìn hình ảnh và chuỗi video.
- VOC: Tập 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 tập 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.
Instance Segmentation
Instance segmentation là một kỹ thuật thị giác máy tính liên quan đến việc nhận dạng và định vị các đối tượng trong ảnh ở cấp độ pixel. Không giống như phân đoạn ngữ nghĩa chỉ phân loại từng pixel, instance segmentation phân biệt giữa các instance khác nhau của cùng một lớp.
- Carparts-seg: Tập dữ liệu được xây dựng có mục đích để nhận dạng các bộ phận xe, phục vụ nhu cầu thiết kế, sản xuất và nghiên cứu. Nó được sử dụng cho cả các tác vụ phát hiện đối tượng và phân đoạn.
- COCO: Một tập 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 đoạn và chú thích với hơn 200 nghìn hình ảnh được dán nhãn.
- COCO8-seg: Một tập dữ liệu nhỏ hơn cho các tác vụ instance segmentation, 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 đoạn.
- COCO128-seg: Một tập dữ liệu nhỏ hơn cho các tác vụ instance segmentation, 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 đoạn.
- Crack-seg: Tập dữ liệu được chế tạo đặc biệt để 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 đoạn.
- Package-seg: Tập dữ liệu được thiết kế riêng để nhận dạng các gói hàng trong kho hoặc môi trường công nghiệp, phù hợp cho cả các ứng dụng phát hiện đối tượng và phân đoạn.
Semantic Segmentation
Phân đoạn ngữ nghĩa (semantic segmentation) gán nhãn lớp cho mọi pixel trong hình ảnh, tạo ra các bản đồ cảnh dày đặc cho các ứng dụng như lái xe tự hành, phân tích cảnh và lập bản đồ lớp phủ đất.
- Cityscapes: Tập dữ liệu phân đoạn ngữ nghĩa cảnh đường phố đô thị với 19 lớp train.
- Cityscapes8: Một tập hợp con nhỏ gọn gồm 8 hình ảnh Cityscapes để kiểm tra nhanh quy trình phân đoạn ngữ nghĩa.
- ADE20K: Tập dữ liệu phân tích cảnh với 150 lớp ngữ nghĩa.
Pose Estimation
Ước tính tư thế (pose estimation) 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ệ thống tọa độ thế giới. Điều này liên quan đến việc xác định các điểm chính hoặc khớp trên các đối tượng, đặc biệt là người hoặc động vật.
- COCO: Một tập 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 tập 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.
- Dog-pose: Một tập 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 cho mỗi con chó, được thiết kế riêng cho các tác vụ ước tính tư thế.
- Hand-Keypoints: Một tập 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 cho mỗi bàn tay, được thiết kế cho các tác vụ ước tính tư thế.
- Tiger-pose: Một tập dữ liệu nhỏ gọn gồm 263 hình ảnh tập trung vào hổ, được chú thích với 12 điểm chính cho mỗi con hổ cho các tác vụ ước tính tư thế.
Classification
Phân loại hình ảnh là một tác vụ thị giác máy tính liên quan đến việc phân loại 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 tập 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 hình ảnh.
- Caltech 256: Một phiên bản mở rộng của Caltech 101 với 256 danh mục đối tượng và các hình ảnh thử thách hơn.
- CIFAR-10: Một tập dữ liệu gồm 60 nghìn hình ảnh màu 32x32 trong 10 lớp, với 6 nghìn hình ảnh mỗi lớp.
- CIFAR-100: Một phiên bản mở rộng của CIFAR-10 với 100 danh mục đối tượng và 600 hình ảnh mỗi lớp.
- Fashion-MNIST: Một tập dữ liệu bao gồm 70.000 hình ảnh thang độ xám của 10 danh mục thời trang cho các tác vụ phân loại hình ảnh.
- ImageNet: Một tập dữ liệu quy mô lớn để phát hiện đối tượng và phân loại hình ả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 để đào tạo và kiểm tra nhanh hơn.
- Imagewoof: Một tập hợp con thử thách hơn của ImageNet chứa 10 danh mục giống chó cho các tác vụ phân loại hình ảnh.
- MNIST: Một tập dữ liệu gồm 70.000 hình ảnh thang độ xám của các chữ số viết tay cho các tác vụ phân loại hình ảnh.
- MNIST160: 8 hình ảnh đầu tiên của mỗi danh mục MNIST từ tập dữ liệu MNIST. Tập dữ liệu chứa tổng cộng 160 hình ảnh.
Oriented Bounding Boxes (OBB)
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 bị nghiêng trong hình ảnh bằng cách sử dụng các bounding box xoay, thường được áp dụng cho hình ảnh trên không và vệ tinh. Không giống như các bounding box truyền thống, OBB có thể khớp với các đối tượng ở nhiều hướng khác nhau tốt hơn.
- DOTA-v2: Một tập dữ liệu hình ảnh trên không OBB phổ biến với 1,7 triệu instance 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ừ tập phân chia DOTAv1, 4 để đào tạo và 4 để validation, phù hợp để kiểm tra nhanh.
- DOTA128: Một tập hợp con gồm 128 hình ảnh của tập dữ liệu DOTA với 128 hình ảnh để đào tạo và validation, cung cấp sự cân bằng tốt giữa kích thước và tính đa dạng để kiểm tra các model OBB.
Multi-Object Tracking
Theo dõi đa đối tượng (multi-object tracking) là một kỹ thuật thị giác máy tính liên quan đến 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ì danh tính nhất quán của các đối tượng qua các khung hình.
- Argoverse: Một tập 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ú cho các tác vụ theo dõi đa đối tượng.
- VisDrone: Một tập dữ liệu chứa dữ liệu phát hiện đối tượng và theo dõi đa đối tượng từ hình ảnh do drone chụp với hơn 10 nghìn hình ảnh và chuỗi video.
Đóng góp tập dữ liệu mới
Việc đóng góp một tập dữ liệu mới bao gồm một vài bước để đảm bảo rằng nó phù hợp tốt với cơ sở hạ tầng hiện có. Dưới đây là các bước cần thiết:
Watch: How to Contribute to Ultralytics Datasets
Các bước để đóng góp một tập dữ liệu mới
-
Thu thập hình ảnh: Tập hợp các hình ảnh thuộc về tập 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 cộng hoặc bộ sưu tập của riêng bạn.
-
Chú thích hình ảnh: Chú thích các hình ảnh này bằng bounding box, phân đoạn hoặc điểm chính, tùy thuộc vào tác vụ.
-
Xuất chú thích: Chuyển đổi các chú thích này sang định dạng tệp YOLO
*.txtmà Ultralytics hỗ trợ. -
Tổ chức tập dữ liệu: Sắp xếp tập 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ó các thư mục cấp cao nhất là
images/vàlabels/, và trong mỗi thư mục đó, một thư mục contrain/vàval/.dataset/ ├── images/ │ ├── train/ │ └── val/ └── labels/ ├── train/ └── val/ -
Tạo tệp
data.yaml: Trong thư mục gốc của tập dữ liệu, hãy tạo tệpdata.yamlmô tả tập dữ liệu, các lớp và các thông tin cần thiết khác. -
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 tập dữ liệu để xử lý hiệu quả hơn, bạn có thể tối ưu hóa hình ảnh bằng đoạn mã dưới đây. Việc này không bắt buộc nhưng được khuyến nghị để có kích thước tập dữ liệu nhỏ hơn và tốc độ tải xuống nhanh hơn.
-
Nén tập dữ liệu (Zip): Nén toàn bộ thư mục tập dữ liệu thành tệp zip.
-
Tài liệu và PR: Tạo một trang tài liệu mô tả tập dữ liệu của bạn và cách nó phù hợp với khuôn khổ hiện có. Sau đó, hãy gửi 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.
Mã ví dụ để tối ưu hóa và nén tập 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 tập 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 (FAQ)
Ultralytics hỗ trợ những tập dữ liệu nào cho phát hiện đối tượng?
Ultralytics hỗ trợ nhiều loại tập dữ liệu cho object detection, bao gồm:
- COCO: Một tập dữ liệu quy mô lớn về phát hiện đối tượng, phân đoạn và chú thích với 80 danh mục đối tượng.
- LVIS: Một tập 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 tập 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 tập dữ liệu với dữ liệu phát hiện đối tượng và theo dõi đa đối tượng từ hình ảnh do drone chụp.
- SKU-110K: Có tính 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 tập dữ liệu này tạo điều kiện thuận lợi cho việc đào tạo các model Ultralytics YOLO mạnh mẽ cho các ứng dụng phát hiện đối tượng khác nhau.
Làm thế nào để tôi đóng góp một tập dữ liệu mới cho Ultralytics?
Việc đóng góp một tập dữ liệu mới bao gồm một vài bước:
- Thu thập hình ảnh: Thu thập hình ảnh từ các cơ sở dữ liệu công cộng hoặc bộ sưu tập cá nhân.
- Chú thích hình ảnh: Áp dụng bounding box, phân đoạn hoặc điểm chính, tùy thuộc vào tác vụ.
- Xuất chú thích: Chuyển đổi chú thích sang định dạng YOLO
*.txt. - Tổ chức tập dữ liệu: Sử dụng cấu trúc thư mục với các thư mục
train/vàval/, mỗi thư mục chứa các thư mục conimages/vàlabels/. - Tạo tệp
data.yaml: Bao gồm mô tả tập dữ liệu, các lớp và các thông tin liên quan khác. - Tối ưu hóa hình ảnh (Tùy chọn): Giảm kích thước tập dữ liệu để đạt hiệu quả.
- Nén tập dữ liệu (Zip): Nén tập dữ liệu thành tệp zip.
- Tài liệu và PR: Mô tả tập 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 tập 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 Platform cho tập dữ liệu của mình?
Ultralytics Platform cung cấp các tính năng mạnh mẽ để quản lý và phân tích tập 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ý các tập dữ liệu của bạn tại một nơi.
- Tích hợp huấn luyện ngay lập tức: Sử dụng các tập dữ liệu đã tải lên trực tiếp để huấn luyện model 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 các hình ảnh và chú thích trong tập dữ liệu của bạn.
- Phân tích tập dữ liệu: Nhận thông tin chi tiết về phân phối và các đặc điểm của tập dữ liệu của bạn.
Nền tảng giúp đơn giản hóa việc chuyển đổi từ quản lý tập dữ liệu sang huấn luyện model, giúp toàn bộ quy trình hiệu quả hơn. Tìm hiểu thêm về Ultralytics Platform Datasets.
Các tính năng độc đáo của các model YOLO của Ultralytics cho thị giác máy tính là gì?
Các model YOLO của Ultralytics cung cấp một số tính năng độc đáo cho các tác vụ computer vision:
- Hiệu suất thời gian thực: Khả năng inference 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ụ detection, instance segmentation, semantic segmentation, classification và pose estimation trong một framework thống nhất.
- Model được huấn luyện sẵn: Truy cập vào các model hiệu suất cao đã được huấn luyện sẵn cho nhiều ứng dụng, giúp giảm thời gian huấn luyện.
- Hỗ trợ cộng đồng rộng lớn: Cộng đồng tích cực và tài liệu toàn diện để hỗ trợ xử lý 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ó.
Khám phá thêm về các model YOLO trên trang Ultralytics Models.
Làm cách nào để tối ưu hóa và nén (zip) tập dữ liệu bằng các công cụ của Ultralytics?
Để tối ưu hóa và nén tập dữ liệu bằng các công cụ của Ultralytics, hãy làm theo mã mẫu này:
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 tập dữ liệu để lưu trữ hiệu quả hơn và tăng tốc độ tải xuống. Tìm hiểu thêm về cách Optimize and Zip a Dataset.