TensorFlowのTutorialを改造して画像識別

TensorFlowのTutorialを改造して画像識別

以前少しだけTensorFlowの記事を書きましたが、
久しぶりにTensorFlowを触ってみたので、成果物のご紹介。

やりたいこと

アイドルマスターシンデレラガールズのキャラクターを識別する。

やったこと

  • フリーソフトを使って画像を自動収集。
  • ここのプログラムの応用で、顔画像を切り出して、手動でタグ付け。(ファイル名を”タグ,(連番).jpg”に)
  • チュートリアルのプログラムを元に、学習プログラムを作成して、顔画像を学習。
  • 学習したパラーメタを使って検証。

学習プログラム

学習した顔画像は、64*64のリサイズにして保存しています。
また、ファイル名のカンマ以前の数字がキャラクターを識別するタグとなります。
今回は2500枚程度用意しました。

顔画像の例↓

 

概要説明:
“images”フォルダに保存された顔画像を読み込み、画素情報を一次元化し、入力用テンソルに保存。
ウェイトやバイアス、損失関数や正答率用の関数を定義。
バッチサイズ分のデータを切り出して、学習。それを規定ステップ分繰り返し。
最後にモデルを保存。

評価用プログラム

概要説明:
画像の読み込みや変数、関数の定義は同じ。
モデルを読み込み、これを使って識別した時の正答率を表示。

所感

今回は画像があまり集められなかったことと、振り分けが面倒だったことが理由で、
画像の量が少ないですが、学習用データに対する正答率は94%程度でした。
上記のプログラムはディープラーニングではなく、非常に単純なニューラルネットワークなので、
気が向いたらディープラーニング化してみたいと思います。