Ultralytics YOLO27:

コンピュータービジョンのデータ収集とアノテーション戦略#

データ収集とアノテーションは、あらゆるコンピュータービジョンプロジェクトにおける2つの基礎的なステップです。代表性のある画像や動画を集め、モデルが学習できるようにラベルを付けます。このデータの品質がモデルの性能を直接左右するため、トレーニングを開始する前に、クラス定義、偏りのないデータソース、アノテーションの一貫性を確保することが重要です。



Watch: How to Build Effective Data Collection and Annotation Strategies for Computer Vision 🚀

このガイドでは、クラスの設定とデータ収集データアノテーションとは何か、選択できるアノテーションの種類と形式、さらに効率的なラベリング戦略について、すべてをプロジェクトの目標に合わせて解説します。

クラスの設定とデータ収集#

コンピュータービジョンプロジェクト用の画像や動画を収集する際は、定義するクラス数、データの入手元、データセットの偏りを防ぐ方法という3つの決定事項に集約されます。

プロジェクトに適したクラスの選択#

コンピュータービジョンプロジェクトを始める際の最初の疑問の1つは、含めるクラス数です。クラスの構成を決める必要があります。これは、モデルに認識・識別させたいさまざまなカテゴリやラベルを定義することです。クラス数は、プロジェクト固有の目標に基づいて決定してください。

たとえば、交通状況を監視する場合、クラスには「car」、「truck」、「bus」、「motorcycle」、「bicycle」などが含まれます。一方、店舗内の商品を追跡する場合、クラスは「fruits」、「vegetables」、「beverages」、「snacks」などになります。プロジェクトの目標に基づいてクラスを定義すると、データセットの関連性と焦点を維持できます。

クラスを定義する際には、粗いクラス数にするか、細かいクラス数にするかという重要な区別もあります。「Count」は、関心のある個別クラスの数を指します。この決定は、データの粒度とモデルの複雑さに影響します。それぞれのアプローチに関する考慮事項は次のとおりです。

  • 粗いクラス数: 「vehicle」や「non-vehicle」のような、より広範で包括的なカテゴリです。アノテーションを簡素化し、必要な計算リソースを減らせますが、詳細な情報が少ないため、複雑なシナリオではモデルの有効性が制限される可能性があります。
  • 細かいクラス数: 「sedan」、「SUV」、「pickup truck」、「motorcycle」のように、より細かな区別を持つ複数のカテゴリです。より詳細な情報を捉えられるため、モデルの精度と性能が向上します。ただし、アノテーションに時間と労力がかかり、より多くの計算リソースが必要です。

より具体的なクラスから始めることは、特に詳細が重要な複雑なプロジェクトで非常に役立ちます。具体的なクラスを増やすことで、より詳細なデータを収集し、深い洞察を得て、カテゴリ間の区別を明確にできます。モデルの精度が向上するだけでなく、後から必要に応じてモデルを調整しやすくなり、時間とリソースの両方を節約できます。

データソース#

公開データセットを使用することも、独自のカスタムデータを収集することもできます。KaggleGoogle Dataset Search Engineにあるような公開データセットは、十分にアノテーションされた標準化データを提供するため、モデルのトレーニングや検証の出発点として適しています。

一方、カスタムデータの収集では、データセットを特定のニーズに合わせてカスタマイズできます。カメラやドローンで画像や動画を撮影したり、Webから画像をスクレイピングしたり、組織内に既にあるデータを使用したりできます。カスタムデータを使うと、その品質と関連性をより細かく管理できます。公開データソースとカスタムデータソースを組み合わせることで、多様で包括的なデータセットを作成できます。

データ収集における偏りの回避#

偏りは、データセット内で特定のグループやシナリオが過少または過剰に代表される場合に発生します。その結果、一部のデータでは高い性能を示す一方、別のデータでは性能が低いモデルになります。コンピュータービジョンモデルがさまざまなシナリオで適切に機能するよう、AIにおける偏りを避けることが重要です。

データ収集中の偏りを避ける方法は次のとおりです。

  • 多様なソース: さまざまな視点やシナリオを捉えるため、多数のソースからデータを収集します。
  • バランスの取れた代表性: 関連するすべてのグループをバランスよく含めます。たとえば、年齢、性別、民族の違いを考慮します。
  • 継続的なモニタリング: 新たに生じる偏りを特定して対処するため、データセットを定期的に確認・更新します。
  • 偏りの軽減手法: 過少代表クラスのオーバーサンプリング、データ拡張、公平性を考慮したアルゴリズムなどの手法を使用します。

これらの実践に従うことで、実際のアプリケーションで適切に汎化できる、より堅牢で公平なモデルを作成できます。

データアノテーションとは何ですか?#

データアノテーションとは、機械学習モデルのトレーニングに使用できるよう、データにラベルを付けるプロセスです。コンピュータービジョンでは、モデルが学習するために必要な情報を画像や動画にラベル付けすることを意味します。適切にアノテーションされたデータがなければ、モデルは入力と出力の関係を正確に学習できません。

データアノテーションの種類#

コンピュータービジョンタスクの具体的な要件に応じて、データアノテーションにはさまざまな種類があります。例として、次のようなものがあります。

  • バウンディングボックス: 画像内のオブジェクトの周囲に描く矩形で、主に物体検出タスクに使用します。これらのボックスは、左上と右下の座標で定義されます。
  • ポリゴン: オブジェクトの詳細な輪郭で、バウンディングボックスよりも正確なアノテーションが可能です。ポリゴンは、オブジェクトの形状が重要なインスタンスセグメンテーションなどのタスクで使用します。
  • マスク: 各ピクセルがオブジェクトの一部または背景のいずれかとなるバイナリマスクです。マスクは、ピクセルレベルの詳細を提供するセマンティックセグメンテーションタスクで使用します。
  • キーポイント: 関心のある位置を特定するため、画像内にマークする特定の点です。キーポイントは、ポーズ推定や顔ランドマーク検出などのタスクで使用します。
  • 回転バウンディングボックス: 回転角度を持つ矩形で、航空画像のようにオブジェクトが任意の向きで現れるOBBタスクで使用します。

Data annotation types including bounding boxes, polygons, and masks

一般的なアノテーション形式#

アノテーションの種類を選択したら、アノテーションの保存と共有に適した形式を選ぶことが重要です。最も一般的な形式は次のとおりです。

形式ファイル構造主な用途
COCO単一のJSONファイル物体検出、インスタンスセグメンテーション、キーポイント検出、stuffおよびパノプティックセグメンテーション、画像キャプション
Pascal VOC画像ごとに1つのXMLファイル物体検出
YOLO画像ごとに1つの.txtファイル物体検出、セグメンテーション、ポーズ、回転ボックス

YOLO形式では、クラスインデックスを0から始め、オブジェクトごとに1行を格納します。物体検出では、行は正規化された0~1座標を持つclass x_center y_center width heightです。セグメンテーションの行ではボックスをオブジェクトの正規化されたポリゴン点に置き換えます。ポーズの行ではボックスを保持し、その後にキーポイント座標を追加します。データセットがkpt_shape: [n, 3]を宣言している場合は、各キーポイントに可視性フラグが付きます。OBBの行には、正規化された角の座標を使用してclass x1 y1 x2 y2 x3 y3 x4 y4を格納します。

アノテーションツールがCOCO JSONをエクスポートする場合は、YOLOの.txtラベルに変換するか、カスタムデータセットクラスを使用してJSONを直接トレーニングできます。

アノテーションガイドラインの設定#

アノテーションの種類と形式を選択したら、次のステップは明確で客観的なラベリングルールを確立することです。これらのルールは、アノテーションプロセス全体で一貫性と精度を保つための指針になります。主な要素は次のとおりです。

  • 明確さと詳細さ: 指示が明確であることを確認します。期待する内容を示すため、例や図解を使用します。
  • 一貫性: アノテーションを統一します。異なる種類のデータにアノテーションを付けるための標準基準を設定し、すべてのアノテーションが同じルールに従うようにします。
  • 偏りの低減: 中立性を保ちます。公平なアノテーションを実現するため、客観的に判断できるよう訓練し、個人的な偏りを最小限に抑えます。
  • 効率性: 努力ではなく工夫によって作業します。反復的なタスクを自動化するツールやワークフローを使用し、アノテーションプロセスをより迅速かつ効率的にします。

ラベリングルールを定期的に確認・更新することで、アノテーションの正確性と一貫性を維持し、プロジェクトの目標に沿わせることができます。

アノテーションツール#

優れたアノテーションツールは、タスクに必要なすべての種類のラベル付けに対応し、一貫したガイドラインを適用し、トレーニングにすぐ使える形式でラベルをエクスポートできます。Ultralytics Platformには、物体検出、インスタンスセグメンテーション、セマンティックセグメンテーション、分類、ポーズ、OBBに対応する組み込みのアノテーションエディターがあります。また、SAMを活用したスマートアノテーションにより、1回のクリックでマスクを生成し、物体検出、インスタンスセグメンテーション、セマンティックセグメンテーション、OBBタスクに利用できます。アノテーションは各タスクが想定するレイアウトで保存されます。空間タスクではYOLOの.txt、分類ではクラスフォルダーが使用されるため、ラベル付けしたデータセットを変換なしでそのままトレーニングに進められます。

アノテーション品質: 正確性、精度、外れ値#

大規模にアノテーションを行う前に、正確性、精度、外れ値、品質管理について理解しておくと、データに逆効果となるラベルを付けずに済みます。

正確性と精度の理解#

正確性と精度の違い、およびそれらがアノテーションにどう関係するかを理解することが重要です。正確性は、アノテーションされたデータが真の値にどれだけ近いかを指します。ラベルが実世界のシナリオをどれだけ忠実に反映しているかを測定できます。精度は、アノテーションの一貫性を示します。データセット全体で同じオブジェクトや特徴に同じラベルを付けているかを確認します。正確性と精度が高いと、ノイズが減少し、トレーニングデータから汎化するモデルの能力が向上するため、より適切にトレーニングされたモデルにつながります。

Accuracy vs precision comparison for data annotation

外れ値の特定#

外れ値とは、データセット内の他の観測値から大きく逸脱するデータポイントです。アノテーションに関しては、誤ってラベル付けされた画像や、データセットの他の部分に適合しないアノテーションが外れ値になる可能性があります。外れ値はモデルの学習プロセスを歪め、不正確な予測や低い汎化性能につながる可能性があるため、注意が必要です。

外れ値の検出と修正には、さまざまな方法を使用できます。

  • 統計的手法: ピクセル値、バウンディングボックスの座標、オブジェクトサイズなどの数値特徴から外れ値を検出するには、箱ひげ図、ヒストグラム、zスコアなどの手法を使用できます。
  • 視覚的手法: オブジェクトクラス、色、形状などのカテゴリ特徴における異常を見つけるには、画像、ラベル、ヒートマップをプロットするなどの視覚的手法を使用します。
  • アルゴリズム手法: クラスタリング(K-meansクラスタリングやDBSCANなど)や異常検知アルゴリズムを使用し、データ分布のパターンに基づいて外れ値を特定します。

アノテーション済みデータの品質管理#

他の技術プロジェクトと同様に、アノテーション済みデータにも品質管理は必須です。アノテーションが正確かつ一貫していることを確認するため、定期的にチェックするのがよい方法です。次のような方法があります。

  • アノテーション済みデータのサンプルを確認する
  • 自動化ツールを使用して一般的なエラーを見つける
  • 別の担当者にアノテーションを再確認してもらう

複数の担当者で作業する場合は、アノテーター間の一貫性が重要です。アノテーター間一致度が高いということは、ガイドラインが明確で、全員が同じ方法で従っていることを意味します。これにより、全員の認識が揃い、アノテーションの一貫性が保たれます。

確認中にエラーを見つけた場合は修正し、今後のミスを避けるためにガイドラインを更新します。アノテーターにフィードバックを提供し、エラー削減に役立つ定期的なトレーニングも実施します。エラーに対応する強固なプロセスを整えることで、データセットの正確性と信頼性を維持できます。

効率的なデータラベリング戦略#

データラベリングのプロセスをより円滑かつ効果的にするには、次の戦略の導入を検討してください。

  • 明確なアノテーションガイドライン: すべてのアノテーターがタスクを一貫して解釈できるよう、例を含む詳細な指示を提供します。たとえば、鳥にラベルを付ける場合、鳥全体を含めるのか、特定の部分だけを含めるのかを指定します。
  • 定期的な品質チェック: ベンチマークを設定し、具体的な指標を使用して作業を確認します。継続的なフィードバックによって高い基準を維持します。
  • 事前アノテーションツールの利用: 最新のアノテーションプラットフォームの多くは、AI支援による事前アノテーション機能を提供しています。人間が後から修正できる初期アノテーションを自動生成することで、プロセスを大幅に高速化できます。
  • アクティブラーニングの導入: このアプローチでは、最も情報量の多いサンプルから優先的にラベル付けするため、モデルの性能を維持しながら必要なアノテーション総数を削減できます。
  • バッチ処理: 類似した画像をまとめてアノテーションし、一貫性を維持して効率を高めます。

これらの戦略により、ラベリングプロセスに必要な時間とリソースを削減しながら、高品質なアノテーションを維持できます。

まとめ#

多様で偏りのないデータを収集し、適切なツールで一貫してアノテーションすることが、信頼性の高いコンピュータービジョンモデルの基盤です。データセットの収集とラベル付けが完了したら、コンピュータービジョンプロジェクトのステップガイドに進み、トレーニングと評価に取り組んでください。途中で疑問が生じた場合は、Ultralytics GitHubリポジトリまたはUltralytics Discordサーバーでコミュニティに質問してください。

FAQ#

  • 偏りを最小限に抑えるには、多様なソースからデータを収集し、関連するすべてのグループ(異なる年齢、性別、民族など)をバランスよく含め、データセットを定期的に確認・更新して新たな偏りを見つけ、過少代表クラスのオーバーサンプリング、データ拡張、公平性を考慮したアルゴリズムなどの軽減手法を適用します。この方法で偏りを避けると、さまざまな実世界のシナリオでコンピュータービジョンモデルの性能を維持し、汎化能力を向上できます。

  • 詳細な指示、例、図解を含む明確で客観的なラベリングガイドラインを確立し、すべてのデータ種類に一律に適用して、すべてのアノテーションが同じルールに従うようにします。アノテーターには中立性を保つようトレーニングして個人的な偏りを減らし、ガイドラインを定期的に確認・更新します。さらに、自動化された一貫性チェックとアノテーター間のフィードバックを活用して、正確性を高く保ち、プロジェクトの目標に合わせます。

  • クラスごとにアノテーション済みオブジェクトが数百個あれば、転移学習の実験を始めるには十分です。ただし、信頼性の高い実世界での性能を得るため、Ultralyticsではクラスごとに少なくとも1,500枚の画像と10,000個のラベル付きインスタンスを推奨しています。十分な大きさのデータセットを適切なトレーニングスケジュールと組み合わせてください。一般的な開始点は約300エポックですが、モデルが早期に過学習する場合は減らします。アノテーションは厳密に行い、プロジェクト固有の目標に合わせてください。詳しいトレーニング戦略については、YOLO26トレーニングガイドを参照してください。

  • はい。Ultralytics Platformには、バウンディングボックス、ポリゴン、キーポイント、回転ボックス、分類ラベルに対応した組み込みのアノテーションエディターがあり、1つのワークスペースで利用できます。SAMを活用したスマートアノテーションは、1回のクリックでマスクを生成し、物体検出、インスタンスセグメンテーション、セマンティックセグメンテーション、OBBタスクのラベリングを高速化します。ポーズと分類は手動でアノテーションします。アノテーションは各タスクが想定するレイアウトで保存されます。空間タスクではYOLOの.txt、分類ではクラスフォルダーが使用され、トレーニングにすぐ利用できます。

  • トレーニングするタスクにアノテーションタイプを合わせてください。バウンディングボックスは最も迅速に描画でき、物体検出に必要なすべてを満たします。ポリゴンとマスクはオブジェクトごとにかなり多くの時間がかかりますが、オブジェクトの正確な形状が重要なインスタンスセグメンテーションには必要です。キーポイントはポーズ推定やランドマーク検出に適しており、回転ボックスは、軸に沿った矩形では背景を含みすぎる航空画像などのOBBタスクに適しています。実際に必要なタスクに対して最も適切なアノテーションを行うことで、ラベリングの労力を成果に見合ったものにできます。

コメント