description: Узнайте, как использовать режим предсказаний YOLOv8 для различных задач. Изучите различные источники вывода, такие как изображения, видео и форматы данных.
keywords: Ultralytics, YOLOv8, режим предсказаний, источники вывода, задачи предсказания, режим потоковой передачи, обработка изображений, обработка видео, машинное обучение, искусственный интеллект
---
# Прогнозирование моделью Ultralytics YOLO
<imgwidth="1024"src="https://github.com/ultralytics/assets/raw/main/yolov8/banner-integrations.png"alt="Экосистема и интеграции Ultralytics YOLO">
## Введение
В мире машинного обучения и компьютерного зрения процесс извлечения информации из визуальных данных называется 'выводом' или 'предсказанием'. Ultralytics YOLOv8 предлагает мощную функцию, известную как **режим предсказаний**, который предназначен для высокопроизводительного реального времени вывода на широкий спектр источников данных.
| Обнаружение автозапчастей | Обнаружение футболистов | Обнаружение падения людей |
## Почему стоит использовать Ultralytics YOLO для вывода?
Вот почему вам следует рассмотреть режим предсказаний YOLOv8 для ваших различных потребностей в выводе:
- **Универсальность:** Возможность делать выводы по изображениям, видео и даже потоковым трансляциям.
- **Производительность:** Разработан для обработки данных в реальном времени без потери точности.
- **Простота использования:** Интуитивно понятные интерфейсы Python и CLI для быстрого развертывания и тестирования.
- **Высокая настраиваемость:** Различные настройки и параметры для настройки поведения модели вывода в соответствии с вашими конкретными требованиями.
### Ключевые особенности режима предсказаний
Режим предсказаний YOLOv8 разработан, чтобы быть надежным и универсальным, он включает в себя:
- **Совместимость с несколькими источниками данных:** независимо от того, представлены ли ваши данные в виде отдельных изображений, коллекции изображений, видеофайлов или потокового видео, режим предсказаний покрывает все это.
- **Режим потоковой передачи:** Используйте функцию потоковой передачи для создания генератора объектов `Results`, экономящего память. Активируйте это, установив `stream=True` в методе вызова предиктора.
- **Пакетная обработка:** Возможность обрабатывать несколько изображений или видеокадров за один пакет, что дополнительно ускоряет время вывода.
- **Дружественная интеграция:** Легко интегрируется с существующими данными и другими программными компонентами благодаря гибкому API.
Модели Ultralytics YOLO возвращают либо список объектов `Results`, либо генератор объектов `Results` в Python, экономящий память, когда `stream=True` передается в модель во время вывода:
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` ✅. Режим потоковой передачи полезен для обработки видео или живых трансляций, так как создает генератор результатов вместо загрузки всех кадров в память.
Используйте `stream=True` для обработки длинных видеороликов или больших наборов данных для эффективного управления памятью. Когда `stream=False`, результаты для всех кадров или точек данных хранятся в памяти, что может быстро накопиться и вызвать ошибки переполнения памяти для больших входов. В отличие от этого, `stream=True` использует генератор, который хранит в памяти результаты только текущего кадра или точки данных, значительно сокращая потребление памяти и предотвращая проблемы с переполнением памяти.
| 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. |
Ниже приведены примеры кода для использования каждого типа источника: