> 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/deployment/ja/to/active-learning.md).

# Active Learning

## 概要

Active Learningは、デプロイ済みモデルから本番データを収集し、レビューと再学習のために表示します。モデルが本番環境で推論を実行すると、Active Learningは、設定したルール（低信頼度の予測や特定のクラスなど）に基づいて画像を自動的にサンプリングし、人によるレビューのためにキューに入れます。

{% hint style="info" %}
Active Learningにはクラウドデプロイが必要です。Annotation Review機能のあるプランで利用できます。
{% endhint %}

## Web アプリ

### Active Learningを有効にする

1. プロジェクトを開き、左側のサイドバーで「Active Learning」を選択します。
2. Active Learningをオンに切り替えます。

Active Learningがデータを収集するには、プロジェクトに学習済みモデルと有効なクラウドデプロイが必要です。

### 収集ルールを設定する

Active Learningの設定には、収集制限と条件の2つのカテゴリがあります。

#### 収集制限

Active Learningが収集するデータ量を制御します:

* サンプリング率: サンプル対象にする推論の割合（例: 0.5%）
* 1分あたり、1時間あたり、1日あたりの画像上限
* 圧縮レベルと画像の最大サイズ
* バッチ再生成頻度（日次、週次、月次、またはなし）
* 収集した画像にモデル予測を保持するかどうか

これらの設定を編集するには、収集制限セクションの「編集」をクリックし、構成モーダルで値を更新します。

#### 条件

条件は、どの画像を収集するかを絞り込みます。モデルの種類に基づいてルールを定義できます:

* 信頼度のしきい値（例: 信頼度が60%未満の画像を収集）
* 関心のある特定のクラス
* 検出数の要件

条件を設定するには、条件セクションの「編集」をクリックします。

### エージェントからActive Learningを管理する

Active Learningも次の場所で管理できます [Roboflow Agent](https://docs.roboflow.com/agents/roboflow-agent)。プロジェクトタブを開き、「Settings」を選択し、このページと同じトグル、収集制限、条件を使用します。これには、Manage Workflows、Publish Workflows、およびDataset Active Learningの権限が必要です。

### 収集された画像を確認する

Active Learningが画像を収集すると、Active LearningページのImagesセクションに表示されます。このページには、レビュー待ちの画像数と現在レビュー中の画像数が表示されます。

レビューを開始するには:

1. 「Review Images」をクリックしてレビューキューを開きます。
2. ステータス（Not Started、In Progress）でバッチを閲覧し、作成日、画像数、または進捗で並べ替えます。
3. レビューを始めるバッチを選択します。

### レビュアーを割り当てる

レビュー作業をチーム全体に分配できます:

1. レビューキューを開き、バッチを選択します。
2. クリックしてレビュアーを割り当てます。
3. チームメンバーを選び、割り当てる画像数を設定し、必要に応じてレビュー手順を追加します。
4. 「Shuffle Images」をオンにして、各レビュアーが受け取る画像をランダム化します。

画像が割り当てられるとレビュアーに通知されます。画像はいつでも別のレビュアーに再割り当てできます。

### Active Learningがトレーニングループに組み込まれる仕組み

一般的なワークフロー:

1. モデルを学習し、デプロイします。
2. ユースケースに合わせて調整した条件でActive Learningを有効にします。
3. 条件に一致する本番データが収集され、キューに入れられます。
4. レビュアーが収集された画像にラベルを付けます。
5. レビュー済みの画像をデータセットに追加して再学習し、モデルを改善します。

これにより、モデルが最も苦手なケースで改善されるフィードバックループが生まれます。

## HTTP API

HTTP APIを使用して、Active Learningの有効化/無効化、収集ルールの更新、レビューキュー内の画像一覧表示を行います。エンドポイントは `https://api.roboflow.com` を使用し、 `api_key` のクエリパラメータ、リクエストボディ、またはBearer認証ヘッダーにAPIキーが必要です。

### Active Learningの設定を取得

<mark style="color:green;">`GET`</mark> `/:workspace/:project/deploy/active-learning`

必須スコープ: `project:read`

```bash
curl "https://api.roboflow.com/my-workspace/my-project/deploy/active-learning?api_key=$ROBOFLOW_API_KEY"
```

応答には、プロジェクト、デプロイワークフロー、選択されたモデル、デプロイ可能性、およびActive Learning設定が含まれます:

```json
{
  "project": { "url": "my-project", "name": "My Project" },
  "workflow": { "url": "my-project-base-workflow" },
  "model": {
    "id": "rfdetr-medium",
    "kind": "pretrained",
    "displayName": "RF-DETR Medium",
    "modelId": "rfdetr-medium"
  },
  "deployability": {
    "status": "deployable",
    "modelWasConfigured": false,
    "selectedModelId": null,
    "selectionReason": null
  },
  "activeLearning": {
    "enabled": false,
    "collectionLimits": {
      "dataPercentage": 100,
      "minutelyUsageLimit": 10,
      "hourlyUsageLimit": 100,
      "dailyUsageLimit": 1000,
      "labelingBatchesRecreationFrequency": "daily",
      "usageQuotaName": "upload_quota_active_learning",
      "imageCompressionLevel": 95,
      "maxImageHeight": 1080,
      "maxImageWidth": 1920,
      "persistPredictions": true
    },
    "filters": []
  }
}
```

### Active Learningを有効にする

<mark style="color:green;">`POST`</mark> `/:workspace/:project/deploy/active-learning/enable`

必須スコープ: `project:update`

```bash
curl -X POST "https://api.roboflow.com/my-workspace/my-project/deploy/active-learning/enable" \
  -H "Content-Type: application/json" \
  -d '{ "api_key": "'$ROBOFLOW_API_KEY'" }'
```

モデルが設定されていない場合、サービスはモデルを選択しようとします。A `400` の応答は、Workflowがデプロイ可能ではないことを意味します。応答の形は [Active Learningの設定を取得](#get-active-learning-configuration)と同じで、 `activeLearning.enabled` が `true`.

### Active Learningを無効にする

<mark style="color:green;">`POST`</mark> `/:workspace/:project/deploy/active-learning/disable`

必須スコープ: `project:update`

```bash
curl -X POST "https://api.roboflow.com/my-workspace/my-project/deploy/active-learning/disable" \
  -H "Content-Type: application/json" \
  -d '{ "api_key": "'$ROBOFLOW_API_KEY'" }'
```

応答の形は [Active Learningの設定を取得](#get-active-learning-configuration)と同じで、 `activeLearning.enabled` が `false`.

### Active Learningの設定を更新

<mark style="color:green;">`POST`</mark> `/:workspace/:project/deploy/active-learning/configuration`

必須スコープ: `project:update`

新しいプロジェクトで設定する前に、Active Learningを有効にしてください。リクエストには `collectionLimits`を含める必要があります。 `filters` 配列は任意です。省略すると、既存のフィルターは変更されません。

```bash
curl -X POST "https://api.roboflow.com/my-workspace/my-project/deploy/active-learning/configuration" \
  -H "Content-Type: application/json" \
  -d '{
    "api_key": "'$ROBOFLOW_API_KEY'",
    "collectionLimits": {
      "dataPercentage": 50,
      "minutelyUsageLimit": 10,
      "hourlyUsageLimit": 100,
      "dailyUsageLimit": 1000,
      "labelingBatchesRecreationFrequency": "daily",
      "usageQuotaName": "default",
      "imageCompressionLevel": 85,
      "imageName": "camera-1",
      "maxImageHeight": 1080,
      "maxImageWidth": 1920,
      "registrationTags": ["production"],
      "persistPredictions": true
    },
    "filters": [
      {
        "type": "classConfidence",
        "classFilterMode": "any",
        "classes": ["cat"],
        "confidenceLowerBound": 0.2,
        "confidenceUpperBound": 0.8
      }
    ]
  }'
```

必須の収集制限フィールドは次のとおりです:

* `dataPercentage`: 収集する推論の割合。から `0` まで `100`
* `minutelyUsageLimit`: 1分あたりに収集する最大画像数、または `0` を指定すると無制限
* `hourlyUsageLimit`: 1時間あたりに収集する最大画像数
* `dailyUsageLimit`: 1日あたりに収集する最大画像数
* `labelingBatchesRecreationFrequency`: `"never"`, `"daily"`, `"weekly"`、または `"monthly"`
* `usageQuotaName`: 空でないクォータ識別子

任意のフィールドは `imageCompressionLevel`, `imageName`, `registrationTags`と `persistPredictions`です。画像サイズを変更するには、 `maxImageHeight` と `maxImageWidth`の両方を指定してください。片方だけを指定すると、既存の画像サイズ制限は削除されます。

Active Learningは2種類のフィルターをサポートします:

* `classConfidence`: 信頼度範囲内の選択したクラスの予測を収集します。 `classFilterMode` は次のいずれかにできます `"any"`, `"in"`、または `"out"`.
* `detectionSize`: との間のバウンディングボックスを持つ予測を収集します `sizeLowerPercentage` と `sizeUpperPercentage` 画像サイズの範囲で。 このフィルターは、物体検出とインスタンスセグメンテーションのプロジェクトのみをサポートします。その他のプロジェクトタイプでは `400`.

応答の形は [Active Learningの設定を取得](#get-active-learning-configuration)の応答が返されます。 `400` 応答には、無効な収集制限またはフィルターの検証詳細が含まれます。

### Active Learning画像の一覧表示

<mark style="color:green;">`GET`</mark> `/:workspace/:project/deploy/active-learning/images`

必須スコープ: `project:read`

```bash
curl "https://api.roboflow.com/my-workspace/my-project/deploy/active-learning/images?api_key=$ROBOFLOW_API_KEY&page=1&pageSize=20"
```

このエンドポイントは次の任意のクエリパラメータを受け付けます:

* `page`: ページ番号。開始は `1`
* `pageSize`: 1ページあたりの項目数。最大 `50`
* `search`: キュー名、種類、ID、レビュアー、ラベラーに一致するテキスト
* `reviewer`: レビュアーのメールアドレスまたは `"unassigned"`
* `status`: `"all"`, `"not_started"`、または `"in_progress"`
* `sortBy`: `"created"`, `"images"`、または `"progress"`
* `sortDirection`: `"asc"` または `"desc"`

応答には、レビューキューの件数、ページネーションされたキュー項目、バッチ、アノテーションジョブ、および画像の合計が含まれます:

```json
{
  "activeLearningImages": {
    "totalImagesReadyForReview": 0,
    "totalImagesBeingReviewed": 0,
    "batches": [],
    "annotationJobs": [],
    "latestBatch": null,
    "latestAnnotationJob": null,
    "sampleImages": [],
    "reviewQueueCounts": {
      "all": 0,
      "notStarted": 0,
      "inProgress": 0
    },
    "reviewQueuePage": {
      "page": 1,
      "pageSize": 20,
      "totalItems": 0,
      "totalPages": 1,
      "items": [],
      "search": "",
      "status": "all",
      "sortBy": "created",
      "sortDirection": "desc",
      "reviewer": ""
    }
  }
}
```

## Python SDK

`Workspace.active_learning()` ディレクトリ内のすべての画像に対して推論を実行し、条件に応じてその画像（および予測）を宛先プロジェクトにアップロードします。これはSDKに組み込まれたアクティブラーニングループで、既存のモデルにラベリングする価値のあるものを選別させることで、未加工映像からラベリングキューを立ち上げます。

同じパターンは次の形で構築するのが最適です [ワークフロー](https://docs.roboflow.com/workflows/manage/manage-workflows#python-sdk) 本番利用向けですが、 `active_learning()` は、「フレームのフォルダがある」状態から「ラベル付きデータがプロジェクトに入る」状態への最短ルートです。

### 基本的な使い方

```python
import roboflow

rf = roboflow.Roboflow(api_key="YOUR_API_KEY")
ws = rf.workspace()

ws.active_learning(
    raw_data_location="./frames",
    raw_data_extension=".jpg",
    inference_endpoint=["my-detector", 3],   # [プロジェクト, バージョン]
    upload_destination="my-detector",         # 宛先プロジェクト
    conditionals={
        "required_class_variance_count": 1,           # 少なくとも1つの異なるクラス
        "minimum_size_requirement": 100,              # 検出あたりの最小ピクセル数
        "maximum_size_requirement": 4000000,
        "confidence_interval": [0, 60],               # 低信頼度の予測のみ
    },
)
```

#### パラメータ

* `raw_data_location` (str) - 入力画像のディレクトリ。
* `raw_data_extension` (str) - 一致させる画像拡張子（例: `.jpg`, `.png`).
* `inference_endpoint` (list, `[project, version]`) - 選別ステップとして実行するモデル。
* `upload_destination` (str) - 条件を満たした画像と予測をアップロードするプロジェクトID。多くの場合、モデルと同じプロジェクトです。
* `conditionals` (dict) - 画像をアップロードするかどうかを決定するルール。一般的なキー:
  * `confidence_interval` - `[min, max]`; この範囲に入る検出結果を持つ画像のみが転送されます。
  * `required_class_variance_count` - 必要な異なるクラスの最小数。
  * `minimum_size_requirement` / `maximum_size_requirement` - 検出面積（ピクセル）でフィルタします。
  * `required_class_count` - 検出総数。
* `use_localhost` (bool, default `False`) - `True`の場合、ホスト型推論の代わりにセルフホストの [Roboflow Inference](/deployment/ja/serufuhosuto/self-hosted.md) サーバーを使用します。
* `local_server` (str) - ローカル推論サーバーのベースURL。既定値: `http://localhost:9001/`.

### なぜ使うのか

一般的なループ:

1. 少量のラベル付きセットでv1モデルを学習します。
2. 対象を指定する `active_learning()` 未ラベルの本番データのフォルダに。
3. モデルが不確かな（低信頼度）画像や、まれなクラスを認識した画像のみを転送します。
4. それらにRoboflowのWebアプリでラベルを付けます。
5. 新しいサンプルでv2を生成し、再学習します。

調整 `conditionals` これにより、これは「すべてをアップロードする」から実際の選別ポリシーへと変わります。

### より大きなパイプライン

入力がビデオストリームである場合、モデルがWorkflowの背後にある場合、またはバッチ処理と再試行が必要な場合は、同等のものを [ワークフロー](https://docs.roboflow.com/workflows/manage/manage-workflows#python-sdk). `active_learning()` 静的フォルダからの単発のブートストラップ処理に最適です。

## MCP サーバー

AI エージェントを次に接続してください: [MCP サーバー](https://docs.roboflow.com/agents/mcp-server) そして、次のツールでActive Learningを設定できます:

<table data-search="false"><thead><tr><th width="290">ツール</th><th>説明</th></tr></thead><tbody><tr><td><code>project_deployment_enable_active_learning</code></td><td>プロジェクトデプロイでActive Learningを有効にします。</td></tr><tr><td><code>project_deployment_configure_active_learning</code></td><td>デプロイがActive Learningデータを収集する方法を設定します。</td></tr><tr><td><code>project_deployment_disable_active_learning</code></td><td>Active Learningの収集を一時停止します。</td></tr><tr><td><code>project_deployment_list_review_queues</code></td><td>本番推論で供給されたレビューキューを一覧表示します。</td></tr></tbody></table>
