how to use scikit-image for data augmentation

24
How to use scikit- image for data augmentation @tereka114

Upload: hiroki-yamamoto

Post on 21-Apr-2017

2.041 views

Category:

Data & Analytics


2 download

TRANSCRIPT

Page 1: How to use scikit-image for data augmentation

How to use scikit-image for data augmentation

@tereka114

Page 2: How to use scikit-image for data augmentation

自己紹介1. 山本 大輝(@tereka114)2. のんびりしているエンジニアの日記( Blog)

1. http://nonbiri-tereka.hatenablog.com/3. Acroquest Technology株式会社4. データ分析のお仕事しています。1. 画像処理、自然言語処理

Page 3: How to use scikit-image for data augmentation

Outline

1. Scikit-imageとは何か2. Data Augmentationとは何か3. Data Augmentationで使える関数の紹介1. 画像の読み込み2. アフィン変換3. ヒストグラム正規化

4. Numpyの便利関数紹介

Page 4: How to use scikit-image for data augmentation

Outline

1. Scikit-imageとは何か2. Data Augmentationとは何か3. Data Augmentationで使える関数の紹介1. 画像の読み込み2. アフィン変換3. ヒストグラム正規化

4. Numpyの便利関数紹介

Page 5: How to use scikit-image for data augmentation

Scikit-imageとは何か?1. Scikit-imageは画像処理のライブラリ。2. 因みに scikitとは、 scipy toolkitを示していて、特にこのライブラリは広く使われている。3. 実は気にしていないだけで、案外バックエンドでは動いていることがある。

Page 6: How to use scikit-image for data augmentation

Caffeの Data Augmentation

Page 7: How to use scikit-image for data augmentation

Scikit-imageの良い点1. Installが簡単

1. Sudo pip install scikit-image

2. 基本的な操作は Numpyの関数で可能1. 簡単に行列演算を実施することができる。

Page 8: How to use scikit-image for data augmentation

Scikit-imageでできること1. 画像の入出力(当たり前)2. 画像の変換

1. Histogram normalization、 Affine Transform3. 特徴量抽出1. Local Binary Pattern, Histogram of Orientation

Page 9: How to use scikit-image for data augmentation

Scikit-imageでできること1. 画像の入出力(当たり前)2. 画像の変換

1. Histogram normalization、 Affine Transform3. 特徴量抽出1. Local Binary Pattern, Histogram of Orientation

Page 10: How to use scikit-image for data augmentation

Outline

1. Scikit-imageとは何か2. Data Augmentationとは何か3. Data Augmentationで使える関数の紹介1. 画像の読み込み2. アフィン変換3. ヒストグラム正規化

4. Numpyの便利関数紹介

Page 11: How to use scikit-image for data augmentation

Data Augmentation

1. データに対して情報を加えること。2. 画像に対しては、元画像に対して回転、平行移動、スケール変更などの情報を加える。3. Kaggleではよく使われる方法4. AlexNetの元論文でも使われている。

Page 12: How to use scikit-image for data augmentation

Example of Data Augmentation

引用元: https://cesarlaurent.wordpress.com/2015/02/19/29/

Page 13: How to use scikit-image for data augmentation

Example of Data Augmentation

引用元: https://cesarlaurent.wordpress.com/2015/02/19/29/

Page 14: How to use scikit-image for data augmentation

Outline

1. Scikit-imageとは何か2. Data Augmentationとは何か3. Data Augmentationで使える関数の紹介1. 画像の読み込み2. アフィン変換3. ヒストグラム正規化

4. Numpyの便利関数紹介

Page 15: How to use scikit-image for data augmentation

画像の読み込み1. skimage.io.imreadでファイル名を第一引数に使うと可能です。2. 読みこんだ画像は numpy.arrayなので行列計算はそのまま可能3. OpenCVと併用する場合は注意、行列の並び順は RGB。( OpenCVは BGR)

Page 16: How to use scikit-image for data augmentation

画像の読み込み1. Scikit-imageでの画像を読み込み

Page 17: How to use scikit-image for data augmentation

アフィン変換1. 平行移動を伴う線形変換のこと1. 「並行移動」・「回転」・「拡大・縮小」が可能2. パラメータを与えるだけで簡単にできる。

1. Scale:スケールの変換2. Rotate:回転3. Translated:平行移動

Page 18: How to use scikit-image for data augmentation

アフィン変換

Affine変換の行列を作成rotateは radian

線形変換

Page 19: How to use scikit-image for data augmentation

ヒストグラム正規化1. ヒストグラムを平滑化することによって、コントラストを調整することができる。2. このコントラスト調整によって、精度がよくなることも・・・

Page 20: How to use scikit-image for data augmentation

ヒストグラム正規化

Page 21: How to use scikit-image for data augmentation

ヒストグラム正規化

Page 22: How to use scikit-image for data augmentation

Numpyの便利関数紹介1. np.random.randomと np.random.binomialを組み合わせると、ノイズが作れる。2. Transpose関数で転置できる。1. 多くの DeepLearningライブラリでは、 channel,height,widthの順番を求められる。

2. scikit-imageの画像は height,width,channel3. img.transpose(2,0,1)とすると期待する入力になる。

Page 23: How to use scikit-image for data augmentation

Numpyの便利関数紹介1. whereを使うと一定以上の値を抽出して、定数に変換など可能1. 値が 0.5より高い箇所を 1とする。

1. x[np.where(x > 0.5)] = 1

2. 画像自体は numpyの行列の為、以下の方法で、画像を切り取ることが可能1. img = img[10:10 + 224]

Page 24: How to use scikit-image for data augmentation

まとめ1. scikit-imageで Data Augmentationをやってみようの紹介です。2. Data Augmentationは画像処理(特に認識)で使われ、成果をあげている。3. Scikit-imageで、簡単にできる。