顔表情からの関心度推定に基づく 映像コンテンツへのタギング それでは,「顔表情からの関心度推定に基づく映像コンテンツへのタギング」という(ご紹介頂きました)タイトルで,神戸大学の宮原が発表致します. 宮原 正典,青木 政樹,滝口 哲也,有木 康雄 (神戸大学)
研究の背景 テレビのディジタル放送開始→多チャンネル化 YouTube,ニコニコ動画など動画共有サイトの発達 ユーザが視聴可能な映像コンテンツが増大 見たい番組を簡単に探すのが困難に まず,研究の背景について説明します. 近年,テレビでは,デジタル放送が開始され,多チャンネル化が進んでいます. また,インターネットでは,YouTubeやニコニコ動画などに代表される,動画共有サイトが発達してきています. これらにより,ユーザが視聴可能な映像コンテンツが増大し,見たい番組を簡単に探すのが困難になりつつあります. そこで,番組を自動的に推薦してくれるシステムの必要性が高まっています. そしてそのためには,映像コンテンツへ自動的にタギングを行う手法が必要となります. 番組自動推薦システムの必要性 ⇒ 映像コンテンツへの自動タギング手法
タギング 女の子 走っている 男の子 緑の芝生 懐かしい ここで,タギング,の定義についてですが,例えばこのような画像があったときに,「女の子と男の子」が映っているだとか,「緑の芝生」が映っているだとか,「子供たちが走っている」といったタグを付けること意味します.これによって,「子供たちが走り回っている映像が見たい」といった要求に答えることができるようになります.さらに,このような,画像に映っている人物や,それらの行動だけでなく,この画像を見た人が「楽しい」気分になったといった情報もタギングすることで,もっと漠然と「楽しい気分にしてくれる映像が見たい」という検索もできるようになり,番組自動推薦に役立ちます.
番組自動推薦システム (コンテンツ解析) (ユーザ解析) 映像シーンの動き リモコン操作履歴[1] シーンの色変化 好きなキーワード[2] 顔・物体認識 (ユーザ解析) リモコン操作履歴[1] 好きなキーワード[2] 顔表情[3] (番組推薦) 協調フィルタリング[4] ここで,番組自動推薦システムについて,従来研究されてきたものをまとめた全体図を示します. まず,映像コンテンツに自動的にタギングをする手法としては,大きく分けて2つあり,1つは,映像コンテンツそのものを解析する「コンテンツ解析」で,もう1つは映像コンテンツを視聴しているユーザの振る舞いを解析する「ユーザ解析」です. コンテンツ解析には,映像シーンの動きや,シーンの色変化を解析したり,その映像に映っている顔や,一般物体の認識を行い,コンテンツにタギングを行うものがあります.ユーザ解析には,ユーザのリモコンの操作履歴を解析したり,好きなキーワードを登録してもらったり,映像コンテンツを見せたときのユーザの表情を認識したりして,タギングを行うものがあります.これらの情報から,タグがつけられた映像コンテンツは,データベースに蓄積されます. このデータを様々な人から収集することにより,自分と同じような好みを持った人が関心のある映像は,自分も関心があるだろうという協調フィルタリングという手法などを用いて,番組推薦を行うことが可能となります. これが今までに研究されてきた番組自動推薦システムの全体像ですが,各手法の課題を考えてみると,まず,シーンの動きや色変化では,大まかな情報しかわからず,かといって一般物体の完全な認識は,現状では困難であるとされています.また,ユーザ解析では,リモコンの操作履歴,例えば早送りをしたシーンは関心度が低いとする,といった手法では,ユーザの明示的な行動からしか情報が得られず,好きなキーワードを登録してもらう手法は,関心のある事が変化していく場合,再入力の手間がかかります. そこで,我々は,この中で,ユーザの負担が比較的少ない,コンテンツを視聴するユーザの顔表情を解析することで映像コンテンツにタギングを行う手法に着目しました. タグつきコンテンツ データベース [1]2001,Taka [2]2001,Masumitsu [3]2006,Yamamoto [4]1994, Resnick
従来手法の課題と提案 従来の顔表情に基づくタギング手法[2006,Yamamoto] 関心の「有無」の2クラスのみを判定 顔特徴点は口の周りが中心,シンプルな抽出法 顔の傾きやオクルージョンによるノイズ ⇒Neutral, Positive, Negativeの3クラスを判定 ⇒眉の周りにも重要な情報 ⇒EBGMによる詳細な顔特徴点抽出 従来の,顔表情に基づくタギング手法の課題と,それに対する提案について述べます. まず,従来の手法では,ユーザが映像コンテンツに関心があるかないかの2クラスのみを判定していました. しかし,ユーザが映像コンテンツを視聴しているときは,コンテンツに特に関心がないときと,楽しい感情をもって映像コンテンツを見ているときと,逆に嫌な感情をもって映像コンテンツをみているときがあると考えられます.特に,万人に不快な感情を与えないように編集されているテレビ番組とは違って,個人が自由に投稿できるインターネットの動画共有サイトでは,ある人にとっては面白くても,別の人には不快に感じるものも多くあります. そのため,NeutralとPositiveとNegativeの3つのクラスを判定することを提案します. また,従来の手法では,顔特徴点は口の周りが中心で,笑顔などの検出には十分なのですが,不快や嫌悪の表情を検出する際には,眉の動きが重要であるとされています.そのためこれらの特徴点も用いることにしました.その際,高精度で顔特徴点を検出でき,明るさの変化にも比較的ロバストなElastic Bunch Graph Matchingという手法を用いました.またEBGMは個人認識も同じ枠組みでできるというメリットがあります. さらに,コンテンツを視聴するユーザは,姿勢や顔の傾きが変化したり,視聴中に食事などをしたりして,顔の一部が隠れるといったことが起こりますが,そのような状況で表情認識を行うと,認識精度が大きく低下するという問題があります. このようなノイズが大きいデータがデーターベースに蓄積されると,番組自動推薦システム全体の精度が低下するので,このようなデータを自動的にリジェクトすることで,全体の精度を向上させることを狙いました. ⇒推定しにくい表情をリジェクトする
想定環境 ユーザは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による顔領域抽出の説明を行います. これはViola, Jonesらによって提案された,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点の顔特徴点座標について,無表情のときとの差分を取って,x,y座標があるので,68次元のベクトルを特徴量とします. RBFカーネルを用いたマルチクラスSVMによって関心クラス推定を行います.このときの関心クラス分類定義についてですが,
関心のクラス分類(タグ)定義 クラス名 内容 Neutral (Neu) 無表情 Positive (Pos) 喜び,笑い,快,など Negative (Neg) 怒り,嫌悪,不快,など Rejective (Rej) 画面に顔を向けていない, 顔の一部が隠れている, 顔が傾いている,など 先程も述べた通り,従来では,関心のあるなしといった2クラスに分類していましたが, これをNeutral, Positive, Negativeという3つのクラスに拡張しました. Neutralは無表情を表し,そのコンテンツに特に何も感じていない状態です. Positiveは,喜び,笑い,快などを表し,そのコンテンツに満足している状態です. Negativeは,怒り,嫌悪,不快などを表し,そのコンテンツに不満を感じている状態です. このような分類を行う理由は番組推薦を行う上で最も重要となるのは,ユーザがそのコンテンツをもっと見たいか,もう見たくないか,という情報であると考えたからです. また,これら3つのクラスとは別に,ユーザが画面に顔を向けていない,顔の一部が隠れている,顔が傾いている,などといった状況を表す,Rejectiveというクラスも用意しました.これらの場合は,高い精度で関心クラス推定を行うことが困難なので,番組推薦の際には棄却することにします.
リジェクト機能 顔領域抽出で顔領域が発見できなかったフレームは無条件で,Rejectiveに分類 顔領域抽出に成功したフレームは,そのまま顔特徴点抽出を行い,学習・認識の対象とする Neutral Positive 関心クラス推定 また,このリジェクト機能の詳細についてですが, まず,先程の顔領域抽出で,顔領域が発見できなかったフレームは無条件でrejectiveに分類します. 一方,顔領域抽出に成功したフレームは,そのまま顔特徴点抽出を行い,学習・認識の対象とします. 例えば,このように,顔の前に手を持ってきて,鼻や口が隠された場合,顔特徴点抽出にはこのように失敗しますが,正常な顔構造からは逸脱しているので,そのままSVMに学習させることで,認識することができます. Negative Yes 顔領域抽出 Rejective No
実験条件 被験者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 個人認識の精度に問題がないことを確認. 被験者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本あたり約1020秒*15fps=15300フレーム)の動画から学習を行い,関心クラス識別器を生成する.残りの1本について関心クラス推定を行う.(クロスバリデーション) 推定結果と,被験者による手動タギングとの結果を比較し,各クラスごとの適合率(precision)と再現率(recall)を求める. まず,評価実験の内容について,説明を行います. 各被験者について,4本の動画のうち,3本で学習を行い,関心クラス識別器を生成しました.残り1本分をテストデータにし,1フレームごとに,全てのフレームについて関心クラスを行いました. 推定結果と被験者による手動タギングの結果を比較し,各クラスごとに,適合率と再現率を求めました.
実験結果-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