Raspberry Pi と Arduino でつくったロボットに顔識別と感情認識が出来るようにしてみました。
RaspberryPi-Robot face recognition - YouTube
「感動詞」に対して、顔識別と感情認識をします。挨拶してみます。
「こんばんは。」
「感動詞」をオウム返しするのと同時にカメラのシャッターを切ります。
ロボット側から見るとこんな感じです。pon_dad
の確率20%、感情はかなり引きつった笑顔ですがHappy
76%と認識されています。
私のハンドルネーム「ポンダッド」を呼び、こちらの(引きつった)笑顔に答えます。
仕組み
ロボットはOpenCVを利用して顔認識をします。
切り取った画像を元に顔識別しますが、これはFACE++のAPIを利用して私である事を識別します。
顔認識は3名、「私」と「サミュエル・L・ジャクソン(のフィギュア)」と「ジョン・トラボルタ(のフィギュア)」を登録してあります。トラボルタの顔で認識して見ると、
こんな風にtravolta
49%と出ます。
感情認識はindicoのAPIを利用しています。ここではニュートラル27%と認識されました。
ご参考
過去、RaspberryPiロボット作りをまとめてきたので、ご参考までリンクを貼っておきます。
音声認識・発話
形態素解析
ロボット作り
顔認識と機械学習API
- Raspberry Pi のカメラモジュールとOpen CV3で顔認識する
- Raspberry Pi のカメラモジュールとFACE++で顔識別する
- Raspberry Pi のカメラモジュールとindicoで感情認識する
Gist
汚いコードでお恥ずかしいのですが、サンプルとしてGistを貼っておきます。
まとめ
簡単なオウム返しと合わせて、こちらの顔判断して名前を呼んだり、表情を読み取って話しかけたりといった事が出来る様になりました。
子供向けに何か出来ないかと思って作り始めたのですが、もう少しコンパクトにして外見を可愛くすれば我が家の娘(双子・5歳)も遊んでくれるかな。などと思います。
あと、どうでも良い話なんですが、Macの写真アプリでは双子を大体半分位間違えるんですよね。
娘達の写真がこの5年間で15,000枚位溜まっているので、機械学習に掛ければ上手く判別出来るのだろうか…などど思う今日この頃です。ではまた。