コンテンツへスキップ

注釈付きコンピュータ・ビジョン・データのためのデータ前処理技術

はじめに

コンピュータビジョンプロジェクトの目標を定め、データを収集し、注釈を付けたら、次のステップは注釈付きデータを前処理し、モデルトレーニングの準備をすることです。クリーンで一貫性のあるデータは、優れたパフォーマンスを発揮するモデルを作成するために不可欠です。

前処理は、画像のサイズ変更、ピクセル値の正規化、データセットの増強、データをトレーニングセット、検証セット、テストセットに分割することを含む、コンピュータビジョンプロジェクトワークフローのステップです。データのクリーニングに不可欠なテクニックとベストプラクティスを探ってみましょう!

データ前処理の重要性

私たちはすでに、複数のことを考慮しながら慎重にデータを収集し、注釈を付けています。では、コンピュータビジョンプロジェクトにおいてデータ前処理が重要なのはなぜでしょうか?データ前処理とは、データをトレーニングに適した形式にすることで、計算負荷を軽減し、モデルのパフォーマンスを向上させることです。ここでは、前処理が対処する生データの一般的な問題をいくつか紹介します:

  • Noise(ノイズ):データに含まれる無関係またはランダムな変動。
  • 一貫性のなさ:画像サイズ、フォーマット、画質のばらつき。
  • 不均衡:データセット内のクラスまたはカテゴリの不均等な分布。

データの前処理技術

データの前処理における最初の、そして最も重要なステップの一つは、サイズ変更である。モデルによっては可変の入力サイズを扱うように設計されているものもあるが、多くのモデルは一貫した入力サイズを必要とする。画像のリサイズを行うことで、画像のサイズが均一になり、計算の複雑さが軽減されます。

画像のリサイズ

以下の方法で画像のサイズを変更できます:

  • バイリニア補間:最も近い4つのピクセル値の加重平均を取ることによってピクセル値を滑らかにします。
  • ニアレストネイバー:平均化せずに最も近いピクセルの値を割り当てるため、画像はブロック状になりますが、計算速度は速くなります。

リサイズをより簡単に行うには、以下のツールをご利用ください:

  • オープンCV:画像処理のための広範な関数を備えた一般的なコンピュータビジョンライブラリ。
  • PIL(ピロー):Python 画像ファイルを開き、操作し、保存するための画像ライブラリ。

YOLO11 に関して、モデル学習中の「imgsz」パラメータは、柔軟な入力サイズを可能にする。特定のサイズ、例えば640に設定された場合、モデルは元のアスペクト比を維持したまま、入力画像の最大寸法が640ピクセルになるようにリサイズする。

モデルとデータセット固有のニーズを評価することで、リサイズが必要な前処理ステップかどうか、あるいはモデルがさまざまなサイズの画像を効率的に処理できるかどうかを判断できます。

ピクセル値の正規化

もう1つの前処理技術は正規化である。正規化は、ピクセル値を標準的な範囲にスケールすることで、学習時の収束を早め、モデルのパフォーマンスを向上させます。以下は一般的な正規化テクニックです:

  • 最小-最大スケーリング:ピクセル値を0から1の範囲にスケーリングする。
  • Zスコア正規化:平均値と標準偏差に基づいてピクセル値をスケーリングします。

YOLO11 YOLO11 は、RGBへの変換、[0, 1]の範囲へのピクセル値のスケーリング、事前定義された平均値と標準偏差値を使用した正規化など、いくつかの前処理ステップを自動的に実行する。

データセットの分割

データのクリーニングが完了したら、データセットを分割する準備ができた。データをトレーニング、検証、テストセットに分割するのは、モデルを未見のデータで評価し、汎化性能を評価できるようにするためです。一般的な分割方法は、70%をトレーニング、20%を検証、10%をテストとする。scikit-learnTensorFlow.

データセットを分割するときは、次のことを考慮すること:

  • データ分布の維持:トレーニングセット、検証セット、テストセットにおいて、クラスのデータ分布が維持されていることを確認する。
  • データ漏洩の回避:通常、データ増強はデータセットが分割された後に行われる。検証セットやテストセットからの情報がモデルのトレーニングに影響を与えないように、データ増強やその他の前処理はトレーニングセットにのみ適用されるべきである。
  • クラスのバランスをとる:不均衡なデータセットに対しては、少数クラスをオーバーサンプリングしたり、多数クラスをアンダーサンプリングしたりするテクニックを検討する。

データ補強とは何か?

最も一般的に議論されているデータ前処理ステップは、データ増強である。データ増強は、画像の修正バージョンを作成することにより、データセットのサイズを人工的に増加させます。データを増強することで、オーバーフィッティングを減らし、モデルの汎化を改善することができます。

データ増強のその他の利点は以下の通り:

  • よりロバストなデータセットを作成:データ増強は、入力データの変化や歪みに対してモデルをよりロバストにします。これには、照明、方向、スケールの変化が含まれます。
  • 費用対効果:データ増強は、新しいデータを収集しラベル付けすることなく、トレーニングデータの量を増やす費用対効果の高い方法である。
  • データの有効活用:新たなバリエーションを生み出すことで、利用可能なすべてのデータポイントを最大限に活用する。

データ補強の方法

一般的な補強技術には、反転、回転、拡大縮小、色調整などがある。Albumentations、Imgaug、TensorFlowImageDataGeneratorなどのいくつかのライブラリは、これらの補強を生成することができます。

データ補強の概要

YOLO11 に関しては、.yaml ファイルであるデータセット設定ファイルを修正することで、カスタム・データセットを拡張することができる。このファイルに、どのようにデータを補強するかを指定するパラメーターを含む補強セクションを追加することができる。

Ultralytics YOLO11 リポジトリは、幅広いデータ拡張をサポートしています。次のようなさまざまな変換を適用できます:

  • ランダム作物
  • 反転:画像を水平または垂直に反転させることができます。
  • 回転:画像は特定の角度で回転させることができます。
  • ディストーション

また、より多様なデータを生成するために、特定のパラメーターでこれらの補強技術の強度を調整することもできる。

前処理のケーススタディ

YOLO11 を使って、交通画像からさまざまなタイプの車両を検出・分類するモデルの開発を目的としたプロジェクトを考えてみよう。交通画像を収集し、バウンディングボックスとラベルで注釈を付けました。

このプロジェクトの前処理の各ステップはこんな感じだ:

  • 画像のリサイズ YOLO11 柔軟な入力サイズを扱い、自動的にリサイズを行うため、手動でのリサイズは必要ない。モデルは学習中、指定された'imgsz'パラメータに従って画像サイズを調整する。
  • ピクセル値の正規化:YOLO11 、前処理中にピクセル値を自動的に0から1の範囲に正規化するので、その必要はない。
  • データセットを分割する:scikit-learnのようなツールを使って、データセットをトレーニング(70%)、検証(20%)、テスト(10%)セットに分割する。
  • データ拡張:データセット設定ファイル(.yaml)を変更し、ランダムクロップ、水平反転、明るさ調整などのデータ補強技術を含める。

これらのステップは、データセットが潜在的な問題なく準備され、探索的データ解析(EDA)の準備が整っていることを確認する。

探索的データ分析技法

データセットの前処理と増強が終わったら、次のステップは、探索的データ分析によって洞察を得ることです。EDAは、統計的手法と可視化ツールを使用して、データのパターンと分布を理解します。クラスの不均衡や異常値などの問題を特定し、さらなるデータ前処理やモデルトレーニングの調整について、情報に基づいた意思決定を行うことができます。

統計的EDA技術

統計的手法は、平均値、中央値、標準偏差、範囲などの基本的なメトリクスの計算から始めることがよくあります。これらのメトリクスは、ピクセルの強度分布など、画像データセットの特性を簡単に概観することができます。これらの基本的な統計量を理解することで、データの全体的な品質や特性を把握することができ、早期に不規則性を発見することができます。

ビジュアルEDAテクニック

画像データセットのEDAでは、視覚化が鍵となる。例えば、クラス不均衡分析はEDAのもう一つの重要な側面である。これは、データセットにおいて特定のクラスが過小評価されていないかどうかを判断するのに役立ちます。棒グラフを使って異なる画像クラスやカテゴリの分布を視覚化することで、不均衡を素早く明らかにすることができます。同様に、ピクセル強度や特徴分布の異常を強調する箱ひげ図のような可視化ツールを使用して、異常値を特定することができます。異常値検出は、異常なデータポイントが結果を歪めるのを防ぎます。

ビジュアライゼーションのための一般的なツールには次のようなものがある:

  • ヒストグラムと箱ひげ図:ピクセル値の分布を把握し、外れ値を特定するのに便利です。
  • 散布図:画像の特徴や注釈の関係を調べるのに役立ちます。
  • ヒートマップ:画像内のピクセル強度分布や注釈付きフィーチャの空間分布を可視化するのに有効。

Ultralytics ExplorerをEDAに使用する

コミュニティ・ノート ⚠️

現在 ultralytics>=8.3.10Ultralytics エクスプローラーのサポートは廃止されました。しかしご心配なく!現在では、同様の機能、さらに強化された機能に Ultralytics ハブHUBは、ワークフローを合理化するために設計された、直感的なコード不要のプラットフォームです。Ultralytics HUBを使えば、コードを一行も書くことなく、データの探索、視覚化、管理を楽に続けることができます。ぜひチェックして、その強力な機能をご活用ください🚀。

EDAへのより高度なアプローチには、Ultralytics Explorerツールを使用することができます。このツールは、コンピュータ・ビジョンのデータセットを探索するための堅牢な機能を提供します。セマンティック検索、SQLクエリ、ベクトル類似性検索をサポートすることで、このツールはデータの分析と理解を容易にします。Ultralytics Explorerを使用すると、データセットの埋め込みを作成して類似画像を検索したり、SQLクエリを実行して詳細な分析を行ったり、セマンティック検索を実行したりすることができます。

Ultralytics エクスプローラーの概要

手を差し伸べ、つながる

他のコンピュータ・ビジョン愛好家とプロジェクトについて議論することで、異なる視点から新しいアイデアを得ることができます。ここでは、学習、トラブルシューティング、ネットワークを構築するための素晴らしい方法を紹介します:

地域社会とのつながり

  • GitHub Issues: YOLO11 GitHub リポジトリにアクセスし、Issues タブを使って質問を投げかけたり、バグを報告したり、機能を提案したりしてください。コミュニティとメンテナーは、あなたが直面するどんな問題にも対応します。
  • Ultralytics Discordサーバー: Ultralytics Discord サーバーに参加して、他のユーザーや開発者とつながり、サポートを受け、知識を共有し、アイデアを出し合いましょう。

公式文書

  • Ultralytics YOLO11 ドキュメント数多くのコンピュータビジョンタスクとプロジェクトに関する徹底的なガイドと貴重な洞察については、 YOLO11 の公式ドキュメントを参照してください。

データセットの準備が整いました!

適切にリサイズされ、正規化され、補強されたデータは、ノイズを減らし、汎化を改善することで、モデルのパフォーマンスを向上させます。本ガイドで概説する前処理テクニックとベストプラクティスに従うことで、確かなデータセットを作成することができます。前処理済みのデータセットが準備できれば、自信を持ってプロジェクトの次のステップに進むことができます。

よくあるご質問

コンピュータビジョンプロジェクトにおけるデータ前処理の重要性とは?

データの前処理は、データがクリーンで一貫性があり、モデル学習に最適な形式であることを保証するため、コンピュータビジョンプロジェクトにおいて不可欠である。生データのノイズ、不整合、不均衡などの問題に対処することで、サイズ変更、正規化、拡張、データセット分割などの前処理ステップは、計算負荷を軽減し、モデル性能を向上させるのに役立ちます。詳細については、コンピュータビジョンプロジェクトのステップをご覧ください。

Ultralytics YOLO をデータ補強に使うには?

Ultralytics YOLO11 でデータを拡張するには、データセット設定ファイル(.yaml)を修正する必要がある。このファイルでは、ランダムクロップ、水平反転、明るさ調整など、さまざまなオーグメンテーション技術を指定できる。これは、ここで説明するトレーニング・コンフィギュレーションを使って効果的に行うことができる。データ増強は、よりロバストなデータセットを作成し、オーバーフィッティングを減らし、モデルの一般化を改善するのに役立ちます。

コンピュータビジョンデータに最適なデータ正規化技術とは?

ノーマライゼーションは、ピクセル値を標準的な範囲にスケーリングすることで、収束を早め、トレーニング時のパフォーマンスを向上させます。一般的な手法には以下が含まれます:

  • 最小-最大スケーリング:ピクセル値を0から1の範囲にスケーリングする。
  • Zスコア正規化:平均値と標準偏差に基づいてピクセル値をスケーリングします。

YOLO11 については、RGBへの変換やピクセル値のスケーリングなど、正規化が自動的に処理される。詳しくはモデルトレーニングのセクションをご覧ください。

トレーニング用のアノテーションデータセットはどのように分割すればよいでしょうか?

データセットを分割するには、70%をトレーニング用、20%を検証用、10%をテスト用に分割するのが一般的です。これらの分割にわたってクラスのデータ分布を維持し、トレーニングセットに対してのみオーグメンテーションを実行することで、データ漏れを回避することが重要です。scikit-learn や TensorFlowのようなツールを使用する。データセットの準備に関する詳細なガイドを参照してください。

手動でリサイズしなくても、YOLO11 、さまざまな画像サイズに対応できますか?

はい、Ultralytics YOLO11 、モデルのトレーニング中に'imgsz'パラメータを通して、様々な画像サイズを扱うことができます。このパラメータは、アスペクト比を維持しながら、画像の最大寸法が指定されたサイズ(例えば640ピクセル)に合うようにリサイズされることを保証します。より柔軟な入力処理と自動調整については、モデルトレーニングのセクションをご覧ください。

📅作成:9ヶ月前 ✏️更新 8日前

コメント