Tổng quan về tập dữ liệu phân loại hình ảnh

Cấu trúc tập dữ liệu cho các tác vụ phân loại YOLO

Đối với các tác vụ phân loại YOLO của Ultralytics, tập dữ liệu phải được tổ chức theo cấu trúc thư mục phân tách cụ thể nằm trong thư mục root để tạo điều kiện thuận lợi cho các quy trình huấn luyện, kiểm thử và xác thực tùy chọn. Cấu trúc này bao gồm các thư mục riêng biệt cho các giai đoạn huấn luyện (train) và kiểm thử (test), cùng với một thư mục tùy chọn cho xác thực (val).

Mỗi thư mục này nên chứa một thư mục con cho mỗi lớp trong tập dữ liệu. Các thư mục con được đặt tên theo lớp tương ứng và chứa tất cả hình ảnh cho lớp đó. Đảm bảo rằng mỗi tệp hình ảnh được đặt tên duy nhất và lưu trữ ở định dạng phổ biến như JPEG hoặc PNG.

Ví dụ về cấu trúc thư mục

Hãy xem xét tập dữ liệu CIFAR-10 như một ví dụ. Cấu trúc thư mục sẽ trông như sau:

cifar-10-/
|
|-- train/
|   |-- airplane/
|   |   |-- 10008_airplane.png
|   |   |-- 10009_airplane.png
|   |   |-- ...
|   |
|   |-- automobile/
|   |   |-- 1000_automobile.png
|   |   |-- 1001_automobile.png
|   |   |-- ...
|   |
|   |-- bird/
|   |   |-- 10014_bird.png
|   |   |-- 10015_bird.png
|   |   |-- ...
|   |
|   |-- ...
|
|-- test/
|   |-- airplane/
|   |   |-- 10_airplane.png
|   |   |-- 11_airplane.png
|   |   |-- ...
|   |
|   |-- automobile/
|   |   |-- 100_automobile.png
|   |   |-- 101_automobile.png
|   |   |-- ...
|   |
|   |-- bird/
|   |   |-- 1000_bird.png
|   |   |-- 1001_bird.png
|   |   |-- ...
|   |
|   |-- ...
|
|-- val/ (optional)
|   |-- airplane/
|   |   |-- 105_airplane.png
|   |   |-- 106_airplane.png
|   |   |-- ...
|   |
|   |-- automobile/
|   |   |-- 102_automobile.png
|   |   |-- 103_automobile.png
|   |   |-- ...
|   |
|   |-- bird/
|   |   |-- 1045_bird.png
|   |   |-- 1046_bird.png
|   |   |-- ...
|   |
|   |-- ...

Phương pháp tiếp cận có cấu trúc này đảm bảo rằng mô hình có thể học hỏi một cách hiệu quả từ các lớp được tổ chức tốt trong giai đoạn huấn luyện và đánh giá chính xác hiệu suất trong các giai đoạn kiểm thử và xác thực.

Cách sử dụng

Ví dụ
from ultralytics import YOLO

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

# Train the model
results = model.train(data="path/to/dataset", epochs=100, imgsz=640)
Mẹo

Hầu hết các tên tập dữ liệu tích hợp sẵn (ví dụ: cifar10, imagenette hoặc mnist160) sẽ tự động tải xuống và lưu vào bộ nhớ đệm dữ liệu trong lần đầu tiên bạn tham chiếu chúng. Chỉ trỏ data đến đường dẫn thư mục khi bạn đã tự xây dựng tập dữ liệu tùy chỉnh.

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

Ultralytics hỗ trợ các tập dữ liệu sau với tính năng tự động tải xuống:

  • Caltech 101: Một tập dữ liệu chứa hình ảnh của 101 danh mục đối tượng cho các tác vụ phân loại hình ảnh.
  • Caltech 256: Phiên bản mở rộng của Caltech 101 với 256 danh mục đối tượng và nhiều hình ảnh thử thách hơn.
  • CIFAR-10: Một tập dữ liệu gồm 60K hình ảnh màu 32x32 thuộc 10 lớp, với 6K hình ảnh mỗi lớp.
  • CIFAR-100: Phiên bản mở rộng của CIFAR-10 với 100 danh mục đối tượng và 600 hình ảnh mỗi lớp.
  • Fashion-MNIST: Một tập dữ liệu bao gồm 70.000 hình ảnh thang độ xám thuộc 10 danh mục thời trang cho các tác vụ phân loại hình ảnh.
  • ImageNet: Một tập dữ liệu quy mô lớn cho phát hiện đối tượng và phân loại hình ảnh với hơn 14 triệu hình ảnh và 20.000 danh mục.
  • ImageNet-10: Một tập hợp con nhỏ hơn của ImageNet với 10 danh mục để thử nghiệm và kiểm thử nhanh hơn.
  • Imagenette: Một tập hợp con nhỏ hơn của ImageNet chứa 10 lớp dễ phân biệt để huấn luyện và kiểm thử nhanh hơn.
  • Imagewoof: Một tập hợp con đầy thử thách hơn của ImageNet chứa 10 danh mục giống chó cho các tác vụ phân loại hình ảnh.
  • MNIST: Một tập dữ liệu gồm 70.000 hình ảnh thang độ xám của các chữ số viết tay cho các tác vụ phân loại hình ảnh.
  • MNIST160: 8 hình ảnh đầu tiên của mỗi danh mục MNIST từ tập dữ liệu MNIST. Tập dữ liệu chứa tổng cộng 160 hình ảnh.

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ó để huấn luyện các mô hình phân loại với Ultralytics YOLO, hãy đảm bảo rằng nó tuân theo định dạng được chỉ định ở trên trong phần "Cấu trúc tập dữ liệu" và sau đó trỏ tham số data của bạn đến thư mục tập dữ liệu khi khởi tạo tập lệnh huấn luyện.

Câu hỏi thường gặp (FAQ)

Làm cách nào để cấu trúc tập dữ liệu cho các tác vụ phân loại YOLO?

Để cấu trúc tập dữ liệu cho các tác vụ phân loại Ultralytics YOLO, bạn nên tuân theo định dạng thư mục phân tách cụ thể. Hãy tổ chức tập dữ liệu của bạn thành các thư mục riêng biệt cho train, test và tùy chọn là val. Mỗi thư mục này nên chứa các thư mục con được đặt tên theo mỗi lớp, với các hình ảnh tương ứng bên trong. Điều này tạo điều kiện thuận lợi cho các quy trình huấn luyện và đánh giá suôn sẻ. Để biết ví dụ, hãy xem xét định dạng tập dữ liệu CIFAR-10:

cifar-10-/
|-- train/
|   |-- airplane/
|   |-- automobile/
|   |-- bird/
|   ...
|-- test/
|   |-- airplane/
|   |-- automobile/
|   |-- bird/
|   ...
|-- val/ (optional)
|   |-- airplane/
|   |-- automobile/
|   |-- bird/
|   ...

Để biết thêm chi tiết, hãy truy cập phần Cấu trúc tập dữ liệu cho các tác vụ phân loại YOLO.

Những tập dữ liệu nào được Ultralytics YOLO hỗ trợ cho phân loại hình ảnh?

Ultralytics YOLO hỗ trợ tự động tải xuống một số tập dữ liệu để phân loại hình ảnh, bao gồm Caltech 101, Caltech 256, CIFAR-10, CIFAR-100, Fashion-MNIST, ImageNet, ImageNet-10, Imagenette, ImagewoofMNIST. Các tập dữ liệu này được cấu trúc theo cách giúp chúng dễ dàng sử dụng với YOLO. Trang của mỗi tập dữ liệu cung cấp thêm chi tiết về cấu trúc và ứng dụng của nó.

Làm cách nào để thêm tập dữ liệu của riêng tôi cho phân loại hình ảnh YOLO?

Để sử dụng tập dữ liệu của riêng bạn với Ultralytics YOLO, hãy đảm bảo rằng nó tuân theo định dạng thư mục được chỉ định cần thiết cho tác vụ phân loại, với các thư mục train, test riêng biệt và tùy chọn là val, cùng các thư mục con cho mỗi lớp chứa các hình ảnh tương ứng. Khi tập dữ liệu của bạn đã được cấu trúc chính xác, hãy trỏ tham số data đến thư mục gốc của tập dữ liệu khi khởi tạo tập lệnh huấn luyện. Đây là ví dụ trong Python:

from ultralytics import YOLO

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

# Train the model
results = model.train(data="path/to/your/dataset", epochs=100, imgsz=640)

Thông tin chi tiết có thể được tìm thấy trong phần Thêm tập dữ liệu của riêng bạn.

Tại sao tôi nên sử dụng Ultralytics YOLO để phân loại hình ảnh?

Ultralytics YOLO mang lại một số lợi ích cho việc phân loại hình ảnh, bao gồm:

  • Mô hình được huấn luyện trước: Tải các mô hình được huấn luyện trước như yolo26n-cls.pt để khởi động nhanh quy trình huấn luyện của bạn.
  • Dễ sử dụng: API và các lệnh CLI đơn giản cho việc huấn luyện và đánh giá.
  • Hiệu suất cao: Độ chính xác và tốc độ hiện đại, lý tưởng cho các ứng dụng thời gian thực.
  • Hỗ trợ cho nhiều tập dữ liệu: Tích hợp liền mạch với nhiều tập dữ liệu phổ biến như CIFAR-10, ImageNet và nhiều hơn nữa.
  • Cộng đồng và Hỗ trợ: Quyền truy cập vào tài liệu phong phú và cộng đồng tích cực để khắc phục sự cố và cải tiến.

Để biết thêm thông tin chi tiết và các ứng dụng thực tế, bạn có thể khám phá Ultralytics YOLO.

Làm cách nào tôi có thể huấn luyện một mô hình bằng cách sử dụng Ultralytics YOLO?

Việc huấn luyện một mô hình bằng cách sử dụng Ultralytics YOLO có thể được thực hiện dễ dàng trong cả Python và CLI. Đây là một ví dụ:

Ví dụ
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-cls.pt")  # load a pretrained model

# Train the model
results = model.train(data="path/to/dataset", epochs=100, imgsz=640)

Các ví dụ này minh họa quy trình đơn giản để huấn luyện một mô hình YOLO bằng cách sử dụng một trong hai phương pháp. Để biết thêm thông tin, hãy truy cập phần Cách sử dụng và trang Huấn luyện cho các tác vụ phân loại.

Bình luận