Ultralytics Agentsを使って、コードを書かずにYOLOの検出結果をアラートに変える方法
Ultralytics AgentsのGate条件を使うと、コードを書かずにUltralytics YOLOの検出結果をSlackアラート、Webhook、データセットへの画像保存につなげられます。
Miles Deans11 分で読めます
Ultralytics Platformの一部であるUltralytics Agentsでビジュアルワークフローを作成すると、コードを書かずにUltralytics YOLOの検出結果をアラートに変換できます。画像をYOLOモデルに接続し、モデルの検出内容を確認するGateを追加して、結果をSlackメッセージ、Webhook、またはデータセットに分岐させます。このガイドでは、Capture and Alertテンプレートを使ってワークフローを手順に沿って作成し、2つ目のモデルの連結、保存、新しい画像での再実行、Pythonとしてのエクスポートまで行います。
作成するもの#
完成したワークフローでは、YOLO26モデルで画像を確認し、人が検出された場合に限り、同じ条件から次の3つの処理を実行します。
- Slackメッセージを送信し、検出結果を含めて接続済みのチャンネルに通知します。
- JSON Webhookを送信し、チケット管理ツールや社内サービスなど、指定したJSON本文を受け付けるように設定された公開HTTPSエンドポイントにPOSTします。
- 画像をデータセットに保存し、後でラベル付けしてモデルを再トレーニングできるようにします。
Agentsでは、キャンバス上のブロックとして画像、モデル、条件、アクションを接続できます。Ultralytics Platformにサインインしているすべてのユーザーが、個人用およびチーム用ワークスペースで利用できます(Agentsのドキュメント)。ワークフローは、選択した画像、動画、またはデータセットでRunをクリックすると実行されます。カメラを常時監視するサービスではありません。Agentsの概要と開発の背景については、Ultralytics Agentsの紹介をご覧ください。
このガイドでは、Image → YOLO → Gateを使い、GateからSlack、Webhook、保存先のDatasetに分岐させます。ブロックの詳細とその他のワークフローパターンについては、Agentsのドキュメントをご覧ください。

手順1:Capture and Alertテンプレートを読み込む#
PlatformのサイドバーでAgentsを開き、Add blockをクリックしてTemplatesに切り替え、Capture and Alertを選択します。テンプレートを読み込むと現在のキャンバス上のブロックが置き換わるため、Platformで確認を求められます。
Capture and Alertでは、人の検出条件がデータセットへの画像保存とSlackにすでに接続されています。以下でこれらの保存先を設定し、Webhookへの分岐を追加します。ほかのテンプレートであるYOLO → VLM MonitorとCollect Uncertain Detectionsは、シーンの説明やレビュー用データセットの作成を始めるための編集可能なベースです。

手順2:入力画像を選択する#
Input imageブロックを選択し、アップロードするか、アップロード済みデータセットから選択して、人が写っている画像を1枚指定します。最初の共有トライアルでは、4メガピクセル以下の画像を使用してください。アップロードしたファイルはワークフローを実行するまでブラウザー内に保持され、ページを更新すると消去されます。複数の画像を処理するには、ImageブロックをDatasetブロックに置き換え、ソースデータセットと分割を選択して入力上限を設定し、DatasetブロックをYOLOブロックに接続します。
手順3:YOLOモデルと信頼度を選択する#
Detect peopleブロックを選択します。このテンプレートではYOLO26 nano(yolo26n)を使用しており、共有トライアルで実行されるモデルです。別の公式YOLOモデルや、カスタムの欠陥検出器やPPE検出器など、ワークスペースでトレーニングしたモデルを使うには、このブロックのModelでモデルを選択し、手順7でワークフロー実行用の専用デプロイメントを選びます。Minimum detection confidenceの設定では、条件が実行される前に信頼度の低い検出結果が除外されます。信頼度が低めの検出にもワークフローを反応させるには、この値を下げてください。
手順4:Gateブロックで条件を設定する#
Gateブロックは、後続の処理を実行するかどうかを決定します。Capture and AlertでPerson detectedブロックを選択し、設定を確認します。
- Mode: Condition
- Detection model: Detect people
- Measure: Detection count
- Class name: person
- Condition: Greater than or equal
- Compare with: 1

クラス名はモデルのクラスに合わせて変更するか、すべてのクラスを対象にするには*を使用します。検出数の代わりに検出信頼度を測定することもできます。その場合は、評価したい検出結果が残るようにYOLOブロックの最小信頼度を十分低く設定してください。信頼度条件は、少なくとも1つの検出結果が一致すると成立します。そのため、スコアが0.3と0.9の画像は0.25~0.5の範囲条件を満たしますが、検出結果がない画像では信頼度条件が成立しません。条件が一致しない場合、その画像について接続されたアクションは実行されません。
手順5:SlackとWebhookを設定する#
Slack。 Settings > IntegrationsでSlackを一度接続します(チームワークスペースでは、ワークスペースの管理者またはオーナーが設定します)。次に、Notify Slackブロックのメッセージを編集します。テンプレートのPerson detected: {output}のように、上流の結果を含めるには{output}を使用します。これらのワークフローメッセージは、Platformのトレーニングおよびデプロイメント通知とは別です(Slack連携のドキュメント)。
Webhook。 Add blockをクリックし、BlocksタブからWebhookを選択して、既存のSlackおよびデータセットへの接続はそのままに、Person detectedの出力を接続します。指定したJSON本文を受け付けるように設定された公開HTTPS宛先URLを入力します(例:{"text": "{output}"})。Platformは結果ごとに1件のPOSTをContent-Type: application/jsonとともに送信します。本文の上限は10,000文字で、リダイレクトは追跡されず、接続は5秒後にタイムアウトします。2xx以外のレスポンスが返ると、ブロックは失敗します。Webhookブロックは終端ブロックであるため、結果をワークフローの後続に渡しません。

1つのGate出力を複数のブロックに同時に接続できるため、Slack、Webhook、データセットのすべてが同じ評価済み条件を使用します。ブロックが失敗すると、赤い枠で表示されます。
手順6:再トレーニング用に一致した画像を保存する#
Captured imagesブロックを選択し、編集可能な既存のデータセットを選びます。必要に応じて、まずデータセット作成ガイドを使ってデータセットを作成してください。接続済みのクラウドストレージデータセットとオンプレミスのデータセットは保存先として使用できず、通常のデータセットストレージ上限が適用されます。一致した画像はラベルなしでデータセットのトレーニング分割に追加され、すでにデータセットに存在する画像はスキップされます。アノテーションエディターでデータセットを開いて、収集した画像を確認してラベル付けし、次回のPlatformトレーニング実行で使用します。
手順7:実行、保存、新しい画像での再実行#
Runボタンの横で、次回の実行先を選択します。
| 選択肢 | 用途 | 制約 |
|---|---|---|
| 共有トライアル · 60秒 | 小規模なワークフローを試す場合 | 実行時間は最大60秒、入力画像は最大20枚(各4メガピクセル以下)、モデルまたはプロバイダーの呼び出しは最大20回、1分あたりの実行は最大3回です。公式YOLO26 nanoモデルを使用する単一のローカルYOLOモデルが対象です。 |
| 既存の専用デプロイメント | 大規模なデータセットや長時間の実行 | デプロイメントのハードウェアと料金が適用され、ワークフロー全体の実行時間や画像数に上限はありません。既存のデプロイメントとプロバイダーの制限は引き続き適用されます。 |
| 新しいデプロイメント | ビルダーから専用ハードウェアを作成する場合 | デプロイメントの作成と料金のダイアログが開きます。実行する前に、デプロイメントの準備が完了するまでお待ちください。 |
ワークフローには最大20個のブロックを追加できます。SlackおよびWebhookのアクションは、モデルまたはプロバイダーの呼び出し回数に含まれます。分岐によって、画像ごとの呼び出し回数が増える場合があります。実行中はブロックに進行状況が表示され、Stopをクリックするとキャンセルできます。
入力と保存先を設定したら、Runをクリックします。ブロックの結果を確認し、接続したSlackチャンネル、Webhookの受信先、保存先データセットを確認します。アクションが実行されない場合は、YOLOが人を検出したか、Gate条件が一致したかを確認してください。条件が一致しないと、接続されたアクションは実行されません。
Save workflowをクリックしてワークフローに名前を付けると、後でOpen workflowから再度開けます。新しいデータで再実行するには、保存済みのワークフローを開き、新しい画像または別のデータセットを選択して、もう一度Runをクリックします。保存しても実行はスケジュールされません。
手順8:2つ目のモデルを連結する#
「人がいるか」だけでなく「何が起きているか」も確認するには、LLMブロックを追加してGateに接続し、LLMを新しいOutputブロックに接続します。YOLO → VLM Monitorテンプレートと同じパターンです。GateはYOLOの検出結果を評価し、視覚言語モデルは条件を満たした画像だけを説明します。LLMブロックで視覚言語モデルを選んでプロンプトを入力し、Settings > API Keysで対応するプロバイダーキーを追加します(チームワークスペースでは、ワークスペースのオーナーがキーを追加します)。言語モデルの利用料金はプロバイダーから請求されます。すでにデプロイしたモデルで推論ステップを実行するには、既存の準備完了済みPlatformデプロイメントを呼び出すDeploymentブロックを使用します。
手順9:ワークフローをPythonとしてエクスポートする、またはAPIで管理する#
Pythonをクリックすると、生成されたワークフローコードが表示されます。ローカルで実行するには、ultralyticsとultralytics-platformのパッケージをインストールし、プロバイダーキーを環境変数に設定して、入力ソースを選択します。ワークフローをコードで管理するチームは、Python SDKでclient.agents(ultralytics-platform>=0.1.74)として公開されているAgents APIを使って、エージェントの一覧表示、保存、削除を行えます。Platformで実行を開始するには、キャンバスで保存済みのワークフローを開き、Runをクリックします。
別の方法が適している場合#
Agentsは、オンデマンドで実行する画像、動画クリップ、データセットのイベント駆動型チェックに適しています。用途によっては、次の方法が適しています。
- Pythonで実装する。 ライブカメラ映像を継続的に処理する場合は、Ultralytics Pythonパッケージを使ってコードでパイプラインを構築します。セキュリティアラームシステムのガイドでは、Ultralytics YOLO26を使ったコードベースのアラートプロジェクトを紹介しています。
- マルチストリーム動画パイプライン。 NVIDIAによると、DeepStreamはストリーミング分析ツールキットであり、GStreamerベースのフレームワークを使ってNVIDIA GPU上にマルチストリーム、マルチモデル推論パイプラインを構築できます。
- 汎用自動化ツール。 Node-REDは、コンピュータビジョン以外も含む幅広い自動化を構築するチーム向けに、ブラウザベースのフローエディターを備えたフローベースのプログラミングツールとして紹介されています。
よくある質問
Ultralytics PlatformのUltralytics Agentsでは、YOLOモデル、Platformのデプロイメント、視覚言語モデルをビジュアルキャンバス上のブロックとして連結できます。一般的なパターンはYOLO → Gate → LLMです。YOLOで画像を絞り込み、視覚言語モデルが条件を満たした画像だけを説明します。
Ultralytics Agentsでは、YOLO検出モデルとGateブロックを組み合わせます。Gateブロックは検出数、信頼度、クラスに基づいてルールを適用し、Slack、Webhook、データセットへのアクションにも接続できます。チームはコードを書かずにテンプレートからワークフローを作成し、後でPythonとしてエクスポートできます。
Ultralytics Agentsでは、GateブロックをWebhookブロックに接続します。条件が一致した場合にのみWebhookが実行され、検出結果に
{output}を置き換えたJSONを、結果ごとに1件のPOSTとして公開HTTPSエンドポイントに送信します。Ultralytics Agentsでは、「person count ≥ 1」などの条件に接続したSlackブロックからSlackメッセージを送信できます。Settings > IntegrationsでSlackを一度接続し、Capture and Alertテンプレートを使用します。
Ultralytics Agentsでは、ワークフローに名前を付けて保存できます。保存済みのワークフローを開き、新しい画像またはデータセットを入力として選択して、Runをクリックします。専用デプロイメントでの実行には、ワークフロー全体の実行時間や画像数の上限はありません。ただし、既存のデプロイメントとプロバイダーの制限は引き続き適用されます。
Ultralytics Agentsは、Ultralytics Platformのノーコード・コンピュータビジョンワークフロービルダーです。編集可能なテンプレートを使って、Ultralytics YOLOの検出結果を条件、Slackアラート、Webhook、データセットへの画像保存に接続できます。共有トライアルでは、デプロイメントを作成せずに小規模なワークフローを実行できます。Slackアクションには接続済みのSlackチャンネルが必要で、視覚言語モデルのステップには対応するプロバイダーキーが必要です。
いいえ。ワークフローは、選択した画像、動画、またはデータセットでRunをクリックしたときに実行され、ワークフローを保存しても実行はスケジュールされません。カメラを継続的に監視するには、別途コードベースまたはストリーミング方式で実装する必要があります。
執筆者
コメント
質問したり、結果を共有したり、ほかの人をサポートしたりできます。










