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 |
Подробная информация об экспорте приведена на странице Экспорт.