Meet YOLO26: next-gen vision AI.

Link to this sectionアノテーション済みコンピュータビジョンデータのためのデータ前処理技術#

データ前処理は、未加工のアノテーション済み画像を、コンピュータビジョンモデルが適切に学習するために必要な、クリーンで一貫性のある入力データに変換します。Ultralytics YOLO26では、RGB変換、[0, 1]へのスケーリング、リサイズといった基本的な画素処理が学習パイプライン内で自動的に実行されるため、ユーザーが行うべき作業はデータセットの適切な分割、クラスのバランス調整、およびデータ拡張(オーグメンテーション)の選択に集約されます。本ガイドでは、リサイズ、正規化、データセットの分割、データ拡張、探索的データ分析(EDA)といった重要な技術について解説します。



Watch: How to Use Data Preprocessing and Augmentation to Improve Model Accuracy in Real-World Scenarios 🚀

このステップは、プロジェクトの目標を定義し、データを収集してアノテーションを付与した後のプロセスであり、コンピュータビジョンプロジェクトのワークフローの初期段階に位置します。

Link to this section前処理が重要な理由#

前処理により、計算負荷を軽減しモデルのパフォーマンスを向上させる形式にデータを整えることができます。これは、未加工データに見られる以下の3つの一般的な問題に対処します。

  • ノイズ: データに含まれる無関係またはランダムな変動。
  • 不整合: 画像サイズ、フォーマット、品質のばらつき。
  • 不均衡: データセット全体におけるクラスやカテゴリの分布の偏り。

Link to this section前処理技術#

主な技術には、リサイズ、正規化、データセットの分割、データ拡張があります。YOLO26では最初の2つは自動的に行われますが、分割とデータ拡張はユーザーの選択が最も重要になる部分です。

Link to this section画像のサイズ変更#

多くのモデルは一定の入力サイズを必要とするため、リサイズによって画像を統一し、計算の複雑さを軽減します。よく使われる2つの補間方法は以下の通りです。

  • 双一次補間(バイリニア補間): 最も近い4つの画素の加重平均を計算し、画素値を滑らかにします。
  • 最近傍補間: 平均化を行わずに最も近い画素の値をコピーします。高速ですが、画像がブロック状になりやすいという特徴があります。

Libraries like OpenCV and PIL (Pillow) provide these functions, but with YOLO26 you usually don't resize manually. The imgsz argument during model training handles it: when set to a value such as 640, YOLO scales each image so its largest dimension is 640 pixels while preserving the aspect ratio, then pads the shorter side (default gray, value 114) to reach a square 640 × 640 input.

Link to this section画素値の正規化#

正規化は画素値を標準的な範囲にスケーリングする処理であり、学習中のモデルの収束を早めるのに役立ちます。よく使われる2つの技術は以下の通りです。

  • ミニマックス・スケーリング: 画素値を0から1の範囲にスケーリングします。
  • Zスコア正規化: 平均と標準偏差に基づいて画素値をスケーリングします。

YOLO26は、前処理パイプラインの一環として正規化を自動的に処理します。画像をRGBに変換し、255で割ることで画素値を [0, 1] の範囲にスケーリングします(最小最大スケーリング)。YOLOはデフォルトではImageNetスタイルの平均/標準偏差(zスコア)正規化を適用しないため、手動の正規化ステップは不要です。

Link to this sectionデータセットの分割#

データを学習用、検証用、テスト用に分割することで、未知のデータに対してモデルを評価し、その汎化性能を測定できます。一般的な分割比率は、学習用70%、検証用20%、テスト用10%です。scikit-learnTensorFlowなどのツールを使用すれば、簡単に実行できます。

分割の際は以下の点に注意してください。

  • クラス分布の維持: 各クラスが学習用、検証用、テスト用の各セットで比例して含まれるようにしてください。
  • クラスのバランス調整: 不均衡なデータセットの場合は、学習用セット内においてのみ、マイノリティクラスのオーバーサンプリングやマジョリティクラスのアンダーサンプリングを検討してください。
データリークの回避

データセットの分割は、データ拡張やその他の前処理を適用するに行い、それらの変換は学習用セットにのみ適用してください。分割前に拡張を行うと、検証用やテスト用画像のデータが学習に影響を与えてしまい、実際のデータでは機能しないにもかかわらず、誤解を招くほど高いスコアが表示される原因となります。

Link to this sectionデータセットの拡張#

データ拡張は、既存の画像の修正バージョンを作成することで、データセットのサイズを人工的に拡大します。これは過学習の抑制と汎化性能の向上に役立ち、以下のような利点があります。

  • より堅牢なモデル: 照明、向き、スケールの変化により、モデルは実世界の歪みに対して強くなります。
  • 費用対効果: 新しいデータの収集やラベル付けを行わずに、学習セットを拡張できます。
  • データの有効活用: 1つのアノテーション済み画像から、複数の学習用バリエーションを作成できます。

Examples of data augmentation techniques including flips, rotations, scaling, and color adjustments applied to a sample image

With YOLO26, augmentation is controlled through training arguments passed to model.train() or the equivalent CLI flags — not by editing the dataset YAML, which defines dataset metadata such as paths, class names, and splits. The built-in augmentations include:

  • Mosaic、MixUp、およびCutMix (mosaic, mixup, cutmix): 複数の画像を1つの学習サンプルに組み合わせます。
  • 反転 (fliplr, flipud): 画像を水平または垂直に鏡像反転します。
  • 幾何学的変換 (degrees, translate, scale, shear, perspective): 画像の回転、シフト、ズーム、歪み補正を行います。
  • HSV色空間のジッター (hsv_h, hsv_s, hsv_v): 色相、彩度、明度を変化させます。
  • コピーペースト (copy_paste): セグメンテーション用に、画像間でオブジェクトをコピー&ペーストします。
学習時のデータ拡張強度の設定
from ultralytics import YOLO

model = YOLO("yolo26n.pt")

# Augmentation is configured with training arguments, not the dataset YAML
model.train(data="coco8.yaml", epochs=10, hsv_h=0.015, fliplr=0.5, mosaic=1.0, degrees=10.0)

データ拡張引数の全リストとそのデフォルト値については、データ拡張設定リファレンスおよび専用のYOLOデータ拡張ガイドを参照してください。albumentationsパッケージがインストールされている場合、YOLOはAlbumentationsベースの組み込みデータ拡張も自動的に有効にします。

Link to this sectionケーススタディ:車両検出のための前処理#

YOLO26を使用して交通画像内の車両を検出し分類するプロジェクトを想定します。バウンディングボックスとラベルでアノテーションされた画像から開始する場合、前処理の各決定事項は以下のようになります。

  • リサイズ: 手動作業は不要です。YOLO26が学習中に imgsz へとリサイズします。
  • 正規化: 手動作業は不要です。YOLO26が自動的に画素値を [0, 1] にスケーリングします。
  • 分割: データセットを70%の学習用、20%の検証用、10%のテスト用に分割し、すべての分割でクラス分布を維持します。
  • データ拡張: 交通シーンに適した学習引数を設定します。例えば、方向の不変性のために fliplr、昼夜の照明変化のために hsv_v、多様なオブジェクト密度のために mosaic を使用します。

これらの決定事項により、データセットは探索的データ分析(EDA)の準備が整います。

Link to this section探索的データ分析(EDA)#

EDAは統計と可視化を用いてデータのパターンと分布を明らかにし、クラスの不均衡や異常値といった問題を学習前に発見するのに役立ちます。

Link to this section統計的EDA技術#

統計的なEDAは、画素強度の分布などのプロパティに対して計算される平均、中央値、標準偏差、範囲といった基本的な指標から始まります。これらはデータセットの品質の概要を素早く把握し、初期段階で不規則なデータを見つけるのに役立ちます。

Link to this section視覚的EDA技術#

可視化を行うことで、要約統計量では見逃されるクラスの不均衡や異常値などのパターンが明らかになります。よく使われるツールは以下の通りです。

  • ヒストグラムとボックスプロット: 画素値の分布を示し、強度や特徴分布の異常値にフラグを立てます。
  • 棒グラフ: 各クラスのサンプル数を比較することで、クラスの不均衡を明らかにします。
  • 散布図: 画像の特徴やアノテーション間の関係を探索します。
  • ヒートマップ: 画素強度の分布や、画像全体におけるアノテーションの空間的な分布を可視化します。

Link to this sectionEDAのためのUltralyticsプラットフォーム#

コード不要のEDAアプローチとして、Ultralyticsプラットフォームにデータセットをアップロードしてください。データセットの Charts タブでは、分割の分布、主要クラス数、画像幅/高さのヒストグラム、アノテーション位置と画像サイズの2Dヒートマップなど、重要なEDA可視化が自動的に生成されます。 Images タブでは、グリッド、コンパクト、テーブルビューでアノテーションのオーバーレイと共にデータを閲覧できるため、コードを書くことなく、誤ラベル付けされた例や不均衡なクラスを簡単に特定できます。

Link to this section結論#

適切に分割、正規化、拡張されたデータはノイズを減らし汎化性能を高め、未加工の画像集を信頼性の高い学習セットに変えます。データセットの前処理が完了したら、次のステップはモデルの学習です。途中で質問がある場合は、Ultralytics GitHubリポジトリUltralytics Discordサーバーでコミュニティに質問してください。

Link to this sectionよくある質問 (FAQ)#

Link to this sectionなぜコンピュータビジョンプロジェクトにおいてデータ前処理が重要なのでしょうか?#

前処理は、データがクリーンで一貫性があり、学習に最適化された形式であることを保証します。未加工データのノイズ、矛盾、クラスの不均衡に対処することで、リサイズ、正規化、データ拡張、データセット分割などのステップが計算負荷を軽減し、モデルのパフォーマンスを向上させます。これがより広いワークフローにどのように適合するかについては、コンピュータビジョンプロジェクトのステップを参照してください。

Link to this sectionUltralytics YOLOでデータ拡張を行うにはどうすればよいですか?#

データ拡張の設定はデータセットYAMLではなく、学習引数を通じて行います。各変換の確率と強度を設定するには、fliplrmosaichsv_hdegrees などの引数を model.train() (または同等のCLIフラグ)に渡します。これらはデータ拡張設定で定義され、YOLOデータ拡張ガイドで説明されています。

Link to this sectionコンピュータビジョンデータにとって最適な正規化技術は何ですか?#

最も一般的な2つの技術は、最小最大スケーリング(画素を0から1の範囲に再スケーリングする)と、zスコア正規化(平均と標準偏差に基づいて再スケーリングする)です。YOLO26は自動的に最小最大スケーリングを適用し(画像をRGBに変換し、画素値を255で割る)、手動での正規化ステップは不要です。デフォルトではzスコア正規化は適用されません。

Link to this section学習のためにアノテーション済みデータセットをどのように分割すべきですか?#

一般的なプラクティスは、学習用70%、検証用20%、テスト用10%です。3つの分割すべてでクラス分布を維持し、分割後に学習セットに対してのみデータ拡張を適用することでデータリークを回避してください。scikit-learnやTensorFlowなどのツールで効率的に分割できます。アップストリームでのデータセット準備については、データ収集およびアノテーションガイドを参照してください。

Link to this sectionYOLO26は手動のリサイズなしで、様々な画像サイズを処理できますか?#

はい。 imgsz 引数は、学習中および推論中に、アスペクト比を維持しながら最大辺が指定サイズ(例:640ピクセル)になるように画像をリサイズし、短い辺にはパディングを行います。自分で画像をリサイズする必要はありません。詳細については、モデル学習のドキュメントを参照してください。

コメント