ユーザの表情に基づく 映像コンテンツへのタギング 神戸大学 大学院工学研究科 宮原 正典,青木 政樹,滝口 哲也,有木 康雄 それでは,「ユーザの表情に基づく映像コンテンツへのタギング」というタイトルで,神戸大学の宮原が発表致します.
研究の背景 テレビのディジタル放送開始→多チャンネル化 YouTube,ニコニコ動画など動画共有サイトの発達 ユーザが視聴可能な映像コンテンツが増大 見たい番組を簡単に探すのが困難に まず,研究の背景について説明します. 近年,テレビでは,デジタル放送が開始され,多チャンネル化が進んでいます. また,インターネットでは,YouTubeやニコニコ動画などに代表される,動画共有サイトが発達してきています. これらにより,ユーザが視聴可能な映像コンテンツが増大し,見たい番組を簡単に探すのが困難になりつつあります. そこで,番組を自動的に推薦してくれるシステムの必要性が高まっています. そしてそのためには,映像コンテンツへ自動的にタギングを行う手法が必要となります. 番組自動推薦システムの必要性 ⇒ 映像コンテンツへの自動タギング手法
番組自動推薦システム (コンテンツ解析) (ユーザ解析) 映像シーンの動き リモコン操作履歴[1] シーンの色変化 好きなキーワード[2] 顔・物体認識 (ユーザ解析) リモコン操作履歴[1] 好きなキーワード[2] 顔表情[3] (番組推薦) タグつきコンテンツ データベース ここで,番組自動推薦システムについて,従来研究されてきたものをまとめた全体図を示します. まず,映像コンテンツに自動的にタギングをする手法としては,大きく分けて2つあり, 1つは,映像コンテンツそのものを解析する「コンテンツ解析」で, もう1つは映像コンテンツを視聴しているユーザの振る舞いを解析する「ユーザ解析」です. コンテンツ解析には,映像シーンの動きや,シーンの色変化を解析したり,その映像に映っている顔や,一般物体の認識を行い,コンテンツにタギングを行うものがあります. ユーザ解析には,ユーザのリモコンの操作履歴を解析したり,好きなキーワードを登録してもらったり,映像コンテンツを見せたときのユーザの表情を認識したりして,タギングを行うものがあります. これらの情報から,映像コンテンツにタギングを行い,タグがつけられた映像コンテンツはデータベースに蓄積されます. このデータを様々な人から収集することにより,例えば,自分がまだ見てないコンテンツで,多くの人が興味を持ったコンテンツを推薦してもらうことが可能となります. 我々は,この中で,コンテンツを視聴するユーザの顔表情を解析することで映像コンテンツにタギングを行う手法に着目しました. [1]2001,Taka [2]2001,Masumitsu [3]2006,Yamamoto
従来手法の課題と提案 従来の顔表情に基づくタギング手法[2006,Yamamoto] 関心の「有無」の2クラスのみを判定 顔の傾きやオクルージョンに弱い ⇒関心「有」をさらに,正の関心,負の関心に詳細化 ⇒特徴抽出にEBGM[1997,Wiskott]の導入 従来の,顔表情に基づくタギング手法の課題と,それに対する提案について述べます. まず,従来の手法では,ユーザが映像コンテンツに関心があるかないかの2クラスのみを判定していました. しかし,関心があるといっても,楽しい感情をもって映像コンテンツをみているときと,嫌な感情をもって映像コンテンツをみているときがあると考えられます. そのため,関心ありを,さらに正の関心,負の関心に詳細化して判定することを提案します. そして,詳細な表情認識を行うために,特徴抽出にElastic Bunch Graph Matchingを導入しました. また,コンテンツを視聴するユーザは,姿勢や顔の傾きが変化したり,視聴中に食事などをしたりして,顔の一部が隠れるといったことが起こりますが, そのような状況で表情認識を行うと,認識精度が大きく低下するという問題があります. このようなノイズが大きいデータがデーターベースに蓄積されると,番組自動推薦システム全体の精度が低下するので, このようなデータを学習によって,自動的にリジェクトする機能を提案します. ⇒学習によって,自動的にリジェクトする機能
想定環境 ユーザはPCのディスプレイに映るコンテンツを1人で視聴 ウェブカメラはユーザを撮影 PCはコンテンツの再生とユーザ顔動画の解析処理 User Webcam Display PC それでは,我々の研究での想定環境について説明します. 想定環境を上から見下ろした図はこのようになっています. まず,ユーザはPCのディスプレイに映るコンテンツを1人で視聴します. そして,ウェブカメラはユーザの真正面に置かれ,ユーザの顔を撮影します. PCはコンテンツの再生とユーザ顔動画の解析処理を行います. 想定環境上面図
提案システムの概要 特徴抽出 顔表情認識 ・Neutral ・Positive ・Negative ・Rejective Tag AdaBoost EBGM SVM 個人認識 次に,提案システムの概要について説明します. まず,先程の想定環境で撮影された,ユーザの顔動画について, Haar-like特徴を用いたAdaBoostで正確な顔領域を抽出します. そして,抽出された顔領域に対して,Elastic Bunch Graph Matching という手法を用いて顔特徴点抽出と個人認識を同時に行います. 個人が特定されると,あらかじめ登録されている,その人専用の無表情画像と個人用顔表情識別器が選択されます. 最後に,無表情画像と現在の顔表情画像の顔特徴点座標差分を特徴量として,SVMで顔表情認識を行います. 認識結果は,映像コンテンツと同期して,顔表情タグとして保存されます. それでは,各手法について詳細な説明をしていきます. User’s profile 無表情画像 個人用顔表情識別器
AdaBoostによる顔領域抽出 Haar-like特徴を用いたAdaBoostにより,正確な顔領域の抽出を行う.[2001,Viola] 顔領域を切り出すことで,ユーザとカメラとの距離を正規化できる EBGMにおいて,探索範囲を限定することで,計算時間を短縮 利点 まず,AdaBoostによる顔領域抽出の説明を行います. これはHaar-like特徴を用いたAdaBoostにより,正確な顔領域の抽出を行うものであります. これを行う利点は,まず1つは,顔領域を切り出すことで,ユーザとカメラの距離を正規化できるという点です. もう1つは,次のステップの処理である,Elastic Bunch Graph Matchingにおいて,探索範囲を限定することで,計算時間を短縮できるという点です.
EBGMによる特徴点抽出・個人認識 画像を,様々な周波数と方向を持ったGaborフィルターで畳み込み,それらの応答の集合をJetとする. [1997,Wiskott] Jet Bunch Graph Gabor Wavelet 画像を,様々な周波数と方向を持ったGaborフィルターで畳み込み,それらの応答の集合をJetとする. 顔特徴点の各点のJetを組み合わせたものをFace Graphと呼び,あらかじめ複数人からFace Graphを生成して束ねたものをBunch Graphと呼ぶ. Bunch Graphと入力画像のFace Graphの類似度を計算し,特徴点の探索を行い,特徴点抽出と個人認識を行う. 次に,Elastic Bunch Graph Matchingによる顔特徴点抽出と個人認識について説明します. まず,画像を,様々な周波数と方向を持ったGaborフィルターで畳み込み,それらの応答の集合をJetとします. 顔特徴点の各点のJetを組み合わせたものをFace Graphと呼び,あらかじめ複数人からFace Graphを生成して束ねたものをBunch Graphと呼びます. Bunch Graphと入力画像のFace Graphの類似度を計算し,特徴点の探索を行い,特徴点抽出と個人認識を行います.
SVMによる顔表情認識 EBGMの個人認識により,個人を特定し,その人の無表情画像と個人顔表情識別器を選択する. Multiclass SVM(RBFカーネル)により顔表情認識を行う. 次に,Support Vector Machinesによる顔表情認識について説明します. 先程のElastic Bunch Graph Matchingによって,個人を特定した後,あらかじめ登録してある,その人専用の無表情画像と個人顔表情識別器を選択します. Elastic Bunch Graph Matchingによって抽出された34点の顔特徴点座標について,無表情のときとの差分を取った68次元のベクトルを特徴量とします. RBFカーネルを用いたマルチクラスSVMによって顔表情認識を行います.このときの顔表情のクラス分類定義についてですが,
顔表情のクラス分類(タグ)定義 クラス名 内容 Neutral (Neu) 無表情 Positive (Pos) 喜び,笑い,快,など Negative (Neg) 怒り,嫌悪,不快,など Rejective (Rej) 画面に顔を向けていない, 顔の一部が隠れている, 顔が傾いている,など 従来では,関心のあるなしといった2クラスに分類していましたが, 関心あり,の中にも,ポジティブな関心と,ネガティブな関心があるのでは,と考えました. 例えば,ユーザが不快なものを凝視しているとき,そのものには関心があるが,もう二度と見たくないと思うことが考えられます. 番組推薦を行う上ではこのような例は区別しておきたいので,この表のように,Neutral, Positive, Negativeという3つの顔表情クラスを用意しました. また,顔表情ではありませんが,ユーザが画面に顔を向けていない,顔の一部が隠れている,顔が傾いている,などといった状況を表す,Rejectiveというクラスも用意しました.これらの場合は,高い精度で顔表情認識を行うことが困難なので,リジェクトすることにしました.
実験条件 被験者2名(A,B)に1回約17分間の映像コンテンツを4回分視聴させる. その際,被験者を撮影した動画と,再生されている映像コンテンツを同期させながら,15fpsで記録. その後,以下のようなインターフェースを用いて,顔表情タギングを手動で行った. それでは,評価実験の説明に入ります. まず,実験条件について説明します. 被験者2名(被験者A,被験者B)に1回約17分間の映像コンテンツを4回分視聴させました. その際,被験者を撮影した顔動画と,再生されている映像コンテンツを同期させながら,毎秒15フレームで記録しました. その後,以下のようなインターフェースを用いて,被験者自身に,顔表情タギングを手動で行わせました. これは,自分自身の顔動画を見てもらって,positiveだと判断したら,左の,negativeだと判断したら,真ん中の,rejectiveだと判断したら右のボタンを押してもらうという作業です.何も押されていないフレームはneutralとタギングされます.
顔動画の手動タギング結果 Neu Pos Neg Rej 合計 被験者A 49865 7665 3719 1466 62715 被験者B 表:各表情クラスのタギングフレーム数 Neu Pos Neg Rej 合計 被験者A 49865 7665 3719 1466 62715 被験者B 56531 2347 3105 775 62758 手動で顔動画にタギングを行った結果はこの表のようになっていて, 例えば,被験者Aの場合ですと,全6万フレーム中,約5万フレームがneutralと判定され,約8000フレームがpositive,4000フレームがnegative,1500フレームがrejectiveと判定されました. この手動タギング結果つきの顔動画を 実験動画とよび,以降の評価実験で用います. この手動タギング結果つきの顔動画を 実験動画と呼び,以降の評価実験で用いる.
予備実験1 AdaBoostによる顔領域抽出の精度について実験を行った 特徴抽出 顔表情認識 ・Neutral ・Positive ・Negative ・Rejective Tag AdaBoost EBGM SVM 個人認識 提案システムでは,AdaBoostによる顔領域抽出を行い,そこで抽出された顔領域に対して,EBGMによる個人認識で,個人を特定し,特定された個人に対して,顔表情認識を行う,という3段の構成になっているので,最終的な認識率は,各段階での精度の積となります. そのため,顔表情認識の評価を行う前に,予備実験として,顔領域抽出の精度と,個人認識の精度を確認することにしました. まずは,予備実験1として,先程の実験動画のrejective以外の全フレームに対して,顔領域抽出を行いました. User’s profile 無表情画像 個人用顔表情識別器
予備実験1-AdaBoostによる顔領域抽出 誤検出率については,以下の表の通り. 被験者A Neu Pos Neg 誤検出数 20 3 1 全フレーム数 49865 7665 3719 誤検出率(%) 0.0401 0.0391 0.0269 被験者Bは笑うと,顔を大きく上に向ける癖があり,顔以外の部分が顔と誤検出される傾向があった. 被験者B Neu Pos Neg 誤検出数 132 106 9 全フレーム数 56531 2347 3105 誤検出率(%) 0.2335 4.5164 0.2899 実験結果として,まず,未検出率は,被験者A,Bともに0%でした. 誤検出率は,この表のようになり,ほぼ0%ですが,被験者BのPositiveのときだけ若干高くなりました. これは,被験者Bは笑うと,顔を大きく上に向ける癖があり,顔以外の部分が顔と誤検出される傾向があったためと考えられます.
予備実験2 EBGMによる個人認識の精度について実験を行った 特徴抽出 顔表情認識 ・Neutral ・Positive ・Negative ・Rejective Tag AdaBoost EBGM SVM 個人認識 次に,実験動画において,AdaBoostで検出された全ての顔画像について,Elastic Bunch Graph Matchingによる個人認識の精度を評価しました. User’s profile 無表情画像 個人用顔表情識別器
予備実験2-EBGMによる個人認識 個人認識の精度に問題がないことを確認. 被験者A Neu Pos Neg 誤認識数 2 全フレーム数 49845 7662 3718 誤認識率(%) 0.0040 0.0000 個人認識の精度に問題がないことを確認. EBGMで個人認識をし,個人用の識別器を選択をすることは十分可能といえる. 被験者B Neu Pos Neg 誤認識数 2 20 全フレーム数 56399 2241 3096 誤認識率(%) 0.0035 0.8925 0.0000 被験者A,Bの二人を判別した結果,誤認識率はほぼ0%となり,個人認識の精度に問題がないことを確認しました. すなわち,EBGMで個人認識をし,個人用の識別器を選択することは十分可能といえます.
評価実験 SVMによる顔表情認識の精度について実験を行った 特徴抽出 顔表情認識 ・Neutral ・Positive ・Negative ・Rejective Tag AdaBoost EBGM SVM 個人認識 最後に,SVMによる顔表情認識の精度について評価実験を行いました. User’s profile 無表情画像 個人用顔表情識別器
評価実験-SVMによる顔表情認識 各被験者について,4本中3本の動画から学習を行い,個人顔表情識別器を生成する.残りの1本についてテストを行う.(クロスバリデーション) リジェクト機能 顔領域抽出で顔領域が発見できなかったフレームは無条件で,Rejectiveに分類 顔領域抽出に成功したフレームは,そのまま顔特徴点抽出を行い,学習・認識の対象とする まず,評価実験の内容について,説明を行います. 各被験者について,4本の動画のうち,3本で学習を行い,個人顔表情識別器を生成しました.残り1本分をテストデータにし,1フレームごとに,全てのフレームについて顔表情認識を行いました. また,顔の傾きやオクルージョンが発生している場合に,表情のタグをつけずに,rejectiveというタグをつける機能についてですが, まず,先程の顔領域抽出で,顔領域が発見できなかったフレームは無条件でrejectiveに分類します. 一方,顔領域抽出に成功したフレームは,そのまま顔特徴点抽出を行い,学習・認識の対象とします. というのは,例えば,このように,顔の前に手を持ってきて,鼻や口が隠された場合,顔特徴点抽出には失敗するのですが,正常な顔構造と明らかに違うので,このようなものはSVMで学習すれば識別できるだろうという見込みがあったからです.
実験結果-SVMによる表情認識 各表情クラス別の認識結果は,この表のようになり,適合率と再現率はおおよそ8割~9割となりました. NegativeがPositiveよりも認識率が低いのは,Negativeな表情は顔の動きが少なく,特徴が捕らえにくいからだと考えられます. また,Rejectiveは学習データが少なく,多種多様なデータが混じっているので認識率は低いですが, パラメータを調整することで,再現率をあげる,すなわち安全側に作用するようすることができます.
考察 平均再現率は87.6%,平均適合率は88.0%と良好な結果が得られた. 被験者がPositiveやNegativeと答えていても,表情表出の度合いが小さい場合,システムがNeutralと誤認識するパターンが多い. 1つのフレームに表情のタグは1つしかないと仮定しているので,中間的な表情をしている場合,誤認識が多発する. 以上の実験結果の考察を行います. 平均再現率は87.6%,平均適合率は88.0%と良好な結果が得られました. 誤認識の原因としては,被験者がPositiveやNegativeと答えていても,表情表出の度合いが小さい場合,システムがNeutralと誤認識するパターンが多かったです. また,本研究では,1つのフレームに表情のクラスは1つしかないと仮定しているので,中間的な表情をしている場合,誤認識が多発しました.
デモ映像 それでは,顔領域抽出と,個人認識と,顔表情認識結果を統合したデモ映像をごらんください. この領域に,顔領域抽出と顔特徴点抽出結果が,この領域に個人認識結果が,ここに,顔表情認識結果が表示されます. 現在の所は,Pentium4 3GHzのマシンで,処理時間が1フレームあたり約1秒かかるため,リアルタイム処理を行うには複数台のマシンで並列処理を行う必要があります.
まとめと今後の方向 EBGMを特徴点抽出に用いることで,Neutral, Positive, Negative, Rejectiveという4つのクラスに拡張しても高い再現率,適合率が得られた 事前学習の手間をできるだけ減らすようにする 複数人同時視聴に対応 顔方向・視線方向の追跡 表情以外のマルチモーダル情報も使い,番組推薦を行うシステムの構築 まず,まとめですが, EBGMを特徴点抽出に用いることで,Neutral, Positive, Negative, Rejectiveという4つのクラスに拡張しても高い再現率,適合率が得られました. 今後の方向性としては, 現在,このシステムをはじめて使う人は,コンテンツを数十分みてそれに自分でタグをつけるという,事前学習が必要なので, それを数枚の顔画像から学習できるようにするなどして,手間をできるだけ減らすということを考えています. また,現在はコンテンツをひとりで視聴している前提ですが,複数人同時視聴に対応することも考えています. そして複数人で同時に視聴するとひとりで視聴するのとは違って,お互いに顔を向けてしゃべったり,映像に対して意見を言ったりすることが考えられるので,顔方向や視線方向の追跡もする必要があると考えられます. そして,最終的には,表情以外の音声などのマルチモーダル情報も使って,番組推薦を行うシステムを構築することなども検討中です.
実験結果-Confusion matrix 被験者A Neu Pos Neg Rej 合計 再現率(%) 48275 443 525 622 49865 96.81 743 6907 1 14 7665 90.11 356 107 3250 6 3719 87.39 135 5 1326 1466 90.45 49509 7457 3781 1968 62715 91.19 適合率(%) 97.51 92.62 85.96 67.38 85.87
実験結果-Confusion matrix 被験者B Neu Pos Neg Rej 合計 再現率(%) 56068 138 264 61 56531 99.18 231 2076 8 32 2347 88.45 641 24 2402 38 3105 77.36 203 21 551 775 71.10 57143 2238 2695 682 62758 84.02 適合率(%) 98.12 92.76 89.13 80.79 90.20