Upload
others
View
6
Download
0
Embed Size (px)
Citation preview
1
ロボットのための表情認識機能に関する研究
東北学院大学
機械知能工学科 1141221
林 裕登
2
目次
1. 背景・・・・・・・・・・・・・・・・p3
2. 研究目的・・・・・・・・・・・・・・p3
3. 実験・・・・・・・・・・・・・・・・p4~16
3.1 実験の流れ
3.2 予備実験
3.3 領域指定
3.4 「笑顔」識別
3.5 「驚き」識別
3.5.1 環境設定
3.5.2 色ヒストグラム
3.5.3 相関関数
3.5.4 「驚き」識別の様子
3.6 音声出力設定と識別精度の実験
4. 実験結果・・・・・・・・・・・・・・・p16
5. まとめ・・・・・・・・・・・・・・・・p16
6. 今後の課題・・・・・・・・・・・・・・p17
7. 参考文献・・・・・・・・・・・・・・・p17
3
1.背景
将来、ロボットと人間が共存していく社会の実現が期待されている。ロボットと人間が
共存していくためには、ロボットは人間の感情を理解し、様々な環境に適応できることが
理想である。しかし、ロボットが人間の感情を理解していくことは困難であり、今も、人
間とロボットとの会話に関する研究が進められている。我々が感情を表現する手段として、
主に「声」、「表情」、「動作」の3つが挙げられる。その中でも表情は、相手の気持ちを理
解するための重要な役割を果たすと考える。そこで、本研究では感情は表情に表れると仮
定し、表情認識を有するロボットの構築を目指す。
2.研究目的
本実験では、画像処理ライブラリ OpenCV ソフトと Web カメラを用いて特徴量の抽出
をし、表情の識別を行う。識別対象となる表情は簡単のため「無表情」、「笑顔」、「驚き」
の 3 つとした。表情の識別は個人差が大きいことから、個人用に特化した識別を扱う。
さらに、ロボットが表情を識別した際、ユーザーに声をかけてくれるシステムの構築を
行う。本実験の目的として、表情の情報からロボットが自発的な行動をとれるようになる
ことで、構築を目指すシステムによりロボットからの話題提供などが可能となり、コミュ
ニケーション能力の向上が期待できる。
4
3.実験
3.1 実験の流れ
本実験では、PC に Web カメラを繋いだ状態で表情の識別を行う。さらにロボットを PC
に繋ぎ、表情が識別できた際に、ユーザーに向けての音声出力を行う。しかし、今回の実
験では PC とロボットの互換性の問題により、音声出力までのシステムを構築する。
表情の識別は、カメラで捕えた画像から顔領域を抽出する。続いて、口や目などの各部
位の抽出を行う。これらの抽出には、OpenCV に実装されている特徴分類器を利用した。
特徴分類器とは、顔や眼など特定の物体を識別するものである。識別された領域は短形を
囲んで表示される。識別は 1 フレームごとに行い、1 フレームの取得時間は 0.4 秒である。
5
3.2 予備実験
はじめに、OpenCV の理解を深めていくために、顔領域の識別と口領域の識別を行った。
実験の様子を図 2、図 3 に示す。識別は特徴分類器を用いて行う。図 1 のような白黒の短形
パターンと対象画像を照らし合わせて、一致するかしないかの判定で識別をする。[1]を参
考。
問題点として、特徴分類器を使用しただけでは誤識別が目立った。図 3 の識別の様子で
は口領域の識別ができず、肘の部分が誤識別されてしまった。
図 2 顔識別
図 3 口識別 図 4 誤識別
図 1 特徴分類器パターン識別
6
3.3 領域指定
誤識別を避けるために領域指定を行った。領域指定とは、顔領域の座標を指定すること
で、識別される範囲が定められ、誤識別を少なくすることが期待できる。顔領域の座標は
図 4 のように示される。ここで、顔領域の横幅を width、縦幅を height とし、(x,y)座標
は基準点となる。さらに、口領域(図 5)や目領域(図 6)の範囲を指定し、「無表情」、「笑
顔」、「驚き」の表情の識別を行う。
図 4 顔領域
,
,
width
height
7
1/3
, 1/2
図 5 口領域
1/2
,
図 6 目領域
, 2/3
, 1/2
8
3.4 「笑顔」識別
笑顔の特徴として、口が開き口角が上がっている状態を指す。識別方法は口領域の特徴
を抽出し、図 5 のように領域を指定する。図 7 は笑顔識別の様子である。笑顔識別は、口
領域と顔領域の横幅の比の値を使用する。口角が上がっているときの状態のデータを 100
個取得し、平均の値を求めた。その値から 0.35 以上を「笑顔」、0.34 以下を「無表情」と
設定した。
図 7 「笑顔」識別
9
3.5 「驚き」識別
驚きの特徴として、目が見開いている状態を指す。「驚き」識別は目領域を抽出し、図 6
のように領域指定を行う。「笑顔」識別と同様に、目領域と顔領域の縦幅の比の値を求めた。
しかし、自分自身の無表情時の縦幅の割合と、目を見開いたときの縦幅の割合に大きな差
が出ないことを確認した。被験者で実験してみた結果、目領域の縦幅の割合に大きな差が
見られた。原因として、目が細く特徴が抽出しにくいことが考えられる。
そこで別な識別方法として色ヒストグラム使用した。具体的には、無表情の目の状態と
目を見開いた状態の白目領域を抽出し、ヒストグラムを比較することで「驚き」の表情を
識別した。
図 8 無表情 図 9 驚き
10
3.5.1 環境設定
色ヒストグラムは照明などの影響で大きく左右されてしまうため、取得が困難である。
そこで、一定の明るさを保つために環境設定を行った。研究室のブラインドを下げ、照明
を点けた状態で、背景は白色の環境とした。壁からカメラの距離は、1 メートル前後で調整
して表情の識別を行う。
1メートル前後
図 10 環境設定
11
3.5.2 色ヒストグラム
カメラの画像データはピクセルの集まりで構成されている。色ヒストグラムは、カラー
画像をグレースケール画像に変換し、画像の明るい部分、暗い部分の明るさの点がどれく
らいあるのかをわかりやすく示した表である。識別される色は黒(照度 0)から白(照度
255)となる。図 11、図 12 に実際の画像とグレースケールに変換された画像を示す。図 13
はグレースケール画像から取得されたヒストグラムである。横軸の一番左は真っ黒(照度 0)、
右に行くにつれて明るい色となり、一番右は真っ白(照度 255)となる。縦軸は明るさの割
合を示している。
図 11 実際の画像 図 12 グレースケール画像
12
図 13 ヒストグラム
暗い 明るい
明るさの割合
13
3.5.3 相関関数
無表情の目の状態と目を見開いた状態のヒストグラムを取得する。それぞれのヒストグ
ラムを比較することで「驚き」識別を行う。ヒストグラムの比較には相関関数を用いる。
相関関数とは、2 つのデータの比較対象に関連性がある場合、相関があるという。相関関数
は 1 から-1 の値をとり、類似度を表す。1 の値の時は、強い関連性があることを示す。-1
の値の時は、関連性がないことを示している。0 の場合は 2 つのデータに関連性がない。相
関関数の式は以下の様に表される。ビン:N は、一つ一つの棒グラフを示す。[2]参考。
「驚き」識別の流れとして、無表情の目の状態のヒストグラムを一定時間取得する。こ
こで取得されたヒストグラムは基準ヒストグラムとなる。続いて、基準ヒストグラムの取
得が終えたら、実際の目の状態のヒストグラム取得となる。それぞれのヒストグラムの形
に注目し、基準ヒストグラムと実際のヒストグラムが一致している場合は 1 の値に近づく。
つまり、無表情の目の状態ということになる。また、半分一致の場合は 0.5、不完全な一致
の場合は-1.0 の値となる。ここで、不完全な一致の目の状態は見開いている状態であるため、
「驚き」の識別となる。
相関(method=CV_COMP_CORREL)
( , )=∑ ∙
∑ ∙∑
1/
:比較される 1 番目のヒストグラム
:比較される 2 番目のヒストグラム
:k番目のヒストグラム
, : , の平均値
N :ヒストグラム内のビン数
14
3.5.4 「驚き」識別の様子
図 14.15 は「驚き」識別の実験の様子である。図 14 は「無表情」の状態で、一定時間
基準ヒストグラムの取得を行う。基準ヒストグラムの取得が終えたら、実際のヒストグラ
ムの取得に移行する。図 14 では、基準ヒストグラム取得後も「無表情」の状態をしている。
それぞれのヒストグラムを比較してみると、一致していると言える。こちらは、相関関数
の値で示すと 1 の値となる。続いて、図 15 は「驚き」の状態である。基準ヒストグラムと
比較してみると、明るい色の割合が増えていることがわかる。これは、「無表情」の目の状
態に比べ、「驚き」は目が見開くため、白目領域の変化を抽出できたと言える。また、相関
関数の値で示すと-1 の値となり、「驚き」識別をすることができた。
基準ヒストグラム(無表情)
実際のヒストグラム(無表情)
図 14 「無表情」ヒストグラム
15
基準ヒストグラム(無表情)
実際のヒストグラム(驚き)
図 15 「驚き」ヒストグラム
16
3.5 音声出力設定と識別精度の実験
識別された各表情に応じて、出力する音声を以下の様に設定した。
「笑顔」を識別したとき→「いい笑顔ですね」
「驚き」を識別したとき→「どうしたの?」とする。
最後に、提案システムの識別精度を上げる(誤識別を防ぐため)ため、表情の識別を 10
フレーム単位で行う。10 フレーム中、特定の表情が 7 フレーム以上取得できた場合にその
表情を識別結果とする。
識別精度の実験として、カメラの前で「笑顔」と「驚き」の各表情を一定時間呈示して、
その表情に適した音声出力が返ってきた場合に 1 回とし、各表情 10 回ずつ識別を行った。
表情が識別されたら、一定時間「無表情」を呈示し、その後に表情を一定時間呈示する流
れとなる。
4.実験結果
各表情の識別結果、「笑顔」は 10/10 回、「驚き」は 7/10 回、という結果となった。「笑顔」
は誤識別なく、精度よく識別できたと言える。「驚き」は誤識別が多かった。その原因とし
て、色ヒストグラムの取得に時間を要してしまうことが考えられる。そのため、「無表情」
の呈示時間にも「驚き」の音声出力がされてしまった。
5.まとめ
本実験では、口領域と目領域の特徴を抽出し、「笑顔」と「驚き」の 2 表情の識別を行っ
た。「笑顔」識別は、口領域の特徴が捉えやすいことから、識別精度が高いと言える。「驚
き」識別は、目領域の特徴抽出は個人差が目立ち、目が細いと特徴抽出が困難であった。
そこで、別の手法を提案し、色ヒストグラムを使用したことによって「驚き」を識別する
ことができた。
17
6.今後の課題
今後の課題として、識別精度の実験結果から、色ヒストグラムの計算を高速化していく
こと、基準ヒストグラムを安定して、取得できる工夫をしていくことで識別精度の向上が
期待できると考える。また、より多くの表情を識別していくこと、実際にヒューマノイド
ロボットを使用しての実験を予定している。これらの課題を解決していくことで、人間と
ロボットの自然な対話が実現できるのではないかと考える。
7. 参考文献
[1] 実践 OpenCV2.4 映像処理&解析
著名:永田雅人
[2] 詳解 OpenCV-コンピュータビジョンライブラリを使った画像処理・認識
著名:Gary Bradski、Adrian Kaehler