Link to this sectionTổ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, instance segmentation, phân đoạn ngữ nghĩa (semantic segmentation), ước tính tư thế (pose estimation), phân loại (classification) và theo dõi đa đối tượng (multi-object tracking). Dưới đây là danh sách các bộ 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 bộ dữ liệu tương ứng.
Watch: Ultralytics Datasets Overview
Link to this sectionObject Detection#
Bounding box object detection là một kỹ thuật thị giác máy tính liên quan đến việc phát hiện và xác định vị trí đối tượng trong ảnh bằng cách vẽ một khung bao quanh từng đối tượng.
- African-wildlife: Một bộ dữ liệu gồm cá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.
- Argoverse: Một bộ 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 chú thích phong phú.
- 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 các 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 bộ dữ liệu quy mô lớn về phát hiện đối tượng, phân đoạn 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 4 hình ảnh đầu tiên từ tập huấn luyện COCO và tập kiểm thử COCO, phù hợp cho các thử nghiệm 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 cho việc đá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 biết phổ.
- COCO128: Một tập con nhỏ hơn gồm 128 hình ảnh đầu tiên từ tập COCO train2017, phù hợp cho việc kiểm thử.
- Construction-PPE: Một bộ 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 chính như mũ bảo hộ, áo phản quang, 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 để tuân thủ quy định và bảo vệ người lao động.
- Global Wheat 2020: Một bộ dữ liệu chứa hình ảnh các bông lúa mì cho cuộc thi Global Wheat Challenge 2020.
- HomeObjects-3K: Một bộ dữ liệu về các cảnh trong nhà có chú thích gồm 12 vật dụng gia đình phổ biến, lý tưởng để phát triển và kiểm thử các model thị giác máy tính trong hệ thống nhà thông minh, robot và thực tế tăng cường.
- KITTI Mới: Một bộ dữ liệu lái xe tự hành nổi tiếng với các dữ liệu đầu vào stereo, LiDAR và GPS/IMU, được sử dụng cho phát hiện đối tượng 2D trong các cảnh đường phố đa dạng.
- LVIS: Một bộ dữ liệu quy mô lớn về phát hiện đối tượng, phân đoạn và tạo chú thích với 1203 danh mục đối tượng.
- Medical-pills: Một bộ dữ liệu chứa hình ảnh có nhãn của 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 bộ dữ liệu chất lượng cao, quy mô lớn cho 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 kiểm thử.
- RF100: Một bộ tiêu 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á model toàn diện.
- Signature: Một bộ dữ liệu gồm hình ảnh các tài liệu khác nhau với chữ ký được chú thích, hỗ trợ nghiên cứu xác minh tài liệu và phát hiện gian lận.
- SKU-110K: Một bộ dữ liệu về phát hiện đối tượng mật độ cao 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 bộ 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 quay bằng 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) cho 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 ả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 chú thích.
Link to this sectionInstance Segmentation#
Instance segmentation 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 ảnh ở cấp độ pixel. Không giống như semantic segmentation 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: Bộ dữ liệu được xây dựng có mục đích để nhận diện phụ tùng xe, phục vụ cho các nhu cầu thiết kế, sản xuất và nghiên cứu. Nó được sử dụng cho cả tác vụ phát hiện đối tượng và phân đoạn.
- 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 đoạn và tạo chú thích với hơn 200 nghìn hình ảnh có nhãn.
- COCO8-seg: Một bộ dữ liệu nhỏ hơn cho các tác vụ instance segmentation, chứa một tập con gồm 8 hình ảnh COCO với các chú thích phân đoạn.
- COCO128-seg: Một bộ dữ liệu nhỏ hơn cho các tác vụ instance segmentation, chứa một tập con gồm 128 hình ảnh COCO với các chú thích phân đoạn.
- Crack-seg: Bộ dữ liệu được chế tạo cụ thể để phát hiện vết nứt trên đường và tường, áp dụng cho cả tác vụ phát hiện đối tượng và phân đoạn.
- Package-seg: Bộ dữ liệu được thiết kế riêng để nhận diện các gói hàng trong 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 đoạn.
Link to this sectionSemantic Segmentation#
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: Bộ dữ liệu semantic segmentation 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 cho các kiểm tra nhanh quy trình semantic segmentation.
- ADE20K: Bộ dữ liệu phân tích cảnh với 150 lớp ngữ nghĩa.
Link to this sectionPose Estimation#
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 bộ dữ liệu quy mô lớn với các chú thích tư thế con người được thiết kế cho các tác vụ pose estimation.
- COCO8-pose: Một bộ dữ liệu nhỏ hơn cho các tác vụ pose estimation, chứa một tập con gồm 8 hình ảnh COCO với các chú thích tư thế con người.
- Dog-pose: Một bộ dữ liệu toàn diện bao gồm khoảng 8.500 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ụ pose estimation.
- Hand-Keypoints: Một bộ 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 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ụ pose estimation.
- 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ụ pose estimation.
Link to this sectionClassification#
Image classification là một tác vụ thị giác máy tính bao gồm 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 hình ảnh 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 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 bộ 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 bộ 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 bộ 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 con nhỏ hơn của ImageNet với 10 danh mục để thử nghiệm và kiểm thử nhanh hơn.
- Imagenette: Một tậ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 thử nhanh hơn.
- Imagewoof: Một tậ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 bộ 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 chữ số (0-9) từ cả tập huấn luyện và tập kiểm thử MNIST. Bộ dữ liệu chứa tổng cộng 160 hình ảnh.
Link to this sectionOriented 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 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 bộ dữ liệu ảnh hàng không OBB phổ biến với 1,7 triệu instance 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 chia DOTAv1, 4 cho huấn luyện và 4 cho kiểm thử, phù hợp cho các thử nghiệm nhanh.
- DOTA128: Một tập con 128 hình ảnh của bộ dữ liệu DOTA với 128 hình ảnh để huấn luyện và kiểm thử, mang lại sự cân bằng tốt giữa kích thước và tính đa dạng cho việc kiểm thử các model OBB.
Link to this sectionMulti-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 bộ 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ú 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 phát hiện đối tượng và theo dõi đa đối tượng từ hình ảnh quay bằng máy bay không người lái với hơn 10 nghìn hình ảnh và chuỗi video.
Link to this sectionĐó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
Link to this sectionCá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ụ.
-
Xuất chú thích: Chuyển đổi các chú thích này sang định dạng tệp
*.txtYOLO mà Ultralytics hỗ trợ. -
Tổ chức 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ó 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 bộ dữ liệu, hãy tạo một tệpdata.yamlmô tả bộ 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.
-
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 khung làm việc hiện có. Sau đó, hãy gửi Pull Request (PR). Tham khảo Ultralytics Contribution Guidelines để biết thêm chi tiết về cách gửi PR.
Link to this sectionVí 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.
Link to this sectionCâu hỏi thường gặp#
Link to this sectionUltralytics hỗ trợ những bộ dữ liệu nào cho phát hiện đối tượng?#
Ultralytics hỗ trợ nhiều bộ dữ liệu khác nhau cho object detection, bao gồm:
- COCO: Một bộ dữ liệu quy mô lớn về phát hiện đối tượng, phân đoạn và tạo chú thích 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ế cho việc phát hiện và phân đoạn đối tượng tinh vi 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ừ các môi trường đô thị với chú thích phong phú.
- VisDrone: Một bộ 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 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 mật độ cao 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 huấn luyện các model Ultralytics YOLO mạnh mẽ cho các ứng dụng phát hiện đối tượng khác nhau.
Link to this sectionLàm thế nào để tôi đóng góp một bộ dữ liệu mới cho Ultralytics?#
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ụ.
- Xuất chú thích: Chuyển đổi chú thích sang định dạng
*.txtYOLO. - Tổ chức bộ 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ả bộ 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.
- Tài liệu và PR: Mô tả bộ dữ liệu của bạn và gửi Pull Request theo Ultralytics Contribution Guidelines.
Truy cập Contribute New Datasets để xem hướng dẫn đầy đủ.
Link to this sectionTại sao tôi nên sử dụng Ultralytics Platform cho bộ 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 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ề Tập dữ liệu trên Ultralytics Platform.
Link to this sectionNhững 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 nhiều 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 thực thể, phân đoạn ngữ nghĩa, 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.
Link to this sectionLàm thế nào để tôi có thể tối ưu hóa và nén 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 đoạn mã ví dụ 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 Tối ưu hóa và nén tập dữ liệu.