目次
(7)Kerasで自前データで機械学習
<html>
<iframe width=“560” height=“315” src=“https://www.youtube.com/embed/SEVd0iervv8” frameborder=“0” allowfullscreen></iframe>
</html>
http://twosquirrel.mints.ne.jp/?p=19448
自前のデータでKerasで画像分類を写経してみる(1)
2017/7/31
以下のサイトのコードをコピペです。(このような分かりやすい解説に大感謝です。)
Kerasによる、ものすごくシンプルな画像分類(りんごとオレンジ)
hiroeorz@github
2017年02月15日に更新
http://qiita.com/hiroeorz@github/items/ecb39ed4042ebdc0a957
Google検索でりんごとオレンジの画像をそれぞれ25枚ずつゲット(ダウンロード)してくれば、私にもできました!
(環境)
Windows 8.1
Anaconda 4.4.0
Python 3.6.1
Tensorflow 1.2.1
Keras 2.0.6
手順
1.C:/python/ フォルダ下に、dataフォルダ以下を作成
2.Anaconda Promptを起動後、jupyter notebookの起動
3.fruit.pyのコードをコピペして、Shift+Enter で実行。
http://qiita.com/hiroeorz@github/items/ecb39ed4042ebdc0a957
1.C:/python/ フォルダ下に、dataフォルダ以下を作成
data/train/apple ←りんご画像約20個をダウンロード /train/orange ←オレンジ画像約20個をダウンロード /test/apple ←りんご画像約5個をダウンロード /test/orange ←オレンジ画像約5個をダウンロード
この4つのフォルダを作成し、
Google画像検索で出てきた画像を、
それぞれダウンロード。
ファイル名はなんでもよい。
画質もむちゃくちゃ。
2.Anaconda Promptを起動後、jupyter notebookの起動
WindowsのスタートボタンからAnaconda Promptを起動後、
jupyter notebook
と入力して、jupyter notebookを起動
画面右上の方の、「New」>「Python3」で新しいタブを開く
3.fruit.pyのコードをコピペして、Shift+Enter で実行。
以下のコードをコピペして、Shift+Enterで実行。
https://gist.github.com/adash333/20151dd19e3d3275edbd0b121e036c64
上記コードは、下記サイトの、fruit.py のコードを全部コピペして、最後に、モデル可視化のコードを加えたものです。
Kerasによる、ものすごくシンプルな画像分類(りんごとオレンジ)
http://qiita.com/hiroeorz@github/items/ecb39ed4042ebdc0a957
以上で、
(1)約20枚ずつのりんごとオレンジの画像から学習(train)し、
(2)その学習したモデルから、別の5枚のりんご画像と5枚のオレンジ画像を、りんごかオレンジかを予測させてみた
(3)今回は、その10枚の予測の正解率は100%であった
結果の図の例
ということになります。
(動画の解説はここまで)
メモ
さらに、以下を組み合わせたい
Kerasで画像分類を試してみる170109
http://yujikawa11.hatenablog.com/entry/2017/01/09/153436
→求めていたのはこれ!
上記サイトのソースコードを以下にコピペ。
# code from http://yujikawa11.hatenablog.com/entry/2017/01/09/153436 from keras.applications.vgg16 import VGG16, preprocess_input, decode_predictions from keras.preprocessing import image import numpy as np import sys """ ImageNetで学習済みのVGG16モデルを使って入力画像を予測 """ # モデルの読み込み model = VGG16(weights='imagenet') # 入力画像のロード filename = "./dog.jpg" img = image.load_img(filename, target_size=(224, 224)) # 入力画像の行列化 x = image.img_to_array(img) # 4次元テンソル x = np.expand_dims(x, axis=0) # 予測 preds = model.predict(preprocess_input(x)) results = decode_predictions(preds, top=5)[0] # 結果出力 for result in results: print(result)
上記コードを少し変更
# original code from http://yujikawa11.hatenablog.com/entry/2017/01/09/153436 from keras.preprocessing import image import numpy as np import sys filepath = "./pikachu.jpg" image = np.array(Image.open(filepath).resize((25, 25))) print(filepath) image = image.transpose(2, 0, 1) image = image.reshape(1, image.shape[0] * image.shape[1] * image.shape[2]).astype("float32")[0] result = model.predict_classes(np.array([image / 255.])) print("result:", result[0], "(0:りんご, 1:オレンジ)")
さらに変更
テスト
https://gist.github.com/adash333/15d9b33eef7a00f993bbc32a168f6ca0
画像を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
http://www.mathgram.xyz/entry/keras/preprocess/img
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日に更新
作成中
PIL(Pillow)
PIL
PIL(Python Imaging Library)
https://librabuch.jp/blog/2013/05/python_pillow_pil/
Python 3.5 対応画像処理ライブラリ Pillow (PIL) の使い方
http://aokiji.science/blog/?p=219
Pythonで画像処理
2015-04-17 画像の切り出しなど
today 2013-05-06 Mon person Takahiro Ikeuchi
http://www.mwsoft.jp/programming/computer_vision_with_python/1_1_pil.html
Pillow(Python Imaging Library)のインストールと簡単なサンプルコード
keras, model Predict
https://teratail.com/questions/78782
kerasで学習したモデルを実際に試す方法
cloudspider
2017/06/02 20:18 投稿
Kerasで画像分類を試してみる170109
http://yujikawa11.hatenablog.com/entry/2017/01/09/153436
→求めていたのはこれ!
https://www.google.co.jp/url?sa=t&source=web&rct=j&url=https://www.slideshare.net/mobile/yasuyukisugai/3nnkeras&ved=0ahUKEwjjgueEo7bVAhXKJZQKHfoJDMc4ChAWCCwwBA&usg=AFQjCNE5Hev5h7APupU2mfRTOWVW_8-Pdg
mnistで、自分の画像を画像処理するコードの記載がある!
http://qiita.com/tsunaki/items/608ff3cd941d82cd656b
keras(tensorflow)で花の画像から名前を特定
tsunaki
2017年02月03日に更新
Keras tips: 様々な画像の前処理をカンタンにやってくれる
20191115
keras.preprocessingのまとめ
http://www.mathgram.xyz/entry/keras/preprocess/img
【超初心者による】Keras(Tensorflowベース)でCNNを使った画像認識
rinigo
2017年03月29日に投稿
http://qiita.com/rinigo/items/66cf94abf7c665a0c7e2
→画像の前処理については、これが一番わかりやすいかも。
KerasでImageNetのハンバーガーと自転車を分類した
http://qiita.com/juntaki/items/9a13a3d2217ca223cf03
KerasによるVGG-16を用いた画像分類
Home keras KerasによるVGG-16を用いた画像分類
最終更新: 2017-03-20 15:40
https://kivantium.net/keras-vgg16
chainerの場合
chainerで画像を読み込む際のtips
http://qiita.com/ysasaki6023/items/fa2fe9c2336677821583
作成中