Ultralytics HUB Inference API
После обучения модели вы можете бесплатно использовать Shared Inference API. Если вы являетесь пользователем Pro, вы можете получить доступ к Dedicated Inference API. Ultralytics HUB Inference API позволяет запускать анализ через наш REST API без необходимости устанавливать и настраивать локально среду Ultralytics YOLO .
Смотреть: Ultralytics Краткое описание API HUB Inference
Специализированный API для выводов
В ответ на высокий спрос и широкий интерес мы с радостью представляем Ultralytics HUB Dedicated Inference API, предлагающий развертывание в один клик в специальной среде для наших пользователей Pro!
Примечание
Мы рады предложить эту функцию БЕСПЛАТНО во время публичного бета-тестирования в рамках Pro Plan, а в будущем возможно появление платных уровней.
- Глобальное покрытие: Развернуто в 38 регионах по всему миру, что обеспечивает доступ с низкой задержкой из любого места. См. полный список регионов Google Cloud.
- Google Cloud Run-Backed: Поддерживается Google Cloud Run, обеспечивая бесконечно масштабируемую и высоконадежную инфраструктуру.
- YOLOv8n Высокая скорость: по результатам тестирования, проведенного на сайте Ultralytics , для вывода данных с близлежащих регионов в разрешении 640 можно использовать время задержки менее 100 мс.
- Повышенная безопасность: Обеспечивает надежные функции безопасности для защиты ваших данных и соответствия отраслевым стандартам. Узнайте больше о безопасности 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
с указанием пути к изображению, на котором вы хотите выполнить вывод.
Если вы используете наш Специализированный 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
с указанием пути к изображению, на котором вы хотите выполнить вывод.
Если вы используете наш Специализированный 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": ...
}