For the complete documentation index, see llms.txt. This page is also available as Markdown.

Inference SDK

Roboflow Inference Server 用の HTTP クライアント。Python からローカル、ホスト型、非同期、バッチ推論を行えます。

この inference-sdk Pythonパッケージは提供します InferenceHTTPClient、ある Inference Server へのHTTP経由での通信を行うクライアントです。同じクライアントはRoboflow サーバーレスホスト型 APIDedicated Deployment、セルフホストサーバー、またはエッジデバイス上で実行されているサーバーにも対応します。必要なのは api_url だけです。

pip install inference-sdk

inference-sdk は薄いHTTPクライアントであり、モデル自体は実行しません。自分のPythonプロセス内でモデルを読み込んで実行するには、次を使用してください。 推論 パッケージ.

クイックスタート

URL、ファイルパス、PIL画像、NumPy配列からの画像に対して推論を実行できます。

from inference_sdk import InferenceHTTPClient
import os

image_url = "https://media.roboflow.com/inference/soccer.jpg"

client = InferenceHTTPClient(
    api_url="https://serverless.roboflow.com",
    api_key=os.environ["API_KEY"],
)

results = client.infer(image_url, model_id="soccer-players-5fuqs/1")
print(results)
from inference_sdk import InferenceHTTPClient
import cv2
import os

client = InferenceHTTPClient(
    api_url="https://serverless.roboflow.com",
    api_key=os.environ["API_KEY"],
)

numpy_image = cv2.imread("path/to/local/image.jpg")
results = client.infer(numpy_image, model_id="soccer-players-5fuqs/1")
print(results)

セルフホストサーバーに対する最初のリクエストでは、モデルの重みがダウンロードされてセットアップされます。ネットワーク接続やモデルのサイズによっては、このリクエストに時間がかかる場合があります。モデルがダウンロードされると、その後のリクエストははるかに高速になります。また、 モデルを事前読み込みし、読み込まれた重みを管理する ことで、このプロセスを制御できます。

モデルIDは次の文字列で構成されます <project_id>/<version_id>。参照 ワークスペースIDとプロジェクトID ご自身のものを見つけるには。

セルフホストサーバー

Inference Server をセルフホストすることもできます(次を参照: Inference CLI)、そして api_url の中で InferenceHTTPClient:

AsyncIOクライアント

並列推論とバッチ推論

1回の呼び出しで複数の画像に対して予測したい場合があります。の2つのパラメータが InferenceConfiguration バッチ処理と並列処理を制御します:

  • max_concurrent_requests - 開始できる同時リクエストの最大数

  • max_batch_size - 1回のリクエストに投入できる要素の最大数

これにより、次の改善が可能になります:

  • 高性能なオンプレミスのGPUマシン上で推論コンテナを実行している場合、 max_batch_size 適切に設定するとスループットの向上が見込めます

  • ホストされたRoboflow APIに対して推論を実行している場合、 max_concurrent_requests 複数の画像が一度に処理され、スループットの向上が得られます

  • 両方のオプションを組み合わせると、マシンクラスター上で推論コンテナを実行しているクライアントにとって有益です。単一ノードの負荷を最適化でき、異なるノードへの並列リクエストを同時に行えます

バッチ処理と並列処理をサポートするメソッド:

  • infer(...)infer_async(...)

  • ocr_image(...)ocr_image_async(...)max_batch_size=1)

  • detect_gazes(...)detect_gazes_async(...) - 非推奨、常に送出します inference_sdk.http.errors.FeatureDeprecatedError

  • get_clip_image_embeddings(...)get_clip_image_embeddings_async(...)

このクライアントはまた、 コア基盤モデル (CLIP、DocTR)、 Workflows の実行 複数ステップのパイプライン向けで、 WebRTCストリーミング リアルタイム動画推論向けです。WebRTC を使うと、モデルまたは Workflow のいずれかで、ウェブカメラ、カメラストリーム、動画ファイルを処理できます。

実際に予測として返されるものは何ですか?

InferenceHTTPClient モデル配信 API からのレスポンスである通常の Python 辞書を返します。変更は、 可視化 キーのコンテキスト内でのみ行われます。このキーは、サーバー生成の予測可視化を保持し、任意の形式に変換できます。クライアント側のリスケーリングは入力サイズを調整するだけです。

次のステップ

  • 設定 - クライアントとモデルのパラメータ、コンテキストマネージャー、およびデフォルト値。

  • モデル管理 - サーバー上でモデルを事前読み込み、一覧表示、アンロードします。

  • コアモデル - CLIP および DocTR のエンドポイント。

  • Workflows - クライアントを通じて Workflow を実行します。

  • WebRTCストリーミング - モデルまたは Workflow を通じて動画をストリーミングします。

最終更新

役に立ちましたか?