Перейти к содержанию

Inference API Ultralytics HUB

После того, как вы обучите модель, вы можете бесплатно использовать Shared Inference API. Если вы являетесь пользователем Pro, вы можете получить доступ к Dedicated Inference API. Ultralytics HUB Inference API позволяет вам запускать вывод через наш REST API без необходимости устанавливать и настраивать среду Ultralytics YOLO локально.

Скриншот Ultralytics HUB вкладки Deploy (Развертывание) внутри страницы Model (Модель) со стрелкой, указывающей на карточку Dedicated Inference API (Выделенный Inference API) и на карточку Shared Inference API (Общий Inference API)


Смотреть: Пошаговое руководство по Inference API Ultralytics HUB

Выделенный Inference API

В ответ на высокий спрос и широкий интерес мы рады представить Ultralytics HUB Dedicated Inference API, предлагающий развертывание в один клик в выделенной среде для наших пользователей Pro!

Примечание

Мы рады предложить эту функцию БЕСПЛАТНО во время нашей публичной бета-версии в рамках Pro Plan, с возможными платными уровнями в будущем.

  • Глобальное покрытие: Развернуто в 38 регионах по всему миру, что обеспечивает доступ с низкой задержкой из любой точки. См. полный список регионов Google Cloud.
  • На базе Google Cloud Run: Поддерживается Google Cloud Run, обеспечивая бесконечно масштабируемую и надежную инфраструктуру.
  • Высокая скорость: Задержка менее 100 мс возможна для инференса YOLOv8n с разрешением 640 из близлежащих регионов на основе тестирования Ultralytics.
  • Усиленная безопасность: Предоставляет надежные функции безопасности для защиты ваших данных и обеспечения соответствия отраслевым стандартам. Узнайте больше о безопасности Google Cloud.

Чтобы использовать выделенный Inference API Ultralytics HUB, нажмите кнопку Start Endpoint. Затем используйте уникальный URL-адрес конечной точки, как описано в руководствах ниже.

Скриншот Ultralytics HUB вкладки Deploy (Развертывание) внутри страницы Model (Модель) со стрелкой, указывающей на кнопку Start Endpoint (Запустить Endpoint) в карточке Dedicated Inference API (Выделенный Inference API)

Совет

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

Чтобы выключить выделенную конечную точку, нажмите кнопку Stop Endpoint.

Скриншот Ultralytics HUB вкладки Deploy (Развертывание) внутри страницы Model (Модель) со стрелкой, указывающей на кнопку Stop Endpoint (Остановить Endpoint) в карточке Dedicated Inference API (Выделенный Inference API)

Shared Inference API

Чтобы использовать общий Inference API Ultralytics HUB, следуйте приведенным ниже руководствам.

Общий Inference API Ultralytics HUB имеет следующие ограничения по использованию:

  • 100 вызовов / час

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 с нужным 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 с нужным ID модели, API_KEY с вашим фактическим ключом API, и path/to/image.jpg с путем к изображению, на котором вы хотите выполнить инференс.

Если вы используете наш Выделенный Inference API, замените url тоже.

Аргументы

Полный список доступных аргументов вывода см. в таблице ниже.

АргументПо умолчаниюТипОписание
filefileФайл изображения или видео, который будет использоваться для инференса.
imgsz640intРазмер входного изображения, допустимый диапазон: 32 - 1280 пикселей.
conf0.25floatПорог достоверности для прогнозов, допустимый диапазон 0.01 - 1.0.
iou0.45floatПересечение над объединением (IoU) порог, допустимый диапазон 0.0 - 0.95.

Ответ

Ultralytics HUB Inference API возвращает JSON-ответ.

Классификация

Модель классификации

from ultralytics import YOLO

# Load model
model = YOLO("yolov8n-cls.pt")

# Run inference
results = model("image.jpg")

# Print image.jpg results in JSON format
print(results[0].to_json())
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"
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
        }
      ],
      "shape": [
        750,
        600
      ],
      "speed": {
        "inference": 200.8,
        "postprocess": 0.8,
        "preprocess": 2.8
      }
    }
  ],
  "metadata": ...
}

Обнаружение

Модель обнаружения

from ultralytics import YOLO

# Load model
model = YOLO("yolov8n.pt")

# Run inference
results = model("image.jpg")

# Print image.jpg results in JSON format
print(results[0].to_json())
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"
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
          }
        }
      ],
      "shape": [
        750,
        600
      ],
      "speed": {
        "inference": 200.8,
        "postprocess": 0.8,
        "preprocess": 2.8
      }
    }
  ],
  "metadata": ...
}

OBB

OBB Модель

from ultralytics import YOLO

# Load model
model = YOLO("yolov8n-obb.pt")

# Run inference
results = model("image.jpg")

# Print image.jpg results in JSON format
print(results[0].tojson())
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"
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": ...
}

Сегментация

Модель сегментации

from ultralytics import YOLO

# Load model
model = YOLO("yolov8n-seg.pt")

# Run inference
results = model("image.jpg")

# Print image.jpg results in JSON format
print(results[0].tojson())
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"
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": ...
}

Поза

Модель позы

from ultralytics import YOLO

# Load model
model = YOLO("yolov8n-pose.pt")

# Run inference
results = model("image.jpg")

# Print image.jpg results in JSON format
print(results[0].tojson())
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"
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": ...
}


📅 Создано 1 год назад ✏️ Обновлено 8 месяцев назад
glenn-jochersergiuwaxmannMatthewNoycejk4eUltralyticsAssistantRizwanMunawarpriytosh-tripathi

Комментарии