Bỏ để qua phần nội dung

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

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

Cho Ultralytics YOLO Nhiệm vụ phân loại, tập dữ liệu phải được tổ chức theo cấu trúc thư mục phân chia cụ thể theo root thư mục để tạo điều kiện cho các quy trình đào tạo, kiểm tra và xác nhận 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 để đào tạo (train) và thử nghiệm (test) các giai đoạn, với một thư mục tùy chọn để 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ả 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 làm 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 hỏi hiệu quả từ các lớp học được tổ chức tốt trong giai đoạn đào tạo và đánh giá chính xác hiệu suất trong giai đoạn thử nghiệm và xác nhận.

Sử dụng

Ví dụ

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n-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 detect train data=path/to/data model=yolov8n-cls.pt epochs=100 imgsz=640

Bộ dữ liệu được hỗ trợ

Ultralytics Hỗ trợ các bộ dữ liệu sau với tải xuống tự động:

  • Caltech 101: Một tập 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 thách thức hơn.
  • CIFAR-10: Một tập dữ liệu gồm 60K hình ảnh màu 32x32 trong 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 loại đối tượng và 600 hình ảnh mỗi lớp.
  • Thời trang-MNIST: Một bộ dữ liệu bao gồm 70.000 hình ảnh thang độ xám của 10 danh mục thời trang cho các nhiệm vụ phân loại hình ảnh.
  • ImageNet: Một bộ dữ liệu quy mô lớn để 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à thử nghiệm 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 để đào tạo và kiểm tra nhanh hơn.
  • Imagewoof: Một tập hợp con khó khăn hơn của ImageNet chứa 10 danh mục giống chó cho các nhiệm vụ phân loại hình ảnh.
  • MNIST: Một bộ 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.

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 loại với Ultralytics, đảm bảo rằng nó tuân theo định dạng được chỉ định ở trên trong "Định dạng tập dữ liệu" và sau đó trỏ data đối số với thư mục tập dữ liệu.

FAQ

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

Để cấu trúc tập dữ liệu của bạn cho Ultralytics YOLO Nhiệm vụ phân loại, bạn nên tuân theo một định dạng thư mục chia nhỏ cụ thể. Sắp xếp tập dữ liệu của bạn thành các thư mục riêng biệt cho train, testvà tùy chọn 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 cho quá trình đào tạo và đánh giá suôn sẻ. 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 Cấu trúc tập dữ liệu cho YOLO Nhiệm vụ phân loại.

Những bộ dữ liệu nào được hỗ trợ bởi Ultralytics YOLO để phân loại hình ảnh?

Ultralytics YOLO Hỗ trợ tự động tải xuống một số bộ dữ liệu để phân loại hình ảnh, bao gồm:

Các bộ dữ liệu này được cấu trúc theo cách giúp chúng dễ sử dụng 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 YOLO Phân loại hình ảnh?

Để sử dụng tập dữ liệu của riêng bạn với Ultralytics YOLO, đảm bảo 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 riêng biệt train, testvà tùy chọn val thư mục và 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ỏ nút data Đối số với thư mục gốc của tập dữ liệu của bạn khi khởi tạo tập lệnh đào tạo. Đây là một ví dụ trong Python:

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n-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êm chi tiết 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 Cung cấp một số lợi ích cho việc phân loại hình ảnh, bao gồm:

  • Mô hình đào tạo trước: Tải các mô hình được đào tạo sẵn như yolov8n-cls.pt để bắt đầu quá trình đào tạo của bạn.
  • Dễ sử dụng: API đơn giản và CLI lệnh 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ợ nhiều bộ dữ liệu: Tích hợp liền mạch với các bộ dữ liệu phổ biến khác nhau như CIFAR-10, ImageNet, v.v.
  • Cộng đồng và Hỗ trợ: Truy cập vào tài liệu mở rộng và một 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 trong thế giới thực, bạn có thể khám phá Ultralytics YOLO.

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

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

Ví dụ

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n-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 detect train data=path/to/data model=yolov8n-cls.pt epochs=100 imgsz=640

Những ví dụ này cho thấy quá trình đào tạo đơn giản YOLO mô hình bằng cách sử dụng một trong hai cách tiếp cận. Để biết thêm thông tin, hãy truy cập phần Sử dụng .



Đã tạo 2023-11-12, Cập nhật 2024-07-04
Tác giả: Glenn-Jocher (7), Stormsson (1), GreatV (1)

Ý kiến