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 tàu hỏ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.

FAQ

Cái gì Ultralytics YOLO Định dạng tập dữ liệu và cách cấu trúc nó?

Các Ultralytics YOLO Định dạng là một cấu hình có cấu trúc để xác định bộ dữ liệu trong các dự án đào tạo của bạn. Nó liên quan đến việc thiết lập các đường dẫn đến đào tạo, xác nhận và thử nghiệm hình ảnh và nhãn tương ứng của bạn. Chẳng hạn:

path: ../datasets/coco8  # dataset root directory
train: images/train  # training images (relative to 'path')
val: images/val  # validation images (relative to 'path')
test:  # optional test images
names:
  0: person
  1: bicycle
  2: car
  # ...

Nhãn được lưu trong *.txt các tệp có một tệp cho mỗi hình ảnh, được định dạng là class x_center y_center width height với tọa độ chuẩn hóa. Để biết hướng dẫn chi tiết, hãy xem Ví dụ về tập dữ liệu COCO8.

Làm cách nào để chuyển đổi tập dữ liệu COCO thành YOLO định dạng?

Bạn có thể chuyển đổi tập dữ liệu COCO thành YOLO định dạng bằng cách sử dụng Ultralytics công cụ chuyển đổi. Đây là một phương pháp nhanh chóng:

from ultralytics.data.converter import convert_coco

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

Mã này sẽ chuyển đổi chú thích COCO của bạn thành YOLO định dạng, cho phép tích hợp liền mạch với Ultralytics YOLO Mô hình. Để biết thêm chi tiết, hãy truy cập phần Cổng hoặc Chuyển đổi Định dạng Nhãn .

Những bộ dữ liệu nào được hỗ trợ bởi Ultralytics YOLO để phát hiện đối tượng?

Ultralytics YOLO Hỗ trợ một loạt các bộ dữ liệu, bao gồm:

Mỗi trang tập dữ liệu cung cấp thông tin chi tiết về cấu trúc và cách sử dụng được điều chỉnh cho hiệu quả YOLOv8 Đào tạo. Khám phá danh sách đầy đủ trong phần Tập dữ liệu được hỗ trợ .

Làm cách nào để bắt đầu đào tạo YOLOv8 Lập mô hình bằng tập dữ liệu của tôi?

Để bắt đầu đào tạo một YOLOv8 mô hình hóa, đảm bảo tập dữ liệu của bạn được định dạng chính xác và các đường dẫn được xác định trong tệp YAML. Sử dụng tập lệnh sau để bắt đầu đào tạo:

Ví dụ

from ultralytics import YOLO

model = YOLO("yolov8n.pt")  # Load a pretrained model
results = model.train(data="path/to/your_dataset.yaml", epochs=100, imgsz=640)
yolo detect train data=path/to/your_dataset.yaml model=yolov8n.pt epochs=100 imgsz=640

Tham khảo phần Sử dụng để biết thêm chi tiết về cách sử dụng các chế độ khác nhau, bao gồm CLI Lệnh.

Tôi có thể tìm các ví dụ thực tế về việc sử dụng ở đâu Ultralytics YOLO để phát hiện đối tượng?

Ultralytics Cung cấp nhiều ví dụ và hướng dẫn thực tế để sử dụng YOLOv8 trong các ứng dụng đa dạng. Để có cái nhìn tổng quan toàn diện, hãy truy cập Ultralytics Blog nơi bạn có thể tìm thấy các nghiên cứu điển hình, hướng dẫn chi tiết và câu chuyện cộng đồng giới thiệu khả năng phát hiện, phân đoạn đối tượng và hơn thế nữa với YOLOv8. Để biết các ví dụ cụ thể, hãy kiểm tra phần Sử dụng trong tài liệu.



Đã tạo 2023-11-12, Cập nhật 2024-07-04
Tác giả: glenn-jocher (10), RizwanMunawar (2), IvorZhu331 (1), Laughing-q (1)

Ý kiến