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

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

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

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

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

Классификационная модель

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 месяцев назад ✏️ Обновлено 2 месяца назад

Комментарии