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:
- 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".
- 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.
- 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:
Ở đị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 train
và val
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ụ
Bộ dữ liệu được hỗ trợ
Bộ dữ liệu được hỗ trợ
- COCO : Một tập dữ liệu toàn diện để phát hiện đối tượng , phân đoạn và chú thích, bao gồm hơn 200.000 hình ảnh được gắn nhãn trên nhiều danh mục khác nhau.
- 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. - COCO128-seg : Một tập dữ liệu nhỏ hơn dành cho các tác vụ phân đoạn , bao gồm một tập hợp con gồm 128 hình ảnh COCO có chú thích phân đoạn.
- 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ụ
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ụ
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à 'yolo11x.pt' . | 'yolo11x.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.
FAQ
Định dạng tập dữ liệu làm gì Ultralytics YOLO Hỗ trợ phân đoạn phiên bản?
Ultralytics YOLO Hỗ trợ một số định dạng tập dữ liệu để phân đoạn phiên bản, với định dạng chính là định dạng riêng Ultralytics YOLO định dạng. Mỗi hình ảnh trong tập dữ liệu của bạn cần một tệp văn bản tương ứng với thông tin đối tượng được phân đoạn thành nhiều hàng (một hàng trên mỗi đối tượng), liệt kê chỉ mục lớp và tọa độ giới hạn chuẩn hóa. Để biết hướng dẫn chi tiết hơn về YOLO định dạng tập dữ liệu, hãy truy cập Tổng quan về tập dữ liệu phân đoạn phiên bản.
Làm cách nào để chuyển đổi chú thích tập dữ liệu COCO sang YOLO định dạng?
Chuyển đổi chú thích định dạng COCO thành YOLO Định dạng rất đơn giản bằng cách sử dụng Ultralytics Công cụ. Bạn có thể sử dụng convert_coco
hàm từ ultralytics.data.converter
Module:
from ultralytics.data.converter import convert_coco
convert_coco(labels_dir="path/to/coco/annotations/", use_segments=True)
Tập lệnh này chuyển đổi các chú thích tập dữ liệu COCO của bạn thành yêu cầu YOLO định dạng, làm cho nó phù hợp để đào tạo của bạn YOLO Mô hình. Để biết thêm chi tiết, hãy tham khảo Cổng hoặc Chuyển đổi Định dạng Nhãn.
Làm cách nào để chuẩn bị tệp YAML để đào tạo Ultralytics YOLO Mô hình?
Để chuẩn bị tệp YAML để đào tạo YOLO Mô hình với Ultralytics, bạn cần xác định đường dẫn tập dữ liệu và tên lớp. Dưới đây là ví dụ về cấu hình YAML:
path: ../datasets/coco8-seg # dataset root dir
train: images/train # train images (relative to 'path')
val: images/val # val images (relative to 'path')
names:
0: person
1: bicycle
2: car
# ...
Đảm bảo bạn cập nhật đường dẫn và tên lớp theo tập dữ liệu của bạn. Để biết thêm thông tin, hãy kiểm tra phần Định dạng YAML tập dữ liệu .
Tính năng tự động chú thích trong là gì Ultralytics YOLO?
Tự động chú thích trong Ultralytics YOLO Cho phép bạn tạo chú thích phân đoạn cho tập dữ liệu của mình bằng cách sử dụng mô hình phát hiện được đào tạo trước. Điều này làm giảm đáng kể nhu cầu ghi nhãn thủ công. Bạn có thể sử dụng auto_annotate
Chức năng như sau:
from ultralytics.data.annotator import auto_annotate
auto_annotate(data="path/to/images", det_model="yolo11x.pt", sam_model="sam_b.pt")
Chức năng này tự động hóa quá trình chú thích, làm cho nó nhanh hơn và hiệu quả hơn. Để biết thêm chi tiết, hãy khám phá phần Chú thích tự động .