(57)【特許請求の範囲】
【請求項１】
画像データから顔を検出する第１の検出手段と、
検出された前記顔における左右それぞれの目の複数の所定部位を検出する第２の検出手段と、
検出された前記顔の向きに対応する特徴量を前記画像データから抽出する第１の抽出手段と、
検出された前記複数の所定部位の相対位置関係に基づいて前記左右それぞれの目の視線の信頼度を算出する算出手段と、
算出された前記左右それぞれの目の視線の信頼度に基づいて前記左右の目の少なくとも１つを選択する選択手段と、
前記選択手段により選択された目の目領域の特徴量を前記画像データから抽出する第２の抽出手段と、
前記顔の向きに対応する特徴量と前記選択された目の目領域の特徴量とに基づいて視線を推定する推定手段とを有することを特徴とする視線検出装置。
【請求項２】
検出された前記顔のサイズを判定する判定手段を更に有し、
前記第２の検出手段は、前記判定手段により所定サイズ以上と判定された顔から前記複数の所定部位を検出することを特徴とする請求項１に記載の視線検出装置。
【請求項３】
検出された前記顔の向きが所定の向きで解像度がそれぞれ異なる２つの正規化画像を生成する生成手段を更に有し、
前記第１の抽出手段は、前記２つの正規化画像のうち低解像度の正規化画像から前記顔の向きに対応する特徴量を抽出し、
前記第２の抽出手段は、前記２つの正規化画像のうち高解像度の正規化画像から前記選択された目の目領域の特徴量を抽出することを特徴とする請求項１又は２に記載の視線検出装置。
【請求項４】
前記選択された目の目領域の幅及び高さを正規化した画像を生成する第２の生成手段を更に有し、
前記第２の抽出手段は、前記第２の生成手段により生成された画像から前記選択された目の目領域の特徴量を抽出することを特徴とする請求項１乃至３の何れか１項に記載の視線検出装置。
【請求項５】
前記目の複数の所定部位は、目領域の幅及び高さを規定する部位であり、
前記第２の生成手段は、前記選択された目の複数の所定部位に基づいて、前記選択された目の目領域の幅及び高さを正規化した画像を生成することを特徴とする請求項４に記載の視線検出装置。
【請求項６】
前記特徴量は、エッジ、輝度、色、周波数、及び、これらのヒストグラムのうちの少なくとも何れかであることを特徴とする請求項１乃至５の何れか１項に記載の視線検出装置。
【請求項７】
視線検出装置によって実行される視線検出方法であって、
画像データから顔を検出する第１の検出ステップと、
検出された前記顔における左右それぞれの目の複数の所定部位を検出する第２の検出ステップと、
検出された前記顔の向きに対応する特徴量を前記画像データから抽出する第１の抽出ステップと、
検出された前記複数の所定部位の相対位置関係に基づいて前記左右それぞれの目の視線の信頼度を算出する算出ステップと、
算出された前記左右それぞれの目の視線の信頼度に基づいて前記左右の目の少なくとも１つを選択する選択ステップと、
前記選択ステップにより選択された目の目領域の特徴量を前記画像データから抽出する第２の抽出ステップと、
前記顔の向きに対応する特徴量と前記選択された目の目領域の特徴量とに基づいて視線を推定する推定ステップとを含むことを特徴とする視線検出方法。
【請求項８】
画像データから顔を検出する第１の検出ステップと、
検出された前記顔における左右それぞれの目の複数の所定部位を検出する第２の検出ステップと、
検出された前記顔の向きに対応する特徴量を前記画像データから抽出する第１の抽出ステップと、
検出された前記複数の所定部位の相対位置関係に基づいて前記左右それぞれの目の視線の信頼度を算出する算出ステップと、
算出された前記左右それぞれの目の視線の信頼度に基づいて前記左右の目の少なくとも１つを選択する選択ステップと、
前記選択ステップにより選択された目の目領域の特徴量を前記画像データから抽出する第２の抽出ステップと、
前記顔の向きに対応する特徴量と前記選択された目の目領域の特徴量とに基づいて視線を推定する推定ステップとをコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、視線を推定するための技術に関するものである。
【背景技術】
【０００２】
従来、左右の黒目と目尻とを含む顔画像を用いて人物の視線を判定する技術が知られている（例えば、特許文献１参照）。但し、従来技術においては、図２４に示すように、目の向きα１だけを推定するもので、顔の向きβ１は考慮されていない。これに対し、画像データ内の顔から眼等の特徴点を検出し、検出した特徴点間の距離を使用して、目の向きα１と顔の向きβ１との双方から視線方向を推定する技術が知られている（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−２５６８５２号公報
【特許文献２】特開２００７−２６５３６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来技術においては、顔が横を向いて片方の目が隠れてしまう、髪の毛により目が隠れてしまう等の事象が発生した場合、視線検出精度の大きな低下を招く可能性がある。また、利き目等の問題があり、例えば所定の方向を注視した場合に、右目は所定の方向を向いているように見えるが、左目は所定の方向を向いていないように見える等の問題がある。
【０００５】
そこで、本発明の目的は、目の隠れや利き目等に左右されない高精度な視線検知を実現することにある。
【課題を解決するための手段】
【０００６】
本発明の視線検出装置は、画像データから顔を検出する第１の検出手段と、検出された前記顔における左右それぞれの目の複数の所定部位を検出する第２の検出手段と、検出された前記顔の向きに対応する特徴量を前記画像データから抽出する第１の抽出手段と、検出された前記複数の所定部位の相対位置関係に基づいて前記左右それぞれの目の視線の信頼度を算出する算出手段と、算出された前記左右それぞれの目の視線の信頼度に基づいて前記左右の目の少なくとも１つを選択する選択手段と、前記選択手段により選択された目の目領域の特徴量を前記画像データから抽出する第２の抽出手段と、前記顔の向きに対応する特徴量と前記選択された目の目領域の特徴量とに基づいて視線を推定する推定手段とを有することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、目の隠れや利き目等に左右されない高精度な視線検知を実現することが可能となる。
【図面の簡単な説明】
【０００８】
【図１】本発明の第１の実施形態に係る視線検出装置の機能的な構成を示す図である。
【図２】本発明の第１の実施形態に係る視線検出装置の視線検出方法を示すフローチャートである。
【図３】顔の中心位置や目や口等の中心位置等を示す図である。
【図４】画像データの正規化処理を説明するための図である。
【図５】顔の向きに対応する特徴量を説明するための図である。
【図６】図２のステップＳ１００９の詳細を示すフローチャートである。
【図７】目付近の画像データから瞳部分の画像データを検出し、瞳部分の画像データの面積を算出する処理を説明するための図である。
【図８】視線信頼度算出部が特徴点の検出位置の空間的な配置に基づいて第１の視線、第２の視線の信頼度を算出する処理を示すフローチャートである。
【図９】目の特徴点位置を示す図である。
【図１０】目尻特徴点を検出するテンプレートと、テンプレートと目の画像データとのマッチング結果とを示す図である。
【図１１】顔の向きに対応する特徴量を使用して顔の向きを推定し、推定した顔の向きに基づいて視線の信頼度を算出する処理を説明するための図である。
【図１２】視線信頼度算出部が顔向き推定結果に基づいて視線の信頼度を設定する処理を示すフローチャートである。
【図１３】図２のステップＳ１０１０の詳細を示すフローチャートである。
【図１４】図２のステップＳ１０１１の詳細を示すフローチャートである。
【図１５】左目領域の画像データと右目領域の画像データとを切り出す処理を説明するための図である。
【図１６】目領域の画像データの正規化処理を説明するための図である。
【図１７】目領域の画像データの正規化処理を説明するための図である。
【図１８】図２のステップＳ１０１２の詳細を示すフローチャートである。
【図１９】目の選択結果に基づいた視線特徴量の生成方法を説明するための図である。
【図２０】本発明の第２の実施形態に係る視線検出装置の機能的な構成を示す図である。
【図２１】本発明の第２の実施形態に係る視線検出装置の視線検出方法を示すフローチャートである。
【図２２】図２１のステップＳ３０１２の詳細を示すフローチャートである。
【図２３】ステップＳ３０１０、ステップＳ３０１１の出力が連続値、つまり、値そのものが方向である場合における視線総合推定値の決定方法を示すフローチャートである。
【図２４】従来技術の例を説明するための図である。
【発明を実施するための形態】
【０００９】
以下、本発明を適用した好適な実施形態を、添付図面を参照しながら詳細に説明する。
【００１０】
先ず、本発明の第１の実施形態について説明する。図１は、本発明の第１の実施形態に係る視線検出装置の機能的な構成を示す図である。なお、図１に示す各機能的な構成は、本実施形態に係る視線検出プログラムがメモリ上にダウンロードされ、これをＣＰＵが実行することにより実現する構成である。
【００１１】
図１に示すように、本実施形態に係る視線検出装置は、画像取得部１０００、顔検出部１１００、正規化画像生成部１２００、特徴量抽出部１３００、視線信頼度算出部１４００、目選択部１５００、目領域特徴量抽出部１６００及び視線推定部１７００で構成されている。画像取得部１０００は、画像データを取得する。顔検出部１１００は、画像取得部１０００で取得された画像データから顔の中心位置を検出する。また、顔検出部１１００は、目や口等の顔を構成するパーツの中心位置、目尻や目頭等の更に細かな特徴点や瞳の位置等の器官位置も検出する。正規化画像生成部１２００は、顔検出部１１００において検出された中心位置や器官位置を使用して、顔の大きさが所定のサイズで、且つ顔の向きが正立するように正規化を行い、複数の異なる解像度の画像データを生成する。特徴量抽出部１３００は、正規化画像生成部１２００で生成された画像データを使用して顔の向きに対応する特徴量を抽出する。視線信頼度算出部１４００は、顔検出部１１００で検出された中心位置や器官位置に基づいて、視線の信頼度を算出する。目選択部１５００は、視線信頼度算出部１４００で算出された視線の信頼度に基づいて、右目、左目、両目の何れかの選択を行う。目領域特徴量抽出部１６００は、正規化画像生成部１２００で生成された画像データを使用して目領域の特徴量を抽出する。視線推定部１７００は、特徴量抽出部１３００で抽出された顔の向きに対応する特徴量と、目領域特徴量抽出部１６００で抽出された目領域の特徴量とを使用して視線方向の推定を行う。
【００１２】
なお、顔検出部１１００は、本発明の検出手段の適用例となる構成である。特徴量抽出部１３００は、本発明の第１の抽出手段の適用例となる構成である。視線信頼度算出部１４００は、本発明の算出手段の適用例となる構成である。目選択部１５００は、本発明の選択手段の適用例となる構成である。目領域特徴量抽出部１６００は、本発明の第２の抽出手段の適用例となる構成である。視線推定部１７００は、本発明の推定手段の適用例となる構成である。
【００１３】
図２は、本発明の第１の実施形態に係る視線検出装置の視線検出方法を示すフローチャートである。以下、図２を参照しながら、本実施形態における視線検出方法について説明する。
【００１４】
ステップＳ１０００において、画像取得部１０００は画像データを取得する。画像データの取得方法としては、例えば、デジタルカメラ等の撮像手段で撮影され、不揮発性メモリ等に記憶された画像データや、ハードディスクドライブに記憶されている画像データを取得する等の様々な方法がある。
【００１５】
ステップＳ１００１において、顔検出部１１００は、ステップＳ１０００で取得された画像データ内に顔が含まれているか否かを判定する。本実施形態では、人物の顔を前提として説明するが、犬や猫等の動物の顔であってもよい。ここで得られる結果はおおよそ図３の顔の中心位置１０３２である。なお、顔検出手法については、次の文献等で開示されている。
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
【００１６】
その他にも、ニューラルネットワークを使用する方法が次の文献等で開示されているが、人物の顔を検出する方法であれば、その手法は特に限定されない。なお、次の文献では、目や口等を検出し、その空間的な配置関係から顔であると判定する顔検出方法も開示されており、顔の中心位置に加えて目や口等の中心位置も得られる場合がある。本実施形態では、本手法を使用する。そのため、ステップＳ１００１での顔検出処理では、顔の中心位置、目や口等の中心位置が得られる。
御手洗祐輔, 森克彦, 真継優和, “選択的モジュール起動を用いたConvolutionalNeuralNetworksによる変動にロバストな 顔検出システム”, FIT (情報科学技術フォーラム), Ll-013, 2003
【００１７】
ステップＳ１００２において、顔検出部１２００は、顔が検出されたかどうかを判定する。顔が検出されていない場合には、ステップＳ１０００に戻り、別の画像データが取得される。顔が検出された場合には、ステップＳ１００３に進む。
【００１８】
ステップＳ１００３において、顔検出部１１００は、ステップＳ１００２で検出された顔のうちから１つの顔を選択する。ステップＳ１００４において、顔検出部１１００は、ステップＳ１００３で選択された顔の大きさが所定の大きさ以上であるかどうかを判定する。顔が小さい人物に対しては情報量が不足し、視線を高精度に検出できない恐れがある。そのため、大きさが一定以上の顔だけに対して視線検出を実行するようにしている。顔の大きさとは、例えば、図３の左目の中心位置１０２５と右目の中心位置１０３１との間の距離、肌色の面積等の顔の大きさを示す尺度であれば何でもよい。本実施形態では、左目の中心位置１０２５と右目の中心位置１０３１との間の距離の２倍を顔の大きさとして定義する。左目の中心位置１０２５と右目の中心位置１０３１は、例えば、ステップＳ１００１で検出された顔の中心位置より、統計的に左右の目が存在し得る範囲を設定し、その範囲内で予め用意しておいたテンプレート等を使用して探索するようにしてもよい。
【００１９】
ステップＳ１００４において、顔の大きさが所定の大きさ以上でないと判定された場合、処理はステップＳ１００５へ進む。ステップＳ１００５において、顔検出部１１００は、ステップＳ１００１で検出された顔のうち、選択されていない顔があるかどうかを判定する。全ての顔が選択されている場合には、処理はステップＳ１０００に戻り、画像取得部１０００によって別の画像データが取得される。一方、全ての顔が選択されていない場合には、処理はステップＳ１００３に戻り、顔検出部１１００は選択していない顔を選択する。
【００２０】
一方、ステップＳ１００４において、顔の大きさが所定の大きさ以上であると判定された場合、処理はステップＳ１００６に進む。ステップＳ１００６において、顔検出部１１００は、顔の中心位置１０３２等に加え、目頭１０２１、１０２７や目尻１０２０、１０２６等の特徴点位置の検出を行う。また、ここでは瞳が存在するかどうかを検出する。これらの位置や瞳が存在するか否かを検出する方法としては、予め用意しておいたテンプレート等を使用する、エッジを走査する等、様々な手法がある。瞳が存在した場合には、顔検出部１１００は、図７に示すように、目付近の画像データ７０１、７０３から瞳部分の画像データ７０２、７０４を検出し、瞳部分の画像データの面積を算出する。
【００２１】
ステップＳ１００７において、正規化画像生成部１２００は、ステップＳ１００１で検出された左目の中心位置１０２５、右目の中心位置１０３１、顔の中心位置１０３２を用いて、図４に示すように、アフィン変換等を使用して、顔の向きが正立、且つ顔が所定サイズの解像度の異なる画像データを２種類１１０４、１１０５生成する。具体的には、図４に示すように、正規化画像生成部１２００は、正規化前の画像データ１１００の左目の中心位置１０２５及び右目の中心位置１０３１から、距離Ｌと水平方向に対する角度θとを算出する。そして正規化画像生成部１２００は、距離Ｌが所定の距離Ｌ´、θ=０となるようにアフィン変換を行う。拡大及び縮小方法は、ニアレストネイバー法やバイリニア法等の様々な方法がある。なお、本実施形態では、画像データの正規化に左目の中心位置１０２５、右目の中心位置１０３１、顔の中心位置１０３２を使用したが、これに限られるわけではない。また、ステップＳ１００７で正規化された２種類の画像データ（以下、正規化画像データと称す）は、顔の向きに対応する特徴量、目領域の特徴量が抽出される際に使用される。さらに、これに加えて照明の影響を軽減させるためにコントラストを補正する処理等の輝度値の変換処理を実施してもよい。
【００２２】
解像度の異なる正規化画像データは２種類に限定するのではなく、予め解像度の異なる複数の画像（ピラミッド画像）データを生成しておき、その中から選択するようにしてもよい。このように、予め解像度の異なる複数の画像（ピラミッド画像）データを生成しておくことで、視線検出以外のパターン認識にも活用することができる。さらに、始めに目領域の特徴量の抽出に使用する高解像度画像データを生成後、縮小処理により顔の向きに対応する特徴量の抽出に使用する低解像度画像データを段階的に生成するようにしてもよい。
【００２３】
ステップＳ１００８では、顔の向きに対応する特徴量であれば何でもよいが、本実施形態ではエッジ特徴を使用する。またステップＳ１００８においては、特徴量抽出部１３００は、ステップＳ１００７で生成された２種類の正規化画像データのうち、解像度の低い正規化画像データ１１０５を使用して、顔の向きに対応する特徴量を抽出する。本実施形態では、顔の向きに対応する特徴量にはエッジ特徴を使用する。エッジ特徴の抽出には、画像データを構成する画素値の１次微分、２次微分を使用する方法が一般的であるが、本実施形態では１次微分を使用してエッジ特徴を抽出する。図５（ａ）、図５（ｃ）はＸ方向の１次微分を使用して抽出されたエッジ特徴のデータ（１次微分エッジ画像データ）、図５（ｂ）、図５（ｄ）はＹ方向の１次微分を使用して抽出されたエッジ特徴のデータ（１次微分エッジ画像データ）を示している。本実施形態では、顔の輪郭エッジの位置や形状等を捉えるようにしているが、耳、鼻、髪の位置や形状等を使用するようにしてもよい。よって、ステップＳ１００８で生成される特徴量は、Ｘ方向の１次微分エッジ画像データとＹ方向の１次微分エッジ画像データとを構成する画素値そのものを１要素とした特徴ベクトルを領域の特徴量とする。例えば、Ｘ方向の１次微分エッジ画像データとＹ方向の１次微分エッジ画像データとを３０×３０とした場合には、１８００次元の特徴ベクトルが生成される。なお、エッジ以外でも、輝度、色や、次の文献に開示されるような周波数、輝度、これらのヒストグラムを使用するようにしてもよい。
鈴木亜紀子, 滝口哲也, 有木康雄, “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
【００２４】
図６は、図２のステップＳ１００９の詳細を示すフローチャートである。ステップＳ１００９では、視線信頼度算出部１４００は、ステップＳ１００６での瞳検出結果に基づいて視線の信頼度を算出する。ここでは、信頼度は目の表出の程度等で表され、その値が高いほど視線推定に使用しても問題ないということを示している。
【００２５】
図６のステップＳ１１００において、視線信頼度算出部１４００は、ステップＳ１００６で算出された瞳部分の画像データの面積において、左瞳の画像データの面積が所定の面積以上であるかどうかを判定する。左瞳の画像データの面積が所定の面積以上である場合、処理はステップＳ１１０１に進む。ステップＳ１１０１において、視線信頼度算出部１４００は、左目が十分に表出しているものとして第１の視線の信頼度を１とする。一方、左瞳の画像データの面積が所定の面積以上でない場合、処理はステップ１１０２に進む。ステップＳ１１０２において、視線信頼度算出部１４００は、左目が十分に表出していないものとして第１の視線の信頼度を０とする。ステップＳ１１０３において、視線信頼度算出部１４００は、ステップＳ１００６で算出された瞳部分の画像データの面積において、右瞳の画像データの面積が所定の面積以上かどうかを判定する。右瞳の画像データの面積が所定の面積以上である場合、処理はステップＳ１１０４に進む。ステップＳ１１０４において、視線信頼度算出部１４００は、右目が十分に表出しているものとして第２の視線の信頼度を１とする。一方、右瞳の画像データの面積が所定の面積以上でない場合、処理はステップＳ１１０５に進む。ステップＳ１１０５において、視線信頼度算出部１４００は、右目が十分に表出していないものとして第２の視線の信頼度を０とする。
【００２６】
以上、顔が回転した場合、髪の毛等の隠れによって左右の目が十分に表出しているか否かを瞳の面積に基づく視線の信頼度によって表現している。なお、瞳ではなく、白目部分も含む目領域の面積を使用してもよい。
【００２７】
本実施形態では、瞳の面積に対して閾値処理を実施し、その結果に応じて第１の視線、第２の視線の信頼度を０、１としている。しかし、瞳の面積に対して閾値処理を実施しなくとも、瞳の面積そのものを第１の視線、２視線の信頼度として設定するようにしてもよい。この他にも、目尻、目頭、上瞼、下瞼等の特徴点の検出結果に基づいて、第１の視線、第２の視線の信頼度を算出するようにしてもよい。
【００２８】
図８は、視線信頼度算出部１４００が特徴点の検出位置の空間的な配置に基づいて第１の視線、第２の視線の信頼度を算出する処理を示すフローチャートである。ステップＳ２２００において、視線信頼度算出部１４００は、左目の特徴点（目尻、目頭、上瞼、下瞼）検出位置に基づいて、第１の視線の信頼度算出を行う。ここで、目尻特徴点位置と目頭特徴点位置とのＹ座標はほぼ同じ値になる。また、上瞼特徴点位置と下瞼特徴点位置とのＸ座標はほぼ同じ値なる。目尻特徴点位置と目頭特徴点位置とのＸ座標の中点と、上瞼特徴点位置と下瞼特徴点位置との夫々のＸ座標はほぼ同じ値になる。図８に示す処理において、視線信頼度算出部１４００は、このような特徴点位置の空間的な配置関係を使用して視線の信頼度を設定する。即ち、図９に示すように、検出された目尻特徴点位置２０２４、目頭特徴点位置２０２５、上瞼特徴点位置２０２６、下瞼特徴点値が以下の４つの条件を全て満たした場合、視線信頼度算出部１４００は、視線の信頼度を１とする。但し、本発明に適用できる条件が以下の４つの条件に限られるわけではない。
条件（１）：目尻特徴点のＹ座標−目頭特徴点のＹ座標＜Ｔｈ１
条件（２）：上瞼特徴点のＸ座標−下瞼特徴点のＸ座標＜Ｔｈ２
条件（３）（目尻特徴点のＸ座標＋目頭特徴点のＸ座標）／２−上瞼特徴点のＸ座標＜Ｔｈ３
条件（４）：目尻特徴点のＸ座標＋目頭特徴点のＸ座標）／２−下瞼特徴点のＸ座標＜Ｔｈ４
また、条件（１）〜（４）に対して夫々閾値処理を実施するのではなくて、条件（１）〜（４）の左辺の値そのものを視線の信頼度とするようにしてもよい。この場合には、逆に０に近い程、信頼できる意味を持つようになる。ステップＳ２２０１でも同様、視線信頼度算出部１４００は、右目の特徴点（目尻、目頭、上瞼、下瞼）位置に基づいて、第２の視線の信頼度の算出を行う。
【００２９】
また、目の特徴点検出位置の空間的な配置関係以外にも、特徴点の検出位置そのものの分布等を使用するようにしてもよい。図１０は、目尻特徴点を検出するテンプレート２０３０と、テンプレート２０３０と目の画像データ２０３２とのマッチング結果２０３１とを示している。図１０のマッチング結果２０３１の白色領域は、目の画像データ２０３２のうちテンプレート２０３０と一致する可能性の高い領域を示している。そのため、視線信頼度算出部１４００は、この白色領域における所定値以上の画素値の分散や尖鋭度等を求め、これらの値に基づいて、視線の信頼度を算出するようにしてもよい。
【００３０】
さらに、視線信頼度算出部１４００は、ステップＳ１００８で抽出された顔の向きに対応する特徴量を使用して顔の向きを推定し、推定した顔の向きに基づいて視線の信頼度を算出するようにしてもよい。なお、顔の向きを推定するためには顔の向き推定器が必要であるが、本実施形態では、次の文献に開示されるSupport Vector Machine（以下、ＳＶＭ）を使用する。但し、本発明に適用可能な顔の向き推定器はＳＶＭに限定されるわけではない。
V. Vapnik. “Statistical Learning Theory”, John Wiley & Sons, 1998
例えば図１１に示すように、左向き（−６０度〜−３０度）、正面向き（−３０度〜３０度）、右向き（３０度〜６０度）の３つのパターンを分類する識別器を予め用意しておく。具体的には、左向きをポジティブデータ、それ以外をネガティブデータ、正面向きをポジティブデータ、それ以外をネガティブデータ等として３つの識別器を用意しておく。そして、３つの識別器のうち、最も高い値を算出した識別器に対応する顔の向きを人物の顔の向きとして決定する方法である。なお、本実施形態では、顔の向きの分解能を３つとしたが、本発明がその３つに限られるわけではない。また、左向きを−６０度〜−３０度、正面向きを−３０度〜３０度、右向きを３０度〜６０度として定義したが、これに限られるわけではない。
【００３１】
図１２は、視線信頼度算出部１４００が顔向き推定結果に基づいて視線の信頼度を設定する処理を示すフローチャートである。ステップＳ２３００において、視線信頼度算出部１４００は、ステップＳ１００８で抽出された顔の向きに対応する特徴量を使用して、顔の向きを推定する。ステップＳ２３０１において、視線信頼度算出部１４００は、顔の向きが正面向きかどうかを判定する。顔の向きが正面向きである場合、処理はステップＳ２３０２へ進む。ステップＳ２３０２において、視線信頼度算出部１４００は、第１の視線の信頼度を１、第２の視線の信頼度を１に設定する。一方、顔の向きが正面向きでない場合、処理はステップＳ２３０３に進む。ステップＳ２３０３において、視線信頼度算出部１４００は、顔の向きが左向きかどうかを判定する。顔の向きが左向きである場合、処理はステップＳ２３０４に進む。ステップＳ２３０４において、視線信頼度算出部１４００は、第１の視線の信頼度を０、第２の視線の信頼度を１に設定する。一方、顔の向きが左向きでない場合、処理はステップＳ２３０５へ進む。ステップＳ２３０５において、視線信頼度算出部１４００は、第１の視線の信頼度を１、第２の視線の信頼度を０に設定する。
【００３２】
図１３は、図２のステップＳ１０１０の詳細を示すフローチャートである。ステップＳ１０１０において、目選択部１５００は、ステップＳ１００９で算出された第１の視線の信頼度、第２の視線の信頼度に基づいて、目領域の特徴量として、右目、左目、両方の目のどれを使用するか選択する。
【００３３】
ステップＳ１２０１において、目選択部１５００は、第１の視線の信頼度が所定の閾値Ｔｈ１以上であるかどうかを判断する。第１の視線の信頼度が所定の閾値Ｔｈ１以上である場合、処理はステップＳ１２０２へ進む。ステップＳ１２０２において、目選択部１５００は、第２の視線の信頼度が所定の閾値Ｔｈ２以上であるかどうかを判断する。第２の視線の信頼度が所定の閾値Ｔｈ２以上である場合、処理はステップＳ１２０５に進む。ステップＳ１２０５において、目選択部１５００は、目領域の特徴量として両目を使用することを決定する。一方、第２の視線の信頼度が所定の閾値Ｔｈ２以上でない場合、処理はステップＳ１２０４に進む。ステップＳ１２０４において、目選択部１５００は、目領域の特徴量として左目を使用することを決定する。
【００３４】
ステップＳ１２０１において、第１の視線の信頼度が所定の閾値Ｔｈ１以上でないと判定された場合、処理はステップＳ１２０３に進む。ステップＳ１２０３において、目選択部１５００は、第２の視線の信頼度が所定の閾値Ｔｈ２以上であるかどうかを判断する。第２の視線の信頼度が所定の閾値Ｔｈ２以上である場合、処理はステップＳ１２０６に進む。ステップＳ１２０６において、目選択部１５００は、目領域の特徴量として右目を使用することを決定する。一方、第２の視線の信頼度が所定の閾値Ｔｈ２以上でない場合、両目が十分に表出していないとして、処理はステップＳ１２０７に進む。ステップＳ１２０７において、目選択部１５００は、視線推定を実施しないことを決定する。なお、視線の信頼度が０又は１の２値である場合には、閾値Ｔｈ１及びＴｈ２は夫々の値が１に設定される。本実施形態では、視線の信頼度に基づいて左目と右目の表出程度を評価し、その評価結果に基づいて、目領域の特徴量として、右目、左目、両目を選択している。
【００３５】
ステップＳ１０１１において、目領域特徴量抽出部１６００は、ステップＳ１００７で生成された２種類の正規化画像データのうち、解像度の高い正規化画像データ１１０４を使用して目領域の特徴量を抽出する。つまり、瞳の動きは微小であるため、その微小な動きを高精度に捉えるために、ステップＳ１０１１では解像度の高い正規化画像データ１１０４を使用する。顔の向きを検出するためには顔領域の全体から特徴を抽出する必要があるが、目の向きを検出するためには目領域の特徴量だけでよい。また、目領域以外の特徴量を加えると、特徴ベクトルの次元が増加し、後段の処理負荷が増加する可能性がある。また、目領域以外の特徴量が視線検出精度に影響を与える可能性がある。そのため、本実施形態では特徴点を使用して目領域を限定する。さらに、目の大きさの個人差を吸収することを目的として正規化処理を実施している。
【００３６】
図１４は、図２のステップＳ１０１１の詳細を示すフローチャートである。ステップＳ１１００では、目領域特徴量抽出部１６００は、ステップＳ１００６で検出された特徴点位置のうち、左右の目の４つの特徴点位置を選択する。ここで左右の目の４つの特徴点位置とは、図３の目尻特徴点位置１０２０、１０２６、目頭特徴点位置１０２１、１０２７、上瞼特徴点位置１０２２、１０２８、下瞼特徴点位置１０２３、１０２９である。
【００３７】
ステップＳ１１０１において、目領域特徴量抽出部１６００は、ステップＳ１０１０での目の選択結果に基づいて目の領域の画像データを切り出す。つまり、ステップＳ１０１０で左目が選択された場合には、目領域特徴量抽出部１６００は、左目に関する４つの特徴点位置１０２０、１０２１、１０２２、１０２３を使用して、図１５の左目領域１０４０の画像データを切り出す。一方、ステップＳ１０１０で右目が選択された場合には、目領域特徴量抽出部１６００は、右目に関する４つの特徴点位置１０２６、１０２７、１０２８、１０２９を使用して、図１５の右目領域１０４１の画像データを切り出す。また、ステップＳ１０１０で両目が選択された場合、目領域特徴量抽出部１６００は、左目に関する４つの特徴点位置１０２０、１０２１、１０２２、１０２３、右目に関する４つの特徴点位置１０２６、１０２７、１０２８、１０２９を使用して、図１５の左目領域１０４０及び右目領域１０４１の画像データを切り出す。
【００３８】
ステップＳ１１０２において、目領域特徴量抽出部１６００は、図１６に示すように、ステップＳ１１０１で切り出された画像データ１０４０、１０４１の夫々に対して、画像データの横及び高さが所定のサイズ１０４２、１０４３となるように拡大及び縮小処理を実施する。これにより、目の大きさ等の個人差を吸収するようにしている。なお、ステップＳ１１０１での左目と右目との画像データの切り出しは、図１６に示すように特徴点位置を含むように切り出すのではなく、図１７の１０４４、１０４５に示すように目の輪郭が含まれるように切り出すようにしてもよい。この場合、図１７の１０４６、１０４７に示すように、ステップＳ１１０２においても目の輪郭が含まれるように画像データの拡大及び縮小処理が実施される。
【００３９】
ステップＳ１１０３において、目領域特徴量抽出部１６００は、ステップＳ１００８と同様に、ステップＳ１１０２で正規化された左目と右目との夫々の画像データに対してエッジ抽出を行う。つまり、目領域特徴量抽出部１６００は、左目の正規化画像データから抽出されたＸ方向の１次微分エッジ画像データとＹ方向の１次微分エッジ画像データ、右目の正規化画像データから抽出されたＸ方向の１次微分エッジ画像データとＹ方向の１次微分エッジ画像データの計４つのエッジ画像データを得る。そして、目領域特徴量抽出部１６００は、４つのエッジ画像データを構成する画素値そのものを１要素とした特徴ベクトルを両方の目領域の特徴量とする。なお、ステップＳ１１０３では、目領域特徴量抽出部１６００は、瞳の左右方向への動きを瞳と白目の境界エッジから捉え、瞳の上下方向への動きを瞳と白目の境界エッジ及び上瞼のエッジから捉えるようにしている。また、エッジ以外でも、輝度、色、周波数、輝度、これらのヒストグラムを使用するようにしてもよい。
【００４０】
ステップＳ１０１２において、視線推定部１７００は、ステップＳ１００８で得られた顔の向きに対応する特徴量とステップＳ１０１１で得られた右目と左目領域の特徴量とを使用して、視線特徴量を生成する。
【００４１】
図１８は、図２のステップＳ１０１２の詳細を示すフローチャートである。ステップＳ１２００において、視線推定部１７００は、ステップＳ１０１０で左右の目が選択されたかどうかを判定する。左右の目が選択された場合、処理はステップＳ１２０１に進む。ステップＳ１２０１において、視線推定部１７００は、ステップＳ１００８で抽出された顔の向きに対応する特徴量と、ステップＳ１０１１で抽出された右目領域の特徴量及び左目領域の特徴量とを使用して、第１の視線特徴量を生成する。なお、本実施形態では、顔の向きに対応する特徴量と、右目領域の特徴量及び左目領域の特徴量との連結が行われる。但し、視線推定部１７００は、その際に夫々の特徴量を所定の大きさに正規化する。また、顔の向きに対応する特徴量と左目領域の特徴量、顔の向きに対応する特徴量と右目領域の特徴量のように右目と左目とで別々にする方法でもよい。
【００４２】
一方、ステップＳ１２００で左右の目が選択されていないと判定された場合、処理はステップＳ１２０２に進む。ステップＳ１２０２において、視線推定部１７００は、ステップＳ１０１０で左目が選択されたかどうかを判定する。左目が選択された場合、処理はステップＳ１２０３に進む。ステップＳ１２０３において、視線推定部１７００は、ステップＳ１００８で抽出された顔の向きに対応する特徴量と、ステップＳ１０１１で抽出された左目領域の特徴量とを使用して、第２の視線特徴量を生成する。
【００４３】
一方、ステップＳ１２０２で左目が選択されていないと判定された場合、処理はステップＳ１２０４に進む。ステップＳ１２０４において、視線推定部１７００は、ステップＳ１００８で抽出された顔の向きに対応する特徴量と、ステップＳ１０１１で抽出された右目領域の特徴量とを使用して、第３の視線特徴量を生成する。
【００４４】
以上のように、ステップＳ１０１２では、ステップＳ１０１０での選択結果に基づいた視線特徴量が生成される。例えば、図１９に示すように、顔が右を向いているＴ［ｓ］では右目の表出程度が少ないため、視線推定部１７００は、顔の向きに対応する特徴量と左目領域の特徴量とを用いて第２の視線特徴量を生成する。顔が正面を向いているＴ＋１［ｓ］では、左目と右目とが十分に表出しているため、視線推定部１７００は、顔の向きに対応する特徴量と右目領域と左目領域との特徴量とを用いて第１の視線特徴量を生成する。顔が左を向いているＴ＋２［ｓ］では左目の表出程度が少ないため、視線推定部１７００は、顔の向きに対応する特徴量と右目領域の特徴量とを用いて第３の視線特徴量を生成する。
【００４５】
視線方向を推定するＳＶＭは、視線がカメラの方向等を向いているポジティブな視線特徴量と、視線がカメラの方向等を向いてないネガティブな視線特徴量とを予め学習しておく。ステップＳ１０１３において、視線推定部１７００は、ＳＶＭを使用して、ステップＳ１０１２で生成された視線特徴量に対応する識別モデルを生成し、生成した識別モデルに基づいて視線方向がカメラの方向等を向いているかどうかを推定する。本実施形態では、視線方向を推定する識別器としてＳＶＭを使用したが、これに限れるわけではない。
【００４６】
本実施形態では、視線がカメラの方向等を向いているか否かの２値判定としている。しかし、特定の方向を検出する複数の識別器を用意しておくことで、どの方向を向いているか等も検出することが可能である。
【００４７】
以上のように本実施形態では視線の評価値に基づいて右目領域、左目領域、両目領域の何れかの特徴量を選択し、視線特徴量を生成するようにしている。これにより、顔が横を向き片方の目が隠れてしまう、髪の毛により目が隠れてしまう、等の隠れが発生した場合にも、視線検出精度の大きな低下を招くこともなく、高精度な視線検出が可能となる。
【００４８】
なお、本実施形態では、左目と右目との表出程度に基づいて、目領域の特徴量として、右目、左目、両目を選択するようにしているのは、可能な限り処理負荷を軽減するためである。しかしながら、ステップＳ１０１３において、視線推定部１７００は、常に顔の向きに対応する特徴量と左目領域の特徴量、顔の向きに対応する特徴量と右目領域の特徴量、顔の向きに対応する特徴量と両目領域の特徴量等、複数の特徴量を抽出しておく。そして、視線推定部１７００は、視線方向を推定する際に、視線の評価値に基づいて複数の特徴量から選択するようにしてもよい。
【００４９】
さらに、視線推定部１７００は、複数の特徴量に対して視線方向の推定し、視線の評価値に基づいて複数の視線方向の推定結果から選択するようにしてもよいことはいうまでもない。
【００５０】
次に、本発明の第２の実施形態について説明する。本実施形態は、被写体の視線がデジタルカメラ等の撮像装置の方向を向いた場合に、自動的にシャッタを切る撮影装置に関するものである。
【００５１】
図２０は、本発明の第２の実施形態に係る視線検出装置の機能的な構成を示す図である。なお、図２０に示す各機能的な構成は、本実施形態に係る視線検出プログラムがＰＣ等のメモリ上にダウンロードされ、これをＣＰＵが実行することにより実現する構成である。
【００５２】
図２０に示すように、本実施形態に係る視線検出装置は、画像取得部３０００、顔検出部３１００、正規化画像生成部３２００、特徴量抽出部３３００、目領域特徴量抽出部３４００、第１の視線推定部３５００、第２の視線推定部３６００、視線総合推定部３７００、記憶部３８００から構成されている。
【００５３】
画像取得部３０００は、画像データを取得する。顔検出部３１００は、画像取得部３０００により取得された画像データから顔の位置、目尻や目頭等の特徴点、瞳等を検出する。正規化画像生成部３２００は、顔検出部３１００により検出された顔の位置を使用して、顔の大きさが所定のサイズで、且つ顔の向きが正立するように画像データの正規化を行う。特徴量抽出部３３００は、正規化画像生成部３２００で生成された正規化画像データを使用して、顔の向きに対応する特徴量を抽出する。目領域特徴量抽出部３４００は、正規化画像生成部３２００で生成された正規化画像データを使用して左目領域の特徴量、右目領域の特徴量を抽出する。
【００５４】
第１の視線推定部３５００は、特徴量抽出部３３００で抽出された顔の向きに対応する特徴量と、目領域特徴量抽出部３４００で抽出された左目領域の特徴量とを使用して第１の視線推定を行う。第２の視線推定部３６００は、特徴量抽出部３３００で抽出された顔の向きに対応する特徴量と、目領域特徴量抽出部３４００で抽出された右目領域の特徴量とを使用して第２の視線推定を行う。視線総合推定部３７００は、第１の視線推定と第２の視線推定との結果に基づいて総合的な視線推定を行う。記憶部３８００は、視線総合推定結果に基づいて、画像取得部３０００により取得された画像データを不揮発性メモリ等に記憶する。
【００５５】
なお、顔検出部３１００は、本発明の検出手段の適用例となる構成である。特徴量抽出部３３００は、本発明の第１の抽出手段の適用例となる構成である。目領域特徴量抽出部３４００は、本発明の第２の抽出手段の適用例となる構成である。第１の視線推定部３５００及び第２の視線推定部３６００は、本発明の第１の推定手段の適用例となる構成である。視線総合推定部３７００は、本発明の第２の推定手段の適用例となる構成である。
【００５６】
図２１は、本発明の第２の実施形態に係る視線検出装置の視線検出方法を示すフローチャートである。以下では、図２１を参照しながら、本実施形態における視線検出方法について説明する。なお、ステップＳ３０００からステップＳ３００８までは、図２のステップＳ１０００からステップＳ１００８までと同様であるため、説明を省略する。
【００５７】
ステップＳ３００９において、目領域特徴量抽出部３４００は、ステップＳ３００７で生成された２種類の正規化画像データのうち、解像度の高い正規化画像データを使用して左目領域の特徴量と右目領域の特徴量とを抽出する。ステップＳ３０１０において、第１の視線推定部３５００は、ステップＳ３００８で抽出された顔の向きに対応する特徴量と、ステップＳ３００９で抽出された左目領域の特徴量とを使用して第１の視線推定を行う。ステップＳ３０１１において、第２の視線推定部３７００は、ステップＳ３００８で抽出された顔の向きに対応する特徴量と、ステップＳ３００９で抽出された右目領域の特徴量とを使用して第２の視線推定を行う。なお、夫々の視線推定には、第１の実施形態と同様にＳＶＭを使用する。但し、本発明に適用可能な視線推定はこれに限られるわけではない。
【００５８】
また、ステップＳ３０１０、ステップＳ３０１１において、第１の視線推定部３５００、第２の視線推定部３６００は、第１の視線推定結果、第２の視線推定結果として、第１の視線、第２の視線が所定の方向を向いているか否かの２値で出力するようにしてもよい。また、第１の視線推定部３５００、３６００から出力される値そのものが第１の視線、第２の視線の方向を示すようにしてもよい。ステップＳ３０１２において、視線総合推定部３７００は、第１の視線推定結果と第２の視線推定結果とに基づいて、総合的に視線方向を決定する。
【００５９】
図２２は、図２１のステップＳ３０１２の詳細を示すフローチャートである。ステップＳ３１００において、視線総合推定部３７００は、第１の視線推定結果に基づいて第１の視線が所定の方向を向いているかどうかを判定する。第１の視線が所定の方向を向いている場合、処理はステップＳ３１０１に進む。ステップＳ３１０１において、視線総合推定部３７００は、第２の視線推定結果に基づいて第２の視線が所定の方向を向いているか否かを確認する。第２の視線が所定の方向を向いている場合、処理はステップＳ３１０３に進む。
【００６０】
ステップＳ３１０３において、視線総合推定部３７００は、視線が所定の方向を向いていると判定する。つまり、左目領域の特徴量と顔の向きに対応する特徴量から決まる第１の視線と、右目領域の特徴量と顔の向きに対応する特徴量から決まる第２の視線との双方が所定の方向を向いている場合にのみ、視線総合推定部３７００は視線が所定の方向を向いていると判定する。
【００６１】
一方、ステップＳ３１００で第１の視線が所定の方向を向いていないと判定された場合、また、ステップＳ３１０１で第２の視線が所定の方向を向いていないと判定された場合には、処理はステップＳ３１０２に進む。ステップＳ３１０２において、視線総合推定部３７００は、視線が所定の方向を向いていないと判定する。但し、第１の視線及び第２の視線のうちの何れか一方が所定の方向を向いていれば、視線が所定の方向を向いていると判定してもよい。
【００６２】
以上、ステップＳ３０１０、ステップＳ３０１１の出力が所定の方向を向いているか否かの２値である場合についての処理について説明した。以下では、ステップＳ３０１０、ステップＳ３０１１の出力が連続値、つまり、値そのものが方向である場合における視線総合推定値の決定方法を、図２３を参照しながら説明する。なお、ステップＳ３０１０での第１の視線推定結果を第１の視線推定値、ステップＳ３０１１での第２の視線推定結果を第２の視線推定値と称す。
【００６３】
ステップＳ３２００において、視線総合推定部３７００は、第１の視線推定値と第２の視線推定値との大小を比較する。第２の視線推定値よりも第１の視線推定値が大きい場合、処理はステップＳ３２０２に進む。ステップＳ３２０２において、視線総合推定部３７００は、視線総合推定値として第１の視線推定値を使用する。一方、ステップＳ３２００で第１の視線推定値が第２の視線推定値以下であると判定された場合、処理はステップＳ３２０１に進む。ステップＳ３２０１において、視線総合推定部３７００は、視線総合推定値として第２の視線推定値を使用する。
【００６４】
以上では、第１の視線推定値と第２の視線推定値とを統合する方法として、値の大きい視線推定値を視線総合推定値として設定する方法について説明した。この他にも、第１の視線推定値と第２の視線推定値とを統合する方法として、夫々の視線推定値の平均を視線総合推定値として設定する方法等もある。また、第１の実施形態で説明したような第１の視線、第２の視線の信頼度を算出し、第１の視線推定値と第２の視線推定値とに対して、以下の式のように信頼度で重み付けするようにしてもよい。
視線総合推定値＝第１の視線の信頼度×第１の視線推定値＋第２の視線の信頼度×第２の視線推定値
【００６５】
ステップＳ３０１３において、記憶部３８００は、視線総合推定結果に基づいて、ステップＳ３０００において取得された画像データを不揮発性メモリ等に記憶する。以上のように本実施形態では、左目領域の特徴量及び顔の向きに対応する特徴量から決まる第１の視線と、右目領域の特徴量及び顔の向きに対応する特徴量から決まる第２の視線とを夫々別々に算出し、総合的に視線方向を推定する。これにより、本実施形態よれば、利き目等にも対応し、より高精度な視線推定を実現することができる。
【００６６】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００６７】
１０００、３０００：画像取得部、１１００、３１００：顔検出部、１２００、３２００：正規化画像生成部、１３００、３３００：特徴量抽出部、１４００、３４００：視線信頼度算出部、１５００：目選択部、１６００：目領域特徴量抽出部、１７００：視線推定部、３５００：第１の視線推定部、３６００：第２の視線推定部、３７００：視線総合推定部、３８００：記憶部
【図１】
0005618686.tif 000002
【図２】
0005618686.tif 000003
【図３】
0005618686.tif 000004
【図４】
0005618686.tif 000005
【図５】
0005618686.tif 000006
【図６】
0005618686.tif 000007
【図７】
0005618686.tif 000008
【図８】
0005618686.tif 000009
【図９】
0005618686.tif 000010
【図１０】
0005618686.tif 000011
【図１１】
0005618686.tif 000012
【図１２】
0005618686.tif 000013
【図１３】
0005618686.tif 000014
【図１４】
0005618686.tif 000015
【図１５】
0005618686.tif 000016
【図１６】
0005618686.tif 000017
【図１７】
0005618686.tif 000018
【図１８】
0005618686.tif 000019
【図１９】
0005618686.tif 000020
【図２０】
0005618686.tif 000021
【図２１】
0005618686.tif 000022
【図２２】
0005618686.tif 000023
【図２３】
0005618686.tif 000024
【図２４】
0005618686.tif 000025