- Googleは様々なプログラムを安価で提供してくれていますが、今年はさらにRaspberry Pi向けツールに力を入れてくれるらしいです。GoogleがRaspberry Pi用のAIツール/ライブラリの提供を充実 ここではGoogle Cloud Vision APIを使って画像認識するロボットを作ってみます。
- Vision APIを使う方法はREST方式とCloud SDKを使う方法がありますが、ここではより簡単に始められるREST方式を説明します。
事前の準備
- BPK-08 AquesTalk Piで喋らせてみるを完了させておいてください。日本語音声合成ツール「AquesTalkPi」をインストールし、スピーカーの設定を終えてください。
- BPK-ex2 : 声を録音して、そのまま再生を参照し、マイクの設定を終えておいてください。
- BPK-13 : Juliusで音声認識してみるを完了させてください。音声認識ツール「Julius」をインストールしておいてください。
- BPK-ex5 : Alexaに指示を出すロボットを参照し、英語音声合成ツール「flite」をインストールしておいてください。
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)してください。
1 2 3 4 |
$ cd $ cd bezelie/pi $ sudo git pull |
APIキーの埋め込み
- 先ほど取得したAPIキーをサンプルプログラムに書き込みます。
- サンプルプログラムをテキストエディターで開いてください。
1 2 |
$ sudo nano sampleVision1.py |
- 16行目あたりにある「API_KEY = ” 」のクォーテーションの間にAPIキーをペーストしてください。
- エディターを保存終了してください。
サンプルプログラムの実行
- ディスプレイは必須ではありませんが、カメラの視界に対象物をしっかり入れるためには、あったほうがよいです。
1 2 |
$ python sampleVision1.py |
- 「これなあに?」「これなんだ?」「これは何?」などと話しかけると、ロボットが「どれどれ」と言うので、カメラの前に対象物を掲げてください。
- 最大3つの解答候補が英語で発声および画面に文字表示されます。
- Ctrl+Cで終了させることができます。
応用
- 公式ドキュメント(日本語)
- このサンプルでは画像に映っている物のカテゴリー名を表示する「LABEL_DETECTION」という機能を使っていますが、42行目あたりでコメントアウトしてある「TEXT_DETECTION」「LOGO_DETECTION」も、ほぼおなじプログラムで使うことができます。「TEXT_DETECTION」は文字認識(OCR)、「LOGO_DETECTION」はロゴ認識です。
- このサンプルでは認識結果を3つ言わせていますが、1つでいいやという場合は72行目あたりにある「for i in range(3):」の数字を1にしてください。