見出し画像

[ラズパイ / 電子工作]AIによる感情認識を使って顔ヨガを試してみた

動機

どうも~、IoT探検家のシンクンです。

皆さん、リモートワークが長期化することで、人との関わりが減り、人間らしさを失っていませんか?

僕の場合、2020年3月からリモートワークになって早1年弱経ちますが、オフィスに出勤していた時と比べ、人との関わりが随分減ってしまいました。

画像7

特に今の仕事はプログラミング作業が中心なので、始業時にオンラインで打ち合わせを15分ほどで終えた後は、終業まで一人で黙々とパソコン作業して1日が終わることもよくあります。(作業で出た質問などはSlackなどのやりとりで完結します。)

画像4

これは今月のある週のスケジュールなのですが、人とお喋りする打ち合わせが合計4Hしか入っていません。更に、ぼっちおじさんの僕の場合、仕事以外で人と話すのもスーパーやカフェでのレジぐらいです😓。こうなると、喜怒哀楽を表現する機会も減ってしまい、人間らしさが失われていっている実感があります。

これを聞くと、今もオフィスで働かれている方は、「人との関わりなく、ストレスが無くていいじゃん!」と思われるかもしれませんが、孤独は死亡リスクを高めるという研究結果(「早期死亡リスクは2倍? 「孤独」をあなどってはいけない」)もあり、そうも言っていられません🧐。

画像2

ここで彼女を作れれば問題は一発で解決するのですが、それもすぐには難しいので🤣、まずは喜怒哀楽を表現する機会を増やしたいと思いました。

そこで僕は、「喜怒哀楽分類機」をラズパイを使って自作し、孤独なリモートワークの日常でも喜怒哀楽を表現する時間を作り、人間らしさを取り戻すことにしました😊。

用意したもの

・ラズパイ本体(Raspberry Pi 4)
・4インチのLCDモニター
・USBカメラ
・ミニスピーカー
・キーボードとマウス
・パソコン
・microSDカード
・HDMIケーブル(microHDMI→HDMI)
・USB-C接続の電源アダプター

自作の流れ

1)ラズパイの初期設定
2)ラズパイのタブレット化
3)ラズパイ(タブレット)にOpenCVをインストール
4)GitHubから学習済みの感情認識モデルをダウンロード
5)  「喜怒哀楽分類機」完成

1)ラズパイの初期設定

まずは、Raspberry Pi(ラズベリー パイ)、略してラズパイという小型コンピュータを用意して、初期設定をします。

詳細は「[普通科高校卒の週末プログラマー]ラズパイの初期設定をしてみた」を御覧ください。

2)ラズパイのタブレット化

次にLCDモニターを別途用意して、組み立ててラズパイのタブレット化します。

詳細は「[普通科高校卒の週末プログラマー]手のひらサイズのタブレットを自作してみた」を御覧ください。

3)ラズパイ(タブレット)にOpenCVをインストール

そして、OpenCVというオープンソースのAIの画像認識ライブラリーをインストールします。

[39歳 / 普通科高校卒]ラズパイにOpenCVをインストールしてみた」を御覧ください。

4)GitHubから感情認識モデルをダウンロード

続いて、感情認識モデルを準備します。

利用するのはインド人のエンジニアの方が、ディープラーニングを使って学習させた感情認識モデル「Emotion-Detection」で、Githubからダウンロードでき、利用できます。

この感情認識モデルは、Kaggleのコンペで使われたデータとディープラーニングの画像認識モデルであるMobileNetsを使って学習されたもので、人の表情を7つの感情(怒っている,苛立っている,恐れている, 楽しんでいる,悲しんでいる,驚いている,普通)に分類できます。

画像6
画像3
画像5

最初に、上の写真のように、GitHubからDownload ZIPでEmotion-Detectionをダウンロードして、ラズパイにフォルダを配置。

workon cv
pip install --upgrade tensorflow
pip install keras

また、感情認識モデル「Emotion-Detection」はKeras(ケラス)をTensorFlow(テンソルフロー)のバックエンドとして使っているので、TensorFlowとKerasを上のコマンドでラズパイのPythonの仮想環境にインストールします。(参照:スタンドアロンKerasとtf.kerasの違いとは?

Kerasとは
Pythonで書かれた,TensorFlowまたはCNTK,Theano上で実行可能な高水準のニューラルネットワークライブラリ

5)  「喜怒哀楽分類機」完成

ここまで出来たら、カメラとスピーカーをラズパイに取り付けて組み立てをおこないます。

画像8
画像9
workon cv
cd /home/pi/Desktop/Emotion-Detection
python test.py

そして、ラズパイのLXTerminalに移動し、workon cvコマンドを入れてPythonの仮想環境を立ち上げて、Emotion-Detectionフォルダに移動してから、test.pyファイルを実行。(上のコマンドはデスクトップにEmotion-Detectionフォルダがおいてある例です。)

画像10

このように、AIの感情認識モデルがカメラで捉えた人の表情を分類してくれます。

画像11
画像12
画像13
画像14
画像15

加えて、より強く感情を表現するために、顔ヨガで有名なムンクポーズ😱もやってみました。(参照:表情も効果も衝撃的!? 間々田佳子式「顔ヨガ V字上げ」でたるみ顔がスッキリ小顔化

顔ヨガとは
顔の表情筋を鍛えること。普段あまり使わない顔全体の筋肉も意識して動かすことで、血行が良くなって、たるみがなくなりハリが出て、くすみやシワの改善につながる。

画像1

こめかみを手のひらで押さえて目を吊り上げたら、頬の筋肉を使って顔を伸ばし、口を「O」の形にします。このまま5秒キープします。手を離しても筋肉が覚えていられるようにキープ。AIは「Surprise」と判定してくれています。

画像16

色々な表情で喜怒哀楽を表現することで、失われて人間らしさが少し取り戻せた気がします。

皆さんも、喜怒哀楽を意識して表現して、人間らしさを取り戻しては如何でしょうか?

ぼっちおじさんの人間を取り戻す旅は続きます😊。

※エラー解消
python test.pyを実行したら以下のようなエラーが出るかもしれません。

'Keras requires TensorFlow 2.2 or higher.'
ImportError: Keras requires TensorFlow 2.2 or higher. Install TensorFlow via `pip install tensorflow`
画像17

このエラーはPythonの仮想環境にインストールされているKerasのバージョンとTensorFlowのバージョンが互いに推奨しているのものとは違うのが原因なので、片方のバージョンを変更する必要があります。

pip uninstall keras
pip install keras==2.3.1

今回はこれを解消するために上のコマンドで、Kerasを一旦アンインストールしてから、バージョン指定してインストールし直しました。

Youtubeで見る


この記事が気に入ったらサポートをしてみませんか?