You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

14 KiB

comments description keywords
true Узнайте о моделях классификации изображений YOLOv8 Classify. Получите подробную информацию о списке предварительно обученных моделей и как провести Обучение, Валидацию, Предсказание и Экспорт моделей. Ultralytics, YOLOv8, классификация изображений, предварительно обученные модели, YOLOv8n-cls, обучение, валидация, предсказание, экспорт модели

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

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

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

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

!!! Tip "Совет"

Модели YOLOv8 Classify используют суффикс `-cls`, например `yolov8n-cls.pt`, и предварительно обучены на [ImageNet](https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/ImageNet.yaml).

Модели

Здесь показаны предварительно обученные модели классификации YOLOv8. Модели для обнаружения, сегментации и позы обучаются на наборе данных COCO, в то время как модели классификации обучаются на наборе данных ImageNet.

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

Модель Размер
(пиксели)
Точность
top1
Точность
top5
Скорость
CPU ONNX
(мс)
Скорость
A100 TensorRT
(мс)
Параметры
(М)
FLOPs
(Б) на 640
YOLOv8n-cls 224 66.6 87.0 12.9 0.31 2.7 4.3
YOLOv8s-cls 224 72.3 91.1 23.4 0.35 6.4 13.5
YOLOv8m-cls 224 76.4 93.2 85.4 0.62 17.0 42.7
YOLOv8l-cls 224 78.0 94.1 163.0 0.87 37.5 99.7
YOLOv8x-cls 224 78.4 94.3 232.0 1.01 57.4 154.8
  • Значения точность указывают на точность модели на валидационном наборе данных ImageNet.
    Повторить результаты можно с помощью yolo val classify data=path/to/ImageNet device=0.
  • Скорость усреднена по изображениям для валидации ImageNet, используя инстанс Amazon EC2 P4d.
    Повторить результаты можно с помощью yolo val classify data=path/to/ImageNet batch=1 device=0|cpu.

Обучение

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

!!! Example "Пример"

=== "Python"

    ```python
    from ultralytics import YOLO

    # Загрузите модель
    model = YOLO('yolov8n-cls.yaml')  # создайте новую модель из YAML
    model = YOLO('yolov8n-cls.pt')    # загрузите предварительно обученную модель (рекомендуется для обучения)
    model = YOLO('yolov8n-cls.yaml').load('yolov8n-cls.pt')  # создайте из YAML и перенесите веса

    # Обучите модель
    результаты = model.train(data='mnist160', epochs=100, imgsz=64)
    ```

=== "CLI"

    ```bash
    # Создайте новую модель из YAML и начните обучение с нуля
    yolo classify train data=mnist160 model=yolov8n-cls.yaml epochs=100 imgsz=64

    # Начните обучение с предварительно обученной *.pt модели
    yolo classify train data=mnist160 model=yolov8n-cls.pt epochs=100 imgsz=64

    # Создайте новую модель из YAML, перенесите предварительно обученные веса и начните обучение
    yolo classify train data=mnist160 model=yolov8n-cls.yaml pretrained=yolov8n-cls.pt epochs=100 imgsz=64
    ```

Формат набора данных

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

Валидация

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

!!! Example "Пример"

=== "Python"

    ```python
    from ultralytics import YOLO

    # Загрузите модель
    model = YOLO('yolov8n-cls.pt')  # загрузите официальную модель
    model = YOLO('path/to/best.pt')  # загрузите собственную модель

    # Проведите валидацию модели
    метрики = model.val()  # аргументы не нужны, набор данных и настройки запомнены
    метрики.top1           # точность top1
    метрики.top5           # точность top5
    ```
=== "CLI"

    ```bash
    yolo classify val model=yolov8n-cls.pt  # валидация официальной модели
    yolo classify val model=path/to/best.pt  # валидация собственной модели
    ```

Предсказание

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

!!! Example "Пример"

=== "Python"

    ```python
    from ultralytics import YOLO

    # Загрузите модель
    model = YOLO('yolov8n-cls.pt')  # загрузите официальную модель
    model = YOLO('path/to/best.pt')  # загрузите собственную модель

    # Сделайте предсказание с помощью модели
    результаты = model('https://ultralytics.com/images/bus.jpg')  # сделайте предсказание на изображении
    ```
=== "CLI"

    ```bash
    yolo classify predict model=yolov8n-cls.pt source='https://ultralytics.com/images/bus.jpg'  # предсказание с официальной моделью
    yolo classify predict model=path/to/best.pt source='https://ultralytics.com/images/bus.jpg'  # предсказание с собственной моделью
    ```

Подробная информация о режиме predict приведена на странице Предсказание.

Экспорт

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

!!! Example "Пример"

=== "Python"

    ```python
    from ultralytics import YOLO

    # Загрузите модель
    model = YOLO('yolov8n-cls.pt')  # загрузите официальную модель
    model = YOLO('path/to/best.pt')  # загрузите собственную обученную модель

    # Экспортируйте модель
    model.export(format='onnx')
    ```
=== "CLI"

    ```bash
    yolo export model=yolov8n-cls.pt format=onnx  # экспорт официальной модели
    yolo export model=path/to/best.pt format=onnx  # экспорт собственной обученной модели
    ```

Доступные форматы экспорта 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
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 Edge TPU edgetpu yolov8n-cls_edgetpu.tflite imgsz
TF.js tfjs yolov8n-cls_web_model/ imgsz
PaddlePaddle paddle yolov8n-cls_paddle_model/ imgsz
ncnn ncnn yolov8n-cls_ncnn_model/ imgsz, half

Подробная информация об экспорте приведена на странице Экспорт.