ヤメ記者SEの徒然なるままに…

アクセスカウンタ

zoom RSS [HowTo] Deep learning のフレームワーク「Caffe」を試す。2

<<   作成日時 : 2016/10/30 09:55   >>

トラックバック 1 / コメント 0

昨日投稿した記事に続いて、Deep learningのお話。

とりあえず、昨日なんとかインストールして、ひとまずリファレンスモデルで動かせるところまでは来ました。

リファレンスモデルは、サンプルとしてはじめから用意されている1000種類のImageNetの分類データを使って、画像を読み込ませたときに、そこに映っているモノが何かを判断させるモノです。
昨日紹介した
http://techblog.yahoo.co.jp/programming/caffe-intro/
この記事に書かれている、一番最初の段階ですね。

試しに実行してみます。

まずはこんな感じで適当なサンプル画像を保存して
(下で取得してるサンプル画像は、いくつか試した中で良い成績がでた画像なのですが、昆虫画像なので苦手な方は開かないでください)

tezuka@python-linux:~/caffe_demo/caffe/caffe$ wget -P images/ http://hachikura.com/seitai/PB300732.jpg
--2016-10-30 09:32:01-- http://hachikura.com/seitai/PB300732.jpg
hachikura.com (hachikura.com) をDNSに問いあわせています... 124.241.226.75
hachikura.com (hachikura.com)|124.241.226.75|:80 に接続しています... 接続しまし た。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 33508 (33K) [image/jpeg]
`images/PB300732.jpg' に保存中

PB300732.jpg 100%[===================>] 32.72K --.-KB/s in 0.05s

2016-10-30 09:32:01 (625 KB/s) - `images/PB300732.jpg' へ保存完了 [33508/33508]


解析処理を実行。
tezuka@python-linux:~/caffe_demo/caffe/caffe$ python python/classify.py images/PB300732.jpg result.npy
CPU mode
WARNING: Logging before InitGoogleLogging() is written to STDERR
W1030 09:32:15.019779 9999 _caffe.cpp:122] DEPRECATION WARNING - deprecated use of Python interface
W1030 09:32:15.020150 9999 _caffe.cpp:123] Use this instead (with the named "weights" parameter):
W1030 09:32:15.020447 9999 _caffe.cpp:125] Net('python/../models/bvlc_reference_caffenet/deploy.prototxt', 1, weights='python/../models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel')
I1030 09:32:15.022152 9999 net.cpp:58] Initializing net from parameters:

(…中略。標準出力に300行ほどメッセージが出力されます…)

Loading file: images/PB300732.jpg
Classifying 1 inputs.
Done in 1.07 s.
Saving results into result.npy


結果を読み込むと
tezuka@python-linux:~/caffe_demo/caffe/caffe$ python show_result.py data/ilsvrc12/synset_words.txt result.npy
#1 | n01774750 tarantula | 99.7%
#2 | n01775062 wolf spider, hunting spider | 0.3%
#3 | n01773549 barn spider, Araneus cavaticus | 0.1%
tezuka@python-linux:~/caffe_demo/caffe/caffe$

下線部を観て頂くと99.7%の確率で、画像に写っているのがタランチュラであるという結果になりました。

他にも色々試してみたんですが、蝉の画像を読み込ませてみたら47%の確率でゴキブリという回答(2位に44%の確率で蝉と出力。惜しい!)されたり、クワガタの画像を読み込ませてみたらカミキリムシと言われたり。
他にも犬や魚の画像でも、そこそこの精度といったところで、色んな分類が試せました。

これはこれで結構面白いのですが、例えば、光沢のある熱帯魚の写真を読み込ませてみたらなぜか風車と判定されてしまったりと、やはり誤認もかなりの数があり、1000種類程度の分析器ではこの程度なんだろうな、という感じでした。
あ、ちなみに、元々1000種類の分類の中で、犬がかなり詳細に特徴付けされているようで、犬の写真については犬種に付いてまでかなり細かく判定することが出来、精度もそれなりにモノでした。

ということで、元記事の方にも
Caffeのリファレンスモデルはあらかじめ決められた1000のカテゴリに画像を分類しますが、実用的には使いにくいカテゴリなので、独自のモデルを用意したくなります。

と書いてあるとおり、例えば、魚なら魚、昆虫なら昆虫と、もっとデータを用意して特化させた特徴抽出をさせてやれば、もう少し精度を上げて色々分析できるんだろうなと。
うまくすると、LINEやFacebookのbotで、送られた写真が何の写真か判定して答えるみたいなことも出来そうな気がします。

まぁ、現実的にビジネスとか学術系で利用できるレベルにするには大量のデータを用意する必要があるのと、ただの個人向けPCでは分析に時間がかかりすぎるでしょうからたいしたことは出来ないとは思いますが、手法くらいは知っておきたいなと思うので、そのうち試してみたいなと。


それに、ImageNetのサンプルが情報がたくさんあったんでこれでやりましたが、元々試してみたいと思っているのはどちらかというとテキスト系のデータ処理なので、これで手法を色々触ってみた後は、そちらの方のやり方も調べてみたいなと思います。


まぁ、そのためにはPythonの勉強が先だな、とも思っていますが…。



ではでは〜〜〜〜。


深層学習 (機械学習プロフェッショナルシリーズ)
講談社
岡谷 貴之

amazon.co.jpで買う
Amazonアソシエイト by 深層学習 (機械学習プロフェッショナルシリーズ) の詳しい情報を見る / ウェブリブログ商品ポータル



これからの強化学習
森北出版
牧野 貴樹

amazon.co.jpで買う
Amazonアソシエイト by これからの強化学習 の詳しい情報を見る / ウェブリブログ商品ポータル


テーマ

注目テーマ 一覧


月別リンク

トラックバック(1件)

タイトル (本文) ブログ名/日時
[HowTo] Deep learning のフレームワーク「Caffe」を試す。
さて、もう10月もほぼ終わり。早い物で今年もあと2ヶ月を残すところなってきました。 ...続きを見る
ヤメ記者SEの徒然なるままに…
2016/10/30 11:01

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
[HowTo] Deep learning のフレームワーク「Caffe」を試す。2 ヤメ記者SEの徒然なるままに…/BIGLOBEウェブリブログ
文字サイズ:       閉じる