Логический вывод

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

Вкладка прогнозирования модели Ultralytics Platform с наложением результатов обнаружения

Вкладка «Предсказание»

Каждая модель включает вкладку Predict для вывода (инференса) в браузере:

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

Зона загрузки изображения на вкладке прогнозирования Ultralytics Platform

Методы ввода

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

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

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

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

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

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

Для моделей OBB вместо этого отображаются аэрофотоснимки лодок и аэропортов.

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

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

Веб-камера

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

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

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

Результаты вывода отображаются так:

  • Ограничивающие рамки (Bounding boxes) с метками классов в виде наложений SVG
  • Показатели уверенности (Confidence scores) для каждого обнаружения
  • Цвета классов из цветовой палитры твоего набора данных (или стандартной палитры Ultralytics)
  • Разбивка по времени: предобработка, вывод, постобработка и сетевое время

Результаты вкладки прогнозирования Ultralytics Platform с обнаружениями и статистикой скорости

Панель результатов показывает:

ПолеОписание
Список обнаруженийКаждое обнаружение с названием класса и уровнем уверенности
Статистика скоростиПредобработка, вывод, постобработка, сеть (мс)
JSON-ответНеобработанный ответ API в блоке кода

Параметры вывода

Настраивай поведение обнаружения с помощью параметров в сворачиваемом разделе Parameters:

Ползунки параметров вкладки прогнозирования Ultralytics Platform

ПараметрДиапазонПо умолчаниюОписание
Уверенность (Confidence)0.01 – 1.00.25Минимальный порог уверенности
IoU0.0 – 0.950.7Порог NMS IoU
Размер изображения320, 640, 1280 (переключатель в интерфейсе)640Размер входного изображения (API принимает любое значение от 32 до 1280)
Автоперезапуск

Изменение любого параметра автоматически перезапускает вывод на текущем изображении с задержкой 500 мс. Повторно загружать изображение не нужно.

Порог уверенности (Confidence Threshold)

Фильтрация предсказаний по уровню уверенности:

  • Выше (0.5+): меньше предсказаний, но они более точные
  • Ниже (0.1-0.25): больше предсказаний, возможен некоторый шум
  • По умолчанию (0.25): сбалансировано для большинства задач

Порог IoU

Управление подавлением немаксимумов (NMS):

  • Выше (0.7+): разрешить больше перекрывающихся рамок
  • Ниже (0.3-0.5): более агрессивное объединение соседних обнаружений
  • По умолчанию (0.7): сбалансированное поведение NMS для большинства задач

Deployment Predict

Каждая запущенная выделенная конечная точка (dedicated endpoint) включает вкладку Predict непосредственно на своей карточке развертывания. Это использует собственную службу вывода для развертывания, а не общую службу, что позволяет тестировать развернутую конечную точку прямо из браузера.

REST API

Программный доступ к выводу:

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

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

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

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

Конечная точка

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

Вкладка примеров кода Python на панели прогнозирования Ultralytics Platform

Ответ

{
    "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.x.x",
            "torch": "2.6.0",
            "torchvision": "0.21.0",
            "python": "3.13.0"
        }
    }
}

Просмотр JSON-ответа на вкладке прогнозирования Ultralytics Platform

Поля ответа

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

Ответы для конкретных задач

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

{
  "class": 0,
  "name": "person",
  "confidence": 0.92,
  "box": {"x1": 100, "y1": 50, "x2": 300, "y2": 400}
}

Биллинг

Общий инференс (вкладка Predict и эндпоинт /api/models/{id}/predict) включен без дополнительной оплаты во все тарифные планы. За запросы к общему инференсу плата не взимается.

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

Ограничения частоты запросов

Для общего инференса установлено ограничение 20 запросов в минуту на API ключ. При превышении лимита API возвращает 429 с заголовком Retry-After. Ознакомься с полным справочником ограничений для всех категорий эндпоинтов.

Нужна более высокая пропускная способность?

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

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

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

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

Часто задаваемые вопросы (FAQ)

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

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

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

Как получить изображение с аннотациями?

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 результатов и опций визуализации.

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

  • Лимит загрузки: 10 МБ
  • Рекомендуется: <5 МБ для быстрого инференса
  • Автоматическое изменение размера: Изображения масштабируются согласно выбранному параметру 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))

Комментарии