> For the complete documentation index, see [llms.txt](https://docs.roboflow.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roboflow.com/roboflow/roboflow-jp/workflows/build-a-workflow.md).

# Workflow を作成

Workflowはblockで構成されており、モデル推論の実行、ロジックの実行、外部サービスとの連携など、特定のタスクを実行します。

利用可能なblock一覧についてさらに詳しく知るには、こちらの [blockドキュメント](https://inference.roboflow.com/workflows/blocks/).

### 概要

このガイドでは、物体検出モデルを実行し、予測数を数え、モデル結果を可視化する4 blockのWorkflowの作成方法を説明します。こちらが [最終Workflowテンプレート](https://app.roboflow.com/workflows/embed/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ3b3JrZmxvd0lkIjoiMmdqakJxMDV3Q01ac1hHM3hkeFAiLCJ3b3Jrc3BhY2VJZCI6ImtyT1RBYm5jRmhvUU1DZExPbGU0IiwidXNlcklkIjoiSW1GTElaU2tHYk55OXpiNFV1cWxNelBScHBRMiIsImlhdCI6MTczODE4ODk5MH0.f72WI5bdjtnwC8iqXF_XiUVarfOktIAH1egpsI0Oh4Q) 手順に沿って進めるためのものです。

{% embed url="<https://app.roboflow.com/workflows/embed/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ3b3JrZmxvd0lkIjoiMmdqakJxMDV3Q01ac1hHM3hkeFAiLCJ3b3Jrc3BhY2VJZCI6ImtyT1RBYm5jRmhvUU1DZExPbGU0IiwidXNlcklkIjoiSW1GTElaU2tHYk55OXpiNFV1cWxNelBScHBRMiIsImlhdCI6MTczODE4ODk5MH0.f72WI5bdjtnwC8iqXF_XiUVarfOktIAH1egpsI0Oh4Q>" fullWidth="false" %}

<figure><img src="/files/35eea4fcd1c513f9324d86f1c1a5f03975149405" alt="" width="563"><figcaption><p>検出・カウント・可視化のWorkflow</p></figcaption></figure>

### blockの接続

構築を始める前に、blockの接続がどのように機能するかを理解しておくことが重要です。

ある場所にblockを追加するには、前のblockを入力として使用する必要があります。たとえば、上に示したWorkflowでは、 *Property Definition* blockは、 *物体検出* blockの後に続きます。なぜなら、モデルblockを入力として使用するからです。The *Bounding Box Visualization* blockは右側にあります。なぜなら、 *Property Definition* blockの出力は使用しませんが、モデルの出力は参照するからです。

<figure><img src="/files/748d251b11c4c481b195ce2c0fa23e98f3e332e5" alt=""><figcaption><p>Model Comparison Workflow</p></figcaption></figure>

上の例のWorkflowでは、4つの異なる経路があります。各ブランチが実行時に並列で実行され、他のブランチのblockを入力として必要としないためです。

### Builder Assist

Builder Assistは、blockの接続や挿入時にWorkflow editorがどれだけ支援するかを制御します。右上のnavbarにあるトグルでモードを切り替えられます。

モードは3つあります：

* **Auto** (default): blockの接続や挿入時に、互換性のある入力フィールドと出力フィールドを自動で接続します。また、blockを削除または切断したときには、builderが下流の参照も修復します。
* **Quick**: 接続候補とblockのおすすめを表示しますが、明示的に承認した場合にのみ適用されます。builderに代わって変更を加えられたくないが、ガイダンスはほしい場合に便利です。
* **Manual**: 提案も自動配線もありません。すべての接続を自分で管理します。

選択したモードはローカルに保存されるため、セッションをまたいで保持されます。

### Workflowの構築

#### 物体検出モデル

まず、 *物体検出モデル* blockを追加します。COCOで学習済みのYOLOv8nのような公開pre-trained modelを選択できます。 [COCO](https://universe.roboflow.com/microsoft/coco)、またはworkspace内のfine-tuned modelも選べます。ここではpre-trained *yolov8n* modelを使って、人と車両を検出します。

<figure><img src="/files/174343d9d284c6b6eeb6d17e61d3b7a4ca7129ab" alt="" width="344"><figcaption></figcaption></figure>

Object Detection blockには必須のimageパラメータがあり、モデルが何を推論するかを決定します。いくつかの任意パラメータがありますが、主要なものは以下で詳しく説明します：

* Class Filter: モデルが返すクラスの一覧。注：モデルは常に学習済みのクラスのみを返します。これにより、不要なクラスを除外できます。
* Confidence: そのしきい値未満のオブジェクトは返されません。
* IoU threshold: しきい値を高くすると、重なりのある予測がより多く返されます。0.9は、重なりが90%以下のオブジェクトが返されることを意味し、0.1は、10%を超える重なりのあるオブジェクトは含まれないことを意味します。
* Max Detections: モデルが返すオブジェクトの最大数
* Class Agnostic NMS: 重なりのフィルタリングで、同じクラスのオブジェクトだけを比較・除外するのか、すべてのクラスを対象にするのか

#### Property Definition

Property Definition blockを使うと、画像サイズ、予測クラス、検出されたオブジェクト数など、データから関連情報を抽出できます。この例では、Object Detection modelによって検出されたオブジェクト数を数えます。

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXc507UbRnkEH6XMdrfmwVZbHcK6x6K5THwnt1RmEk8iXSojwvmiA_q6KwRXV9bJudYnW7NMTQKKb9GqGxm_P0VjbuOoGWcDsM5NoQckl9jV4YcjYQFIvYoCgvd_YnQTNJLlwdbZwA?key=yGJPQzp1abf4J7pT0mnBw8w4" alt="" width="375"><figcaption></figcaption></figure>

次の *Data* プロパティでは、モデルの予測を参照します。次の *Operations*, Count Itemsを選択します。この設定により、Object Detection modelによる予測数が返されます。

#### Bounding Box Visualization

モデル結果を可視化するために、bounding box visualization blockを追加します。次の *image* パラメータでは入力画像を選択します。予測にはモデル結果を選択します。オプションの設定プロパティを使って、bounding boxの色やサイズを変更することもできます。

<figure><img src="/files/cc57ad62cb2fa829a7abf622f8a5ca5138e50473" alt="" width="342"><figcaption></figcaption></figure>

#### Label Visualization

bounding boxの描画に加えて、予測のクラス名も表示したいはずです。そのために、 *Label Visualization* blockをbounding box visualizationの後に追加します。bounding boxとラベルの両方を同じ画像に描画するには、参照元の入力画像を *bounding\_box\_visualization* imageとして、入力画像を参照するのではなく設定します。これにより、ラベルがbounding boxの上に描画されます。

<figure><img src="/files/e7cb5c6eea7ab71ad5708a07e4494ef2cd307191" alt="" width="343"><figcaption></figcaption></figure>

任意の *Text* パラメータを変更して、表示テキストをクラス名、confidence、クラス名とconfidenceのいずれかに切り替えられます。

### 変更の保存

Workflow editorは変更を下書きとして自動保存します。編集時に手動で保存する必要はありません。

変更を公開するには、Workflowをpublishします。Workflowをdeploy済みの場合、公開版はWorkflowがdeployされているすべてのデバイスで実行を開始します。

Workflowが完成したので、テストする時間です。


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.roboflow.com/roboflow/roboflow-jp/workflows/build-a-workflow.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
