Preprocess Images

モデル用のデータを準備するための画像前処理ステップ。

前処理は、データセットが標準フォーマット(例:すべての画像が同じサイズ)であることを保証します。このステップは、モデルをトレーニングする前にデータセットの一貫性を確保するために不可欠です。

前処理は、Train、Valid、Testセット内のすべての画像に適用されます( AugmentationsはTrainセットのみに適用されるのとは異なります)。

Roboflowプラットフォームでは、以下の前処理オプションが提供されています:

  • Auto-Orient

  • Resize

  • Grayscale

  • Auto-Adjust Contrast

  • Isolate Objects

  • Static Crop

  • Tile

  • Modify Classes

  • Filter Null

  • Filter by Tag

各オプションについては以下で説明します。

Auto-Orient

Auto-orientは画像からEXIFデータを削除し、ディスク上に保存されている通りに画像が表示されるようにします。

EXIFデータは画像の向きを決定します。アプリケーション(MacのPreviewなど)はこのデータを使って、ディスク上の保存向きが異なっていても特定の向きで画像を表示します。詳しくは こちら のHacker Newsのフロントページディスカッションをご覧ください。これがどのようにして物体検出モデルを密かに壊す可能性があるかについて議論されています。

  • Roboflowは、これをデフォルトでオンにしておき、推論時に画像がどのようにモデルに入力されているかを確認することを推奨します。

  • 画像を自動的にオリエントするべきかどうかについて詳しく知りたい場合は、 当社のブログをご覧ください.

Resize

Resizeは画像のサイズを変更し、必要に応じて希望する寸法にスケールします。アノテーションも比例して調整されます(下記の「fill」を除く)。

現在、ダウンサイジングのみサポートしています。 用途に最適なリサイズオプションについてのガイダンスを提供しています.

  • Stretch to: 画像を希望するピクセル単位の寸法に引き伸ばします。アノテーションも比例してスケールされます。画像は正方形で歪みますが、元の画像データは失われません。

  • Fill(中央クロップ): 生成される画像は、希望する出力寸法の中央をクロップしたものです。例えば、元画像が2600x2080でリサイズオプションが640x640の場合、出力画像は元画像の中央640x640部分になります。アスペクト比は維持されますが、元画像データは失われます。

  • Fit within: 元画像の寸法を、アスペクト比を維持しながら出力画像の寸法にスケールします。例えば、元画像が2600x2080でリサイズオプションが640x640の場合、長辺(2600)は640に、短辺(2080)は約512ピクセルにスケールされます。画像のアスペクト比と元データは維持されますが、正方形にはなりません。

  • Fit(エッジ反射): 元画像の寸法を、アスペクト比を維持しながら出力画像の寸法にスケールし、新たに作成された余白部分は元画像を反射したものになります。例えば、元画像が2600x2080でリサイズオプションが416x416の場合、長辺(2600)は416に、短辺(2080)は約335.48ピクセルにスケールされます。残りのピクセル領域(416-335.48、つまり80.52ピクセル)は元画像の反射ピクセルです。特に、Roboflowはアノテーションもデフォルトで反射します。画像は正方形でパディングされ、アスペクト比と元データが維持されます。

  • Fit(黒エッジ): 元画像の寸法を、アスペクト比を維持しながら出力画像の寸法にスケールし、新たに作成された余白部分は黒色になります。例えば、元画像が2600x2080でリサイズオプションが416x416の場合、長辺(2600)は416に、短辺(2080)は約335.48ピクセルにスケールされます。残りのピクセル領域(416-335.48、つまり80.52ピクセル)は黒ピクセルです。画像は正方形で黒パディングされ、アスペクト比と元データが維持されます。

  • Fit(白エッジ): 元画像の寸法を、アスペクト比を維持しながら出力画像の寸法にスケールし、新たに作成された余白部分は白色になります。例えば、元画像が2600x2080でリサイズオプションが416x416の場合、長辺(2600)は416に、短辺(2080)は約335.48ピクセルにスケールされます。残りのピクセル領域(416-335.48、つまり80.52ピクセル)は白ピクセルです。画像は正方形で白パディングされ、アスペクト比と元データが維持されます。

Grayscale

RGBチャンネルの画像を、1つのグレースケールチャンネルの画像に変換します。これによりメモリを節約できます。各グレースケールピクセルの値は、対応する赤、緑、青ピクセルの加重和として計算されます:Y = 0.2125 R + 0.7154 G + 0.0721 B。

これらの重みは CRT蛍光体 によって使用されており、等しい重みよりも人間の赤・緑・青の知覚をよりよく表現します。(出典: Scikit-Image.)

Auto-Adjust Contrast

コントラストが低い画像を強調します。 コントラストを前処理ステップとして使うかどうかについて検討しました.

  • コントラストストレッチング:画像は2パーセンタイルと98パーセンタイル内に収まるすべての強度を含むようにリスケールされます。 詳細はこちら.

  • ヒストグラム平坦化:画像内で最も頻度の高い強度値を「広げる」処理です。平坦化された画像はほぼ一様な分布となり、すべてのピクセル色がほぼ均等に表現されます。 詳細はこちら.

  • 適応的平坦化:コントラスト制限付き適応ヒストグラム平坦化(CLAHE)。画像の異なるタイル領域ごとに計算されたヒストグラムを使用する局所コントラスト強調アルゴリズムです。これにより、画像の大部分よりも暗いまたは明るい領域でも局所的な詳細を強調できます。(出典: Scikit-Image.)

高度な前処理機能

Isolate Objects

Isolate Objects変換は、各バウンディングボックスを個別の画像としてクロップ・抽出します。このステップは物体検出データセットを分類データセットに変換します。

データセット内の多くのクラスが類似している場合、2つのモデルを連続して使うのが一般的です。最初のモデル(物体検出)が物体を検出し、2番目のモデル(分類)が物体が何であるかを識別します。Isolate Objects変換は、2番目のモデルのトレーニングに必要なデータセットを作成するのに役立ちます。

Static Crop

Static crop機能とその出力例。

Tile

タイル処理は、小さな物体を検出する際(特に航空写真や顕微鏡画像など)に役立ちます。デフォルト設定は2x2タイルですが、必要に応じて調整できます。タイル処理は リサイズ前 に前処理パイプラインで実行されます。

タイルツールと出力のプレビュー(「グリッド」で表示)。

Modify Classes

新しいバージョンのデータセットを生成する際に、特定のクラスを省略したり、クラス名を再マッピング(リネーム)したりするための前処理ツールです。これらの変更は生成したバージョンのみに適用され、元のデータセットには影響しません。

「Apple leaf」クラスを省略しています。
「scratches」クラスを「scratch」にリマッピングしています。

Filter Null

Filter Null変換を使うと、データセット内の画像の一定割合にアノテーションが必要となります。Modify Classesツール適用後にnullアノテーションまたは「未アノテーション」とマークされた画像のみがFilter Null使用時に影響を受けます。

この変換は、データセットの大部分に目的の物体が含まれていない場合に有用です。

Filter Null前処理ステップの適用。

MissingとNullアノテーションの違い

「Missing Annotations」は画像がアノテーションされていない場合に発生します(画像を未アノテーションのままにすると、トレーニング済みデータセットのパフォーマンスに問題が生じ、トレーニング失敗の原因となります)。Nullアノテーションは、 何も モデルに検出させたいものがその画像内に存在しない場合にのみ適用すべきです。

Filter by Tag

Filter by Tag変換を使うと、どの画像をバージョンに含めるか、または含めないかを、 タグ の適用状況に基づいてフィルタリングできます。この変換は、新しいデータサブセットでモデルをトレーニングしたり、不要な画像をトレーニングから除外したりするのに便利です。

各タグには3つのオプションがあります:

  • Require: Requiredタグが付いた画像のみがバージョンに含まれます。

  • Exclude:Excludedタグが付いた画像はバージョンに含まれません。

  • Allow: Allowedタグが付いた画像は、ExcludeおよびRequireルールに従ってバージョンに含まれます。

この例では、生成されるVersionには、 do-not-include タグが付いていない画像のみが含まれます。

Last updated

Was this helpful?