Chainer用の画像処理メモ(1)
画像を機械学習するために、画像の前処理で、画像を数字の配列に変換する必要がある。
前回、まずは、Pythonの画像処理モジュール、OpenCVを触ってみた。
http://twosquirrel.mints.ne.jp/?p=20039
この後だが、
(1)ラベル付けフォルダにそれぞれ保存した複数のjpg画像を、28×28のグレースケール画像に変換して別フォルダに保存。
(2)28×28のグレースケール画像を、Chainer用に、tuple_dataset型(numpy型?)に変換して保存
を行いたい。
まずは、上記の(1)にtryしてみる。
(環境)
Panasonic CF-RZ4
Windows 8.1 Pro
Anaconda 4.4.0
Python 3.5
Chainer 2.0
OpenCV3
(1)カラー画像で、ラベル付け(0 or 1)されたものが20枚くらいずつあるとする。
images/0/001.jpg
002.jpg
…
images/1/21,jpg
22.jpg
23.jpg
……
のように配置されているとする。
自前の画像から、まずは、train_mnist.py で学習できるように、データセットを作ってみたい。
https://qiita.com/tommyfms2/items/c3fa0cb258c17468cb30
の、
Linear(普通)の場合のデータセットの作り方
を参考にする。
これの、
train, test = chainer.datasets.get_mnist()
の中身がどうなっているのか。調べる。
import chainer
# Load the MNIST dataset
train, test = chainer.datasets.get_mnist()
print(train[0])
よくわからん、、、
しかし、最終的に、この形に変換したい。
(2) 画像を28×28のグレースケール画像に一括変換
https://qiita.com/xolmon/items/0b82f4861cf93fd28e33
の、2.dlibで顔画像を切り抜く のコードを改変して、jupyter notebookで実行。
すると、data/フォルダ内に、1/ フォルダと、2/フォルダが作成され、28×28にリサイズされたグレースケール画像がそれぞれ保存される。
<参考>
グレースケール化
https://qiita.com/icoxfog417/items/53e61496ad980c41a08e
リサイズ 28×28
●データをnumpy形式に変換する
Pythonで複数画像データを配列化して保存する方法
投稿 2017/05/28 17:03 ・編集 2017/05/28 17:05
https://teratail.com/questions/78052
ディスカッション
コメント一覧
まだ、コメントがありません