このプログラムについて
このプログラムは,人の表情を分析して,笑顔の程度(0%~100%)を数値的にフィードバックします。また,それに合わせて,メーターやアニメのキャラクタが動きます。アニメキャラの方は,顔の位置や向き,口の開閉,まばたき,手の上げ下げにも反応します(ミラーリングを行います)。今年度のゼミの卒論研究(飯田奈緒子・角田真依・三谷恵「笑顔の表出における表情フィードバックの効果」,昨年の中国四国心理学会の学部生研究発表会で発表)のために作ったプログラムの改変バージョンです。
下のYouTubeの動画は,v1センサで開発していたときのものを学科のブログ用にアップしたものですが,こんな感じのプログラムと理解してください(センサがv2にバージョンアップして検出精度や反応はずっと改善されました)。
私が現在主に行っている研究では,NUI(natural user interface)と呼ばれるセンサを使って,いろいろな障害をもった方たちの認知機能を評価したり,成長を促したり,成長の様子を可視化したりすることができないかと試みています。その中でもっとも期待しているセンサが,非接触型のNUIであるMicrosoft社のKinectのようなボディセンサです。
Kinectは同社のゲーム機であるXbox用に開発されたものですが,離れた場所から人の身体の姿勢をとらえたり,顔の動きを数値化することができます。身体と顔は,重い知的障害がある方でも,いろいろな表現が自然に現れるところなので,これを使ったゲームができないかと,昨年からゼミ生たちと研究を進めています。
このプログラムは,表情を使って遊べるゲームを作れないか,発達障害などが原因で表情の表出が上手でない子どもたちが表情の表出訓練ができるようなプログラムが作れないか,というテーマでゼミ生たちと議論しながら,結果としてできた作品(のようなもの)です。
ベースにある考えは「笑顔に笑顔で応えたら,もっと笑顔になれるはず」というもので,私の研究室ではそれを検討するためのいろいろな実験研究を始めています。研究の成果は別なところで発表させてもらうこととして,ここでは,学生たちと(ほとんどノリで ^^;)作ったプログラムを公開します。Kinectのv2センサが必要なので,どれだけの方に遊んでいただけるかはわかりませんが,大学の先生が買ったけど使ってないKinect2が研究室に転がっているなんていう(よくある光景だ!)人がいたら,おもしろいのでぜひ遊んでみてください(「ついにとんでもないものを作ってしまいましたね~」とか,「これ売れるんちゃうか?」とか,「広コミデビューしませんか!?」とか,さまざまな反応をもらいました。これで遊ぶためだけにKinectを買うようなものではないですが,おもしろいプログラムではあります)。
科学研究費助成事業(基盤研究(C),課題番号25380995「障害児者の認知機能評価と成長の可視化に関するアクションリサーチ」)の補助を受けて開発しました。
動作環境
ハードウェア
- Windows PC(Core i7以上 ←Microsoft Kinect v2の動作要件。私の研究室ではi5のSurface Pro2でも動作しています。反面,今の私のメインマシンであるSurface Pro3のi7では,ドッキングステーションのUSB3ポートでは動かないなど,Kinect2は実際に接続してみないとわからないところが多い。)
- Microsoft Kinect for Windows v2センサ 必須!(Kinect v2は,2015年4月よりWindows版の販売をやめ,XboxOne用にWindows PCアダプターを販売して対応しているようです)
OS
- Windows 8(64ビット)以降(Kinect v2が正常動作するもの)
- Kinect20.dllがインストールされているなど,Kinect SDK 2.0のサンプルプログラムが動く状態になっている必要があります。
使い方
- 最初に重要なこととして,プログラムをフォルダごと解凍して,途中に日本語のフォルダ名を含まないフォルダ階層の場所に置きます。本プログラムは,Kinect SDK 2.0(software development kit, 2014/10/22公開,1409版)で作成していますが,Microsoft社もまだSDKそのものを開発中のところがあって,APIが日本語フォルダ名に対応しておらず,日本語フォルダがあるとプログラムが正常動作しません(これでしばらくハマりました…ゼミ生の卒業がかかっていなかったらあきらめたところだった)。ユーザ名が日本語だとデスクトップ上でも動かないことになるので気をつけてください(C:\Users\日本語名\Desktop\となるため)。
- 解凍したら「smilemeter」というフォルダができますが,その中に2つのプログラムが入っています。2つの違いは,笑顔度のフィードバックを体重計?のようなメーターで行うか(Meter02001w.exe,図1),アニメのキャラクタで行うか(Shizuku02001w.exe,図2)の違いです。このアニメキャラはLive2D社(後述)が提供するサンプルで,スマートホン用のアプリ「しずくの時間」で使われているキャラです。動かせるところ・動かせる量が一番多くて,「Kinectで何ができるか」をわかりやすく伝えるには向いているので,今回のプログラムではこれを使います。
図1 Meter02001w.exeのフィードバックウィンドウ
図2 Shizuku02001w.exeのフィードバックウィンドウ
- プログラムを実行すると,下の図3のように2つのウィンドウが開きます。1つは,「Kinect2 Window」とタイトルバーにある,KinectのRGBカメラの入力画像を表示するウィンドウで,これがプログラム本体のウィンドウです。プログラムを終了するときには(フィードバックウィンドウではなくて)このウィンドウの右上の×印を押してください。もう1つはフィードバックウィンドウ(図3の右下)で,キャラクタなどのフィードバック要素が描かれています(このキャラはゼミの実験研究用のもの)。通常はこれを画面に最大化するなどして手前に出しておきます。
図3 プログラムの起動画面
- Kinect2は6人まで同時に検出できるのですが,複数の人がセンサの前にいるときはもっともセンサに近い人の顔に対してフィードバックを行うようにプログラムしています(図3では,赤枠で示された私の顔がフィードバック対象になっています)。ただし,遠くにいる人であっても,センサに向かってピースサイン(チョキ)を2秒出してもらうと,その人をフィードバック対象としてロックします(そのとき,アニメキャラであれば頬が赤くなります)。もう一度ピースを送るか,その人がセンサの外に出ると,ロックは解除されます。
- メーター(Meter02001w.exe)は笑顔度だけをフィードバックしますが,アニメキャラ(Shizuku02001w.exe)の方は検出された人について以下の特徴もとらえて変化します(図4)。
- 顔の空間位置(x, y, z)を検出して,その方に目や顔を向けたり,近づくと頬を赤らめたりします。
- 顔の向き(yaw, pitch, roll)を検出して,同じように頷いたり,首を傾げたりします。
- 口の動きを検出して,口を開けたり閉じたりします。
- まばたきを検出して,同じようにまばたきをします。
- 身体(胴)の向き(今回はyawのみ)を検出して,同じように向きを変えます。
- 左右の手の位置を検出して,手をあげると同じように手を上げます(単なるスイッチ)。
- そして(もちろん)笑顔を検出すると,笑顔になります(笑顔度が高いと目がキラキラします)。
図4 アニメキャラの変化
- アニメキャラの動きは鏡に近いのですが,実際にやってみると単に鏡のようには見えず,まるで生きているように見えます。また,自分の笑顔に対して,即座に満面の笑顔で応えてくれるとちょっと不思議な感覚になります(何人の男子学生がこの2次元キャラにオチたことか…冗談です ^^;)。
制限事項等
- 作者(吉田)は,このプログラムの動作を一切保証するものではありません。また,このプログラムを動作させたことによる一切の損失・損害に責任を持ちません。ご自身の責任のもとでお使いいただくようお願いします。
- このプログラムは,非営利目的であれば研究用途を含み自由にお使いいただいて構いません(2018/5/6)。
その他
- Kinectは,最初に人のボディ(身体)を検出してから,顔の処理を行う仕組みになっていますので(というか,そのようにプログラムしなければならない),少なくとも上半身がセンサのエリアに入っていないと顔の検出ができないことがあります。また,複数の人の身体が重なっていてもうまく検出できないことがあります。赤外線を使って人を検出しているので,写真の顔などにも反応しません。
- Shizuku02001w.exeで用いたアニメキャラクタ「しずく」は(株)Live2D(←外部リンク)の著作物であり,同社の許可を得て本プログラム内で使用しています。また,Meter02001w.exeで用いられているメーターはゼミ生の湯浅のぞみさんが描いてくれました(図3のキャラも湯浅さんの作品です)。ここに記して感謝いたします。
ダウンロード
プログラムは,smilemeterという名前のフォルダごとzip形式で圧縮されて1つのファイルになっています。ダウンロードした後に,必ずフォルダごとすべてのファイルを解凍して,それを途中に日本語フォルダ名を一切含まないディスク上の場所に置いてください。
- 笑顔メーター(smilemeter)のダウンロード…smilemeter.zip