今回は、Ubuntu18.04上で、Tensorflowのimage_retrainingという画像認識を使ってみます。
GitHub - tensorflow/hub at r0.7
まず、こちらのサイトにブラウザでアクセスして、「Clone or download」ボタンから必要なツールをダウンロードして、~/AI に置きます。
ダウンロードしたzipファイルを展開して、ディレクトリの名前をhubにしておきます。
image_retrainingを実行するには、tensorflow_hub が必要になりますので、端末で下のコマンドを実行してインストールします。
pip3 install tensorflow_hub
image_retrainingのディレクトリに移動します。
cd ~/AI/hub/examples/image_retraining
下のコマンドで、訓練します。 flowers_photosには5種類の花の画像ファイルがディレクトリごとに分かれて入っているだけです。
python3 retrain.py --image_dir=${HOME}/AI/image_classifier/data/flowers/flower_photos
4000ステップまで進んで、訓練完了しました。TensorflowはCPU版ですが、約10分で完了しました。
/tmp ディレクトリに幾つかのファイルが生成されています。
何かで使うかもしれませんので、~/AI/image_retraining/flowers ディレクトリを作成して、そこにコピーしておきました。
cd ~/AI/tensorflow
label_image ツールで認識処理を実行します。
bazel-bin/tensorflow/examples/label_image/label_image \ --image=${HOME}/AI/imagenet/sunflower.jpg \ --input_layer=Placeholder \ --output_layer=final_result \ --graph=/tmp/output_graph.pb \ --labels=/tmp/output_labels.txt
指定した画像は、こちらのディレクトリに置いたsunflowerの画像です。
sunflower 81% と表示されていますので、認識成功です。 ちなみに、Tensorflowはランダム要素がありますので、また訓練をやり直して認識させてみると、認識率が変化したりします。
今回はここまでです。