Tổng quan về Datasets#
Ultralytics hỗ trợ nhiều datasets khác nhau để phục vụ các tác vụ computer vision như phát hiện, instance segmentation, semantic segmentation, ước tính độ sâu, phân loại, ước tính pose và bounding box định hướng (OBB). Dưới đây là danh sách các dataset chính của Ultralytics, tiếp theo là phần tóm tắt từng tác vụ computer vision và các dataset tương ứng. Track mode chạy trên các model detection, segmentation, pose và OBB mà không cần training dành riêng cho tracker; xem tracking datasets.
Watch: Ultralytics Datasets Overview
Phát hiện đối tượng#
Phát hiện đối tượng bằng bounding box là một kỹ thuật computer vision, bao gồm việc phát hiện và xác định vị trí các đối tượng trong ảnh bằng cách vẽ một bounding box quanh mỗi đối tượng.
- African-wildlife: Dataset gồm 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: Dataset chứa dữ liệu tracking 3D và dự báo chuyển động từ các môi trường đô thị, kèm annotation phong phú.
- Brain-tumor: Dataset dùng để phát hiện khối u não, bao gồm ảnh chụp MRI hoặc CT cùng thông tin chi tiết về sự hiện diện, vị trí và đặc điểm của khối u.
- COCO: Dataset Đối tượng phổ biến trong ngữ cảnh (COCO) quy mô lớn dành cho detection, segmentation và tạo chú thích, với 80 danh mục đối tượng.
- COCO8: Một tập con nhỏ hơn gồm 8 hình ảnh đầu tiên từ tập huấn luyện COCO train2017, trong đó 4 hình ảnh dùng để huấn luyện và 4 hình ảnh dùng để xác thực, phù hợp cho việc kiểm thử nhanh.
- COCO8-Grayscale: Phiên bản grayscale của COCO8 được tạo bằng cách chuyển đổi RGB sang grayscale, hữu ích cho việc đánh giá model một kênh.
- COCO8-Multispectral: Phiên bản 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 biết phổ.
- COCO12-Formats: Một tập dữ liệu kiểm thử gồm 12 hình ảnh bao gồm 12 định dạng hình ảnh được hỗ trợ (AVIF, BMP, DNG, HEIC, JP2, JPEG, JPG, MPO, PNG, TIF, TIFF, WebP) dùng để xác thực các pipeline tải hình ảnh.
- COCO128: Tập con nhỏ hơn gồm 128 ảnh đầu tiên từ COCO train2017, phù hợp cho các bài test.
- Construction-PPE: Dataset gồm hình ảnh công trường được annotation với các thiết bị bảo hộ quan trọng như mũ bảo hộ, áo vest, găng tay, giày và kính bảo hộ, cùng nhãn cho thiết bị còn thiếu, hỗ trợ phát triển các model AI phục vụ tuân thủ quy định và bảo vệ người lao động.
- Global Wheat 2020: Dataset chứa hình ảnh bông lúa mì cho Global Wheat Challenge 2020.
- HomeObjects-3K: Dataset gồm các cảnh trong nhà đã được annotation, chứa 12 vật dụng gia đình phổ biến, phù hợp để phát triển và kiểm thử các model computer vision trong hệ thống nhà thông minh, robotics và thực tế tăng cường.
- KITTI: Một tập dữ liệu lái xe tự hành nổi tiếng bao gồm các đầu vào stereo, LiDAR và GPS/IMU, được sử dụng cho tác vụ phát hiện đối tượng 2D trong các cảnh đường phố đa dạng.
- LVIS: Dataset quy mô lớn dành cho object detection, segmentation và tạo chú thích, với 1203 danh mục đối tượng.
- Medical-pills: Dataset chứa hình ảnh thuốc viên đã được gắn nhãn, nhằm 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à bảo đảm tuân thủ các tiêu chuẩn của ngành.
- Objects365: Dataset chất lượng cao, quy mô lớn dành cho object detection, với 365 danh mục đối tượng và hơn 600K ảnh đã được annotation.
- OpenImagesV7: Dataset toàn diện do Google cung cấp, với 1.7M ảnh train và 42k ảnh validation.
- RF100: Benchmark object detection đa dạng với 100 dataset thuộc bảy miền hình ảnh, phục vụ đánh giá model toàn diện.
- Signature: Dataset gồm hình ảnh nhiều loại tài liệu có chữ ký được annotation, hỗ trợ nghiên cứu xác minh tài liệu và phát hiện gian lận.
- SKU-110K: Dataset tập trung vào object detection dày đặc trong môi trường bán lẻ, với hơn 11K ảnh và 1.7 triệu bounding box.
- TT100K: Tập dữ liệu biển báo giao thông Tsinghua-Tencent 100K với 16.817 hình ảnh góc nhìn đường phố trên 221 danh mục biển báo.
- VisDrone: Dataset chứa dữ liệu object detection và multi-object tracking từ hình ảnh do drone ghi lại, với hơn 10K ảnh và chuỗi video.
- VOC: Dataset Pascal Visual Object Classes (VOC) dành cho object detection và segmentation, với 20 lớp đối tượng và hơn 11K ảnh.
- xView: Dataset dành cho object detection trong ảnh chụp từ trên cao, với 60 danh mục đối tượng và hơn 1 triệu đối tượng đã được annotation.
Phân đoạn instance#
Instance segmentation là một kỹ thuật computer vision, bao gồm việc xác định và định vị đối tượng trong ảnh ở cấp độ pixel. Khác với semantic segmentation, vốn chỉ phân loại từng pixel, instance segmentation phân biệt các instance khác nhau thuộc cùng một lớp.
- Carparts-seg: Dataset được xây dựng chuyên biệt để nhận diện các bộ phận xe, phục vụ nhu cầu thiết kế, sản xuất và nghiên cứu. Dataset này hỗ trợ cả tác vụ object detection và segmentation.
- COCO: Dataset quy mô lớn được thiết kế cho các tác vụ object detection, segmentation và tạo chú thích, với hơn 200K ảnh được gắn nhãn.
- COCO8-seg: Dataset nhỏ hơn dành cho các tác vụ instance segmentation, chứa một tập con gồm 8 ảnh COCO có annotation segmentation.
- COCO128-seg: Dataset nhỏ hơn dành cho các tác vụ instance segmentation, chứa một tập con gồm 128 ảnh COCO có annotation segmentation.
- Crack-seg: Dataset được xây dựng chuyên biệt để phát hiện vết nứt trên đường và tường, phù hợp cho cả tác vụ object detection và segmentation.
- Package-seg: Dataset được thiết kế để nhận diện kiện hàng trong kho hoặc môi trường công nghiệp, phù hợp cho cả ứng dụng object detection và segmentation.
Semantic Segmentation#
Semantic segmentation gán nhãn lớp cho từng pixel trong ảnh, tạo ra các bản đồ cảnh dày đặc cho những ứ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: Dataset semantic segmentation cảnh đường phố đô thị với 19 lớp train.
- Cityscapes8: Tập con Cityscapes nhỏ gọn gồm 8 ảnh, dùng để kiểm tra nhanh pipeline semantic segmentation.
- ADE20K: Dataset phân tích cảnh với 150 lớp semantic.
Depth Estimation#
Ước tính độ sâu đơn nhãn dự đoán bản đồ độ sâu theo từng pixel, tính bằng mét, từ một ảnh RGB duy nhất, hỗ trợ tái dựng cảnh 3D, điều hướng robot và các ứng dụng AR/VR.
- Depth8: Tập con SUN RGB-D nhỏ gọn gồm 8 ảnh, dùng để kiểm tra nhanh pipeline.
- ARKitScenes: Dữ liệu RGB-D trong nhà thực tế được ghi lại bằng Apple ARKit LiDAR, nguồn huấn luyện thực tế lớn nhất.
- SUN RGB-D: Các cảnh trong nhà thực tế được ghi lại bằng bốn cảm biến RGB-D khác nhau.
- DIODE: Dữ liệu độ sâu trong nhà và ngoài trời có mật độ cao từ máy quét laser cấp độ khảo sát.
- Hypersim: Các cảnh trong nhà tổng hợp mang tính quang thực với độ sâu trên từng điểm ảnh hoàn hảo.
- TartanAir: Các môi trường AirSim tổng hợp với độ sâu mật độ cao lên đến ~80 m.
- Virtual KITTI 2: Bản tái tạo tổng hợp của các cảnh lái xe KITTI với độ sâu mật độ cao.
- KITTI: Các cảnh lái xe tự hành ngoài trời trong thế giới thực với độ sâu Velodyne LiDAR, đồng thời là điểm chuẩn KITTI Eigen.
- ImageNet (pseudo-labeled): Các hình ảnh ImageNet-1K với nhãn giả Depth Anything 3 để chưng cất.
- NYU Depth V2: Benchmark độ sâu trong nhà tiêu chuẩn, được thu thập bằng Microsoft Kinect v1.
- ETH3D: Điểm chuẩn máy quét laser trong nhà và ngoài trời độ chính xác cao.
- Make3D: Điểm chuẩn khuôn viên ngoài trời ngoài phân phối.
- iBims-1: Điểm chuẩn trong nhà chất lượng cao cho các cạnh độ sâu và bề mặt phẳng.
Classification#
Image classification là một tác vụ computer vision, bao gồm việc phân loại ảnh vào một hoặc nhiều lớp hay danh mục được định nghĩa trước dựa trên nội dung hình ảnh.
- Caltech 101: Dataset chứa hình ảnh của 101 danh mục đối tượng cho các tác vụ image classification.
- Caltech 256: Phiên bản mở rộng của Caltech 101 với 256 danh mục đối tượng và hình ảnh thách thức hơn.
- CIFAR-10: Dataset gồm 60K ảnh màu kích thước 32x32 thuộc 10 lớp, với 6K ả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 ảnh cho mỗi lớp.
- Fashion-MNIST: Dataset gồm 70.000 ảnh grayscale thuộc 10 danh mục thời trang cho các tác vụ image classification.
- ImageNet: Dataset quy mô lớn dành cho object detection và image classification, với hơn 14 triệu ảnh và 20.000 danh mục.
- ImageNet-10: Tập con nhỏ hơn của ImageNet với 10 danh mục, phục vụ thử nghiệm và kiểm thử nhanh hơn.
- Imagenette: Tập con nhỏ hơn của ImageNet, chứa 10 lớp dễ phân biệt để training và kiểm thử nhanh hơn.
- Imagewoof: Tập con thách thức hơn của ImageNet, chứa 10 danh mục giống chó cho các tác vụ image classification.
- MNIST: Dataset gồm 70.000 ảnh grayscale chữ số viết tay cho các tác vụ image classification.
- MNIST160: 8 ảnh đầu tiên của mỗi chữ số (0-9) từ cả hai phần train và test của MNIST. Dataset có tổng cộng 160 ảnh.
Ước tính tư thế#
Pose estimation là kỹ thuật được sử dụng để xác định pose của đối tượng so với camera hoặc hệ tọa độ thế giới. Kỹ thuật này bao gồm việc xác định các điểm chính hoặc khớp trên đối tượng, đặc biệt là người hoặc động vật.
- COCO: Dataset quy mô lớn với annotation pose người, được thiết kế cho các tác vụ pose estimation.
- COCO8-pose: Dataset nhỏ hơn dành cho các tác vụ pose estimation, chứa một tập con gồm 8 ảnh COCO có annotation pose người.
- Dog-pose: Dataset toàn diện gồm khoảng 8.500 ảnh tập trung vào chó, được annotation với 24 keypoint cho mỗi con chó, phục vụ các tác vụ pose estimation.
- Hand-Keypoints: Dataset cô đọng gồm hơn 26.000 ảnh tập trung vào bàn tay người, được annotation với 21 keypoint cho mỗi bàn tay, phục vụ các tác vụ pose estimation.
- Tiger-pose: Dataset nhỏ gọn gồm 263 ảnh tập trung vào hổ, được annotation với 12 keypoint cho mỗi con hổ để phục vụ các tác vụ pose estimation.
Bounding box định hướng (OBB)#
Bounding box định hướng (OBB) là một phương pháp trong computer vision để phát hiện các đối tượng nghiêng trong ảnh bằng bounding box xoay, thường được áp dụng cho ảnh chụp từ trên không và ảnh vệ tinh. Khác với 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: Dataset ảnh chụp từ trên không OBB phổ biến với 1.7 triệu instance và 11.268 ảnh.
- DOTA8: Tập con nhỏ hơn gồm 8 ảnh đầu tiên từ tập split DOTAv1, trong đó 4 ảnh dùng cho training và 4 ảnh dùng cho validation, phù hợp cho các bài test nhanh.
- DOTA128: Tập con 128 ảnh của dataset DOTA, gồm 128 ảnh dùng cho training và validation, 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.
Đóng góp Datasets mới#
Việc đóng góp một dataset mới bao gồm nhiều bước nhằm bảo đảm dataset tương thích tốt với 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 Dataset mới#
-
Thu thập ảnh: Tập hợp các ảnh thuộc dataset. Bạn có thể thu thập ảnh 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 mình.
-
Annotation ảnh: Annotation các ảnh này bằng bounding box, segment hoặc keypoint, tùy theo tác vụ.
-
Export Annotation: Chuyển đổi các annotation sang định dạng file YOLO
*.txtđược Ultralytics hỗ trợ. -
Tổ chức Dataset: Sắp xếp dataset theo đúng cấu trúc thư mục. Bạn cần có các thư mục cấp cao nhất
images/vàlabels/, bên trong mỗi thư mục có các thư mục contrain/vàval/.dataset/ ├── images/ │ ├── train/ │ └── val/ └── labels/ ├── train/ └── val/ -
Tạo File
data.yaml: Trong thư mục gốc của dataset, tạo một filedata.yamlmô tả dataset, các lớp và những thông tin cần thiết khác. -
Tối ưu ảnh (Tùy chọn): Nếu muốn giảm kích thước dataset để xử lý hiệu quả hơn, bạn có thể tối ưu ảnh bằng đoạn code bên dưới. Đây không phải là yêu cầu bắt buộc nhưng được khuyến nghị để giảm kích thước dataset và tăng tốc độ download.
-
Nén Dataset: Nén toàn bộ thư mục dataset thành một file zip.
-
Tài liệu và PR: Tạo một trang tài liệu mô tả dataset và cách dataset tích hợp vào framework hiện có. Sau đó, gửi một Pull Request (PR). Tham khảo Hướng dẫn đóng góp cho Ultralytics để biết thêm chi tiết về cách gửi PR.
Code mẫu để tối ưu và nén Dataset#
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 các bước này, bạn có thể đóng góp một dataset mới tích hợp tốt với cấu trúc hiện có của Ultralytics.
FAQ#
Ultralytics hỗ trợ nhiều dataset cho object detection, bao gồm:
- COCO: Dataset quy mô lớn dành cho object detection, segmentation và tạo chú thích, với 80 danh mục đối tượng.
- LVIS: Dataset mở rộng với 1203 danh mục đối tượng, được thiết kế cho object detection và segmentation chi tiết hơn.
- Argoverse: Dataset chứa dữ liệu tracking 3D và dự báo chuyển động từ các môi trường đô thị, kèm annotation phong phú.
- VisDrone: Dataset chứa dữ liệu object detection và multi-object tracking từ hình ảnh do drone ghi lại.
- SKU-110K: Tập trung vào object detection dày đặc trong môi trường bán lẻ, với hơn 11K ảnh.
Các dataset này hỗ trợ training các model Ultralytics YOLO mạnh mẽ cho nhiều ứng dụng object detection.
Việc đóng góp một dataset mới bao gồm nhiều bước:
- Thu thập ảnh: Tập hợp ảnh từ các cơ sở dữ liệu công khai hoặc bộ sưu tập cá nhân.
- Annotation ảnh: Gắn bounding box, segment hoặc keypoint, tùy theo tác vụ.
- Export Annotation: Chuyển đổi annotation sang định dạng YOLO
*.txt. - Tổ chức Dataset: Sử dụng cấu trúc thư mục gồm 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 File
data.yaml: Bao gồm mô tả dataset, các lớp và những thông tin liên quan khác. - Tối ưu ảnh (Tùy chọn): Giảm kích thước dataset để tăng hiệu quả.
- Nén Dataset: Nén dataset thành một file zip.
- Tài liệu và PR: Mô tả dataset và gửi một Pull Request theo Hướng dẫn đóng góp cho Ultralytics.
Truy cập Đóng góp Datasets mới để xem hướng dẫn toàn diện.
Ultralytics Platform cung cấp các tính năng mạnh mẽ để quản lý và phân tích dataset, bao gồm:
- Quản lý Dataset liền mạch: Upload, sắp xếp và quản lý dataset tại một nơi.
- Tích hợp Training ngay lập tức: Sử dụng trực tiếp dataset đã upload để training model mà không cần thiết lập bổ sung.
- Công cụ trực quan hóa: Khám phá và trực quan hóa hình ảnh cùng chú thích trong bộ dữ liệu của bạn.
- Phân tích bộ dữ liệu: Nắm bắt thông tin chi tiết về phân phối và đặc điểm của bộ dữ liệu.
Nền tảng này đơn giản hóa quá trình chuyển đổi từ quản lý bộ 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ề Bộ dữ liệu trên Ultralytics Platform.
Các model 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 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 đoạn instance, phân đoạn ngữ nghĩa, ước lượng độ sâu, phân loại và ước lượng tư thế trong một framework thống nhất.
- Model được huấn luyện trước: Truy cập các model được huấn luyện trước có hiệu suất cao cho nhiều ứng dụng, giúp giảm thời gian huấn luyện.
- Hỗ trợ cộng đồng toàn diện: 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à workflow hiện có.
Khám phá thêm về các model YOLO trên trang Model Ultralytics.
Để tối ưu hóa và nén bộ dữ liệu thành tệp zip bằng các công cụ Ultralytics, hãy làm theo đoạn code mẫu này:
Tối ưu và nén Datasetfrom 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ăng tốc độ tải xuống. Tìm hiểu thêm về cách Tối ưu hóa và nén bộ dữ liệu thành tệp zip.