Перейти к содержимому

Классификация изображений

Примеры классификации изображений

Классификация изображений - самая простая из трех задач, которая заключается в отнесении всего изображения к одному из множества заранее определенных классов.

Выход классификатора изображений - это метка одного класса и балл доверия. Классификация изображений полезна, когда тебе нужно знать только, к какому классу относится изображение, и не нужно знать, где расположены объекты этого класса или какова их точная форма.



Смотри: Изучи сайт Ultralytics YOLO Задачи: Классификация изображений

Наконечник

YOLOv8 Классифицируй модели с помощью -cls суффикс, то есть yolov8n-cls.pt и предварительно обучены на ImageNet.

Модели

YOLOv8 Здесь показаны предварительно обученные модели Classify. Модели Detect, Segment и Pose были предварительно обучены на наборе данных COCO, а модели Classify - на наборе данных ImageNet.

Модели автоматически загружаются с последнегорелиза Ultralytics при первом использовании.

Модель Размер
(пикселей)
acc
top1
Акк
топ5
Скорость
CPU ONNX
(мс)
Скорость
A100 TensorRT
(мс)
params
(M)
FLOPs
(B) при 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 Значения - это точность модели на ImageNet Набор для проверки данных.
    Размножайся с помощью yolo val classify data=path/to/ImageNet device=0
  • Скорость Усреднение по изображениям ImageNet val с помощью Amazon EC2 P4d например.
    Размножайся с помощью yolo val classify data=path/to/ImageNet batch=1 device=0|cpu

Поезд

Обучи YOLOv8n-cls на наборе данных MNIST160 в течение 100 эпох при размере изображения 64. Полный список доступных аргументов смотри на странице конфигурации.

Пример

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

Формат датасета

YOLO Формат классификационного набора данных можно подробно изучить в руководстве по набору данных.

Вэл

Проверь точность обученной модели YOLOv8n-cls на наборе данных MNIST160. Не нужно передавать никаких аргументов, так как model сохраняет тренировки data и аргументы в качестве атрибутов модели.

Пример

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

Предсказывай

Используй обученную модель YOLOv8n-cls для выполнения предсказаний на изображениях.

Пример

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

Смотреть полностью predict Подробности режима в Предсказывай Страница.

Экспорт

Экспортируй модель YOLOv8n-cls в другой формат, например ONNX, CoreML, и т.д.

Пример

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

Доступные форматы экспорта YOLOv8-cls приведены в таблице ниже. Ты можешь предсказывать или проверять непосредственно на экспортированных моделях, то есть yolo predict model=yolov8n-cls.onnx. Примеры использования будут показаны для твоей модели после завершения экспорта.

Формат format Аргумент Модель Метаданные Аргументы
PyTorch - yolov8n-cls.pt -
TorchScript torchscript yolov8n-cls.torchscript imgsz, optimize
ONNX onnx yolov8n-cls.onnx imgsz, half, dynamic, simplify, opset
OpenVINO openvino yolov8n-cls_openvino_model/ imgsz, half, int8
TensorRT engine yolov8n-cls.engine imgsz, half, dynamic, simplify, workspace
CoreML coreml yolov8n-cls.mlpackage imgsz, half, int8, nms
TF SavedModel saved_model yolov8n-cls_saved_model/ imgsz, keras
TF GraphDef pb yolov8n-cls.pb imgsz
TF Lite tflite yolov8n-cls.tflite imgsz, half, int8
TF Край TPU edgetpu yolov8n-cls_edgetpu.tflite imgsz
TF.js tfjs yolov8n-cls_web_model/ imgsz, half, int8
PaddlePaddle paddle yolov8n-cls_paddle_model/ imgsz
ncnn ncnn yolov8n-cls_ncnn_model/ imgsz, half

Смотреть полностью export подробности в Экспорт Страница.



Создано 2023-11-12, Обновлено 2024-02-03
Авторы: glenn-jocher (8), fcakyon (1), chr043416@gmail.com (1), Laughing-q (1), AyushExel (1)

Комментарии