じぶんでつくったプログラムでロボットやパソコンをそうさしよう! (にんちサービスをつかったプログラムのさくせい)

#このページをよむまえに

このページでは，mBlockというプログラムをつくるソフトウェアをしようします。じぜんに[このページ](https://qiita.com/kenhigashi/items/ad86e4fc0a01106a754d)をよんで，mBlockのせっていをじぜんにすませておいてください。
また，がぞうをにんしきするプログラムをさくせいするので，パソコンにカメラがあることもかくにんしてください。

# 認知(にんち)とは？

そもそも，認知とはどういういみでしょうか？「認知」にもいろいろないみがありますが，わたしたちのみのまわりにあるじょうほうにきづき，そのじょうほうのいみをりかいすることです。たとえば，こうていでサッカーをするとき，どれがサッカーボールかりかいすることも認知のれいだとおもいます。

にんげんであればかんたんにできる認知というさぎょうですが，これまでのコンピュータにとってはむずかしいさぎょうでした。ただ，さいきんのけんきゅうせいかのおかげで，ようやくコンピュータでもかんたんに「認知」することができるようになりました。このページでは，Microsoft Cognitive ServiceがもとになっているmBlockの認知サービスをつかって，にんげんがおこなっている認知というさぎょうを，コンピュータにめいれいしてみようとおもいます。

# mBlockを起動する
デスクトップにあるパンダのアイコンをダブルクリックするか，
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492296/96da807f-2ab5-3a73-003f-e1db32ca0138.png)

[スタート]ボタンをクリックし，パンダのアイコンをクリックしてください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492296/ec3a8635-f203-cf7d-990d-ea9f71613081.png)

[スプライト]タブをクリックし，「拡張(かくちょう)」ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492296/256e5770-03b6-d798-2d3a-210f5ba57ed9.png)

認知サービスの[+追加(ついか)]をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492296/e544ad17-b65d-b7aa-27f8-cb89fe03bc47.png)

AIというブロックパレットがひょうじされます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492296/f4a4fd16-cbcc-357f-cbb8-0d2781224103.png)

#認知サービスのプログラムをつくってみる

はじめに，プログラムのじっこうけっかをおおきくひょうじするために，パンダのしたにあるボタンでレイアウトをへんこうし，パンダがひょうじされるスペースをひろげてみましょう。

つぎに，プログラムをはじめる「きっかけ」をつくるひつようがあります。この「きっかけ」にあたるものが，ブロックパレットの[イベント]です。こんかいは，[イベント]のなかから[(はたマーク)が押(お)されたとき]をスクリプトエリアにドラッグ＆ドロップします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492296/f6445766-0d6e-2258-abbc-843a56880c70.png)

ブロックパレットの[AI]をクリックします。[年齢(ねんれい)を(1)秒後に認識する]というブロックをスクリプトエリアにドラッグ＆ドロップし，さきほどドラッグ＆ドロップした「(はたマーク)が押されたとき」のブロックとつなげます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492296/56d71d28-9a1c-f43f-60bb-f660bec72c21.png)

つぎに，[年齢認識の結果(ねんれいにんしきのけっか)]にあるチェックボックスをクリックします。パンダのいるがめん(ステージ)に，年齢認識の結果(ねんれいにんしきのけっか)というこうもくがひょうじされたとおもいます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492296/22095533-d9e7-e3da-b406-a3628491dd79.png)

パンダのしたにある，みどりのはたをクリックしてみましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492296/08139f61-4bd6-6fe0-bf58-336a031562e2.png)

すると，パソコンのカメラが起動し，じぶんのかおが[認識画面(にんしきがめん)]のなかにひょうじされます。1びょうカウントのあとに，ぱんだのみぎうえに，年齢認識の結果がひょうじされます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492296/11175d75-5612-5e93-a96e-08bc0bf1d31a.png)

さて，じぶんのじっさいのねんれいと，パソコンが認知したねんれいと，どのていどちがいがあったでしょうか？

# パソコンにたいするめいれいを認知けっかでへんこうする

こんどは，ひょうじょうがかわるとパソコンの認知けっかもかえるプログラムをつくってみましょう。
はじめに，ブロックパレットの[イベント]から，[(はたマーク)が押されたとき]をスクリプトエリアにドラッグ＆ドロップします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492296/2325a563-fa6d-32bb-150a-7429073cc567.png)

つぎに，ブリックパレットの[AI]から，[感情(かんじょう)を(3)秒後(びょうご)に認識(にんしき)する]をドラッグ＆ドロップします。さきほどドラッグ＆ドロップした，[(はたマーク)が押されたとき]のブロックとつなげます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492296/5d652214-8c66-46fa-e537-55f7b91cb747.png)

つぎに，ブロックパレットの[制御(せいぎょ)]から，[もし()なら　でなければ]というブロックをドラッグ＆ドロップします。さきほどドラッグ＆ドロップした，[感情(かんじょう)を(3)秒後(びょうご)に認識(にんしき)する]とつなげます。このブロックが，認知けっかをもとに，パソコンでじっこうするめいれいをかえます。プログラミングのようごでは，「条件分岐(じょうけんぶんき)」ともいいます。認知けっかという条件によって，パソコンでじっこうするしょりが分岐(わかれる)といういみです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492296/f50f80d7-876e-a4b0-38be-c0f86eb33bba.png)

かおのひょうじょうを条件分岐の「条件」とします。ブロックパレット[AI]の[感情(かんじょう)が(喜び: よろこび)]を，さきほどの条件分岐ブロックの中にくみこみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492296/3b8663c0-424f-6d07-6263-27329a34fa22.png)

つぎに，ブロックパレットの[見た目(みため)]から，[(こんにちは!)と言(い)う]というブロックを，条件分岐ブロックのあいだに，それぞれドラッグ＆ドロップします。そのあとに，１つめのブロックのことばを「なにかいいことあったの？」にへんこうします。そして，2つめのブロックのことばを「どうしたの？」にへんこうします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492296/cadca1eb-1dc8-2c51-d300-b81ac4272d25.png)

みどりのはたをおすと，プログラムがじっこうできます。うれしそうなかおでカメラにうつると，パンダは「なにかいいことあったの？」ときいてきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492296/a269b059-55a4-4a44-35b2-ea9dbc73d5aa.png)

もういちど，みどりのはたをおしてみて，こんどはふつうのかおでカメラにうつりましょう。パンダは「どうしたの？」ときいてきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492296/02d720c5-2ebe-f057-b99f-d8bf66e15aa1.png)

このように，認知したけっかをもとに，めいれいするないようをくべつすることは，プログラムのとくいなてんのひとつです。たのしみながら，プログラムのとくちょうもりかいしましょう。

今回はmBlockを使ったプログラムの例を紹介しました。他方(たほう)，mBotで障害物(しょうがいぶつ)を回避(かいひ)するプログラムの作り方については，[この記事](https://qiita.com/kenhigashi/items/459c858d9a177dc70515)を参照してください。

# 参考資料(さんこうしりょう)
[Data science education with mBlock](https://www.mblock.cc/en-us/blog/mblock/data-science-education/)
「OCR (Optical character recognition): We integrated Microsoft Cognitive Services extensions allows you to convert voice into text that can be edited and recognize images as well. ([Learn more about Cognitive Services extension](https://www.mblock.cc/doc/en/use-extensions/cognize.html)>>)」

[mBlock: Cognitive Services](https://www.mblock.cc/doc/en/use-extensions/cognize.html)