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

Phân loại hình ảnh

Ví dụ phân loại hình ảnh

Phân loại hình ảnh là nhiệm vụ đơn giản nhất trong ba nhiệm vụ và liên quan đến việc phân loại toàn bộ hình ảnh thành một trong một tập hợp các lớp được xác định trước.

Đầu ra của bộ phân loại hình ảnh là một nhãn lớp duy nhất và điểm tin cậy. Phân loại hình ảnh rất hữu ích khi bạn chỉ cần biết hình ảnh thuộc lớp nào và không cần biết các đối tượng của lớp đó nằm ở đâu hoặc hình dạng chính xác của chúng là gì.



Xem: Khám phá Ultralytics YOLO Tác vụ: Phân loại hình ảnh bằng cách sử dụng Ultralytics Trung tâm

Mẹo

YOLOv8 Phân loại mô hình sử dụng -cls hậu tố, tức là yolov8n-cls.pt và được đào tạo trước về Mạng hình ảnh.

Mô hình

YOLOv8 Các mô hình Phân loại được đào tạo trước được hiển thị ở đây. Các mô hình Phát hiện, Phân đoạn và Tư thế được đào tạo trước trên tập dữ liệu COCO , trong khi các mô hình Phân loại được đào tạo trước trên tập dữ liệu ImageNet .

Mô hình tải xuống tự động từ phiên bản mới nhất Ultralytics phát hành vào lần sử dụng đầu tiên.

Mẫu kích thước
(điểm ảnh)
Acc
Top 1
Acc
Top 5
Tốc độ
CPU ONNX
(Cô)
Tốc độ
A100 TensorRT
(Cô)
Params
(M)
Flops
(B) tại 640
YOLOv8n-Cls 224 69.0 88.3 12.9 0.31 2.7 4.3
YOLOv8s-Cls 224 73.8 91.7 23.4 0.35 6.4 13.5
YOLOv8m-Cls 224 76.8 93.5 85.4 0.62 17.0 42.7
YOLOv8l-Cls 224 76.8 93.5 163.0 0.87 37.5 99.7
YOLOv8x-Cls 224 79.0 94.6 232.0 1.01 57.4 154.8
  • Acc Giá trị là độ chính xác mô hình trên Mạng hình ảnh Bộ xác thực tập dữ liệu.
    Sinh sản bằng yolo val classify data=path/to/ImageNet device=0
  • Tốc độ tính trung bình trên hình ảnh val ImageNet bằng cách sử dụng một Amazon EC2 P4d ví dụ.
    Sinh sản bằng yolo val classify data=path/to/ImageNet batch=1 device=0|cpu

Xe lửa

Xe lửa YOLOv8n-cls trên tập dữ liệu MNIST160 cho 100 kỷ nguyên ở kích thước hình ảnh 64. Để biết danh sách đầy đủ các đối số có sẵn, hãy xem trang Cấu hình .

Ví dụ

from ultralytics import YOLO

# Load a model
model = YOLO('yolov8n-cls.yaml')  # build a new model from YAML
model = YOLO('yolov8n-cls.pt')  # load a pretrained model (recommended for training)
model = YOLO('yolov8n-cls.yaml').load('yolov8n-cls.pt')  # build from YAML and transfer weights

# Train the model
results = model.train(data='mnist160', epochs=100, imgsz=64)
# Build a new model from YAML and start training from scratch
yolo classify train data=mnist160 model=yolov8n-cls.yaml epochs=100 imgsz=64

# Start training from a pretrained *.pt model
yolo classify train data=mnist160 model=yolov8n-cls.pt epochs=100 imgsz=64

# Build a new model from YAML, transfer pretrained weights to it and start training
yolo classify train data=mnist160 model=yolov8n-cls.yaml pretrained=yolov8n-cls.pt epochs=100 imgsz=64

Định dạng tập dữ liệu

YOLO định dạng tập dữ liệu phân loại có thể được tìm thấy chi tiết trong Hướng dẫn tập dữ liệu.

Val

Xác thực đào tạo YOLOv8nĐộ chính xác của mô hình -CLS trên tập dữ liệu MNIST160. Không cần phải thông qua tranh luận như model duy trì đào tạo data và các đối số làm thuộc tính mô hình.

Ví dụ

from ultralytics import YOLO

# Load a model
model = YOLO('yolov8n-cls.pt')  # load an official model
model = YOLO('path/to/best.pt')  # load a custom model

# Validate the model
metrics = model.val()  # no arguments needed, dataset and settings remembered
metrics.top1   # top1 accuracy
metrics.top5   # top5 accuracy
yolo classify val model=yolov8n-cls.pt  # val official model
yolo classify val model=path/to/best.pt  # val custom model

Dự đoán

Sử dụng một đào tạo YOLOv8nMô hình -CLS để chạy dự đoán trên hình ảnh.

Ví dụ

from ultralytics import YOLO

# Load a model
model = YOLO('yolov8n-cls.pt')  # load an official model
model = YOLO('path/to/best.pt')  # load a custom model

# Predict with the model
results = model('https://ultralytics.com/images/bus.jpg')  # predict on an image
yolo classify predict model=yolov8n-cls.pt source='https://ultralytics.com/images/bus.jpg'  # predict with official model
yolo classify predict model=path/to/best.pt source='https://ultralytics.com/images/bus.jpg'  # predict with custom model

Xem đầy đủ predict Chi tiết chế độ trong Dự đoán trang.

Xuất khẩu

Xuất một YOLOv8n-CLS mô hình sang một định dạng khác như ONNX, CoreMLv.v.

Ví dụ

from ultralytics import YOLO

# Load a model
model = YOLO('yolov8n-cls.pt')  # load an official model
model = YOLO('path/to/best.pt')  # load a custom trained model

# Export the model
model.export(format='onnx')
yolo export model=yolov8n-cls.pt format=onnx  # export official model
yolo export model=path/to/best.pt format=onnx  # export custom trained model

Có sẵn YOLOv8-CLS xuất định dạng nằm trong bảng dưới đây. Bạn có thể xuất sang bất kỳ định dạng nào bằng cách sử dụng format lập luận, tức là format='onnx' hoặc format='engine'. Bạn có thể dự đoán hoặc xác thực trực tiếp trên các mô hình đã xuất, tức là yolo predict model=yolov8n-cls.onnx. Ví dụ sử dụng được hiển thị cho mô hình của bạn sau khi xuất hoàn tất.

Định dạng format Lý lẽ Mẫu Siêu dữ liệu Lập luận
PyTorch - yolov8n-cls.pt -
TorchScript torchscript yolov8n-cls.torchscript imgsz, optimize, batch
ONNX onnx yolov8n-cls.onnx imgsz, half, dynamic, simplify, opset, batch
OpenVINO openvino yolov8n-cls_openvino_model/ imgsz, half, int8, batch
TensorRT engine yolov8n-cls.engine imgsz, half, dynamic, simplify, workspace, batch
CoreML coreml yolov8n-cls.mlpackage imgsz, half, int8, nms, batch
TF SavedModel saved_model yolov8n-cls_saved_model/ imgsz, keras, int8, batch
TF GraphDef pb yolov8n-cls.pb imgsz, batch
TF Lite tflite yolov8n-cls.tflite imgsz, half, int8, batch
TF Cạnh TPU edgetpu yolov8n-cls_edgetpu.tflite imgsz, batch
TF.Js tfjs yolov8n-cls_web_model/ imgsz, half, int8, batch
PaddlePaddle paddle yolov8n-cls_paddle_model/ imgsz, batch
NCNN ncnn yolov8n-cls_ncnn_model/ imgsz, half, batch

Xem đầy đủ export Chi tiết trong Xuất khẩu trang.



Đã tạo 2023-11-12, Cập nhật 2024-04-27
Tác giả: glenn-jocher (12), Burhan-Q (1), RizwanMunawar (2), fcakyon (1), Laughing-q (1), AyushExel (1)

Ý kiến