コンテンツへスキップ

Ultralytics ハブ推論API

モデルをトレーニングした後は、Shared Inference APIを無料で利用することができます。Proユーザーであれば、Dedicated Inference APIにアクセスできます。Ultralytics HUB Inference APIを使用すると、Ultralytics YOLO 環境をローカルにインストールしてセットアップすることなく、REST APIを通じて推論を実行できます。

Ultralytics 矢印がDedicated Inference APIカードとShared Inference APIカードを指している。


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

専用推論API

多くのご要望と幅広いご関心にお応えして、Ultralytics HUB Dedicated Inference APIを発表する運びとなり、プロユーザーの皆様には専用環境でのシングルクリックでのデプロイメントをご提供いたします!

パブリック・ベータ期間中、この機能をプロ・プランの一部として無料で提供できることを嬉しく思います。

  • グローバルカバレッジ:世界38のリージョンに展開し、あらゆる場所からの低遅延アクセスを保証します。 Google クラウドのリージョン一覧を見る
  • Google クラウド・ラン・バックアップ Google Cloud Runに支えられ、無限に拡張可能で信頼性の高いインフラを提供します。
  • 高速: Ultralytics のテストに基づき、640の解像度で近傍領域からYOLOv8n 推論を行う場合、100ms以下のレイテンシが可能。
  • 強化されたセキュリティ:お客様のデータを保護し、業界標準への準拠を保証する堅牢なセキュリティ機能を提供します。 Google クラウドのセキュリティの詳細については、こちらをご覧ください。

Ultralytics HUB Dedicated Inference API を使用するには、Start Endpointボタンをクリックします。次に、以下のガイドに記載されている固有のエンドポイントURLを使用します。

Ultralytics Dedicated推論APIカードのStart Endpointボタンを指す矢印がある、Modelページ内のDeployタブのHUBスクリーンショット

チップ

ドキュメントに記載されているように、最高のパフォーマンスを得るために、レイテンシーの最も低い地域を選択します。

専用エンドポイントをシャットダウンするには、「エンドポイントの停止」ボタンをクリックします。

Ultralytics Dedicated推論APIカードのStop Endpointボタンを指し示す矢印がある、Modelページ内のDeployタブのHUBスクリーンショット

共有推論API

Ultralytics HUB Shared Inference API を使用するには、以下のガイドに従ってください。

無料ユーザーには以下の利用制限があります:

  • 100コール/時間
  • 1000コール/月

プロユーザーには以下の使用制限があります:

  • 1000コール/時間
  • 10000コール/月

Python

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

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

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

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.

応答

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ヶ月前

コメント