Workflowをデプロイ
Workflowをデプロイする4つの方法: Roboflow API、専用デプロイ、セルフホストInference、またはバッチ処理。
ワークフローをデプロイする方法は4つあります:
画像を送信します。 Roboflow API で、ワークフローを使って処理します。
を作成します。 Roboflow 専用デプロイ を、あなた専用に用意されたインフラ上で利用します。
あなた自身のハードウェアでワークフローを実行します。 Roboflow Inference.
を使用します。 バッチ処理 を使って、コーディングコストを抑えながら大量のデータを効率的に処理します。
どの विकल्पを使うべきですか?
HTTP API (Roboflow ホスト型、またはセルフホストの 推論 サーバー)
Python 以外の言語でアプリケーションを動かしたい場合、あるいは計算負荷の高い処理を専用サーバーにオフロードしたい場合に、ワークフローをスタンドアロンのサービスとして使います。
Serverless またはセルフホストの Inference Server 上のワークフローを通じて、動画ファイル、Webカメラ、カメラストリームを処理します。
コマンドラインから、画像・ディレクトリ・動画ファイルをコードなしで処理します。
保存済みの画像や動画に対する大規模な非同期ジョブを、あなた向けに用意されたインフラで実行します。
推論 Python パッケージ
Execution Engine を Python アプリケーション内で直接実行し、HTTP を介さずに完全に制御できます。 Execution Engine.
Roboflow のホスト型 API でワークフローを実行する場合、次の 2 つの制限に注意する必要があります:
ワークフローの実行時間は 20 秒に制限されています。
レスポンスのペイロードは 6 MB に制限されているため、可視化ブロックが多いワークフローや入力画像が大きいワークフローは失敗することがあります。
セルフホストおよび専用デプロイには、これらの制限はありません。
ワークフローを自分のハードウェアで実行する場合、画像と動画ファイルの両方で実行できます(通常の Webカメラ や業務用 CCTV カメラ).
オンプレミスデプロイを選択すると、Inference をデプロイできるあらゆるシステム上でワークフローを実行できます。これには次が含まれます:
NVIDIA Jetson
AWS EC2、GCP Cloud Engine、Azure Virtual Machines
Raspberry Pi
ワークフローをデプロイする
ワークフローをデプロイするには、Workflows エディタの左上にある「Deploy」ボタンをクリックします。すべてのデプロイオプションはこのページに記載されています。
Workflows エディタのコードスニペットには、Workflows の URL と API キーがあらかじめ入力されます。
スニペットは、エディタが実行しているランタイムに一致します。エディタをローカルの Inference サーバーまたは 専用デプロイに切り替えると、 api_url は各スニペット内でそのサーバーを指し、対応するタブには推奨と表示されます。また、スニペットには保存済みの Workflow プレビューに画像がある場合、その画像の例も入力されます。
画像を処理する
Roboflow API またはローカルの Inference サーバーを使って、単一画像でワークフローを実行できます。
まず、Roboflow Inference SDK をインストールします:
ローカルで実行する場合は、 公式の Docker インストール手順 に従って、マシンに Docker をインストールし、Inference サーバーを起動します:
次に、新しい Python ファイルを作成し、次のコードを追加します:
上記では、 API_KEY をあなたの Roboflow API キーに置き換えてください。 workspace-name と workflow-id をあなたの Roboflow ワークスペース名と Workflow ID に置き換えます。
これらの値を見つけるには、Roboflow Workflow を開いて「Deploy Workflow」をクリックします。次に、ページに表示されるコードスニペットからワークスペース名と workflow ID をコピーしてください。
ローカル実行は CPU と NVIDIA CUDA GPU デバイスで動作します。最高のパフォーマンスを得るには、NVIDIA Jetson や NVIDIA GPU 搭載のクラウドサーバーなど、GPU 対応デバイスにデプロイしてください。
エンドポイントをどの言語からでも直接呼び出したい場合は、HTTP リクエストを送信します:
この inputs オブジェクトのキーはワークフローによって決まるため、定義した入力内容に応じて名前が異なります。 WorkflowImage として宣言された入力は、 type と value キーを持つオブジェクトを受け取ります。HTTP 経由でサポートされる type 値は url と base64.
上記の例では、Roboflow プラットフォームに保存されたワークフローを実行しています。リクエストと一緒に完全なワークフロー定義を送ることもでき、API キーで保護されたブロックを使わずにゼロから作成したワークフローに便利です。 Inference SDK の 仕様 引数を参照してください。
動画ストリームを処理する
Inference SDK の WebRTC クライアントを使って、Webカメラ、RTSP ストリーム、または動画ファイル上でワークフローを実行します。同じコードは Serverless とセルフホストの Inference Server の両方で動作します。
WebRTC 依存関係込みで SDK をインストールします:
セルフホストの Inference Server を起動するか、 https://serverless.roboflow.com を使ってサーバーを起動せずに実行します。次に Python ファイルを作成します:
上記では、 API_KEY をあなたの Roboflow API キーに置き換えてください。 workspace-name と workflow-id をあなたの Roboflow ワークスペース名と Workflow ID に置き換えます。
これらの値を見つけるには、Roboflow Workflow を開いて「Deploy Workflow」をクリックします。次に、ページに表示されるコードスニペットからワークスペース名と workflow ID をコピーしてください。
変更します WebcamSource() を、動画がローカルの Web カメラ由来でない場合は別のソースに。 Workflows による動画処理 を参照してください。RTSP ストリーム、動画ファイル、出力動画について説明しています。
データのバッチを処理する
Roboflow のバッチ処理サービスを使えば、画像や動画ファイルのディレクトリといったデータ全体のバッチを効率的に処理できます。このフルマネージドなソリューションでは、コーディングやローカル計算は不要です。データとワークフローを選ぶだけで、あとは Roboflow に任せられます。
バッチ処理では UI、CLI、REST API のいずれの操作もサポートしています。以下では CLI コマンドを紹介します。 すべてのオプションを確認してください.
処理を実行するには、Inference CLI をインストールします:
次に、データを取り込みます:
データが読み込まれたら、処理ジョブを開始します:
ジョブの進行状況は次のように表示できます:
ジョブが完了したら、結果をエクスポートします:
CLI でローカルディレクトリを処理する
すでに実行中のマシン上にあるデータについては、 inference-cli コードなしで、単一画像、画像ディレクトリ、または動画ファイルに対してワークフローを実行できます:
出力ディレクトリには、入力ファイルごとのサブディレクトリが1つずつ作成され、それぞれに results.json そのファイルの Workflow 結果と実行中に生成された画像が含まれるファイル、および aggregated_results.csv すべての入力結果を連結したファイルが含まれます。
を参照してください。 Inference CLI リファレンス で、すべてのオプションを確認できます。
次のステップ
最終更新
役に立ちましたか?