Deploy a Workflow
ワークフローをデプロイする方法は4つあります:
画像を Roboflow API に送信して、ワークフローで処理します。
を作成する Roboflow Dedicated Deployment あなた専用にプロビジョニングされたインフラストラクチャ上で。
自身のハードウェア上でワークフローを実行するには、 Roboflow Inference.
をスケジュールする Roboflow Cloudでバッチジョブ コード不要で大量データの処理を自動化します。
自身のハードウェアでワークフローを実行する場合、画像だけでなく動画ファイル(通常の ウェブカメラ やプロフェッショナルな CCTVカメラ).
オンプレミスデプロイメントを選択すると、Inferenceをデプロイできる任意のシステムでWorkflowsを実行できます。これには次が含まれます:
NVIDIA Jetson
AWS EC2、GCP Cloud Engine、Azure Virtual Machines
Raspberry Pi
ワークフローをデプロイする
ワークフローをデプロイするには、Workflowsエディタの左上にある「Deploy」ボタンをクリックしてください。すべてのデプロイメントオプションはこのページに記載されています。
Workflowsエディタ内のコードスニペットには、WorkflowsのURLとAPIキーがあらかじめ入力されています。
画像を処理する
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ワークスペース名とWorkflow IDに置き換えてください。
これらの値を見つけるには、Roboflow Workflowを開き「Deploy Workflow」をクリックします。ページに表示されるコードスニペットからワークスペース名とWorkflow IDをコピーしてください。
ローカル実行はCPUおよびNVIDIA CUDA GPUデバイスで動作します。最良のパフォーマンスを得るには、NVIDIA JetsonやNVIDIA GPU搭載のクラウドサーバーなど、GPU対応デバイスでデプロイしてください。
ビデオストリーム(RTSP、Webカメラ)を処理する
ワークフローをビデオストリームのフレームでデプロイできます。これはWebカメラや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、内蔵Webカメラは通常0)、またはRTSPストリームURL
on_prediction=my_sink
)
pipeline.start() #パイプラインを開始
pipeline.join() #パイプラインスレッドの終了を待つ
上記の API_KEY
を自身のRoboflow APIキーに置き換えてください。また、 workspace-name
および workflow-id
を自身のRoboflowワークスペース名とWorkflow IDに置き換えてください。
これらの値を見つけるには、Roboflow Workflowを開き「Deploy Workflow」をクリックします。ページに表示されるコードスニペットからワークスペース名と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?