Bỏ qua nội dung

Tổng quan về bộ dữ liệu phân đoạn trường hợp

Đị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 đoạn 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 cho mỗi đối tượng: Mỗi hàng trong tệp văn bản tương ứng với một trường hợp đối tượng trong hình ảnh.
  3. Thông tin đối tượng theo từng hàng: Mỗi hàng chứa thông tin sau về phiên bản đối tượng:
    • Chỉ số lớp đối tượng: Một số nguyên biểu diễn lớp của đối tượng (ví dụ: 0 cho người, 1 cho ô tô, v.v.).
    • Tọa độ giới hạn đối tượng: Tọa độ giới hạn xung quanh vùng mặt nạ, được chuẩn hóa ở mức từ 0 đến 1.

Định dạng cho một hàng riêng lẻ trong 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ỉ số 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 phân tách bằng dấu cách.

Đây là một ví dụ về YOLO định dạng tập dữ liệu cho một hình ảnh duy nhất với hai đối tượng bao gồm 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

  • Độ dài của mỗi hàng không cần 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 của 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. Sau đâ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 tin dữ liệu.

Cách sử dụng

Ví dụ

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-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 segment train data=coco8-seg.yaml model=yolo11n-seg.pt epochs=100 imgsz=640

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-phân đoạn: Một tập hợp con 8 hình ảnh nhỏ gọn của COCO được thiết kế để kiểm tra nhanh quá trình đào tạo mô hình phân đoạn, lý tưởng cho các kiểm tra CI và xác thực quy trình làm việc trong ultralytics kho lưu trữ.
  • 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 tập dữ liệu chuyên biệt tập trung vào phân khúc các bộ phận ô tô, lý tưởng cho các ứng dụng ô tô. Nó bao gồm nhiều loại xe có chú thích chi tiết về từng bộ phận ô tô.
  • Crack-seg : Một tập dữ liệu được thiết kế riêng để phân đoạn các vết nứt trên nhiều bề mặt khác nhau. Thiết yếu 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 điểm yếu về cấu trúc.
  • Package-seg : Một tập 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 bãi, 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 riêng 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 phần " Ultralytics YOLO "format". Chuyển đổi chú thích của bạn sang định dạng bắt buộc và chỉ định đường dẫn, số lượng 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 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 cách sử dụ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 lại 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 và tuân thủ các quy ước định dạng cần thiết hay không. Tập 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 một tập dữ liệu phân đoạn bằng cách sử dụ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 phải dán nhãn thủ công, tiết kiệm thời gian và công sức.

Tạo bộ dữ liệu phân đoạn bằng cách sử dụ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 khung, bạn có thể sử dụng auto_annotate chức năng như hiển thị bên dưới:

Ví dụ

from ultralytics.data.annotator import auto_annotate

auto_annotate(data="path/to/images", det_model="yolo11x.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 Đã được đà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 Đã được đào tạo trước SAM mô hình phân đoạn. 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 rỗ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à 'labels' thư mục trong cùng thư mục với 'data'. None

Các auto_annotate hàm này sẽ đưa đườ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 đoạn, thiết bị để chạy 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 các tập 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.

CÂU HỎI THƯỜNG GẶP

Định dạng tập dữ liệu nào Ultralytics YOLO hỗ trợ phân đoạn ví dụ?

Ultralytics YOLO hỗ trợ một số định dạng tập dữ liệu ví dụ như phân đoạn, với định dạng chính là định dạng riêng của nó 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ỗi đối tượng một hà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 thế nào tôi có thể 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 sang YOLO định dạng là đơn giản sử dụng Ultralytics công cụ. Bạn có thể sử dụng convert_coco chức năng từ ultralytics.data.converter mô-đun:

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 các chú thích cần thiết 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 thế nào để tôi chuẩn bị một tập tin YAML để đào tạo Ultralytics YOLO mô hình?

Để chuẩn bị một tệp YAML để đào tạo YOLO các 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. Sau đâ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 mình. Để biết thêm thông tin, hãy kiểm tra phần Định dạng YAML của tập dữ liệu .

Tính năng chú thích tự động 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 dán nhãn thủ công. Bạn có thể sử dụng auto_annotate hoạt độ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, giúp quá trình này nhanh hơn và hiệu quả hơn. Để biết thêm chi tiết, hãy khám phá phần Tự động chú thích .

📅 Được tạo ra cách đây 1 năm ✏️ Đã cập nhật cách đây 2 tháng

Bình luận