Preprocess Images

モデルの準備のための画像前処理手順。

前処理は、データセットが標準的な形式(例:すべての画像が同じサイズ)になっていることを保証します。このステップは、モデルを訓練する前にデータセットの一貫性を確保するために不可欠です。

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

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 (with center crop) in: 生成される画像は、希望する出力寸法の中央を切り取ったものです。例えば、ソース画像が2600x2080でリサイズオプションが640x640に設定されている場合、出力はソース画像の中央の640x640になります。アスペクト比は維持されますが、ソース画像のデータは失われます。

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

  • Fit (reflect edges) in: ソースの寸法を、ソース画像のアスペクト比を維持しつつ出力画像の寸法に合わせてスケーリングし、新たに作成されるパディングはソース画像の反射(リフレクト)で埋められます。例えば、ソース画像が2600x2080でリサイズオプションが416x416に設定されている場合、長辺(2600)は416にスケールされ、短辺(2080)は約335.48ピクセルにスケールされます。残りのピクセル領域(416-335.48、つまり80.52ピクセル)はソース画像の反射ピクセルになります。注目すべき点として、Roboflow はデフォルトで注釈も反射します。画像は正方形でパディングされ、アスペクト比と元データは維持されます。

  • Fit (black edges) in: ソースの寸法を、ソース画像のアスペクト比を維持しつつ出力画像の寸法に合わせてスケーリングし、新たに作成されるパディングは黒で埋められます。例えば、ソース画像が2600x2080でリサイズオプションが416x416に設定されている場合、長辺(2600)は416にスケールされ、短辺(2080)は約335.48ピクセルにスケールされます。残りのピクセル領域(416-335.48、つまり80.52ピクセル)は黒いピクセルになります。画像は正方形で黒いパディングが入り、アスペクト比と元データは維持されます。

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

Grayscale

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

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

Auto-Adjust Contrast

コントラストの低い画像を強調します。私たちは 前処理ステップとしてコントラストを使うべきかどうかを検討しました.

  • Contrast Stretching:画像は第2パーセンタイルから第98パーセンタイルまでの強度を含むように再スケールされます。 詳細はこちら.

  • Histogram Equalization:画像内で「最も頻繁に現れる強度値を広げる」手法です。ヒストグラム均等化された画像は概ね均一な分布を持ち、すべてのピクセル強度がほぼ等しく表現されます。 詳細はこちら.

  • Adaptive Equalization:コントラスト制限付き適応ヒストグラム均等化(CLAHE)。画像の異なるタイル領域で計算されたヒストグラムを用いる局所的なコントラスト強調のアルゴリズムです。そのため、画像の大部分より暗いまたは明るい領域でも局所的なディテールを強調できます。(出典: Scikit-Image.)

Advanced Preprocessing Features

Isolate Objects

Isolate Objects 変換は、各バウンディングボックスを切り取り個別の画像として抽出します。このステップは Object Detection データセットを Classification データセットに変換します。

データセット内の多くのクラスが類似している場合、2つのモデルを連続して使うことが一般的です。最初のモデル(オブジェクト検出)が物体を見つけ、2番目のモデル(分類)がその物体が何であるかを識別します。Isolate Objects 変換は2番目のモデルを訓練するために必要なデータセットを作成するのに有用です。

Static Crop

静的クロップ機能と出力例。

Tile

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

タイルツールと出力のプレビュー(「grid」に描写)。

Modify Classes

データセットの新しいバージョンを生成する際に、特定のクラスを省略したりクラスをリマップ(名前変更)するための前処理ツールです。これらの変更は生成するバージョンにのみ適用され、基となるデータセットには変更が加えられません。

「Apple leaf」クラスを省略する例。
クラス「scratches」を「scratch」にリマップする例。

Filter Null

Filter Null 変換は、データセット内の画像の割合に対して注釈が必要であることを要求できる機能です。Modify Classes ツール適用後に null 注釈、または「未注釈」とマークされた画像だけが Filter Null 使用時に影響を受けます。

この変換は、データセットの大部分が関心物体を含んでいない場合に有用です。

Filter Null 前処理ステップを適用する例。

欠落注釈と null 注釈の違い

「Missing Annotations(欠落注釈)」は画像が注釈されていない場合に発生します(画像を未注釈のままにすると、訓練データセットの性能に問題を引き起こし、訓練の失敗を招く可能性があります)。Null 注釈は、その画像にモデルに検出させたい 何も 存在しない場合にのみ適用するべきです。

Filter by Tag

Filter by Tag 変換は、どの画像をバージョンに含めるべきかを、どの Tags が適用されているかに基づいてフィルタリングすることを可能にします。この変換は、新しいサブセットのデータでモデルを訓練したり、不要な画像を訓練から除外したりするのに有用です。

各 Tag に対して次の三つのオプションが利用可能です:

  • Require: Required タグを持つ画像のみがバージョンに含まれます。

  • Exclude: Excluded タグを持つ画像はバージョンに含まれません。

  • Allow: Allowed タグを持つ画像は、Exclude と Require のルールに従って条件付きでバージョンに含まれます。

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

Last updated

Was this helpful?