Перейти к содержимому

Ultralytics HUB Inference API

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

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


Смотри: 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 конечной точки, как описано в руководствах ниже.

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

Наконечник

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

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

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

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 также.

Аргументы

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

АргументПо умолчаниюТипОписание
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": ...
}
📅 Создано 10 месяцев назад ✏️ Обновлено 1 месяц назад

Комментарии