https://github.com/tensorflow/tensorflow/tree/master/tensorflow/examples/label_image
今回は、こちらのサイトを参考にして、Tensorflowのlabel_imageツールを使ってみます。
cd ~/AI/tensorflow
inception v3 のFrozenGraphDefをダウンロードして、所定のディレクトリに配置します。
curl -L "https://storage.googleapis.com/download.tensorflow.org/models/inception_v3_2016_08_28_frozen.pb.tar.gz" | \ tar -C tensorflow/examples/label_image/data -xz
imagenet_slim_labels.txt と inception_v3_2016_08_28_frozen.pb がダウンロードされました。 グレース・ホッパーさんの画像は元からあったものです。 グレース・ホッパーさんは、アメリカ海軍の軍人かつ計算機科学者で、プログラミング言語COBOLを開発した人でもあるようです。
label_imageツールを実行して、グレース・ホッパーさんの画像を認識してみます。
bazel-bin/tensorflow/examples/label_image/label_image
military uniform (653): 0.834306
と表示されています。
imagenet_slim_labels.txt には、そもそもpersonやhumanは含まれていませんので、認識成功と言えると思います。
自分の好きな画像を認識させるには、下のようにします。 画像ファイルには、pngファイルを指定することもできるようです。
bazel-bin/tensorflow/examples/label_image/label_image \ --image=${HOME}/AI/imagenet/sunflower.jpg
認識結果は、daisyと出ました。花であることは、あっています。
ちなみに、このlabel_imageツールには、C++での実装とpythonでの実装があって、ソースを見比べると面白いかもしれません。
今回はここまでです。