推論#
Ultralytics Platformは、トレーニング済みモデルをテストするためのブラウザベースの推論と、プログラムからアクセスするための専用エンドポイントを提供します。

予測タブ#
重みを含むすべてのモデルには、ブラウザベースの推論用にPredictタブがあります。
- モデルに移動します
- Predictタブをクリックします
- 画像をアップロードするか、サンプルを使用するか、Webcamを開きます
- タスク固有のオーバーレイ、推論サマリー、処理時間、未加工のレスポンスを確認します
重みのないモデルでは空の状態が表示されます。まずモデルをトレーニングするか、重みをアップロードしてください。

入力方法#
Predictパネルでは、複数の入力方法をサポートしています。
| メソッド | 説明 |
|---|---|
| 画像のアップロード | ドラッグ&ドロップするか、クリックして画像をアップロードします |
| サンプル画像 | 組み込みのサンプル(データセット画像またはデフォルト)をクリックします |
| Webcamキャプチャ | 単一フレームのキャプチャに対応したライブカメラフィード |
graph LR
A[Upload Image]:::start --> D[Auto-Inference]:::proc
B[Example Image]:::start --> D
C[Webcam Capture]:::start --> D
D --> E[Results + Overlays]:::out
classDef start fill:#4CAF50,color:#fff
classDef proc fill:#2196F3,color:#fff
classDef out fill:#9C27B0,color:#fff画像をアップロード#
ドラッグ&ドロップするか、クリックしてアップロードします。
- サポート形式: JPEG、PNG、WebP、AVIF、HEIC、JP2、TIFF、BMP
- 最大サイズ: 10 MB
- 自動推論: アップロード後に結果が自動的に表示されます
画像をアップロードするか、サンプルを選択するか、Webcamフレームをキャプチャすると、Predictパネルは自動的に推論を実行します。ボタンをクリックする必要はありません。
アップロード前に、パネルは画像の長辺が選択したImage Sizeと一致するように画像をリサイズし、正規化された座標をリクエストします。これによりブラウザでのテストを高速化できます。ご自身で送信するリクエストはリサイズされません。
サンプル画像#
Predictパネルには、モデルにリンクされたデータセットから最大2枚のサンプル画像が表示されます。val分割を優先し、次にtest、続いてtrainを使用します。データセットがリンクされていない場合は、デフォルトのサンプルが使用されます。
| 画像 | 内容 |
|---|---|
bus.jpg | 車両がある街路シーン |
zidane.jpg | 人物がいるスポーツシーン |
OBBモデルの場合は、代わりにボートと空港の航空画像が表示されます。
サンプル画像はページの読み込み時に事前読み込みされるため、サンプルをクリックするとダウンロード待ち時間なしでほぼ瞬時に推論が実行されます。
Webcam#
Webcamカードをクリックしてライブカメラフィードを開始します。
- プロンプトが表示されたらカメラの権限を許可します
- ビデオプレビューをクリックしてフレームをキャプチャします
- キャプチャしたフレームで推論が自動的に実行されます
- もう一度クリックしてWebcamを再起動します
結果を表示#
推論結果には、モデルのタスクに適した出力が表示されます。ボックス、マスク、キーポイント、方向付きボックス、分類スコア、セマンティックカバレッジ、または深度マップが含まれます。オブジェクトの結果には、利用可能な場合、データセットのクラスカラーが使用されます。パネルには、前処理、推論、後処理、ネットワークの処理時間も表示されます。

結果パネルには以下が表示されます:
| 項目 | 説明 |
|---|---|
| 結果の概要 | 検出ごとのリスト、または分類モデルとセマンティックモデルの上位5クラス |
| 速度統計 | 前処理、推論、後処理、ネットワーク(ms) |
| バージョン | UltralyticsとPyTorchのバージョン、および該当する場合は深度範囲またはマスクサイズ |
| JSONレスポンス | コードブロック内の未加工のAPIレスポンス。base64のマップデータは省略されます |
結果が表示されると、プレビュー上に2つのコントロールが表示されます。画像をクリックするとオーバーレイを保持したまま拡大でき、ダウンロードボタンを使用すると現在の結果に注釈を付けたJPEGを保存できます。
推論パラメーター#
画像の下にある3つのスライダーで推論の動作を調整します。

| パラメータ | 範囲 | デフォルト | 説明 |
|---|---|---|---|
| Confidence | 0.01~1.0、ステップ幅0.01 | 0.25 | 最小信頼度しきい値 |
| IoU | 0.0~0.95、ステップ幅0.01 | 0.7 | NMS IoUしきい値 |
| Image Size | 32~1280、ステップ幅32 | 640 | 入力リサイズの寸法 |
いずれかのパラメーターを変更すると、500msのデバウンス後、現在の画像で推論が自動的に再実行されます。再アップロードする必要はありません。
信頼度しきい値#
信頼度で予測をフィルタリングします。
- 高い(0.5以上): より少数で確度の高い予測
- 低い(0.1~0.25): より多くの予測、一部にノイズあり
- デフォルト(0.25): ほとんどのユースケースに適したバランス
IoUしきい値#
Non-Maximum Suppressionを制御します。
- 高い(0.7以上): より多くの重複ボックスを許可
- 低い(0.3~0.5): 重複する検出をより積極的に抑制
- デフォルト(0.7): ほとんどのユースケースに適したバランスのNMS動作
デプロイメントのPredict#
実行中の各専用エンドポイントには、デプロイメントカード上にPredictタブが直接含まれています。これは共有Predictサービスではなく、デプロイメント独自の推論サービスを使用するため、ブラウザからデプロイ済みエンドポイントをテストできます。
監視が有効な有料エンドポイントでは、処理された画像もモニタリングタブに寄与します。モニタリングタブのサンプリングされたサンプルと集計チャートは、メモリ内に保持される軽量で一時的なデータです。モデルの停止、再起動、再デプロイ、サイズ変更、または置き換えによって、これらがクリアされる場合があります。これらを保持するには、サンプルをデータセットに保存してください。
専用エンドポイントAPI#
モデルのPredictタブにあるAPI Docsカードには、信頼度、IoU、画像サイズにスライダーで現在設定されている値があらかじめ入力された、Python、JavaScript、cURLのリクエスト例が含まれています。モデルをデプロイするまではURLとキーがプレースホルダーになっており、コードタブの横にあるDeployボタンからモデルのDeployタブに移動できます。デプロイ後は、デプロイメントカードのCodeタブに、そのエンドポイントのURLと、ワークスペース所有者の場合は紐付けられたAPIキーが入力され、コピーして実行できる状態になります。
認証#
リクエストにAPIキーを含めます。
Authorization: Bearer YOUR_API_KEY独自のスクリプト、ノートブック、アプリから推論を実行するには、APIキーを含めます。Settings > API KeysでAPIキーを生成してください。専用エンドポイントは作成時に指定された単一のキーのみを受け付けます。共有モデルAPIはワークスペース内の有効なキーをすべて受け付け、パブリックモデルは匿名リクエストも受け付けます。
エンドポイント#
専用エンドポイントは、それぞれのURLでリクエストを受け付けます。
POST https://YOUR_DEPLOYMENT_URL.run.app/predict共有推論では、モデルの完全なパスを指定してPlatform APIを使用します。
POST https://platform.ultralytics.com/api/models/{owner}/{project}/{model}/predictどちらも同じmultipart/form-dataボディを受け付け、同じレスポンス形式を返します。Python SDKでは、共有推論にclient.models.predict(owner, project, model, body=...)を、専用デプロイメントにclient.deployments.predict(owner, deployment, body=...)を使用します。
from ultralytics_platform import Platform
client = Platform() # reads ULTRALYTICS_API_KEY
with open("image.jpg", "rb") as f:
results = client.models.predict("acme-vision", "inspection", "v3", body={"file": f, "conf": 0.25})リクエスト#
import requests
url = "https://YOUR_DEPLOYMENT_URL.run.app/predict"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
data = {"conf": 0.25, "iou": 0.7, "imgsz": 640}
with open("image.jpg", "rb") as image_file:
response = requests.post(url, headers=headers, files={"file": image_file}, data=data)
print(response.json())
リクエストパラメーター#
| パラメータ | 型 | デフォルト | 範囲 | 説明 |
|---|---|---|---|---|
file | file | - | - | 画像または動画ファイル(sourceが設定されていない場合は必須) |
conf | float | 0.25 | 0.01 – 1.0 | 最小信頼度しきい値 |
iou | float | 0.7 | 0.0 – 0.95 | NMS IoUしきい値 |
imgsz | int | 640 | 32 – 1280 | 入力画像のピクセルサイズ |
normalize | bool | false | - | バウンディングボックス座標を0~1として返します |
decimals | int | 5 | 0 – 10 | 座標値の小数精度 |
bits | int | 8 | 8, 12, 16 | 深度マップの量子化(深度モデルのみ) |
source | string | - | - | 画像URLまたはbase64文字列(fileの代替) |
レスポンス#
{
"images": [
{
"shape": [1080, 1920],
"results": [
{
"class": 0,
"name": "person",
"confidence": 0.92,
"box": { "x1": 100, "y1": 50, "x2": 300, "y2": 400 }
},
{
"class": 2,
"name": "car",
"confidence": 0.87,
"box": { "x1": 400, "y1": 200, "x2": 600, "y2": 350 }
}
],
"speed": {
"preprocess": 1.2,
"inference": 12.5,
"postprocess": 2.3
}
}
],
"metadata": {
"imageCount": 1,
"functionTimeAlive": 1284.51,
"functionTimeCall": 0.018,
"task": "detect",
"version": {
"ultralytics": "8.x.x",
"torch": "2.6.0",
"torchvision": "0.21.0",
"python": "3.13.0"
}
}
}
レスポンスフィールド#
| 項目 | 型 | 説明 |
|---|---|---|
images | 配列 | 処理済み画像のリスト。動画の場合は動画フレームごとに1エントリが含まれます |
images[].shape | 配列 | 画像の寸法 [高さ, 幅] |
images[].results | 配列 | 検出結果のリスト |
images[].results[].class | int | クラスインデックス(整数ID) |
images[].results[].name | string | クラス名 |
images[].results[].confidence | float | 検出信頼度(0~1) |
images[].results[].box | オブジェクト | Bounding boxの座標 |
images[].semantic_mask | オブジェクト | ピクセル単位のクラスマップ(セマンティックモデルのみ) |
images[].depth | オブジェクト | ピクセル単位の深度マップ(深度モデルのみ) |
images[].speed | オブジェクト | 処理時間(ミリ秒) |
metadata | オブジェクト | 画像数、サービスのタイミング、タスク、Ultralytics/PyTorchのバージョン |
タスク固有のレスポンス#
レスポンス形式はタスクによって異なります:
{
"class": 0,
"name": "person",
"confidence": 0.92,
"box": {"x1": 100, "y1": 50, "x2": 300, "y2": 400}
}レート制限#
共有モデルAPIは、各APIキー、サインイン済みの呼び出し元、または匿名IPにつき、1分あたり20リクエストに制限されています。レート制限が適用されると、APIは 429 を Retry-After ヘッダーとともに返します。すべてのエンドポイントカテゴリについては、完全なレート制限リファレンスをご覧ください。
専用エンドポイントに直接送信されたリクエストは、Platform APIのレートリミッターを通過しません。エンドポイントが一時的に容量上限に達した場合は、429 と Retry-After ヘッダーを付けて負荷を軽減します。大量のローカル推論については、Predictモードガイドをご覧ください。
エラーハンドリング#
一般的なエラーレスポンス:
| コード | メッセージ | ソリューション |
|---|---|---|
| 400 | 無効な画像 | ファイル形式、またはモデルに学習済み重みがあることを確認してください |
| 401 | 認証されていません | APIキーを確認してください |
| 404 | モデルが見つかりません | 所有者、プロジェクト、モデル名を確認してください |
| 413 | 入力が大きすぎます | エンドポイントの上限未満になるようファイルサイズを小さくしてください |
| 429 | レート制限に達しました | 待ってから再試行するか、専用エンドポイントに直接リクエストを送信してください |
| 500 | サーバーエラー | リクエストを再試行してください |
| 503 | サービスを利用できません | Predictサービスが起動中か到達不能です。少し待ってから再試行してください |
FAQ#
どちらの推論方法も動画ファイルに対応しています:
Predict タブでは、プレビュー上のダウンロードボタンをクリックすると、現在の結果がアノテーション済みJPEGとして保存されます。API自体はJSON形式の予測結果を返します。これらを可視化するには:
- 予測結果を使用してローカルでボックスを描画する
- Ultralyticsの
plot()メソッドを使用する:
from ultralytics import YOLO model = YOLO("yolo26n.pt") results = model("image.jpg") results[0].save("annotated.jpg")完全な結果APIと可視化オプションについては、Predictモードのドキュメントをご覧ください。
- Predictタブの上限:10 MB
- APIの上限:共有推論と専用エンドポイントのいずれも100 MB
- Predictタブでの自動リサイズ:アップロード前に、画像が選択した
Image Sizeにリサイズされます
大きな画像は、アスペクト比を維持したままブラウザーで自動的にリサイズされます。自分で送信するリクエストではリサイズされないため、上限を超える画像は
413とともに拒否されます。現在のAPIは、1リクエストにつき1画像を処理します。バッチ処理の場合:
- 各画像に対して個別のリクエストを送信する
- 必要に応じて、専用エンドポイント間でリクエストを分散する
- 大規模なバッチにはローカル推論を使用する
Pythonによるバッチ推論import concurrent.futures import requests url = "https://YOUR_DEPLOYMENT_URL.run.app/predict" headers = {"Authorization": "Bearer YOUR_API_KEY"} images = ["img1.jpg", "img2.jpg", "img3.jpg"] def predict(image_path): with open(image_path, "rb") as f: return requests.post(url, headers=headers, files={"file": f}).json() with concurrent.futures.ThreadPoolExecutor(max_workers=4) as executor: results = list(executor.map(predict, images))