2017年3月29日水曜日

TensorFlowによるCNNで植物画像を分類(続)

 前回のこのタイトルの記事、なにか具体性がありません。少しはデータを示したらどうなのだと言われそうなので、簡単に追記します。まず、TensorFlowで書いた7層のCNN(Convolutional Neural Network)に学習させた画像は、以下のものです。

 植物の葉の形態(たくさんありますが)を、ここでは5グループに限定して、それに属する写真を学習させました。下図のとおりです。

植物の葉の形態5グループの学習用写真(合計40枚)


 さて、数十秒で学習が終わったCNNに対して、学習時とは異なる以下の写真2枚を投入してみます。もちろん、こんなに甘くはないですこれは肝に銘じておきます)が、この2例に関してはうまく認識(分類)できました。

評価用写真2枚に対する認識(グループ識別)の結果

 まだまだ、未知の世界なのですが、学習時にも、評価時にも、使った写真の背景や明るさなどには何も手を加えていません。そのまま、学習させ、評価して、このような結果ですから、可能性を感じないわけには行きません。

 なお、この学習過程において、精度がどのように向上して行くか(誤差がどのように減少していくか)をグラフで示しておきます。これは、TensorFlowに付属のTensroboardで表示したものです。


 ここで誤解のないようにコメントして置きたいと思います。上図では、精度1.00すなわち、100%に達しています。しかし、これはどんな画像も間違いなく5グループに正確に分類できることを意味してはいません。あくまで、学習用の40枚の画像については、すべて正しく(5グループに)グループ分けできるCNNが完成したことを意味します。ですから、学習時とはちがう別の画像を持ってきた場合には、それがどのグループに属すかの判定が正しくできる保証はありません。しかし、どれかのグループの画像に何らかの類似点がある画像を持ってきた場合は、うまくグループ分類できる可能性が(かなりの程度)あるだろうということです。

0 件のコメント:

コメントを投稿