Инференс
Платформа Ultralytics предоставляет Inference API для тестирования обученных моделей. Используйте вкладку «Тест» в браузере для быстрой проверки или REST API для программного доступа.
Вкладка «Тест»
Каждая модель включает вкладку «Тест» для инференса через браузер:
- Перейдите к вашей модели
- Нажмите на вкладку Тест
- Загрузите изображение или используйте примеры
- Мгновенно просматривайте предсказания
Загрузить изображение
Перетащите или нажмите для загрузки:
- Поддерживаемые форматы: JPG, PNG, WebP, GIF
- Максимальный размер: 10МБ
- Автоматический вывод: Результаты появляются автоматически
Примеры изображений
Используйте встроенные примеры изображений для быстрого тестирования:
| Изображение | Контент |
|---|---|
bus.jpg | Уличная сцена с транспортными средствами |
zidane.jpg | Спортивная сцена с людьми |
Посмотреть результаты
Отображение результатов вывода:
- Ограничивающие рамки с метками классов
- Показатели достоверности для каждого детектирования
- Цвета классов, соответствующие вашему набору данных
Параметры инференса
Настройте поведение детектирования с помощью параметров:
| Параметр | Диапазон | По умолчанию | Описание |
|---|---|---|---|
| Достоверность | 0.0-1.0 | 0.25 | Минимальный порог достоверности |
| IoU | 0.0-1.0 | 0.70 | Порог IoU для NMS |
| Размер изображения | 32-1280 | 640 | Размерность входного изображения |
Порог достоверности
Фильтрация предсказаний по достоверности:
- Выше (0.5+): Меньше, более достоверных предсказаний
- Ниже (0.1-0.25): Больше предсказаний, некоторый шум
- По умолчанию (0.25): Сбалансировано для большинства сценариев использования
Порог IoU
Управление Non-Maximum Suppression:
- Выше (0,7+): разрешить больше перекрывающихся полей
- Нижний (0,3–0,5): более агрессивное объединение близких обнаружений
- По умолчанию (0,70): сбалансированное NMS для большинства случаев использования
REST API
Доступ к выводу программным способом:
Аутентификация
Включите ваш ключ API в запросы:
Authorization: Bearer YOUR_API_KEY
Конечная точка
POST https://platform.ultralytics.com/api/models/{model_slug}/predict
Запрос
curl -X POST \
"https://platform.ultralytics.com/api/models/username/project/model/predict" \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@image.jpg" \
-F "conf=0.25" \
-F "iou=0.7"
import requests
url = "https://platform.ultralytics.com/api/models/username/project/model/predict"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
files = {"file": open("image.jpg", "rb")}
data = {"conf": 0.25, "iou": 0.7}
response = requests.post(url, headers=headers, files=files, data=data)
print(response.json())
Ответ
{
"success": true,
"predictions": [
{
"class": "person",
"confidence": 0.92,
"box": {
"x1": 100,
"y1": 50,
"x2": 300,
"y2": 400
}
},
{
"class": "car",
"confidence": 0.87,
"box": {
"x1": 400,
"y1": 200,
"x2": 600,
"y2": 350
}
}
],
"image": {
"width": 1920,
"height": 1080
}
}
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
success | логический | Статус запроса |
predictions | массив | Список detect |
predictions[].class | строка | Имя класса |
predictions[].confidence | float | Уверенность detect (0-1) |
predictions[].box | объект | Координаты ограничивающей рамки |
image | объект | Размеры исходного изображения |
Ответы, специфичные для задачи
Формат ответа зависит от задачи:
{
"class": "person",
"confidence": 0.92,
"box": {"x1": 100, "y1": 50, "x2": 300, "y2": 400}
}
{
"class": "person",
"confidence": 0.92,
"box": {"x1": 100, "y1": 50, "x2": 300, "y2": 400},
"segments": [[100, 50], [150, 60], ...]
}
{
"class": "person",
"confidence": 0.92,
"box": {"x1": 100, "y1": 50, "x2": 300, "y2": 400},
"keypoints": [
{"x": 200, "y": 75, "conf": 0.95},
...
]
}
{
"predictions": [
{"class": "cat", "confidence": 0.95},
{"class": "dog", "confidence": 0.03}
]
}
Ограничения скорости запросов
Общий вывод имеет ограничения по скорости:
| План | Запросов/минута | Запросов/день |
|---|---|---|
| Бесплатно | 10 | 100 |
| Pro | 60 | 10,000 |
Для более высоких лимитов разверните выделенную конечную точку.
Обработка ошибок
Типичные ответы об ошибках:
| Код | Сообщение | Решение |
|---|---|---|
| 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")
Каков максимальный размер изображения?
- Лимит загрузки: 10 МБ
- Recommended: <5MB for fast inference
- Автоматическое изменение размера: Изображения масштабируются до
imgszпараметр
Большие изображения автоматически изменяются в размере с сохранением соотношения сторон.
Могу ли я выполнять пакетный инференс?
Текущий API обрабатывает одно изображение за запрос. Для пакетной обработки:
- Отправлять параллельные запросы
- Используйте выделенную конечную точку для повышения пропускной способности
- Рассмотрите локальный вывод для больших пакетов