Deploy a Workflow

ワークフローを展開する方法は4つあります:

  1. 画像を次に送信します Roboflow API ワークフローを使用して処理するために。

  2. 作成する Roboflow Dedicated Deployment 専用にプロビジョニングされたインフラストラクチャ上で使用専用に配置します。

  3. 自分のハードウェアでワークフローを実行するには、次を使用します Roboflow Inference.

  4. スケジュールする Roboflow Cloudでのバッチジョブ コーディングせずに大量のデータの処理を自動化するために。

ワークフローを自分のハードウェアで実行する場合、画像とビデオファイル(通常の webcams およびプロフェッショナルな CCTV cameras).

オンプレミス展開を選択すると、Inferenceをデプロイできる任意のシステムでワークフローを実行できます。これには以下が含まれます:

  • NVIDIA Jetson

  • AWS EC2、GCP Cloud Engine、および Azure Virtual Machines

  • Raspberry Pi

Roboflow Enterpriseの顧客は、Baslerカメラでの推論実行など、追加のビデオストリームオプションにアクセスできます。提供内容の詳細については、 Roboflowの営業チームにお問い合わせください.

ワークフローをデプロイする

ワークフローをデプロイするには、Workflowsエディタの左上にある「Deploy」ボタンをクリックします。すべてのデプロイオプションはこのページに記載されています。

Workflowsエディタ内のコードスニペットには、あなたのWorkflowsのURLとAPIキーが事前入力されます。

ワークフローの使用制限の詳細については、 Roboflowの価格ページ.

画像を処理する

Roboflow APIまたはローカルのInferenceサーバーを使用して、単一の画像でワークフローを実行できます。

まず、Roboflow Inference SDKをインストールします:

pip install inference-sdk inference-cli 

ローカルで実行する場合は、次に従ってください、 公式のDockerインストール手順 マシンにDockerをインストールし、Inferenceサーバーを起動するために:

inference server start

次に、新しいPythonファイルを作成し、次のコードを追加します:

from inference_sdk import InferenceHTTPClient

client = InferenceHTTPClient(
    api_url="https://detect.roboflow.com",  # またはローカル展開では "http://127.0.0.1:9001"
    api_key="API_KEY"
)

result = client.run_workflow(
    workspace_name="workspace-name",
    workflow_id="workflow-id",
    images={
        "image": "YOUR_IMAGE.jpg"
    }
)

上記で、を置き換えてください API_KEY あなたのRoboflow APIキーに置き換えてください。置換する workspace-name および workflow-id あなたのRoboflowワークスペース名とワークフローIDに置き換えてください。

これらの値を見つけるには、Roboflowのワークフローを開き、「Deploy Workflow」をクリックします。次に、ページに表示されるコードスニペットからワークスペース名とワークフローIDをコピーします。

ローカル実行はCPUおよびNVIDIA CUDA GPUデバイスで動作します。最高のパフォーマンスを得るには、NVIDIA JetsonなどのGPU対応デバイスやNVIDIA GPUを搭載したクラウドサーバーにデプロイしてください。

ビデオストリームを処理する(RTSP、Webcam)

ビデオストリームのフレーム上でワークフローを展開できます。これはウェブカメラやRTSPストリームである場合があります。ビデオファイルでもワークフローを実行できます。

まず、Inferenceをインストールします:

pip install inference  # GPUマシンの場合は inference-gpu

Inferenceのインストールには数分かかる場合があります。

次に、新しいPythonファイルを作成し、次のコードを追加します:

# InferencePipelineオブジェクトをインポートします
from inference import InferencePipeline

def my_sink(result, video_frame):
    print(result) # 各フレームの予測で何かを行う
    

# パイプラインオブジェクトを初期化します
pipeline = InferencePipeline.init_with_workflow(
    api_key="API_KEY",
    workspace_name="workspace-name",
    workflow_id="workflow-id",
    video_reference=0, # ビデオへのパス、RSTPストリーム、デバイスID(int、通常組み込みウェブカメラは0)、またはRTSPストリームのURL
    on_prediction=my_sink
)
pipeline.start() # パイプラインを開始します
pipeline.join() # パイプラインスレッドの終了を待ちます

上記で、を置き換えてください API_KEY あなたのRoboflow APIキーに置き換えてください。置換する workspace-name および workflow-id あなたのRoboflowワークスペース名とワークフローIDに置き換えてください。

これらの値を見つけるには、Roboflowのワークフローを開き、「Deploy Workflow」をクリックします。次に、ページに表示されるコードスニペットからワークスペース名とワークフローIDをコピーします。

上記のコードを実行すると、ワークフローがビデオまたはビデオストリーム上で実行されます。

データのバッチを処理する

Roboflow Batch Processingサービスを使用して、ディレクトリ内の画像やビデオファイルなどのデータのバッチ全体を効率的に処理できます。このフルマネージドソリューションはコーディングやローカル計算を必要としません。データとワークフローを選択するだけで、Roboflowが残りを処理します。

Batch ProcessingではUI、CLI、REST APIの両方の操作をサポートしています。以下ではCLIコマンドを示します。すべてのオプションを確認してください、 すべてのオプション.

処理を実行するには、Inference CLIをインストールします:

pip install inference-cli

その後、データを取り込むことができます:

inference rf-cloud data-staging create-batch-of-images \
    --images-dir <your-images-dir-path> \
    --batch-id <your-batch-id>

データが読み込まれたら、処理ジョブを開始します:

inference rf-cloud batch-processing process-images-with-workflow \
    --workflow-id <workflow-id> \
    --batch-id <batch-id>

ジョブの進行状況は次を使用して表示できます:

inference rf-cloud batch-processing show-job-details \
    --job-id <your-job-id>  # job-idはジョブ作成時に表示されます

ジョブが完了したら、結果をエクスポートします:

inference rf-cloud data-staging export-batch \
    --target-dir <dir-to-export-result> \
    --batch-id <output-batch-of-a-job>

Last updated

Was this helpful?