自前のデータでKerasで画像分類を写経してみる(2)
前回はりんごとオレンジの画像をGoogle画像検索で25枚ずつダウンロードして、Kerasで機械学習してみた。
http://twosquirrel.mints.ne.jp/?p=19448
今回は、画像の読み込み方法が、具体的にどのように処理されているのか見てみたい。
上記コードでは、読み込んだ画像を25×25 pixelに変換して、それをRGBのnumpy配列というものに変換しているらしい。
25x25x3の数字の配列を見るのは、ちょっと無理なので、簡略化のために、今回は、5×5 pixelにリサイズして機械学習を行い、実際に画像がどのような配列に変換されているのか、見てみる。
(参考)
Kerasによる、ものすごくシンプルな画像分類(りんごとオレンジ)
hiroeorz@github
2017年02月15日に更新
http://qiita.com/hiroeorz@github/items/ecb39ed4042ebdc0a957
(環境)
Windows 8.1
Anaconda 4.4.0
Python 3.6.1
Tensorflow 1.2.1
Keras 2.0.6
http://twosquirrel.mints.ne.jp/?p=19448
今回は、前回(上記)(1)~(3)の続きから行う。
(1)C:/python/ フォルダ下に、以下のフォルダを作成
data/train/apple ←りんご画像20個をダウンロード
/train/orange ←オレンジ画像20個をダウンロード
/test/apple ←りんご画像5個をダウンロード
/test/orange ←オレンジ画像5個をダウンロード
(2)Kerasで機械学習
下記コードをコピペして、Shift+Enter で実行。
https://gist.github.com/adash333/9a5f1df82169c3dd7c9218111d4cbd05
1分くらい待つ
前回、25×25 pixelに画像を変換していて、今回、5×5 pixelに変換したが、正解率は90%を維持。ほとんど、色しか見てないのかも。。。
で、とりあえず、画像処理をどのように行っているか可視化にトライしてみる。
numpy, transpose, reshape について、いろいろググってみて、以下のコードの結果を見て、なんとなく、少しだけ、雰囲気をつかむことが出来た気が、、、、、
(3)画像の読み込みと、予測。その経過の配列も記載。
mikan.jpg と、tomato.jpgをGoogle画像検索してダウンロードして保存。
以下のコードをコピペしてShift+Enter。
https://gist.github.com/adash333/fcf40b9f9b68b2da5701d6bfc4cfac9f
途中。
(参考)
Kerasによる、ものすごくシンプルな画像分類(りんごとオレンジ)
hiroeorz@github
2017年02月15日に更新
http://qiita.com/hiroeorz@github/items/ecb39ed4042ebdc0a957
(参考2)
画像をkerasに読み込ませる方法
画像をコンピューターに認識させるとき コンピューターが理解できるように変換する必要がある
画像の大きさ 例えば、縦24×横24の小さな正方形の集まりとして
それぞれの小さな正方形について、RGB red green blue の値が、0から255まで、256段階
これを、numpy配列に直して、数字の配列に変換することにより、初めて、kerasが、画像を認識することができるようになる。
具体的には、
from keras.preprocessing import image import numpy as np
のあと、、、、
Numpy配列というものを、ある程度、使えるようにしておく必要がある。 数学での行列とは微妙にことなるところがあるので、注意。
Numpy reshape transpose
編集
numpy
NumPyで画像処理
http://www.mwsoft.jp/programming/computer_vision_with_python/1_3_numpy.html
http://qiita.com/supersaiakujin/items/c580f2aae90818150b35
[Python]Numpyデータの並べ替え
https://deepage.net/features/numpy-transpose.html
2017-06-23 配列の軸の順番を入れ替えるNumPyのtranspose関数の使い方
Python – NumPyで画像を配列として取得する 投稿者: edo1z 投稿日: 09/27/2015
https://endoyuta.com/2015/09/27/python-numpyで画像を配列として取得する/
numpyのテンソル(配列)関係
http://oppython.hatenablog.com/entry/2014/01/05/004454
numpyの多次元配列の「軸を入れ換える」ということについての学習 ラベル: Python 2015年10月03日20時00分公開 2016年11月30日08時27分更新
https://p–q.blogspot.jp/2015/10/numpy.html?m=1
この解説が具体的で分かりやすい!しかし、これでと、軸とかいまいちよくわからない、
http://discexuno.wp.xdomain.jp/2016/10/21/pythonnumpytransposeを用いた3次元のデータの転置/
PYTHON [Python+Numpy]transposeを用いた3次元のデータの転置 2016年10月21日 ばいろん
http://python-remrin.hatenadiary.jp/entry/2017/05/10/183809
2017-05-10 NumPyの使い方(4) 形状変換と転置
http://sleeping-micchi.hatenablog.com/entry/2014/04/18/003935
多次元行列の転置 多次元行列の軸の入れ替え 多次元行列の軸の入れ換えとは、該当する要素の軸を入れ替えた新しい行列を作成すること
2次元行列の場合 2×3行列の場合 元の行列のa13を、新しい行列のb31に設定。 元の行列の全ての要素について同様の操作を行う すると、新しい行列のBは、3×2行列として出来上がる。 (絵の説明を入れたい)
3次元行列の場合 3x2x4行列の場合
http://qiita.com/secang0/items/1229212a37d8c9922901
行列による画像処理 基礎編&目次 ~Python画像処理の再発明家~ secang0 2017年04月05日に更新
ディスカッション
コメント一覧
まだ、コメントがありません