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

Tổng quan về bộ dữ liệu phân đoạn phiên bản

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

Ultralytics YOLO định dạng

Định dạng nhãn tập dữ liệu được sử dụng để đào tạo YOLO Mô hình phân khúc như sau:

  1. Một tệp văn bản cho mỗi hình ảnh: Mỗi hình ảnh trong tập dữ liệu có một tệp văn bản tương ứng có cùng tên với tệp hình ảnh và phần mở rộng ".txt".
  2. Một hàng trên mỗi đối tượng: Mỗi hàng trong tệp văn bản tương ứng với một đối tượng trong hình ảnh.
  3. Thông tin đối tượng trên mỗi hàng: Mỗi hàng chứa thông tin sau về phiên bản đối tượng:
    • Chỉ mục lớp đối tượng: Một số nguyên đại diện cho lớp của đối tượng (ví dụ: 0 cho người, 1 cho xe hơi, v.v.).
    • Tọa độ giới hạn đối tượng: Tọa độ giới hạn xung quanh khu vực mặt nạ, được chuẩn hóa là từ 0 đến 1.

Định dạng cho một hàng trong tệp tập dữ liệu phân đoạn như sau:

<class-index> <x1> <y1> <x2> <y2> ... <xn> <yn>

Ở định dạng này, <class-index> là chỉ mục của lớp cho đối tượng, và <x1> <y1> <x2> <y2> ... <xn> <yn> là tọa độ giới hạn của mặt nạ phân đoạn của đối tượng. Các tọa độ được ngăn cách bởi các khoảng trắng.

Dưới đây là một ví dụ về YOLO Định dạng tập dữ liệu cho một hình ảnh với hai đối tượng được tạo thành từ một phân đoạn 3 điểm và một phân đoạn 5 điểm.

0 0.681 0.485 0.670 0.487 0.676 0.487
1 0.504 0.000 0.501 0.004 0.498 0.004 0.493 0.010 0.492 0.0104

Mẹo

  • Chiều dài của mỗi hàng không nhất thiết phải bằng nhau.
  • Mỗi nhãn phân đoạn phải có một Tối thiểu 3 điểm XY: <class-index> <x1> <y1> <x2> <y2> <x3> <y3>

Định dạng YAML tập dữ liệu

Các Ultralytics framework sử dụng định dạng tệp YAML để xác định tập dữ liệu và cấu hình mô hình để đào tạo Mô hình phát hiện. Dưới đây là ví dụ về định dạng YAML được sử dụng để xác định tập dữ liệu phát hiện:

# 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-seg  # 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

Các trainval Các trường chỉ định đường dẫn đến các thư mục chứa hình ảnh đào tạo và xác thực tương ứng.

names là một từ điển tên lớp. Thứ tự của các tên phải khớp với thứ tự của các chỉ số lớp đối tượng trong YOLO tệp tập dữ liệu.

Sử dụng

Ví dụ

from ultralytics import YOLO

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

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

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

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

  • COCO: Một bộ dữ liệu toàn diện để phát hiện, phân đoạn và chú thích đối tượng, bao gồm hơn 200 nghìn hình ảnh được gắn nhãn trên nhiều danh mục.
  • COCO8-seg: Một tập hợp con nhỏ gọn, 8 hình ảnh của COCO được thiết kế để kiểm tra nhanh đào tạo mô hình phân đoạn, lý tưởng cho việc kiểm tra CI và xác thực quy trình làm việc trong ultralytics Kho.
  • Carparts-seg: Một bộ dữ liệu chuyên biệt tập trung vào phân khúc các bộ phận xe hơi, lý tưởng cho các ứng dụng ô tô. Nó bao gồm một loạt các loại xe với chú thích chi tiết của các thành phần xe hơi riêng lẻ.
  • Crack-seg: Một bộ dữ liệu được thiết kế riêng cho việc phân đoạn các vết nứt trên các bề mặt khác nhau. Cần thiết cho việc bảo trì cơ sở hạ tầng và kiểm soát chất lượng, nó cung cấp hình ảnh chi tiết cho các mô hình đào tạo để xác định các điểm yếu về cấu trúc.
  • Package-seg: Một bộ dữ liệu dành riêng cho việc phân đoạn các loại vật liệu và hình dạng đóng gói khác nhau. Nó đặc biệt hữu ích cho hậu cần và tự động hóa kho, hỗ trợ phát triển các hệ thống xử lý và phân loại gói hàng.

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ân đoạ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/", use_segments=True)

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.

Tự động chú thích

Tự động chú thích là một tính năng thiết yếu cho phép bạn tạo tập dữ liệu phân đoạn bằng mô hình phát hiện được đào tạo trước. Nó cho phép bạn chú thích nhanh chóng và chính xác một số lượng lớn hình ảnh mà không cần dán nhãn thủ công, tiết kiệm thời gian và công sức.

Tạo tập dữ liệu phân đoạn bằng mô hình phát hiện

Để tự động chú thích tập dữ liệu của bạn bằng cách sử dụng Ultralytics framework, bạn có thể sử dụng auto_annotate Chức năng như hình dưới đây:

Ví dụ

from ultralytics.data.annotator import auto_annotate

auto_annotate(data="path/to/images", det_model="yolov8x.pt", sam_model="sam_b.pt")
Lý lẽ Kiểu Sự miêu tả Mặc định
data str Đường dẫn đến thư mục chứa hình ảnh cần chú thích. None
det_model str, optional Đào tạo trước YOLO mô hình phát hiện. Mặc định là 'yolov8x.pt'. 'yolov8x.pt'
sam_model str, optional Đào tạo trước SAM mô hình phân khúc. Mặc định là 'sam_b.pt'. 'sam_b.pt'
device str, optional Thiết bị để chạy các mô hình trên. Mặc định là một chuỗi trống (CPU hoặc GPU, nếu có). ''
output_dir str or None, optional Thư mục để lưu các kết quả được chú thích. Mặc định là một 'labels' thư mục trong cùng thư mục với 'data'. None

Các auto_annotate Chức năng lấy đường dẫn đến hình ảnh của bạn, cùng với các đối số tùy chọn để chỉ định phát hiện được đào tạo trước và SAM Mô hình phân khúc, thiết bị để chạy các mô hình và thư mục đầu ra để lưu kết quả được chú thích.

Bằng cách tận dụng sức mạnh của các mô hình được đào tạo trước, chú thích tự động có thể giảm đáng kể thời gian và công sức cần thiết để tạo bộ dữ liệu phân đoạn chất lượng cao. Tính năng này đặc biệt hữu ích cho các nhà nghiên cứu và nhà phát triển làm việc với các bộ sưu tập hình ảnh lớn, vì nó cho phép họ tập trung vào phát triển và đánh giá mô hình thay vì chú thích thủ công.



Created 2023-11-12, Updated 2024-06-06
Authors: Burhan-Q (1), glenn-jocher (11)

Ý kiến