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
Cho Ultralytics các tác vụ phân loại YOLO, tập dữ liệu phải được tổ chức theo cấu trúc thư mục phân chia cụ thể bên dưới root
thư mục để tạo điều kiện thuận lợi cho quá trình huấn luyện, kiểm tra và xác thực tùy chọn thích hợp. 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
), kiểm tra (test
) và một thư mục tùy chọn cho xác thực (val
).
Mỗi thư mục này phải 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ả cá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 như một ví dụ. Cấu trúc thư mục sẽ trông như thế này:
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 mô hình có thể học 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 tra và xác thực.
Cách sử dụng
Ví dụ
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-cls.pt") # load a pretrained model (recommended for training)
# Train the model
results = model.train(data="path/to/dataset", epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo classify train data=path/to/data model=yolo11n-cls.pt epochs=100 imgsz=640
Các bộ dữ liệu được hỗ trợ
Ultralytics hỗ trợ tải xuống tự động các bộ dữ liệu sau:
- Caltech 101: Một bộ dữ liệu chứa hình ảnh của 101 loại đối tượng cho các tác vụ phân loại hình ảnh.
- Caltech 256: Một phiên bản mở rộng của Caltech 101 với 256 loại đối tượng và hình ảnh phức tạp hơn.
- CIFAR-10: Một bộ dữ liệu gồm 60 nghìn ảnh màu 32x32 thuộc 10 lớp, với 6 nghìn ảnh trên mỗi lớp.
- CIFAR-100: Một phiên bản mở rộng của CIFAR-10 với 100 loại đối tượng và 600 ảnh trên mỗi lớp.
- Fashion-MNIST: Một bộ dữ liệu bao gồm 70.000 ảnh thang độ xám của 10 loại thời trang cho các tác vụ phân loại ảnh.
- ImageNet: Một bộ dữ liệu quy mô lớn cho phát hiện đối tượng và phân loại ả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 tra 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 tra nhanh hơn.
- Imagewoof: Một tập hợp con khó hơn của ImageNet chứa 10 loại giống chó để phân loại ảnh.
- MNIST: Một bộ dữ liệu gồm 70.000 ảnh thang độ xám của chữ số viết tay cho các tác vụ phân loại ảnh.
- MNIST160: 8 hình ảnh đầu tiên của mỗi danh mục MNIST từ bộ dữ liệu MNIST. Bộ 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ó bộ dữ liệu riêng và muốn sử dụng nó để huấn luyện các mô hình phân loại bằng 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 bộ dữ liệu", sau đó chỉ định data
đối số cho thư mục bộ dữ liệu khi khởi tạo tập lệnh huấn luyện của bạn.
Câu hỏi thường gặp
Làm cách nào để cấu trúc tập dữ liệu của tôi cho các tác vụ phân loại YOLO?
Để cấu trúc bộ dữ liệu của bạn 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ể. Sắp xếp bộ 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 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 tạo điều kiện thuận lợi cho quá trình đào tạo và đánh giá suôn sẻ. Ví dụ: hãy xem xét CIFAR-10 định dạng bộ dữ liệu:
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 Nhiệm vụ Phân loại YOLO.
Những tập dữ liệu nào được Ultralytics YOLO hỗ trợ để phân loại hình ảnh?
Ultralytics YOLO hỗ trợ tải xuống tự động một số bộ 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, Imagewoof và MNIST. Các bộ 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 bộ 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 để phân loại hình ảnh YOLO?
Để sử dụng bộ 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 train
, test
, và tùy chọn val
thư mục riêng biệt và các thư mục con cho mỗi lớp chứa các hình ảnh tương ứng. Sau khi bộ dữ liệu của bạn được cấu trúc chính xác, hãy chỉ định data
đối số đến thư mục gốc của bộ dữ liệu khi khởi tạo script huấn luyện. Sau đây là một ví dụ bằng Python:
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-cls.pt") # load a pretrained model (recommended for training)
# Train the model
results = model.train(data="path/to/your/dataset", epochs=100, imgsz=640)
Bạn có thể tìm thấy thêm chi tiết trong phần Thêm bộ 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:
- Các 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ư
yolo11n-cls.pt
để khởi động nhanh quá trình huấn luyện của bạn. - Dễ sử dụng: API và các lệnh CLI đơn giản để huấn luyện và đánh giá.
- Hiệu năng cao: Độ chính xác và tốc độ thuộc hàng top, lý tưởng cho các ứng dụng thời gian thực.
- Hỗ trợ nhiều bộ dữ liệu: Tích hợp liền mạch với nhiều bộ dữ liệu phổ biến như CIFAR-10, ImageNet, và hơn thế nữa.
- Cộng đồng và Hỗ trợ: Truy cập vào tài liệu phong phú và một cộng đồng năng động để 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 để huấn luyện mô hình bằng Ultralytics YOLO?
Việc huấn luyện một mô hình bằng Ultralytics YOLO có thể được thực hiện dễ dàng trong cả Python và CLI. Sau đây là một ví dụ:
Ví dụ
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-cls.pt") # load a pretrained model
# Train the model
results = model.train(data="path/to/dataset", epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo classify train data=path/to/data model=yolo11n-cls.pt epochs=100 imgsz=640
Các ví dụ này minh họa quy trình đào tạo mô hình YOLO đơn giản bằng một trong hai phương pháp. Để biết thêm thông tin, hãy truy cập phần Sử dụng và trang Huấn luyện cho các tác vụ phân loại.