画像のディープラーニングを実験しています。光の状態、画像の解像度、視野角が異なるさまざまなカメラからの約4000枚の画像があります。
私の質問は次のとおりです:どのような種類の画像前処理がオブジェクト検出の改善に役立ちますか?(例:コントラスト/色の正規化、ノイズ除去など)
ニューラルネットワークに供給する前の画像の前処理用。データを作成することをお勧めしますゼロ中心。次に、正規化手法を試します。データは、任意の大きな値や小さすぎる値よりも範囲内でスケーリングされるため、確かに精度が向上します。
画像の例は次のようになります-
これはスタンフォードCS231n 2016講義からの説明です。
*
正規化とは、データディメンションをほぼ同じスケールになるように正規化することです。画像データの場合この正規化を実現するには、2つの一般的な方法があります。 1つは、ゼロセンタリングされたら、各次元をその標準偏差で割ることです。
(X /= np.std(X, axis = 0))
。この前処理の別の形式では、各次元を正規化して、次元に沿った最小値と最大値がそれぞれ-1と1になるようにします。この前処理を適用する意味があるのは、異なる入力フィーチャのスケール(または単位)が異なると考える理由がある場合のみですが、それらは学習アルゴリズムとほぼ同じ重要性を持つ必要があります。画像の場合、ピクセルの相対的なスケールは既にほぼ等しく(0〜255の範囲)、この追加の前処理ステップを実行する必要はありません。
*
上記の抜粋のリンク:- http://cs231n.github.io/neural-networks-2/
これは確かにこの投稿への返信が遅いですが、うまくいけば、誰がこの投稿につまずいたのかを助けてください。
これが私がオンラインで見つけた記事です ニューラルネットワークの画像データの前処理 、これは確かにネットワークをどのようにトレーニングするべきかについての記事には適していました。
記事の主旨は言う
1)NNに入るデータ(画像)は、NNが取得するように設計された画像サイズ(通常は正方形、つまり100x100、250x250)に従ってスケーリングする必要があるため
2)[〜#〜]平均[〜#〜](左の画像)とSTANDARD DEVIATION(右の画像)特定の画像セットのコレクション内のすべての入力画像の値
3)画像入力の正規化は、各ピクセルから平均を差し引き、結果を標準偏差で除算することで行われます。これにより、ネットワークのトレーニング中に収束が速くなります。これはゼロを中心とするガウス曲線に似ています
4)次元削減RGBからグレースケール画像、ニューラルネットワークのパフォーマンスは、その次元に対して不変であるか、トレーニング問題を扱いやすくする
this を一読してください。アイデアは、入力画像をパーツに分割することです。これはR-CNNと呼ばれます( ここ はいくつかの例です)。このプロセスには、オブジェクトの検出とセグメンテーションの2つの段階があります。オブジェクト検出は、前景の特定のオブジェクトが勾配の変化を観察することによって検出されるプロセスです。セグメンテーションは、オブジェクトが高コントラストの画像にまとめられるプロセスです。高レベルの画像検出器は、ローカル最適化ポイントを使用して次に起こり得ることを検出できるベイズ最適化を使用します。
基本的に、あなたの質問に答えて、あなたが与えたすべての前処理オプションは良いようです。コントラストと色の正規化により、コンピューターは異なるオブジェクトを認識し、ノイズ除去により、グラデーションをより簡単に区別できるようになります。
この情報がお役に立てば幸いです。
上記に加えて、低解像度画像(LR)の品質を向上させる優れた方法は、深層学習を使用して超解像を行うことです。これが意味することは、低解像度の画像を高解像度に変換するディープラーニングモデルを作成することです。劣化関数(ぼかしなどのフィルター)を適用することで、高解像度画像を低解像度画像に変換できます。これは本質的にLR = degradation(HR)を意味し、劣化関数は高解像度画像を低解像度に変換します。この関数の逆を見つけることができれば、低解像度の画像を高解像度に変換します。これは教師あり学習問題として扱うことができ、ディープラーニングを使用して解いて逆関数を見つけることができます。これに出くわした 興味深い記事 深層学習を使用した超解像の紹介。これがお役に立てば幸いです。