※当記事はソフトバンクロボティクスのPepperを活用し、自社が独自に実施しているものです。※当記事は2018年7月時点の内容です。現在、トレノケート新宿ラーニングセンターにPepperはありません。テクニカルトレーニング第1部の山下です。Rekognitionで分析してその結果をPepperにしゃべってもらうというデモをしました。新宿ラーニングセンターのPepper弊社新宿ラーニングセンター(20F)には受付にPepperがいます。ちなみに私よりも先輩です。※ソフトバンクロボティクスのPepperを活用し、自社が独自に実施しているものです。Pepperは27種のセンサーを持っていて、非常に多彩なアクションを行うことが出来ます。Pepperに顔を見て分析した結果を話ディープラーニングしてもらうことにしました。Rekognitionをつなげます。Pepperにやってもらったこと※ソフトバンクロボティクスのPepperを活用し、自社が独自に実施しているものです。Pepperに「顔を見て」と言うと追いかけてきて写真を取られます。S3にアップロードされます。Gatewayを経由してレスポンスとして返されます。Scriptによって文章を整形して教えてくれます。「あなたは24歳~32歳の女性でメガネをしていて笑っています。驚いている22%です。「あなたは32歳~38歳の男性でひげをはやしています。怒っている17%です。GatewayとLambdaで実装します。Rekognitionで分析するLambdaのランタイムはPython3系です。テンプレートの生成は「メソッドリクエストのパススルー」を設定。他のContent-Typeは任意で追加。顔分析(detect_faces)のレスポンスFaceDetailsのに画像の中の人数分の結果が配列になって戻されます。falseMouthOpen.Confidence口が空いている可能性98.92902374267578Emotions.Type感情HAPPY,SAD,ANGRYEmotions.Confidence感情の精度98.92902374267578※Emotionsは配列です。※Emotionsの値にはHAPPY,SAD,ANGRY,CONFUSED,DISGUSTED,SURPRISED,CALM,UNKNOWNがあります。続いてPepper側の開発/設定を行います。Pepper側の開発/設定PepperのSDKであるChoregrapheを使いました。ChoregraheにはボックスというPepperを動かすためのコンポーネントが多数あらかじめ用意されています。そのボックスを選んでつなぐことでPepperを簡単に動かすことが出来ます。それでは今回選んでつないだボックスが、それぞれ何をしているかを以下に書きます。Languageまず最初にこのプログラムが実行されたときにPepperが扱う言語を設定します。今回は日本語を扱いたいのでJapaneseにします。Recoへつなぎます。Recoのボックスを使います。今回は「かおをみて」と言うと次の動作に遷移します。区切りで複数の言葉を登録することも出来ます。wordRecognizedから次にボックスへ文字列を渡してつなぎます。今回はこの文字列の再利用はしませんが、複数のWordListに対して聞き取った言葉の分岐を行うなどSwitchCaseと組み合わせて使用することが出来ます。Trackerのボックスへつなぎます。Trackerを使います。Trackerが実行されるとPepperが両手をふりあげて顔を追いかけてきます。ModeをHeadにすると頭だけを動かしますが、今回はおおげさに動かしたかったのでMoveにしました。Efectは右腕左腕のどちらかでも両腕でも選択することが出来ます。これも派手にしたかったので両腕にしました。顔が見つかったとPepperが判断すると、TargetReachedのイベントが発生します。Pictureにつなぎます。Pictureボックスを利用します。image.jpgというファイル名で保存されます。Imageボックスへつなぎます。このへんの設定はこちらのPepperで画像を撮影してタブレットに画像表示を参考にさせていただきました。ボックスはダブルクリックするとスクリプトエディタが起動してPythonコードを直接編集できます。先ほどの参考サイトの記載どおりに、コードを編集します。onLoadメソッドでALFrameManagerオブジェクトを生成します。ここまで追加onInput_onStartメソッドで先ほど生成したALFrameManagerオブジェクトのgetBehaviorPathメソッドを使って、写真の保存先のディレクトリを再定義します。Imageボックスで表示する画像のディレクトリパスです。Rekognitionで解析するためのAPIへ画像を渡すためにPythonスクリプトのボックスへもつないでいます。PythonスクリプトがS3へアップロードする画像の参照先も同じディレクトリです。Imageボックスを使います。表示する写真はimage.jpgです。Imageでは拡張子までを指定、とややくせがあるので注意です。Imageで表示する写真はhtmlディレクトリが必要なのでプロジェクト直下に作成しておく必要があります。Imageだと、ファイルパスが同じ場合に、前の画像がキャッシュされてしまうので、それを回避するために、先述のサイトを参考にさせていただき、下記コードを追加しています。Rekognitionで解析した結果を受け取ります。呼び出すコードは下記のようにしました。)requestsモジュールはPepperに標準でインストールされているので、インストール不要です。Scriptでは結果として次のボックスの渡したい文字列を、self.text()メソッドにセットします。Textボックスへ渡します。Textボックスを使ってPepperに話してもらいます。Textは直前のボックスから渡されたテキストをそのまま話します。話すスピードや抑揚の調整ができます。Imageのボックスへつなぎます。Pictureで新たな写真が撮影されるまで表示されています。Imageに戻るようにフローをつないでいます。デフォルトイメージはあらかじめプロジェクトに追加しておいたロゴ画像が表示されるようにしました。Scriptではコードを書いてAPIを実行して結果を日本語文字列になるように調整していますが、それ以外のPepperそのものの動作については、ほとんどGUIだけで実装することが出来ました。各ボックスも必要に応じてPythonコードを修正出来るので、どうしても変更したい場合にこまわりが効きます。RekognitionはSDKを使えばたったの1行で実装することができました。このように先端技術と呼ばれるものが標準化されて非常に扱いやすいサービスとして提供されています。AWSもPepperも使いたいサービスを選択して組み合わせるという特徴が似ています。インフラを考えるのではなく、サービスを組み合わせて設計するといった機会が今後ますます増えていくのではと感じた次第でございます。※ソフトバンクロボティクスのPepperを活用し、自社が独自に実施しているものです。Services学びの小冊子」をプレゼント中!AWSの導入や資格取得準備、AWSへの移行をお考えの方、是非ご活用ください。カスタマイズスペシャリスト他。クラウドプラクティショナー」がある。Summitにパネラーとして参加。Architectとして表彰されている。現在はAWS認定インストラクターとして活躍。各コミュニティの運営にも個人的に関わり、勉強会にてスピーカーや参加をしている。記事グループからチームへ。2008-2018この内容で送信します。よろしいですか?キャンセル。