TensorFlowを使った画像認識(その2)

ということで、正解率をあげるためにいろいろと試してみることにしました。

まずはソースコード中の数値をチューニングしてみましたが、あまり効果が(高く)なさそう・・・ということでこれは却下。

それよりも学習用画像を加工する方がよさそうということでこの方向で進めました。

前回書きましたが、まず画像の枚数を増やすために、元画像を90度、180度、270度回転したものを追加しました。これで枚数は4倍になりました。

※画像を回転させるソースコード

 

そして以下の3パターンを試してみました。

 

1:元画像を白黒に色を変えた画像で実行

カラーの画像を白黒に変えるソースコードは以下のとおりです。

 

2:元画像を正方形に切り出した画像で実行

これは実は手作業で実行しました。。(成果があれば自動化しようと思い)

人間の顔等であれば、OpenCVでその部分を切り出すということは可能なようです。今回のような画像の場合はどうなのでしょう・・。

 

3:元画像から緑色を除いた画像で実行

画像の緑色の要素のみ取り除くソースコードは以下のとおりです。

 

以上の方法で各パターンの画像を用意し、その学習用画像を使って実行しました。

実行結果なのですが、残念ながらどのパターンも、画像を加工する前の結果と比べてよい結果は得られませんでした。

 

そこで、

4:画像のサイズを大きくする

を試してみることにしました。

元のソースコードは実行時に画像を28*28にリサイズします。

このサイズを大きくしてみることにしました。

大きくすればするほど実行時間がかかってしまうので、その辺はうまく調整しつつ。

以下が64*64で試した結果です。

おお。だいぶよくなってます。やはり28*28は小さすぎたようです。

 

ではサイズを大きくしたまま、先ほどの画像加工を加えてみます。

1’:元画像を白黒に色を変えた画像で実行(64*64)

2’:元画像を正方形に切り出した画像で実行(64*64)

3’:元画像から緑色を除いた画像で実行(64*64)

ということでこれらの画像加工はサイズを大きくしても特に結果は変わりませんでした。少しくらいよくなるかと思ったのですが。。

 

以上、現状画像のサイズを大きくすることで多少の正解率UPが実現できました。引き続き正解率をあげる方法を探っていこうと思います。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です