目次
TensorFlowで物体検出APIがリリースされたので早速試してみた
こんにちは。
AI coordinatorの清水秀樹です。
googleからの新しい物体検出APIがリリースされました。
筆者はもともと物体検出には興味があったので、これは早速試してみる価値があると思いチャレンジしてみたのですが、結局色々ハマって実際に動かせるようになるまで時間がかかったのでその内容の紹介です。
同じ悩みを持っている方の参考になれば幸いです。
開発環境
iMac (27-inch, Late 2012)
プロセッサ 2.9 GHz intel Core i5
macOS Sierra バージョン 10.12.4
Anaconda3-4.2.0-MacOSX-x86_64
python 3.5.2
tensorflow 1.1.0
オープンソースのダウンロード
GitHubからダウンロードしましょう。
該当のソースコードはjupyter notebookで動かせるようにリリースされています。
目的のソースコードは、
models-master > object_detection
内にある、
object_detection_tutorial.ipynb
です。
チュートリアル付きなので英語が得意な人には親切な作りになっています。
また、これからDeep Learningの勉強をするなら、こちらで紹介する書籍も参考になりますので一読してみることをオススメします。
いきなり意味不明なエラーに悩まされる
毎回思うのですが、だいたいこの手のオープンソースは初っ端はうまく動きません。
英語のマニュアルを隅から隅まで読めば問題ないのでしょうが、いつも意味不明なエラーで出鼻を挫かれます。
何とかならんもんですかね。
さて愚痴はこれぐらいにして、今回いきなり出た意味不明はエラーは以下のようなエラーでした。
ImportError: cannot import name 'string_int_label_map_pb2'
見たこともないエラーが吐き出され色々ググってみると、以下のコマンドを”models-master”ディレクトリで打ち込む必要があるようなことが記載されていました。
protoc object_detection/protos/*.proto --python_out=.
まったく意味がわからないコマンドですが、打ち込んでから実行してみると、このエラーは見事に解消しました。
新たなエラーが発生
続いて新たなエラーです。
いい加減にしてくれという感じで、以下のエラーが発生しました。
TypeError: a bytes-like object is required, not 'str'
今までの経験からこの手のTyperErrorってエラーは、バージョンによるエラーがではないかとすぐに勘が働き、tensorflowを1.0.0から1.1.0にバージョンアップしてから実行すると、見事に解消されました。
ようやく動いたけど・・・
実行結果が以下の写真。
クラスの文字が小さすぎる。
っていうか読めない。
直し方もよく分かりませんでした。
誰かおしえてください。
その他の物体検出記事はこちらから
それではまた。
こんにちわ。
クラスの文字サイズについては私も悩んで少しだけ調べたりしてみだのですが、
APIということでその辺りの拡張性は(多分)用意されてないみたいですね。
ただ、APIというもののコードはいじれるようになっているので見てみたのですが、”utils”フォルダ内にある”visalization.utils.py”を少々書き換えることで、文字を大きくすることができました。
おせっかいだったかもしれませんが、お伝えしておきます。
ヤギさん
情報連携ありがとうございます。
メチャクチャ嬉しいです。
筆者はまだまだ素人なので、少しつまづくと先に進まなくなることが多いので、情報提供してくださると本当に助かります。
早速試して見たいと思います。