Inference#
Ultralytics Platform предоставляет инференс в браузере для тестирования обученных моделей и выделенные эндпоинты для программного доступа.

Вкладка Предсказание (Predict)#
Каждая модель с весами включает вкладку Predict для инференса в браузере:
- Перейди к своей модели
- Нажми на вкладку Predict
- Загрузи изображение, воспользуйся примером или включи веб-камеру
- Посмотри на оверлей для конкретной задачи, сводку предсказаний, время выполнения и исходный ответ.
Модели без весов вместо этого показывают пустое состояние — сначала обучи модель или загрузи веса.

Методы ввода#
Панель прогнозирования поддерживает несколько методов ввода:
| Метод | Описание |
|---|---|
| Загрузка изображения | Перетащи файл или кликни, чтобы загрузить изображение |
| Примеры изображений | Нажми на встроенные примеры (изображения из набора данных или стандартные) |
| Захват с веб-камеры | Прямая трансляция с камеры с захватом отдельных кадров |
graph LR
A[Upload Image]:::start --> D[Auto-Inference]:::proc
B[Example Image]:::start --> D
C[Webcam Capture]:::start --> D
D --> E[Results + Overlays]:::out
classDef start fill:#4CAF50,color:#fff
classDef proc fill:#2196F3,color:#fff
classDef out fill:#9C27B0,color:#fffЗагрузить изображение#
Перетащи или нажми для загрузки:
- Поддерживаемые форматы: JPEG, PNG, WebP, AVIF, HEIC, JP2, TIFF, BMP
- Максимальный размер: 10 МБ
- Автоматический инференс: Результаты появляются автоматически после загрузки
Панель прогнозирования автоматически запускает инференс, когда ты загружаешь изображение, выбираешь пример или захватываешь кадр с веб-камеры. Нажимать кнопку не нужно.
Перед загрузкой панель изменяет размер изображения так, чтобы его наибольшая сторона соответствовала выбранному значению Image Size, и запрашивает нормализованные координаты. Это ускоряет тестирование в браузере; запросы, отправляемые тобой самостоятельно, не изменяются в размере.
Примеры изображений#
Панель предсказаний отображает до двух примеров изображений из связанного набора данных твоей модели, отдавая предпочтение сплиту val, затем test и затем train. Если набор данных не связан, используются примеры по умолчанию:
| Изображение | Контент |
|---|---|
bus.jpg | Уличная сцена с транспортными средствами |
zidane.jpg | Спортивная сцена с людьми |
Для моделей OBB вместо этого отображаются аэрофотоснимки лодок и аэропорта.
Примеры изображений предварительно загружаются при открытии страницы, поэтому клик по примеру запускает инференс практически мгновенно, без ожидания скачивания.
Веб-камера#
Нажми на карточку веб-камеры, чтобы запустить трансляцию:
- Предоставь разрешение на использование камеры, когда появится запрос
- Нажми на предварительный просмотр видео, чтобы захватить кадр
- Инференс автоматически запустится для захваченного кадра
- Нажми еще раз, чтобы перезапустить веб-камеру
Просмотр результатов#
Результаты инференса отображают выходные данные, соответствующие задаче модели: боксы, маски, ключевые точки, ориентированные боксы, оценки классификации, семантическое покрытие или карту глубины. Результаты для объектов используют цвета классов датасета, если они доступны. Панель также показывает время препроцессинга, инференса, постобработки и сети.
Панель результатов отображает:
| Поле | Описание |
|---|---|
| Сводка результатов | Список для каждого обнаружения либо топ-5 классов для моделей классификации и семантических моделей |
| Статистика скорости | Препроцессинг, инференс, постобработка и сеть (мс) |
| Версии | Версии Ultralytics и PyTorch, а также диапазон глубин или размер маски, где применимо |
| JSON-ответ | Необработанный ответ API в блоке кода с исключенными данными карты base64 |
После получения результатов поверх предварительного просмотра появляются два элемента управления: нажми на изображение, чтобы увеличить его с сохранением наложений, и используй кнопку загрузки, чтобы сохранить аннотированный JPEG текущего результата.
Параметры инференса#
Настрой поведение инференса с помощью трех ползунков под изображением:

| Параметр | Диапазон | По умолчанию | Описание |
|---|---|---|---|
| Уверенность (Confidence) | 0.01 – 1.0, шаги по 0.01 | 0.25 | Минимальный порог достоверности |
| IoU | 0.0 – 0.95, шаги по 0.01 | 0.7 | Порог NMS IoU |
| Размер изображения | 32 – 1280, шаги по 32 | 640 | Размер изменения входного изображения |
Изменение любого параметра автоматически перезапускает инференс на текущем изображении с задержкой в 500 мс. Повторно загружать не нужно.
Порог достоверности (Confidence Threshold)#
Фильтрация предсказаний по уверенности:
- Выше (0.5+): Меньше предсказаний, но они более точные
- Ниже (0.1-0.25): Больше предсказаний, возможен шум
- По умолчанию (0.25): Сбалансировано для большинства случаев использования
Порог IoU#
Управление Non-Maximum Suppression (NMS):
- Выше (0.7+): Разрешить больше пересекающихся рамок
- Нижняя (0.3-0.5): Более агрессивно подавлять пересекающиеся детекции
- По умолчанию (0.7): Сбалансированное поведение NMS для большинства случаев использования
Инференс развертывания (Deployment Predict)#
Каждый запущенный выделенный эндпоинт включает в себя вкладку Predict прямо на карточке развертывания. Здесь используется собственный сервис инференса развертывания, а не общий сервис предсказаний, что позволяет тебе тестировать развернутый эндпоинт прямо из браузера.
API выделенного эндпоинта#
Карточка API Docs на вкладке модели Predict содержит примеры запросов на Python, JavaScript и cURL, предварительно заполненные значениями доверия, IoU и размера изображения, установленными в данный момент на ползунках. URL и ключ являются заполнителями, пока ты не развернешь модель: кнопка Deploy рядом с вкладками кода ведет на вкладку модели Deploy. После развертывания вкладка Code карточки развертывания заполняет URL этого эндпоинта и, для владельцев рабочей области, ее привязанный ключ API, готовые к копированию и запуску.
Аутентификация#
Включай свой API-ключ в запросы:
Authorization: Bearer YOUR_API_KEYЧтобы запустить инференс из собственных скриптов, ноутбуков или приложений, включи ключ API. Сгенерируй его в Settings > API Keys. Выделенный эндпоинт принимает только тот единственный ключ, с которым он был создан; общий API модели принимает любой активный ключ в рабочей области, а публичные модели также принимают анонимные запросы.
Эндпоинт#
Выделенные эндпоинты принимают запросы по собственному URL:
POST https://YOUR_DEPLOYMENT_URL.run.app/predictОбщий инференс использует Platform API с полным путем модели:
POST https://platform.ultralytics.com/api/models/{owner}/{project}/{model}/predictОба принимают одинаковое тело multipart/form-data и возвращают одинаковую форму ответа. С помощью Python SDK используй client.models.predict(owner, project, model, body=...) для общего вывода или client.deployments.predict(owner, deployment, body=...) для выделенного развертывания:
from ultralytics_platform import Platform
client = Platform() # reads ULTRALYTICS_API_KEY
with open("image.jpg", "rb") as f:
results = client.models.predict("acme-vision", "inspection", "v3", body={"file": f, "conf": 0.25})Запрос#
import requests
url = "https://YOUR_DEPLOYMENT_URL.run.app/predict"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
data = {"conf": 0.25, "iou": 0.7, "imgsz": 640}
with open("image.jpg", "rb") as image_file:
response = requests.post(url, headers=headers, files={"file": image_file}, data=data)
print(response.json())
Параметры запроса#
| Параметр | Тип | По умолчанию | Диапазон | Описание |
|---|---|---|---|---|
file | файл | - | - | Файл изображения или видео (обязательно, если не задано source) |
conf | float | 0.25 | 0.01 – 1.0 | Минимальный порог достоверности |
iou | float | 0.7 | 0.0 – 0.95 | Порог NMS IoU |
imgsz | int | 640 | 32 – 1280 | Размер входного изображения в пикселях |
normalize | bool | false | - | Возвращать координаты рамки в диапазоне 0–1 |
decimals | int | 5 | 0 – 10 | Десятичная точность для значений координат |
bits | int | 8 | 8, 12, 16 | Квантование карты глубин, только для моделей глубины |
source | string | - | - | URL изображения или строка base64 (альтернатива file) |
Ответ#
{
"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,
"functionTimeAlive": 1284.51,
"functionTimeCall": 0.018,
"task": "detect",
"version": {
"ultralytics": "8.x.x",
"torch": "2.6.0",
"torchvision": "0.21.0",
"python": "3.13.0"
}
}
}
Поля ответа#
| Поле | Тип | Описание |
|---|---|---|
images | массив | Список обработанных изображений, по одному элементу на кадр видео для видео |
images[].shape | массив | Размеры изображения [высота, ширина] |
images[].results | массив | Список обнаружений |
images[].results[].class | int | Индекс класса (целочисленный ID) |
images[].results[].name | string | Название класса |
images[].results[].confidence | float | Уверенность обнаружения (0-1) |
images[].results[].box | объект | Координаты ограничивающей рамки |
images[].semantic_mask | объект | Попиксельная карта классов (только для семантических моделей) |
images[].depth | объект | Попиксельная карта глубин (только для моделей глубины) |
images[].speed | объект | Время обработки в миллисекундах |
metadata | объект | Количество изображений, тайминги сервиса, задача и версии Ultralytics/PyTorch |
Ответы, специфичные для задачи#
Формат ответа зависит от задачи:
{
"class": 0,
"name": "person",
"confidence": 0.92,
"box": {"x1": 100, "y1": 50, "x2": 300, "y2": 400}
}Ограничения частоты запросов#
Общий API моделей ограничен 20 запросами в минуту для каждого ключа API, вошедшего в систему пользователя или анонимного IP-адреса. При превышении лимита API возвращает 429 с заголовоком Retry-After. Полную информацию обо всех категориях эндпоинтов см. в справочнике по лимитам запросов.
Запросы, отправляемые напрямую на выделенный эндпоинт, не проходят через ограничитель частоты Platform API. Эндпоинт по-прежнему сбрасывает нагрузку с помощью 429 и заголовка Retry-After, когда он временно перегружен. Для локального инференса с высоким объемом см. руководство по режиму Predict.
Обработка ошибок#
Типичные ответы об ошибках:
| Код | Сообщение | Решение |
|---|---|---|
| 400 | Недопустимое изображение | Проверь формат файла или убедись, что у модели есть обученные веса |
| 401 | Неавторизован | Проверь API-ключ |
| 404 | Модель не найдена | Проверь имена владельца, проекта и модели |
| 413 | Входные данные слишком велики | Уменьши размер файла ниже лимита эндпоинта |
| 429 | Лимит запросов превышен | Подожди и повтори попытку либо отправь запросы напрямую на выделенный эндпоинт |
| 500 | Ошибка сервера | Повторить запрос |
| 503 | Сервис недоступен | Сервис прогнозирования запускается или недоступен; подожди немного и повтори попытку |
FAQ#
Оба метода инференса принимают видеофайлы:
- Выделенные эндпоинты принимают видеофайлы напрямую. Поддерживаемые форматы (до 100 МБ): ASF, AVI, GIF, M4V, MKV, MOV, MP4, MPEG, MPG, TS, WEBM, WMV. Каждый кадр обрабатывается индивидуально, и результаты возвращаются для каждого кадра. Подробности см. в разделе выделенные эндпоинты.
- Общий инференс (
POST /api/models/{owner}/{project}/{model}/predict) использует тот же сервис предсказаний и принимает те же форматы видео. Вкладка браузера Predict выбирает только изображения, поэтому для видео используй API или выделенный эндпоинт.
На вкладке Predict кнопка загрузки поверх предварительного просмотра сохраняет текущий результат в виде аннотированного JPEG. Сам API возвращает предсказания в формате JSON. Чтобы визуализировать их:
- Используй предсказания, чтобы отрисовать рамки локально
- Используй метод Ultralytics
plot():
from ultralytics import YOLO model = YOLO("yolo26n.pt") results = model("image.jpg") results[0].save("annotated.jpg")Полный API результатов и параметры визуализации см. в документации по режиму Predict.
- Лимит вкладки Predict: 10 МБ
- Лимит API: 100 МБ как для общего инференса, так и для выделенных эндпоинтов
- Автоматическое изменение размера на вкладке Predict: изображения изменяются до выбранного размера
Image Sizeперед загрузкой
Большие изображения автоматически изменяются в браузере с сохранением пропорций. Запросы, отправляемые тобой самостоятельно, не изменяются в размере, поэтому изображения, превышающие лимит, отклоняются с ошибкой
413.Текущий API обрабатывает по одному изображению за запрос. Для пакетной обработки:
- Отправляй отдельные запросы для каждого изображения
- Распределяй запросы между выделенными эндпоинтами, когда это уместно
- Используй локальный инференс для больших батчей
Пакетный инференс с Pythonimport concurrent.futures import requests url = "https://YOUR_DEPLOYMENT_URL.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))