ニューラルネットワークの画像を準備/拡張する方法は?


41

画像分類にニューラルネットワークを使用したいと思います。事前に訓練されたCaffeNetから始めて、アプリケーション用に訓練します。

入力画像をどのように準備すればよいですか?

この場合、すべての画像は同じオブジェクトですが、バリエーションがあります(品質管理と考えてください)。それらは多少異なる縮尺/解像度/距離/照明条件にあります(多くの場合、縮尺がわかりません)。また、各画像には、ネットワークが無視する対象オブジェクトの周囲の領域(既知)があります。

(たとえば)各画像の中心を切り取ることができます。これには、関心のあるオブジェクトの一部が含まれ、無視される領域は含まれないことが保証されています。しかし、それは情報を捨ててしまうように思われ、また結果は実際には同じスケールではありません(おそらく1.5倍のバリエーション)。

データセットの増強

ランダムクロップ/ミラー/その他によってさらにトレーニングデータを作成することを聞いたことがありますが、これに標準的な方法はありますか?分類器の精度がどれだけ向上するかについての結果はありますか?

回答:


35

Neural Networksのアイデアは、機能の学習を担当するアルゴリズムによって重いリフティングが行われるため、前処理をほとんど必要としないというものです。

データサイエンスボウル2015の受賞者は、そのアプローチに関する優れた記事を持っているため、この回答の内容のほとんどは、ディープニューラルネットワークによるプランクトンの分類から取得されました 。特に前処理とデータ拡張に関する部分を読むことをお勧めします。

-画像のサイズ変更

さまざまなサイズ、解像度、距離については、次のことができます。各画像の最大の辺を固定長に変更するだけです。

別のオプションは、openCVまたはscipyを使用することです。これにより、画像のサイズが100列(幅)と50行(高さ)に変更されます。

resized_image = cv2.resize(image, (100, 50)) 

さらに別のオプションは、scipyモジュールを使用することです:

small = scipy.misc.imresize(image, 0.5)

-データ増強

データ量はデータセットに依存しますが、データ拡張は常にパフォーマンスを向上させます。データを拡張してデータセットのサイズを人為的に増やしたい場合は、ケースが該当する場合は次のことができます(たとえば、180度回転するとすべての情報が失われる家や人の画像の場合は適用されません)ただし、鏡のように反転させた場合ではありません):

  • 回転:0°〜360°の角度でランダム(均一)
  • 変換:-10〜10ピクセルのシフトでランダム(均一)
  • 再スケーリング:1 / 1.6から1.6の間のスケール係数でランダム(ログ均一)
  • 反転:yesまたはno(bernoulli)
  • せん断:-20°〜20°の角度でランダム(均一)
  • 伸縮:伸縮係数が1 / 1.3から1.3の間のランダム(ログ均一)

データサイエンスボウルの画像で結果を確認できます。

前処理された画像

前処理された画像

同じ画像の拡張バージョン

ここに画像の説明を入力してください

-その他のテクニック

これらは、照明などの他の画像プロパティを処理し、単純な前処理ステップのようなメインアルゴリズムに既に関連しています。UFLDLチュートリアルの全リストを確認してください。


1
色は、データの増強にも注目する価値があります。
デビッドC.ビショップ

回転やせん断などのコードも共有できますか?@wacax
アーセナルファナティック

皆さんは、kerasのようなパッケージを使用してデータを拡張できます。
リカルドクルス

2
scipy.miscモジュールのインポートに問題がある人向け。する必要がありimport scipy.miscます。stackoverflow.com/questions/13581593/…–
eleijonmarck

画像のサイズ変更に関しては、ImageNetで使用されるような最新の方法で通常使用される方法は何ですか?
HelloGoodbye

2

wacaxの答えは完全であり、本当に説明的ですが、誰かがこの答えにつまずいた場合に備えて、いくつかのことを追加したいと思います。

まず、ほとんどのscipy.misc画像関連機能は(imreadimsaveimresizeERC)のいずれかの非推奨となっているのImageIOまたはskimage

第二に、拡張タスクにはpythonライブラリimgaugを強くお勧めします。それは本当に使いやすく、あなたが使いたいと思うかもしれない事実上すべての増強技術を持っています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.