ディープラーニングのフレームワークであるchainerを使って、
ライオンの画像認識テストをしてみた。
chainerはcaffeで学習したモデルを読み込める。
ディープラーニングは学習フェーズに時間がかかるし、マシンパワーも要る。
誰かが一度学習したモデルは再利用した方が効率がいい。
caffeにはそういった学習済みのモデルがあるのだが、chainerには無いようだ。
しかし、chainerはcaffeの学習モデルを読み込める。
さすればこれを利用しない手はない。
実装方法は専門サイトをあたって欲しい。
「chainer caffeモデル」等で検索すれば出てくる。
さて、このモデルもいろいろあるようだが、
今回は
bvlc_googlenet.caffemodel
とやらを使ってみる。
これは物体画像識別モデルらしく、画像を与えると1000種類のラベルから答えを選んで確率で提示してくれるようだ。
では、早速トライしてみよう。
まずは画像認識に使うフリー画像をネットより落とす。
動物はいろいろあるのだが、やはり百獣の王ライオンを落とした方が
モチベーションも上がるだろうと勝手に解釈。
いろんなライオン画像を落としてみた。
で、これらの画像を見事に当てることができるのかを実験する。
まずは通常の定番、オスのたてがみライオン。
lion, king of beasts, Panthera leo 0.999993
endTime:141.292915821[sec]
読み方は何となくわかると思う。
99パーセントの確率でライオンだと。
2行目は解析タイムで141秒。
続いて、メスライオン。
lion, king of beasts, Panthera leo 0.875156
endTime:136.742625952[sec]
メスがいっぱいでどうだ。
lion, king of beasts, Panthera leo 1.0
endTime:135.995461941[sec]
メスが寝ているのはどうだ。
lion, king of beasts, Panthera leo 0.993945
endTime:143.018036842[sec]
オスとメスが同時だと。
lion, king of beasts, Panthera leo 0.999996
endTime:145.427984953[sec]
じゃあ、熊だったら。(ライオンじゃないのか)
brown bear, bruin, Ursus arctos 0.998838
endTime:137.810104847[sec]
バッチリ、正解ですね。
馬ならどうだ。
sorrel 0.30917
endTime:139.737962961[sec]
栗毛の馬。正解!
この馬はわかるかchainer!
Afghan hound, Afghan 0.295077
endTime:142.296715021[sec]
おおーっと。
初めて間違えたぞ。
アフガンハウンドって何なんだ。
検索したらこんな犬だった。
こりゃあ、人間でも酔っ払ってたら間違えまっせ。
29パーセントの確率。ちょっと自信が無かったのね。
ならこいつはどうだ。
と、思いきや、
画像を載せようとしたら、あまりの重さに蹴られてしまった。
仕方ないので、スマホで撮った画像をアップ。
grocery store, grocery, food market, market 0.15934
endTime:138.949405909[sec]
食料品店。確率15パー。
まあ、見方によっては、ごちゃごちゃ感がそう見えなくもない。
最後はこれだ。人間との共存。
sorrel 0.620618
endTime:143.301738024[sec]
よしよし。馬とわかったのね。
やはり、ディープラーニングはすごい。
ばっちり正解を導き出している。
学習モデルさえあれば、推論フェーズは時間もかからないし比較的簡単にできる。
chainer、caffe、tensorflow等々のフレームワークを使えば、
コードの意味がわからなくても、簡単に人工知能が利用できる。
どのフレームワークが主導権を握るのだろう。
ここを勝ち取った所が、第二のマイクロソフトになるんだろうなあ。