Инференс
Ultralytics Platform предоставляет API для тестирования обученных моделей. Используйте браузерный Predict вкладку для быстрой проверки или REST API для программного доступа.

Вкладка «Прогноз»
Каждая модель включает в себя Predict вкладка для вывода на основе браузера:
- Перейдите к вашей модели
- Нажмите вкладку «Прогноз»
- Загрузите изображение, используйте пример или включите веб-камеру
- Мгновенный просмотр прогнозов с наложением ограничительных рамок

Методы ввода
Панель прогнозирования поддерживает несколько методов ввода:
| Метод | Описание |
|---|---|
| Загрузка изображений | Перетащите или щелкните, чтобы загрузить изображение |
| Примеры изображений | Нажмите «Встроенные примеры» (изображения набора данных или значения по умолчанию). |
| Захват с веб-камеры | Прямая трансляция с камеры с захватом отдельных кадров |
graph LR
A[Upload Image] --> D[Auto-Inference]
B[Example Image] --> D
C[Webcam Capture] --> D
D --> E[Results + Overlays]
style D fill:#2196F3,color:#fff
style E fill:#4CAF50,color:#fff
Загрузить изображение
Перетащите или нажмите для загрузки:
- Поддерживаемые форматы: JPEG, PNG, WebP, AVIF, HEIC, JP2, TIFF, BMP, DNG, MPO
- Максимальный размер: 10МБ
- Автоматический вывод: результаты появляются автоматически после загрузки
Автоматическое выведение
Панель прогнозирования автоматически запускает инференцию, когда вы загружаете изображение, выбираете пример или захватываете кадр с веб-камеры. Нажимать кнопку не нужно.
Примеры изображений
На панели прогнозирования отображаются примеры изображений из связанного набора данных вашей модели. Если набор данных не связан, используются примеры по умолчанию:
| Изображение | Контент |
|---|---|
bus.jpg | Уличная сцена с транспортными средствами |
zidane.jpg | Спортивная сцена с людьми |
Для моделей OBB вместо этого отображаются аэрофотоснимки лодок и аэропортов.
Предварительно загруженные изображения
Примеры изображений загружаются заранее при загрузке страницы, поэтому нажатие на пример вызывает практически мгновенное вычисление без ожидания загрузки.
Webcam
Нажмите на карточку веб-камеры, чтобы запустить прямую трансляцию:
- Предоставить разрешение камере при запросе
- Нажмите на предварительный просмотр видео, чтобы сделать снимок кадра.
- Вывод выполняется автоматически на захваченном кадре.
- Нажмите еще раз, чтобы перезапустить веб-камеру.
Посмотреть результаты
Отображение результатов вывода:
- Ограничительные рамки с метками классов в виде наложений SVG
- Показатели достоверности для каждого детектирования
- Цвета классов из палитры цветов вашего набора данных (или палитры Ultralytics )
- Разбивка по скорости: предварительная обработка, вывод, постобработка и время работы сети

Панель результатов показывает:
| Поле | Описание |
|---|---|
| Список обнаружений | Каждое обнаружение с названием класса и степенью достоверности |
| Статистика скорости | Предварительная обработка, вывод, последующая обработка, сеть (мс) |
| Ответ JSON | Необработанный ответ API в блоке кода |
Параметры инференса
Настройте поведение обнаружения с помощью параметров в сворачиваемом разделе «Параметры »:

| Параметр | Диапазон | По умолчанию | Описание |
|---|---|---|---|
| Достоверность | 0,01–1,0 | 0.25 | Минимальный порог достоверности |
| IoU | 0,0–0,95 | 0.70 | Порог IoU для NMS |
| Размер изображения | 320, 640, 1280 | 640 | Ввод размера (переключатель) |
Автоматический повторный запуск
Изменение любого параметра автоматически запускает повторное выполнение инференции для текущего изображения с задержкой 500 мс. Повторная загрузка не требуется.
Порог достоверности
Фильтрация предсказаний по достоверности:
- Выше (0.5+): Меньше, более достоверных предсказаний
- Ниже (0.1-0.25): Больше предсказаний, некоторый шум
- По умолчанию (0.25): Сбалансировано для большинства сценариев использования
Порог IoU
Управление Non-Maximum Suppression:
- Выше (0,7+): разрешить больше перекрывающихся полей
- Нижний (0,3–0,5): более агрессивное объединение близких обнаружений
- По умолчанию (0,70): сбалансированное NMS для большинства случаев использования
Прогнозирование развертывания
Каждый запуск выделенная конечная точка включает Predict вкладку непосредственно на карте развертывания. При этом используется собственная служба вывода развертывания, а не общая служба прогнозирования, что позволяет тестировать развернутую конечную точку из браузера.
REST API
Доступ к выводу программным способом:
Аутентификация
Включите ваш ключ API в запросы:
Authorization: Bearer YOUR_API_KEY
Требуется ключ API
Чтобы запустить инференцию из собственных скриптов, блокнотов или приложений, добавьте ключ API. Сгенерируйте его в Settings (раздел «Ключи API» на вкладке «Профиль»).
Конечная точка
POST https://platform.ultralytics.com/api/models/{modelId}/predict
Запрос
import requests
url = "https://platform.ultralytics.com/api/models/MODEL_ID/predict"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
files = {"file": open("image.jpg", "rb")}
data = {"conf": 0.25, "iou": 0.7, "imgsz": 640}
response = requests.post(url, headers=headers, files=files, data=data)
print(response.json())
curl -X POST \
"https://platform.ultralytics.com/api/models/MODEL_ID/predict" \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@image.jpg" \
-F "conf=0.25" \
-F "iou=0.7" \
-F "imgsz=640"
const formData = new FormData();
formData.append("file", fileInput.files[0]);
formData.append("conf", "0.25");
formData.append("iou", "0.7");
formData.append("imgsz", "640");
const response = await fetch(
"https://platform.ultralytics.com/api/models/MODEL_ID/predict",
{
method: "POST",
headers: { Authorization: "Bearer YOUR_API_KEY" },
body: formData,
}
);
const result = await response.json();
console.log(result);

Ответ
{
"images": [
{
"shape": [1080, 1920],
"results": [
{
"class": 0,
"name": "person",
"confidence": 0.92,
"box": { "x1": 100, "y1": 50, "x2": 300, "y2": 400 }
},
{
"class": 2,
"name": "car",
"confidence": 0.87,
"box": { "x1": 400, "y1": 200, "x2": 600, "y2": 350 }
}
],
"speed": {
"preprocess": 1.2,
"inference": 12.5,
"postprocess": 2.3
}
}
],
"metadata": {
"imageCount": 1,
"functionTimeCall": 0.018,
"model": "model.pt",
"version": {
"ultralytics": "8.4.14",
"torch": "2.6.0",
"torchvision": "0.21.0",
"python": "3.13.0"
}
}
}

Поля ответа
| Поле | Тип | Описание |
|---|---|---|
images | массив | Список обработанных изображений |
images[].shape | массив | Размеры изображения [высота, ширина] |
images[].results | массив | Список detect |
images[].results[].name | строка | Имя класса |
images[].results[].confidence | float | Уверенность detect (0-1) |
images[].results[].box | объект | Координаты ограничивающей рамки |
images[].speed | объект | Время обработки в миллисекундах |
metadata | объект | Запрос метаданных и информации о версии |
Ответы, специфичные для задачи
Формат ответа зависит от задачи:
{
"class": 0,
"name": "person",
"confidence": 0.92,
"box": {"x1": 100, "y1": 50, "x2": 300, "y2": 400}
}
{
"class": 0,
"name": "person",
"confidence": 0.92,
"box": {"x1": 100, "y1": 50, "x2": 300, "y2": 400},
"segments": [[100, 50], [150, 60], ...]
}
{
"class": 0,
"name": "person",
"confidence": 0.92,
"box": {"x1": 100, "y1": 50, "x2": 300, "y2": 400},
"keypoints": [
{"x": 200, "y": 75, "conf": 0.95},
...
]
}
{
"results": [
{"class": 0, "name": "cat", "confidence": 0.95},
{"class": 1, "name": "dog", "confidence": 0.03}
]
}
{
"class": 0,
"name": "ship",
"confidence": 0.89,
"box": {"x1": 100, "y1": 50, "x2": 300, "y2": 400},
"obb": {"x1": 105, "y1": 48, "x2": 295, "y2": 55, "x3": 290, "y3": 395, "x4": 110, "y4": 402}
}
Ограничения скорости запросов
Совместное выведение ограничено скоростью 20 запросов/мин на один ключ API. При ограничении пропускной способности API возвращает 429 с Retry-After заголовок. См. полный текст ссылка на ограничение скорости для всех категорий конечных точек.
Нужна большая пропускная способность?
Разверните выделенную конечную точку для неограниченного вывода без ограничений скорости, с предсказуемой пропускной способностью и стабильными ответами с низкой задержкой. Для локального вывода см. руководство по режиму прогнозирования.
Обработка ошибок
Типичные ответы об ошибках:
| Код | Сообщение | Решение |
|---|---|---|
| 400 | Недопустимое изображение | Проверьте формат файла |
| 401 | Не авторизовано | Проверьте ключ API |
| 404 | Модель не найдена | Проверить идентификатор модели |
| 429 | Ограничение скорости | Подождите и повторите попытку или используйте выделенный конечный пункт для неограниченной пропускной способности. |
| 500 | Ошибка сервера | Повторить запрос |
Часто задаваемые вопросы
Могу ли я выполнять инференс на видео?
API принимает отдельные кадры. Для видео:
- Извлекать кадры локально
- Отправлять каждый кадр в API
- Агрегировать результаты
Для видео в реальном времени рассмотрите возможность развертывания выделенной конечной точки.
Как получить аннотированное изображение?
API возвращает предсказания в формате JSON. Для визуализации:
- Используйте предсказания для локальной отрисовки ограничивающих рамок
- Используйте Ultralytics
plot()метод:
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
results = model("image.jpg")
results[0].save("annotated.jpg")
См. документацию по режиму прогнозирования для получения полных результатов API и вариантов визуализации.
Каков максимальный размер изображения?
- Лимит загрузки: 10 МБ
- Recommended: <5MB for fast inference
- Автоматическое изменение размера: Изображения изменяются до выбранного размера.
Image Sizeпараметр
Большие изображения автоматически изменяются в размере с сохранением соотношения сторон.
Могу ли я выполнять пакетный инференс?
Текущий API обрабатывает одно изображение за запрос. Для пакетной обработки:
- Отправлять параллельные запросы
- Используйте выделенную конечную точку для повышения пропускной способности
- Рассмотрите локальный вывод для больших пакетов
Пакетное выведение с помощью Python
import concurrent.futures
import requests
url = "https://predict-abc123.run.app/predict"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
images = ["img1.jpg", "img2.jpg", "img3.jpg"]
def predict(image_path):
with open(image_path, "rb") as f:
return requests.post(url, headers=headers, files={"file": f}).json()
with concurrent.futures.ThreadPoolExecutor(max_workers=4) as executor:
results = list(executor.map(predict, images))