Ultralytics HUB Inference API
После того как ты обучишь модель, ты сможешь бесплатно пользоваться Shared Inference API. Если ты являешься Pro-пользователем, то можешь получить доступ к Dedicated Inference API. Ultralytics HUB Inference API позволяет тебе запускать интерференцию через наш REST API без необходимости устанавливать и настраивать локально среду Ultralytics YOLO .
Смотри: Ultralytics Подробное описание HUB Inference API Walkthrough
Специализированный API для работы с выводами
В ответ на высокий спрос и всеобщий интерес мы с радостью представляем Ultralytics HUB Dedicated Inference API, предлагая развертывание в один клик в выделенной среде для наших Pro-пользователей!
Примечание
Мы рады предложить эту функцию БЕСПЛАТНО во время публичного бета-тестирования в рамках Pro Plan, а в будущем возможно появление платных уровней.
- Глобальное покрытие: Развернут в 38 регионах по всему миру, обеспечивая доступ с низкой задержкой из любого места. Смотри полный список регионов Google Cloud.
- Google Cloud Run-Backed: Поддерживается Google Cloud Run, обеспечивая бесконечно масштабируемую и высоконадежную инфраструктуру.
- Высокая скорость: Суб-100 мс задержки возможны для YOLOv8n выводов в разрешении 640 из близлежащих регионов на основе тестирования Ultralytics .
- Усиленная безопасность: Обеспечивает надежные средства безопасности, чтобы защитить твои данные и обеспечить соответствие отраслевым стандартам. Узнай больше о безопасности Google Cloud.
Чтобы использовать Ultralytics HUB Dedicated Inference API, нажми на кнопку Start Endpoint. Далее используй уникальный URL конечной точки, как описано в руководствах ниже.
Наконечник
Выбирай регион с наименьшей задержкой для наилучшей производительности, как описано в документации.
Чтобы отключить выделенную конечную точку, нажми на кнопку Stop Endpoint.
API совместного вывода
Чтобы использовать Ultralytics HUB Shared Inference API, следуй приведенным ниже руководствам.
Бесплатные пользователи имеют следующие ограничения по использованию:
- 100 звонков / час
- 1000 звонков / месяц
Пользователи Pro имеют следующие ограничения по использованию:
- 1000 звонков / час
- 10000 звонков / месяц
Python
Чтобы получить доступ к Ultralytics HUB Inference API с помощью Python, используй следующий код:
import requests
# API URL
url = "https://predict.ultralytics.com"
# Headers, use actual API_KEY
headers = {"x-api-key": "API_KEY"}
# Inference arguments (use actual MODEL_ID)
data = {"model": "https://hub.ultralytics.com/models/MODEL_ID", "imgsz": 640, "conf": 0.25, "iou": 0.45}
# Load image and send request
with open("path/to/image.jpg", "rb") as image_file:
files = {"file": image_file}
response = requests.post(url, headers=headers, files=files, data=data)
print(response.json())
Примечание
Замени MODEL_ID
с нужным идентификатором модели, API_KEY
с твоим настоящим ключом API, и path/to/image.jpg
укажи путь к изображению, на котором ты хочешь запустить inference.
Если ты используешь наш Специализированный API для работы с выводами, замените url
также.
cURL
Чтобы получить доступ к Ultralytics HUB Inference API с помощью cURL, используй следующий код:
curl -X POST "https://predict.ultralytics.com" \
-H "x-api-key: API_KEY" \
-F "model=https://hub.ultralytics.com/models/MODEL_ID" \
-F "file=@/path/to/image.jpg" \
-F "imgsz=640" \
-F "conf=0.25" \
-F "iou=0.45"
Примечание
Замени MODEL_ID
с нужным идентификатором модели, API_KEY
с твоим настоящим ключом API, и path/to/image.jpg
укажи путь к изображению, на котором ты хочешь запустить inference.
Если ты используешь наш Специализированный API для работы с выводами, замените url
также.
Аргументы
Полный список доступных аргументов для вывода смотри в таблице ниже.
Аргумент | По умолчанию | Тип | Описание |
---|---|---|---|
file | file | Изображение или видеофайл, который будет использоваться для выводов. | |
imgsz | 640 | int | Размер входного изображения, допустимый диапазон 32 - 1280 Пикселей. |
conf | 0.25 | float | Доверительный порог для прогнозов, допустимый диапазон 0.01 - 1.0 . |
iou | 0.45 | float | Пересечение над Союзом (IoU) порог, допустимый диапазон 0.0 - 0.95 . |
Ответ
Ultralytics HUB Inference API возвращает ответ в формате JSON.
Классификация
Классификационная модель
import requests
# API URL
url = "https://predict.ultralytics.com"
# Headers, use actual API_KEY
headers = {"x-api-key": "API_KEY"}
# Inference arguments (use actual MODEL_ID)
data = {"model": "https://hub.ultralytics.com/models/MODEL_ID", "imgsz": 640, "conf": 0.25, "iou": 0.45}
# Load image and send request
with open("path/to/image.jpg", "rb") as image_file:
files = {"file": image_file}
response = requests.post(url, headers=headers, files=files, data=data)
print(response.json())
Обнаружение
Модель обнаружения
import requests
# API URL
url = "https://predict.ultralytics.com"
# Headers, use actual API_KEY
headers = {"x-api-key": "API_KEY"}
# Inference arguments (use actual MODEL_ID)
data = {"model": "https://hub.ultralytics.com/models/MODEL_ID", "imgsz": 640, "conf": 0.25, "iou": 0.45}
# Load image and send request
with open("path/to/image.jpg", "rb") as image_file:
files = {"file": image_file}
response = requests.post(url, headers=headers, files=files, data=data)
print(response.json())
OBB
Модель OBB
import requests
# API URL
url = "https://predict.ultralytics.com"
# Headers, use actual API_KEY
headers = {"x-api-key": "API_KEY"}
# Inference arguments (use actual MODEL_ID)
data = {"model": "https://hub.ultralytics.com/models/MODEL_ID", "imgsz": 640, "conf": 0.25, "iou": 0.45}
# Load image and send request
with open("path/to/image.jpg", "rb") as image_file:
files = {"file": image_file}
response = requests.post(url, headers=headers, files=files, data=data)
print(response.json())
{
"images": [
{
"results": [
{
"class": 0,
"name": "person",
"confidence": 0.92,
"box": {
"x1": 374.85565,
"x2": 392.31824,
"x3": 412.81805,
"x4": 395.35547,
"y1": 264.40704,
"y2": 267.45728,
"y3": 150.0966,
"y4": 147.04634
}
}
],
"shape": [
750,
600
],
"speed": {
"inference": 200.8,
"postprocess": 0.8,
"preprocess": 2.8
}
}
],
"metadata": ...
}
Сегментация
Модель сегментации
import requests
# API URL
url = "https://predict.ultralytics.com"
# Headers, use actual API_KEY
headers = {"x-api-key": "API_KEY"}
# Inference arguments (use actual MODEL_ID)
data = {"model": "https://hub.ultralytics.com/models/MODEL_ID", "imgsz": 640, "conf": 0.25, "iou": 0.45}
# Load image and send request
with open("path/to/image.jpg", "rb") as image_file:
files = {"file": image_file}
response = requests.post(url, headers=headers, files=files, data=data)
print(response.json())
{
"images": [
{
"results": [
{
"class": 0,
"name": "person",
"confidence": 0.92,
"box": {
"x1": 118,
"x2": 416,
"y1": 112,
"y2": 660
},
"segments": {
"x": [
266.015625,
266.015625,
258.984375,
...
],
"y": [
110.15625,
113.67188262939453,
120.70311737060547,
...
]
}
}
],
"shape": [
750,
600
],
"speed": {
"inference": 200.8,
"postprocess": 0.8,
"preprocess": 2.8
}
}
],
"metadata": ...
}
Поза
Поза модели
import requests
# API URL
url = "https://predict.ultralytics.com"
# Headers, use actual API_KEY
headers = {"x-api-key": "API_KEY"}
# Inference arguments (use actual MODEL_ID)
data = {"model": "https://hub.ultralytics.com/models/MODEL_ID", "imgsz": 640, "conf": 0.25, "iou": 0.45}
# Load image and send request
with open("path/to/image.jpg", "rb") as image_file:
files = {"file": image_file}
response = requests.post(url, headers=headers, files=files, data=data)
print(response.json())
{
"images": [
{
"results": [
{
"class": 0,
"name": "person",
"confidence": 0.92,
"box": {
"x1": 118,
"x2": 416,
"y1": 112,
"y2": 660
},
"keypoints": {
"visible": [
0.9909399747848511,
0.8162999749183655,
0.9872099757194519,
...
],
"x": [
316.3871765136719,
315.9374694824219,
304.878173828125,
...
],
"y": [
156.4207763671875,
148.05775451660156,
144.93240356445312,
...
]
}
}
],
"shape": [
750,
600
],
"speed": {
"inference": 200.8,
"postprocess": 0.8,
"preprocess": 2.8
}
}
],
"metadata": ...
}