Data Labeling
機械学習のためのデータラベリングの基礎を学びましょう。オブジェクト検出のような主要なタイプと、Ultralytics YOLO26を使用してワークフローを加速する方法を解説します。
データラベリングは、画像、ビデオフレーム、テキスト、音声などの生データを特定し、コンテキストを提供するための情報タグやメタデータを付加する基本的なプロセスです。機械学習 (ML)の領域では、アルゴリズムは物理世界を固有に理解することができないため、導くための「教師」を必要とします。このガイダンスは、教師あり学習で使用されるラベル付きデータセットの形式で提供されます。ラベルはグラウンド真値として機能し、モデルが予測しようとする正解を表します。簡単な分類器をトレーニングする場合でも、Ultralytics YOLO26のような複雑なアーキテクチャをトレーニングする場合でも、これらのラベルの精度、一貫性、品質がモデルの成功を決定する主な要因となります。
データラベリングとデータアノテーションの比較#
これらの用語は日常会話で同義語として使われることが多いですが、注目すべき微妙な違いがあります。「データラベリング」は一般に、データにカテゴリやタグを割り当てる広範な行為(例:メールに「スパム」とタグ付けする)を指します。対照的に、データアノテーションはコンピュータビジョン (CV)に特化していることが多く、バウンディングボックス、ポリゴン、キーポイントを使用してオブジェクトを正確に描定することを伴います。ただし、ほとんどのMLオペレーション (MLOps)ワークフローにおいて、どちらの用語も高品質なトレーニングデータの作成を表しています。
コンピュータビジョンにおける主要な種類#
ラベリング方法は、モデルが実行すべきタスクに基づいて変化します。一般的な種類は以下の通りです。
- 画像分類: 天候を「曇り」または「晴れ」と識別するなど、画像全体に単一のラベルを割り当てます。
- オブジェクト検出: 個別のオブジェクトの周囲に2D バウンディングボックスを描画し、オブジェクトが何であり、どこにあるかをモデルに学習させます。
- インスタンスセグメンテーション: オブジェクトの周囲にピクセル単位の正確なマスクやポリゴンを作成します。これは、正確な形状と境界を決定するために不可欠です。
- 姿勢推定: 動きや姿勢を分析するために、骨格の関節など、被写体上の特定のキーポイントに印を付けます。
実社会での応用#
データラベリングの有用性は、AIを活用する事実上すべての業界に及んでいます。
-
自動運転車: 自動運転車は、すべての車両、歩行者、交通標識、車線マーカーに細心の注意を払ってラベルが付けられた膨大なデータセットに依存しています。このラベル付きデータにより、認識システムは複雑な環境を安全にナビゲートできます。自動運転車企業は、安全コンプライアンスを確保するためにピクセル単位のラベリングに多額の投資を行っています。
-
精密農業: 現代の農業では、農業におけるAIを使用して作物の病気を検出し、成長段階をモニタリングします。農家は、「健康な」葉と「病気の」葉のラベル付き画像でトレーニングされたモデルを使用して処理を自動化し、化学物質の使用量を減らし、収穫量を増やします。
ラベリングのワークフロー#
ラベル付きデータセットの作成は、AIプロジェクトの中で最も時間がかかるプロセスであることがよくあります。このプロセスには通常、人間のアノテーターがラベルを検証して高い精度を確保する「Human-in-the-Loop」(HITL) アプローチが含まれます。現代のワークフローでは、Ultralytics プラットフォームのようなツールを活用してデータセット管理を簡素化し、チームがアノテーションで協力できるようにします。アクティブラーニングなどの高度な手法も採用でき、モデルがデータを事前にラベル付けし、人間が信頼度の低い予測のみを修正することで、プロセスを大幅にスピードアップさせます。
次の例は、事前トレーニング済みの Ultralytics YOLO26 モデルを使用して新しい画像のラベルを自動的に生成(自動ラベリング)し、その後人間が修正する方法を示しています。
from ultralytics import YOLO
# Load the YOLO26n model (nano version)
model = YOLO("yolo26n.pt")
# Run inference on an image to detect objects
results = model("https://ultralytics.com/images/bus.jpg")
# Save the detection results to a text file in standard YOLO format
# This file can now be used as a starting point for data labeling
results[0].save_txt("bus_labels.txt")





