Add Docs languages zh, es, ru, pt, fr, de, ja, ko (#6316)
Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
This commit is contained in:
parent
e3a538bbde
commit
48e70f0921
144 changed files with 17632 additions and 76 deletions
94
docs/ru/modes/benchmark.md
Normal file
94
docs/ru/modes/benchmark.md
Normal file
|
|
@ -0,0 +1,94 @@
|
|||
---
|
||||
comments: true
|
||||
description: Узнайте, как профилировать скорость и точность YOLOv8 в различных форматах экспорта; получите информацию о метриках mAP50-95, accuracy_top5 и др.
|
||||
keywords: Ultralytics, YOLOv8, бенчмаркинг, профилирование скорости, профилирование точности, mAP50-95, accuracy_top5, ONNX, OpenVINO, TensorRT, форматы экспорта YOLO
|
||||
---
|
||||
|
||||
# Бенчмаркинг моделей с Ultralytics YOLO
|
||||
|
||||
<img width="1024" src="https://github.com/ultralytics/assets/raw/main/yolov8/banner-integrations.png" alt="Экосистема и интеграции Ultralytics YOLO">
|
||||
|
||||
## Введение
|
||||
|
||||
После того, как ваша модель обучена и валидирована, следующим логическим шагом является оценка ее производительности в различных реальных сценариях. Режим бенчмаркинга в Ultralytics YOLOv8 служит этой цели, предоставляя надежный инструментарий для оценки скорости и точности вашей модели в ряде форматов экспорта.
|
||||
|
||||
## Почему бенчмаркинг критичен?
|
||||
|
||||
- **Обоснованные решения:** Получение представления о компромиссе между скоростью и точностью.
|
||||
- **Распределение ресурсов:** Понимание производительности различных форматов экспорта на разном оборудовании.
|
||||
- **Оптимизация:** Выяснение, какой формат экспорта предлагает лучшую производительность для вашего конкретного случая.
|
||||
- **Эффективность затрат:** Сделайте использование аппаратных ресурсов более эффективным на основе результатов бенчмаркинга.
|
||||
|
||||
### Ключевые метрики в режиме бенчмаркинга
|
||||
|
||||
- **mAP50-95:** Для детектирования объектов, сегментации и оценки поз.
|
||||
- **accuracy_top5:** Для классификации изображений.
|
||||
- **Время инференса:** Время, затрачиваемое на каждое изображение в миллисекундах.
|
||||
|
||||
### Поддерживаемые форматы экспорта
|
||||
|
||||
- **ONNX:** Для оптимальной производительности ЦП
|
||||
- **TensorRT:** Для максимальной эффективности GPU
|
||||
- **OpenVINO:** Для оптимизации под аппаратное обеспечение Intel
|
||||
- **CoreML, TensorFlow SavedModel и другие:** Для разнообразных потребностей развертывания.
|
||||
|
||||
!!! tip "Совет"
|
||||
|
||||
* Экспортируйте в ONNX или OpenVINO для ускорения процессора до 3 раз.
|
||||
* Экспортируйте в TensorRT для ускорения GPU до 5 раз.
|
||||
|
||||
## Примеры использования
|
||||
|
||||
Запустите бенчмарк YOLOv8n на всех поддерживаемых форматах экспорта, включая ONNX, TensorRT и т. д. Смотрите раздел Аргументы ниже для полного списка параметров экспорта.
|
||||
|
||||
!!! example ""
|
||||
|
||||
=== "Python"
|
||||
|
||||
```python
|
||||
from ultralytics.utils.benchmarks import benchmark
|
||||
|
||||
# Бенчмарк на GPU
|
||||
benchmark(model='yolov8n.pt', data='coco8.yaml', imgsz=640, half=False, device=0)
|
||||
```
|
||||
=== "CLI"
|
||||
|
||||
```bash
|
||||
yolo benchmark model=yolov8n.pt data='coco8.yaml' imgsz=640 half=False device=0
|
||||
```
|
||||
|
||||
## Аргументы
|
||||
|
||||
Аргументы, такие как `model`, `data`, `imgsz`, `half`, `device` и `verbose`, предоставляют пользователям гибкость для тонкой настройки бенчмарков под их конкретные потребности и сравнения производительности различных форматов экспорта с легкостью.
|
||||
|
||||
| Ключ | Значение | Описание |
|
||||
|-----------|----------|----------------------------------------------------------------------------------|
|
||||
| `model` | `None` | путь к файлу модели, например yolov8n.pt, yolov8n.yaml |
|
||||
| `data` | `None` | путь к YAML, ссылающемуся на набор данных для бенчмаркинга (под меткой `val`) |
|
||||
| `imgsz` | `640` | размер изображения как скаляр или список (h, w), например (640, 480) |
|
||||
| `half` | `False` | квантование FP16 |
|
||||
| `int8` | `False` | квантование INT8 |
|
||||
| `device` | `None` | устройство для запуска, например cuda device=0 или device=0,1,2,3 или device=cpu |
|
||||
| `verbose` | `False` | не продолжать при ошибке (bool), или пороговое значение для `val` (float) |
|
||||
|
||||
## Форматы экспорта
|
||||
|
||||
Бенчмарки попытаются автоматически запустить для всех возможных форматов экспорта ниже.
|
||||
|
||||
| Формат | Аргумент `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` |
|
||||
|
||||
Смотрите полную информацию о `export` на странице [Экспорт](https://docs.ultralytics.com/modes/export/).
|
||||
108
docs/ru/modes/export.md
Normal file
108
docs/ru/modes/export.md
Normal file
|
|
@ -0,0 +1,108 @@
|
|||
---
|
||||
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` |
|
||||
73
docs/ru/modes/index.md
Normal file
73
docs/ru/modes/index.md
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
---
|
||||
comments: true
|
||||
description: От обучения до отслеживания - используйте все возможности YOLOv8 от Ultralytics. Получите информацию и примеры для каждого поддерживаемого режима, включая проверку, экспорт и бенчмаркинг.
|
||||
keywords: Ultralytics, YOLOv8, Машинное обучение, Обнаружение объектов, Обучение, Проверка, Предсказание, Экспорт, Отслеживание, Бенчмаркинг
|
||||
---
|
||||
|
||||
# Режимы Ultralytics YOLOv8
|
||||
|
||||
<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/j8uQc0qB91s?si=dhnGKgqvs7nPgeaM"
|
||||
title="Плеер YouTube видео" frameborder="0"
|
||||
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
|
||||
allowfullscreen>
|
||||
</iframe>
|
||||
<br>
|
||||
<strong>Смотрите:</strong> Руководство по режимам Ultralytics: Обучение, Проверка, Предсказание, Экспорт и Бенчмаркинг.
|
||||
</p>
|
||||
|
||||
### Обзор режимов
|
||||
|
||||
Понимание различных **режимов**, которые поддерживает Ultralytics YOLOv8, критически важно для эффективного использования ваших моделей:
|
||||
|
||||
- **Режим обучения (Train mode)**: Настройте вашу модель на пользовательские или предзагруженные наборы данных.
|
||||
- **Режим проверки (Val mode)**: Контрольная точка после обучения для валидации производительности модели.
|
||||
- **Режим предсказания (Predict mode)**: Раскройте предсказательную мощь вашей модели на данных из реального мира.
|
||||
- **Режим экспорта (Export mode)**: Подготовьте вашу модель к развертыванию в различных форматах.
|
||||
- **Режим отслеживания (Track mode)**: Расширьте вашу модель обнаружения объектов до приложений отслеживания в реальном времени.
|
||||
- **Режим бенчмаркинга (Benchmark mode)**: Проанализируйте скорость и точность вашей модели в разнообразных средах развертывания.
|
||||
|
||||
Это исчерпывающее руководство направлено на то, чтобы дать вам обзор и практические сведения о каждом режиме, помогая вам использовать полный потенциал YOLOv8.
|
||||
|
||||
## [Обучение (Train)](train.md)
|
||||
|
||||
Режим обучения используется для обучения модели YOLOv8 на пользовательском наборе данных. В этом режиме модель обучается с использованием указанного набора данных и гиперпараметров. Процесс обучения включает в себя оптимизацию параметров модели, чтобы она могла точно предсказывать классы и местоположения объектов на изображении.
|
||||
|
||||
[Примеры обучения](train.md){ .md-button .md-button--primary}
|
||||
|
||||
## [Проверка (Val)](val.md)
|
||||
|
||||
Режим проверки используется для валидации модели YOLOv8 после ее обучения. В этом режиме модель оценивается на наборе данных для валидации, чтобы измерить ее точность и способность к обобщению. Этот режим может быть использован для настройки гиперпараметров модели с целью улучшения ее производительности.
|
||||
|
||||
[Примеры проверки](val.md){ .md-button .md-button--primary}
|
||||
|
||||
## [Предсказание (Predict)](predict.md)
|
||||
|
||||
Режим предсказания используется для выполнения предсказаний с использованием обученной модели YOLOv8 на новых изображениях или видео. В этом режиме модель загружается из файла контрольной точки, и пользователь может предоставить изображения или видео для выполнения вывода. Модель предсказывает классы и местоположения объектов во входных изображениях или видео.
|
||||
|
||||
[Примеры предсказания](predict.md){ .md-button .md-button--primary}
|
||||
|
||||
## [Экспорт (Export)](export.md)
|
||||
|
||||
Режим экспорта используется для экспортирования модели YOLOv8 в формат, который может быть использован для развертывания. В этом режиме модель преобразуется в формат, который может быть использован другими программными приложениями или аппаратными устройствами. Этот режим полезен при развертывании модели в производственной среде.
|
||||
|
||||
[Примеры экспорта](export.md){ .md-button .md-button--primary}
|
||||
|
||||
## [Отслеживание (Track)](track.md)
|
||||
|
||||
Режим отслеживания используется для отслеживания объектов в реальном времени с использованием модели YOLOv8. В этом режиме модель загружается из файла контрольной точки, и пользователь может предоставить прямую видеотрансляцию для выполнения отслеживания объектов в реальном времени. Этот режим полезен для приложений, таких как системы видеонаблюдения или беспилотные автомобили.
|
||||
|
||||
[Примеры отслеживания](track.md){ .md-button .md-button--primary}
|
||||
|
||||
## [Бенчмаркинг (Benchmark)](benchmark.md)
|
||||
|
||||
Режим бенчмаркинга используется для профилирования скорости и точности различных форматов экспорта для YOLOv8. Бенчмарки предоставляют информацию о размере экспортируемого формата, его метриках `mAP50-95` (для обнаружения объектов, сегментации и позы) или метриках `accuracy_top5` (для классификации), а также время вывода в миллисекундах на изображение для различных форматов экспорта, таких как ONNX, OpenVINO, TensorRT и других. Эта информация может помочь пользователям выбрать оптимальный формат экспорта для их конкретного сценария использования на основе их требований к скорости и точности.
|
||||
|
||||
[Примеры бенчмаркинга](benchmark.md){ .md-button .md-button--primary}
|
||||
226
docs/ru/modes/predict.md
Normal file
226
docs/ru/modes/predict.md
Normal file
|
|
@ -0,0 +1,226 @@
|
|||
---
|
||||
comments: true
|
||||
description: Узнайте, как использовать режим предсказаний YOLOv8 для различных задач. Изучите различные источники вывода, такие как изображения, видео и форматы данных.
|
||||
keywords: Ultralytics, YOLOv8, режим предсказаний, источники вывода, задачи предсказания, режим потоковой передачи, обработка изображений, обработка видео, машинное обучение, искусственный интеллект
|
||||
---
|
||||
|
||||
# Прогнозирование моделью 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/QtsI0TnwDZs?si=ljesw75cMO2Eas14"
|
||||
title="Проигрыватель видео YouTube" frameborder="0"
|
||||
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
|
||||
allowfullscreen>
|
||||
</iframe>
|
||||
<br>
|
||||
<strong>Смотреть:</strong> Как извлечь результаты из модели Ultralytics YOLOv8 для пользовательских проектов.
|
||||
</p>
|
||||
|
||||
## Прикладные области
|
||||
|
||||
| Производство | Спорт | Безопасность |
|
||||
|:-------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------------------------------------------------------------:|
|
||||
|  |  |  |
|
||||
| Обнаружение автозапчастей | Обнаружение футболистов | Обнаружение падения людей |
|
||||
|
||||
## Почему стоит использовать Ultralytics YOLO для вывода?
|
||||
|
||||
Вот почему вам следует рассмотреть режим предсказаний YOLOv8 для ваших различных потребностей в выводе:
|
||||
|
||||
- **Универсальность:** Возможность делать выводы по изображениям, видео и даже потоковым трансляциям.
|
||||
- **Производительность:** Разработан для обработки данных в реальном времени без потери точности.
|
||||
- **Простота использования:** Интуитивно понятные интерфейсы Python и CLI для быстрого развертывания и тестирования.
|
||||
- **Высокая настраиваемость:** Различные настройки и параметры для настройки поведения модели вывода в соответствии с вашими конкретными требованиями.
|
||||
|
||||
### Ключевые особенности режима предсказаний
|
||||
|
||||
Режим предсказаний YOLOv8 разработан, чтобы быть надежным и универсальным, он включает в себя:
|
||||
|
||||
- **Совместимость с несколькими источниками данных:** независимо от того, представлены ли ваши данные в виде отдельных изображений, коллекции изображений, видеофайлов или потокового видео, режим предсказаний покрывает все это.
|
||||
- **Режим потоковой передачи:** Используйте функцию потоковой передачи для создания генератора объектов `Results`, экономящего память. Активируйте это, установив `stream=True` в методе вызова предиктора.
|
||||
- **Пакетная обработка:** Возможность обрабатывать несколько изображений или видеокадров за один пакет, что дополнительно ускоряет время вывода.
|
||||
- **Дружественная интеграция:** Легко интегрируется с существующими данными и другими программными компонентами благодаря гибкому API.
|
||||
|
||||
Модели Ultralytics YOLO возвращают либо список объектов `Results`, либо генератор объектов `Results` в Python, экономящий память, когда `stream=True` передается в модель во время вывода:
|
||||
|
||||
!!! example "Предсказание"
|
||||
|
||||
=== "Вернуть список с `stream=False`"
|
||||
```python
|
||||
from ultralytics import YOLO
|
||||
|
||||
# Загрузка модели
|
||||
model = YOLO('yolov8n.pt') # предварительно обученная модель YOLOv8n
|
||||
|
||||
# Пакетный вывод на список изображений
|
||||
results = model(['im1.jpg', 'im2.jpg']) # вернуть список объектов Results
|
||||
|
||||
# Обработка списка результатов
|
||||
for result in results:
|
||||
boxes = result.boxes # Объект Boxes для вывода bbox
|
||||
masks = result.masks # Объект Masks для вывода масок сегментации
|
||||
keypoints = result.keypoints # Объект Keypoints для вывода поз
|
||||
probs = result.probs # Объект Probs для вывода вероятностей классификации
|
||||
```
|
||||
|
||||
=== "Вернуть генератор с `stream=True`"
|
||||
```python
|
||||
from ultralytics import YOLO
|
||||
|
||||
# Загрузка модели
|
||||
model = YOLO('yolov8n.pt') # предварительно обученная модель YOLOv8n
|
||||
|
||||
# Пакетный вывод на список изображений
|
||||
results = model(['im1.jpg', 'im2.jpg'], stream=True) # вернуть генератор объектов Results
|
||||
|
||||
# Обработка генератора результатов
|
||||
for result in results:
|
||||
boxes = result.boxes # Объект Boxes для вывода bbox
|
||||
masks = result.masks # Объект Masks для вывода масок сегментации
|
||||
keypoints = result.keypoints # Объект Keypoints для вывода поз
|
||||
probs = result.probs # Объект Probs для вывода вероятностей классификации
|
||||
```
|
||||
|
||||
## Источники вывода
|
||||
|
||||
YOLOv8 может обрабатывать различные типы входных источников для вывода, как показано в таблице ниже. Источники включают статические изображения, видеопотоки и различные форматы данных. В таблице также указано, можно ли использовать каждый источник в режиме потоковой передачи с аргументом `stream=True` ✅. Режим потоковой передачи полезен для обработки видео или живых трансляций, так как создает генератор результатов вместо загрузки всех кадров в память.
|
||||
|
||||
!!! tip "Совет"
|
||||
|
||||
Используйте `stream=True` для обработки длинных видеороликов или больших наборов данных для эффективного управления памятью. Когда `stream=False`, результаты для всех кадров или точек данных хранятся в памяти, что может быстро накопиться и вызвать ошибки переполнения памяти для больших входов. В отличие от этого, `stream=True` использует генератор, который хранит в памяти результаты только текущего кадра или точки данных, значительно сокращая потребление памяти и предотвращая проблемы с переполнением памяти.
|
||||
|
||||
| Источник | Аргумент | Тип | Заметки |
|
||||
|-----------------|--------------------------------------------|------------------|---------------------------------------------------------------------------------------------------------------|
|
||||
| изображение | `'image.jpg'` | `str` или `Path` | Одиночный файл изображения. |
|
||||
| URL | `'https://ultralytics.com/images/bus.jpg'` | `str` | URL на изображение. |
|
||||
| скриншот | `'screen'` | `str` | Снять скриншот. |
|
||||
| PIL | `Image.open('im.jpg')` | `PIL.Image` | Формат HWC с RGB каналами. |
|
||||
| OpenCV | `cv2.imread('im.jpg')` | `np.ndarray` | Формат HWC с BGR каналами `uint8 (0-255)`. |
|
||||
| numpy | `np.zeros((640,1280,3))` | `np.ndarray` | Формат HWC с BGR каналами `uint8 (0-255)`. |
|
||||
| torch | `torch.zeros(16,3,320,640)` | `torch.Tensor` | Формат BCHW с RGB каналами `float32 (0.0-1.0)`. |
|
||||
| CSV | `'sources.csv'` | `str` или `Path` | CSV-файл, содержащий пути к изображениям, видео или каталогам. |
|
||||
| видео ✅ | `'video.mp4'` | `str` или `Path` | Видеофайл в форматах, вроде MP4, AVI и т.д. |
|
||||
| каталог ✅ | `'path/'` | `str` или `Path` | Путь к каталогу, содержащему изображения или видео. |
|
||||
| глоб ✅ | `'path/*.jpg'` | `str` | Шаблон глоба для сопоставления нескольких файлов. Используйте символ `*` как подстановочный. |
|
||||
| YouTube ✅ | `'https://youtu.be/LNwODJXcvt4'` | `str` | URL на видео YouTube. |
|
||||
| поток ✅ | `'rtsp://example.com/media.mp4'` | `str` | URL для потоковых протоколов, таких как RTSP, RTMP, TCP, или IP-адрес. |
|
||||
| много-потоков ✅ | `'list.streams'` | `str` или `Path` | Текстовый файл `*.streams` с одним URL потока на строку, например, 8 потоков запустятся с пакетом размером 8. |
|
||||
|
||||
Ниже приведены примеры кода для использования каждого типа источника:
|
||||
|
||||
!!! example "Источники предсказаний"
|
||||
|
||||
=== "изображение"
|
||||
Выполнить вывод на файл изображения.
|
||||
```python
|
||||
from ultralytics import YOLO
|
||||
|
||||
# Загрузка предварительно обученной модели YOLOv8n
|
||||
model = YOLO('yolov8n.pt')
|
||||
|
||||
# Определите путь к файлу изображения
|
||||
source = 'path/to/image.jpg'
|
||||
|
||||
# Выполнить вывод на источник
|
||||
results = model(source) # список объектов Results
|
||||
```
|
||||
|
||||
=== "скриншот"
|
||||
Выполнить вывод на текущее содержимое экрана в виде скриншота.
|
||||
```python
|
||||
from ultralytics import YOLO
|
||||
|
||||
# Загрузка предварительно обученной модели YOLOv8n
|
||||
model = YOLO('yolov8n.pt')
|
||||
|
||||
# Определение текущего скриншота как источника
|
||||
source = 'screen'
|
||||
|
||||
# Выполнить вывод на источник
|
||||
results = model(source) # список объектов Results
|
||||
```
|
||||
|
||||
=== "URL"
|
||||
Выполнить вывод на изображение или видео, размещенные удаленно по URL.
|
||||
```python
|
||||
from ultralytics import YOLO
|
||||
|
||||
# Загрузка предварительно обученной модели YOLOv8n
|
||||
model = YOLO('yolov8n.pt')
|
||||
|
||||
# Определение URL удаленного изображения или видео
|
||||
source = 'https://ultralytics.com/images/bus.jpg'
|
||||
|
||||
# Выполнить вывод на источник
|
||||
results = model(source) # список объектов Results
|
||||
```
|
||||
|
||||
=== "PIL"
|
||||
Выполнение вывода на изображение, открытое с помощью Python Imaging Library (PIL).
|
||||
```python
|
||||
from PIL import Image
|
||||
from ultralytics import YOLO
|
||||
|
||||
# Загрузка предварительно обученной модели YOLOv8n
|
||||
model = YOLO('yolov8n.pt')
|
||||
|
||||
# Открытие изображения с помощью PIL
|
||||
source = Image.open('path/to/image.jpg')
|
||||
|
||||
# Выполнение вывода на источник
|
||||
results = model(source) # список объектов Results
|
||||
```
|
||||
|
||||
=== "OpenCV"
|
||||
Выполнение вывода на изображение, прочитанное с помощью OpenCV.
|
||||
```python
|
||||
import cv2
|
||||
from ultralytics import YOLO
|
||||
|
||||
# Загрузка предварительно обученной модели YOLOv8n
|
||||
model = YOLO('yolov8n.pt')
|
||||
|
||||
# Чтение изображения с помощью OpenCV
|
||||
source = cv2.imread('path/to/image.jpg')
|
||||
|
||||
# Выполнение вывода на источник
|
||||
results = model(source) # список объектов Results
|
||||
```
|
||||
|
||||
=== "numpy"
|
||||
Выполнение вывода на изображение, представленное в виде массива numpy.
|
||||
```python
|
||||
import numpy as np
|
||||
from ultralytics import YOLO
|
||||
|
||||
# Загрузка предварительно обученной модели YOLOv8n
|
||||
model = YOLO('yolov8n.pt')
|
||||
|
||||
# Создание случайного массива numpy с формой HWC (640, 640, 3) со значениями в диапазоне [0, 255] и типом uint8
|
||||
source = np.random.randint(low=0, high=255, size=(640, 640, 3), dtype='uint8')
|
||||
|
||||
# Выполнение вывода на источник
|
||||
results = model(source) # список объектов Results
|
||||
```
|
||||
|
||||
=== "torch"
|
||||
Выполнение вывода на изображение, представленное в виде тензора PyTorch.
|
||||
```python
|
||||
import torch
|
||||
from ultralytics import YOLO
|
||||
|
||||
# Загрузка предварительно обученной модели YOLOv8n
|
||||
model = YOLO('yolov8n.pt')
|
||||
|
||||
# Создание случайного тензора torch с формой BCHW (1, 3, 640, 640) со значениями в диапазоне [0, 1] и типом float32
|
||||
source = torch.rand(1, 3, 640, 640, dtype=torch.float32)
|
||||
|
||||
# Выполнение вывода на источник
|
||||
results = model(source) # список объектов Results
|
||||
200
docs/ru/modes/track.md
Normal file
200
docs/ru/modes/track.md
Normal file
|
|
@ -0,0 +1,200 @@
|
|||
---
|
||||
comments: true
|
||||
description: Узнайте, как использовать Ultralytics YOLO для отслеживания объектов в видеопотоках. Руководства по использованию различных трекеров и настройке конфигурации трекера.
|
||||
keywords: Ultralytics, YOLO, отслеживание объектов, видеопотоки, BoT-SORT, ByteTrack, руководство на Python, руководство CLI
|
||||
---
|
||||
|
||||
# Множественное отслеживание объектов с помощью Ultralytics YOLO
|
||||
|
||||
<img width="1024" src="https://user-images.githubusercontent.com/26833433/243418637-1d6250fd-1515-4c10-a844-a32818ae6d46.png" alt="Примеры множественного отслеживания объектов">
|
||||
|
||||
Отслеживание объектов в сфере видеоаналитики является ключевой задачей, которая определяет не только местоположение и класс объектов в кадре, но также поддерживает уникальный ID для каждого обнаруженного объекта по мере развития видео. Приложения безграничны — от наблюдения и безопасности до аналитики реального времени в спорте.
|
||||
|
||||
## Почему стоит выбрать Ultralytics YOLO для отслеживания объектов?
|
||||
|
||||
Вывод с трекеров Ultralytics согласуется со стандартным обнаружением объектов, но имеет добавленные ID объектов. Это упрощает отслеживание объектов в видеопотоках и выполнение последующей аналитики. Вот почему вы должны рассмотреть использование Ultralytics YOLO для ваших потребностей в отслеживании объектов:
|
||||
|
||||
- **Эффективность:** Обработка видеопотоков в режиме реального времени без потери точности.
|
||||
- **Гибкость:** Поддержка множества алгоритмов отслеживания и конфигураций.
|
||||
- **Простота использования:** Простой Python API и CLI-опции для быстрой интеграции и развертывания.
|
||||
- **Настраиваемость:** Легкость использования с пользовательскими обученными моделями YOLO, позволяющая интеграцию в специфические для домена приложения.
|
||||
|
||||
<p align="center">
|
||||
<br>
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/hHyHmOtmEgs?si=VNZtXmm45Nb9s-N-"
|
||||
title="YouTube видео плеер" frameborder="0"
|
||||
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
|
||||
allowfullscreen>
|
||||
</iframe>
|
||||
<br>
|
||||
<strong>Смотрите:</strong> Обнаружение объектов и отслеживание с Ultralytics YOLOv8.
|
||||
</p>
|
||||
|
||||
## Прикладные применения
|
||||
|
||||
| Транспорт | Ритейл | Аквакультура |
|
||||
|:---------------------------------------------------------------------------------------------------------------------------------------:|:------------------------------------------------------------------------------------------------------------------------:|:----------------------------------------------------------------------------------------------------------------------:|
|
||||
|  |  |  |
|
||||
| Отслеживание транспортных средств | Отслеживание людей | Отслеживание рыб |
|
||||
|
||||
## Ключевые особенности
|
||||
|
||||
Ultralytics YOLO расширяет свои возможности обнаружения объектов для обеспечения надежного и универсального отслеживания объектов:
|
||||
|
||||
- **Отслеживание в реальном времени:** Безпрерывное отслеживание объектов в видео с высокой частотой кадров.
|
||||
- **Поддержка множества трекеров:** Выбор из разнообразия установленных алгоритмов отслеживания.
|
||||
- **Настраиваемые конфигурации трекеров:** Настройка алгоритма отслеживания для конкретных требований путем регулировки различных параметров.
|
||||
|
||||
## Доступные трекеры
|
||||
|
||||
Ultralytics YOLO поддерживает следующие алгоритмы отслеживания. Их можно включить, передав соответствующий YAML файл конфигурации, например `tracker=tracker_type.yaml`:
|
||||
|
||||
* [BoT-SORT](https://github.com/NirAharon/BoT-SORT) - Используйте `botsort.yaml`, чтобы активировать этот трекер.
|
||||
* [ByteTrack](https://github.com/ifzhang/ByteTrack) - Используйте `bytetrack.yaml`, чтобы активировать этот трекер.
|
||||
|
||||
Трекер по умолчанию - BoT-SORT.
|
||||
|
||||
## Отслеживание
|
||||
|
||||
Для запуска трекера на видеопотоках используйте обученные модели Detect, Segment или Pose, такие как YOLOv8n, YOLOv8n-seg и YOLOv8n-pose.
|
||||
|
||||
!!! пример ""
|
||||
|
||||
=== "Python"
|
||||
|
||||
```python
|
||||
from ultralytics import YOLO
|
||||
|
||||
# Загрузите официальную или пользовательскую модель
|
||||
model = YOLO('yolov8n.pt') # Загрузить официальную модель Detect
|
||||
model = YOLO('yolov8n-seg.pt') # Загрузить официальную модель Segment
|
||||
model = YOLO('yolov8n-pose.pt') # Загрузить официальную модель Pose
|
||||
model = YOLO('path/to/best.pt') # Загрузить пользовательскую обученную модель
|
||||
|
||||
# Выполнить отслеживание с помощью модели
|
||||
results = model.track(source="https://youtu.be/LNwODJXcvt4", show=True) # Отслеживание с трекером по умолчанию
|
||||
results = model.track(source="https://youtu.be/LNwODJXcvt4", show=True, tracker="bytetrack.yaml") # Отслеживание с трекером ByteTrack
|
||||
```
|
||||
|
||||
=== "CLI"
|
||||
|
||||
```bash
|
||||
# Выполнить отслеживание с различными моделями используя командный интерфейс
|
||||
yolo track model=yolov8n.pt source="https://youtu.be/LNwODJXcvt4" # Официальная модель Detect
|
||||
yolo track model=yolov8n-seg.pt source="https://youtu.be/LNwODJXcvt4" # Официальная модель Segment
|
||||
yolo track model=yolov8n-pose.pt source="https://youtu.be/LNwODJXcvt4" # Официальная модель Pose
|
||||
yolo track model=path/to/best.pt source="https://youtu.be/LNwODJXcvt4" # Пользовательская обученная модель
|
||||
|
||||
# Отслеживание с использованием трекера ByteTrack
|
||||
yolo track model=path/to/best.pt tracker="bytetrack.yaml"
|
||||
```
|
||||
|
||||
Как видно из вышеуказанного использования, отслеживание доступно для всех моделей Detect, Segment и Pose, работающих с видео или потоковыми источниками.
|
||||
|
||||
## Конфигурация
|
||||
|
||||
### Аргументы для отслеживания
|
||||
|
||||
Конфигурация отслеживания имеет общие свойства с режимом Predict, такие как `conf`, `iou` и `show`. Для дальнейшей настройки обратитесь к странице модели [Predict](https://docs.ultralytics.com/modes/predict/).
|
||||
|
||||
!!! пример ""
|
||||
|
||||
=== "Python"
|
||||
|
||||
```python
|
||||
from ultralytics import YOLO
|
||||
|
||||
# Настройте параметры отслеживания и запустите трекер
|
||||
model = YOLO('yolov8n.pt')
|
||||
results = model.track(source="https://youtu.be/LNwODJXcvt4", conf=0.3, iou=0.5, show=True)
|
||||
```
|
||||
|
||||
=== "CLI"
|
||||
|
||||
```bash
|
||||
# Настройте параметры отслеживания и запустите трекер, используя командный интерфейс
|
||||
yolo track model=yolov8n.pt source="https://youtu.be/LNwODJXcvt4" conf=0.3, iou=0.5 show
|
||||
```
|
||||
|
||||
### Выбор трекера
|
||||
|
||||
Ultralytics также позволяет использовать измененный файл конфигурации трекера. Для этого просто сделайте копию файла конфигурации трекера (например, `custom_tracker.yaml`) из [ultralytics/cfg/trackers](https://github.com/ultralytics/ultralytics/tree/main/ultralytics/cfg/trackers) и измените любые настройки (кроме `tracker_type`) в соответствии с вашими потребностями.
|
||||
|
||||
!!! пример ""
|
||||
|
||||
=== "Python"
|
||||
|
||||
```python
|
||||
from ultralytics import YOLO
|
||||
|
||||
# Загрузите модель и запустите трекер с пользовательским файлом конфигурации
|
||||
model = YOLO('yolov8n.pt')
|
||||
results = model.track(source="https://youtu.be/LNwODJXcvt4", tracker='custom_tracker.yaml')
|
||||
```
|
||||
|
||||
=== "CLI"
|
||||
|
||||
```bash
|
||||
# Загрузите модель и запустите трекер с пользовательским файлом конфигурации, используя командный интерфейс
|
||||
yolo track model=yolov8n.pt source="https://youtu.be/LNwODJXcvt4" tracker='custom_tracker.yaml'
|
||||
```
|
||||
|
||||
Для полного списка аргументов отслеживания обратитесь к странице [ultralytics/cfg/trackers](https://github.com/ultralytics/ultralytics/tree/main/ultralytics/cfg/trackers).
|
||||
|
||||
## Примеры на Python
|
||||
|
||||
### Цикл сохранения следов
|
||||
|
||||
Вот пример скрипта Python, использующий OpenCV (`cv2`) и YOLOv8 для выполнения отслеживания объектов на кадрах видео. В этом сценарии предполагается, что вы уже установили необходимые пакеты (`opencv-python` и `ultralytics`). Аргумент `persist=True` указывает трекеру, что текущее изображение или кадр является следующим в последовательности и ожидает, что следы с предыдущего изображения будут присутствовать в текущем изображении.
|
||||
|
||||
!!! пример "Цикл с потоковым отслеживанием for-loop"
|
||||
|
||||
```python
|
||||
import cv2
|
||||
from ultralytics import YOLO
|
||||
|
||||
# Загрузите модель YOLOv8
|
||||
model = YOLO('yolov8n.pt')
|
||||
|
||||
# Откройте видеофайл
|
||||
video_path = "path/to/video.mp4"
|
||||
cap = cv2.VideoCapture(video_path)
|
||||
|
||||
# Цикл по кадрам видео
|
||||
while cap.isOpened():
|
||||
# Чтение кадра из видео
|
||||
success, frame = cap.read()
|
||||
|
||||
if success:
|
||||
# Выполните отслеживание YOLOv8 для кадра, сохраняя следы между кадрами
|
||||
results = model.track(frame, persist=True)
|
||||
|
||||
# Визуализируйте результаты на кадре
|
||||
annotated_frame = results[0].plot()
|
||||
|
||||
# Покажите аннотированный кадр
|
||||
cv2.imshow("Отслеживание YOLOv8", annotated_frame)
|
||||
|
||||
# Прервать цикл, если нажата клавиша 'q'
|
||||
if cv2.waitKey(1) & 0xFF == ord("q"):
|
||||
break
|
||||
else:
|
||||
# Прервать цикл, если достигнут конец видео
|
||||
break
|
||||
|
||||
# Освободите объект захвата видео и закройте окно отображения
|
||||
cap.release()
|
||||
cv2.destroyAllWindows()
|
||||
```
|
||||
|
||||
Обратите внимание на изменение с `model(frame)` на `model.track(frame)`, которое позволяет включить отслеживание объектов вместо простого обнаружения. Этот измененный скрипт будет выполнять трекер на каждом кадре видео, визуализировать результаты и отображать их в окне. Цикл можно завершить нажатием 'q'.
|
||||
|
||||
## Содействие в новых трекерах
|
||||
|
||||
Вы являетесь профессионалом в множественном отслеживании объектов и успешно реализовали или адаптировали алгоритм отслеживания с Ultralytics YOLO? Мы приглашаем вас внести свой вклад в наш раздел Trackers на [ultralytics/cfg/trackers](https://github.com/ultralytics/ultralytics/tree/main/ultralytics/cfg/trackers)! Ваши реальные приложения и решения могут быть бесценными для пользователей, работающих над задачами отслеживания.
|
||||
|
||||
Внося свой вклад в этот раздел, вы помогаете расширить спектр доступных решений для отслеживания в рамках фреймворка Ultralytics YOLO, добавляя еще один уровень функциональности и полезности для сообщества.
|
||||
|
||||
Чтобы начать свой вклад, пожалуйста, ознакомьтесь с нашим [Руководством для участников](https://docs.ultralytics.com/help/contributing) для получения полной инструкции по отправке Pull Request (PR) 🛠️. Мы в предвкушении увидеть, что вы принесете на стол!
|
||||
|
||||
Вместе давайте улучшим возможности отслеживания экосистемы Ultralytics YOLO 🙏!
|
||||
206
docs/ru/modes/train.md
Normal file
206
docs/ru/modes/train.md
Normal file
|
|
@ -0,0 +1,206 @@
|
|||
---
|
||||
comments: true
|
||||
description: Пошаговое руководство по обучению моделей YOLOv8 с использованием Ultralytics YOLO, включая примеры обучения на одном и нескольких GPU
|
||||
keywords: Ultralytics, YOLOv8, YOLO, обнаружение объектов, режим обучения, настраиваемый набор данных, обучение на GPU, много-GPU, гиперпараметры, примеры CLI, примеры Python
|
||||
---
|
||||
|
||||
# Обучение моделей с помощью Ultralytics YOLO
|
||||
|
||||
<img width="1024" src="https://github.com/ultralytics/assets/raw/main/yolov8/banner-integrations.png" alt="Экосистема и интеграции Ultralytics YOLO">
|
||||
|
||||
## Введение
|
||||
|
||||
Обучение глубокой обучающей модели включает в себя подачу данных и настройку её параметров, так чтобы она могла делать точные прогнозы. Режим обучения в Ultralytics YOLOv8 предназначен для эффективного и результативного обучения моделей обнаружения объектов с полным использованием возможностей современной аппаратуры. Это руководство нацелено на описание всех деталей, необходимых для начала обучения ваших моделей с использованием богатого набора функций YOLOv8.
|
||||
|
||||
<p align="center">
|
||||
<br>
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/LNwODJXcvt4?si=7n1UvGRLSd9p5wKs"
|
||||
title="YouTube video player" frameborder="0"
|
||||
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
|
||||
allowfullscreen>
|
||||
</iframe>
|
||||
<br>
|
||||
<strong>Смотреть:</strong> Как обучить модель YOLOv8 на вашем настраиваемом наборе данных в Google Colab.
|
||||
</p>
|
||||
|
||||
## Почему стоит выбрать Ultralytics YOLO для обучения?
|
||||
|
||||
Вот несколько убедительных причин использовать режим Train YOLOv8:
|
||||
|
||||
- **Эффективность:** Используйте максимум возможностей вашего оборудования, будь то настройка с одним GPU или распределение нагрузки на несколько GPU.
|
||||
- **Универсальность:** Обучайте на настраиваемых наборах данных, помимо уже доступных, таких как COCO, VOC и ImageNet.
|
||||
- **Дружелюбный интерфейс:** Простой, но мощный интерфейс командной строки (CLI) и Python для прямолинейного опыта обучения.
|
||||
- **Гибкость гиперпараметров:** Широкий спектр настраиваемых гиперпараметров для тонкой настройки производительности модели.
|
||||
|
||||
### Ключевые особенности режима Train
|
||||
|
||||
Вот некоторые заметные особенности режима Train YOLOv8:
|
||||
|
||||
- **Автоматическая загрузка набора данных:** Стандартные наборы данных, такие как COCO, VOC и ImageNet, загружаются автоматически при первом использовании.
|
||||
- **Поддержка многих GPU:** Масштабируйте усилия по обучению без проблем на нескольких GPU, чтобы ускорить процесс.
|
||||
- **Настройка гиперпараметров:** Возможность изменения гиперпараметров через файлы конфигурации YAML или аргументы CLI.
|
||||
- **Визуализация и мониторинг:** Отслеживание метрик обучения в реальном времени и визуализация процесса обучения для лучшего понимания.
|
||||
|
||||
!!! tip "Совет"
|
||||
|
||||
* Наборы данных YOLOv8, такие как COCO, VOC, ImageNet и многие другие, автоматически загружаются при первом использовании, например, `yolo train data=coco.yaml`
|
||||
|
||||
## Примеры использования
|
||||
|
||||
Обучение YOLOv8n на наборе данных COCO128 в течение 100 эпох с размером изображения 640. Устройство для обучения может быть указано с помощью аргумента `device`. Если аргумент не передан, будет использоваться GPU `device=0`, если доступен, в противном случае будет использоваться `device=cpu`. Смотрите раздел Аргументы ниже для полного списка аргументов обучения.
|
||||
|
||||
!!! example "Пример обучения на одном GPU и CPU"
|
||||
|
||||
Устройство определяется автоматически. Если доступен GPU, то он будет использован, иначе обучение начнется на CPU.
|
||||
|
||||
=== "Python"
|
||||
|
||||
```python
|
||||
from ultralytics import YOLO
|
||||
|
||||
# Загрузить модель
|
||||
model = YOLO('yolov8n.yaml') # создать новую модель из YAML
|
||||
model = YOLO('yolov8n.pt') # загрузить предобученную модель (рекомендуется для обучения)
|
||||
model = YOLO('yolov8n.yaml').load('yolov8n.pt') # создать из YAML и перенести веса
|
||||
|
||||
# Обучить модель
|
||||
results = model.train(data='coco128.yaml', epochs=100, imgsz=640)
|
||||
```
|
||||
|
||||
=== "CLI"
|
||||
|
||||
```bash
|
||||
# Создать новую модель из YAML и начать обучение с нуля
|
||||
yolo detect train data=coco128.yaml model=yolov8n.yaml epochs=100 imgsz=640
|
||||
|
||||
# Начать обучение с предобученной модели *.pt
|
||||
yolo detect train data=coco128.yaml model=yolov8n.pt epochs=100 imgsz=640
|
||||
|
||||
# Создать новую модель из YAML, перенести предобученные веса и начать обучение
|
||||
yolo detect train data=coco128.yaml model=yolov8n.yaml pretrained=yolov8n.pt epochs=100 imgsz=640
|
||||
```
|
||||
|
||||
### Обучение на нескольких GPU
|
||||
|
||||
Обучение на нескольких GPU позволяет более эффективно использовать доступные аппаратные ресурсы, распределяя нагрузку по обучению на несколько GPU. Эта функция доступна как через Python API, так и через командный интерфейс. Чтобы включить обучение на нескольких GPU, укажите идентификаторы устройств GPU, которые вы хотите использовать.
|
||||
|
||||
!!! example "Пример обучения на нескольких GPU"
|
||||
|
||||
Чтобы обучить с использованием 2 GPU, устройств CUDA 0 и 1 используйте следующие команды. Расширьте до дополнительных GPU по мере необходимости.
|
||||
|
||||
=== "Python"
|
||||
|
||||
```python
|
||||
from ultralytics import YOLO
|
||||
|
||||
# Загрузить модель
|
||||
model = YOLO('yolov8n.pt') # загрузить предобученную модель (рекомендуется для обучения)
|
||||
|
||||
# Обучить модель с использованием 2 GPU
|
||||
results = model.train(data='coco128.yaml', epochs=100, imgsz=640, device=[0, 1])
|
||||
```
|
||||
|
||||
=== "CLI"
|
||||
|
||||
```bash
|
||||
# Начать обучение с предобученной модели *.pt используя GPU 0 и 1
|
||||
yolo detect train data=coco128.yaml model=yolov8n.pt epochs=100 imgsz=640 device=0,1
|
||||
```
|
||||
|
||||
### Обучение на Apple M1 и M2 с использованием MPS
|
||||
|
||||
С интеграцией поддержки чипов Apple M1 и M2 в модели Ultralytics YOLO теперь можно обучать ваши модели на устройствах, использующих мощную платформу Metal Performance Shaders (MPS). MPS предлагает производительный способ выполнения вычислений и задач обработки изображений на пользовательских кремниевых чипах Apple.
|
||||
|
||||
Чтобы запустить обучение на чипах Apple M1 и M2, вы должны указать 'mps' в качестве вашего устройства при запуске процесса обучения. Ниже приведены примеры использования Python и командной строки:
|
||||
|
||||
!!! example "Пример обучения с MPS"
|
||||
|
||||
=== "Python"
|
||||
|
||||
```python
|
||||
from ultralytics import YOLO
|
||||
|
||||
# Загрузить модель
|
||||
model = YOLO('yolov8n.pt') # загрузить предобученную модель (рекомендуется для обучения)
|
||||
|
||||
# Обучить модель с использованием MPS
|
||||
results = model.train(data='coco128.yaml', epochs=100, imgsz=640, device='mps')
|
||||
```
|
||||
|
||||
=== "CLI"
|
||||
|
||||
```bash
|
||||
# Начать обучение с предобученной модели *.pt используя MPS
|
||||
yolo detect train data=coco128.yaml model=yolov8n.pt epochs=100 imgsz=640 device=mps
|
||||
```
|
||||
|
||||
Используя вычислительные возможности чипов M1/M2, это позволяет более эффективно обрабатывать задачи обучения. Для более подробного руководства и расширенных параметров конфигурации, пожалуйста, обратитесь к [документации PyTorch MPS](https://pytorch.org/docs/stable/notes/mps.html).
|
||||
|
||||
## Логирование
|
||||
|
||||
В процессе обучения модели YOLOv8 вы можете найти ценным отслеживание производительности модели со временем. Здесь на помощь приходит логирование. YOLO от Ultralytics поддерживает три типа логгеров - Comet, ClearML и TensorBoard.
|
||||
|
||||
Чтобы использовать логгер, выберите его из выпадающего меню в приведенном выше примере кода и запустите его. Выбранный логгер будет установлен и инициализирован.
|
||||
|
||||
### Comet
|
||||
|
||||
[Comet](https://www.comet.ml/site/) - это платформа, которая позволяет ученым и разработчикам отслеживать, сравнивать, объяснять и оптимизировать эксперименты и модели. Она предоставляет такие функции, как метрики в реальном времени, сравнение кода и отслеживание гиперпараметров.
|
||||
|
||||
Чтобы использовать Comet:
|
||||
|
||||
!!! example ""
|
||||
|
||||
=== "Python"
|
||||
```python
|
||||
# pip install comet_ml
|
||||
import comet_ml
|
||||
|
||||
comet_ml.init()
|
||||
```
|
||||
|
||||
Не забудьте войти в свою учетную запись Comet на их сайте и получить свой API-ключ. Вам нужно будет добавить его в переменные среды или в свой скрипт, чтобы вести журнал своих экспериментов.
|
||||
|
||||
### ClearML
|
||||
|
||||
[ClearML](https://www.clear.ml/) - это открытая платформа, которая автоматизирует отслеживание экспериментов и помогает в эффективном обмене ресурсами. Она предназначена для помощи командам в управлении, выполнении и воспроизведении их работы в области ML более эффективно.
|
||||
|
||||
Чтобы использовать ClearML:
|
||||
|
||||
!!! example ""
|
||||
|
||||
=== "Python"
|
||||
```python
|
||||
# pip install clearml
|
||||
import clearml
|
||||
|
||||
clearml.browser_login()
|
||||
```
|
||||
|
||||
После запуска этого скрипта вам нужно будет войти в вашу учетную запись ClearML в браузере и аутентифицировать вашу сессию.
|
||||
|
||||
### TensorBoard
|
||||
|
||||
[TensorBoard](https://www.tensorflow.org/tensorboard) - это инструмент визуализации для TensorFlow. Он позволяет вам визуализировать граф TensorFlow, выводить количественные метрики о выполнении вашего графа и показывать дополнительные данные, такие как изображения, проходящие через него.
|
||||
|
||||
Чтобы использовать TensorBoard в [Google Colab](https://colab.research.google.com/github/ultralytics/ultralytics/blob/main/examples/tutorial.ipynb):
|
||||
|
||||
!!! example ""
|
||||
|
||||
=== "CLI"
|
||||
```bash
|
||||
load_ext tensorboard
|
||||
tensorboard --logdir ultralytics/runs # заменить на директорию 'runs'
|
||||
```
|
||||
|
||||
Чтобы использовать TensorBoard локально, запустите приведенную ниже команду и просмотрите результаты по адресу http://localhost:6006/.
|
||||
|
||||
!!! example ""
|
||||
|
||||
=== "CLI"
|
||||
```bash
|
||||
tensorboard --logdir ultralytics/runs # заменить на директорию 'runs'
|
||||
```
|
||||
|
||||
Это загрузит TensorBoard и направит его к каталогу, где сохраняются ваши журналы обучения.
|
||||
|
||||
После настройки вашего логгера вы можете продолжать обучение модели. Все метрики обучения будут автоматически записаны на выбранной вами платформе, и вы сможете получить доступ к этим журналам, чтобы отслеживать производительность вашей модели со временем, сравнивать различные модели и определять области для улучшения.
|
||||
86
docs/ru/modes/val.md
Normal file
86
docs/ru/modes/val.md
Normal file
|
|
@ -0,0 +1,86 @@
|
|||
---
|
||||
comments: true
|
||||
description: Руководство по проверке моделей YOLOv8. Узнайте, как оценить производительность ваших моделей YOLO, используя параметры проверки и метрики с примерами на Python и CLI.
|
||||
keywords: Ultralytics, YOLO Документация, YOLOv8, проверка, оценка модели, гиперпараметры, точность, метрики, Python, CLI
|
||||
---
|
||||
|
||||
# Валидация моделей с Ultralytics YOLO
|
||||
|
||||
<img width="1024" src="https://github.com/ultralytics/assets/raw/main/yolov8/banner-integrations.png" alt="Ultralytics YOLO экосистема и интеграции">
|
||||
|
||||
## Введение
|
||||
|
||||
Валидация является критически важным этапом в процессе машинного обучения, позволяющим оценить качество ваших обученных моделей. Режим Val в Ultralytics YOLOv8 обеспечивает набор инструментов и метрик для оценки производительности ваших моделей по обнаружению объектов. Это руководство служит полным ресурсом для понимания того, как эффективно использовать режим Val, чтобы обеспечить точность и надежность ваших моделей.
|
||||
|
||||
## Зачем проверять с Ultralytics YOLO?
|
||||
|
||||
Вот почему использование режима Val YOLOv8 выгодно:
|
||||
|
||||
- **Точность:** Получите точные метрики, такие как mAP50, mAP75 и mAP50-95, для всесторонней оценки вашей модели.
|
||||
- **Удобство:** Используйте встроенные функции, которые запоминают настройки обучения, упрощая процесс валидации.
|
||||
- **Гибкость:** Проверяйте вашу модель с использованием тех же или разных наборов данных и размеров изображений.
|
||||
- **Настройка гиперпараметров:** Используйте метрики проверки для дополнительной настройки вашей модели для лучшей производительности.
|
||||
|
||||
### Основные функции режима Val
|
||||
|
||||
Вот некоторые заметные функции, предлагаемые режимом Val YOLOv8:
|
||||
|
||||
- **Автоматизированные настройки:** Модели запоминают свои конфигурации обучения для простой валидации.
|
||||
- **Поддержка множества метрик:** Оцените вашу модель, основываясь на ряде метрик точности.
|
||||
- **CLI и Python API:** Выберите интерфейс командной строки или Python API в зависимости от вашего предпочтения для проверки.
|
||||
- **Совместимость данных:** Бесперебойно работает с наборами данных, используемыми во время фазы обучения, а также с пользовательскими наборами данных.
|
||||
|
||||
!!! tip "Совет"
|
||||
|
||||
* Модели YOLOv8 автоматически запоминают свои настройки обучения, так что вы можете легко проверить модель с тем же размером изображения и на оригинальном наборе данных, просто используя `yolo val model=yolov8n.pt` или `model('yolov8n.pt').val()`
|
||||
|
||||
## Примеры использования
|
||||
|
||||
Проверьте точность обученной модели YOLOv8n на наборе данных COCO128. Аргументы передавать не требуется, так как `модель` сохраняет `данные` и аргументы в качестве атрибутов модели. См. раздел Аргументы ниже для полного списка аргументов экспорта.
|
||||
|
||||
!!! example ""
|
||||
|
||||
=== "Python"
|
||||
|
||||
```python
|
||||
from ultralytics import YOLO
|
||||
|
||||
# Загрузка модели
|
||||
model = YOLO('yolov8n.pt') # загрузить официальную модель
|
||||
model = YOLO('path/to/best.pt') # загрузить пользовательскую модель
|
||||
|
||||
# Проверка модели
|
||||
metrics = model.val() # аргументы не нужны, набор данных и настройки запомнены
|
||||
metrics.box.map # map50-95
|
||||
metrics.box.map50 # map50
|
||||
metrics.box.map75 # map75
|
||||
metrics.box.maps # список содержит map50-95 каждой категории
|
||||
```
|
||||
=== "CLI"
|
||||
|
||||
```bash
|
||||
yolo detect val model=yolov8n.pt # проверить официальную модель
|
||||
yolo detect val model=path/to/best.pt # проверить пользовательскую модель
|
||||
```
|
||||
|
||||
## Аргументы
|
||||
|
||||
Настройки проверки для моделей YOLO относятся к различным гиперпараметрам и конфигурациям, используемым для оценки производительности модели на наборе данных для проверки. Эти настройки могут влиять на производительность, скорость и точность модели. Некоторые общие параметры проверки YOLO включают размер пакета, частоту проведения проверки во время обучения и метрики, используемые для оценки производительности модели. Другие факторы, которые могут влиять на процесс проверки, включают размер и состав набора данных для проверки и конкретную задачу, для которой используется модель. Важно тщательно настроить и провести эксперименты с этими параметрами, чтобы убедиться, что модель хорошо работает на наборе данных для проверки и для обнаружения и предотвращения переобучения.
|
||||
|
||||
| Ключ | Значение | Описание |
|
||||
|---------------|----------|-----------------------------------------------------------------------------------------|
|
||||
| `data` | `None` | путь к файлу данных, например, coco128.yaml |
|
||||
| `imgsz` | `640` | размер входных изображений как целое число |
|
||||
| `batch` | `16` | количество изображений в пакете (-1 для AutoBatch) |
|
||||
| `save_json` | `False` | сохранить результаты в файл JSON |
|
||||
| `save_hybrid` | `False` | сохранить гибридную версию меток (метки + дополнительные предсказания) |
|
||||
| `conf` | `0.001` | порог уверенности объекта для обнаружения |
|
||||
| `iou` | `0.6` | порог пересечения по объединению (IoU) для NMS (нечеткое сравнение) |
|
||||
| `max_det` | `300` | максимальное количество обнаружений на изображение |
|
||||
| `half` | `True` | использовать полупрецизионность (FP16) |
|
||||
| `device` | `None` | устройство для выполнения, например, cuda device=0/1/2/3 или device=cpu |
|
||||
| `dnn` | `False` | использовать OpenCV DNN для ONNX инференции |
|
||||
| `plots` | `False` | показывать графики во время обучения |
|
||||
| `rect` | `False` | прямоугольная валидация с коллекцией каждого пакета для минимальной паддинга |
|
||||
| `split` | `val` | раздел набора данных для использования в валидации, например, 'val', 'test' или 'train' |
|
||||
|
|
||||
Loading…
Add table
Add a link
Reference in a new issue