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

Ultralytics HUB Inference API

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

Скриншот Ultralytics HUB, вкладка Deploy на странице Model, со стрелкой, указывающей на карточку Dedicated Inference API и на карточку Shared Inference API


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

Выделенный API для инференса

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

Примечание

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

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

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

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

Совет

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

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

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

Общий API для инференса

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

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

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

Python

Чтобы получить доступ к Inference API Ultralytics HUB с помощью 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 с путем к изображению, на котором вы хотите выполнить инференс.

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

cURL

Чтобы получить доступ к Inference API Ultralytics HUB с помощью 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 с путем к изображению, на котором вы хотите выполнить инференс.

Если вы используете наш Выделенный 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.

Ответ

API инференса Ultralytics HUB возвращает 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 год назад ✏️ Обновлено 5 месяцев назад

Комментарии