【国等の委託研究の成果に係る記載事項】(出願人による申告)平成24年4月1日付け、支出負担行為担当官 総務省大臣官房会計課企画官、研究テーマ「認知状態共有による交通事故低減技術の研究開発」に関する委託研究、産業技術力強化法第19条の適用を受ける特許出願
【文献】
山添大丈,外3名,“単眼視線推定のための三次元眼球モデルの自動キャリブレーション”,画像ラボ,日本工業出版株式会社,2012年 6月10日,第23巻,第6号,p.23−28
(58)【調査した分野】(Int.Cl.,DB名)
演算装置と記憶装置とを備えるコンピュータに、撮像装置により観測領域内において撮影された人間の頭部領域を含む動画像において、当該人間の視線方向を推定する処理を実行させるための視線方向推定プログラムであって、
前記頭部領域には、予め複数の基本特徴点が規定されており、
前記プログラムは、
前記演算装置が、撮影され前記記憶装置に格納された前記動画像の各画像フレームにおいて、前記基本特徴点を含む特徴点を抽出するステップと、
前記演算装置が、視線方向の推定処理の対象となる時点までの動画像において複数の画像フレームで抽出された前記基本特徴点および追加的に抽出された追加特徴点に基づいて、現時点の画像フレームにおける眼球中心位置を推定するステップと、
前記演算装置が、前記現時点の画像フレームから抽出された虹彩中心位置を抽出するステップと、
前記演算装置が、前記眼球中心位置および前記虹彩中心位置に基づいて、推定対象となる前記人間の視線の方向を推定するステップとを、コンピュータに実行させる、視線方向推定プログラム。
【発明を実施するための形態】
【0018】
以下、本発明の実施の形態の視線方向の推定装置の構成について、図に従って説明する。なお、以下の実施の形態において、同じ符号を付した構成要素および処理工程は、同一または相当するものであり、必要でない場合は、その説明は繰り返さない。
【0019】
[実施の形態1]
[ハードウェア構成]
以下、本発明の実施の形態にかかる「視線方向の推定装置」について説明する。この視線方向の推定装置は、パーソナルコンピュータ、カメラ付きの携帯情報端末または専用コンピュータ等、演算装置上で実行されるソフトウェアにより実現されるものであって、対象画像から人物の顔を抽出し、さらに人物の顔の映像に基づいて、視線方向を推定・検出するためのものである。
【0020】
ただし、以下に説明する「視線方向の推定装置」の各機能の一部または全部は、ハードウェアにより実現されてもよい。
【0021】
図1は、この視線方向の推定装置の外観を示す図である。
【0022】
以下では、視線方向の推定装置が汎用のパーソナルコンピュータにより実現される構成を例にとって説明する。
【0023】
図1を参照して、この視線方向の推定装置を構成するシステム20は、CD−ROM(Compact Disc Read-Only Memory )またはDVD−ROM(Digital Versatile Disc Read-Only Memory)ドライブ(以下、「光学ディスクドライブ」と呼ぶ)2030のような記録媒体からデータを読み取るためのドライブ装置を備えたコンピュータ本体2010と、コンピュータ本体2010に接続された表示装置としてのディスプレイ2120と、同じくコンピュータ本体2010に接続された入力装置としてのキーボード2100およびマウス2110と、コンピュータ本体2010に接続された、画像を取込むためのカメラ30とを含む。
【0024】
記録媒体としては、光学ディスクに限定されず、たとえば、メモリカードのような不揮発性半導体メモリを用いたものであってもよく、その場合は、メモリドライブ2020(図示せず)が設けられる。
【0025】
また、この実施の形態の装置では、各カメラ30としては、CCD(Charge Coupled Device)またはCMOS(Complementary Metal-Oxide Semiconductor)センサのような固体撮像素子を含む単眼カメラを用いることができる。ただし、カメラの台数としては、1台でもよいし、複数台でもよい。以下では、1台の単眼カメラにより画像の撮像がされるものとして説明する。
【0026】
(ハードウェアの構成)
図2は、コンピュータシステム20のハードウェアブロック図である。
【0027】
図2において、コンピュータ本体2010は、メモリドライブ2020、ディスクドライブ2030に加えて、CPU2040と、ディスクドライブ2030及びメモリドライブ2020に接続されたバス2050と、ブートアッププログラム等のプログラムを記憶するためのROM2060とに接続され、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供するためのRAM2070と、アプリケーションプログラム、システムプログラム、及びデータを記憶するための不揮発性記憶装置(たとえば、ハードディスク(HDD))2080と、ネットワーク等を介して外部機器、たとえば、サーバ等と通信するための通信インタフェース2090と、カメラ30からの画像信号を受信するための画像入力インタフェース2092とを含む。
【0028】
コンピュータシステム20に、本実施の形態の視線方向の推定装置の機能を実行させるプログラムは、CD−ROM2200、またはメモリ媒体2210に記憶されて、ディスクドライブ2030またはメモリドライブ2020に挿入され、さらにハードディスク2080に転送されても良い。これに代えて、プログラムは、図示しないネットワークを介してコンピュータ本体2010に送信され、ハードディスク2080に記憶されても良い。プログラムは実行の際にRAM2070にロードされる。
【0029】
コンピュータシステム20は、さらに、入力装置としてのキーボード2100およびマウス2110と、出力装置としてのディスプレイ2120とを備える。
【0030】
上述したようなコンピュータシステム20として機能するためのプログラムは、コンピュータ本体2010に、情報処理装置等の機能を実行させるオペレーティングシステム(OS)は、必ずしも含まなくても良い。プログラムは、制御された態様で適切な機能(モジュール)を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいれば良い。コンピュータシステム20がどのように動作するかは周知であり、詳細な説明は省略する。
【0031】
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
【0032】
さらに、CPU2040も、1つのプロセッサであっても、あるいは複数のプロセッサであってもよい。すなわち、シングルコアのプロセッサであっても、マルチコアのプロセッサであってもよい。
【0033】
[システムの機能ブロック]
本実施の形態では、あらかじめ準備した平均的な顔形状(部品配置)モデルをもとに眼球中心位置を推定しながら、ユーザ固有の顔部品配置と眼球中心位置の関係をオンラインで学習し、眼球中心位置の推定精度を向上させることで高精度な視線推定を可能にする。
【0034】
以下に説明するとおり、本実施の形態の視線方向の推定装置では、顔特徴点を各画像フレームで検出することにより、単眼カメラを使用して視線方向を推定する。
【0035】
本実施の形態の視線方向の推定装置では、眼球中心と虹彩中心を結ぶ3次元ベクトルを視線方向として推定する。
【0036】
ここで虹彩はカメラによって観測可能であるが、眼球中心は直接観測することができない。そこでカメラで得られる観測画像からユーザの顔面上の特徴点を検出し、顔形状の3次元モデルと顔特徴点の2次元観測座標から頭部の位置・姿勢を推定し、間接的に眼球中心の3次元座標を推定する。顔形状の3次元モデル(顔部品の3次元配置)と眼球中心位置の関係は、複数フレームの観測結果から、上述した非特許文献3に開示された手法によりユーザに意識させることなく自動的にキャリブレーションすることができる。
【0037】
一方で、頭部位置・姿勢の推定結果に基づいて、左右それぞれの目領域の観測画像から虹彩抽出を行う。虹彩領域について楕円形上の当てはめ等の手法により3次元の虹彩中心位置(または虹彩中心の投影位置)を決定し、眼球中心位置と虹彩中心位置から視線方向を算出する。
【0038】
上記の処理を実現するためには、以下に挙げる各項目についての検討が必要となる。
・顔の3次元モデル
・顔の検出、顔特徴点の決定
・眼球中心位置の推定
・虹彩の抽出
・視線方向の推定
以下では、これらの各項目について説明する。
【0039】
なお、以下では実施の形態の説明の便宜上、「虹彩中心」との用語を用いるが、この用語は、「虹彩の中心」または「瞳孔の中心」を意味するものとして使用するものとする。つまり、視線の推定処理において、以下の説明のような手続きにより求められるものを「虹彩中心」と呼ぶか「瞳孔中心」と呼ぶかは、その手続きが同様である限りにおいて、本実施の形態の態様において、本質的な相違を有するものではない。
【0040】
図3は、本実施の形態の視線方向の推定装置において、上述したCPU56がソフトウェアを実行するにより実現する機能を示す機能ブロック図である。
【0041】
なお、
図3に示した機能ブロックのうちのCPU56が実現する機能ブロックとしては、ソフトウェアでの処理に限定されるものではなく、その一部または全部がハードウェアにより実現されてもよい。
【0042】
図3を参照して、複数のカメラ30により撮像された動画に対応する映像信号は、フレームごとに画像キャプチャ処理部5602により制御されてデジタルデータとしてキャプチャされ、画像データ記録処理部5604により、たとえば、ハードディスク2080のような不揮発性記憶装置に格納される。
【0043】
顔検出部5606は、キャプチャされたフレーム画像列に対して、周知の顔検出アルゴリズムにより、顔候補探索を行う。なお、このような周知な顔(頭)検出アルゴリズムとしては、特に限定されないが、たとえば、特開2008−102902号公報明細書に記載されるようなアルゴリズムや、後に説明するような公知文献に記載されるアルゴリズムを使用することが可能である。
【0044】
特徴点抽出部5610は、後に説明するように、画像中の顔領域から特徴抽出を行う特徴抽出部5612と、抽出された特徴から予め定められた基本特徴点を決定する基本特徴点決定部5614aと、動画の撮像の時間経過に従って、新たに検出される追加特徴点を決定する追加特徴点決定部5614bとを含む。なお、基本特徴点決定部5614aと追加特徴点決定部5614bとを総称する場合は、特徴点決定部5614と呼ぶ。
【0045】
眼球中心推定部5640は、眼球の3次元モデルに基づいて、処理対象の特定人物の眼球中心の3次元的な位置を推定する。本実施の形態では、追加の特徴点を順次追加していきながら、顔モデルにおける眼球中心位置を算出する構成とすることで、より多くの特徴点により、より精度を向上させながら、眼球中心位置の推定を行うことが可能となる。
【0046】
虹彩抽出部は5620は、後に説明するように画像中から虹彩を抽出し、虹彩中心抽出部5622は、後に説明するようなアルゴリズムにより、虹彩の中心の投影位置を検出する。ここで、虹彩位置の推定においては、後に説明する最適化処理により虹彩位置の推定を行ってもよいし、あるいは、これも特許文献1(特開2008−102902号公報明細書)に記載されたような処理であって、目の周辺領域に対して、ラプラシアンにより虹彩のエッジ候補を抽出し、円のハフ変換を適用することにより、虹彩の中心の投影位置を検出する、というような処理を行ってもよい。
【0047】
視線方向推定部5660は、抽出された虹彩の中心の投影位置である画像フレーム中の2次元的な位置と、推定された眼球の3次元的な中心位置とに基づいて、視線方向を推定する。推定された視線方向は、眼球中心位置等の推定処理に使用したパラメータとともに、ハードディスク(不揮発性記憶装置)2080に格納される。
【0048】
また、表示制御部5670は、以上のようにして推定された視線の方向を、表示装置2120において、取得された画像フレーム上に表示するための処理を行なう。
【0049】
以下、各処理について、さらに詳しく説明する。
【0050】
(顔の3次元モデル)
顔面上の各特徴点の重心位置を原点として顔の正面方向をZ軸の正方向とする座標系(X=0に対して左右対称)を定義し、複数の被験者についての観測データに基づいて平均的な顔の3次元モデル(顔部品の配置) を生成する。顔面上の基本特徴点としてN点(例えば両目尻、目頭と口の両端点の6点(N=6))を利用する。ここでp番目の特徴点の3次元位置を以下のように表す。
【0051】
【数1】
(顔の検出,顔特徴点の決定)
顔検出および顔特徴点の検出については、たとえば、それぞれ広く用いられているHaar−like特徴量を用いた顔検出アルゴリズムおよび、ガボール(Gabor)特徴量を利用した顔特徴点抽出を利用することができる。
【0052】
まず、Haar−like特徴量を用いた顔検出アルゴリズムについては、以下の文献に開示がある。
【0053】
文献1:Viola, P., and Jones, M. 2001. Rapid object detection using a boosted cascade of simple features. In Proc. CVPR2001, vol. 1, 511-518.
ここで、
図4は、このような顔(頭部)の検出が実施された結果を示す図である。このような顔(頭部)の検出処理としては、特に限定されないが、たとえば、以下の公知文献2に開示されたアルゴリズム(AdaBoostと呼ぶ)を使用することができる。
【0054】
文献2:CVIM研究会 チュートリアルシリーズ(チュートリアル2) 情報処理学会研究報告. 2007-CVIM-159(32), [コンピュータビジョンとイメージメディア] , P.265-272, 2007-05-15.
顔(頭部)の画像フレームからの検出については、周知の他のアルゴリズムを利用することも可能である。
【0055】
また、顔特徴点の抽出において、顔部品モデルとしては、特徴点を含む部分画像を顔部品テンプレートとして事前に準備しおいてもよいし、あるいは、上述したガボール(Gabor)表現を用いたモデルを使用することも可能である。
【0056】
図5は、このようなガボール表現を用いた顔部品モデルを用いた特徴点の抽出処理を説明するための概念図である。
【0057】
ここで、「ガボール表現を用いた顔部品モデル」とは、顔画像領域内の各部分領域をガボール基底ベクトルとの積和演算により低次元ベクトル表現に変換し、あらかじめ変換してハードディスク2080に記録してあるモデルのことである。カメラ30からの画像フレームは、たとえば、
図5(a)の黒枠で示されるような黒四角の枠の大きさで部分画像に分割してあるものとする。CPU2040は、このガボール表現を用いた顔部品モデルを顔部品テンプレートとして、各カメラからの画像フレームの各部分画像と比較し、類似度の高いものを特徴点として抽出する。
【0058】
このような特徴点の抽出処理については、たとえば、以下の公知文献3に記載されている。
【0059】
文献3:画像処理による顔検出と顔認識(サーベイ(2))情報処理学会研究報告. 2005-CVIM-149(37), [コンピュータビジョンとイメージメディア] , P.343-368, 2005-05-13.
なお、顔特徴点の抽出には、SIFT(Scale-Invariant Feature Transform)、SURF(Speeded Up Robust Features)などの特徴抽出手法を利用してもよい。
【0060】
(眼球中心位置の推定)
上記の顔の3次元モデルを用いて顔の3次元位置、姿勢を決定する。頭部の位置、姿勢をR,Tとすると、顔の特徴点pの3次元位置について以下の関係が成り立つ。
【0061】
【数2】
ここで、Acはカメラの内部パラメータである。頭部の位置姿勢RとTは次式で計算される再投影誤差を最小にすることで求めることができる。
【0062】
【数3】
推定された頭部位置姿勢に基づいて眼球中心投影位置を推定する。人の頭部には左右2個の眼球があるが、推定手法は共通であるので以下では一方の眼球についてのみ説明する。
【0063】
眼球中心の投影位置x
c=[x
c, y
c]は、以下のようになる(後に説明する実施の形態1)。
【0064】
【数4】
なお、弱透視変換を仮定すると、顔特徴点位置(x
p,y
p)と眼球中心投影位置(x
C,y
C)の関係は線形変換Pで表されるため、変換式Pが既知であれば眼球中心投影位置は次式によって直接推定することもできる(後に説明する実施の形態2)。
【0065】
【数5】
(虹彩の抽出)
以上のようにして得られた頭部位置・姿勢に基づいて、カメラにおける左右の各目領域画像を抽出する。目領域の抽出には、ベジェ曲線を用いてモデル化した瞼形状の当てはめ結果と眼球領域の境界を利用することができる。
【0066】
抽出後、各画素ごとの輝度値に基づいて虹彩・白目のラベル付けを行う。最後に得られた虹彩領域に対して3次元虹彩モデルを当てはめることで虹彩中心位置x
iris=[x
iris,y
iris]を得る。
【0067】
このような処理については、特許文献1に記載があるので、以下、簡単に説明する。
【0068】
すなわち、入力画像から目の周辺領域を切り出し、色および輝度情報をもとに、以下の式(1)に従って、虹彩(黒目)、白目、肌領域の3種類にラベル付けを行なう。
【0069】
【数6】
ここで、hs,kは、肌領域のk番目の画素の色相(hue)の値を表わす。hi,jは、入力画像中の画素(i,j)(第i番目のフレームのj番目の画素)の色相の値を表わす。vs,kは、入力画像中の画素(i,j)の明度の値を表わす。
【0070】
図6は、このようなラベリング処理例を示す図である。
【0071】
続いて各画素が虹彩モデルの内側にあるかどうかをチェックし、眼球モデルとの照合度を評価する(最適化処理)。
【0072】
図7は、このような右目および左目の虹彩と眼球モデルとの照合処理の概念を示す図である。
【0073】
ここで、このような眼球モデルとの照合度の評価処理を行なうにあたり、以下の式(2)で表される距離d
{LR},i,jを導入する。
【0074】
【数7】
一方、r
{LR},i,jは、虹彩中心から画素(i,j)方向の虹彩半径を示すとすると、
図7に示すとおり、画素(i,j)が虹彩の外側にあれば、d
{LR},i,jは、r
{LR},i,jよりも大きな値を示す。
【0075】
r
{LR},i,jは、以下の式(3)に示すように、3次元の眼球中心位置X
i{LR}(太字)、対象画像フレーム内の画素位置(x
i,j,y
i,j)、眼球半径l
i、虹彩半径r
i、対象画像フレーム内の虹彩中心投影位置x
{LR}、i(太字)の関数となる。なお、以下では、下付文字{LR}は、左を意味するL、右を意味するRを総称するものとして使用する。また、添え字のiは、第i番目の画像フレームであることを示す。
【0076】
【数8】
なお、眼球中心位置は頭部に対して一定の位置にあると考えられる。ここで、眼球中心位置としては、頭部位置・姿勢により推定された位置、または、弱透視変換を仮定して得られた位置を用いるものとする。
【0077】
最後に、眼周辺の全画素についてd
{LR},i,jの評価を行ない、入力画像群に尤もよく当てはまる以下の式(4)のモデルパラメータθを、式(5)に従って決定する。
【0078】
【数9】
ここで、g
i,j{LR}は、フレームi、画素jにおけるd
{LR},i,jの評価値であり、対象画素が虹彩領域か白目領域かによって、以下の式に従い、符合を反転させる。
【0079】
【数10】
ラベリングuijが撮影された画像内の虹彩領域を反映し、関数G
i,j{LR}は、眼球モデルから算出される虹彩領域を反映している。
【0080】
このようにして、虹彩中心位置x
iris=[x
iris,y
iris]を得ることができる。
(視線方向の推定)
以上のようにして得られた虹彩中心投影位置および眼球中心位置の投影位置から視線方向を計算することができる。
【0081】
より具体的には、以上で求まった眼球中心位置と虹彩中心位置より視線方向を計算する。
【0082】
図8は、視線方向を決定するためのモデルを説明する概念図である。
【0083】
すなわち、以上の処理で得た眼球中心位置の画像上での投影座標をx
c=[x
c, y
c]、虹彩中心の2次元座標をx
iris=[x
iris,y
iris]とし、眼球領域の半径rとすると視線方向(カメラの光軸と視線方向との間の角度) は以下の式により推定できる。
【0084】
【数11】
ここで、α,βはx軸、y軸方向のそれぞれの視線方向である。
(顔特徴点の追加)
本実施の形態では、事前に用意された平均的な顔モデル等に基づいて、観測画像から抽出した特徴点から頭部の位置・姿勢を推定する。入力画像から新たに観測される特徴点と頭部位置・姿勢の関係は繰り返し観測によって徐々に精度を上げながら推定される。初期の段階では、眼球中心位置は事前に用意された顔モデル等に基づく頭部位置・姿勢推定情報のみから推定されるが、上記の頭部位置・姿勢と新たに観測される特徴点の関係が得られた段階で、それらの特徴点の情報を加えて眼球中心位置をより高精度に推定できるようになる。眼球中心位置と、別途得られる虹彩(瞳孔)位置から視線方向を算出することができる。
【0085】
図9は、顔画像から抽出される顔特徴点の例を示す図である。
【0086】
図10は、実施の形態1における頭部位置・姿勢の推定の概念を示す概念図である。
【0087】
図9の例では、黒でマークした特徴点(目尻・目頭・口端)6点が基本特徴点であり、平均的な顔モデルにおける位置があらかじめ与えられている。
【0088】
図10に示すように、これらの基本特徴点の顔面上の位置は比較的個人差が少なく、平均的なモデルによって頭部の位置・姿勢を推定することが可能である。したがって、基本特徴点としては、(目尻(左右)・目頭(左右)・口端(左右))のうちの少なくとも4点を設定するものとする。しかしながら、特徴点数が限られること、個人差が皆無ではないことから、頭部位置・姿勢推定の精度は比較的低い。
【0089】
一方、
図9の例において白でマークした特徴点は追加で検出された特徴点を示している。これらの特徴点は、眉毛やまぶたなど個人間の位置変化が大きい点であり、初期段階ではその位置は不明である。
【0090】
しかし、
図10に示すように、繰り返し観測によって上述の通り、頭部位置・姿勢あるいは眼球中心位置とこれらの特徴点の関係を学習し、眼球中心位置の推定精度を向上させることが可能である。
【0091】
図11は、実施の形態1における眼球中心推定部5640の構成を説明するための機能ブロック図である。
【0092】
図11に示すように、眼球中心推定部5640は、3次元の頭部位置・姿勢を陽に含む処理により、眼球中心位置の推定を実行する。
【0093】
すなわち、眼球中心推定部5640は、基本特徴点に基づいて、顔位置および顔姿勢の推定処理を行う初期顔位置・姿勢推定部5642と、新たな特徴点が観測されると、その新たな特徴点の頭部座標系における3次元位置を推定する特徴点3次元位置推定部5644と、頭部位置および顔位置の推定を行う時点で、3次元位置が特定済みの特徴点を用いて、顔位置および顔姿勢の推定処理を行う顔位置・姿勢推定部5646と、推定された顔位置および顔姿勢により、眼球中心位置を算出する眼球中心位置算出部5648とを含む。
【0094】
図12は、本実施の形態において、CPU2040により視線推定のソフトウェアを実行する処理フローを示すフローチャートである。
【0095】
図12を参照して、処理が開始されると、まず、CPU2040は、処理する画像フレームを時間軸上で特定するためのフレーム数Nfを1に設定する(S102)。
【0096】
続いて、CPU2040は、画像キャプチャ処理部5602により、カメラ30で観測される画像を、画像データとしてキャプチャする(S104)。そして、CPU2040は、顔検出部5606により、キャプチャされたカメラ30からの画像フレームのデータにおいて、顔(頭部)の検出を実施する(S105)。
【0097】
続いて、CPU2040は、検出された顔領域において、特徴抽出処理を行い(S106)、基本特徴点を決定する(S108)。
【0098】
さらに、CPU2040は、初期顔位置・姿勢推定部5642により、決決定されたすべての特徴点を用いて頭部位置・姿勢を推定し(S110)、推定された顔位置および顔姿勢に基づいて、眼球中心位置算出部5648により眼球中心位置を算出して眼球中心位置の推定処理を実行する(S118)。
【0099】
また、CPU2040は、虹彩を検出して虹彩中心位置を決定し(S120)、推定された眼球中心位置および虹彩中心位置に基づき、視線方向推定部5660により視線方向の推定を行う(S122)。
【0100】
CPU2040は、表示制御部5670により結果を出力し(S126)、現在のフレームでの頭部位置・姿勢の推定結果をハードディスク2080に格納する(S128)。
【0101】
処理の終了が指示されていなければ(S130でN)、CPU2040は、フレーム数Nfを1だけインクリメントし(S140)、カメラ30からの次のフレームとして画像をキャプチャし(S150)、前時刻の頭部位置・姿勢の推定結果を取得して(S152)これを利用して、顔検出処理を実行する(S154)。
【0102】
CPU2040は、特徴抽出部5612により顔領域から特徴の抽出を行い(S156)、特徴点を決定する(S158)。
【0103】
頭部の座標系上で3次元座標(Xp,Yp,Zp)にある顔面上の特徴点は頭部の姿勢・位置がR,Tであるとき次式により2次元座標(xp、yp)に観測される。
【0104】
【数12】
新たな特徴点q(N+1≦q≦M)が時刻t=1,…,kにおいて観測されたとすると、特徴点qの3次元位置については、CPU2040は、以下のようにして推定する(S160)。
【0105】
【数13】
観測回数の増加に従い(kの値の増加に従い)、推定される特徴点qの3次元位置の精度は向上する。
【0106】
処理がS110にもどると、CPU2040は、繰り返し観測によって新たな特徴点qの3次元推定位置(Xq,Yq,Zq)が得られたら、頭部の位置・姿勢R,Tをこれらの特徴点の情報を考慮して以下の式に従って推定する(S110)。
【0107】
【数14】
観測回数の増加に伴い、より精度の向上した特徴点の3次元推定位置に基づいて、頭部の位置・姿勢R,Tを推定することになるので、これらの頭部の位置・姿勢の推定精度も観測回数とともに、向上することになる。
【0108】
さらに、CPU2040は、顔位置・姿勢推定部5646により、推定された頭部位置・姿勢R,Tによって眼球中心の投影位置x
c=[x
c, y
c]を次式で計算する。
【0109】
【数15】
以下、視線方向の推定のための処理は、同様であるので、説明は繰り返さない。
【0110】
以上のような構成により、実施の形態1の視線方向推定装置、視線方向推定装置および視線方向推定プログラムでは、繰り返し観測の回数(撮像フレーム数)の増加に伴って、顔位置および姿勢の推定に利用する特徴点の位置の推定精度が高まることにより、より高精度に眼球中心位置を推定することができ、より正確に視線方向の推定を行うことが可能となる。
【0111】
なお、以上の説明では、繰り返し観測によって、頭部座標における推定位置を更新するのは、追加特徴点であるものとした。ただし、本実施の形態において、推定位置の更新は、基本特徴点および追加特徴点の双方を含めて行うこととしてもよい。基本特徴点(目尻・目頭・口端(のうちの所定数))の位置についても、他の特徴点に比べると小さいものの個人差が存在する。そこで、基本特徴点(平均モデル)を使った繰り返し観測によって、基本特徴点(ユーザ個人の位置)と追加特徴点の位置を正確に求める構成とすることも可能である。
【0112】
また、以上の説明では、撮像される画像は、単眼カメラの画像であるものとして説明したが、入力画像は距離画像(3次元画像)であってもよい。また、たとえば、初期的な基本特徴点の抽出においては、距離画像を用い、その後は、単眼カメラとしての画像を利用するというような構成でもよい。
[実施の形態2]
図13は、実施の形態2における眼球中心推定部5640の構成を説明するための機能ブロック図である。
【0113】
実施の形態2のその他の構成は、実施の形態1と同様であるので、説明は繰り返さない。
【0114】
実施の形態2では、3次元の頭部位置・姿勢を陽に含まない場合の例を示している。
【0115】
上述したとおり、弱透視変換を仮定すると、顔特徴点位置(xp、yp)と眼球中心投影位置(x
c, y
c)の関係は線形変換で表されるため、変換Pが既知であれば眼球中心投影位置は次式によって直接推定できる。
【0116】
【数16】
実施の形態2では、このような性質を利用して、眼球中心投影位置を推定し、これを利用して、視線方向の推定を行う。
【0117】
図13を参照して、眼球中心位置推定部5640は、基本特徴点決定部5614aおよび追加特徴点決定部5614bで決定された特徴点を用いて、基本特徴点群と追加特徴点(群)と眼球中心投影位置の関係を、弱透視変換を仮定することで求める特徴点関係産出部5650と、このようにして求められた顔特徴点位置(xp、yp)と眼球中心投影位置(x
c, y
c)の関係を表わす線形変換を用いて、眼球中心投影位置を産出する眼球中心位置算出部5652とを含む。
【0118】
図14は、実施の形態2において、CPU2040により視線推定のソフトウェアを実行する処理フローを示すフローチャートである。
【0119】
図14を参照して、処理が開始されると、まず、CPU2040は、処理する画像フレームを時間軸上で特定するためのフレーム数Nfを1に設定する(S102)。
【0120】
続いて、CPU2040は、画像キャプチャ処理部5602により、カメラ30で観測される画像を、画像データとしてキャプチャする(S104)。そして、CPU2040は、顔検出部5606により、キャプチャされたカメラ30からの画像フレームのデータにおいて、顔(頭部)の検出を実施する(S105)。
【0121】
続いて、CPU2040は、検出された顔領域において、特徴抽出処理を行い(S106)、基本特徴点を決定する(S108)。
【0122】
さらに、CPU2040は、特徴点関係算出部5650により、決定されたすべての特徴点を用いて顔特徴点位置(xp、yp)と眼球中心投影位置(x
c, y
c)の関係を表わす線形変換を推定し(S112)、推定された線形変換に基づいて、眼球中心位置算出部5652により眼球中心位置を算出して眼球中心位置の推定処理を実行する(S118)。
【0123】
また、CPU2040は、虹彩を検出して虹彩中心位置を決定し(S120)、推定された眼球中心位置および虹彩中心位置に基づき、視線方向推定部5660により視線方向の推定を行う(S122)。
【0124】
CPU2040は、表示制御部5670により結果を出力し(S126)、現在のフレームでの頭部位置の推定結果をハードディスク2080に格納する(S128)。
【0125】
処理の終了が指示されていなければ(S130でN)、CPU2040は、フレーム数Nfを1だけインクリメントし(S140)、カメラ30からの次のフレームとして画像をキャプチャし(S150)、前時刻の頭部位置の推定結果を取得して(S152)これを利用して、顔検出処理を実行する(S154)。
【0126】
CPU2040は、特徴抽出部5612により顔領域から特徴の抽出を行い(S156)、特徴点を決定する(S158)。
【0127】
ここで、時刻tに新たな特徴点M−N個を含む、総数M個の特徴点の座標が観測されたとする。
【0128】
このような特徴点の座標を以下のように表現する。
【0129】
【数17】
ここで、既知の特徴点の観測によって上式によって推定される時刻tの眼球中心投影位置を(x
c,t、y
c,t)とする。なお、ここで眼球中心投影位置は、実施の形態1と同様に、3次元の頭部位置・姿勢に基づく方法によって求めてもよい。
【0130】
ここで、新たな特徴点を含むM個の特徴点と眼球中心投影位置の関係を表す線形変換をQとすると、CPU2040は、特徴点関係産出部5650により、繰り返し観測される眼球中心投影位置と特徴点座標からQを以下のように推定する(S112)。
【0131】
【数18】
なお、上式では、t<1で、基本特徴点(N個)により眼球中心の推定を行った後、t=1以降は、追加特徴点(M−N個)を含む総数M個の特徴点により線形変換Qを求める構成としている。以下では、説明の簡単のために、眼球中心位置の推定も、このようにt=1以降は、特徴点の総数一定として説明する。ただし、より一般には、時間の経過にしたがって、追加特徴点の個数は、増減があってもよい。
【0132】
さらに、CPU2040は、推定されたQを利用することによって、新たな特徴点を含むM個の特徴点から眼球中心投影位置x
c=[x
c, y
c]を次式によって推定する(S118)。
【0133】
【数19】
以下、視線方向の推定のための処理は、同様であるので、説明は繰り返さない。
【0134】
以上のような構成により、実施の形態2の視線方向推定装置、視線方向推定装置および視線方向推定プログラムでは、繰り返し観測により、顔特徴点位置(xp、yp)と眼球中心投影位置(x
c, y
c)の関係を表わす線形変換の推定に利用する特徴点の位置情報の個数を順次増加させることで、より高精度に眼球中心位置を推定することができ、より正確に視線方向の推定を行うことが可能となる。
【0135】
また、実施の形態2においても、撮像される画像は、単眼カメラの画像であるものとして説明したが、入力画像は距離画像(3次元画像)であってもよい。また、たとえば、初期的な基本特徴点の抽出においては、距離画像を用い、その後は、単眼カメラとしての画像を利用するというような構成でもよい。
【0136】
以上説明したように、実施の形態1および実施の形態2では、単眼カメラによる視線推定において重要な眼球中心の推定処理について、あらかじめ与えられた特徴点の平均的な位置情報による眼球中心の推定処理に加えて、顔面上のユーザ固有の特徴点の座標を利用することで、眼球中心の推定精度を向上させ、高い視線計測精度を与える。
【0137】
実施の形態1および実施の形態2では、基本特徴点による方法で推定される眼球中心位置と、新たに検出されたユーザ固有の特徴点の抽出位置の関係をオンラインで推定する。この際、基本特徴点で推定される眼球中心位置には推定誤差が含まれるが、観測を繰り返すことで眼球中心と特徴点の関係を高精度に推定することができる。得られた関係を利用することで、ユーザ固有の特徴点を含む多数の特徴点を利用した安定で高精度な眼球中心位置の推定が可能となり、結果的に視線推定精度を向上させることができる。
【0138】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。