YOLO Vision 2026:

Inference#

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

Ultralytics Platform Model Predict Tab With Detections Overlay

Вкладка Предсказание (Predict)#

У каждой модели есть вкладка Predict для вывода в браузере:

  1. Перейди к своей модели
  2. Нажми на вкладку Predict
  3. Загрузи изображение, воспользуйся примером или включи веб-камеру
  4. Посмотри на оверлей для конкретной задачи, сводку предсказаний, время выполнения и исходный ответ.

Ultralytics Platform Predict Tab Image Upload Dropzone

Методы ввода#

Панель прогнозирования поддерживает несколько методов ввода:

МетодОписание
Загрузка изображенияПеретащи файл или кликни, чтобы загрузить изображение
Примеры изображенийНажми на встроенные примеры (изображения из набора данных или стандартные)
Захват с веб-камерыПрямая трансляция с камеры с захватом отдельных кадров
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, DNG, MPO
  • Максимальный размер: 10 МБ
  • Автоматический инференс: Результаты появляются автоматически после загрузки
Авто-инференс

Панель прогнозирования автоматически запускает инференс, когда ты загружаешь изображение, выбираешь пример или захватываешь кадр с веб-камеры. Нажимать кнопку не нужно.

Примеры изображений#

На панели прогнозирования отображаются примеры изображений из связанного набора данных твоей модели. Если набор данных не связан, используются стандартные примеры:

ИзображениеКонтент
bus.jpgУличная сцена с транспортными средствами
zidane.jpgСпортивная сцена с людьми

Для моделей OBB вместо них отображаются снимки с воздуха, на которых запечатлены лодки и аэропорты.

Предварительно загруженные изображения

Примеры изображений предварительно загружаются при открытии страницы, поэтому клик по примеру запускает инференс практически мгновенно, без ожидания скачивания.

Веб-камера#

Нажми на карточку веб-камеры, чтобы запустить трансляцию:

  1. Предоставь разрешение на использование камеры, когда появится запрос
  2. Нажми на предварительный просмотр видео, чтобы захватить кадр
  3. Инференс автоматически запустится для захваченного кадра
  4. Нажми еще раз, чтобы перезапустить веб-камеру

Просмотр результатов#

Результаты инференса отображают выходные данные, соответствующие задаче модели: боксы, маски, ключевые точки, ориентированные боксы, оценки классификации, семантическое покрытие или карту глубины. Результаты для объектов используют цвета классов датасета, если они доступны. Панель также показывает время препроцессинга, инференса, постобработки и сети.

Ultralytics Platform Predict Tab Results With Detections And Speed Stats Панель результатов показывает:

ПолеОписание
Сводка результатовДетекции, классификации или покрытие семантических классов
Статистика скоростиПрепроцессинг, инференс, постобработка и сеть (мс)
JSON-ответНеобработанный API-ответ в блоке кода

Параметры инференса#

Настрой поведение инференса с помощью трех ползунков под изображением:

Ultralytics Platform Predict Tab Parameters Sliders

ПараметрДиапазонПо умолчаниюОписание
Уверенность (Confidence)0.01 – 1.0, шаги по 0.010.25Минимальный порог достоверности
IoU0.0 – 0.95, шаги по 0.010.7Порог NMS IoU
Размер изображения32 – 1280, шаги по 32640Размер изменения входного изображения
Автоматический перезапуск

Изменение любого параметра автоматически перезапускает инференс на текущем изображении с задержкой в 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. Примеры используют плейсхолдеры, пока ты не развернешь модель. После развертывания вкладка Code карточки развертывания заполняет URL эндпоинта и API-ключ, доступные для твоего воркспейса.

Аутентификация#

Включай свой API-ключ в запросы:

Authorization: Bearer YOUR_API_KEY
Требуется API-ключ

Чтобы запускать инференс из своих скриптов, блокнотов или приложений, укажи API-ключ. Сгенерируй его в разделе Settings > API Keys.

Эндпоинт#

POST https://YOUR_DEPLOYMENT_URL.run.app/predict

Запрос#

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())

Ultralytics Platform Predict Tab Code Examples Python Tab

Параметры запроса#

ПараметрТипПо умолчаниюДиапазонОписание
fileфайл--Файл изображения или видео (обязательно, если не задан параметр source)
conffloat0.250.01 – 1.0Минимальный порог достоверности
ioufloat0.70.0 – 0.95Порог NMS IoU
imgszint64032 – 1280Размер входного изображения в пикселях
normalizeboolfalse-Возвращать координаты рамки в диапазоне 0–1
decimalsint50 – 10Десятичная точность для значений координат
sourcestring--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,
        "functionTimeCall": 0.018,
        "task": "detect",
        "version": {
            "ultralytics": "8.x.x",
            "torch": "2.6.0",
            "torchvision": "0.21.0",
            "python": "3.13.0"
        }
    }
}

Ultralytics Platform Predict Tab Json Response View

Поля ответа#

ПолеТипОписание
imagesмассивСписок обработанных изображений
images[].shapeмассивРазмеры изображения [высота, ширина]
images[].resultsмассивСписок обнаружений
images[].results[].classintИндекс класса (целочисленный ID)
images[].results[].namestringНазвание класса
images[].results[].confidencefloatУверенность обнаружения (0-1)
images[].results[].boxобъектКоординаты ограничивающей рамки
images[].speedобъектВремя обработки в миллисекундах
metadataобъектМетаданные запроса и информация о версии

Ответы, специфичные для задачи#

Формат ответа зависит от задачи:

{
  "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. Для высоконагруженного локального инференса см. руководство по режиму Predict.

Обработка ошибок#

Типичные ответы об ошибках:

КодСообщениеРешение
400Недопустимое изображениеПроверь формат файла
401НеавторизованПроверь API-ключ
404Модель не найденаПроверь ID модели
429Лимит запросов превышенПодожди и повтори попытку либо отправь запросы напрямую на выделенный эндпоинт
500Ошибка сервераПовторить запрос
503Сервис недоступенСервис прогнозирования запускается или недоступен; подожди немного и повтори попытку

FAQ#

Можно ли запустить инференс на видео?#

Оба метода инференса принимают видеофайлы:

  • Выделенные эндпоинты напрямую принимают видеофайлы. Поддерживаемые форматы (до 100 МБ): ASF, AVI, GIF, M4V, MKV, MOV, MP4, MPEG, MPG, TS, WEBM, WMV. Каждый кадр обрабатывается индивидуально, и результаты возвращаются для каждого кадра. Подробности см. в разделе выделенные эндпоинты.
  • Общий инференс (/api/models/{id}/predict) использует тот же сервис предсказаний и принимает те же форматы видео. Вкладка Predict в браузере позволяет выбирать только изображения, поэтому для видео используй API или выделенный эндпоинт.

Как получить аннотированное изображение?#

API возвращает предсказания в формате JSON. Для визуализации:

  1. Используй предсказания, чтобы отрисовать рамки локально
  2. Используй метод plot() от Ultralytics:
from ultralytics import YOLO

model = YOLO("yolo26n.pt")
results = model("image.jpg")
results[0].save("annotated.jpg")

Смотри документацию по режиму Predict для получения полного API результатов и опций визуализации.

Каков максимальный размер изображения?#

  • Лимит вкладки Predict: 10 МБ
  • Лимит API выделенного эндпоинта: 100 МБ
  • Автоизменение размера во вкладке Predict: Изображения изменяются до выбранного Image Size перед загрузкой

Большие изображения автоматически изменяются в размере с сохранением соотношения сторон.

Могу ли я запустить пакетный инференс?#

Текущий API обрабатывает по одному изображению за запрос. Для пакетной обработки:

  1. Отправляй отдельные запросы для каждого изображения
  2. Распределяй запросы между выделенными эндпоинтами, когда это уместно
  3. Используй локальный инференс для больших батчей
Пакетный инференс с 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))

Комментарии