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.
109 lines
11 KiB
109 lines
11 KiB
1 year ago
|
---
|
||
|
comments: true
|
||
|
description: Пошаговое руководство по экспорту ваших моделей YOLOv8 в различные форматы, такие как ONNX, TensorRT, CoreML и другие, для развертывания. Изучите сейчас!.
|
||
|
keywords: YOLO, YOLOv8, Ultralytics, Экспорт модели, ONNX, TensorRT, CoreML, TensorFlow SavedModel, OpenVINO, PyTorch, экспорт модели
|
||
|
---
|
||
|
|
||
|
# Экспорт модели с Ultralytics YOLO
|
||
|
|
||
|
<img width="1024" src="https://github.com/ultralytics/assets/raw/main/yolov8/banner-integrations.png" alt="Экосистема и интеграции Ultralytics YOLO">
|
||
|
|
||
|
## Введение
|
||
|
|
||
|
Основная цель тренировки модели — её развертывание для реальных приложений. Режим экспорта в Ultralytics YOLOv8 предлагает множество вариантов для экспорта обученной модели в различные форматы, обеспечивая возможность развертывания на разных платформах и устройствах. Это исчерпывающее руководство направлено на то, чтобы провести вас через тонкости экспорта моделей, демонстрируя, как достичь максимальной совместимости и производительности.
|
||
|
|
||
|
<p align="center">
|
||
|
<br>
|
||
|
<iframe width="720" height="405" src="https://www.youtube.com/embed/WbomGeoOT_k?si=aGmuyooWftA0ue9X"
|
||
|
title="YouTube video player" frameborder="0"
|
||
|
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
|
||
|
allowfullscreen>
|
||
|
</iframe>
|
||
|
<br>
|
||
|
<strong>Смотрите:</strong> Как экспортировать обученную пользовательскую модель Ultralytics YOLOv8 и запустить живое воспроизведение на веб-камере.
|
||
|
</p>
|
||
|
|
||
|
## Почему стоит выбрать режим экспорта YOLOv8?
|
||
|
|
||
|
- **Универсальность:** Экспорт в несколько форматов, включая ONNX, TensorRT, CoreML и другие.
|
||
|
- **Производительность:** Увеличение скорости на GPU до 5 раз с TensorRT и ускорение на CPU до 3 раз с ONNX или OpenVINO.
|
||
|
- **Совместимость:** Сделайте вашу модель универсально развертываемой в различных аппаратных и программных средах.
|
||
|
- **Простота использования:** Простой интерфейс командной строки и Python API для быстрого и простого экспорта моделей.
|
||
|
|
||
|
### Ключевые особенности режима экспорта
|
||
|
|
||
|
Вот некоторые из ключевых функций:
|
||
|
|
||
|
- **Экспорт одним кликом:** Простые команды для экспорта в разные форматы.
|
||
|
- **Пакетный экспорт:** Экспорт моделей, способных к пакетной обработке.
|
||
|
- **Оптимизированное предсказание:** Экспортированные модели оптимизированы для более быстрого предсказания.
|
||
|
- **Учебные видео:** Глубокие руководства и обучающие видео для гладкого опыта экспорта.
|
||
|
|
||
|
!!! tip "Совет"
|
||
|
|
||
|
* Экспортируйте в ONNX или OpenVINO для ускорения CPU до 3 раз.
|
||
|
* Экспортируйте в TensorRT для увеличения скорости на GPU до 5 раз.
|
||
|
|
||
|
## Примеры использования
|
||
|
|
||
|
Экспорт модели YOLOv8n в другой формат, например ONNX или TensorRT. Смотрите раздел Аргументы ниже для полного списка аргументов экспорта.
|
||
|
|
||
|
!!! example ""
|
||
|
|
||
|
=== "Python"
|
||
|
|
||
|
```python
|
||
|
from ultralytics import YOLO
|
||
|
|
||
|
# Загрузите модель
|
||
|
model = YOLO('yolov8n.pt') # загрузка официальной модели
|
||
|
model = YOLO('path/to/best.pt') # загрузка обученной пользовательской модели
|
||
|
|
||
|
# Экспорт модели
|
||
|
model.export(format='onnx')
|
||
|
```
|
||
|
=== "CLI"
|
||
|
|
||
|
```bash
|
||
|
yolo export model=yolov8n.pt format=onnx # экспорт официальной модели
|
||
|
yolo export model=path/to/best.pt format=onnx # экспорт обученной пользовательской модели
|
||
|
```
|
||
|
|
||
|
## Аргументы
|
||
|
|
||
|
Настройки экспорта моделей YOLO относятся к различным конфигурациям и опциям, используемым для сохранения или экспорта модели для использования в других средах или платформах. Эти настройки могут влиять на производительность модели, размер и совместимость с разными системами. Некоторые общие настройки экспорта YOLO включают формат экспортируемого файла модели (например, ONNX, TensorFlow SavedModel), устройство, на котором будет запущена модель (например, CPU, GPU), а также наличие дополнительных функций, таких как маски или несколько меток на коробку. Другие факторы, которые могут повлиять на процесс экспорта, включают конкретное задание, для которого используется модель, и требования или ограничения целевой среды или платформы. Важно тщательно рассмотреть и настроить эти параметры, чтобы убедиться, что экспортированная модель оптимизирована для предполагаемого использования и может быть эффективно использована в целевой среде.
|
||
|
|
||
|
| Ключ | Значение | Описание |
|
||
|
|-------------|-----------------|---------------------------------------------------------------------------|
|
||
|
| `format` | `'torchscript'` | формат для экспорта |
|
||
|
| `imgsz` | `640` | размер изображения в виде скаляра или списка (h, w), например, (640, 480) |
|
||
|
| `keras` | `False` | использовать Keras для экспорта TF SavedModel |
|
||
|
| `optimize` | `False` | TorchScript: оптимизация для мобильных устройств |
|
||
|
| `half` | `False` | квантование FP16 |
|
||
|
| `int8` | `False` | квантование INT8 |
|
||
|
| `dynamic` | `False` | ONNX/TensorRT: динамические оси |
|
||
|
| `simplify` | `False` | ONNX/TensorRT: упрощение модели |
|
||
|
| `opset` | `None` | ONNX: версия набора операций (необязательный, по умолчанию последний) |
|
||
|
| `workspace` | `4` | TensorRT: размер рабочей области (ГБ) |
|
||
|
| `nms` | `False` | CoreML: добавление NMS |
|
||
|
|
||
|
## Форматы экспорта
|
||
|
|
||
|
Доступные форматы экспорта YOLOv8 указаны в таблице ниже. Вы можете экспортировать в любой формат, используя аргумент `format`, например, `format='onnx'` или `format='engine'`.
|
||
|
|
||
|
| Формат | Аргумент `format` | Модель | Метаданные | Аргументы |
|
||
|
|--------------------------------------------------------------------|-------------------|---------------------------|------------|-----------------------------------------------------|
|
||
|
| [PyTorch](https://pytorch.org/) | - | `yolov8n.pt` | ✅ | - |
|
||
|
| [TorchScript](https://pytorch.org/docs/stable/jit.html) | `torchscript` | `yolov8n.torchscript` | ✅ | `imgsz`, `optimize` |
|
||
|
| [ONNX](https://onnx.ai/) | `onnx` | `yolov8n.onnx` | ✅ | `imgsz`, `half`, `dynamic`, `simplify`, `opset` |
|
||
|
| [OpenVINO](https://docs.openvino.ai/latest/index.html) | `openvino` | `yolov8n_openvino_model/` | ✅ | `imgsz`, `half` |
|
||
|
| [TensorRT](https://developer.nvidia.com/tensorrt) | `engine` | `yolov8n.engine` | ✅ | `imgsz`, `half`, `dynamic`, `simplify`, `workspace` |
|
||
|
| [CoreML](https://github.com/apple/coremltools) | `coreml` | `yolov8n.mlpackage` | ✅ | `imgsz`, `half`, `int8`, `nms` |
|
||
|
| [TF SavedModel](https://www.tensorflow.org/guide/saved_model) | `saved_model` | `yolov8n_saved_model/` | ✅ | `imgsz`, `keras` |
|
||
|
| [TF GraphDef](https://www.tensorflow.org/api_docs/python/tf/Graph) | `pb` | `yolov8n.pb` | ❌ | `imgsz` |
|
||
|
| [TF Lite](https://www.tensorflow.org/lite) | `tflite` | `yolov8n.tflite` | ✅ | `imgsz`, `half`, `int8` |
|
||
|
| [TF Edge TPU](https://coral.ai/docs/edgetpu/models-intro/) | `edgetpu` | `yolov8n_edgetpu.tflite` | ✅ | `imgsz` |
|
||
|
| [TF.js](https://www.tensorflow.org/js) | `tfjs` | `yolov8n_web_model/` | ✅ | `imgsz` |
|
||
|
| [PaddlePaddle](https://github.com/PaddlePaddle) | `paddle` | `yolov8n_paddle_model/` | ✅ | `imgsz` |
|
||
|
| [ncnn](https://github.com/Tencent/ncnn) | `ncnn` | `yolov8n_ncnn_model/` | ✅ | `imgsz`, `half` |
|