Bỏ để qua phần nội dung

Tổng quan về bộ dữ liệu phát hiện đối tượng

Đào tạo một mô hình phát hiện đối tượng mạnh mẽ và chính xác đòi hỏi một bộ dữ liệu toàn diện. Hướng dẫn này giới thiệu các định dạng khác nhau của bộ dữ liệu tương thích với Ultralytics YOLO mô hình hóa và cung cấp thông tin chi tiết về cấu trúc, cách sử dụng và cách chuyển đổi giữa các định dạng khác nhau.

Các định dạng tập dữ liệu được hỗ trợ

Ultralytics YOLO định dạng

Các Ultralytics YOLO Định dạng là định dạng cấu hình tập dữ liệu cho phép bạn xác định thư mục gốc tập dữ liệu, các đường dẫn tương đối đến các thư mục hình ảnh đào tạo / xác nhận / thử nghiệm hoặc *.txt các tệp chứa đường dẫn hình ảnh và từ điển tên lớp. Đây là một ví dụ:

# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: ../datasets/coco8  # dataset root dir
train: images/train  # train images (relative to 'path') 4 images
val: images/val  # val images (relative to 'path') 4 images
test:  # test images (optional)

# Classes (80 COCO classes)
names:
  0: person
  1: bicycle
  2: car
  # ...
  77: teddy bear
  78: hair drier
  79: toothbrush

Nhãn cho định dạng này phải được xuất sang YOLO định dạng với một *.txt tập tin cho mỗi hình ảnh. Nếu không có đối tượng trong một hình ảnh, không *.txt tập tin là bắt buộc. Các *.txt Tệp phải được định dạng với một hàng cho mỗi đối tượng trong class x_center y_center width height định dạng. Tọa độ hộp phải ở trong XYWH chuẩn hóa định dạng (từ 0 đến 1). Nếu hộp của bạn ở dạng pixel, bạn nên chia x_centerwidth theo chiều rộng hình ảnh và y_centerheight theo chiều cao hình ảnh. Số lớp phải được lập chỉ mục bằng 0 (bắt đầu bằng 0).

Ví dụ về hình ảnh được gắn nhãn

Tệp nhãn tương ứng với hình trên chứa 2 người (lớp 0) và cà vạt (lớp 27):

Tệp nhãn mẫu

Khi sử dụng Ultralytics YOLO định dạng, sắp xếp hình ảnh và nhãn đào tạo và xác nhận của bạn như thể hiện trong ví dụ tập dữ liệu COCO8 bên dưới.

Cấu trúc thư mục tập dữ liệu mẫu

Sử dụng

Dưới đây là cách bạn có thể sử dụng các định dạng này để huấn luyện mô hình của mình:

Ví dụ

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo detect train data=coco8.yaml model=yolov8n.pt epochs=100 imgsz=640

Bộ dữ liệu được hỗ trợ

Dưới đây là danh sách các bộ dữ liệu được hỗ trợ và mô tả ngắn gọn cho từng bộ dữ liệu:

  • 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: Đối tượng phổ biến trong ngữ cảnh (COCO) là bộ dữ liệu phát hiện, phân đoạn và chú thích đối tượng quy mô lớn với 80 danh mục đối tượng.
  • LVIS: Bộ dữ liệu phát hiện, phân đoạn và tạo phụ đề đố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ừ tàu COCO và COCO val, phù hợp để kiểm tra nhanh.
  • Lúa mì toàn cầu 2020: Bộ dữ liệu chứa hình ảnh đầu lúa mì cho Thử thách lúa mì toàn cầu 2020.
  • Objects365: 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 600K 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 xe lửa và 42k hình ảnh xác thực.
  • SKU-110K: Một bộ 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 11K hình ảnh và 1,7 triệu hộp giới hạn.
  • 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 chụp bằng máy bay không người lái với hơn 10K 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 11K hình ảnh.
  • xView: Một bộ dữ liệu để phát hiện đối tượng trong hình ảnh 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.
  • Roboflow 100: Điểm chuẩn phát hiện đối tượng đa dạng với 100 bộ dữ liệu trải dài trên bảy miền hình ảnh để đánh giá mô hình toàn diện.
  • Khối u não: Một bộ 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 các chi tiết về sự hiện diện, vị trí và đặc điểm của khối u.
  • Động vật hoang dã châu Phi: Một bộ dữ liệu có hình ảnh của động vật hoang dã châu Phi, bao gồm trâu, voi, tê giác và ngựa vằn.
  • Chữ ký: Một bộ dữ liệu có hình ảnh của 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.

Thêm tập dữ liệu của riêng bạn

Nếu bạn có tập dữ liệu của riêng mình và muốn sử dụng nó để đào tạo các mô hình phát hiện với Ultralytics YOLO định dạng, đảm bảo rằng nó tuân theo định dạng được chỉ định ở trên trong "Ultralytics YOLO định dạng". Chuyển đổi chú thích của bạn sang định dạng yêu cầu và chỉ định đường dẫn, số lớp và tên lớp trong tệp cấu hình YAML.

Cổng hoặc chuyển đổi định dạng nhãn

Định dạng tập dữ liệu COCO thành YOLO Định dạng

Bạn có thể dễ dàng chuyển đổi nhãn từ định dạng tập dữ liệu COCO phổ biến sang YOLO định dạng bằng đoạn mã sau:

Ví dụ

from ultralytics.data.converter import convert_coco

convert_coco(labels_dir="path/to/coco/annotations/")

Công cụ chuyển đổi này có thể được sử dụng để chuyển đổi tập dữ liệu COCO hoặc bất kỳ tập dữ liệu nào ở định dạng COCO sang Ultralytics YOLO định dạng.

Hãy nhớ kiểm tra kỹ xem tập dữ liệu bạn muốn sử dụng có tương thích với mô hình của bạn hay không và tuân theo các quy ước định dạng cần thiết. Các bộ dữ liệu được định dạng đúng là rất quan trọng để đào tạo các mô hình phát hiện đối tượng thành công.



Created 2023-11-12, Updated 2024-06-02
Authors: glenn-jocher (9), RizwanMunawar (2), IvorZhu331 (1), Laughing-q (1)

Ý kiến