目次
tensorflowなら簡単に画像認識ができる
こんにちは。
AI coordinatorの清水秀樹です。
tensorflowの入門編として、簡単にサンプルソースを使った画像認識を試してみたので、その内容を紹介します。
環境は以下の通り。
- maxOS Sierra
- python2.7
です。
それでは環境準備から説明します。
tensorflowのインストール
tensorflowはとても簡単にインストールできます。
以下のコマンドを打ち込むだけです。
$ sudo pip install tensorflow
tensorflowのインストールが完了したら、無事にインストールが完了しているか確認してみましょう。
王道のHello, TensorFlowを表示させてみましょう。
$ python Python 2.7.10 (default, Feb 6 2017, 23:53:20) [GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.34)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import tensorflow as tf >>> hello = tf.constant("Hello, TensorFlow!") >>> sess = tf.Session() 2017-05-10 21:13:55.363331: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.1 instructions, but these are available on your machine and could speed up CPU computations. 2017-05-10 21:13:55.363384: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations. 2017-05-10 21:13:55.363394: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX instructions, but these are available on your machine and could speed up CPU computations. >>> print(sess.run(hello)) Hello, TensorFlow!
上記と同じ結果になれば無事インストールは完了しています。
tensorflowライブライリーのダウンロード
これも簡単ですが、今回はGPUのサポートなしでbuildします。
$ git clone -b v0.6.0 --recurse-submodules https://github.com/tensorflow/tensorflow.git $ cd tensorflow $ ./configure
gpuをサポートするか問われるので、今回はnを選択します。
Do you wish to build TensorFlow with GPU support? [y/N]
ここまでで準備は完了です。
サンプルの実行
それでは早速、サンプルソースコードを実行してみましょう。
使うファイルはclassify_image.pyです。
ディレクトリ階層が深いので以下の通り入力すれば、すぐに実行できます。
$ python /Users/ユーザー名/tensorflow/tensorflow/models/image/imagenet/classify_image.py
結果を確認してみましょう。
>> Downloading inception-2015-12-05.tgz 100.0%() ('Succesfully downloaded', 'inception-2015-12-05.tgz', 88931400, 'bytes.') 2017-05-10 21:32:49.367611: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.1 instructions, but these are available on your machine and could speed up CPU computations. 2017-05-10 21:32:49.367657: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations. 2017-05-10 21:32:49.367664: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX instructions, but these are available on your machine and could speed up CPU computations. 2017-05-10 21:32:50.496206: W tensorflow/core/framework/op_def_util.cc:332] Op BatchNormWithGlobalNormalization is deprecated. It will cease to work in GraphDef version 9. Use tf.nn.batch_normalization(). giant panda, panda, panda bear, coon bear, Ailuropoda melanoleuca (score = 0.89107) indri, indris, Indri indri, Indri brevicaudatus (score = 0.00779) lesser panda, red panda, panda, bear cat, cat bear, Ailurus fulgens (score = 0.00296) custard apple (score = 0.00147)
何やらダウンロードが始まります。
暫くして、「ジャイアントパンダ」だと結果が出て来ました。
は!??????
意味がわかりませんね。
なぜいきなりジャイアントパンダと結果が出て来たのか謎でしたので、何をダウンロードしたのか確認してみました。
実行したソースコードにダウンロード先のURLが指定してありますので、そこを直接参照しファイルをダウンロードして解凍してみると、以下のファイルが保存されていました。
どうやら「cropped_panda.jpg」の画像を識別していたようです。
なるほど。
だから「ジャイアントパンダ」と表示されたのですね。
ようやく意味がわかりました。
自分で用意した画像を試してみましょう
コマンドは以下のように入力するようです。
$ python classify_image.py --image_file test.jpg
こちらのサイトを参考にさせて頂きました。
使用する画像です。
どうなるか楽しみです。
結果は以下の通り。
picket fence, paling (score = 0.11723) cowboy hat, ten-gallon hat (score = 0.04237) Great Dane (score = 0.03622) Border collie (score = 0.02780) Kerry blue terrier (score = 0.02049)
なんだかよくわからない結果になりました。
難しすぎたようです。
ただ、picket fence(棒杭の囲い、杭柵、杭垣)は確かに背景に混ざっています。
確信度はとても低い結果ですが。
その他の物体検出記事はこちらから
それではまた。
トップページへ
この記事へのコメントはありません。