Data Labeling
データラベリングでは、生データにクラス、ボックス、マスク、キーポイントを付与し、教師ありモデルが学習できるようにします。ラベルの種類、ワークフロー、品質チェックを解説します。
データラベリングとは、画像のクラス名、街頭写真の各車を囲むバウンディングボックス、音声クリップの書き起こしなど、教師あり学習モデルがデータから学習できるよう、未加工データに正解情報を付与するプロセスです。ラベルによってタスクが定義され、モデルはラベルが示す内容を、その記述と同じ精度と一貫性で予測するよう学習します。データアノテーションは同義語で、作業を行う人はラベラーまたはアノテーターと呼ばれます。ラベリングは学習データの構築で通常最も時間と費用がかかる工程であるため、多くのワークフローではモデルがラベルを提案し、人が修正します。
コンピュータービジョンのラベルの種類#
ラベル形式は、モデルが実行するタスクに応じて決まります。
- 画像分類: 検査ライン上の部品に「不良」や「良品」と付けるように、画像ごとに1つのクラスを指定します。
- 物体検出: 関心対象のオブジェクトごとに、軸に平行なボックスとクラスを指定します。
- 回転バウンディングボックス: 航空画像に写る船舶や車両など、細長いオブジェクトや斜めのオブジェクトに合わせた回転ボックスです。
- インスタンスセグメンテーション: 各オブジェクトを個別に囲むポリゴンまたはピクセルマスクです。
- セマンティックセグメンテーション: 道路、歩道、空などのように、個々のオブジェクトを区別せずにピクセルごとにクラスを指定します。
- 姿勢推定: 鼻や目から足首までを含むCOCOの17個の点のように、固定されたランドマークにキーポイントを指定し、多くの場合は各点に可視性フラグを付けます。
詳細になるほど作業量が増えます。ImageNetチャレンジデータセットであるILSVRC用の高品質なボックスを1つ描くには約35秒かかりました。Extreme clickingでは、角をドラッグする代わりにオブジェクトの上端、下端、左端、右端をクリックすることで、同品質のボックスを7秒で描けました。ポリゴンとピクセルマスクはさらに時間がかかります。コンピュータービジョン以外では、固有表現抽出(NER)用のエンティティ範囲、テキスト分類用の感情、音声認識用の書き起こしにラベルを付けます。
ラベリングのワークフロー#
ラベリングプロジェクトでは、作業を始める前にすべてのクラスを定義し、境界事例を決める文書化されたガイドラインを用意します。たとえば、90%隠れた車にもボックスを付けるか、自転車に乗る人の手足をどの程度きつく囲むか、反射、小さなオブジェクト、混雑への対処方法を定めます。モデル支援ラベリングでは、これまでのラベルで学習したモデルが新しい画像に事前ラベルを付け、アノテーターが誤りを修正し、レビュー担当者がサンプルを確認します。再学習を重ねるごとに、モデルは次の提案をより正確に生成できるようになります。アクティブラーニングでは、このループに選択工程を加え、モデルの確信度が最も低い画像から人がラベル付けします。
Ultralytics Platformのアノテーションエディターには、このループが組み込まれています。Smartモードでは、MetaのSegment Anythingモデルを使って1回のクリックからマスクを作成したり、事前学習済みまたは独自にファインチューニングしたYOLOモデルの予測をドラフトアノテーションとして追加したりできます。同じ事前ラベリング工程は、PythonでYOLO26検出器を使って実行でき、予測を学習用のラベル形式で書き出します。
from pathlib import Path
from ultralytics import YOLO
# ラベル提案用に事前学習済みのYOLO26 nano検出器を読み込む
model = YOLO("yolo26n.pt")
# ラベルのない画像を予測する
results = model("https://ultralytics.com/images/bus.jpg")
result = results[0]
# オブジェクトごとに「class x_center y_center width height」の行を1つ書き込み、値を0~1に正規化する
label_file = result.save_txt("bus.txt")
# アノテーターがレビューするドラフトラベルを出力する
print(Path(label_file).read_text())出力される各行は、COCOクラスインデックスに続いて、画像サイズに対する比率で表したボックスの中心、幅、高さを記述します。注釈担当者が誤りや欠落のあるボックスを修正すると、学習時にそのまま読み込まれるYOLOラベル形式です。事前学習済み検出器が対応していないクラスについては、Ultralytics Platformで、物体の名前から検出する視覚言語モデルを使って検出データセットを自動アノテーションできます。VLM Leaderboardでは、各モデルが実世界の画像にどれほど正確にラベルを付けるかを比較します。
ラベルの品質#
モデルの一貫性はラベルの一貫性を超えられず、有名なデータセットでも誤りはよく見られます。広く使われている10のベンチマークにおけるラベル誤りの研究では、テストラベルの平均3.3%以上が誤っており、ImageNet検証セットでは少なくとも6%に誤りがあると推定されています。チームは次のような標準的な方法で誤りを見つけます。
- ゴールド質問: 各ラベラーのキューに正解が既知の項目を混ぜ、精度を測定します。多くの場合、ゴールデンデータセットから抽出します。
- 重複ラベリング: 2人以上のアノテーターが同じ項目にラベルを付けます。クラスラベルではCohenのカッパ係数を使い、ボックスやマスクでは各アノテーターの結果間の交差対和(IoU)を使って一致度を評価します。
- モデルベースの監査: 学習済みモデルが強く不一致を示すラベルを検出し、cleanlabなどのツールで、誤りの可能性が高いラベルを人によるレビュー用に順位付けします。
データラベリングと関連用語の違い#
- データアノテーション: 同義語です。コンピュータービジョンチームは、ボックスやマスクなどの描画したジオメトリについては「アノテーション」と呼ぶ傾向があります。
- 半教師あり学習: モデルが未ラベルデータに自らラベルを付け、信頼度の高い予測を疑似ラベルとして人の確認なしに保持します。
- アクティブラーニング: 次に人がラベル付けする項目を決定します。通常は、現在のモデルが最も確信を持てない項目を選びます。
- データクリーニング: 重複、破損ファイル、形式の不統一などのデータセットの問題を修正します。ラベリング後に見つかった誤ラベルも対象です。
- 合成データ: レンダリングまたは生成された画像で、シーンの構成が正確に分かっているためラベルは生成器から自動的に得られますが、合成画像と実画像の間にはギャップがあります。










