1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

画像認識

Last updated at Posted at 2020-05-09

Reference

チュートリアル

MNISTの学習データを用いて、画像認識させるニューラルネットワークの手順のまとめ。

MNIST

「0」〜「9」の手書きの数字のデータセット。一つの数字につき$28\times28$のピクセルに分け、1ピクセル8bit 256段階の色分けが行われている。kerasの提供するAPIで簡単に読み込むことができる。

>>> from keras.datasets import mnist
>>> (x_train, y_train), (x_test, y_test) = mnist.load_data()
>>> x_train[0]
array([[  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
          0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
          0,   0],
       [  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
          0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
          0,   0],
・・・ (省略)
>>> y_train[0]
5

入力情報を、1次元の配列に変換する。

>>> x_train = x_train.reshape(60000, 784)
>>> x_train[0]
array([  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,

また、正解データをone-hotエンコーディング(ダミー変数)に変換する。最終の出力層で確率として学習値と比較するので、例えば5であれば[0,0,0,0,0,1,0,0,0,0,]という行列にする。これもkerasのAPIを使用して作ることができる。

>>> y_train = keras.utils.to_categorical(y_train, 10)
>>> y_test  = keras.utils.to_categorical(y_test, 10)

ニューラルネットワークモデル

  • 入力層
    • MNIST1枚のピクセル28×28=784ピクセルの情報を入力情報にする。
  • 隠し層
    • 何層でするか、は要チューニング
  • 出力層
    • 「0」〜「9」に対応する10ノード、出力値はその数字である確率に対応する

画像認識

チュートリアルにおける簡単なコーディングを踏まえ、より実践的な画像認識に移る。最終的な挑戦目標は人物の輪郭を抽出すること。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?