コンテンツにスキップ

Albumentationsを使用してYOLO11をトレーニングするためのデータセットの強化

コンピュータビジョンモデルを構築する際、トレーニングデータの品質と多様性は、モデルのパフォーマンスに大きく影響します。Albumentationsは、モデルが現実世界のシナリオに適応する能力を向上させる可能性のある、幅広い画像変換を適用するための高速、柔軟、かつ効率的な方法を提供します。Ultralytics YOLO11と簡単に統合でき、物体検出セグメンテーション、および分類タスクのための堅牢なデータセットを作成するのに役立ちます。

Albumentationsを使用すると、幾何学的変換や色の調整などのテクニックでYOLO11トレーニングデータを強化できます。この記事では、Albumentationsがデータ拡張プロセスをどのように改善し、YOLO11プロジェクトをさらにインパクトのあるものにするかを見ていきます。始めましょう!

画像拡張のためのAlbumentations

Albumentationsは、2018年6月に作成されたオープンソースの画像拡張ライブラリです。コンピュータビジョンにおける画像拡張プロセスを簡素化および高速化するように設計されています。パフォーマンスと柔軟性を念頭に置いて作成されており、回転や反転などの単純な変換から、明るさやコントラストの変化などのより複雑な調整まで、多様な拡張技術をサポートしています。Albumentationsは、画像分類物体検出セグメンテーションなどのタスクのために、豊富で多様なデータセットを開発者が生成するのに役立ちます。

Albumentationsを使用すると、画像、セグメンテーションマスクバウンディングボックス、およびキーポイントに簡単に拡張を適用し、データセットのすべての要素がまとめて変換されるようにすることができます。PyTorchTensorFlowなどの一般的な深層学習フレームワークとシームレスに連携するため、幅広いプロジェクトで利用できます。

また、Albumentationsは、小規模なデータセットを扱う場合でも、大規模なコンピュータビジョンタスクを扱う場合でも、拡張に最適な選択肢です。高速かつ効率的な処理を保証し、データ準備にかかる時間を短縮します。同時に、モデルの性能向上を支援し、モデルを実際のアプリケーションでより効果的に活用できるようにします。

Albumentationsの主な機能

Albumentationsは、広範囲のコンピュータビジョンアプリケーション向けの複雑な画像拡張を簡素化する多くの便利な機能を提供します。主な機能を以下に示します。

  • 広範囲な変換: Albumentationsは、幾何学的変化(回転、反転など)、色の調整(明るさ、コントラストなど)、ノイズの追加(ガウスノイズなど)を含む70種類以上の変換を提供します。複数のオプションを持つことで、非常に多様で堅牢なトレーニングデータセットを作成できます。

画像拡張の例

  • ハイパフォーマンス最適化: OpenCVとNumPy上に構築されたAlbumentationsは、SIMD(Single Instruction, Multiple Data)のような高度な最適化技術を使用しています。これは、複数のデータポイントを同時に処理して処理を高速化します。大量のデータセットを迅速に処理し、利用可能な画像拡張のための最速のオプションの1つとなっています。

  • 3つのレベルの拡張:Albumentationsは、ピクセルレベルの変換、空間レベルの変換、およびミキシングレベルの変換という3つのレベルの拡張をサポートしています。ピクセルレベルの変換は、マスク、バウンディングボックス、またはキーポイントを変更せずに、入力画像のみに影響を与えます。一方、空間レベルの変換を使用すると、画像とその要素(マスクやバウンディングボックスなど)の両方が変換されます。さらに、ミキシングレベルの変換は、複数の画像を1つに結合するため、データを拡張する独自の方法です。

さまざまなレベルの拡張の概要

  • ベンチマーク結果: ベンチマークに関して言えば、Albumentationsは、特に大規模なデータセットで、他のライブラリよりも一貫して優れた性能を発揮します。

ビジョン AI プロジェクトで Albumentations を使用する利点は何ですか?

画像拡張に関して、Albumentationsはコンピュータビジョンタスクの信頼できるツールとして際立っています。Vision AIプロジェクトでの使用を検討すべき主な理由を以下に示します。

  • 使いやすい API: Albumentations は、画像、マスク、バウンディングボックス、およびキーポイントに幅広い拡張を適用するための単一の簡単な API を提供します。さまざまなデータセットに簡単に適応できるように設計されており、データ準備をよりシンプルかつ効率的にします。

  • 厳密なバグテスト: 拡張パイプラインのバグは、入力データをひそかに破損させる可能性があり、多くの場合気付かれずに、最終的にはモデルのパフォーマンスを低下させます。Albumentationsは、開発の初期段階でバグを検出するのに役立つ徹底的なテストスイートでこれに対処します。

  • 拡張性: Albumentationsを使用すると、新しい拡張を簡単に追加し、組み込みの変換とともに単一のインターフェースを介してコンピュータビジョンパイプラインで使用できます。

Albumentationsを使用してYOLO11トレーニングのデータを拡張する方法

Albumentationsとは何か、そしてそれが何ができるのかを説明したので、YOLO11モデルのトレーニングのためにそれを使用してデータを拡張する方法を見てみましょう。Albumentationsパッケージがインストールされていれば、Ultralyticsのトレーニングモードに直接統合され、自動的に適用されるため、簡単にセットアップできます。

インストール

YOLO11でAlbumentationsを使用するには、まず必要なパッケージがインストールされていることを確認してください。Albumentationsがインストールされていない場合、トレーニング中に拡張は適用されません。セットアップが完了すると、Albumentationsが自動的に統合され、モデルを強化するための拡張データセットを作成する準備が整います。

インストール

# Install the required packages
pip install albumentations ultralytics

インストールプロセスに関する詳細な手順とベストプラクティスについては、Ultralyticsインストールガイドをご確認ください。YOLO11に必要なパッケージのインストール中に問題が発生した場合は、よくある問題ガイドで解決策とヒントを参照してください。

使用法

必要なパッケージをインストールしたら、YOLO11 で Albumentations を使用する準備が整いました。YOLO11 をトレーニングすると、Albumentations との統合により、一連の拡張が自動的に適用され、モデルのパフォーマンスを簡単に向上させることができます。

使用法

from ultralytics import YOLO

# Load a pre-trained model
model = YOLO("yolo11n.pt")

# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

次に、トレーニング中に適用される特定の方策について詳しく見ていきましょう。

ぼかし

AlbumentationsのBlur変換は、小さな正方形領域(カーネル)内のピクセル値を平均化することにより、画像に単純なぼかし効果を適用します。これはOpenCVを使用して行われます。 cv2.blur 関数。これは画像のノイズを低減するのに役立ちますが、画像の詳細もわずかに減少させます。

この統合で使用されるパラメータと値を以下に示します。

  • blur_limit: これは、ぼかし効果のサイズ範囲を制御します。デフォルトの範囲は(3, 7)で、ぼかしのカーネルサイズは3〜7ピクセルの間で変化する可能性があり、ぼかしの中心を維持するために奇数のみが許可されます。

  • p: ぼかしを適用する確率。この統合では、p=0.01なので、各画像にこのぼかしが適用される確率は1%です。この低い確率により、画像を過度にぼかすことなく、モデルの汎化を助けるために、時折ぼかし効果を導入し、わずかな変化を与えます。

ぼかしオーグメンテーションの例

中央値ぼかし

AlbumentationsのMedianBlur変換は、画像にメディアンぼかし効果を適用します。これは、エッジを保持しながらノイズを低減するのに特に役立ちます。一般的なぼかし方法とは異なり、MedianBlurはメディアンフィルターを使用します。これは、エッジの鮮明さを維持しながら、特にsalt-and-pepperノイズを除去するのに効果的です。

この統合で使用されるパラメータと値を以下に示します。

  • blur_limit: このパラメータは、ぼかしカーネルの最大サイズを制御します。この統合では、デフォルトで(3, 7)の範囲に設定されており、ぼかしのカーネルサイズは3から7ピクセルの間でランダムに選択されます。適切なアライメントを確保するために、奇数値のみが許可されます。

  • p: メディアンぼかしを適用する確率を設定します。ここでは、p=0.01なので、各画像にこの変換が適用される確率は1%です。この低い確率により、メディアンぼかしの使用を控えめにし、ノイズが低減され、エッジが保持された画像を時々見せることで、モデルの汎化を助けます。

下の画像は、この拡張を画像に適用した例を示しています。

メディアンぼかしオーグメンテーションの例

グレースケール

AlbumentationsのToGray変換は、画像をグレースケールに変換し、シングルチャネル形式に縮小し、オプションでこのチャネルを複製して、指定された数の出力チャネルに一致させます。グレースケールの明るさの計算方法を調整するために、単純な平均化からコントラストと明るさの現実的な知覚のためのより高度な技術まで、さまざまな方法を使用できます。

この統合で使用されるパラメータと値を以下に示します。

  • num_output_channels: 出力画像のチャネル数を設定します。この値が1より大きい場合、単一のグレースケールチャネルが複製され、マルチチャネルグレースケール画像が作成されます。デフォルトでは3に設定されており、3つの同一のチャネルを持つグレースケール画像が得られます。

  • method:グレースケール変換方法を定義します。デフォルトの方法である「weighted_average」は、人間の知覚に非常に近い式(0.299R + 0.587G + 0.114B)を適用し、自然な外観のグレースケール効果を提供します。 「from_lab」、「desaturation」、「average」、「max」、「pca」などの他のオプションは、速度、明るさの強調、または詳細の保持に対するさまざまなニーズに基づいて、グレースケール画像を作成する代替方法を提供します。

  • p: グレースケール変換の適用頻度を制御します。p=0.01の場合、各画像をグレースケールに変換する確率は1%であり、カラー画像とグレースケール画像を混在させることで、モデルの汎化性能を向上させることができます。

下の画像は、このグレースケール変換を適用した例を示しています。

ToGrayオーグメンテーションの例

コントラスト制限適応ヒストグラム均等化(CLAHE)

AlbumentationsのCLAHE変換は、Contrast Limited Adaptive Histogram Equalization(CLAHE)を適用します。これは、画像全体ではなく、局所的な領域(タイル)でヒストグラムを均等化することにより、画像のコントラストを強調する手法です。CLAHEは、特に初期コントラストが低い領域で、標準的なヒストグラム均等化から生じる可能性のある過度に増幅されたコントラストを回避し、バランスの取れた強調効果を生み出します。

この統合で使用されるパラメータと値を以下に示します。

  • clip_limit: コントラスト強調の範囲を制御します。(1, 4)のデフォルト範囲に設定すると、各タイルで許可される最大のコントラストが決定されます。値が高いほどコントラストが強くなりますが、ノイズが発生する可能性もあります。

  • tile_grid_size:(行、列)で指定される、タイルのグリッドのサイズを定義します。デフォルト値は(8、8)で、画像が8x8のグリッドに分割されることを意味します。タイルサイズが小さいほど、より局所的な調整が可能になり、大きいほどグローバルな均等化に近い効果が得られます。

  • p: CLAHEを適用する確率。ここでは、p=0.01とすることで、コントラスト強調効果が適用されるのは1%の時間のみとなり、学習画像に時折変化を与えるために、コントラスト調整は控えめに適用されます。

下の画像は、CLAHE変換を適用した例を示しています。

CLAHEオーグメンテーションの例

Albumentationsについてさらに学ぶ

Albumentationsの詳細については、次のリソースで詳細な手順と例を確認してください。

  • Albumentationsドキュメント: 公式ドキュメントには、サポートされている変換と高度な使用テクニックが網羅的に記載されています。

  • Ultralytics Albumentationsガイド: この統合を容易にする関数の詳細を詳しく見てください。

  • Albumentations GitHubリポジトリ: このリポジトリには、データ拡張のカスタマイズを開始するのに役立つ例、ベンチマーク、およびディスカッションが含まれています。

主なポイント

このガイドでは、画像拡張のための優れたpythonライブラリであるAlbumentationsの重要な側面を探りました。その幅広い変換、最適化されたパフォーマンス、および次のYOLO11プロジェクトでの使用方法について説明しました。

また、Ultralytics YOLO11のその他の統合について詳しく知りたい場合は、統合ガイドページをご覧ください。貴重なリソースや洞察が多数掲載されています。

よくある質問

データ拡張を改善するために、AlbumentationsをYOLO11と統合するにはどうすればよいですか?

AlbumentationsはYOLO11とシームレスに統合され、パッケージがインストールされている場合はトレーニング中に自動的に適用されます。開始方法は次のとおりです。

# Install required packages
# !pip install albumentations ultralytics
from ultralytics import YOLO

# Load and train model with automatic augmentations
model = YOLO("yolo11n.pt")
model.train(data="coco8.yaml", epochs=100)

この統合には、モデルのパフォーマンスを向上させるために慎重に調整された確率で、ぼかし、中央値ぼかし、グレースケール変換、CLAHE などの最適化された拡張が含まれています。

他の拡張ライブラリと比較して、Albumentationsを使用する主な利点は何ですか?

Albumentationsが際立っている理由はいくつかあります。

  1. パフォーマンス: OpenCVとNumPyをベースに構築され、SIMD最適化により優れた速度を実現
  2. 柔軟性:ピクセルレベル、空間レベル、およびミキシングレベルの拡張において70以上の変換をサポート
  3. 互換性: PyTorchTensorFlow などの一般的なフレームワークとシームレスに連携します。
  4. 信頼性:広範なテストスイートにより、サイレントデータ破損を防止
  5. 使いやすさ:すべての拡張タイプに対応する単一の統一API

Albumentationsの拡張は、どのような種類のコンピュータビジョンタスクに役立ちますか?

Albumentationsは、以下を含むさまざまなコンピュータビジョンタスクを強化します。

  • 物体検出: 照明、スケール、および方向のバリエーションに対するモデルの堅牢性を向上させます
  • インスタンスセグメンテーション:多様な変換を通じてマスク予測の精度を向上させます
  • Classification: 色と幾何学的な拡張により、モデルの汎化性能を向上させます。
  • 姿勢推定: モデルがさまざまな視点や照明条件に適応するのに役立ちます

このライブラリの多様な拡張オプションは、堅牢なモデルパフォーマンスを必要とするあらゆるビジョンタスクに役立ちます。



📅 9か月前に作成 ✏️ 2か月前に更新

コメント