> ## Documentation Index
> Fetch the complete documentation index at: https://avala.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# ラベルタクソノミーとオントロジー

> クラス、属性、階層を使って効果的なラベルタクソノミーを設計しましょう

適切に設計されたラベルタクソノミーは、あらゆるアノテーションプロジェクトの基盤です。このページでは、オブジェクトクラスの構造化、属性の設定、一貫性が高く高品質なトレーニングデータを生成するための階層構築について説明します。

## オントロジーとは

データアノテーションの文脈では、**オントロジー**（またはラベルタクソノミー）は、アノテーターがデータにラベルを付けるために使用するクラス、属性、関係の完全なスキーマです。以下を定義します：

* **何を**ラベル付けするか（オブジェクトクラス）
* **どのように**説明するか（属性とプロパティ）
* クラス間の**関係**（階層とグルーピング）

明確なオントロジーは、アノテーターの混乱を減らし、アノテーター間の一致度を向上させ、モデルのためのよりクリーンなトレーニングデータを生成します。

## オブジェクトクラス

オブジェクトクラスは、タクソノミーの基本的な構成要素です。各クラスは、アノテーターがデータ内で識別しラベル付けするオブジェクトのカテゴリを表します。

### クラスの定義

Avala でプロジェクトを作成する際、ラベル設定をクラスのリストとして定義します：

```json theme={null}
{
  "labels": [
    { "name": "car", "color": "#FF0000" },
    { "name": "pedestrian", "color": "#00FF00" },
    { "name": "cyclist", "color": "#0000FF" },
    { "name": "truck", "color": "#FFA500" },
    { "name": "bus", "color": "#800080" }
  ]
}
```

各クラスには一意の名前とアノテーションエディターで使用される表示色があります。データの一般的な背景色や他のクラスと視覚的に区別しやすい色を選んでください。

### クラス名のベストプラクティス

| プラクティス                 | 例                                                      | 理由                      |
| ---------------------- | ------------------------------------------------------ | ----------------------- |
| 小文字で具体的な名前を使用          | `sedan`, `pickup_truck`                                | 曖昧さを軽減                  |
| 重複する定義を避ける             | `car` と `vehicle` を同じレベルに置かない                          | アノテーターの混乱を防止            |
| 区切り文字を統一               | `traffic_light`（`traffic-light` や `trafficLight` ではなく） | トレーニングパイプラインでの一貫した解析    |
| 必要な場合のみネガティブ/背景クラスを含める | `unknown`, `ignore_region`                             | 一部のモデルは明示的な背景ラベルを必要とします |

## 属性

属性は、オブジェクトクラス以外の構造化されたメタデータを各アノテーションに追加します。可視性、ポーズ、状態などのプロパティをアノテーターが記述できるようにします。

### 属性タイプ

Avala は、任意のオブジェクトクラスに付加できるいくつかの属性タイプをサポートしています：

| タイプ          | 説明             | 使用場面             | 例                                             |
| ------------ | -------------- | ---------------- | --------------------------------------------- |
| **ドロップダウン**  | 事前定義リストからの単一選択 | 相互排他的なオプション      | オクルージョン: `none`, `partial`, `heavy`           |
| **チェックボックス** | ブーリアントグル       | シンプルな yes/no フラグ | `is_parked: true/false`                       |
| **テキスト**     | 自由形式の文字列入力     | 一意の識別子や説明        | ナンバープレート番号                                    |
| **数値**       | 数値             | 測定値やカウント         | 推定距離（メートル）                                    |
| **マルチセレクト**  | リストからの複数選択     | 同時発生する非排他的な状態    | 可視: `headlights`, `taillights`, `turn_signal` |

<img src="https://mintcdn.com/avala/QI4wcFsXqwG8KGbR/images/reference/attribute-types-comparison-light.svg?fit=max&auto=format&n=QI4wcFsXqwG8KGbR&q=85&s=866d0c1d56119fc7d7f88e48e751d2aa" alt="属性タイプの比較" className="block dark:hidden w-full" width="400" height="150" data-path="images/reference/attribute-types-comparison-light.svg" />

<img src="https://mintcdn.com/avala/QI4wcFsXqwG8KGbR/images/reference/attribute-types-comparison.svg?fit=max&auto=format&n=QI4wcFsXqwG8KGbR&q=85&s=4f02fa3d4a69dc7282f63ae245d406f0" alt="属性タイプの比較" className="hidden dark:block w-full" width="400" height="150" data-path="images/reference/attribute-types-comparison.svg" />

### 属性の設定

属性は、プロジェクトの分類設定でラベル設定と共に定義されます：

```json theme={null}
{
  "labels": [
    { "name": "car", "color": "#FF0000" }
  ],
  "classification": {
    "attributes": [
      {
        "name": "occlusion",
        "type": "dropdown",
        "options": ["none", "partial", "heavy"],
        "required": true,
        "applies_to": ["car", "pedestrian", "cyclist"]
      },
      {
        "name": "is_parked",
        "type": "checkbox",
        "required": false,
        "applies_to": ["car", "truck", "bus"]
      },
      {
        "name": "truncation",
        "type": "dropdown",
        "options": ["none", "partial", "heavy"],
        "required": true,
        "applies_to": ["car", "pedestrian", "cyclist"]
      }
    ]
  }
}
```

### 条件付き属性

`applies_to` フィールドを使用して、関連するクラスにのみ属性を表示します。これにより、アノテーターのインターフェースがすっきりします — `pedestrian` には `is_parked` 属性は不要で、`traffic_light` には `truncation` は不要です。

<Tip>
  モデルのトレーニングパイプラインが依存するプロパティには、属性を `required` として設定してください。有用だが重要ではない補足メタデータには、オプション属性のままにしてください。
</Tip>

## 階層的タクソノミー

複雑なドメインでは、フラットなクラスリストは扱いにくくなります。階層的タクソノミーは、関連するクラスを親カテゴリの下にグループ化します。

### 例：車両タクソノミー

```
Vehicle
├── Car
│   ├── Sedan
│   ├── SUV
│   └── Hatchback
├── Truck
│   ├── Pickup
│   └── Semi
├── Bus
│   ├── City Bus
│   └── School Bus
└── Motorcycle
```

### 階層を使用するタイミング

| シナリオ      | 推奨                   |
| --------- | -------------------- |
| 15クラス未満   | フラットリストの方がシンプルで高速    |
| 15〜50クラス  | 3〜5のトップレベルカテゴリにグループ化 |
| 50クラス以上   | 検索機能付きのマルチレベル階層を使用   |
| クラスが属性を共有 | 属性が継承されるよう親の下にグループ化  |

### 階層の設計

1. **広くから始めて、次に細分化する。** トップレベルカテゴリ（`vehicle`、`pedestrian`、`infrastructure`）から始め、モデルが必要とする場合にのみ具体性を追加します。
2. **すべてのリーフクラスは曖昧でないこと。** アノテーターが2つのサブクラスを確実に区別できない場合は、統合してください。
3. **深さと幅のバランスを取る。** 深い階層（4レベル以上）はアノテーターの作業を遅くします。2〜3レベルの広いツリーを推奨します。

## シングルラベル vs マルチラベル分類

Avala は、プロジェクトのニーズに応じて両方の分類モードをサポートしています。

### シングルラベル

各オブジェクトまたはシーンは正確に 1つのクラスラベルを受け取ります。これはほとんどのアノテーションタイプのデフォルトです。

* 物体検出：各バウンディングボックスに 1つのクラス
* シーン分類：各画像に 1つのカテゴリ

### マルチラベル

オブジェクトまたはシーンは同時に複数のラベルを受け取ることができます。カテゴリが相互排他的でない場合に使用します。

* 画像は `rainy` と `nighttime` の両方になれます
* 車両は `damaged` と `parked` の両方になれます

プロジェクトの分類設定でタスクレベルの分類タイプを設定してマルチラベル分類を設定します：

```json theme={null}
{
  "classification": {
    "type": "multi-label",
    "categories": [
      { "name": "weather", "options": ["clear", "rainy", "foggy", "snowy"] },
      { "name": "time_of_day", "options": ["daytime", "nighttime", "dawn", "dusk"] },
      { "name": "road_condition", "options": ["dry", "wet", "icy"] }
    ]
  }
}
```

## オントロジー設計チェックリスト

アノテーションプロジェクトを開始する前に、このチェックリストでオントロジーを検証してください：

| 確認項目           | 質問                                      |
| -------------- | --------------------------------------- |
| **完全性**        | モデルが検出する必要があるすべてのオブジェクトにクラスがありますか？      |
| **相互排他性**      | アノテーターは曖昧さなく常に正確に 1つのクラスを割り当てることができますか？ |
| **属性カバレッジ**    | トレーニングに必要なすべてのプロパティが属性としてキャプチャされていますか？  |
| **一貫した粒度**     | 同じレベルのクラスは同程度の具体性ですか？                   |
| **アノテーターの明確性** | 新しいアノテーターは名前だけから各クラスを理解できますか？           |
| **モデルとの整合性**   | タクソノミーはモデルアーキテクチャが期待するものと一致していますか？      |
| **拡張性**        | 再構築せずに後から新しいクラスを追加できますか？                |

## よくある落とし穴

### クラスの過度な細分化

細かすぎるクラスを多く作成すると、アノテーター間の一致度が低下し、クラスあたりのトレーニングデータが少なくなります。

**問題：** 50種類の車両サブクラスがあり、ほとんどが各 100 サンプル未満。

**解決策：** 5〜10の広いクラスから始めてください。十分なデータがあり、モデルがその区別から恩恵を受ける場合にのみサブクラスを追加してください。

### 曖昧な境界

2つのクラスが概念的に重複すると、アノテーターはどちらを使うかで意見が分かれます。

**問題：** `van` と `minivan` の両方が存在するが、アノテーターが確実に区別できない。

**解決策：** 単一のクラスに統合するか、境界を示す参照画像付きの明確な視覚的ガイドラインを提供してください。

### エッジケースの欠落

実世界のデータには、タクソノミーにきれいに収まらないオブジェクトが含まれます。

**問題：** アノテーターがゴルフカートに遭遇するが、タクソノミーには `car`、`truck`、`motorcycle` しかない。

**解決策：** `other_vehicle` のようなキャッチオールクラスを含め、それでラベル付けされたアイテムを定期的にレビューして、追加が必要なクラスを特定してください。

## 次のステップ

<CardGroup cols={2}>
  <Card title="基本コンセプト" icon="book" href="/docs/ja/getting-started/concepts">
    Avala プラットフォームの基本的な構成要素を確認できます。
  </Card>

  <Card title="品質管理" icon="shield-check" href="/docs/annotation/guides/quality-control">
    アノテーション品質を検証するためのレビューワークフローを設定できます。
  </Card>

  <Card title="アノテーションタイプ" icon="pen-to-square" href="/docs/annotation/reference/annotation-types">
    バウンディングボックス、ポリゴン、キュボイドなどの JSON フォーマットを確認できます。
  </Card>

  <Card title="最初のデータセット" icon="rocket" href="/docs/annotation/tutorials/first-dataset">
    データをアップロードして最初のアノテーションプロジェクトを作成できます。
  </Card>
</CardGroup>
