> 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/datasets/ja/anotshon/anotshon/ai-labeling/auto-label.md).

# Auto Label

## 概要

{% hint style="info" %}
Auto Labelは数ある機能の一つです [AI ラベリング](/datasets/ja/anotshon/anotshon/ai-labeling.md) です。この機能を使用すると [クレジット](https://docs.roboflow.com/platform/billing-and-plans/credits) が、当社の [クレジットページ](https://roboflow.com/credits).
{% endhint %}

Roboflow Auto Labelでは、基盤ビジョンモデル（SAM 3）、Roboflowで学習したモデル、または保存済みの [ワークフロー](https://docs.roboflow.com/workflows) を使って画像に自動でラベル付けできます。

Roboflow Auto Labelは、指定したオブジェクトを識別するために次のソースを使用できます:

* SAM 3 - テキストプロンプトからオブジェクトにラベルを付ける基盤モデル（物体検出とセグメンテーション）
* Roboflowで学習したモデル（[https://github.com/roboflow/docs/tree/main/models/README.md](https://github.com/roboflow/docs/tree/main/models/README.md "mention"))
  * 注: 現在サポートされているのは、Annotation Batchと同じデータセットのモデルのみです。
* 保存済みの [ワークフロー](https://docs.roboflow.com/workflows) プロジェクトタイプに対応した

Auto Labelは、コンピュータビジョンモデルの学習に使うために何百万枚もの画像のラベル付けに利用されてきました。

自分のハードウェアで自動ラベル付けしたい場合は、Roboflowは次も提供しています [Autodistill](https://github.com/autodistill/autodistill)。これは、さまざまな基盤モデルを使って画像データセットを自動ラベル付けするオープンソースのフレームワークです。

### Roboflow Auto Label を使うタイミング

車両（例: フォークリフト）、人物、一般的な欠陥（例: ひび割れ）、一般的な製品（例: レコード盤、パン）などの一般的なオブジェクトに注釈を付ける必要がある場合は、Roboflow Auto Label を使うべきです。

オブジェクトの特定のバリエーションを識別する必要がある場合は、SAM 3 のような基盤モデルを使うべきではありません。たとえば Auto Label は、異なる種類のひび割れを区別したり、電子機器内の固有の欠陥を識別したりすることはできません。

## Roboflow Auto Label でデータにラベル付けする

Roboflowプラットフォームでは、全バッチでジョブを実行する前に、データセット内のデータクラスに対して Auto Label がどのようにラベル付けするかをプレビューできます。ラベル付け後は、品質保証のために結果を確認し（推奨）、ラベル付きデータセットでモデルを学習できます。

### 手順 #1: データをアップロード

まず、Roboflowにデータをアップロードします。詳しくは、 [画像、動画、アノテーションをアップロード](/datasets/ja/toappurdo/adding-data.md) Roboflowへの画像アップロード手順をご覧ください。

<figure><img src="/files/7b187b717af3a270255c035f4111095b7bca2710" alt=""><figcaption><p>Roboflowへの画像アップロード。</p></figcaption></figure>

### 手順 #2: Auto Label を開く

すべての画像をアップロードすると、画像をどのようにラベル付けしたいかを尋ねられます。「Auto-Label And Review」を選択してください。

<figure><img src="/files/e9eb6c3b75bf97cfee9cf13fc00210debded1516" alt="" width="353"><figcaption><p>Roboflow Auto Label のインターフェースを開くには、「Auto-Label And Review」を選択してください。</p></figcaption></figure>

### 手順 #3: Auto Label を設定

Auto Label のラベリングインターフェースが表示され、自動ラベル付けジョブを設定できます。

#### クラス（および説明）

クラスは、画像内のオブジェクトに割り当てたいラベルを表します。説明は、基盤モデル（SAM 3）がそのクラスのインスタンスを識別するために使用する、クラスの視覚的説明を表します。既定では、説明はクラス名になります。

Auto Labelは、視覚的に分かりやすい説明を伴う一般的なオブジェクトのラベル付けで最も効果を発揮します。たとえば、生産ライン上のアルミ缶の位置をAuto Labelは識別できます。しかし、ブランドの違いを見分けるといった特定の要件に基づいて画像にラベル付けすることはできません。

#### テスト結果を生成

Auto Labelを設定したら、「Generate Test Results」をクリックして、データセットの小さなサブセットでクラスをテストしてください。既定では4枚の画像が選択されます。

<figure><img src="/files/95c5847a4c8cc3a7da4b185c53de7b7faa9328aa" alt=""><figcaption><p>Auto Label のインターフェース。</p></figcaption></figure>

### 手順 #4: Roboflow Auto Label のラベルを評価

サンプル画像でクラス「aluminum can」を使用したときのテスト結果です。ここから次のことができます:

<figure><img src="/files/db0aaf1cac70522ab17033436d577f5f0b353d11" alt=""><figcaption><p>Auto Label がアルミ缶にアノテーションしています。</p></figcaption></figure>

#### クラスと説明を調整する

Auto Label が期待どおりに画像へラベル付けしない場合は、クラスの説明を変えてテストしてみてください。

{% hint style="info" %}
テスト結果の確認は無料で、クレジットは消費しません。
{% endhint %}

#### 信頼度を調整する

各クラスの右側の数値は、（表示されているこのクラスのボックス数）/（このクラスの総ボックス数）で表されます。より多くまたは少ないボックスを除外するには、各クラスの信頼度しきい値を調整できます。信頼度が高いほど、表示されるボックスは少なくなります。

{% hint style="info" %}
ここで設定した信頼度しきい値は、バッチ全体にラベル付けする際にも同じ値が使われるため、正しく設定されていることを確認してください。
{% endhint %}

#### 別の画像でテストする

バッチ内の別の画像でAuto Labelの性能を確認するには、左下の「Test images」セクションにある画像をクリックしてください。その画像のプレビューは、追加のボタンを押さなくてもすぐに読み込まれるはずです。

## ワークフローでラベル付けする

基盤モデルや学習済みモデルの代わりに、保存済みの [ワークフロー](https://docs.roboflow.com/workflows)を使って自動ラベル付けでき、SAHI、モデルアンサンブル、複数ステップのカスタムロジックを使ってバッチにラベルを付けられます。

Auto Labelのモデルのドロップダウンで「Workflows」タブを開き、ワークフローを選択してください。プロジェクトタイプ（検出、セグメンテーション、分類）に対応するワークフローのみが表示されます。

ワークフローを選択したら、その出力クラスをそれぞれプロジェクト内のクラスにマッピングし、クラスごとの信頼度しきい値を設定します。サンプル画像でプレビューが実行されるので、ジョブ開始前にマッピングを確認できます。

{% hint style="info" %}
マッピングしたクラスだけが適用されます。マッピングされていない出力クラスは破棄されるため、プロジェクトに書き戻したいクラスはすべてマッピングしてください。
{% endhint %}

マッピングが正しく見えたら、「Auto Label With This Workflow」をクリックしてジョブを開始します。ジョブはバックグラウンドで実行され、マッピングされたラベルがバッチに適用されます。

### バッチで Auto Label を実行

Auto Labelが期待どおりに画像へラベルを付ける場合は、「Auto Label with This Model」をクリックしてください。概要モーダルを確認し、クリックして続行します。1,000枚の画像のラベル付けには数分かかるはずです。

ジョブが開始されると、Annotateページに移動し、新しいAuto Labelジョブが他のアノテーションジョブと並んで表示されます。Auto Labelはバックグラウンドで実行されるため、完了後にそこで結果を確認できます。

## HTTP API

REST API を使って、自動ラベル付けジョブをプログラムから開始・追跡できます。Auto Label は基盤モデル（SAM 3）または独自に学習した Roboflow モデルを使って、バッチ内の画像に自動でアノテーションします。

これらのエンドポイントには [スコープ付き API キー](https://docs.roboflow.com/reference/authentication/authentication/scoped-api-keys) を使って `annotationJob.create` と `annotationJob.read` それぞれのスコープが必要です。

### Auto Label ジョブを作成

自動ラベル付けジョブを開始するには、POST リクエストを送信します:

```bash
curl --location --request POST 'https://api.roboflow.com/${WORKSPACE}/${PROJECT}/autolabel?api_key=${ROBOFLOW_API_KEY}' \
--header 'Content-Type: application/json' \\
--data-raw '{
    "batchId": "<BATCH_ID>",
    "modelType": "sam3",
    "ontology": {"a dog": "dog", "a cat": "cat"}
}'
```

また、 `ontology` を省略すると、API がモデルまたはデータセットのクラスから自動的に推定します:

```bash
curl --location --request POST 'https://api.roboflow.com/${WORKSPACE}/${PROJECT}/autolabel?api_key=${ROBOFLOW_API_KEY}' \
--header 'Content-Type: application/json' \\
--data-raw '{
    "batchId": "<BATCH_ID>",
    "modelType": "sam3"
}'
```

#### リクエストボディ

| パラメータ                  | 種類          | 必須  | 説明                                                                                              |
| ---------------------- | ----------- | --- | ----------------------------------------------------------------------------------------------- |
| `batchId`              | string      | はい  | ラベル付けする画像バッチの ID。                                                                               |
| `modelType`            | string      | はい  | 使用するモデル。次のいずれか: `sam3`, `custom_roboflow`.                                                      |
| `ontology`             | オブジェクトまたは配列 | いいえ | プロンプトをクラス名にマッピングします。形式は下記を参照してください。省略時は自動的に推定されます（参照 [オントロジーの自動推定](#ontology-auto-derivation)). |
| `numImagesToLabel`     | 数値          | いいえ | ラベル付けする画像数。既定ではバッチ全体です。                                                                         |
| `defaultConfidence`    | 数値          | いいえ | すべてのクラスに適用される信頼度しきい値（0〜1）。                                                                      |
| `confidenceThresholds` | オブジェクト      | いいえ | クラスごとの信頼度しきい値。例: `{"dog": 0.5, "cat": 0.7}`.                                                    |
| `reviewerEmail`        | string      | いいえ | レビュー担当として割り当てるワークスペースメンバーのメールアドレス。既定ではワークスペースの所有者になります。                                         |
| `runNMS`               | ブール値        | いいえ | 非最大抑制を実行するかどうか。既定値は `true`.                                                                     |
| `modelOptions`         | オブジェクト      | いいえ | モデル固有の追加オプション（例: `{"modelId": "your-model/1"}` 〜用の `custom_roboflow`).                          |

#### オントロジーの形式

その `ontology` フィールドは複数の形式を受け付けます。すべて内部で正規化されます。

**オブジェクト（標準）** - キーはプロンプト、値はクラス名です:

```json
{"a dog": "dog", "a cat": "cat"}
```

**文字列の配列** - 各文字列はプロンプトとクラス名の両方として使われます:

```json
["dog", "cat"]
```

**オブジェクトの配列:**

```json
[{"class": "dog", "prompt": "a dog"}, {"class": "cat", "prompt": "a cat"}]
```

#### オントロジーの自動推定

〜の場合 `ontology` が省略される（または空である）場合、API は次に基づいて自動的に推定しようとします: `modelType`:

| モデルタイプ            | 推定元                                             |
| ----------------- | ----------------------------------------------- |
| `custom_roboflow` | で指定されたモデルの学習済みクラスを使用します `modelOptions.modelId`. |
| `sam3`            | データセットで定義されたクラス名を使用します。                         |

データセットにロックされたアノテーションクラスがある場合、推定されたオントロジーは許可されたクラスと共通部分が取られるため、無効なアノテーションは生成されません。

リクエストは次の `400` エラーになります。たとえば、データセットにクラスがない場合や、モデルのクラスがデータセットのロックされたクラスと重ならない場合です。考えられる `errorType` の値:

* `MISSING_MODEL_ID` - `modelOptions.modelId` に必要です `custom_roboflow` オントロジーが提供されていない場合。
* `MODEL_CLASSES_UNAVAILABLE` - 指定されたモデルにはクラスがありません。
* `NO_MATCHING_CLASSES` - モデルのクラスがデータセットのロックされたクラスと重なっていません。
* `DATASET_HAS_NO_CLASSES` - データセットに定義されたクラスがありません（ `sam3`).

#### 応答

```json
{
    "jobId": "auto-label-job-uuid",
    "annotationJobId": "annotation-job-uuid",
    "message": "自動ラベル付けジョブが作成されました"
}
```

### Auto Label ジョブのステータスを取得

自動ラベル付けジョブの進捗を確認するには、GET リクエストを送信します:

```bash
curl 'https://api.roboflow.com/${WORKSPACE}/autolabel/jobs/${JOB_ID}?api_key=${ROBOFLOW_API_KEY}'
```

次のものを使用してください: `jobId` 作成エンドポイントから返されます。

#### 応答

```json
{
    "id": "auto-label-job-uuid",
    "status": "保留中",
    "modelType": "sam3",
    "projectType": "object-detection",
    "projectId": "project-id",
    "annotationJobId": "annotation-job-uuid",
    "numImages": 100,
    "numImagesSentBack": 0,
    "subjobs": [
        {"id": "subjob-1", "status": "保留中"},
        {"id": "subjob-2", "status": "完了"}
    ],
    "ontology": {"a dog": "dog"},
    "confidenceThresholds": {"dog": 0.5},
    "startTime": "2026-01-01T00:00:00.000Z"
}
```
