コンテンツへスキップ

Ultralytics ハブ推論API

Ultralytics HUB Inference APIを使えば、Ultralytics YOLO の環境をローカルにインストールしてセットアップしなくても、REST APIを通じて推論を実行することができます。

Ultralytics  Ultralytics Inference API カードを指す矢印がある、Model ページ内の Deploy タブの HUB スクリーンショット。


見るんだ: Ultralytics HUB推論APIウォークスルー

Python

Python を使ってUltralytics HUB Inference API にアクセスするには、次のコードを使う:

import requests

# API URL, use actual MODEL_ID
url = "https://api.ultralytics.com/v1/predict/MODEL_ID"

# Headers, use actual API_KEY
headers = {"x-api-key": "API_KEY"}

# Inference arguments (optional)
data = {"size": 640, "confidence": 0.25, "iou": 0.45}

# Load image and send request
with open("path/to/image.jpg", "rb") as image_file:
    files = {"image": 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 に、推論を実行したいイメージのパスを指定します。

cURL

cURLを使ってUltralytics HUB Inference APIにアクセスするには、以下のコードを使用する:

curl -X POST "https://api.ultralytics.com/v1/predict/MODEL_ID" \
    -H "x-api-key: API_KEY" \
    -F "image=@/path/to/image.jpg" \
    -F "size=640" \
    -F "confidence=0.25" \
    -F "iou=0.45"

交換 MODEL_ID を希望のモデルIDに置き換えてください、 API_KEY を実際のAPIキーに置き換えて path/to/image.jpg に、推論を実行したいイメージのパスを指定します。

論争

使用可能な推論引数の一覧は以下の表を参照のこと。

議論 デフォルト タイプ 説明
image image 推論に使用する画像ファイル。
url str ファイルを渡さない場合の画像の URL。
size 640 int 入力画像のサイズ、有効範囲は 32 - 1280 ピクセル。
confidence 0.25 float 予測の信頼度しきい値、有効範囲 0.01 - 1.0.
iou 0.45 float Union(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].tojson())
curl -X POST "https://api.ultralytics.com/v1/predict/MODEL_ID" \
    -H "x-api-key: API_KEY" \
    -F "image=@/path/to/image.jpg" \
    -F "size=640" \
    -F "confidence=0.25" \
    -F "iou=0.45"
import requests

# API URL, use actual MODEL_ID
url = "https://api.ultralytics.com/v1/predict/MODEL_ID"

# Headers, use actual API_KEY
headers = {"x-api-key": "API_KEY"}

# Inference arguments (optional)
data = {"size": 640, "confidence": 0.25, "iou": 0.45}

# Load image and send request
with open("path/to/image.jpg", "rb") as image_file:
    files = {"image": image_file}
    response = requests.post(url, headers=headers, files=files, data=data)

print(response.json())
{
  success: true,
  message: "Inference complete.",
  data: [
    {
      class: 0,
      name: "person",
      confidence: 0.92
    }
  ]
}

検出

検出モデル

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].tojson())
curl -X POST "https://api.ultralytics.com/v1/predict/MODEL_ID" \
    -H "x-api-key: API_KEY" \
    -F "image=@/path/to/image.jpg" \
    -F "size=640" \
    -F "confidence=0.25" \
    -F "iou=0.45"
import requests

# API URL, use actual MODEL_ID
url = "https://api.ultralytics.com/v1/predict/MODEL_ID"

# Headers, use actual API_KEY
headers = {"x-api-key": "API_KEY"}

# Inference arguments (optional)
data = {"size": 640, "confidence": 0.25, "iou": 0.45}

# Load image and send request
with open("path/to/image.jpg", "rb") as image_file:
    files = {"image": image_file}
    response = requests.post(url, headers=headers, files=files, data=data)

print(response.json())
{
  success: true,
  message: "Inference complete.",
  data: [
    {
      class: 0,
      name: "person",
      confidence: 0.92,
      width: 0.4893378019332886,
      height: 0.7437513470649719,
      xcenter: 0.4434437155723572,
      ycenter: 0.5198975801467896
    }
  ]
}

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://api.ultralytics.com/v1/predict/MODEL_ID" \
    -H "x-api-key: API_KEY" \
    -F "image=@/path/to/image.jpg" \
    -F "size=640" \
    -F "confidence=0.25" \
    -F "iou=0.45"
import requests

# API URL, use actual MODEL_ID
url = "https://api.ultralytics.com/v1/predict/MODEL_ID"

# Headers, use actual API_KEY
headers = {"x-api-key": "API_KEY"}

# Inference arguments (optional)
data = {"size": 640, "confidence": 0.25, "iou": 0.45}

# Load image and send request
with open("path/to/image.jpg", "rb") as image_file:
    files = {"image": image_file}
    response = requests.post(url, headers=headers, files=files, data=data)

print(response.json())
{
  success: true,
  message: "Inference complete.",
  data: [
    {
      class: 0,
      name: "person",
      confidence: 0.92,
      obb: [
        0.669310450553894,
        0.6247171759605408,
        0.9847468137741089,
        ...
      ]
    }
  ]
}

セグメンテーション

セグメンテーション・モデル

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://api.ultralytics.com/v1/predict/MODEL_ID" \
    -H "x-api-key: API_KEY" \
    -F "image=@/path/to/image.jpg" \
    -F "size=640" \
    -F "confidence=0.25" \
    -F "iou=0.45"
import requests

# API URL, use actual MODEL_ID
url = "https://api.ultralytics.com/v1/predict/MODEL_ID"

# Headers, use actual API_KEY
headers = {"x-api-key": "API_KEY"}

# Inference arguments (optional)
data = {"size": 640, "confidence": 0.25, "iou": 0.45}

# Load image and send request
with open("path/to/image.jpg", "rb") as image_file:
    files = {"image": image_file}
    response = requests.post(url, headers=headers, files=files, data=data)

print(response.json())
{
  success: true,
  message: "Inference complete.",
  data: [
    {
      class: 0,
      name: "person",
      confidence: 0.92,
      segment: [0.44140625, 0.15625, 0.439453125, ...]
    }
  ]
}

ポーズ

ポーズモデル

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://api.ultralytics.com/v1/predict/MODEL_ID" \
    -H "x-api-key: API_KEY" \
    -F "image=@/path/to/image.jpg" \
    -F "size=640" \
    -F "confidence=0.25" \
    -F "iou=0.45"
import requests

# API URL, use actual MODEL_ID
url = "https://api.ultralytics.com/v1/predict/MODEL_ID"

# Headers, use actual API_KEY
headers = {"x-api-key": "API_KEY"}

# Inference arguments (optional)
data = {"size": 640, "confidence": 0.25, "iou": 0.45}

# Load image and send request
with open("path/to/image.jpg", "rb") as image_file:
    files = {"image": image_file}
    response = requests.post(url, headers=headers, files=files, data=data)

print(response.json())
{
  success: true,
  message: "Inference complete.",
  data: [
    {
      class: 0,
      name: "person",
      confidence: 0.92,
      keypoints: [
        0.5290805697441101,
        0.20698919892311096,
        1.0,
        0.5263055562973022,
        0.19584226608276367,
        1.0,
        0.5094948410987854,
        0.19120082259178162,
        1.0,
        ...
      ]
    }
  ]
}


作成日:2024-01-23 更新日:2024-06-22
著者:glenn-jocher(9),sergiuwaxmann(2),RizwanMunawar(1),priytosh-tripathi(1)

コメント