カメラで画像認識してみる

  • Googleは様々なプログラムを安価で提供してくれていますが、今年はさらにRaspberry Pi向けツールに力を入れてくれるらしいです。GoogleがRaspberry Pi用のAIツール/ライブラリの提供を充実 ここではGoogle Cloud Vision APIを使って画像認識するロボットを作ってみます。
  • Vision APIを使う方法はREST方式とCloud SDKを使う方法がありますが、ここではより簡単に始められるREST方式を説明します。

事前の準備

Google Developers Consoleでの設定

  • googleのアカウントを持っていないひとは作ってください。Google アカウントの作成
  • Google Developers Consoleにログインしてください。
  • ここでプロジェクトを作成し、課金を有効化し、「Cloud Vision API」を有効化し、APIキーを生成します。
  • 日本語でとても分かりやすく説明しているページがありますので、こちらを参考に進めると良いのではないかと思います。syncer.jp : Cloud Vision APIの使い方まとめ
  • ここで作成したAPIキーはこのあと使うのでコピーしておいてください。
  • 登録開始から60日間は3万円まで無料で使えます。

gitレポジトリの更新

  • gitで公開しているbezelieのライブラリですが、ときどき更新してますので、以前クローンしたかたも改めて更新(git pull)してください。

APIキーの埋め込み

  • 先ほど取得したAPIキーをサンプルプログラムに書き込みます。
  • サンプルプログラムをテキストエディターで開いてください。

  • 16行目あたりにある「API_KEY = ” 」のクォーテーションの間にAPIキーをペーストしてください。
  • エディターを保存終了してください。

サンプルプログラムの実行

  • ディスプレイは必須ではありませんが、カメラの視界に対象物をしっかり入れるためには、あったほうがよいです。

  • 「これなあに?」「これなんだ?」「これは何?」などと話しかけると、ロボットが「どれどれ」と言うので、カメラの前に対象物を掲げてください。
  • 最大3つの解答候補が英語で発声および画面に文字表示されます。
  • Ctrl+Cで終了させることができます。

応用

  • 公式ドキュメント(日本語)
  • このサンプルでは画像に映っている物のカテゴリー名を表示する「LABEL_DETECTION」という機能を使っていますが、42行目あたりでコメントアウトしてある「TEXT_DETECTION」「LOGO_DETECTION」も、ほぼおなじプログラムで使うことができます。「TEXT_DETECTION」は文字認識(OCR)、「LOGO_DETECTION」はロゴ認識です。
  • このサンプルでは認識結果を3つ言わせていますが、1つでいいやという場合は72行目あたりにある「for i in range(3):」の数字を1にしてください。