YOLO Vision 2026:

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 của Ultralytics YOLO, 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 dưới thư mục root nhằm hỗ trợ thuận lợi cho quá 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à xác thực (val), cùng với một thư mục tùy chọn dành cho việc kiểm thử (test).

Mỗi thư mục này nên chứa một thư mục con cho từng 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à được 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 làm ví dụ. Cấu trúc thư mục sẽ có dạ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
|   |   |-- ...
|   |
|   |-- ...

Cách tiếp cận có cấu trúc này đảm bảo rằng model có thể học tập 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ụ như cifar10, imagenette hoặc mnist160) sẽ tự động tải xuống và lưu đệm dữ liệu trong lần đầu tiên bạn tham chiếu đến chúng. Hãy trỏ data đến một đường dẫn thư mục chỉ khi bạn đã tự chuẩn bị một 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 dành 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à các hình ảnh có độ thách thức cao hơn.
  • CIFAR-10: Một tập dữ liệu gồm 60.000 hình ảnh màu 32x32 thuộc 10 lớp, với 6.000 hình ảnh cho 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 cho 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 dành 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 dành cho phân hiện vật thể 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 con nhỏ hơn của ImageNet với 10 danh mục nhằm tăng tốc độ thử nghiệm và kiểm thử.
  • Imagenette: Một tập con nhỏ hơn của ImageNet chứa 10 lớp dễ phân biệt giúp quá trình huấn luyện và kiểm thử diễn ra nhanh hơn.
  • Imagewoof: Một tập con khó hơn của ImageNet chứa 10 danh mục giống loài chó dành 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 chữ số viết tay dành 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 chữ số (0-9) từ cả tập huấn luyện và tập kiểm thử của 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 tập dữ liệu tuân theo định dạng được chỉ định bên trên trong mục "Cấu trúc tập dữ liệu" (Dataset Structure), 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#

  • Để cấu trúc tập dữ liệu của bạn cho các tác vụ phân loại của 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 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 phải chứa các thư mục con được đặt tên theo từng lớp, với các hình ảnh tương ứng bên trong. Điều này giúp tạo điều kiện thuận lợi cho các quá trình huấn luyện và đánh giá diễn ra suôn sẻ. Để có ví dụ, hãy xem đị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.

  • Ultralytics YOLO hỗ trợ tự động tải xuống một số tập dữ liệu dùng cho 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ễ sử dụng với YOLO. Trang của mỗi tập dữ liệu cung cấp thêm thông tin chi tiết về cấu trúc và ứng dụng của nó.

  • Để sử dụng tập dữ liệu của riêng bạn với Ultralytics YOLO, hãy đảm bảo tập dữ liệu tuân theo định dạng thư mục được chỉ định bắt buộc cho tác vụ phân loại, với các thư mục train, test và tùy chọn là val riêng biệt, 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. Dưới đây là một ví dụ bằng 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)

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

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

    Để có thêm những góc nhìn sâu sắc và các ứng dụng thực tế, bạn có thể khám phá Ultralytics YOLO.

  • Việc huấn luyện một model sử dụng Ultralytics YOLO có thể được thực hiện dễ dàng bằng cả Python và CLI. Đây là 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 quá trình huấn luyện mô hình YOLO một cách đơn giản bằng cả hai cách tiếp cận. Để 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 dành cho các tác vụ phân loại.

Bình luận