> 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/workflows/ja/burokku/blocks/video-processing/identify-changes.md).

# 変更を識別

埋め込みベクトルを時間経過で追跡し、コサイン類似度の変化を測定し、変化率統計を計算し、変化検出、異常監視、変化率分析、時系列パターン検出のワークフローにおいて、データパターンが過去の基準と比べて異常な速度で変化するタイミングを検出します。

## このブロックの仕組み

このブロックは、埋め込みが時間とともにどれだけ速く変化するかを監視し、現在の変化率を過去のパターンと比較することで変化を検出します。このブロックは:

1. 現在のデータポイントの特徴を表す埋め込みベクトルを受け取ります
2. 埋め込みを単位長に正規化します:
   * 埋め込みをコサイン類似度計算用の単位ベクトル（長さ = 1）に変換します
   * 距離ベースの指標ではなく角度類似度を用いた比較を可能にします
   * ゼロベクトルは正規化をスキップして適切に処理します
3. サンプル数とウォームアップ状態を追跡します:
   * 処理した埋め込みごとにサンプルカウンタを増やします
   * まだウォームアップ期間中かどうかを判定します（samples < warmup パラメータ）
   * ウォームアップ中は、ベースラインを確立するために外れ値は識別されません
4. 3つの戦略のいずれかを用いて、埋め込みの平均と標準偏差のランニング統計を維持します:

   **指数移動平均（EMA）戦略の場合:**

   * smoothing\_factor を用いた指数移動平均で平均と分散を更新します
   * より最近の埋め込みほど重みが大きくなります（smoothing\_factor により制御）
   * 履歴コンテキストを維持しながら、最近の傾向にすばやく適応します
   * 平滑化係数は応答性を決定します（高いほど最近の変化に敏感）

   **単純移動平均（SMA）戦略の場合:**

   * Welford の方法を使用して、ランニング平均と分散を計算します
   * すべての過去サンプルが統計に等しく寄与します
   * 時間を通じて安定した偏りのない推定を提供します
   * 一貫した長期追跡に適しています

   **スライディングウィンドウ戦略の場合:**

   * 最近の埋め込みを固定サイズのウィンドウで保持します（window\_size）
   * ウィンドウがサイズを超えると最も古い埋め込みを削除します（FIFO）
   * ウィンドウ内の内容のみから平均と標準偏差を計算します
   * 古い情報を破棄しつつ、最近の傾向にすばやく適応します
5. 現在の埋め込みとランニング平均の間のコサイン類似度を計算します:
   * 現在の埋め込みが典型的な埋め込みパターンにどれだけ近いかを測定します
   * コサイン類似度は -1（逆方向）から 1（一致）までの範囲です
   * 1 に近い値は、その埋め込みが基準と類似していることを示します
   * 1 から離れるほど、その埋め込みが基準と異なることを示します
6. コサイン類似度統計を監視して変化率を追跡します:
   * コサイン類似度値のランニング平均と標準偏差を維持します
   * コサイン類似度の追跡にも同じ戦略（EMA、SMA、またはスライディングウィンドウ）を使用します
   * 埋め込みが過去の変化率と比べてどれだけ速く変化しているかを測定します
   * 平均変化率と変化率のばらつきの両方を追跡します
7. 現在のコサイン類似度の z スコアを計算します:
   * 現在のコサイン類似度が平均から何標準偏差離れているかを測定します
   * z\_score = (current\_cosine\_similarity - average\_cosine\_similarity) / std\_cosine\_similarity
   * 正の z スコアは通常より速い変化を示します
   * 負の z スコアは通常より遅い変化を示します
8. z スコアをパーセンタイルに変換します:
   * 誤差関数（erf）を使用して、z スコアをパーセンタイル位置に変換します
   * パーセンタイルは、現在の変化率が過去の変化率の中でどの位置にあるかを示します
   * 0.0 に近い値は、異常に遅い変化（低いパーセンタイル）を示します
   * 1.0 に近い値は、異常に速い変化（高いパーセンタイル）を示します
9. パーセンタイル閾値に基づいて外れ値かどうかを判定します:
   * パーセンタイルが threshold\_percentile/2 を下回る場合、外れ値としてフラグします（異常に遅い変化）
   * パーセンタイルが (1 - threshold\_percentile/2) を上回る場合、外れ値としてフラグします（異常に速い変化）
   * 異常に速い変化率と異常に遅い変化率の両方を検出します
10. 次の反復に向けてランニング統計を更新します:
    * 選択した戦略を使用して埋め込みの平均と標準偏差を更新します
    * 選択した戦略を使用してコサイン類似度の平均と標準偏差を更新します
    * ワークフロー実行をまたいで状態を維持します
11. 6つの出力を返します:
    * **is\_outlier**: 変化率が異常かどうかを示すブールフラグ
    * **percentile**: 過去の変化率の中での位置を示す 0.0〜1.0 の浮動小数点値
    * **z\_score**: 平均変化率からの標準偏差を示す浮動小数点値
    * **average**: 現在の平均埋め込みベクトル（過去の埋め込みのランニング平均）
    * **std**: 埋め込みの現在の標準偏差ベクトル（各次元ごとのばらつき）
    * **warming\_up**: まだウォームアップ期間中かどうかを示すブールフラグ

このブロックは **変化率** を監視します。単に外れ値を検出するのではなく、埋め込みがどれだけ速く変化しているかを追跡し、これを過去の変化パターンと比較します。埋め込みが過去よりもはるかに速く、または遅く変化した場合、このブロックはそれを異常としてフラグします。これにより、突然のパターン変化、シーンの予期しない変化、または異常な行動パターンの検出に最適です。3つの戦略（EMA、SMA、スライディングウィンドウ）は、応答性と安定性の間で異なるトレードオフを提供します。

## 一般的な使用例

* **変化検出**: シーン、環境、またはパターンが予期せず変化したときに検出します（例: シーン変化の検出、突然のパターン変化の識別、予期しない環境変化のフラグ付け）。これにより、変化検出ワークフローを実現します
* **異常監視**: 行動やパターンの異常な変化を監視します（例: 異常な行動変化の検出、異常なパターン変動の監視、予期しない変化率のフラグ付け）。これにより、異常監視ワークフローを実現します
* **変化率分析**: データストリームにおける異常な変化率を分析および検出します（例: 異常に速い変化の検出、異常に遅い変化の識別、変化率パターンの監視）。これにより、変化率分析ワークフローを実現します
* **時系列パターン検出**: 時系列パターンが期待される変化率から逸脱したときを識別します（例: パターンの乱れの検出、タイムライン異常の識別、時系列の不整合のフラグ付け）。これにより、時系列パターン検出ワークフローを実現します
* **品質監視**: 品質や特性の予期しない変化を監視します（例: 品質劣化の検出、予期しない品質変化の識別、特性変動の監視）。これにより、品質監視ワークフローを実現します
* **イベント検出**: 異常な変化率に基づいて重要なイベントを検出します（例: 重要イベントの検出、重要な変化の識別、注目すべきパターン変化のフラグ付け）。これにより、イベント検出ワークフローを実現します

## 他のブロックへの接続

このブロックは埋め込みを受け取り、is\_outlier、percentile、z\_score、average、std、warming\_up の各出力を生成します:

* **埋め込みモデルブロックの後** （CLIP、Perception Encoder など）の後に配置し、埋め込みから変化率を分析します（例: CLIP 埋め込みから変化を検出、Perception Encoder の変化率を分析、埋め込みベースの変化を監視）。これにより、埋め込み→変化のワークフローを実現します
* **分類または検出ブロックの後** 埋め込みと組み合わせて異常な変化パターンを識別します（例: 検出結果の異常な変化の検出、異常な分類変化のフラグ付け、予測パターン変化の監視）。これにより、予測→変化のワークフローを実現します
* **ロジックブロックの前** Continue If のようなブロックで変化検出に基づいて判断します（例: 変化が検出されたら継続、変化率に基づいてフィルタリング、異常な変化でアクションをトリガー）。これにより、変化ベースの意思決定ワークフローを実現します
* **通知ブロックの前** 変化検出についてアラートします（例: 重要な変化でアラート、パターンの変化を通知、変化率異常でアラートをトリガー）。これにより、変化ベースの通知ワークフローを実現します
* **データ保存ブロックの前** 変化情報を記録します（例: 変化データのログ記録、変化統計の保存、変化率メトリクスの記録）。これにより、変化データのログ記録ワークフローを実現します
* **監視パイプラインでは** 変化検出が継続的監視の一部となっている場合（例: 観測システムの変化監視、パターン変動の追跡、監視ワークフローでの異常検出）。これにより、変化監視ワークフローを実現します

## 要件

このブロックは入力として埋め込みを必要とします（通常は CLIP や Perception Encoder などの埋め込みモデルブロックからのものです）。このブロックは、ワークフロー実行をまたいで内部状態を維持し、埋め込みとコサイン類似度値の両方についてランニング統計を追跡します。ウォームアップ期間中（最初の `ウォームアップ` サンプル）、外れ値は識別されず、ブロックは is\_outlier=False、percentile=0.5、warming\_up=True を返します。ウォームアップ後は、ブロックは選択した戦略（EMA、SMA、またはスライディングウィンドウ）を使用して統計を追跡し、変化率異常を検出します。threshold\_percentile パラメータ（0.0-1.0）は感度を制御します。値が低いほど極端な変化率のみを検出し、値が高いほどより中程度の変化率の偏差を検出します。戦略の選択は応答性に影響します。EMA は最近の傾向にすばやく適応し、SMA は安定した長期追跡を提供し、スライディングウィンドウはすばやく適応しますが古い情報を破棄します。このブロックは一貫した埋め込みモデルで最もよく機能し、データ内の想定される変動や変化パターンに基づいて threshold\_percentile と戦略の調整が必要になる場合があります。

### 型識別子

ステップで次の識別子を使用してください `"type"` フィールド： `roboflow_core/identify_changes@v1` ワークフローにこのブロックをステップとして追加するには。

### プロパティ

| **名前**                 | **型**   | **説明**                                                                                                                                                                                                                                                                        | 参照 |
| ---------------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -- |
| `name`                 | `str`   | ワークフロー内のステップの一意の名前。                                                                                                                                                                                                                                                           | ❌  |
| `戦略`                   | `str`   | 埋め込みと変化率統計を追跡するための統計戦略。'指数移動平均（EMA）': 最近の傾向にすばやく適応し、最近のデータにより大きな重みを置きます。'単純移動平均（SMA）': 安定した長期追跡で、すべてのデータが等しく寄与します。'スライディングウィンドウ': 迅速な適応、最近の window\_size サンプルのみを使用します。EMA は適応型監視に最適、SMA は安定追跡に最適、スライディングウィンドウは迅速な適応に最適です。                                                     | ❌  |
| `threshold_percentile` | `float` | 変化率異常検出のためのパーセンタイル閾値で、範囲は 0.0〜1.0 です。threshold\_percentile/2 を下回る、または (1 - threshold\_percentile/2) を上回る変化率は外れ値としてフラグされます。低い値（例: 0.05）は極端な変化率のみを検出します - 非常に厳格です。高い値（例: 0.3）はより中程度の変化率の偏差を検出します - より敏感です。デフォルト 0.2 は、変化率の下位10%と上位10%が外れ値であることを意味します。想定される変化率のばらつきに応じて調整してください。 | ✅  |
| `ウォームアップ`              | `整数`    | 変化検出を開始する前に必要な初期データポイント数です。ウォームアップ中は、変化率のベースラインを確立するために外れ値は識別されません（is\_outlier=False）。統計分析には少なくとも 2 が必要です。一般的な範囲: 3〜100 サンプル。値が高いほどベースラインは安定しますが、変化検出が遅れます。値が低いほど検出は速くなりますが、初期の精度が低下する場合があります。                                                                                | ✅  |
| `smoothing_factor`     | `float` | 指数移動平均戦略の平滑化係数（alpha）で、範囲は 0.0〜1.0 です。最近のデータに対する応答性を制御します。値が高いほど統計は最近の変化に敏感になり、値が低いほどより多くの履歴コンテキストを保持します。例: 0.1 は現在値に 10% の重み、過去平均に 90% の重みを意味します。一般的な範囲: 0.05〜0.3。戦略が '指数移動平均（EMA）' の場合にのみ使用されます。                                                                            | ✅  |
| `window_size`          | `整数`    | スライディングウィンドウで保持する最近の埋め込みの最大数です。上限を超えると、最も古い埋め込みが削除されます（FIFO）。ウィンドウが大きいほど統計は安定しますが、変化への適応は遅くなります。ウィンドウが小さいほど適応は速くなりますが、安定性が低下する場合があります。戦略が 'スライディングウィンドウ' の場合にのみ使用されます。少なくとも 2 が必要です。一般的な範囲: 5〜50 埋め込み。                                                                        | ✅  |

この **参照** 列は、で利用可能な動的値を使ってプロパティをパラメータ化できる可能性を示します `ワークフロー` 実行時。参照 *バインディング* 詳細は。

### ランタイム互換性

`soft` - ランタイム `hosted_serverless`, `dedicated_deployment`；実行 `リモート`; 入力 `動画` このブロックは、プロセスメモリ内に動画ごとの状態を保持します（video\_metadata.video\_identifier をキーとする）。ステートレスまたは複数レプリカのHTTPランタイムでリモートステップ実行を行うと、連続するリクエストが別々のワーカープロセスによって処理される可能性があるため、呼び出し間で状態がリセットされ、追跡／カウント／集計には意味のない出力になります。安定したフレーム間結果を得るには、永続的な WebRTC セッションでローカルステップ実行を使用してください。

`soft` - 入力 `image` このブロックは、動画または繰り返しフレームのワークフローからの時間的コンテキストに依存します。静止画像／写真では、追跡、比較、集計、可視化に使える意味のある履歴がないため、このブロックの利点はほとんど、またはまったくありません。

### 入力と出力のバインディング

利用可能な接続は、そのバインディング種別によって異なります。どのバインディング種別が `変更を特定` のバージョン `v1` あるか確認してください。

<details>

<summary>入力と出力のバインディング</summary>

* 入力
  * `埋め込み` ([*`埋め込み`*](/workflows/ja/gaido/developer-guide/kinds/embedding.md)): 現在のデータポイントの特徴を表す埋め込みベクトル。通常は CLIP や Perception Encoder などの埋め込みモデルから取得します。埋め込みは、コサイン類似度計算のために単位長に正規化されます。このブロックは現在の埋め込みをランニング平均と比較し、時間経過に伴う変化率を追跡します。
  * `threshold_percentile` ([*`float_zero_to_one`*](/workflows/ja/gaido/developer-guide/kinds/float-zero-to-one.md)変化率異常検出のためのパーセンタイル閾値で、範囲は 0.0〜1.0 です。threshold\_percentile/2 を下回る、または (1 - threshold\_percentile/2) を上回る変化率は外れ値としてフラグされます。低い値（例: 0.05）は極端な変化率のみを検出します - 非常に厳格です。高い値（例: 0.3）はより中程度の変化率の偏差を検出します - より敏感です。デフォルト 0.2 は、変化率の下位10%と上位10%が外れ値であることを意味します。想定される変化率のばらつきに応じて調整してください。
  * `ウォームアップ` ([*`整数`*](/workflows/ja/gaido/developer-guide/kinds/integer.md)変化検出を開始する前に必要な初期データポイント数です。ウォームアップ中は、変化率のベースラインを確立するために外れ値は識別されません（is\_outlier=False）。統計分析には少なくとも 2 が必要です。一般的な範囲: 3〜100 サンプル。値が高いほどベースラインは安定しますが、変化検出が遅れます。値が低いほど検出は速くなりますが、初期の精度が低下する場合があります。
  * `smoothing_factor` ([*`float_zero_to_one`*](/workflows/ja/gaido/developer-guide/kinds/float-zero-to-one.md)指数移動平均戦略の平滑化係数（alpha）で、範囲は 0.0〜1.0 です。最近のデータに対する応答性を制御します。値が高いほど統計は最近の変化に敏感になり、値が低いほどより多くの履歴コンテキストを保持します。例: 0.1 は現在値に 10% の重み、過去平均に 90% の重みを意味します。一般的な範囲: 0.05〜0.3。戦略が '指数移動平均（EMA）' の場合にのみ使用されます。
  * `window_size` ([*`整数`*](/workflows/ja/gaido/developer-guide/kinds/integer.md)スライディングウィンドウで保持する最近の埋め込みの最大数です。上限を超えると、最も古い埋め込みが削除されます（FIFO）。ウィンドウが大きいほど統計は安定しますが、変化への適応は遅くなります。ウィンドウが小さいほど適応は速くなりますが、安定性が低下する場合があります。戦略が 'スライディングウィンドウ' の場合にのみ使用されます。少なくとも 2 が必要です。一般的な範囲: 5〜50 埋め込み。
* 出力
  * `is_outlier` ([`boolean`](/workflows/ja/gaido/developer-guide/kinds/boolean.md)) : ブールフラグ。
  * `percentile` ([`float_zero_to_one`](/workflows/ja/gaido/developer-guide/kinds/float-zero-to-one.md)): `float` 範囲内の値 `[0.0, 1.0]`.
  * `z_score` ([`float`](/workflows/ja/gaido/developer-guide/kinds/float.md)): 浮動小数値。
  * `average` ([`埋め込み`](/workflows/ja/gaido/developer-guide/kinds/embedding.md)ベクトル埋め込みを表す浮動小数点数のリストです。
  * `std` ([`埋め込み`](/workflows/ja/gaido/developer-guide/kinds/embedding.md)ベクトル埋め込みを表す浮動小数点数のリストです。
  * `warming_up` ([`boolean`](/workflows/ja/gaido/developer-guide/kinds/boolean.md)) : ブールフラグ。

</details>

<details>

<summary>JSON 定義の例</summary>

```json
{
	    "name": "<your_step_name_here>",
	    "type": "roboflow_core/identify_changes@v1",
	    "strategy": "指数移動平均（EMA）",
	    "embedding": "$steps.clip.embedding",
	    "threshold_percentile": 0.2,
	    "warmup": 3,
	    "smoothing_factor": 0.1,
	    "window_size": 10
	}
```

</details>
