Tổng quan về bộ dữ liệu#
Ultralytics cung cấp hỗ trợ cho nhiều tập dữ liệu khác nhau nhằm 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, ước lượng chiều sâu, ước lượng tư thế, phân loại và theo dõi đa đối tượng. Dưới đây là danh sách các tập dữ liệu chính của Ultralytics, theo sau là phần tóm tắt của 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
Phát hiện đối tượng#
Phát hiện đối tượng Bounding box là một kỹ thuật thị giác máy tính bao gồm 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 hộp bao quanh mỗi đối tượng.
- African-wildlife: Một tập dữ liệu bao gồm 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.
- Argoverse: Một dataset chứa dữ liệu theo dõi 3D và dự đoán chuyển động từ các 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 u não bao gồm các hình ảnh chụp MRI hoặc CT kèm theo thông tin chi tiết về sự hiện diện, vị trí và các đặc điểm của khối u.
- COCO: Common Objects in Context (COCO) là một tập dữ liệu phát hiện đối tượng, phân đoạn và chú thích quy mô lớn với 80 danh mục đối tượng.
- COCO8: Một tập con nhỏ hơn gồm 4 ảnh đầu tiên từ tập huấn luyện và kiểm thử của COCO, thích hợp cho việc kiểm thử nhanh.
- COCO8-Grayscale: 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 cho việc đánh giá model đơn kênh.
- COCO8-Multispectral: Phiên bản phổ đa kênh (multispectral) 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 con nhỏ hơn gồm 128 ảnh đầu tiên từ COCO train2017, thích hợp cho việc kiểm thử.
- Construction-PPE: Một tập dữ liệu về 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 chính như mũ bảo hiểm, áo khoác phản quang, găng tay, giày bảo hộ và kính bảo hộ, cùng với các nhãn cho thiết bị bị thiếu, hỗ trợ việc phát triển các model AI phục vụ công tác tuân thủ và bảo vệ người lao động.
- Global Wheat 2020: Một dataset chứa hình ảnh bông lúa cho cuộc thi Global Wheat Challenge 2020.
- HomeObjects-3K: Một tập dữ liệu về các khung cảnh trong nhà được chú thích gồm 12 vật dụng gia đình phổ biến, rất 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, robot và thực tế ảo tăng cường.
- KITTI Mới: Một tập dữ liệu lái xe tự động nổi tiếng bao gồm 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 khung cảnh đường phố đa dạng.
- LVIS: Một dataset phát hiện đối tượng, phân đoạn và tạo chú thích quy mô lớn với 1203 danh mục đối tượng.
- Medical-pills: Một tập dữ liệu chứa các hình ảnh có nhãn của thuốc dạng viên, đượ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 dataset chất lượng cao, quy mô lớn dành cho việc 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 gán nhãn.
- OpenImagesV7: Một dataset toàn diện do Google cung cấp với 1,7 triệu ảnh huấn luyện và 42 nghìn ảnh kiểm thử.
- RF100: Một benchmark phát hiện đối tượng đa dạng với 100 tập dữ liệu trải dài trên bảy miền hình ảnh để đánh giá model toàn diện.
- Signature: Một dataset bao gồm hình ảnh các tài liệu khác nhau với chữ ký được gán nhãn, hỗ trợ nghiên cứu xác thực tài liệu và 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.000 hình ảnh và 1,7 triệu bounding box.
- VisDrone: Một dataset chứa dữ liệu phát hiện đối tượng và theo dõi đa đối tượng từ hình ảnh quay bằng drone với hơn 10 nghìn hình ảnh và chuỗi video.
- VOC: Dataset Pascal Visual Object Classes (VOC) dành cho việc 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 dataset phát hiện đối tượng trong hình ảnh chụp từ trên không với 60 danh mục đối tượng và hơn 1 triệu đối tượng được gán nhãn.
Phân đoạn Cá thể#
Instance segmentation là một kỹ thuật thị giác máy tính liên quan đến việc nhận diện và định vị các đối tượng trong một hình ảnh ở mức độ điểm ảnh. Khác với phân đoạn ngữ nghĩa chỉ phân loại từng điểm ảnh, instance segmentation phân biệt giữa các thể hiện khác nhau của cùng một lớp.
- Carparts-seg: Tập dữ liệu được xây dựng chuyên biệt để nhận diện các bộ phận xe hơi, phục vụ cho nhu cầu thiết kế, sản xuất và nghiên cứu. Tập dữ liệu này phục vụ cho 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.000 hình ảnh có nhãn.
- COCO8-seg: Một tập dữ liệu nhỏ hơn dành cho các tác vụ instance segmentation, chứa tập con gồm 8 hình ảnh COCO có chú thích phân đoạn.
- COCO128-seg: Một tập dữ liệu nhỏ hơn dành cho các tác vụ instance segmentation, chứa tập con gồm 128 hình ảnh COCO có chú thích phân đoạn.
- Crack-seg: Tập dữ liệu được tạo ra đặ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 diện các kiện hàng trong kho hoặc cơ sở công nghiệp, phù hợp cho cả ứng dụng phát hiện đối tượng và phân đoạn.
Phân đoạn Ngữ nghĩa#
Semantic segmentation gán một nhãn lớp cho mọi pixel trong một 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 huấn luyện.
- Cityscapes8: Một tập con Cityscapes nhỏ gọn gồm 8 hình ảnh để kiểm tra nhanh đường ống phân đoạn ngữ nghĩa.
- ADE20K: Tập dữ liệu phân tích cú pháp cảnh với 150 lớp ngữ nghĩa.
Ước lượng Chiều sâu#
Ước tính độ sâu đơn ảnh (monocular depth estimation) dự đoán bản đồ độ sâu theo pixel tính bằng mét từ một hình ảnh RGB duy nhất, hỗ trợ tái tạo cảnh 3D, điều hướng robot và các ứng dụng AR/VR.
- NYU Depth V2: Benchmark chiều sâu trong nhà chuẩn được ghi lại bằng thiết bị Microsoft Kinect v1.
- KITTI: Các khung cảnh lái xe tự động ngoài đời thực với dữ liệu chiều sâu Velodyne LiDAR.
- Depth8: Một tập con SUN RGB-D nhỏ gọn gồm 8 hình ảnh dùng để kiểm tra nhanh đường ống.
Ước lượng 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ệ tọa độ thế giới. Điều này bao gồm 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à con người hoặc động vật.
- COCO: Một tập dữ liệu quy mô lớn có các chú thích tư thế con người được thiết kế cho các tác vụ ước lượng tư thế.
- COCO8-pose: Một tập dữ liệu nhỏ hơn cho các tác vụ ước lượng tư thế, chứa tập con gồm 8 hình ảnh COCO có chú thích tư thế con người.
- Dog-pose: Một tập dữ liệu toàn diện bao gồm khoảng 8.500 hình ảnh tập trung vào loài chó, được chú thích với 24 điểm khóa cho mỗi con chó, thiết kế riêng cho các tác vụ ước lượng tư thế.
- Hand-Keypoints: Một tập dữ liệu súc tích bao gồm hơn 26.000 hình ảnh tập trung vào bàn tay con người, được chú thích với 21 điểm khóa cho mỗi bàn tay, được thiết kế cho các tác vụ ước lượng tư thế.
- Tiger-pose: Một tập dữ liệu nhỏ gọn bao gồm 263 hình ảnh tập trung vào loài hổ, được chú thích với 12 điểm khóa cho mỗi con hổ phục vụ cho các tác vụ ước lượng tư thế.
Phân loại#
Image classification 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 định nghĩa sẵn 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: 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 có độ thách thức cao hơn.
- CIFAR-10: Một tập dữ liệu gồm 60.000 hình ảnh màu 32x32 thuộc 10 lớp, với 6.000 hình ảnh cho mỗi lớp.
- CIFAR-100: 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 cho mỗi lớp.
- Fashion-MNIST: Một tập dữ liệu bao gồm 70.000 hình ảnh thang độ xám thuộc 10 danh mục thời trang dành 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 dùng để 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 con nhỏ hơn của ImageNet với 10 danh mục nhằm tăng tốc độ thử nghiệm và kiểm thử.
- Imagenette: Một tập con nhỏ hơn của ImageNet chứa 10 lớp dễ phân biệt giúp quá trình huấn luyện và kiểm thử diễn ra nhanh hơn.
- Imagewoof: Một tập con khó hơn của ImageNet chứa 10 danh mục giống loài chó dành 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 chữ số viết tay dành 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 chữ số (0-9) từ cả tập huấn luyện và tập kiểm thử của MNIST. Tập dữ liệu chứa tổng cộng 160 hình ảnh.
Hộp bao quanh có định hướng (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 khung bao quanh xoay, thường được áp dụng cho ảnh hàng không và vệ tinh. Không giống như bounding box truyền thống, OBB có thể khớp tốt hơn với các đối tượng ở nhiều hướng khác nhau.
- 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 thể hiện và 11.268 hình ảnh.
- DOTA8: Một tập con nhỏ hơn gồm 8 hình ảnh đầu tiên từ tập phân tách DOTAv1, 4 ảnh dùng để huấn luyện và 4 ảnh dùng để xác thực, phù hợp cho việc kiểm thử nhanh.
- DOTA128: Một tập con gồm 128 hình ảnh của tập dữ liệu DOTA với 128 hình ảnh dùng để huấn luyện và xác thực, mang lại sự cân bằng tốt giữa kích thước và tính đa dạng để kiểm thử các model OBB.
Multi-Object Tracking#
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 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ừ các môi trường đô thị với các chú thích phong phú dành cho các tác vụ theo dõi đa đối tượng.
- VisDrone: Một dataset chứa dữ liệu phát hiện đối tượng và theo dõi đa đối tượng từ hình ảnh quay bằng drone với hơn 10 nghìn hình ảnh và chuỗi video.
Đóng góp bộ dữ liệu mới#
Việc đóng góp một bộ dữ liệu mới bao gồm một số bước để đảm bảo 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 bộ dữ liệu mới#
-
Thu thập hình ảnh: Tập hợp các hình ảnh thuộc về bộ dữ liệu. Những hình ảnh này 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 (segment) hoặc điểm chính (keypoint), tùy thuộc vào tác vụ.
-
Export Annotations: Chuyển đổi các chú thích này sang định dạng tệp YOLO
*.txtmà Ultralytics hỗ trợ. -
Organize Dataset: 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 phải có các thư mục cấp cao nhất là
images/vàlabels/, và bên trong mỗi thư mục sẽ có các thư mục contrain/vàval/.dataset/ ├── images/ │ ├── train/ │ └── val/ └── labels/ ├── train/ └── val/ -
Create a
data.yamlFile: Trong thư mục gốc của tập dữ liệu, hãy tạo một 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 bộ dữ liệu để xử lý hiệu quả hơn, bạn có thể tối ưu hóa các hình ảnh bằng đoạn mã bên dưới. Điều này không bắt buộc, nhưng được khuyến nghị cho các kích thước bộ dữ liệu nhỏ hơn và tốc độ tải xuống nhanh hơn.
-
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.
-
Document and 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ó tích hợp vào framework hiện có. Sau đó, hãy gửi một Pull Request (PR). Tham khảo Ultralytics Contribution Guidelines để biết thêm chi tiết về cách gửi PR.
Ví dụ mã để 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 thực hiện 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 tại của Ultralytics.
Câu hỏi thường gặp#
Ultralytics hỗ trợ đa dạng các tập dữ liệu cho tác vụ object detection, bao gồm:
- COCO: Một tập dữ liệu phát hiện đối tượng, phân đoạn và chú thích quy mô lớn 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ế cho việc phát hiện và phân đoạn đối tượng chi tiết hơn.
- Argoverse: Một dataset chứa dữ liệu theo dõi 3D và dự đoán chuyển động từ các 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 quay bằng drone.
- 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.000 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 huấn luyện các model Ultralytics YOLO mạnh mẽ cho nhiều ứng dụng phát hiện đối tượng khác nhau.
Việc đóng góp một bộ dữ liệu mới bao gồm một số 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ụ.
- Export Annotations: Chuyển đổi các chú thích sang định dạng YOLO
*.txt. - Organize Dataset: 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/. - Create a
data.yamlFile: Bao gồm các 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 bộ dữ liệu để tăng hiệu quả.
- Nén bộ dữ liệu: Nén bộ dữ liệu thành một tệp zip.
- Document and PR: Mô tả tập dữ liệu của bạn và gửi một Pull Request theo Ultralytics Contribution Guidelines.
Truy cập Contribute New Datasets để xem hướng dẫn chi tiết.
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 duy nhất.
- Tích hợp huấn luyện tức thì: Sử dụng trực tiếp các tập dữ liệu đã tải lên để 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ề sự phân bổ và đặc điểm tập dữ liệu của bạn.
Nền tảng này đơn giản hóa quá trình 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 trở nên hiệu quả hơn. Tìm hiểu thêm về Ultralytics Platform Datasets.
Các model Ultralytics YOLO 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 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, instance segmentation, phân đoạn ngữ nghĩa, ước tính độ sâu, phân loại và ước tính tư thế 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 năng cao đã được huấn luyện sẵn cho nhiều ứng dụng khác nhau, giúp 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 để giải quyết sự cố và phát triển.
- Tích hợp dễ dàng: API đơn giản để tích hợp vào 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.
Để 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 đoạn mã ví dụ này:
Tối ưu hóa và nén bộ dữ liệufrom 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ốc độ tải xuống nhanh hơn. Tìm hiểu thêm về cách Optimize and Zip a Dataset.