視線検出装置、視線検出方法及びプログラム
【課題】目の隠れや利き目等に左右されない高精度な視線検知を実現する。
【解決手段】顔検出部1100は、画像データから顔を検出する。特徴量抽出部1300は、顔の向きに対応する特徴量を画像データから抽出する。視線信頼度算出部1400は、顔検出部1100により検出された顔に基づいて視線の信頼度を算出する。目選択部1500は、視線の信頼度に応じて目を選択する。目領域特徴量抽出部1600は、選択された目の目領域の特徴量を画像データから抽出する。視線推定部1700は、顔の向きに対応する特徴量と目領域の特徴量とに基づいて視線を推定する。
【解決手段】顔検出部1100は、画像データから顔を検出する。特徴量抽出部1300は、顔の向きに対応する特徴量を画像データから抽出する。視線信頼度算出部1400は、顔検出部1100により検出された顔に基づいて視線の信頼度を算出する。目選択部1500は、視線の信頼度に応じて目を選択する。目領域特徴量抽出部1600は、選択された目の目領域の特徴量を画像データから抽出する。視線推定部1700は、顔の向きに対応する特徴量と目領域の特徴量とに基づいて視線を推定する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、視線を推定するための技術に関するものである。
【背景技術】
【0002】
従来、左右の黒目と目尻とを含む顔画像を用いて人物の視線を判定する技術が知られている(例えば、特許文献1参照)。但し、従来技術においては、図24に示すように、目の向きα1だけを推定するもので、顔の向きβ1は考慮されていない。これに対し、画像データ内の顔から眼等の特徴点を検出し、検出した特徴点間の距離を使用して、目の向きα1と顔の向きβ1との双方から視線方向を推定する技術が知られている(例えば、特許文献2参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2003−256852号公報
【特許文献2】特開2007−265367号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来技術においては、顔が横を向いて片方の目が隠れてしまう、髪の毛により目が隠れてしまう等の事象が発生した場合、視線検出精度の大きな低下を招く可能性がある。また、利き目等の問題があり、例えば所定の方向を注視した場合に、右目は所定の方向を向いているように見えるが、左目は所定の方向を向いていないように見える等の問題がある。
【0005】
そこで、本発明の目的は、目の隠れや利き目等に左右されない高精度な視線検知を実現することにある。
【課題を解決するための手段】
【0006】
本発明の視線検出装置は、画像データから顔を検出する検出手段と、前記検出手段により検出された前記顔の向きに対応する特徴量を前記画像データから抽出する第1の抽出手段と、前記検出手段により検出された前記顔に基づいて視線の信頼度を算出する算出手段と、前記算出手段により算出された視線の信頼度に応じた目を選択する選択手段と、前記選択手段により選択された目領域の特徴量を前記画像データから抽出する第2の抽出手段と、前記顔の向きに対応する特徴量と前記目領域の特徴量とに基づいて視線を推定する推定手段とを有することを特徴とする。
【発明の効果】
【0007】
本発明によれば、目の隠れや利き目等に左右されない高精度な視線検知を実現することが可能となる。
【図面の簡単な説明】
【0008】
【図1】本発明の第1の実施形態に係る視線検出装置の機能的な構成を示す図である。
【図2】本発明の第1の実施形態に係る視線検出装置の視線検出方法を示すフローチャートである。
【図3】顔の中心位置や目や口等の中心位置等を示す図である。
【図4】画像データの正規化処理を説明するための図である。
【図5】顔の向きに対応する特徴量を説明するための図である。
【図6】図2のステップS1009の詳細を示すフローチャートである。
【図7】目付近の画像データから瞳部分の画像データを検出し、瞳部分の画像データの面積を算出する処理を説明するための図である。
【図8】視線信頼度算出部が特徴点の検出位置の空間的な配置に基づいて第1の視線、第2の視線の信頼度を算出する処理を示すフローチャートである。
【図9】目の特徴点位置を示す図である。
【図10】目尻特徴点を検出するテンプレートと、テンプレートと目の画像データとのマッチング結果とを示す図である。
【図11】顔の向きに対応する特徴量を使用して顔の向きを推定し、推定した顔の向きに基づいて視線の信頼度を算出する処理を説明するための図である。
【図12】視線信頼度算出部が顔向き推定結果に基づいて視線の信頼度を設定する処理を示すフローチャートである。
【図13】図2のステップS1010の詳細を示すフローチャートである。
【図14】図2のステップS1011の詳細を示すフローチャートである。
【図15】左目領域の画像データと右目領域の画像データとを切り出す処理を説明するための図である。
【図16】目領域の画像データの正規化処理を説明するための図である。
【図17】目領域の画像データの正規化処理を説明するための図である。
【図18】図2のステップS1012の詳細を示すフローチャートである。
【図19】目の選択結果に基づいた視線特徴量の生成方法を説明するための図である。
【図20】本発明の第2の実施形態に係る視線検出装置の機能的な構成を示す図である。
【図21】本発明の第2の実施形態に係る視線検出装置の視線検出方法を示すフローチャートである。
【図22】図21のステップS3012の詳細を示すフローチャートである。
【図23】ステップS3010、ステップS3011の出力が連続値、つまり、値そのものが方向である場合における視線総合推定値の決定方法を示すフローチャートである。
【図24】従来技術の例を説明するための図である。
【発明を実施するための形態】
【0009】
以下、本発明を適用した好適な実施形態を、添付図面を参照しながら詳細に説明する。
【0010】
先ず、本発明の第1の実施形態について説明する。図1は、本発明の第1の実施形態に係る視線検出装置の機能的な構成を示す図である。なお、図1に示す各機能的な構成は、本実施形態に係る視線検出プログラムがメモリ上にダウンロードされ、これをCPUが実行することにより実現する構成である。
【0011】
図1に示すように、本実施形態に係る視線検出装置は、画像取得部1000、顔検出部1100、正規化画像生成部1200、特徴量抽出部1300、視線信頼度算出部1400、目選択部1500、目領域特徴量抽出部1600及び視線推定部1700で構成されている。画像取得部1000は、画像データを取得する。顔検出部1100は、画像取得部1000で取得された画像データから顔の中心位置を検出する。また、顔検出部1100は、目や口等の顔を構成するパーツの中心位置、目尻や目頭等の更に細かな特徴点や瞳の位置等の器官位置も検出する。正規化画像生成部1200は、顔検出部1100において検出された中心位置や器官位置を使用して、顔の大きさが所定のサイズで、且つ顔の向きが正立するように正規化を行い、複数の異なる解像度の画像データを生成する。特徴量抽出部1300は、正規化画像生成部1200で生成された画像データを使用して顔の向きに対応する特徴量を抽出する。視線信頼度算出部1400は、顔検出部1100で検出された中心位置や器官位置に基づいて、視線の信頼度を算出する。目選択部1500は、視線信頼度算出部1400で算出された視線の信頼度に基づいて、右目、左目、両目の何れかの選択を行う。目領域特徴量抽出部1600は、正規化画像生成部1200で生成された画像データを使用して目領域の特徴量を抽出する。視線推定部1700は、特徴量抽出部1300で抽出された顔の向きに対応する特徴量と、目領域特徴量抽出部1600で抽出された目領域の特徴量とを使用して視線方向の推定を行う。
【0012】
なお、顔検出部1100は、本発明の検出手段の適用例となる構成である。特徴量抽出部1300は、本発明の第1の抽出手段の適用例となる構成である。視線信頼度算出部1400は、本発明の算出手段の適用例となる構成である。目選択部1500は、本発明の選択手段の適用例となる構成である。目領域特徴量抽出部1600は、本発明の第2の抽出手段の適用例となる構成である。視線推定部1700は、本発明の推定手段の適用例となる構成である。
【0013】
図2は、本発明の第1の実施形態に係る視線検出装置の視線検出方法を示すフローチャートである。以下、図2を参照しながら、本実施形態における視線検出方法について説明する。
【0014】
ステップS1000において、画像取得部1000は画像データを取得する。画像データの取得方法としては、例えば、デジタルカメラ等の撮像手段で撮影され、不揮発性メモリ等に記憶された画像データや、ハードディスクドライブに記憶されている画像データを取得する等の様々な方法がある。
【0015】
ステップS1001において、顔検出部1100は、ステップS1000で取得された画像データ内に顔が含まれているか否かを判定する。本実施形態では、人物の顔を前提として説明するが、犬や猫等の動物の顔であってもよい。ここで得られる結果はおおよそ図3の顔の中心位置1032である。なお、顔検出手法については、次の文献等で開示されている。
P. Viola, M. Jones, “Rapid Object Detection using a Boosted Cascade of Simple Features”, in Proc. Of CVPR, vol.1, pp.511-518, December, 2001
【0016】
その他にも、ニューラルネットワークを使用する方法が次の文献等で開示されているが、人物の顔を検出する方法であれば、その手法は特に限定されない。なお、次の文献では、目や口等を検出し、その空間的な配置関係から顔であると判定する顔検出方法も開示されており、顔の中心位置に加えて目や口等の中心位置も得られる場合がある。本実施形態では、本手法を使用する。そのため、ステップS1001での顔検出処理では、顔の中心位置、目や口等の中心位置が得られる。
御手洗祐輔, 森克彦, 真継優和, “選択的モジュール起動を用いたConvolutionalNeuralNetworksによる変動にロバストな 顔検出システム”, FIT (情報科学技術フォーラム), Ll-013, 2003
【0017】
ステップS1002において、顔検出部1200は、顔が検出されたかどうかを判定する。顔が検出されていない場合には、ステップS1000に戻り、別の画像データが取得される。顔が検出された場合には、ステップS1003に進む。
【0018】
ステップS1003において、顔検出部1100は、ステップS1002で検出された顔のうちから1つの顔を選択する。ステップS1004において、顔検出部1100は、ステップS1003で選択された顔の大きさが所定の大きさ以上であるかどうかを判定する。顔が小さい人物に対しては情報量が不足し、視線を高精度に検出できない恐れがある。そのため、大きさが一定以上の顔だけに対して視線検出を実行するようにしている。顔の大きさとは、例えば、図3の左目の中心位置1025と右目の中心位置1031との間の距離、肌色の面積等の顔の大きさを示す尺度であれば何でもよい。本実施形態では、左目の中心位置1025と右目の中心位置1031との間の距離の2倍を顔の大きさとして定義する。左目の中心位置1025と右目の中心位置1031は、例えば、ステップS1001で検出された顔の中心位置より、統計的に左右の目が存在し得る範囲を設定し、その範囲内で予め用意しておいたテンプレート等を使用して探索するようにしてもよい。
【0019】
ステップS1004において、顔の大きさが所定の大きさ以上でないと判定された場合、処理はステップS1005へ進む。ステップS1005において、顔検出部1100は、ステップS1001で検出された顔のうち、選択されていない顔があるかどうかを判定する。全ての顔が選択されている場合には、処理はステップS1000に戻り、画像取得部1000によって別の画像データが取得される。一方、全ての顔が選択されていない場合には、処理はステップS1003に戻り、顔検出部1100は選択していない顔を選択する。
【0020】
一方、ステップS1004において、顔の大きさが所定の大きさ以上であると判定された場合、処理はステップS1006に進む。ステップS1006において、顔検出部1100は、顔の中心位置1032等に加え、目頭1021、1027や目尻1020、1026等の特徴点位置の検出を行う。また、ここでは瞳が存在するかどうかを検出する。これらの位置や瞳が存在するか否かを検出する方法としては、予め用意しておいたテンプレート等を使用する、エッジを走査する等、様々な手法がある。瞳が存在した場合には、顔検出部1100は、図7に示すように、目付近の画像データ701、703から瞳部分の画像データ702、704を検出し、瞳部分の画像データの面積を算出する。
【0021】
ステップS1007において、正規化画像生成部1200は、ステップS1001で検出された左目の中心位置1025、右目の中心位置1031、顔の中心位置1032を用いて、図4に示すように、アフィン変換等を使用して、顔の向きが正立、且つ顔が所定サイズの解像度の異なる画像データを2種類1104、1105生成する。具体的には、図4に示すように、正規化画像生成部1200は、正規化前の画像データ1100の左目の中心位置1025及び右目の中心位置1031から、距離Lと水平方向に対する角度θとを算出する。そして正規化画像生成部1200は、距離Lが所定の距離L´、θ=0となるようにアフィン変換を行う。拡大及び縮小方法は、ニアレストネイバー法やバイリニア法等の様々な方法がある。なお、本実施形態では、画像データの正規化に左目の中心位置1025、右目の中心位置1031、顔の中心位置1032を使用したが、これに限られるわけではない。また、ステップS1007で正規化された2種類の画像データ(以下、正規化画像データと称す)は、顔の向きに対応する特徴量、目領域の特徴量が抽出される際に使用される。さらに、これに加えて照明の影響を軽減させるためにコントラストを補正する処理等の輝度値の変換処理を実施してもよい。
【0022】
解像度の異なる正規化画像データは2種類に限定するのではなく、予め解像度の異なる複数の画像(ピラミッド画像)データを生成しておき、その中から選択するようにしてもよい。このように、予め解像度の異なる複数の画像(ピラミッド画像)データを生成しておくことで、視線検出以外のパターン認識にも活用することができる。さらに、始めに目領域の特徴量の抽出に使用する高解像度画像データを生成後、縮小処理により顔の向きに対応する特徴量の抽出に使用する低解像度画像データを段階的に生成するようにしてもよい。
【0023】
ステップS1008では、顔の向きに対応する特徴量であれば何でもよいが、本実施形態ではエッジ特徴を使用する。またステップS1008においては、特徴量抽出部1300は、ステップS1007で生成された2種類の正規化画像データのうち、解像度の低い正規化画像データ1105を使用して、顔の向きに対応する特徴量を抽出する。本実施形態では、顔の向きに対応する特徴量にはエッジ特徴を使用する。エッジ特徴の抽出には、画像データを構成する画素値の1次微分、2次微分を使用する方法が一般的であるが、本実施形態では1次微分を使用してエッジ特徴を抽出する。図5(a)、図5(c)はX方向の1次微分を使用して抽出されたエッジ特徴のデータ(1次微分エッジ画像データ)、図5(b)、図5(d)はY方向の1次微分を使用して抽出されたエッジ特徴のデータ(1次微分エッジ画像データ)を示している。本実施形態では、顔の輪郭エッジの位置や形状等を捉えるようにしているが、耳、鼻、髪の位置や形状等を使用するようにしてもよい。よって、ステップS1008で生成される特徴量は、X方向の1次微分エッジ画像データとY方向の1次微分エッジ画像データとを構成する画素値そのものを1要素とした特徴ベクトルを領域の特徴量とする。例えば、X方向の1次微分エッジ画像データとY方向の1次微分エッジ画像データとを30×30とした場合には、1800次元の特徴ベクトルが生成される。なお、エッジ以外でも、輝度、色や、次の文献に開示されるような周波数、輝度、これらのヒストグラムを使用するようにしてもよい。
鈴木亜紀子, 滝口哲也, 有木康雄, “PCA相関フィルタによる目領域の探索”, FIT (情報科学技術フォーラム), H-015, 2007
M. Bertozzi, A. Broggi, M. Del Rose, M. Felisa, A. Rakotomamonjy and F. Suard, “A Pedestrian Detector Using Histograms of Oriented Gradients and a Support Vector Machine Classifier”, IEEE Intelligent Transportation Systems Conference, 2007
【0024】
図6は、図2のステップS1009の詳細を示すフローチャートである。ステップS1009では、視線信頼度算出部1400は、ステップS1006での瞳検出結果に基づいて視線の信頼度を算出する。ここでは、信頼度は目の表出の程度等で表され、その値が高いほど視線推定に使用しても問題ないということを示している。
【0025】
図6のステップS1100において、視線信頼度算出部1400は、ステップS1006で算出された瞳部分の画像データの面積において、左瞳の画像データの面積が所定の面積以上であるかどうかを判定する。左瞳の画像データの面積が所定の面積以上である場合、処理はステップS1101に進む。ステップS1101において、視線信頼度算出部1400は、左目が十分に表出しているものとして第1の視線の信頼度を1とする。一方、左瞳の画像データの面積が所定の面積以上でない場合、処理はステップ1102に進む。ステップS1102において、視線信頼度算出部1400は、左目が十分に表出していないものとして第1の視線の信頼度を0とする。ステップS1103において、視線信頼度算出部1400は、ステップS1006で算出された瞳部分の画像データの面積において、右瞳の画像データの面積が所定の面積以上かどうかを判定する。右瞳の画像データの面積が所定の面積以上である場合、処理はステップS1104に進む。ステップS1104において、視線信頼度算出部1400は、右目が十分に表出しているものとして第2の視線の信頼度を1とする。一方、右瞳の画像データの面積が所定の面積以上でない場合、処理はステップS1105に進む。ステップS1105において、視線信頼度算出部1400は、右目が十分に表出していないものとして第2の視線の信頼度を0とする。
【0026】
以上、顔が回転した場合、髪の毛等の隠れによって左右の目が十分に表出しているか否かを瞳の面積に基づく視線の信頼度によって表現している。なお、瞳ではなく、白目部分も含む目領域の面積を使用してもよい。
【0027】
本実施形態では、瞳の面積に対して閾値処理を実施し、その結果に応じて第1の視線、第2の視線の信頼度を0、1としている。しかし、瞳の面積に対して閾値処理を実施しなくとも、瞳の面積そのものを第1の視線、2視線の信頼度として設定するようにしてもよい。この他にも、目尻、目頭、上瞼、下瞼等の特徴点の検出結果に基づいて、第1の視線、第2の視線の信頼度を算出するようにしてもよい。
【0028】
図8は、視線信頼度算出部1400が特徴点の検出位置の空間的な配置に基づいて第1の視線、第2の視線の信頼度を算出する処理を示すフローチャートである。ステップS2200において、視線信頼度算出部1400は、左目の特徴点(目尻、目頭、上瞼、下瞼)検出位置に基づいて、第1の視線の信頼度算出を行う。ここで、目尻特徴点位置と目頭特徴点位置とのY座標はほぼ同じ値になる。また、上瞼特徴点位置と下瞼特徴点位置とのX座標はほぼ同じ値なる。目尻特徴点位置と目頭特徴点位置とのX座標の中点と、上瞼特徴点位置と下瞼特徴点位置との夫々のX座標はほぼ同じ値になる。図8に示す処理において、視線信頼度算出部1400は、このような特徴点位置の空間的な配置関係を使用して視線の信頼度を設定する。即ち、図9に示すように、検出された目尻特徴点位置2024、目頭特徴点位置2025、上瞼特徴点位置2026、下瞼特徴点値が以下の4つの条件を全て満たした場合、視線信頼度算出部1400は、視線の信頼度を1とする。但し、本発明に適用できる条件が以下の4つの条件に限られるわけではない。
条件(1):目尻特徴点のY座標−目頭特徴点のY座標<Th1
条件(2):上瞼特徴点のX座標−下瞼特徴点のX座標<Th2
条件(3)(目尻特徴点のX座標+目頭特徴点のX座標)/2−上瞼特徴点のX座標<Th3
条件(4):目尻特徴点のX座標+目頭特徴点のX座標)/2−下瞼特徴点のX座標<Th4
また、条件(1)〜(4)に対して夫々閾値処理を実施するのではなくて、条件(1)〜(4)の左辺の値そのものを視線の信頼度とするようにしてもよい。この場合には、逆に0に近い程、信頼できる意味を持つようになる。ステップS2201でも同様、視線信頼度算出部1400は、右目の特徴点(目尻、目頭、上瞼、下瞼)位置に基づいて、第2の視線の信頼度の算出を行う。
【0029】
また、目の特徴点検出位置の空間的な配置関係以外にも、特徴点の検出位置そのものの分布等を使用するようにしてもよい。図10は、目尻特徴点を検出するテンプレート2030と、テンプレート2030と目の画像データ2032とのマッチング結果2031とを示している。図10のマッチング結果2031の白色領域は、目の画像データ2032のうちテンプレート2030と一致する可能性の高い領域を示している。そのため、視線信頼度算出部1400は、この白色領域における所定値以上の画素値の分散や尖鋭度等を求め、これらの値に基づいて、視線の信頼度を算出するようにしてもよい。
【0030】
さらに、視線信頼度算出部1400は、ステップS1008で抽出された顔の向きに対応する特徴量を使用して顔の向きを推定し、推定した顔の向きに基づいて視線の信頼度を算出するようにしてもよい。なお、顔の向きを推定するためには顔の向き推定器が必要であるが、本実施形態では、次の文献に開示されるSupport Vector Machine(以下、SVM)を使用する。但し、本発明に適用可能な顔の向き推定器はSVMに限定されるわけではない。
V. Vapnik. “Statistical Learning Theory”, John Wiley & Sons, 1998
例えば図11に示すように、左向き(−60度〜−30度)、正面向き(−30度〜30度)、右向き(30度〜60度)の3つのパターンを分類する識別器を予め用意しておく。具体的には、左向きをポジティブデータ、それ以外をネガティブデータ、正面向きをポジティブデータ、それ以外をネガティブデータ等として3つの識別器を用意しておく。そして、3つの識別器のうち、最も高い値を算出した識別器に対応する顔の向きを人物の顔の向きとして決定する方法である。なお、本実施形態では、顔の向きの分解能を3つとしたが、本発明がその3つに限られるわけではない。また、左向きを−60度〜−30度、正面向きを−30度〜30度、右向きを30度〜60度として定義したが、これに限られるわけではない。
【0031】
図12は、視線信頼度算出部1400が顔向き推定結果に基づいて視線の信頼度を設定する処理を示すフローチャートである。ステップS2300において、視線信頼度算出部1400は、ステップS1008で抽出された顔の向きに対応する特徴量を使用して、顔の向きを推定する。ステップS2301において、視線信頼度算出部1400は、顔の向きが正面向きかどうかを判定する。顔の向きが正面向きである場合、処理はステップS2302へ進む。ステップS2302において、視線信頼度算出部1400は、第1の視線の信頼度を1、第2の視線の信頼度を1に設定する。一方、顔の向きが正面向きでない場合、処理はステップS2303に進む。ステップS2303において、視線信頼度算出部1400は、顔の向きが左向きかどうかを判定する。顔の向きが左向きである場合、処理はステップS2304に進む。ステップS2304において、視線信頼度算出部1400は、第1の視線の信頼度を0、第2の視線の信頼度を1に設定する。一方、顔の向きが左向きでない場合、処理はステップS2305へ進む。ステップS2305において、視線信頼度算出部1400は、第1の視線の信頼度を1、第2の視線の信頼度を0に設定する。
【0032】
図13は、図2のステップS1010の詳細を示すフローチャートである。ステップS1010において、目選択部1500は、ステップS1009で算出された第1の視線の信頼度、第2の視線の信頼度に基づいて、目領域の特徴量として、右目、左目、両方の目のどれを使用するか選択する。
【0033】
ステップS1201において、目選択部1500は、第1の視線の信頼度が所定の閾値Th1以上であるかどうかを判断する。第1の視線の信頼度が所定の閾値Th1以上である場合、処理はステップS1202へ進む。ステップS1202において、目選択部1500は、第2の視線の信頼度が所定の閾値Th2以上であるかどうかを判断する。第2の視線の信頼度が所定の閾値Th2以上である場合、処理はステップS1205に進む。ステップS1205において、目選択部1500は、目領域の特徴量として両目を使用することを決定する。一方、第2の視線の信頼度が所定の閾値Th2以上でない場合、処理はステップS1204に進む。ステップS1204において、目選択部1500は、目領域の特徴量として左目を使用することを決定する。
【0034】
ステップS1201において、第1の視線の信頼度が所定の閾値Th1以上でないと判定された場合、処理はステップS1203に進む。ステップS1203において、目選択部1500は、第2の視線の信頼度が所定の閾値Th2以上であるかどうかを判断する。第2の視線の信頼度が所定の閾値Th2以上である場合、処理はステップS1206に進む。ステップS1206において、目選択部1500は、目領域の特徴量として右目を使用することを決定する。一方、第2の視線の信頼度が所定の閾値Th2以上でない場合、両目が十分に表出していないとして、処理はステップS1207に進む。ステップS1207において、目選択部1500は、視線推定を実施しないことを決定する。なお、視線の信頼度が0又は1の2値である場合には、閾値Th1及びTh2は夫々の値が1に設定される。本実施形態では、視線の信頼度に基づいて左目と右目の表出程度を評価し、その評価結果に基づいて、目領域の特徴量として、右目、左目、両目を選択している。
【0035】
ステップS1011において、目領域特徴量抽出部1600は、ステップS1007で生成された2種類の正規化画像データのうち、解像度の高い正規化画像データ1104を使用して目領域の特徴量を抽出する。つまり、瞳の動きは微小であるため、その微小な動きを高精度に捉えるために、ステップS1011では解像度の高い正規化画像データ1104を使用する。顔の向きを検出するためには顔領域の全体から特徴を抽出する必要があるが、目の向きを検出するためには目領域の特徴量だけでよい。また、目領域以外の特徴量を加えると、特徴ベクトルの次元が増加し、後段の処理負荷が増加する可能性がある。また、目領域以外の特徴量が視線検出精度に影響を与える可能性がある。そのため、本実施形態では特徴点を使用して目領域を限定する。さらに、目の大きさの個人差を吸収することを目的として正規化処理を実施している。
【0036】
図14は、図2のステップS1011の詳細を示すフローチャートである。ステップS1100では、目領域特徴量抽出部1600は、ステップS1006で検出された特徴点位置のうち、左右の目の4つの特徴点位置を選択する。ここで左右の目の4つの特徴点位置とは、図3の目尻特徴点位置1020、1026、目頭特徴点位置1021、1027、上瞼特徴点位置1022、1028、下瞼特徴点位置1023、1029である。
【0037】
ステップS1101において、目領域特徴量抽出部1600は、ステップS1010での目の選択結果に基づいて目の領域の画像データを切り出す。つまり、ステップS1010で左目が選択された場合には、目領域特徴量抽出部1600は、左目に関する4つの特徴点位置1020、1021、1022、1023を使用して、図15の左目領域1040の画像データを切り出す。一方、ステップS1010で右目が選択された場合には、目領域特徴量抽出部1600は、右目に関する4つの特徴点位置1026、1027、1028、1029を使用して、図15の右目領域1041の画像データを切り出す。また、ステップS1010で両目が選択された場合、目領域特徴量抽出部1600は、左目に関する4つの特徴点位置1020、1021、1022、1023、右目に関する4つの特徴点位置1026、1027、1028、1029を使用して、図15の左目領域1040及び右目領域1041の画像データを切り出す。
【0038】
ステップS1102において、目領域特徴量抽出部1600は、図16に示すように、ステップS1101で切り出された画像データ1040、1041の夫々に対して、画像データの横及び高さが所定のサイズ1042、1043となるように拡大及び縮小処理を実施する。これにより、目の大きさ等の個人差を吸収するようにしている。なお、ステップS1101での左目と右目との画像データの切り出しは、図16に示すように特徴点位置を含むように切り出すのではなく、図17の1044、1045に示すように目の輪郭が含まれるように切り出すようにしてもよい。この場合、図17の1046、1047に示すように、ステップS1102においても目の輪郭が含まれるように画像データの拡大及び縮小処理が実施される。
【0039】
ステップS1103において、目領域特徴量抽出部1600は、ステップS1008と同様に、ステップS1102で正規化された左目と右目との夫々の画像データに対してエッジ抽出を行う。つまり、目領域特徴量抽出部1600は、左目の正規化画像データから抽出されたX方向の1次微分エッジ画像データとY方向の1次微分エッジ画像データ、右目の正規化画像データから抽出されたX方向の1次微分エッジ画像データとY方向の1次微分エッジ画像データの計4つのエッジ画像データを得る。そして、目領域特徴量抽出部1600は、4つのエッジ画像データを構成する画素値そのものを1要素とした特徴ベクトルを両方の目領域の特徴量とする。なお、ステップS1103では、目領域特徴量抽出部1600は、瞳の左右方向への動きを瞳と白目の境界エッジから捉え、瞳の上下方向への動きを瞳と白目の境界エッジ及び上瞼のエッジから捉えるようにしている。また、エッジ以外でも、輝度、色、周波数、輝度、これらのヒストグラムを使用するようにしてもよい。
【0040】
ステップS1012において、視線推定部1700は、ステップS1008で得られた顔の向きに対応する特徴量とステップS1011で得られた右目と左目領域の特徴量とを使用して、視線特徴量を生成する。
【0041】
図18は、図2のステップS1012の詳細を示すフローチャートである。ステップS1200において、視線推定部1700は、ステップS1010で左右の目が選択されたかどうかを判定する。左右の目が選択された場合、処理はステップS1201に進む。ステップS1201において、視線推定部1700は、ステップS1008で抽出された顔の向きに対応する特徴量と、ステップS1011で抽出された右目領域の特徴量及び左目領域の特徴量とを使用して、第1の視線特徴量を生成する。なお、本実施形態では、顔の向きに対応する特徴量と、右目領域の特徴量及び左目領域の特徴量との連結が行われる。但し、視線推定部1700は、その際に夫々の特徴量を所定の大きさに正規化する。また、顔の向きに対応する特徴量と左目領域の特徴量、顔の向きに対応する特徴量と右目領域の特徴量のように右目と左目とで別々にする方法でもよい。
【0042】
一方、ステップS1200で左右の目が選択されていないと判定された場合、処理はステップS1202に進む。ステップS1202において、視線推定部1700は、ステップS1010で左目が選択されたかどうかを判定する。左目が選択された場合、処理はステップS1203に進む。ステップS1203において、視線推定部1700は、ステップS1008で抽出された顔の向きに対応する特徴量と、ステップS1011で抽出された左目領域の特徴量とを使用して、第2の視線特徴量を生成する。
【0043】
一方、ステップS1202で左目が選択されていないと判定された場合、処理はステップS1204に進む。ステップS1204において、視線推定部1700は、ステップS1008で抽出された顔の向きに対応する特徴量と、ステップS1011で抽出された右目領域の特徴量とを使用して、第3の視線特徴量を生成する。
【0044】
以上のように、ステップS1012では、ステップS1010での選択結果に基づいた視線特徴量が生成される。例えば、図19に示すように、顔が右を向いているT[s]では右目の表出程度が少ないため、視線推定部1700は、顔の向きに対応する特徴量と左目領域の特徴量とを用いて第2の視線特徴量を生成する。顔が正面を向いているT+1[s]では、左目と右目とが十分に表出しているため、視線推定部1700は、顔の向きに対応する特徴量と右目領域と左目領域との特徴量とを用いて第1の視線特徴量を生成する。顔が左を向いているT+2[s]では左目の表出程度が少ないため、視線推定部1700は、顔の向きに対応する特徴量と右目領域の特徴量とを用いて第3の視線特徴量を生成する。
【0045】
視線方向を推定するSVMは、視線がカメラの方向等を向いているポジティブな視線特徴量と、視線がカメラの方向等を向いてないネガティブな視線特徴量とを予め学習しておく。ステップS1013において、視線推定部1700は、SVMを使用して、ステップS1012で生成された視線特徴量に対応する識別モデルを生成し、生成した識別モデルに基づいて視線方向がカメラの方向等を向いているかどうかを推定する。本実施形態では、視線方向を推定する識別器としてSVMを使用したが、これに限れるわけではない。
【0046】
本実施形態では、視線がカメラの方向等を向いているか否かの2値判定としている。しかし、特定の方向を検出する複数の識別器を用意しておくことで、どの方向を向いているか等も検出することが可能である。
【0047】
以上のように本実施形態では視線の評価値に基づいて右目領域、左目領域、両目領域の何れかの特徴量を選択し、視線特徴量を生成するようにしている。これにより、顔が横を向き片方の目が隠れてしまう、髪の毛により目が隠れてしまう、等の隠れが発生した場合にも、視線検出精度の大きな低下を招くこともなく、高精度な視線検出が可能となる。
【0048】
なお、本実施形態では、左目と右目との表出程度に基づいて、目領域の特徴量として、右目、左目、両目を選択するようにしているのは、可能な限り処理負荷を軽減するためである。しかしながら、ステップS1013において、視線推定部1700は、常に顔の向きに対応する特徴量と左目領域の特徴量、顔の向きに対応する特徴量と右目領域の特徴量、顔の向きに対応する特徴量と両目領域の特徴量等、複数の特徴量を抽出しておく。そして、視線推定部1700は、視線方向を推定する際に、視線の評価値に基づいて複数の特徴量から選択するようにしてもよい。
【0049】
さらに、視線推定部1700は、複数の特徴量に対して視線方向の推定し、視線の評価値に基づいて複数の視線方向の推定結果から選択するようにしてもよいことはいうまでもない。
【0050】
次に、本発明の第2の実施形態について説明する。本実施形態は、被写体の視線がデジタルカメラ等の撮像装置の方向を向いた場合に、自動的にシャッタを切る撮影装置に関するものである。
【0051】
図20は、本発明の第2の実施形態に係る視線検出装置の機能的な構成を示す図である。なお、図20に示す各機能的な構成は、本実施形態に係る視線検出プログラムがPC等のメモリ上にダウンロードされ、これをCPUが実行することにより実現する構成である。
【0052】
図20に示すように、本実施形態に係る視線検出装置は、画像取得部3000、顔検出部3100、正規化画像生成部3200、特徴量抽出部3300、目領域特徴量抽出部3400、第1の視線推定部3500、第2の視線推定部3600、視線総合推定部3700、記憶部3800から構成されている。
【0053】
画像取得部3000は、画像データを取得する。顔検出部3100は、画像取得部3000により取得された画像データから顔の位置、目尻や目頭等の特徴点、瞳等を検出する。正規化画像生成部3200は、顔検出部3100により検出された顔の位置を使用して、顔の大きさが所定のサイズで、且つ顔の向きが正立するように画像データの正規化を行う。特徴量抽出部3300は、正規化画像生成部3200で生成された正規化画像データを使用して、顔の向きに対応する特徴量を抽出する。目領域特徴量抽出部3400は、正規化画像生成部3200で生成された正規化画像データを使用して左目領域の特徴量、右目領域の特徴量を抽出する。
【0054】
第1の視線推定部3500は、特徴量抽出部3300で抽出された顔の向きに対応する特徴量と、目領域特徴量抽出部3400で抽出された左目領域の特徴量とを使用して第1の視線推定を行う。第2の視線推定部3600は、特徴量抽出部3300で抽出された顔の向きに対応する特徴量と、目領域特徴量抽出部3400で抽出された右目領域の特徴量とを使用して第2の視線推定を行う。視線総合推定部3700は、第1の視線推定と第2の視線推定との結果に基づいて総合的な視線推定を行う。記憶部3800は、視線総合推定結果に基づいて、画像取得部3000により取得された画像データを不揮発性メモリ等に記憶する。
【0055】
なお、顔検出部3100は、本発明の検出手段の適用例となる構成である。特徴量抽出部3300は、本発明の第1の抽出手段の適用例となる構成である。目領域特徴量抽出部3400は、本発明の第2の抽出手段の適用例となる構成である。第1の視線推定部3500及び第2の視線推定部3600は、本発明の第1の推定手段の適用例となる構成である。視線総合推定部3700は、本発明の第2の推定手段の適用例となる構成である。
【0056】
図21は、本発明の第2の実施形態に係る視線検出装置の視線検出方法を示すフローチャートである。以下では、図21を参照しながら、本実施形態における視線検出方法について説明する。なお、ステップS3000からステップS3008までは、図2のステップS1000からステップS1008までと同様であるため、説明を省略する。
【0057】
ステップS3009において、目領域特徴量抽出部3400は、ステップS3007で生成された2種類の正規化画像データのうち、解像度の高い正規化画像データを使用して左目領域の特徴量と右目領域の特徴量とを抽出する。ステップS3010において、第1の視線推定部3500は、ステップS3008で抽出された顔の向きに対応する特徴量と、ステップS3009で抽出された左目領域の特徴量とを使用して第1の視線推定を行う。ステップS3011において、第2の視線推定部3700は、ステップS3008で抽出された顔の向きに対応する特徴量と、ステップS3009で抽出された右目領域の特徴量とを使用して第2の視線推定を行う。なお、夫々の視線推定には、第1の実施形態と同様にSVMを使用する。但し、本発明に適用可能な視線推定はこれに限られるわけではない。
【0058】
また、ステップS3010、ステップS3011において、第1の視線推定部3500、第2の視線推定部3600は、第1の視線推定結果、第2の視線推定結果として、第1の視線、第2の視線が所定の方向を向いているか否かの2値で出力するようにしてもよい。また、第1の視線推定部3500、3600から出力される値そのものが第1の視線、第2の視線の方向を示すようにしてもよい。ステップS3012において、視線総合推定部3700は、第1の視線推定結果と第2の視線推定結果とに基づいて、総合的に視線方向を決定する。
【0059】
図22は、図21のステップS3012の詳細を示すフローチャートである。ステップS3100において、視線総合推定部3700は、第1の視線推定結果に基づいて第1の視線が所定の方向を向いているかどうかを判定する。第1の視線が所定の方向を向いている場合、処理はステップS3101に進む。ステップS3101において、視線総合推定部3700は、第2の視線推定結果に基づいて第2の視線が所定の方向を向いているか否かを確認する。第2の視線が所定の方向を向いている場合、処理はステップS3103に進む。
【0060】
ステップS3103において、視線総合推定部3700は、視線が所定の方向を向いていると判定する。つまり、左目領域の特徴量と顔の向きに対応する特徴量から決まる第1の視線と、右目領域の特徴量と顔の向きに対応する特徴量から決まる第2の視線との双方が所定の方向を向いている場合にのみ、視線総合推定部3700は視線が所定の方向を向いていると判定する。
【0061】
一方、ステップS3100で第1の視線が所定の方向を向いていないと判定された場合、また、ステップS3101で第2の視線が所定の方向を向いていないと判定された場合には、処理はステップS3102に進む。ステップS3102において、視線総合推定部3700は、視線が所定の方向を向いていないと判定する。但し、第1の視線及び第2の視線のうちの何れか一方が所定の方向を向いていれば、視線が所定の方向を向いていると判定してもよい。
【0062】
以上、ステップS3010、ステップS3011の出力が所定の方向を向いているか否かの2値である場合についての処理について説明した。以下では、ステップS3010、ステップS3011の出力が連続値、つまり、値そのものが方向である場合における視線総合推定値の決定方法を、図23を参照しながら説明する。なお、ステップS3010での第1の視線推定結果を第1の視線推定値、ステップS3011での第2の視線推定結果を第2の視線推定値と称す。
【0063】
ステップS3200において、視線総合推定部3700は、第1の視線推定値と第2の視線推定値との大小を比較する。第2の視線推定値よりも第1の視線推定値が大きい場合、処理はステップS3202に進む。ステップS3202において、視線総合推定部3700は、視線総合推定値として第1の視線推定値を使用する。一方、ステップS3200で第1の視線推定値が第2の視線推定値以下であると判定された場合、処理はステップS3201に進む。ステップS3201において、視線総合推定部3700は、視線総合推定値として第2の視線推定値を使用する。
【0064】
以上では、第1の視線推定値と第2の視線推定値とを統合する方法として、値の大きい視線推定値を視線総合推定値として設定する方法について説明した。この他にも、第1の視線推定値と第2の視線推定値とを統合する方法として、夫々の視線推定値の平均を視線総合推定値として設定する方法等もある。また、第1の実施形態で説明したような第1の視線、第2の視線の信頼度を算出し、第1の視線推定値と第2の視線推定値とに対して、以下の式のように信頼度で重み付けするようにしてもよい。
視線総合推定値=第1の視線の信頼度×第1の視線推定値+第2の視線の信頼度×第2の視線推定値
【0065】
ステップS3013において、記憶部3800は、視線総合推定結果に基づいて、ステップS3000において取得された画像データを不揮発性メモリ等に記憶する。以上のように本実施形態では、左目領域の特徴量及び顔の向きに対応する特徴量から決まる第1の視線と、右目領域の特徴量及び顔の向きに対応する特徴量から決まる第2の視線とを夫々別々に算出し、総合的に視線方向を推定する。これにより、本実施形態よれば、利き目等にも対応し、より高精度な視線推定を実現することができる。
【0066】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【符号の説明】
【0067】
1000、3000:画像取得部、1100、3100:顔検出部、1200、3200:正規化画像生成部、1300、3300:特徴量抽出部、1400、3400:視線信頼度算出部、1500:目選択部、1600:目領域特徴量抽出部、1700:視線推定部、3500:第1の視線推定部、3600:第2の視線推定部、3700:視線総合推定部、3800:記憶部
【技術分野】
【0001】
本発明は、視線を推定するための技術に関するものである。
【背景技術】
【0002】
従来、左右の黒目と目尻とを含む顔画像を用いて人物の視線を判定する技術が知られている(例えば、特許文献1参照)。但し、従来技術においては、図24に示すように、目の向きα1だけを推定するもので、顔の向きβ1は考慮されていない。これに対し、画像データ内の顔から眼等の特徴点を検出し、検出した特徴点間の距離を使用して、目の向きα1と顔の向きβ1との双方から視線方向を推定する技術が知られている(例えば、特許文献2参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2003−256852号公報
【特許文献2】特開2007−265367号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来技術においては、顔が横を向いて片方の目が隠れてしまう、髪の毛により目が隠れてしまう等の事象が発生した場合、視線検出精度の大きな低下を招く可能性がある。また、利き目等の問題があり、例えば所定の方向を注視した場合に、右目は所定の方向を向いているように見えるが、左目は所定の方向を向いていないように見える等の問題がある。
【0005】
そこで、本発明の目的は、目の隠れや利き目等に左右されない高精度な視線検知を実現することにある。
【課題を解決するための手段】
【0006】
本発明の視線検出装置は、画像データから顔を検出する検出手段と、前記検出手段により検出された前記顔の向きに対応する特徴量を前記画像データから抽出する第1の抽出手段と、前記検出手段により検出された前記顔に基づいて視線の信頼度を算出する算出手段と、前記算出手段により算出された視線の信頼度に応じた目を選択する選択手段と、前記選択手段により選択された目領域の特徴量を前記画像データから抽出する第2の抽出手段と、前記顔の向きに対応する特徴量と前記目領域の特徴量とに基づいて視線を推定する推定手段とを有することを特徴とする。
【発明の効果】
【0007】
本発明によれば、目の隠れや利き目等に左右されない高精度な視線検知を実現することが可能となる。
【図面の簡単な説明】
【0008】
【図1】本発明の第1の実施形態に係る視線検出装置の機能的な構成を示す図である。
【図2】本発明の第1の実施形態に係る視線検出装置の視線検出方法を示すフローチャートである。
【図3】顔の中心位置や目や口等の中心位置等を示す図である。
【図4】画像データの正規化処理を説明するための図である。
【図5】顔の向きに対応する特徴量を説明するための図である。
【図6】図2のステップS1009の詳細を示すフローチャートである。
【図7】目付近の画像データから瞳部分の画像データを検出し、瞳部分の画像データの面積を算出する処理を説明するための図である。
【図8】視線信頼度算出部が特徴点の検出位置の空間的な配置に基づいて第1の視線、第2の視線の信頼度を算出する処理を示すフローチャートである。
【図9】目の特徴点位置を示す図である。
【図10】目尻特徴点を検出するテンプレートと、テンプレートと目の画像データとのマッチング結果とを示す図である。
【図11】顔の向きに対応する特徴量を使用して顔の向きを推定し、推定した顔の向きに基づいて視線の信頼度を算出する処理を説明するための図である。
【図12】視線信頼度算出部が顔向き推定結果に基づいて視線の信頼度を設定する処理を示すフローチャートである。
【図13】図2のステップS1010の詳細を示すフローチャートである。
【図14】図2のステップS1011の詳細を示すフローチャートである。
【図15】左目領域の画像データと右目領域の画像データとを切り出す処理を説明するための図である。
【図16】目領域の画像データの正規化処理を説明するための図である。
【図17】目領域の画像データの正規化処理を説明するための図である。
【図18】図2のステップS1012の詳細を示すフローチャートである。
【図19】目の選択結果に基づいた視線特徴量の生成方法を説明するための図である。
【図20】本発明の第2の実施形態に係る視線検出装置の機能的な構成を示す図である。
【図21】本発明の第2の実施形態に係る視線検出装置の視線検出方法を示すフローチャートである。
【図22】図21のステップS3012の詳細を示すフローチャートである。
【図23】ステップS3010、ステップS3011の出力が連続値、つまり、値そのものが方向である場合における視線総合推定値の決定方法を示すフローチャートである。
【図24】従来技術の例を説明するための図である。
【発明を実施するための形態】
【0009】
以下、本発明を適用した好適な実施形態を、添付図面を参照しながら詳細に説明する。
【0010】
先ず、本発明の第1の実施形態について説明する。図1は、本発明の第1の実施形態に係る視線検出装置の機能的な構成を示す図である。なお、図1に示す各機能的な構成は、本実施形態に係る視線検出プログラムがメモリ上にダウンロードされ、これをCPUが実行することにより実現する構成である。
【0011】
図1に示すように、本実施形態に係る視線検出装置は、画像取得部1000、顔検出部1100、正規化画像生成部1200、特徴量抽出部1300、視線信頼度算出部1400、目選択部1500、目領域特徴量抽出部1600及び視線推定部1700で構成されている。画像取得部1000は、画像データを取得する。顔検出部1100は、画像取得部1000で取得された画像データから顔の中心位置を検出する。また、顔検出部1100は、目や口等の顔を構成するパーツの中心位置、目尻や目頭等の更に細かな特徴点や瞳の位置等の器官位置も検出する。正規化画像生成部1200は、顔検出部1100において検出された中心位置や器官位置を使用して、顔の大きさが所定のサイズで、且つ顔の向きが正立するように正規化を行い、複数の異なる解像度の画像データを生成する。特徴量抽出部1300は、正規化画像生成部1200で生成された画像データを使用して顔の向きに対応する特徴量を抽出する。視線信頼度算出部1400は、顔検出部1100で検出された中心位置や器官位置に基づいて、視線の信頼度を算出する。目選択部1500は、視線信頼度算出部1400で算出された視線の信頼度に基づいて、右目、左目、両目の何れかの選択を行う。目領域特徴量抽出部1600は、正規化画像生成部1200で生成された画像データを使用して目領域の特徴量を抽出する。視線推定部1700は、特徴量抽出部1300で抽出された顔の向きに対応する特徴量と、目領域特徴量抽出部1600で抽出された目領域の特徴量とを使用して視線方向の推定を行う。
【0012】
なお、顔検出部1100は、本発明の検出手段の適用例となる構成である。特徴量抽出部1300は、本発明の第1の抽出手段の適用例となる構成である。視線信頼度算出部1400は、本発明の算出手段の適用例となる構成である。目選択部1500は、本発明の選択手段の適用例となる構成である。目領域特徴量抽出部1600は、本発明の第2の抽出手段の適用例となる構成である。視線推定部1700は、本発明の推定手段の適用例となる構成である。
【0013】
図2は、本発明の第1の実施形態に係る視線検出装置の視線検出方法を示すフローチャートである。以下、図2を参照しながら、本実施形態における視線検出方法について説明する。
【0014】
ステップS1000において、画像取得部1000は画像データを取得する。画像データの取得方法としては、例えば、デジタルカメラ等の撮像手段で撮影され、不揮発性メモリ等に記憶された画像データや、ハードディスクドライブに記憶されている画像データを取得する等の様々な方法がある。
【0015】
ステップS1001において、顔検出部1100は、ステップS1000で取得された画像データ内に顔が含まれているか否かを判定する。本実施形態では、人物の顔を前提として説明するが、犬や猫等の動物の顔であってもよい。ここで得られる結果はおおよそ図3の顔の中心位置1032である。なお、顔検出手法については、次の文献等で開示されている。
P. Viola, M. Jones, “Rapid Object Detection using a Boosted Cascade of Simple Features”, in Proc. Of CVPR, vol.1, pp.511-518, December, 2001
【0016】
その他にも、ニューラルネットワークを使用する方法が次の文献等で開示されているが、人物の顔を検出する方法であれば、その手法は特に限定されない。なお、次の文献では、目や口等を検出し、その空間的な配置関係から顔であると判定する顔検出方法も開示されており、顔の中心位置に加えて目や口等の中心位置も得られる場合がある。本実施形態では、本手法を使用する。そのため、ステップS1001での顔検出処理では、顔の中心位置、目や口等の中心位置が得られる。
御手洗祐輔, 森克彦, 真継優和, “選択的モジュール起動を用いたConvolutionalNeuralNetworksによる変動にロバストな 顔検出システム”, FIT (情報科学技術フォーラム), Ll-013, 2003
【0017】
ステップS1002において、顔検出部1200は、顔が検出されたかどうかを判定する。顔が検出されていない場合には、ステップS1000に戻り、別の画像データが取得される。顔が検出された場合には、ステップS1003に進む。
【0018】
ステップS1003において、顔検出部1100は、ステップS1002で検出された顔のうちから1つの顔を選択する。ステップS1004において、顔検出部1100は、ステップS1003で選択された顔の大きさが所定の大きさ以上であるかどうかを判定する。顔が小さい人物に対しては情報量が不足し、視線を高精度に検出できない恐れがある。そのため、大きさが一定以上の顔だけに対して視線検出を実行するようにしている。顔の大きさとは、例えば、図3の左目の中心位置1025と右目の中心位置1031との間の距離、肌色の面積等の顔の大きさを示す尺度であれば何でもよい。本実施形態では、左目の中心位置1025と右目の中心位置1031との間の距離の2倍を顔の大きさとして定義する。左目の中心位置1025と右目の中心位置1031は、例えば、ステップS1001で検出された顔の中心位置より、統計的に左右の目が存在し得る範囲を設定し、その範囲内で予め用意しておいたテンプレート等を使用して探索するようにしてもよい。
【0019】
ステップS1004において、顔の大きさが所定の大きさ以上でないと判定された場合、処理はステップS1005へ進む。ステップS1005において、顔検出部1100は、ステップS1001で検出された顔のうち、選択されていない顔があるかどうかを判定する。全ての顔が選択されている場合には、処理はステップS1000に戻り、画像取得部1000によって別の画像データが取得される。一方、全ての顔が選択されていない場合には、処理はステップS1003に戻り、顔検出部1100は選択していない顔を選択する。
【0020】
一方、ステップS1004において、顔の大きさが所定の大きさ以上であると判定された場合、処理はステップS1006に進む。ステップS1006において、顔検出部1100は、顔の中心位置1032等に加え、目頭1021、1027や目尻1020、1026等の特徴点位置の検出を行う。また、ここでは瞳が存在するかどうかを検出する。これらの位置や瞳が存在するか否かを検出する方法としては、予め用意しておいたテンプレート等を使用する、エッジを走査する等、様々な手法がある。瞳が存在した場合には、顔検出部1100は、図7に示すように、目付近の画像データ701、703から瞳部分の画像データ702、704を検出し、瞳部分の画像データの面積を算出する。
【0021】
ステップS1007において、正規化画像生成部1200は、ステップS1001で検出された左目の中心位置1025、右目の中心位置1031、顔の中心位置1032を用いて、図4に示すように、アフィン変換等を使用して、顔の向きが正立、且つ顔が所定サイズの解像度の異なる画像データを2種類1104、1105生成する。具体的には、図4に示すように、正規化画像生成部1200は、正規化前の画像データ1100の左目の中心位置1025及び右目の中心位置1031から、距離Lと水平方向に対する角度θとを算出する。そして正規化画像生成部1200は、距離Lが所定の距離L´、θ=0となるようにアフィン変換を行う。拡大及び縮小方法は、ニアレストネイバー法やバイリニア法等の様々な方法がある。なお、本実施形態では、画像データの正規化に左目の中心位置1025、右目の中心位置1031、顔の中心位置1032を使用したが、これに限られるわけではない。また、ステップS1007で正規化された2種類の画像データ(以下、正規化画像データと称す)は、顔の向きに対応する特徴量、目領域の特徴量が抽出される際に使用される。さらに、これに加えて照明の影響を軽減させるためにコントラストを補正する処理等の輝度値の変換処理を実施してもよい。
【0022】
解像度の異なる正規化画像データは2種類に限定するのではなく、予め解像度の異なる複数の画像(ピラミッド画像)データを生成しておき、その中から選択するようにしてもよい。このように、予め解像度の異なる複数の画像(ピラミッド画像)データを生成しておくことで、視線検出以外のパターン認識にも活用することができる。さらに、始めに目領域の特徴量の抽出に使用する高解像度画像データを生成後、縮小処理により顔の向きに対応する特徴量の抽出に使用する低解像度画像データを段階的に生成するようにしてもよい。
【0023】
ステップS1008では、顔の向きに対応する特徴量であれば何でもよいが、本実施形態ではエッジ特徴を使用する。またステップS1008においては、特徴量抽出部1300は、ステップS1007で生成された2種類の正規化画像データのうち、解像度の低い正規化画像データ1105を使用して、顔の向きに対応する特徴量を抽出する。本実施形態では、顔の向きに対応する特徴量にはエッジ特徴を使用する。エッジ特徴の抽出には、画像データを構成する画素値の1次微分、2次微分を使用する方法が一般的であるが、本実施形態では1次微分を使用してエッジ特徴を抽出する。図5(a)、図5(c)はX方向の1次微分を使用して抽出されたエッジ特徴のデータ(1次微分エッジ画像データ)、図5(b)、図5(d)はY方向の1次微分を使用して抽出されたエッジ特徴のデータ(1次微分エッジ画像データ)を示している。本実施形態では、顔の輪郭エッジの位置や形状等を捉えるようにしているが、耳、鼻、髪の位置や形状等を使用するようにしてもよい。よって、ステップS1008で生成される特徴量は、X方向の1次微分エッジ画像データとY方向の1次微分エッジ画像データとを構成する画素値そのものを1要素とした特徴ベクトルを領域の特徴量とする。例えば、X方向の1次微分エッジ画像データとY方向の1次微分エッジ画像データとを30×30とした場合には、1800次元の特徴ベクトルが生成される。なお、エッジ以外でも、輝度、色や、次の文献に開示されるような周波数、輝度、これらのヒストグラムを使用するようにしてもよい。
鈴木亜紀子, 滝口哲也, 有木康雄, “PCA相関フィルタによる目領域の探索”, FIT (情報科学技術フォーラム), H-015, 2007
M. Bertozzi, A. Broggi, M. Del Rose, M. Felisa, A. Rakotomamonjy and F. Suard, “A Pedestrian Detector Using Histograms of Oriented Gradients and a Support Vector Machine Classifier”, IEEE Intelligent Transportation Systems Conference, 2007
【0024】
図6は、図2のステップS1009の詳細を示すフローチャートである。ステップS1009では、視線信頼度算出部1400は、ステップS1006での瞳検出結果に基づいて視線の信頼度を算出する。ここでは、信頼度は目の表出の程度等で表され、その値が高いほど視線推定に使用しても問題ないということを示している。
【0025】
図6のステップS1100において、視線信頼度算出部1400は、ステップS1006で算出された瞳部分の画像データの面積において、左瞳の画像データの面積が所定の面積以上であるかどうかを判定する。左瞳の画像データの面積が所定の面積以上である場合、処理はステップS1101に進む。ステップS1101において、視線信頼度算出部1400は、左目が十分に表出しているものとして第1の視線の信頼度を1とする。一方、左瞳の画像データの面積が所定の面積以上でない場合、処理はステップ1102に進む。ステップS1102において、視線信頼度算出部1400は、左目が十分に表出していないものとして第1の視線の信頼度を0とする。ステップS1103において、視線信頼度算出部1400は、ステップS1006で算出された瞳部分の画像データの面積において、右瞳の画像データの面積が所定の面積以上かどうかを判定する。右瞳の画像データの面積が所定の面積以上である場合、処理はステップS1104に進む。ステップS1104において、視線信頼度算出部1400は、右目が十分に表出しているものとして第2の視線の信頼度を1とする。一方、右瞳の画像データの面積が所定の面積以上でない場合、処理はステップS1105に進む。ステップS1105において、視線信頼度算出部1400は、右目が十分に表出していないものとして第2の視線の信頼度を0とする。
【0026】
以上、顔が回転した場合、髪の毛等の隠れによって左右の目が十分に表出しているか否かを瞳の面積に基づく視線の信頼度によって表現している。なお、瞳ではなく、白目部分も含む目領域の面積を使用してもよい。
【0027】
本実施形態では、瞳の面積に対して閾値処理を実施し、その結果に応じて第1の視線、第2の視線の信頼度を0、1としている。しかし、瞳の面積に対して閾値処理を実施しなくとも、瞳の面積そのものを第1の視線、2視線の信頼度として設定するようにしてもよい。この他にも、目尻、目頭、上瞼、下瞼等の特徴点の検出結果に基づいて、第1の視線、第2の視線の信頼度を算出するようにしてもよい。
【0028】
図8は、視線信頼度算出部1400が特徴点の検出位置の空間的な配置に基づいて第1の視線、第2の視線の信頼度を算出する処理を示すフローチャートである。ステップS2200において、視線信頼度算出部1400は、左目の特徴点(目尻、目頭、上瞼、下瞼)検出位置に基づいて、第1の視線の信頼度算出を行う。ここで、目尻特徴点位置と目頭特徴点位置とのY座標はほぼ同じ値になる。また、上瞼特徴点位置と下瞼特徴点位置とのX座標はほぼ同じ値なる。目尻特徴点位置と目頭特徴点位置とのX座標の中点と、上瞼特徴点位置と下瞼特徴点位置との夫々のX座標はほぼ同じ値になる。図8に示す処理において、視線信頼度算出部1400は、このような特徴点位置の空間的な配置関係を使用して視線の信頼度を設定する。即ち、図9に示すように、検出された目尻特徴点位置2024、目頭特徴点位置2025、上瞼特徴点位置2026、下瞼特徴点値が以下の4つの条件を全て満たした場合、視線信頼度算出部1400は、視線の信頼度を1とする。但し、本発明に適用できる条件が以下の4つの条件に限られるわけではない。
条件(1):目尻特徴点のY座標−目頭特徴点のY座標<Th1
条件(2):上瞼特徴点のX座標−下瞼特徴点のX座標<Th2
条件(3)(目尻特徴点のX座標+目頭特徴点のX座標)/2−上瞼特徴点のX座標<Th3
条件(4):目尻特徴点のX座標+目頭特徴点のX座標)/2−下瞼特徴点のX座標<Th4
また、条件(1)〜(4)に対して夫々閾値処理を実施するのではなくて、条件(1)〜(4)の左辺の値そのものを視線の信頼度とするようにしてもよい。この場合には、逆に0に近い程、信頼できる意味を持つようになる。ステップS2201でも同様、視線信頼度算出部1400は、右目の特徴点(目尻、目頭、上瞼、下瞼)位置に基づいて、第2の視線の信頼度の算出を行う。
【0029】
また、目の特徴点検出位置の空間的な配置関係以外にも、特徴点の検出位置そのものの分布等を使用するようにしてもよい。図10は、目尻特徴点を検出するテンプレート2030と、テンプレート2030と目の画像データ2032とのマッチング結果2031とを示している。図10のマッチング結果2031の白色領域は、目の画像データ2032のうちテンプレート2030と一致する可能性の高い領域を示している。そのため、視線信頼度算出部1400は、この白色領域における所定値以上の画素値の分散や尖鋭度等を求め、これらの値に基づいて、視線の信頼度を算出するようにしてもよい。
【0030】
さらに、視線信頼度算出部1400は、ステップS1008で抽出された顔の向きに対応する特徴量を使用して顔の向きを推定し、推定した顔の向きに基づいて視線の信頼度を算出するようにしてもよい。なお、顔の向きを推定するためには顔の向き推定器が必要であるが、本実施形態では、次の文献に開示されるSupport Vector Machine(以下、SVM)を使用する。但し、本発明に適用可能な顔の向き推定器はSVMに限定されるわけではない。
V. Vapnik. “Statistical Learning Theory”, John Wiley & Sons, 1998
例えば図11に示すように、左向き(−60度〜−30度)、正面向き(−30度〜30度)、右向き(30度〜60度)の3つのパターンを分類する識別器を予め用意しておく。具体的には、左向きをポジティブデータ、それ以外をネガティブデータ、正面向きをポジティブデータ、それ以外をネガティブデータ等として3つの識別器を用意しておく。そして、3つの識別器のうち、最も高い値を算出した識別器に対応する顔の向きを人物の顔の向きとして決定する方法である。なお、本実施形態では、顔の向きの分解能を3つとしたが、本発明がその3つに限られるわけではない。また、左向きを−60度〜−30度、正面向きを−30度〜30度、右向きを30度〜60度として定義したが、これに限られるわけではない。
【0031】
図12は、視線信頼度算出部1400が顔向き推定結果に基づいて視線の信頼度を設定する処理を示すフローチャートである。ステップS2300において、視線信頼度算出部1400は、ステップS1008で抽出された顔の向きに対応する特徴量を使用して、顔の向きを推定する。ステップS2301において、視線信頼度算出部1400は、顔の向きが正面向きかどうかを判定する。顔の向きが正面向きである場合、処理はステップS2302へ進む。ステップS2302において、視線信頼度算出部1400は、第1の視線の信頼度を1、第2の視線の信頼度を1に設定する。一方、顔の向きが正面向きでない場合、処理はステップS2303に進む。ステップS2303において、視線信頼度算出部1400は、顔の向きが左向きかどうかを判定する。顔の向きが左向きである場合、処理はステップS2304に進む。ステップS2304において、視線信頼度算出部1400は、第1の視線の信頼度を0、第2の視線の信頼度を1に設定する。一方、顔の向きが左向きでない場合、処理はステップS2305へ進む。ステップS2305において、視線信頼度算出部1400は、第1の視線の信頼度を1、第2の視線の信頼度を0に設定する。
【0032】
図13は、図2のステップS1010の詳細を示すフローチャートである。ステップS1010において、目選択部1500は、ステップS1009で算出された第1の視線の信頼度、第2の視線の信頼度に基づいて、目領域の特徴量として、右目、左目、両方の目のどれを使用するか選択する。
【0033】
ステップS1201において、目選択部1500は、第1の視線の信頼度が所定の閾値Th1以上であるかどうかを判断する。第1の視線の信頼度が所定の閾値Th1以上である場合、処理はステップS1202へ進む。ステップS1202において、目選択部1500は、第2の視線の信頼度が所定の閾値Th2以上であるかどうかを判断する。第2の視線の信頼度が所定の閾値Th2以上である場合、処理はステップS1205に進む。ステップS1205において、目選択部1500は、目領域の特徴量として両目を使用することを決定する。一方、第2の視線の信頼度が所定の閾値Th2以上でない場合、処理はステップS1204に進む。ステップS1204において、目選択部1500は、目領域の特徴量として左目を使用することを決定する。
【0034】
ステップS1201において、第1の視線の信頼度が所定の閾値Th1以上でないと判定された場合、処理はステップS1203に進む。ステップS1203において、目選択部1500は、第2の視線の信頼度が所定の閾値Th2以上であるかどうかを判断する。第2の視線の信頼度が所定の閾値Th2以上である場合、処理はステップS1206に進む。ステップS1206において、目選択部1500は、目領域の特徴量として右目を使用することを決定する。一方、第2の視線の信頼度が所定の閾値Th2以上でない場合、両目が十分に表出していないとして、処理はステップS1207に進む。ステップS1207において、目選択部1500は、視線推定を実施しないことを決定する。なお、視線の信頼度が0又は1の2値である場合には、閾値Th1及びTh2は夫々の値が1に設定される。本実施形態では、視線の信頼度に基づいて左目と右目の表出程度を評価し、その評価結果に基づいて、目領域の特徴量として、右目、左目、両目を選択している。
【0035】
ステップS1011において、目領域特徴量抽出部1600は、ステップS1007で生成された2種類の正規化画像データのうち、解像度の高い正規化画像データ1104を使用して目領域の特徴量を抽出する。つまり、瞳の動きは微小であるため、その微小な動きを高精度に捉えるために、ステップS1011では解像度の高い正規化画像データ1104を使用する。顔の向きを検出するためには顔領域の全体から特徴を抽出する必要があるが、目の向きを検出するためには目領域の特徴量だけでよい。また、目領域以外の特徴量を加えると、特徴ベクトルの次元が増加し、後段の処理負荷が増加する可能性がある。また、目領域以外の特徴量が視線検出精度に影響を与える可能性がある。そのため、本実施形態では特徴点を使用して目領域を限定する。さらに、目の大きさの個人差を吸収することを目的として正規化処理を実施している。
【0036】
図14は、図2のステップS1011の詳細を示すフローチャートである。ステップS1100では、目領域特徴量抽出部1600は、ステップS1006で検出された特徴点位置のうち、左右の目の4つの特徴点位置を選択する。ここで左右の目の4つの特徴点位置とは、図3の目尻特徴点位置1020、1026、目頭特徴点位置1021、1027、上瞼特徴点位置1022、1028、下瞼特徴点位置1023、1029である。
【0037】
ステップS1101において、目領域特徴量抽出部1600は、ステップS1010での目の選択結果に基づいて目の領域の画像データを切り出す。つまり、ステップS1010で左目が選択された場合には、目領域特徴量抽出部1600は、左目に関する4つの特徴点位置1020、1021、1022、1023を使用して、図15の左目領域1040の画像データを切り出す。一方、ステップS1010で右目が選択された場合には、目領域特徴量抽出部1600は、右目に関する4つの特徴点位置1026、1027、1028、1029を使用して、図15の右目領域1041の画像データを切り出す。また、ステップS1010で両目が選択された場合、目領域特徴量抽出部1600は、左目に関する4つの特徴点位置1020、1021、1022、1023、右目に関する4つの特徴点位置1026、1027、1028、1029を使用して、図15の左目領域1040及び右目領域1041の画像データを切り出す。
【0038】
ステップS1102において、目領域特徴量抽出部1600は、図16に示すように、ステップS1101で切り出された画像データ1040、1041の夫々に対して、画像データの横及び高さが所定のサイズ1042、1043となるように拡大及び縮小処理を実施する。これにより、目の大きさ等の個人差を吸収するようにしている。なお、ステップS1101での左目と右目との画像データの切り出しは、図16に示すように特徴点位置を含むように切り出すのではなく、図17の1044、1045に示すように目の輪郭が含まれるように切り出すようにしてもよい。この場合、図17の1046、1047に示すように、ステップS1102においても目の輪郭が含まれるように画像データの拡大及び縮小処理が実施される。
【0039】
ステップS1103において、目領域特徴量抽出部1600は、ステップS1008と同様に、ステップS1102で正規化された左目と右目との夫々の画像データに対してエッジ抽出を行う。つまり、目領域特徴量抽出部1600は、左目の正規化画像データから抽出されたX方向の1次微分エッジ画像データとY方向の1次微分エッジ画像データ、右目の正規化画像データから抽出されたX方向の1次微分エッジ画像データとY方向の1次微分エッジ画像データの計4つのエッジ画像データを得る。そして、目領域特徴量抽出部1600は、4つのエッジ画像データを構成する画素値そのものを1要素とした特徴ベクトルを両方の目領域の特徴量とする。なお、ステップS1103では、目領域特徴量抽出部1600は、瞳の左右方向への動きを瞳と白目の境界エッジから捉え、瞳の上下方向への動きを瞳と白目の境界エッジ及び上瞼のエッジから捉えるようにしている。また、エッジ以外でも、輝度、色、周波数、輝度、これらのヒストグラムを使用するようにしてもよい。
【0040】
ステップS1012において、視線推定部1700は、ステップS1008で得られた顔の向きに対応する特徴量とステップS1011で得られた右目と左目領域の特徴量とを使用して、視線特徴量を生成する。
【0041】
図18は、図2のステップS1012の詳細を示すフローチャートである。ステップS1200において、視線推定部1700は、ステップS1010で左右の目が選択されたかどうかを判定する。左右の目が選択された場合、処理はステップS1201に進む。ステップS1201において、視線推定部1700は、ステップS1008で抽出された顔の向きに対応する特徴量と、ステップS1011で抽出された右目領域の特徴量及び左目領域の特徴量とを使用して、第1の視線特徴量を生成する。なお、本実施形態では、顔の向きに対応する特徴量と、右目領域の特徴量及び左目領域の特徴量との連結が行われる。但し、視線推定部1700は、その際に夫々の特徴量を所定の大きさに正規化する。また、顔の向きに対応する特徴量と左目領域の特徴量、顔の向きに対応する特徴量と右目領域の特徴量のように右目と左目とで別々にする方法でもよい。
【0042】
一方、ステップS1200で左右の目が選択されていないと判定された場合、処理はステップS1202に進む。ステップS1202において、視線推定部1700は、ステップS1010で左目が選択されたかどうかを判定する。左目が選択された場合、処理はステップS1203に進む。ステップS1203において、視線推定部1700は、ステップS1008で抽出された顔の向きに対応する特徴量と、ステップS1011で抽出された左目領域の特徴量とを使用して、第2の視線特徴量を生成する。
【0043】
一方、ステップS1202で左目が選択されていないと判定された場合、処理はステップS1204に進む。ステップS1204において、視線推定部1700は、ステップS1008で抽出された顔の向きに対応する特徴量と、ステップS1011で抽出された右目領域の特徴量とを使用して、第3の視線特徴量を生成する。
【0044】
以上のように、ステップS1012では、ステップS1010での選択結果に基づいた視線特徴量が生成される。例えば、図19に示すように、顔が右を向いているT[s]では右目の表出程度が少ないため、視線推定部1700は、顔の向きに対応する特徴量と左目領域の特徴量とを用いて第2の視線特徴量を生成する。顔が正面を向いているT+1[s]では、左目と右目とが十分に表出しているため、視線推定部1700は、顔の向きに対応する特徴量と右目領域と左目領域との特徴量とを用いて第1の視線特徴量を生成する。顔が左を向いているT+2[s]では左目の表出程度が少ないため、視線推定部1700は、顔の向きに対応する特徴量と右目領域の特徴量とを用いて第3の視線特徴量を生成する。
【0045】
視線方向を推定するSVMは、視線がカメラの方向等を向いているポジティブな視線特徴量と、視線がカメラの方向等を向いてないネガティブな視線特徴量とを予め学習しておく。ステップS1013において、視線推定部1700は、SVMを使用して、ステップS1012で生成された視線特徴量に対応する識別モデルを生成し、生成した識別モデルに基づいて視線方向がカメラの方向等を向いているかどうかを推定する。本実施形態では、視線方向を推定する識別器としてSVMを使用したが、これに限れるわけではない。
【0046】
本実施形態では、視線がカメラの方向等を向いているか否かの2値判定としている。しかし、特定の方向を検出する複数の識別器を用意しておくことで、どの方向を向いているか等も検出することが可能である。
【0047】
以上のように本実施形態では視線の評価値に基づいて右目領域、左目領域、両目領域の何れかの特徴量を選択し、視線特徴量を生成するようにしている。これにより、顔が横を向き片方の目が隠れてしまう、髪の毛により目が隠れてしまう、等の隠れが発生した場合にも、視線検出精度の大きな低下を招くこともなく、高精度な視線検出が可能となる。
【0048】
なお、本実施形態では、左目と右目との表出程度に基づいて、目領域の特徴量として、右目、左目、両目を選択するようにしているのは、可能な限り処理負荷を軽減するためである。しかしながら、ステップS1013において、視線推定部1700は、常に顔の向きに対応する特徴量と左目領域の特徴量、顔の向きに対応する特徴量と右目領域の特徴量、顔の向きに対応する特徴量と両目領域の特徴量等、複数の特徴量を抽出しておく。そして、視線推定部1700は、視線方向を推定する際に、視線の評価値に基づいて複数の特徴量から選択するようにしてもよい。
【0049】
さらに、視線推定部1700は、複数の特徴量に対して視線方向の推定し、視線の評価値に基づいて複数の視線方向の推定結果から選択するようにしてもよいことはいうまでもない。
【0050】
次に、本発明の第2の実施形態について説明する。本実施形態は、被写体の視線がデジタルカメラ等の撮像装置の方向を向いた場合に、自動的にシャッタを切る撮影装置に関するものである。
【0051】
図20は、本発明の第2の実施形態に係る視線検出装置の機能的な構成を示す図である。なお、図20に示す各機能的な構成は、本実施形態に係る視線検出プログラムがPC等のメモリ上にダウンロードされ、これをCPUが実行することにより実現する構成である。
【0052】
図20に示すように、本実施形態に係る視線検出装置は、画像取得部3000、顔検出部3100、正規化画像生成部3200、特徴量抽出部3300、目領域特徴量抽出部3400、第1の視線推定部3500、第2の視線推定部3600、視線総合推定部3700、記憶部3800から構成されている。
【0053】
画像取得部3000は、画像データを取得する。顔検出部3100は、画像取得部3000により取得された画像データから顔の位置、目尻や目頭等の特徴点、瞳等を検出する。正規化画像生成部3200は、顔検出部3100により検出された顔の位置を使用して、顔の大きさが所定のサイズで、且つ顔の向きが正立するように画像データの正規化を行う。特徴量抽出部3300は、正規化画像生成部3200で生成された正規化画像データを使用して、顔の向きに対応する特徴量を抽出する。目領域特徴量抽出部3400は、正規化画像生成部3200で生成された正規化画像データを使用して左目領域の特徴量、右目領域の特徴量を抽出する。
【0054】
第1の視線推定部3500は、特徴量抽出部3300で抽出された顔の向きに対応する特徴量と、目領域特徴量抽出部3400で抽出された左目領域の特徴量とを使用して第1の視線推定を行う。第2の視線推定部3600は、特徴量抽出部3300で抽出された顔の向きに対応する特徴量と、目領域特徴量抽出部3400で抽出された右目領域の特徴量とを使用して第2の視線推定を行う。視線総合推定部3700は、第1の視線推定と第2の視線推定との結果に基づいて総合的な視線推定を行う。記憶部3800は、視線総合推定結果に基づいて、画像取得部3000により取得された画像データを不揮発性メモリ等に記憶する。
【0055】
なお、顔検出部3100は、本発明の検出手段の適用例となる構成である。特徴量抽出部3300は、本発明の第1の抽出手段の適用例となる構成である。目領域特徴量抽出部3400は、本発明の第2の抽出手段の適用例となる構成である。第1の視線推定部3500及び第2の視線推定部3600は、本発明の第1の推定手段の適用例となる構成である。視線総合推定部3700は、本発明の第2の推定手段の適用例となる構成である。
【0056】
図21は、本発明の第2の実施形態に係る視線検出装置の視線検出方法を示すフローチャートである。以下では、図21を参照しながら、本実施形態における視線検出方法について説明する。なお、ステップS3000からステップS3008までは、図2のステップS1000からステップS1008までと同様であるため、説明を省略する。
【0057】
ステップS3009において、目領域特徴量抽出部3400は、ステップS3007で生成された2種類の正規化画像データのうち、解像度の高い正規化画像データを使用して左目領域の特徴量と右目領域の特徴量とを抽出する。ステップS3010において、第1の視線推定部3500は、ステップS3008で抽出された顔の向きに対応する特徴量と、ステップS3009で抽出された左目領域の特徴量とを使用して第1の視線推定を行う。ステップS3011において、第2の視線推定部3700は、ステップS3008で抽出された顔の向きに対応する特徴量と、ステップS3009で抽出された右目領域の特徴量とを使用して第2の視線推定を行う。なお、夫々の視線推定には、第1の実施形態と同様にSVMを使用する。但し、本発明に適用可能な視線推定はこれに限られるわけではない。
【0058】
また、ステップS3010、ステップS3011において、第1の視線推定部3500、第2の視線推定部3600は、第1の視線推定結果、第2の視線推定結果として、第1の視線、第2の視線が所定の方向を向いているか否かの2値で出力するようにしてもよい。また、第1の視線推定部3500、3600から出力される値そのものが第1の視線、第2の視線の方向を示すようにしてもよい。ステップS3012において、視線総合推定部3700は、第1の視線推定結果と第2の視線推定結果とに基づいて、総合的に視線方向を決定する。
【0059】
図22は、図21のステップS3012の詳細を示すフローチャートである。ステップS3100において、視線総合推定部3700は、第1の視線推定結果に基づいて第1の視線が所定の方向を向いているかどうかを判定する。第1の視線が所定の方向を向いている場合、処理はステップS3101に進む。ステップS3101において、視線総合推定部3700は、第2の視線推定結果に基づいて第2の視線が所定の方向を向いているか否かを確認する。第2の視線が所定の方向を向いている場合、処理はステップS3103に進む。
【0060】
ステップS3103において、視線総合推定部3700は、視線が所定の方向を向いていると判定する。つまり、左目領域の特徴量と顔の向きに対応する特徴量から決まる第1の視線と、右目領域の特徴量と顔の向きに対応する特徴量から決まる第2の視線との双方が所定の方向を向いている場合にのみ、視線総合推定部3700は視線が所定の方向を向いていると判定する。
【0061】
一方、ステップS3100で第1の視線が所定の方向を向いていないと判定された場合、また、ステップS3101で第2の視線が所定の方向を向いていないと判定された場合には、処理はステップS3102に進む。ステップS3102において、視線総合推定部3700は、視線が所定の方向を向いていないと判定する。但し、第1の視線及び第2の視線のうちの何れか一方が所定の方向を向いていれば、視線が所定の方向を向いていると判定してもよい。
【0062】
以上、ステップS3010、ステップS3011の出力が所定の方向を向いているか否かの2値である場合についての処理について説明した。以下では、ステップS3010、ステップS3011の出力が連続値、つまり、値そのものが方向である場合における視線総合推定値の決定方法を、図23を参照しながら説明する。なお、ステップS3010での第1の視線推定結果を第1の視線推定値、ステップS3011での第2の視線推定結果を第2の視線推定値と称す。
【0063】
ステップS3200において、視線総合推定部3700は、第1の視線推定値と第2の視線推定値との大小を比較する。第2の視線推定値よりも第1の視線推定値が大きい場合、処理はステップS3202に進む。ステップS3202において、視線総合推定部3700は、視線総合推定値として第1の視線推定値を使用する。一方、ステップS3200で第1の視線推定値が第2の視線推定値以下であると判定された場合、処理はステップS3201に進む。ステップS3201において、視線総合推定部3700は、視線総合推定値として第2の視線推定値を使用する。
【0064】
以上では、第1の視線推定値と第2の視線推定値とを統合する方法として、値の大きい視線推定値を視線総合推定値として設定する方法について説明した。この他にも、第1の視線推定値と第2の視線推定値とを統合する方法として、夫々の視線推定値の平均を視線総合推定値として設定する方法等もある。また、第1の実施形態で説明したような第1の視線、第2の視線の信頼度を算出し、第1の視線推定値と第2の視線推定値とに対して、以下の式のように信頼度で重み付けするようにしてもよい。
視線総合推定値=第1の視線の信頼度×第1の視線推定値+第2の視線の信頼度×第2の視線推定値
【0065】
ステップS3013において、記憶部3800は、視線総合推定結果に基づいて、ステップS3000において取得された画像データを不揮発性メモリ等に記憶する。以上のように本実施形態では、左目領域の特徴量及び顔の向きに対応する特徴量から決まる第1の視線と、右目領域の特徴量及び顔の向きに対応する特徴量から決まる第2の視線とを夫々別々に算出し、総合的に視線方向を推定する。これにより、本実施形態よれば、利き目等にも対応し、より高精度な視線推定を実現することができる。
【0066】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【符号の説明】
【0067】
1000、3000:画像取得部、1100、3100:顔検出部、1200、3200:正規化画像生成部、1300、3300:特徴量抽出部、1400、3400:視線信頼度算出部、1500:目選択部、1600:目領域特徴量抽出部、1700:視線推定部、3500:第1の視線推定部、3600:第2の視線推定部、3700:視線総合推定部、3800:記憶部
【特許請求の範囲】
【請求項1】
画像データから顔を検出する検出手段と、
前記検出手段により検出された前記顔の向きに対応する特徴量を前記画像データから抽出する第1の抽出手段と、
前記検出手段により検出された前記顔に基づいて視線の信頼度を算出する算出手段と、
前記算出手段により算出された視線の信頼度に応じて目を選択する選択手段と、
前記選択手段により選択された目の目領域の特徴量を前記画像データから抽出する第2の抽出手段と、
前記顔の向きに対応する特徴量と前記目領域の特徴量とに基づいて視線を推定する推定手段とを有することを特徴とする視線検出装置。
【請求項2】
画像データから顔を検出する検出手段と、
前記検出手段により検出された前記顔の向きに対応する特徴量を前記画像データから抽出する第1の抽出手段と、
前記顔の右目領域の特徴量と左目領域の特徴量とを前記画像データから抽出する第2の抽出手段と、
前記顔の向きに対応する特徴量と前記右目領域の特徴量とに基づいて第1の視線を推定するとともに、前記顔の向きに対応する特徴量と前記左目領域の特徴量とに基づいて第2の視線を推定する第1の推定手段と、
前記第1の推定手段により推定された前記第1の視線と前記第2の視線とに基づいて視線を推定する第2の推定手段とを有することを特徴とする視線検出装置。
【請求項3】
前記検出手段により検出された前記顔に基づいて、前記第1の視線の信頼度と前記第2の視線の信頼度とを算出する算出手段を更に有し、
前記第2の推定手段は、前記第1の視線について前記第1の視線の信頼度に応じた重み付けを行うとともに、前記第2の視線について前記第2の視線の信頼度に応じた重み付けを行って視線を推定することを特徴とする請求項2に記載の視線検出装置。
【請求項4】
前記算出手段は、前記顔の器官の空間的な配置関係に基づいて視線の信頼度を算出することを特徴とする請求項1又は3に記載の視線検出装置。
【請求項5】
前記算出手段は、前記顔の器官の分布に基づいて視線の信頼度を算出することを特徴とする請求項1又は3に記載の視線検出装置。
【請求項6】
前記算出手段は、前記顔の目又は瞳の大きさに基づいて視線の信頼度を算出することを特徴とする請求項1又は3に記載の視線検出装置。
【請求項7】
前記算出手段は、前記第1の抽出手段により抽出された前記顔の向きに対応する特徴量に基づいて視線の信頼度を算出することを特徴とする請求項1又は3に記載の視線検出装置。
【請求項8】
前記特徴量は、エッジ、輝度、色、周波数、及び、これらのヒストグラムのうちの少なくとも何れかであることを特徴とする請求項1乃至7の何れか1項に記載の視線検出装置。
【請求項9】
視線検出装置によって実行される視線検出方法であって、
画像データから顔を検出する検出ステップと、
前記検出ステップにより検出された前記顔の向きに対応する特徴量を前記画像データから抽出する第1の抽出ステップと、
前記検出ステップにより検出された前記顔に基づいて視線の信頼度を算出する算出ステップと、
前記算出ステップにより算出された視線の信頼度に応じて目を選択する選択ステップと、
前記選択ステップにより選択された目の目領域の特徴量を前記画像データから抽出する第2の抽出ステップと、
前記顔の向きに対応する特徴量と前記目領域の特徴量とに基づいて視線を推定する推定ステップとを含むことを特徴とする視線検出方法。
【請求項10】
視線検出装置によって実行される視線検出方法であって、
画像データから顔を検出する検出ステップと、
前記検出ステップにより検出された前記顔の向きに対応する特徴量を前記画像データから抽出する第1の抽出ステップと、
前記顔の右目領域の特徴量と左目領域の特徴量とを前記画像データから抽出する第2の抽出ステップと、
前記顔の向きに対応する特徴量と前記右目領域の特徴量とに基づいて第1の視線を推定するとともに、前記顔の向きに対応する特徴量と前記左目領域の特徴量とに基づいて第2の視線を推定する第1の推定ステップと、
前記第1の推定ステップにより推定された前記第1の視線と前記第2の視線とに基づいて視線を推定する第2の推定ステップとを含むことを特徴とする視線検出方法。
【請求項11】
画像データから顔を検出する検出ステップと、
前記検出ステップにより検出された前記顔の向きに対応する特徴量を前記画像データから抽出する第1の抽出ステップと、
前記検出ステップにより検出された前記顔に基づいて視線の信頼度を算出する算出ステップと、
前記算出ステップにより算出された視線の信頼度に応じて目を選択する選択ステップと、
前記選択ステップにより選択された目の目領域の特徴量を前記画像データから抽出する第2の抽出ステップと、
前記顔の向きに対応する特徴量と前記目領域の特徴量とに基づいて視線を推定する推定ステップとをコンピュータに実行させるためのプログラム。
【請求項12】
画像データから顔を検出する検出ステップと、
前記検出ステップにより検出された前記顔の向きに対応する特徴量を前記画像データから抽出する第1の抽出ステップと、
前記顔の右目領域の特徴量と左目領域の特徴量とを前記画像データから抽出する第2の抽出ステップと、
前記顔の向きに対応する特徴量と前記右目領域の特徴量とに基づいて第1の視線を推定するとともに、前記顔の向きに対応する特徴量と前記左目領域の特徴量とに基づいて第2の視線を推定する第1の推定ステップと、
前記第1の推定ステップにより推定された前記第1の視線と前記第2の視線とに基づいて視線を推定する第2の推定ステップとをコンピュータに実行させるためのプログラム。
【請求項1】
画像データから顔を検出する検出手段と、
前記検出手段により検出された前記顔の向きに対応する特徴量を前記画像データから抽出する第1の抽出手段と、
前記検出手段により検出された前記顔に基づいて視線の信頼度を算出する算出手段と、
前記算出手段により算出された視線の信頼度に応じて目を選択する選択手段と、
前記選択手段により選択された目の目領域の特徴量を前記画像データから抽出する第2の抽出手段と、
前記顔の向きに対応する特徴量と前記目領域の特徴量とに基づいて視線を推定する推定手段とを有することを特徴とする視線検出装置。
【請求項2】
画像データから顔を検出する検出手段と、
前記検出手段により検出された前記顔の向きに対応する特徴量を前記画像データから抽出する第1の抽出手段と、
前記顔の右目領域の特徴量と左目領域の特徴量とを前記画像データから抽出する第2の抽出手段と、
前記顔の向きに対応する特徴量と前記右目領域の特徴量とに基づいて第1の視線を推定するとともに、前記顔の向きに対応する特徴量と前記左目領域の特徴量とに基づいて第2の視線を推定する第1の推定手段と、
前記第1の推定手段により推定された前記第1の視線と前記第2の視線とに基づいて視線を推定する第2の推定手段とを有することを特徴とする視線検出装置。
【請求項3】
前記検出手段により検出された前記顔に基づいて、前記第1の視線の信頼度と前記第2の視線の信頼度とを算出する算出手段を更に有し、
前記第2の推定手段は、前記第1の視線について前記第1の視線の信頼度に応じた重み付けを行うとともに、前記第2の視線について前記第2の視線の信頼度に応じた重み付けを行って視線を推定することを特徴とする請求項2に記載の視線検出装置。
【請求項4】
前記算出手段は、前記顔の器官の空間的な配置関係に基づいて視線の信頼度を算出することを特徴とする請求項1又は3に記載の視線検出装置。
【請求項5】
前記算出手段は、前記顔の器官の分布に基づいて視線の信頼度を算出することを特徴とする請求項1又は3に記載の視線検出装置。
【請求項6】
前記算出手段は、前記顔の目又は瞳の大きさに基づいて視線の信頼度を算出することを特徴とする請求項1又は3に記載の視線検出装置。
【請求項7】
前記算出手段は、前記第1の抽出手段により抽出された前記顔の向きに対応する特徴量に基づいて視線の信頼度を算出することを特徴とする請求項1又は3に記載の視線検出装置。
【請求項8】
前記特徴量は、エッジ、輝度、色、周波数、及び、これらのヒストグラムのうちの少なくとも何れかであることを特徴とする請求項1乃至7の何れか1項に記載の視線検出装置。
【請求項9】
視線検出装置によって実行される視線検出方法であって、
画像データから顔を検出する検出ステップと、
前記検出ステップにより検出された前記顔の向きに対応する特徴量を前記画像データから抽出する第1の抽出ステップと、
前記検出ステップにより検出された前記顔に基づいて視線の信頼度を算出する算出ステップと、
前記算出ステップにより算出された視線の信頼度に応じて目を選択する選択ステップと、
前記選択ステップにより選択された目の目領域の特徴量を前記画像データから抽出する第2の抽出ステップと、
前記顔の向きに対応する特徴量と前記目領域の特徴量とに基づいて視線を推定する推定ステップとを含むことを特徴とする視線検出方法。
【請求項10】
視線検出装置によって実行される視線検出方法であって、
画像データから顔を検出する検出ステップと、
前記検出ステップにより検出された前記顔の向きに対応する特徴量を前記画像データから抽出する第1の抽出ステップと、
前記顔の右目領域の特徴量と左目領域の特徴量とを前記画像データから抽出する第2の抽出ステップと、
前記顔の向きに対応する特徴量と前記右目領域の特徴量とに基づいて第1の視線を推定するとともに、前記顔の向きに対応する特徴量と前記左目領域の特徴量とに基づいて第2の視線を推定する第1の推定ステップと、
前記第1の推定ステップにより推定された前記第1の視線と前記第2の視線とに基づいて視線を推定する第2の推定ステップとを含むことを特徴とする視線検出方法。
【請求項11】
画像データから顔を検出する検出ステップと、
前記検出ステップにより検出された前記顔の向きに対応する特徴量を前記画像データから抽出する第1の抽出ステップと、
前記検出ステップにより検出された前記顔に基づいて視線の信頼度を算出する算出ステップと、
前記算出ステップにより算出された視線の信頼度に応じて目を選択する選択ステップと、
前記選択ステップにより選択された目の目領域の特徴量を前記画像データから抽出する第2の抽出ステップと、
前記顔の向きに対応する特徴量と前記目領域の特徴量とに基づいて視線を推定する推定ステップとをコンピュータに実行させるためのプログラム。
【請求項12】
画像データから顔を検出する検出ステップと、
前記検出ステップにより検出された前記顔の向きに対応する特徴量を前記画像データから抽出する第1の抽出ステップと、
前記顔の右目領域の特徴量と左目領域の特徴量とを前記画像データから抽出する第2の抽出ステップと、
前記顔の向きに対応する特徴量と前記右目領域の特徴量とに基づいて第1の視線を推定するとともに、前記顔の向きに対応する特徴量と前記左目領域の特徴量とに基づいて第2の視線を推定する第1の推定ステップと、
前記第1の推定ステップにより推定された前記第1の視線と前記第2の視線とに基づいて視線を推定する第2の推定ステップとをコンピュータに実行させるためのプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【公開番号】特開2012−37934(P2012−37934A)
【公開日】平成24年2月23日(2012.2.23)
【国際特許分類】
【出願番号】特願2010−174730(P2010−174730)
【出願日】平成22年8月3日(2010.8.3)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成24年2月23日(2012.2.23)
【国際特許分類】
【出願日】平成22年8月3日(2010.8.3)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]