(57)【要約】【課題】システムのコストを抑えつつ、対象者の視線および顔姿勢の双方を同時にかつ正確に検出することを目的とする。【解決手段】一実施形態に係る顔検出システムは、顔検出システムは、光源を備える瞳孔用カメラと、瞳孔用カメラの光源からの光を用いて撮影を実行する鼻孔用カメラと、瞳孔用カメラを制御することで対象者の瞳孔画像を取得すると共に、鼻孔用カメラを制御することで対象者の鼻孔画像を取得する画像取得部と、瞳孔画像から瞳孔座標を算出し、該瞳孔座標に基づいて視線を算出する視線算出部と、鼻孔画像から鼻孔中心座標を算出し、瞳孔座標および該鼻孔中心座標に基づいて対象者の顔姿勢ベクトルを算出する顔姿勢算出部とを備える。【選択図】図４
2015232771.tif 000002
【特許請求の範囲】
【請求項１】
光源を備える瞳孔用カメラと、
前記瞳孔用カメラの前記光源からの光を用いて撮影を実行する鼻孔用カメラと、
前記瞳孔用カメラを制御することで対象者の瞳孔画像を取得すると共に、前記鼻孔用カメラを制御することで前記対象者の鼻孔画像を取得する画像取得部と、
前記瞳孔画像から瞳孔座標を算出し、該瞳孔座標に基づいて視線を算出する視線算出部と、
前記鼻孔画像から鼻孔中心座標を算出し、前記瞳孔座標および該鼻孔中心座標に基づいて前記対象者の顔姿勢ベクトルを算出する顔姿勢算出部と
を備える顔検出システム。
【請求項２】
前記画像取得部が、前記対象者の２枚の瞳孔画像を瞳孔画像ペアとして取得し、
前記視線算出部が、前記瞳孔画像ペアから差分画像を生成して前記瞳孔座標を算出する、
請求項１に記載の顔検出システム。
【請求項３】
前記顔姿勢算出部が、前記顔姿勢ベクトルに基づいて次の瞳孔画像における瞳孔座標を予測し、
前記画像取得部が更に前記次の瞳孔画像を取得し、
前記視線算出部が、前記顔姿勢算出部により予測された瞳孔座標に基づいて、前記次の瞳孔画像を含む次の瞳孔画像ペアに対して位置補正を実行してから次の差分画像を生成し、該次の差分画像に基づいて次の瞳孔座標を算出し、該次の瞳孔座標に基づいて次の視線を算出する、
請求項２に記載の顔検出システム。
【請求項４】
前記視線算出部が、前記位置補正された次の瞳孔画像ペアから仮の瞳孔位置を算出し、該仮の瞳孔位置に基づいて角膜反射点を検出し、該角膜反射点に基づいて該次の画像ペアに対して更なる位置補正を実行し、更なる位置補正が為された該次の瞳孔画像ペアから前記次の瞳孔座標を算出する、
請求項３に記載の顔検出システム。
【請求項５】
前記顔姿勢算出部が、前記顔姿勢ベクトルに基づいて次の瞳孔画像における瞳孔座標を予測し、
前記画像取得部が更に前記次の瞳孔画像を取得し、
前記視線算出部が、前記顔姿勢算出部により予測された瞳孔座標に基づいて、前記次の瞳孔画像から次の瞳孔座標を算出し、該次の瞳孔座標に基づいて次の視線を算出する、
請求項１に記載の顔検出システム。
【請求項６】
前記鼻孔用カメラの分解能が前記瞳孔用カメラの分解能より低い、
請求項１〜５のいずれか一項に記載の顔検出システム。
【請求項７】
プロセッサを備える顔検出システムにより実行される顔検出方法であって、
光源を備える瞳孔用カメラを制御する第１カメラ制御ステップと、
前記瞳孔用カメラの前記光源からの光を用いて、鼻孔用カメラによる撮影を実行する第２カメラ制御ステップと、
前記瞳孔用カメラから対象者の瞳孔画像を取得すると共に、前記鼻孔用カメラから前記対象者の鼻孔画像を取得する画像取得ステップと、
前記瞳孔画像から瞳孔座標を算出し、該瞳孔座標に基づいて視線を算出する視線算出ステップと、
前記鼻孔画像から鼻孔中心座標を算出し、前記瞳孔座標および該鼻孔中心座標に基づいて前記対象者の顔姿勢ベクトルを算出する顔姿勢算出ステップと
を含む顔検出方法。
【請求項８】
光源を備える瞳孔用カメラを制御することで対象者の瞳孔画像を取得すると共に、前記瞳孔用カメラの前記光源からの光を用いて撮影するように鼻孔用カメラを制御することで前記対象者の鼻孔画像を取得する画像取得部と、
前記瞳孔画像から瞳孔座標を算出し、該瞳孔座標に基づいて視線を算出する視線算出部と、
前記鼻孔画像から鼻孔中心座標を算出し、前記瞳孔座標および該鼻孔中心座標に基づいて前記対象者の顔姿勢ベクトルを算出する顔姿勢算出部と
してコンピュータを機能させるための顔検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の一側面は、対象者の視線および顔姿勢を検出する方法、システム、およびプログラムに関する。
【背景技術】
【０００２】
従来から、対象者の視線または顔姿勢を検出する技術が知られている。この技術は、よそ見運転の検出、運転者の眠気の検出、商品の興味の度合いの調査、コンピュータへのデータ入力などに応用することが可能である。
【０００３】
このような顔検出技術に関し、下記特許文献１には、明瞳孔画像と暗瞳孔画像との差分により瞳孔を検出するための方法が記載されている。この方法では、明瞳孔および暗瞳孔を撮影した２つの画像における角膜反射位置のずれ量を検出し、一方の画像を角膜反射位置のずれ量に対応する分だけ移動する位置補正を行うことで、両画像の瞳孔部を実質的に一致させる。その上で、両画像の差分が取られる。
【０００４】
また、下記特許文献２には、瞳孔や鼻孔などの特徴点を追跡する方法が記載されている。この方法では、対象者の３つの特徴点の組み合わせである特徴部位群が撮像されてその３次元位置が時系列で検出され、過去の撮像タイミングでの特徴部位群の３次元位置に基づいて、特徴部位群を基準にした顔座標系の基準座標系からの回転角度および変位が算出される。そして、その回転角度および変位に基づいて現在の撮影タイミングでの顔座標系の回転角度および変位が予測されて特徴部位群の現在の撮影タイミングでの３次元予測位置が算出される。現在の特徴部位群の画像の検出に際しては、その算出された３次元予測位置に基づいて画像フレーム上にウィンドウが設定される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第４４５２８３６号明細書
【特許文献２】特許第５４２９８８５号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記特許文献１，２に記載の方法では、視線と顔姿勢との双方を同時に正確に検出することが非常に困難である。その正確な検出を実現するためには、例えば、視線を検出するための２台のカメラと、顔姿勢を検出するための１台のカメラとを用いることが考えられるが、光源を有するカメラを多数用意するのはコストの面で不利である。そこで、システムのコストを抑えつつ、対象者の視線および顔姿勢の双方を同時にかつ正確に検出することが望まれている。なお、本明細書における「視線および顔姿勢の双方を同時にかつ正確に検出する」の「同時に」とは、厳密な時刻の同一のみを意味するのではなく、人が一般的に同時と感じる程度の同時性も含む概念である。
【課題を解決するための手段】
【０００７】
本発明の一側面に係る顔検出システムは、光源を備える瞳孔用カメラと、瞳孔用カメラの光源からの光を用いて撮影を実行する鼻孔用カメラと、瞳孔用カメラを制御することで対象者の瞳孔画像を取得すると共に、鼻孔用カメラを制御することで対象者の鼻孔画像を取得する画像取得部と、瞳孔画像から瞳孔座標を算出し、該瞳孔座標に基づいて視線を算出する視線算出部と、鼻孔画像から鼻孔中心座標を算出し、瞳孔座標および該鼻孔中心座標に基づいて対象者の顔姿勢ベクトルを算出する顔姿勢算出部とを備える。
【０００８】
本発明の一側面に係る顔検出方法は、プロセッサを備える顔検出システムにより実行される顔検出方法であって、光源を備える瞳孔用カメラを制御する第１カメラ制御ステップと、瞳孔用カメラの光源からの光を用いて、鼻孔用カメラによる撮影を実行する第２カメラ制御ステップと、瞳孔用カメラから対象者の瞳孔画像を取得すると共に、鼻孔用カメラから対象者の鼻孔画像を取得する画像取得ステップと、瞳孔画像から瞳孔座標を算出し、該瞳孔座標に基づいて視線を算出する視線算出ステップと、鼻孔画像から鼻孔中心座標を算出し、瞳孔座標および該鼻孔中心座標に基づいて対象者の顔姿勢ベクトルを算出する顔姿勢算出ステップとを含む。
【０００９】
本発明の一側面に係る顔検出プログラムは、光源を備える瞳孔用カメラを制御することで対象者の瞳孔画像を取得すると共に、瞳孔用カメラの光源からの光を用いて撮影するように鼻孔用カメラを制御することで対象者の鼻孔画像を取得する画像取得部と、瞳孔画像から瞳孔座標を算出し、該瞳孔座標に基づいて視線を算出する視線算出部と、鼻孔画像から鼻孔中心座標を算出し、瞳孔座標および該鼻孔中心座標に基づいて対象者の顔姿勢ベクトルを算出する顔姿勢算出部としてコンピュータを機能させる。
【００１０】
このような側面においては、複数の瞳孔用カメラ（瞳孔光学系）で撮影された瞳孔画像から瞳孔座標が算出され、その瞳孔座標から視線が算出される。また、その瞳孔座標と、鼻孔用カメラ（鼻孔光学系）で撮影された鼻孔画像から算出された鼻孔座標とに基づいて顔姿勢ベクトルが算出される。このように瞳孔光学系および鼻孔光学系を用いることで、対象者の視線および顔姿勢の双方を同時にかつ正確に検出することができる。また、鼻孔用カメラを用いた撮影では瞳孔用カメラの光源の光が用いられるので、鼻孔用カメラに光源を設ける必要がなく、その分だけ顔検出システムの全体のコストを抑えることができる。したがって、このような側面によれば、システムのコストを抑えつつ、対象者の視線および顔姿勢の双方を同時に正確に検出することができる。
【発明の効果】
【００１１】
本発明の一側面によれば、システムのコストを抑えつつ、対象者の視線および顔姿勢の双方を同時にかつ正確に検出することができる。
【図面の簡単な説明】
【００１２】
【図１】実施形態に係る顔検出システムを示す斜視図である。
【図２】（ａ）は瞳孔用カメラのレンズ部分を示す平面図であり、（ｂ）は鼻孔用カメラのレンズ部分を示す平面図である。
【図３】実施形態に係る画像処理装置のハードウェア構成を示す図である。
【図４】実施形態に係る顔検出システムの機能構成を示すブロック図である。
【図５】視線の検出と顔姿勢の検出との連携の概念を示す図である。
【図６】実施形態に係る顔検出システムの動作を示す図である。
【図７】差分画像の生成を示す図である。
【図８】顔姿勢の予測に基づく位置補正を説明するための図である。
【図９】角膜反射に基づく位置補正を説明するための図である。
【図１０】図６に示す瞳孔位置の検出の詳細を示すフローチャートである。
【図１１】実施形態に係る顔検出システムで設定される座標系の位置関係を示す図である。
【図１２】視線の検出を説明するための図である。
【図１３】鼻孔用カメラのレンズの中心を原点とした２次元座標系における画像平面と特徴点の３次元座標との関係を示す図である。
【図１４】実施形態に係る顔検出システムで設定されるカメラ座標系と顔座標系との位置関係を示す図である。
【図１５】カメラ座標系から顔座標系への座標変換を説明するための図である。
【図１６】カメラ座標系から顔座標系への座標変換を説明するための図である。
【図１７】カメラ座標系から顔座標系への座標変換を説明するための図である。
【図１８】カメラ座標系から顔座標系への座標変換を説明するための図である。
【図１９】鼻孔光学系での特徴点検出を説明するための図である。
【図２０】鼻孔光学系での特徴点検出を説明するための図である。
【図２１】鼻孔光学系での特徴点検出を説明するための図である。
【図２２】鼻孔光学系での特徴点検出を説明するための図である。
【図２３】鼻孔光学系での特徴点検出を説明するための図である。
【図２４】実施形態に係る顔検出プログラムの構成を示す図である。
【発明を実施するための形態】
【００１３】
以下、添付図面を参照しながら本発明の実施形態を詳細に説明する。なお、図面の説明において同一又は同等の要素には同一の符号を付し、重複する説明を省略する。
【００１４】
［顔検出システムの構成］
まず、図１〜５を用いて、実施形態に係る顔検出システム１の構成を説明する。顔検出システム１は、対象者の視線および顔姿勢を検出するコンピュータシステムであり、このシステムにより、本実施形態に係る顔検出方法が実施される。対象者とは、視線および顔姿勢を検出する対象となる人であり、被験者ともいうことができる。視線とは、対象者の瞳孔中心と該対象者の注視点（対象者が見ている点）とを結ぶ線である。なお、「視線」という用語は、起点、終点、および方向の意味（概念）を含む。顔姿勢は、顔の方向および重心とで定まり、後述する顔姿勢ベクトルで表される。顔検出システム１および顔検出方法の利用目的は何ら限定されず、例えば、よそ見運転の検出、運転者の眠気の検出、商品の興味の度合いの調査、コンピュータへのデータ入力などに顔検出システム１を利用することができる。
【００１５】
図１に模式的に示すように、顔検出システム１は、ステレオカメラとして機能する一対の瞳孔用カメラ１０と、一つの鼻孔用カメラ２０と、画像処理装置３０とを備える。以下では、必要に応じて、一対の瞳孔用カメラ１０を、対象者Ａの左側にある左カメラ１０Ｌと、対象者Ａの右側にある右カメラ１０Ｒとに区別する。本実施形態では、顔検出システム１は、対象者Ａが見る対象であるディスプレイ装置４０をさらに備えるが、顔検出システム１の利用目的は上記のように限定されないので、対象者Ａの視線の先にある物はディスプレイ装置４０に限定されず、例えば自動車のフロントガラスでもあり得る。したがって、ディスプレイ装置４０は顔検出システム１における必須の要素ではない。３台のカメラ１０，２０はいずれも画像処理装置３０と無線または有線により接続され、各カメラ１０，２０と画像処理装置３０との間で各種のデータまたは命令が送受信される。各カメラ１０，２０に対しては予めカメラ較正が行われる。
【００１６】
瞳孔用カメラ１０および鼻孔用カメラ２０はいずれも対象者Ａの顔を撮像する装置であるが、瞳孔用カメラ１０は特に対象者Ａの瞳孔およびその周辺を撮影するために用いられ、鼻孔用カメラ２０は特に対象者Ａの瞳孔、鼻孔、およびこれらの周辺を撮影するために用いられる。瞳孔用カメラ１０は瞳孔光学系であり鼻孔用カメラ２０は鼻孔光学系である。本明細書では、瞳孔用カメラ１０により得られる画像を瞳孔画像（明瞳孔画像または暗瞳孔画像）といい、鼻孔用カメラ２０により得られる画像を鼻孔画像という。
【００１７】
瞳孔用カメラ１０および鼻孔用カメラ２０は、対象者Ａが眼鏡をかけているときの顔画像における反射光の写り込みを防止する目的で、対象者Ａの顔より低い位置に設けられる。一対の瞳孔用カメラ１０は水平方向に沿って所定の間隔をおいて配され、鼻孔用カメラ２０は一対の瞳孔用カメラ１０より低くかつ水平方向において一対の瞳孔用カメラ１０の間の位置に配される。鼻孔用カメラ２０を瞳孔用カメラ１０より下に配置するのは、対象者が顔を下に向けた場合でも鼻孔を検出できるようにするためである。水平方向に対する瞳孔用カメラ１０および鼻孔用カメラ２０の仰角は、瞳孔の確実な検出と対象者Ａの視野範囲の妨げの回避との双方を考慮して、例えば２０〜３５度の範囲に設定される。あるいは、瞳孔用カメラ１０の仰角が２０〜３０度の範囲に設定され、鼻孔用カメラ２０の仰角が２５〜３５度程度の範囲に設定されてもよい。
【００１８】
本実施形態では、瞳孔用カメラ１０および鼻孔用カメラ２０は、インターレーススキャン方式の一つであるＮＴＳＣ方式のカメラである。ＮＴＳＣ方式では、１秒間に３０枚得られる１フレームの画像データは、奇数番目の水平画素ラインで構成される奇数フィールドと、偶数番目の水平画素ラインで構成される偶数フィールドから構成され、奇数フィールドの画像と偶数フィールドの画像とが１／６０秒の間隔で交互に撮影されることで生成される。したがって、一つのフレームは、一対の奇数フィールドおよび偶数フィールドに相当する。瞳孔用カメラ１０および鼻孔用カメラ２０はそれぞれ、画像処理装置３０からの命令に応じて対象者Ａを撮像し、画像データを画像処理装置３０に出力する。
【００１９】
それぞれの瞳孔用カメラ１０は光源を備えるのに対して、鼻孔用カメラ２０は光源を備えない。瞳孔用カメラ１０および鼻孔用カメラ２０の違いを図２に示す。図２（ａ）は瞳孔用カメラ１０のレンズ部分を模式的に示す平面図であり、図２（ｂ）は鼻孔用カメラ２０のレンズ部分を模式的に示す平面図である。瞳孔用カメラ１０では、対物レンズ１１が円形状の開口部１２に収容され、開口部１２の外側に光源１３が設けられる。光源１３は、対象者Ａの顔に向けて照明光を照射するための機器であり、複数の発光素子１３ａと複数の発光素子１３ｂとから成る。発光素子１３ａは、出力光の中心波長が８５０ｎｍの半導体発光素子（ＬＥＤ）であり、開口部１２の縁に沿って等間隔でリング状に配される。発光素子１３ｂは、出力光の中心波長が９４０ｎｍの半導体発光素子であり、発光素子１３ａの外側に等間隔でリング状に配される。したがって、瞳孔用カメラ１０の光軸から発光素子１３ｂまでの距離は、該光軸から発光素子１３ａまでの距離よりも大きい。それぞれの発光素子１３ａ，１３ｂは、瞳孔用カメラ１０の光軸に沿って照明光を出射するように設けられる。なお、光源１３の配置は図２（ａ）に示す構成に限定されず、カメラをピンホールモデルとみなすことができれば他の配置であってもよい。一方、対物レンズ２１を有する鼻孔用カメラ２０は光源を備えず、瞳孔用カメラ１０の光源１３により照らされた対象者Ａの顔を撮影する。すなわち、鼻孔用カメラ２０は光源１３からの光を利用して撮影を行う。
【００２０】
鼻孔は後述する角膜反射に比べて寸法が大きいので、瞳孔用カメラ１０より分解能が低いカメラを鼻孔用カメラ２０として用いても鼻孔を検出することができる。すなわち、鼻孔用カメラ２０の分解能は瞳孔用カメラ１０の分解用カメラより低くてもよい。例えば、瞳孔用カメラ１０の分解能が６４０ピクセル×４８０ピクセルであるのに対して、鼻孔用カメラ２０の分解能が３２０ピクセル×２４０ピクセルであってもよい。
【００２１】
画像処理装置３０は、瞳孔用カメラ１０および鼻孔用カメラ２０の制御と、対象者Ａの視線および顔姿勢の算出（検出）とを実行するコンピュータである。画像処理装置３０は、据置型または携帯型のパーソナルコンピュータ（ＰＣ）により構築されてもよいし、ワークステーションにより構築されてもよいし、他の種類のコンピュータにより構築されてもよい。あるいは、画像処理装置３０は複数台の任意の種類のコンピュータを組み合わせて構築されてもよい。複数台のコンピュータを用いる場合には、これらのコンピュータはインターネットやイントラネットなどの通信ネットワークを介して接続される。
【００２２】
画像処理装置３０の一般的なハードウェア構成を図３に示す。画像処理装置３０は、オペレーティングシステムやアプリケーション・プログラムなどを実行するＣＰＵ（プロセッサ）１０１と、ＲＯＭおよびＲＡＭで構成される主記憶部１０２と、ハードディスクやフラッシュメモリなどで構成される補助記憶部１０３と、ネットワークカードあるいは無線通信モジュールで構成される通信制御部１０４と、キーボードやマウスなどの入力装置１０５と、ディスプレイやプリンタなどの出力装置１０６とを備える。
【００２３】
後述する画像処理装置３０の各機能要素は、ＣＰＵ１０１または主記憶部１０２の上に所定のソフトウェアを読み込ませ、ＣＰＵ１０１の制御の下で通信制御部１０４や入力装置１０５、出力装置１０６などを動作させ、主記憶部１０２または補助記憶部１０３におけるデータの読み出しおよび書き込みを行うことで実現される。処理に必要なデータやデータベースは主記憶部１０２または補助記憶部１０３内に格納される。
【００２４】
図４に示すように、画像処理装置３０は機能的構成要素として画像取得部３１、視線算出部３２、および顔姿勢算出部３３を備える。画像取得部３１は、瞳孔用カメラ１０および鼻孔用カメラ２０の撮影タイミングと瞳孔用カメラ１０の光源１３の発光タイミングとを制御することで、瞳孔用カメラ１０および鼻孔用カメラ２０から画像データを取得する機能要素である。視線算出部３２は、画像データに基づいて視線を算出する機能要素である。顔姿勢算出部３３は、画像データに基づいて顔姿勢を算出する機能要素である。視線算出部３２は瞳孔光学系の処理を実行し、顔姿勢算出部３３は鼻孔光学系の処理を実行するともいうことができる。視線及び顔姿勢の算出結果の出力先は何ら限定されない。例えば、画像処理装置３０は算出結果を画像、図形、またはテキストでモニタに表示してもよいし、メモリやデータベースなどの記憶装置に格納してもよいし、通信ネットワーク経由で他のコンピュータシステムに送信してもよい。
【００２５】
視線算出部３２および顔姿勢算出部３３は互いに情報を提供し合うことで視線および顔姿勢を算出する。具体的には、図５に示すように、顔姿勢算出部３３（鼻孔光学系）は視線算出部３２（瞳孔光学系）から提供される瞳孔位置を用いて顔姿勢を算出し、視線算出部３２（瞳孔光学系）は顔姿勢算出部３３（鼻孔光学系）から提供される予測瞳孔位置を用いて次の視線を算出する。この相互作用の詳細は後述する。
【００２６】
［顔検出方法］
次に、図６〜２３を用いて、顔検出システム１の動作について説明するとともに、本実施形態に係る顔検出方法について説明する。
【００２７】
（瞳孔画像および鼻孔画像の取得）
眼に入った光は網膜で乱反射し、反射光のうち瞳孔を通り抜けた光は強い指向性をもって光源へ戻る性質がある。カメラの開口部近くにある光源が発光した時にカメラを露光させると、網膜で反射した光の一部がその開口部に入るため、瞳孔が瞳孔周辺よりも明るく写った画像を取得することができる。この画像が明瞳孔画像である。これに対して、カメラの開口部から離れた位置にある光源が発光した時にカメラを露光させると、眼から戻ってきた光はカメラの開口部にほとんど戻らないため、瞳孔が暗く写った画像を取得することができる。この画像が暗瞳孔画像である。また、透過率が高い波長の光を眼に照射すると、網膜での光の反射が多くなるので瞳孔が明るく写り、透過率が低い波長の光を眼に照射すると、網膜での光の反射が少なくなるので瞳孔が暗く写る。
【００２８】
本実施形態では、透過率が高い波長の光（中心波長が８５０ｎｍ）を発する発光素子１３ａが開口部１２に隣接した位置に設けられ、眼の透過率が低い波長の光（中心波長が９４０ｎｍ）を発する発光素子１３ｂを開口部１２から離れた位置に設けられる。画像取得部３１は、瞳孔用カメラ１０の奇数フィールドに合わせて発光素子１３ａを点灯させて明瞳孔画像を撮影し、瞳孔用カメラ１０の偶数フィールドに合わせて発光素子１３ａを点灯させて暗瞳孔画像を撮影する。画像取得部３１は二つの瞳孔用カメラ１０の間で作動タイミングをわずかにずらし、個々の瞳孔用カメラ１０の露光時間はそのずらし時間以下に設定される。画像取得部３１は、各瞳孔用カメラ１０の露光時間中に、対応する発光素子１３ａおよび発光素子１３ｂを交互に発光させることで、一方の瞳孔用カメラ１０の光源１３からの光が他方の瞳孔用カメラ１０の画像に影響を与えないようにする（クロストークが起こらないようにする）。
【００２９】
また、画像取得部３１は瞳孔用カメラ１０の光源１３の発光に同期させて鼻孔用カメラ２０を露光させることで、その光源１３によって照らされた対象者Ａの顔の鼻孔画像を撮影する。
【００３０】
例えば、二つの瞳孔用カメラ１０の間で駆動のタイミングを５００μ秒ずらすのであれば、双方の瞳孔用カメラ１０の露光時間は５００μ秒に設定され、各瞳孔用カメラ１０における発光素子１３ａおよび発光素子１３ｂの発光時間は５００μ秒以下に設定され、鼻孔用カメラ２０の露光時間は１ミリ秒に設定される。
【００３１】
画像取得部３１は、これらの一連の制御により得られる明瞳孔画像、暗瞳孔画像、および鼻孔画像を取得する。得られる画像データは、奇数フィールド又は偶数フィールドのみに有効画素を有しているため、画像取得部３１は、隣接する有効画素の画素ラインの輝度平均をそのライン間の画素値に埋め込むことによって、明瞳孔画像、暗瞳孔画像、または鼻孔画像を生成する。画像取得部３１は明瞳孔画像および暗瞳孔画像を視線算出部３２に出力し、鼻孔画像を顔姿勢算出部３３に出力する。図６では、瞳孔用カメラ１０（光源１３を含む）を制御して明瞳孔画像および暗瞳孔画像を取得する処理をステップＳ１１で示し、光源１３および鼻孔用カメラ２０を制御して鼻孔画像を取得する処理をステップＳ１２で示している。ステップＳ１１は第１カメラ制御ステップおよび画像取得ステップに相当し、ステップＳ１２は第２カメラ制御ステップおよび画像取得ステップに相当する。
【００３２】
（瞳孔位置の検出）
視線算出部３２は、連続する２フィールドの画像のうち、先に得られた画像の位置を後から得られた画像の位置に合わせ（この処理を位置補正という）、位置合わせされた２画像の差分を取ることで差分画像を生成する。そして、視線算出部３２は差分画像から対象者Ａの左右の瞳孔の位置を算出する。連続する２フィールドの一方は明瞳孔画像であり他方は暗瞳孔画像であり、本明細書ではこの２画像の組を「瞳孔画像ペア」ともいう。図６ではこの一連の処理をステップＳ１３（視線算出ステップ）で示している。
【００３３】
ｉ番目のフィールドの画像が撮影されてから（ｉ＋１）番目のフィールドの画像が撮影されるまでの間に対象者Ａの頭部が動かなければ、図７に示すように、単純に明瞳孔画像および暗瞳孔画像の差を取ることで、瞳孔部分（図７における符号Ｐ）が浮かび上がった差分画像を生成することができる。しかし、ｉ番目のフィールドの画像が撮影されてから（ｉ＋１）番目のフィールドの画像が撮影されるまでの間のわずかな時間に対象者Ａの頭部が動くと、これら２画像の間で瞳孔の位置にずれが生じ、その結果、良好な差分画像を得ることができない。そこで、視線算出部３２は、差分画像を得る前に明瞳孔画像および暗瞳孔画像に対して位置補正を実行する。
【００３４】
本実施形態での位置補正には、顔姿勢の予測に基づく位置補正と、その後に行われる、角膜反射に基づく位置補正の２種類がある。顔姿勢の予測に基づく位置補正の概念を図８に示し、角膜反射に基づく位置補正の概念を図９に示す。
【００３５】
顔姿勢の予測に基づく位置補正では、図８に示すように、ｉ番目のフィールド（画像）における瞳孔位置Ｐｉおよび鼻孔中心Ｎｉが算出され、続いて、（ｉ＋１）番目のフィールド（画像）における瞳孔位置Ｐｉ＋１および鼻孔中心Ｎｉ＋１を予測することで、次フィールドでの顔姿勢（顔の変位および回転角度）が推定される。そして、ｉ番目のフィールド（画像）をその予測に従ってずらした上で、２画像との差分が取られる。顔姿勢の予測に基づく位置補正には、顔が回転した場合でも補正ができ、しかも、顔の速い動きに対応できるという有利な点がある。
【００３６】
角膜反射に基づく位置補正では、ｉ番目のフィールド（画像）と（ｉ＋１）番目のフィールド（画像）のそれぞれから検出した角膜反射点Ｒの位置が一致するようにｉ番目のフィールド（画像）をずらしてから（図９の矢印を参照）、２画像の差分が取られる。この差分画像から瞳孔Ｐを検出することができる。
【００３７】
２段階の位置補正を行って左右の瞳孔の位置を検出する処理の概要を図１０に示す。まず、視線算出部３２は、顔姿勢算出部３３から入力された予測瞳孔位置に基づいて、明瞳孔画像および暗瞳孔画像に対する位置補正を実行する（ステップＳ１３１）。続いて、視線算出部３２は、位置補正された２画像から差分画像を生成し、その差分画像から仮の瞳孔位置を検出する（ステップＳ１３２）。続いて、視線算出部３２は仮の瞳孔位置に基づいて明瞳孔画像および暗瞳孔画像に小ウィンドウを設定して角膜反射点を検出し（ステップＳ１３３）、その角膜反射点に基づいて２画像に対する位置補正を実行する（ステップＳ１３４）。そして、視線算出部３２は明瞳孔画像および暗瞳孔画像から差分画像を生成し、その差分画像から瞳孔位置を算出する（ステップＳ１３５）。これら一連の処理により瞳孔位置が確定する。
【００３８】
瞳孔検出の方法は前フィールド（ｉ番目のフィールド）での瞳孔の検出結果（前回の瞳孔検出結果）によって下記の３種類に分かれる。
（１）前フィールド（前回の瞳孔検出）で両瞳孔を検出できた場合
（２）前フィールド（前回の瞳孔検出）で片方の瞳孔のみを検出できた場合
（３）前フィールド（前回の瞳孔検出）で両瞳孔を検出できなかった場合
【００３９】
前フィールドで両瞳孔を検出できた場合には、視線算出部３２は瞳孔追跡により両瞳孔を決定し、左右の瞳孔の中心座標を算出する。まず、視線算出部３２は、顔姿勢算出部３３から入力された予測瞳孔位置の３次元座標を、後述する式（６）を用いて撮像平面（瞳孔画像）上の２次元座標に変換する。また、視線算出部３２は、次フィールド（（ｉ＋１）番目のフィールド）の瞳孔画像を画像取得部３１から取得する。続いて、視線算出部３２は予測瞳孔位置の２次元座標を中心とする小ウィンドウ（例えば７０ピクセル×７０ピクセル）を次フィールドの瞳孔画像に設定する。一方、前フィールドの画像に対しては、視線算出部３２は既に検出されている２次元座標を中心とする小ウィンドウを設定する。続いて、視線算出部３２は前フィールドのウィンドウの位置を次フィールドのウィンドウの位置に合わせ、明瞳孔画像と暗瞳孔画像との差分を取る。続いて、視線算出部３２は、その処理で得られた差分画像に対してＰタイル法によって決定された閾値で２値化を行った後、孤立点除去およびラベリングを行う。続いて、視線算出部３２は、瞳孔らしい面積、サイズ、面積比、正方形度、および瞳孔特徴量等の形状パラメータに基づいて、ラベルづけされた画素の連結成分の中から瞳孔候補を選択する。そして、視線算出部３２は二つの瞳孔候補の関係が所定の関係にあるものを左右の瞳孔として決定し、画像データにおける左右の仮の瞳孔位置を求める。すなわち、視線算出部３２は、顔姿勢から予測された瞳孔の３次元座標をピンホールモデルを用いて撮像平面に投影してから、位置補正を実行して差分画像を生成し、その差分画像に基づいて瞳孔を特定する。
【００４０】
前フィールドで片方の瞳孔のみ検出された場合には、視線算出部３２は、検出された方の瞳孔については、上記と同様の瞳孔追跡により瞳孔を決定し、仮の瞳孔位置を求める。一方、検出されなかった方の瞳孔については、視線算出部３２は検出された方の瞳孔の位置から所定の距離（例えば３０ピクセル）だけ離れた位置に中ウィンドウ（例えば１５０ピクセル×６０ピクセル）を設定し、その中ウィンドウについて差分画像を生成する。そして、視線算出部３２はその差分画像に対して、上記と同様の手順で瞳孔候補を選択する。そして、視線算出部３２は瞳孔候補の中で面積が最も大きいものを他方の仮の瞳孔位置として決定する。
【００４１】
前フィールドで両瞳孔を検出できなかった場合には、視線算出部３２は画像全体から瞳孔を探索する。具体的には、視線算出部３２は、前フィールドの画像と次フィールドの画像との差分を取ることで得た差分画像に対して、上記と同様の手順で瞳孔候補を選択する。そして、視線算出部３２は二つの瞳孔候補の関係が所定の関係にあるものを左右の瞳孔として決定し、画像データにおける左右の仮の瞳孔位置を求める。
【００４２】
続いて、視線算出部３２は角膜反射の位置を考慮して最終的な瞳孔位置を確定する。具体的には、視線算出部３２は、明瞳孔画像および暗瞳孔画像のそれぞれに対して、仮の瞳孔位置を中心とした小ウィンドウを設定し、その小ウィンドウの範囲のみを高分解像度化した画像データを作成し、その画像データから角膜反射を検出する。視線算出部３２は、小ウィンドウ内において、Ｐタイル法による２値化とラベリングとを行い、形状や輝度平均などの情報から角膜反射候補を選択する。そして、視線算出部３２は選択した部分の中心座標に対し分離度フィルタを与え、分離度と輝度を掛けて得られる特徴量を求める。その特徴量が一定値以上であれば、視線算出部３２は小ウィンドウの中心座標を仮の角膜反射座標として検出し、二つの小ウィンドウの間での角膜反射の移動量を位置補正量として計算する。続いて、視線算出部３２は明瞳孔画像および暗瞳孔画像の間で角膜反射点が一致するように、前フィールド（ｉ番目のフィールド）の画像を、次フィールド（（ｉ＋１）番目のフィールド）の画像に位置補正量だけずらした上で、これら２画像から差分画像を生成する。一方、角膜反射を検出できなかった場合には、視線算出部３２は位置補正を行うことなく２画像の差分を取ることで差分画像を生成する。
【００４３】
続いて、視線算出部３２は差分画像から最終的な瞳孔位置を確定する。具体的には、視線算出部３２は、前フレームと輝度が大きく変化しないことを利用して、前フレームで検出された瞳孔の輝度平均を利用して、その平均輝度の半分の値を閾値として差分画像を２値化し、ラベリングを行う。続いて、視線算出部３２は、瞳孔らしい面積、サイズ、面積比、正方形度、および瞳孔特徴量等の形状パラメータに基づいて、ラベルづけされた画素の連結成分の中から瞳孔候補を選択する。そして、視線算出部３２は、予測瞳孔位置の近くにある瞳孔候補が求めるべき瞳孔であると判定し、その瞳孔の中心座標を算出する。
【００４４】
（瞳孔の中心座標から３次元座標への変換）
続いて、視線算出部３２はステレオ法（ステレオマッチング）を用いて、算出した瞳孔中心座標から左右の瞳孔の３次元位置を計算する。ステレオ法とは、カメラのレンズの焦点距離、画像中心、画素サイズなどの内部パラメータと、カメラの位置や姿勢等の外部パラメータとを予め計測しておき、複数台のステレオカメラで対象物を撮影したときに、画像中の点の座標を基に、内部パラメータおよび外部パラメータを用いてその点の空間上の位置を決定する方法である。
【００４５】
視線算出部３２がステレオ法を用いて瞳孔の３次元座標を計算する際には、図１１に示すような座標系を用いる。同図に示す世界座標系（ＸＷ，ＹＷ，ＺＷ）は、２台の瞳孔用カメラ１０が共有する原点ＯＷが例えばディスプレイ装置４０の画面中央に位置する座標系である。カメラ座標系（Ｘ，Ｙ，Ｚ）は、その原点Ｃが瞳孔用カメラ１０の光学中心とされ、Ｚ軸が光学中心から画像面に垂直に引いた光軸と平行とされた座標系である。画像座標系（ＸＧ，ＹＧ）は、撮像素子が置かれる画像面に沿ってＸＹ平面と平行にされ、光軸と画像面の交点（画像中心）を原点Ｃｉとする座標系である。点Ｐが目標点の座標とすると、瞳孔用カメラ１０を用いた際の画像座標系への投影点（Ｘｄ，Ｙｄ）は、画像のゆがみにより理想的な投影点（Ｘｕ，Ｙｕ）からずれることになる。したがって、ステレオ法を用いた３次元位置計測を精度良く行うためには、目標点Ｐの世界座標とその画像座標との対応づけを記録したキャリブレーションデータを予め取得する必要がある。例えば、外部パラメータとしての世界座標に対するカメラ座標系の平行移動ベクトルおよび世界座標系に対するカメラ座標系の回転行列や、内部パラメータとしての焦点距離、画像中心座標、スケール係数、レンズひずみ係数、撮像素子間隔等がキャリブレーションデータとして予め取得され、視線算出部３２に記憶される。
【００４６】
視線算出部３２は、２台の瞳孔用カメラ１０からの出力データを基に検出した画像座標系における瞳孔中心座標と、世界座標系における瞳孔中心座標との関係式を、キャリブレーションデータを参照しながら取得する。次に、視線算出部３２は、２つの関係式から世界座標系における対象者Ａの瞳孔の３次元座標を求める。同様にして、視線算出部３２は、対象者Ａの左右の瞳孔の３次元座標を求めることができる。視線算出部３２は左右の瞳孔の３次元座標を顔姿勢算出部３３に出力する。
【００４７】
（視線の検出）
続いて、視線算出部３２は左右の瞳孔の３次元座標に基づいて視線を検出する。図６ではこの一連の処理をステップＳ１４（視線算出ステップ）で示している。
【００４８】
図１２に示すように、瞳孔の３次元位置Ｐに基づいて、瞳孔用カメラ１０の開口部１２の中心を原点Ｏとし、その原点Ｏと瞳孔中心Ｐを結ぶ基準線ＯＰを法線とする仮想視点平面Ｘ’−Ｙ’を考える。ここで、Ｘ’軸は、世界座標系のＸＷ−Ｚｗ平面と仮想視点平面との交線に相当する。
【００４９】
視線算出部３２は、画像面ＳＧにおける角膜反射点Ｇから瞳孔中心ＰまでのベクトルｒＧを算出し、そのベクトルｒＧを、距離ＯＰから求められたカメラの拡大率を用いて実寸に換算したベクトルｒに変換する。このとき、各瞳孔用カメラ１０をピンホールモデルと考え、角膜反射点Ｇと瞳孔中心Ｐとが、仮想視点平面Ｘ’−Ｙ’と平行な平面上にあると仮定する。つまり、視線算出部３２は、仮想視点平面と平行であって瞳孔Ｐの３次元座標を含む平面上において、瞳孔中心Ｐと角膜反射点Ｇの相対座標をベクトルｒとして算出し、このベクトルｒは角膜反射点Ｇから瞳孔中心Ｐまでの実距離を表す。
【００５０】
続いて、視線算出部３２は、対象者Ａの仮想視点平面上の注視点Ｔに関して、直線ＯＴの水平軸Ｘ’に対する傾きφが、ベクトルｒの画像面上の水平軸ＸＧに対する傾きφ’と等しいと仮定する。さらに、視線算出部３２は、対象者Ａの視線ベクトル、すなわち、瞳孔中心Ｐと注視点Ｔとを結ぶベクトルＰＴと、基準線ＯＰとの成す角θを、ゲイン値ｋを含むパラメータを使った下記式（１）により計算する。
θ＝ｆ１（ｒ）＝ｋ×｜ｒ｜    …（１）
【００５１】
このような角度φ，θの計算は、瞳孔中心Ｐの存在する平面上のベクトルｒを仮想視点平面上で拡大したものがそのまま対象者Ａの注視点に対応するとみなすことにより行われる。より詳しくは、対象者Ａの視線ＰＴの基準線ＯＰに対する角度θは、瞳孔中心と角膜反射の距離｜ｒ｜との間で線形関係を有すると仮定する。
【００５２】
角度θと距離｜ｒ｜とは線形近似できるという仮定、および二つの傾きφ，φ’が等しいという仮定を利用することで、（θ，φ）と（｜ｒ｜，φ’）とを１対１に対応させることができる。このとき、視線算出部３２は、瞳孔用カメラ１０の開口部１２の中心に設定された原点Ｏと、仮想視点平面上の注視点Ｔとを結ぶベクトルＯＴを次式（２）により得る。なお、ベクトルＯＰは瞳孔用カメラ１０から得られる。
【数１】
2015232771.tif 000003
【００５３】
最後に、視線算出部３２は視線ベクトルＰＴと視対象平面（ディスプレイ装置４０）との交点である注視点Ｑを次式（３）で求める。
Ｑ＝ｎＰＴ＋Ｐ    …（３）
【００５４】
しかし、一般的にヒトの視軸（瞳孔中心および中心窩を通る軸）と光軸（角膜からレンズの中心へと延びる法線）との間にはずれがあり、対象者Ａがカメラを注視した際にも角膜反射と瞳孔中心とは一致しない。そこで、これを補正する原点補正ベクトルｒ０を定義し、カメラ画像から実測した角膜反射−瞳孔中心ベクトルをｒ’とすると、ベクトルｒはｒ＝ｒ’−ｒ０で表されるので、式（１）は下記式（４）のように書き換えられる。
θ＝ｋ×｜ｒ’−ｒ０｜    …（４）
【００５５】
計測されたｒ’に対して原点補正を行うことで、（θ，φ）と（｜ｒ｜，φ’）とを１対１に対応させることができ、精度の高い注視点検出を行うことができる。このような補正は、当業者に周知である１点較正法を用いて実現可能である。
【００５６】
（鼻孔の検出）
顔姿勢算出部３３は、視線算出部３２から入力された瞳孔の３次元位置に基づいて、鼻孔があると推定される鼻孔画像内の位置にウィンドウを設定し、そのウィンドウ内を処理することで鼻孔を検出する。顔姿勢算出部３３は、明瞳孔画像または暗瞳孔画像から鼻孔を検出する。鼻孔検出の方法は前フィールドでの鼻孔の検出結果（前回の鼻孔検出の結果）によって下記の３種類に分かれる。
（１）前フィールド（前回の鼻孔検出）で左右の鼻孔の双方を検出できなかった場合
（２）前フィールド（前回の鼻孔検出）で左右の鼻孔の双方を検出できた場合
（３）前フィールド（前回の鼻孔検出）で片方の鼻孔のみを検出できた場合
【００５７】
前フィールドで左右の鼻孔の双方を検出できなかった場合には、顔姿勢算出部３３は瞳孔の位置に基づいて鼻孔画像内に所定の大きさの大ウィンドウを設定し、その大ウィンドウ内の輝度を反転させ、Ｐタイル法によって設定された閾値で２値化を行った後、孤立点除去、収縮処理、膨張処理、およびラベリングを行う。続いて、顔姿勢算出部３３はラベルづけされた画素の連結成分から、鼻孔らしい面積および大ウィンドウ内での位置に基づいて鼻孔候補を選択する。続いて、顔姿勢算出部３３は、大ウィンドウの中心に最も近い鼻孔候補を第１鼻孔とし、その第１鼻孔との距離が最も近い鼻孔候補を第２鼻孔と決定する。そして、顔姿勢算出部３３はＸ座標に基づいて第１鼻孔および第２鼻孔のどちらか一方を左鼻孔と認定し他方を右鼻孔と認定し、各鼻孔の中心座標を算出する。
【００５８】
前フィールドで左右の鼻孔の双方を検出できた場合には、顔姿勢算出部３３は前フィールドの鼻孔位置からカルマンフィルタによって現在の処理対象フィールドにおける鼻孔位置を予測し、予測された鼻孔位置を中心とする小ウィンドウを設定する。小ウィンドウは大ウィンドウよりも小さい。そして、顔姿勢算出部３３は大ウィンドウに対する処理と同様に、小ウィンドウ内の輝度反転、Ｐタイル法による２値化、孤立点除去、収縮処理、膨張処理、ラベリング、鼻孔候補の選択、および左右の鼻孔の認定を実行することで、各鼻孔の中心座標を算出する。
【００５９】
前フィールドで片方の鼻孔のみ検出された場合には、顔姿勢算出部３３は鼻孔推定を行う。顔姿勢算出部３３は、対象者Ａが鼻孔用カメラ２０に真っ直ぐ向いているときの両瞳孔および両鼻孔の座標を事前に保持しており、これらの座標に基づいて瞳孔間の距離と鼻孔間の距離との比と求める。続いて、顔姿勢算出部３３は、両瞳孔をつないだ直線と両鼻孔をつないだ直線が平行であるとの前提に立ち、二つの瞳孔座標と、検出できた一つの鼻孔座標と、求めた比とに基づいて、前フィールドで検出できなかった鼻孔座標を推定し、推定された鼻孔座標を中心に上記と同様の小ウィンドウを設定する。そして、顔姿勢算出部３３は小ウィンドウ内の輝度反転、Ｐタイル法による２値化、孤立点除去、収縮処理、膨張処理、ラベリング、鼻孔候補の選択、および左右の鼻孔の認定を実行することで、各鼻孔の中心座標を算出する。
【００６０】
（瞳孔および鼻孔の３次元座標の推定）
顔検出システム１における撮像光学系を、図１３に示すように焦点距離ｆのピンホールモデルと仮定することができる。ピンホールを原点Ｏとしたカメラ座標系（基準座標系）Ｘ−Ｙ−Ｚにおける鼻孔画像（撮像平面ＰＬ）上の右瞳孔、左瞳孔、左鼻孔、および右鼻孔の中心点の２次元座標をそれぞれ、Ｑ１（ｘ１，ｙ１）、Ｑ２（ｘ２，ｙ２）、Ｑ３（ｘ３，ｙ３）、およびＱ４（ｘ４，ｙ４）とする。顔姿勢算出部３３は、これら４点の２次元座標から、両鼻孔の中点の３次元座標（鼻孔中心座標）Ｐ０、右瞳孔の３次元座標Ｐ１、および左瞳孔の３次元座標Ｐ２を求める。ここで、Ｐｎ＝（Ｘｎ，Ｙｎ，Ｚｎ）（ｎ＝０，１，２）である。
【００６１】
３個の特徴点（両鼻孔の中点、および左右の瞳孔）間を結んだ三角形の各辺の距離は、それらのうちの任意の一点をｉとし、他の２点のうちの１点をｊとすると、点ｉ，ｊの間の距離Ｌｉｊで示される（下記式（５））。
【数２】
2015232771.tif 000004
【００６２】
ピンホールから各特徴点への位置ベクトルが求まれば、各特徴点に対応する撮像平面ＰＬ上の２次元位置は、カメラの焦点距離ｆを用いて下記式（６）で得られる。
Ｑｎ＝（Ｘｎ（ｆ／Ｚｎ），Ｙｎ（ｆ／Ｚｎ））    …（６）
また、ピンホールＯから各特徴点へ向かう位置ベクトルに対応した単位ベクトルは下記式（７）により得られる。
【数３】
2015232771.tif 000005
各特徴点の位置ベクトルは定数ａｎ（ｎ＝０，１，２）を用いて下記式（８）で表される。
【数４】
2015232771.tif 000006
すると、下記式（９）が成立する。
【数５】
2015232771.tif 000007
これにより下記の連立方程式（１０）が得られる。
【数６】
2015232771.tif 000008
顔姿勢算出部３３はこの連立方程式からａ０，ａ１，ａ２を求め、その解を式（８）に適用することで位置ベクトルＰ０，Ｐ１，Ｐ２を求める。
【００６３】
（顔姿勢の算出）
続いて、顔姿勢算出部３３は特徴点Ｐ０，Ｐ１，Ｐ２の３次元位置に基づいて顔座標系のカメラ座標系からの回転角および変位を算出することで顔姿勢を求める。図６ではこの処理をステップＳ１５（顔姿勢算出ステップ）で示している。
【００６４】
図１４に示すように、カメラ座標系ＸＹＺに対して特徴点Ｐ０，Ｐ１，Ｐ２およびそれらの重心Ｇを基準にした顔座標系ｘｙｚを定義する。このｘ軸、ｙ軸、ｚ軸は、顔座標系の原点が重心Ｇと一致し、顔平面がｘｙ平面と一致し、かつｚ軸が法線ベクトルと一致するように設定される。また、重心Ｇが顔座標系ｘｙｚの原点と位置し、かつ鼻孔中点がｙ軸上にあって負値をとるように設定された状態を顔座標系ｘｙｚでの基準姿勢と定義する。このとき、Ｐ０，Ｐ１，Ｐ２のｚ座標はすべて０である。顔姿勢算出部３３は、その基準姿勢の変化から顔平面の回転角α，β，γを求める。
【００６５】
続いて、顔姿勢算出部３３は各特徴点の３次元座標Ｐ０，Ｐ１，Ｐ２の重心Ｇを通る平面Ｐの法線ベクトルＶＦ＝（ｎＸ，ｎＹ，ｎＺ）を求める。この法線ベクトルＶＦは、対象者Ａの顔姿勢を示す顔姿勢ベクトルである。
【００６６】
顔姿勢算出部３３は、以下のようにして、ある撮像タイミングにおける特徴点Ｐ０，Ｐ１，Ｐ２に対応した顔座標系を求める。まず、図１５に示すように、法線ベクトルＶＦのＹ軸のまわりの回転角αは、Ｚ軸からＸ軸へ向かう角度を正とすると、下記式（１１）によって求まる。
【数７】
2015232771.tif 000009
【００６７】
次に、図１６に示すように、Ｙ軸周りに回転角αだけ回転させたＸ軸およびＺ軸をＸ’軸およびＺ’軸とすると、法線ベクトルＶＦのＸ’軸周りの回転角βは、Ｙ軸からＺ’軸へ向かう角度を正とすると、下記式（１２）よって求まる。
【数８】
2015232771.tif 000010
【００６８】
さらに、図１７に示すように、Ｘ’軸周りに回転角βだけ回転させたＹ軸およびＺ’軸をそれぞれＹ’軸およびＺ’’軸とすると、Ｚ’’軸と法線ベクトルＶＦとが一致する。このようにして得られたＸ’軸，Ｙ’軸Ｚ’’軸が、任意の時点での法線ベクトルＶＦに対応する顔座標系となる。顔姿勢算出部３３は、このような一連の計算により、顔座標系のカメラ座標系からの回転角α，βおよび原点の変位を得る。
【００６９】
顔姿勢算出部３３は、カメラ座標系の特徴点の３次元座標Ｐｎ（ｎ＝０，１，２）を、下記式（１３）を用いて顔座標系における座標Ｐｎ’に変換する。
Ｐｎ’＝Ｔｘ（β）Ｔｙ（α）Ｐｉ    …（１３）
ここで、Ｔｘ（β）およびＴｙ（α）は下記式（１４）によって定義される。
【数９】
2015232771.tif 000011
【００７０】
この顔座標系における対象者Ａの基準姿勢の特徴点座標をＰ００，Ｐ１０，Ｐ２０とすると、対象者Ａの特徴点座標Ｐ０’，Ｐ１’，Ｐ２’は顔座標系のｘｙ平面上に位置するため、顔姿勢算出部３３は、任意のタイミングでの対象者Ａの姿勢に関する基準姿勢からのｚ軸周りの回転角γを算出することができる。顔座標系のｚ軸の正方向から見た基準姿勢の特徴点座標と、対象者Ａの特徴点座標との関係を図１８に示す。なお、回転角γは、ｘ軸からｙ軸へ向かう方向を正とする。例えば、顔姿勢算出部３３は、基準姿勢の特徴点座標Ｐ００と検出された対象者Ａの特徴点座標Ｐ０’とに基づいて、下記式（１５）を用いて回転角γを算出する。
【数１０】
2015232771.tif 000012
【００７１】
これにより、顔姿勢算出部３３は、顔座標系における顔重心Ｇの周りの任意の点の位置ベクトルを、下記式（１６），（１７）を用いて、カメラ座標系における位置ベクトルに変換する。
【数１１】
2015232771.tif 000013
Ｔ（−α，−β，−γ）＝Ｔｙ（−α）・Ｔｘ（−β）・Ｔｚ（−γ）    …（１７）
【００７２】
また、顔姿勢算出部３３は、カメラ座標系上の任意点の位置ベクトルを、下記式（１８）により、顔座標系上の位置ベクトルに変換することもできる。
Ｔ−１（−γ，−β，−α）＝Ｔ（γ，β，α）＝Ｔｚ（γ）・Ｔｘ（β）・Ｔｙ（α）    …（１８）
【００７３】
（頭部姿勢予測）
顔姿勢は連続するフィールド間で連続的に変化する。顔姿勢算出部３３は、次フィールドの顔姿勢を示す回転角および顔重心を予測し、予測された顔姿勢と顔座標系における基準姿勢座標とを用いることで、次フィールドの特徴点の３次元座標を予測する。図６ではこの処理をステップＳ１６で示している。
【００７４】
具体的には、ｉ番目のフィールドおよび（ｉ−１）番目のフィールドにおける顔姿勢が検出された場合に、顔姿勢算出部３３はカルマンフィルタを用いてこれら二つの顔姿勢から（ｉ＋１）番目のフィールド（次フィールド）における顔姿勢、および各特徴点の座標を予測する。予測される顔方向を（α＾，β＾，γ＾）と表し、予測される顔重心をＧ＾と表すとすると、各特徴点の基準位置座標Ｐ００，Ｐ１０，Ｐ２０のそれぞれを式（１３）により顔座標系に変換することで、顔座標系における特徴点の予測３次元座標Ｐ＾ｎ（ｎ＝０，１，２）が得られる。すなわち、顔姿勢算出部３３は下記式（１９）により予測３次元座標を得る。
Ｐ＾ｎ＝Ｔｙ（−α＾）・Ｔｘ（−β＾）・Ｔｚ（−γ＾）・Ｐｎ０＋Ｇ＾    …（１９）
【００７５】
顔姿勢算出部３３は予測した３次元座標Ｐ＾１，Ｐ＾２を予測瞳孔位置として視線算出部３２に出力する。視線算出部３２はその予測瞳孔位置を用いて、上記ステップＳ１３（ステップＳ１３１〜Ｓ１３５）およびステップＳ１４の処理を実行する。
【００７６】
（鼻孔検出用光学系における頭部姿勢推定アルゴリズム）
上述したように、顔姿勢算出部３３は、瞳孔検出光学系で検出した瞳孔の座標を鼻孔しか検出できない鼻孔検出光学系へ補完することで、鼻孔検出光学系において１台のカメラによる頭部姿勢推定および瞳孔位置予測を行う。頭部姿勢を求めるには、上述したように、左右瞳孔および鼻孔中点の３次元位置を求めることが必要であり、それには各点へ向かう方向ベクトルを求める必要がある。顔姿勢算出部３３は、少なくとも瞳孔が検出されている場合に鼻孔検出用光学系へ瞳孔情報の補完を行うことで、左右瞳孔および鼻孔中点の３次元位置を算出し、頭部姿勢推定を行う。
【００７７】
両方の瞳孔を検出できた場合には、顔姿勢算出部３３は以下の処理を実行する。図１９に示すように、２台の瞳孔用カメラ１０Ｌ，１０Ｒと１台の鼻孔用カメラ２０とから二つの瞳孔と鼻孔中点とについての座標が得られたとする。この場合には、図２０に示すように、顔姿勢算出部３３はステレオ法（ステレオマッチング）によって世界座標系における瞳孔３次元座標ＰＷ１，ＰＷ２を求めることができる。
【００７８】
ある位置についての世界座標系およびカメラ座標系の３次元座標をそれぞれＰＷ，ＰＣとすると、世界座標系とカメラ座標系の関係は次式（２０）で表される。
ＰＣ＝Ｒ・ＰＷ＋Ｔ    …（２０）
ここで、Ｒは回転行列であり、Ｔは並進ベクトルである。
【００７９】
式（２０）を用いて世界座標系における左右の瞳孔の３次元座標ＰＷ１，ＰＷ２は、図２１に示すように、鼻孔用カメラ２０の座標系における３次元座標ＰＢ１，ＰＢ２に変換される。この変換により得られた３次元座標ＰＢｉの点へ向かう単位方向ベクトルＵＢｉはＰＢｉ＝（ｘＢｉ，ｙＢｉ，ｚＢｉ）とすると次式（２１）で表せる。ここで、ｉ＝１，２である。
【数１２】
2015232771.tif 000014
単位方向ベクトルｕＢｉと定数ａｉと用いてＰＢｉは次式（２２）で表される。
ＰＢｉ＝ａｉｕＢｉ    …（２２）
一方、鼻孔中点ＰＢ０へ向かう単位方向ベクトルｕＢ０は下記式（２３）で表される。
ＰＢ０＝ａ０ｕＢ０    …（２３）
【００８０】
ここで両瞳孔および鼻孔中点の３点のうちの任意の点をｍとし、それ以外の２点のうちの１点をｎとすると、２点ｍ、ｎの間の距離Ｌｍｎを用いて次式（２４）が成り立つ。
｜ＰＢｍ−ＰＢｎ｜＝Ｌｍｎ    …（２４）
この式の左辺を展開すると次式（２５）が導かれる。
【数１３】
2015232771.tif 000015
これにより下記の連立方程式（２６）が得られる。
【数１４】
2015232771.tif 000016
【００８１】
顔姿勢算出部３３はこの連立方程式（２６）からａ０，ａ１，ａ２を求め、その解を式（２２），（２３）に適用することで３次元座標ＰＢ０，ＰＢ１，ＰＢ２を求める。顔姿勢算出部３３はこれらの３次元座標ＰＢ０，ＰＢ１，ＰＢ２を用いて予測瞳孔位置を求め、その予測瞳孔位置を視線算出部３２に出力する。視線算出部３２はこの予測瞳孔位置を用いて、上記ステップＳ１３（ステップＳ１３１〜Ｓ１３５）およびステップＳ１４の処理を実行する。
【００８２】
片方の瞳孔のみ検出できた場合には、顔姿勢算出部３３は以下の処理を実行する。ここでは、図２２に示すように、右カメラ１０Ｒで左瞳孔が検出できなかった状況を考える。この状況では、ステレオ法により世界座標系における右瞳孔の３次元位置ＰＷ１を求めることができるが、左瞳孔Ｐ２の３次元位置をステレオ法で求めることができない。
【００８３】
この場合、鼻孔用カメラ２０の座標系における右瞳孔ＰＢ１および鼻孔中点ＰＢ０については次式（２７），（２８）を得ることができる。
ＰＢ１＝ａ１ｕＢ１    …（２７）
ＰＢ０＝ａ０ｕＢ０    …（２８）
また、左カメラ１０Ｌで検出できた左瞳孔の画像座標系の位置によって次の式（２９）を得ることができる。
ＰＬ２＝ａ２ｕＬ２    …（２９）
ここで、左カメラ１０Ｌの座標系で表すことができるＰＬ２を鼻孔用カメラ２０の座標系での表現ＰＢ２に変換すると次式（３０），（３１）が得られる（図２３参照）。
ＰＢ２＝ａ２ｕＢ２−ＴＬＢ    …（３０）
ｕＢ２＝ＲＢ・ＲＬ−１・ｕＬ２    …（３１）
ここで、ＲＬ−１は世界座標系を左カメラ座標系に変換するための回転行列ＲＬの逆行列であり、ＴＬＢは左カメラ座標系から鼻孔用カメラ座標系へ変換するための並進ベクトルである。
【００８４】
式（２７），（２８）、（３０）を式（２５）にそれぞれ代入すると次の連立方程式（３２）が得られる。
ａ１２＋ａ２２−２ｋ２ａ１ａ２＋２ｋ３ａ１−２ｋ０ａ２＋ｋ１−Ｌ１２２＝０
ａ２２＋ａ０２−２ｋ４ａ２ａ０＋２ｋ５ａ２−２ｋ５ａ０＋ｋ１−Ｌ２０２＝０
ａ０２＋ａ１２−２ｋ６ａ０ａ１−Ｌ０１２＝０
…（３２）
ここで、ｋ０，ｋ１，ｋ２，ｋ３，ｋ４，ｋ５，ｋ６は以下のように定義される。
ｋ０＝ｕＢ２・ＴＬＢ    …（３３ａ）
ｋ１＝｜ＴＬＢ｜２    …（３３ｂ）
ｋ２＝ｕＢ１・ｕＢ２    …（３３ｃ）
ｋ３＝ｕＢ１・ＴＬＢ    …（３３ｄ）
ｋ４＝ｕＢ２・ｕＢ０    …（３３ｅ）
ｋ５＝ｕＢ０・ＴＬＢ    …（３３ｆ）
ｋ６＝ｕＢ０・ｕＢ１    …（３３ｇ）
【００８５】
Ｌ０１，Ｌ１２，Ｌ２０は定数なので、顔姿勢算出部３３は、ａ０，ａ１，ａ２を未知数として連立方程式（３２）を解くことで、鼻孔用カメラ２０の座標系での各特徴点の３次元座標ＰＢ０，ＰＢ１，ＰＢ２を求める。顔姿勢算出部３３はこれらの３次元座標ＰＢ０，ＰＢ１，ＰＢ２を用いて予測瞳孔位置を求め、その予測瞳孔位置を視線算出部３２に出力する。視線算出部３２はこの予測瞳孔位置を用いて、上記ステップＳ１３（ステップＳ１３１〜Ｓ１３５）およびステップＳ１４の処理を実行する。
【００８６】
［顔検出プログラム］
次に、図２４を用いて、画像処理装置３０を実現するための顔検出プログラムＰ１を説明する。
【００８７】
顔検出プログラムＰ１は、メインモジュールＰ１０、画像取得モジュールＰ１１、視線算出モジュールＰ１２、および顔姿勢算出モジュールＰ１３を備える。
【００８８】
メインモジュールＰ１０は、顔検出機能を統括的に制御する部分である。画像取得モジュールＰ１１、視線算出モジュールＰ１２、および顔姿勢算出モジュールＰ１３を実行することにより実現される機能はそれぞれ、上記の画像取得部３１、視線算出部３２、および顔姿勢算出部３３の機能と同様である。
【００８９】
顔検出プログラムＰ１は、例えば、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ、半導体メモリなどの有形の記録媒体に固定的に記録された上で提供されてもよい。また、顔検出プログラムＰ１は、搬送波に重畳されたデータ信号として通信ネットワークを介して提供されてもよい。
【００９０】
以上説明したように、本発明の一側面に係る顔検出システムは、光源を備える瞳孔用カメラと、瞳孔用カメラの光源からの光を用いて撮影を実行する鼻孔用カメラと、瞳孔用カメラを制御することで対象者の瞳孔画像を取得すると共に、鼻孔用カメラを制御することで対象者の鼻孔画像を取得する画像取得部と、瞳孔画像から瞳孔座標を算出し、該瞳孔座標に基づいて視線を算出する視線算出部と、鼻孔画像から鼻孔中心座標を算出し、瞳孔座標および該鼻孔中心座標に基づいて対象者の顔姿勢ベクトルを算出する顔姿勢算出部とを備える。
【００９１】
本発明の一側面に係る顔検出方法は、プロセッサを備える顔検出システムにより実行される顔検出方法であって、光源を備える瞳孔用カメラを制御する第１カメラ制御ステップと、瞳孔用カメラの光源からの光を用いて、鼻孔用カメラによる撮影を実行する第２カメラ制御ステップと、瞳孔用カメラから対象者の瞳孔画像を取得すると共に、鼻孔用カメラから対象者の鼻孔画像を取得する画像取得ステップと、瞳孔画像から瞳孔座標を算出し、該瞳孔座標に基づいて視線を算出する視線算出ステップと、鼻孔画像から鼻孔中心座標を算出し、瞳孔座標および該鼻孔中心座標に基づいて対象者の顔姿勢ベクトルを算出する顔姿勢算出ステップとを含む。
【００９２】
本発明の一側面に係る顔検出プログラムは、光源を備える瞳孔用カメラを制御することで対象者の瞳孔画像を取得すると共に、瞳孔用カメラの光源からの光を用いて撮影するように鼻孔用カメラを制御することで対象者の鼻孔画像を取得する画像取得部と、瞳孔画像から瞳孔座標を算出し、該瞳孔座標に基づいて視線を算出する視線算出部と、鼻孔画像から鼻孔中心座標を算出し、瞳孔座標および該鼻孔中心座標に基づいて対象者の顔姿勢ベクトルを算出する顔姿勢算出部としてコンピュータを機能させる。
【００９３】
このような側面においては、複数の瞳孔用カメラ（瞳孔光学系）で撮影された瞳孔画像から瞳孔座標が算出され、その瞳孔座標から視線が算出される。また、その瞳孔座標と、鼻孔用カメラ（鼻孔光学系）で撮影された鼻孔画像から算出された鼻孔座標とに基づいて顔姿勢ベクトルが算出される。このように瞳孔光学系および鼻孔光学系を用いることで、対象者の視線および顔姿勢の双方を同時にかつ正確に検出することができる。また、鼻孔用カメラを用いた撮影では瞳孔用カメラの光源の光が用いられるので、鼻孔用カメラに光源を設ける必要がなく、その分だけ顔検出システムの全体のコストを抑えることができる。したがって、このような側面によれば、システムのコストを抑えつつ、対象者の視線および顔姿勢の双方を同時に正確に検出することができる。
【００９４】
また、鼻孔用カメラにより鼻孔画像を撮影する際に他のカメラ（瞳孔用カメラ）の光源を用いることで、鼻孔内が照らされにくくなるので鼻孔を検出し易くなる（仮に鼻孔用カメラの光源を用いると、鼻孔内が照らされてしまい、却って鼻孔の検出が困難になる）。また、鼻孔用カメラよりも上方に位置する瞳孔用カメラの光源を用いることで鼻の影が現れにくくなる。これらの結果、鼻孔を正確に検出して、さらには顔姿勢も正確に検出することができる。
【００９５】
他の側面に係る顔検出システムでは、画像取得部が、対象者の２枚の瞳孔画像を瞳孔画像ペアとして取得し、視線算出部が、瞳孔画像ペアから差分画像を生成して瞳孔座標を算出してもよい。
【００９６】
このように差分画像を生成することで瞳孔の像をより明確に取得することができるので、瞳孔座標をより正確に求めることが可能になる。
【００９７】
他の側面に係る顔検出システムでは、顔姿勢算出部が、顔姿勢ベクトルに基づいて次の瞳孔画像における瞳孔座標を予測し、画像取得部が更に次の瞳孔画像を取得し、視線算出部が、顔姿勢算出部により予測された瞳孔座標に基づいて、次の瞳孔画像を含む次の瞳孔画像ペアに対して位置補正を実行してから次の差分画像を生成し、該次の差分画像に基づいて次の瞳孔座標を算出し、該次の瞳孔座標に基づいて次の視線を算出してもよい。
【００９８】
このように次の瞳孔位置を予測し、その予測結果を用いて次の瞳孔画像ペアに対して位置補正をした上で次の差分画像を生成することで、対象者の頭部が速く動く場合でもその動きに対応して瞳孔位置を高精度に検出することができる。その結果、視線をより正確かつ確実に（ロバストに）算出することができる。
【００９９】
他の側面に係る顔検出システムでは、視線算出部が、位置補正された次の瞳孔画像ペアから仮の瞳孔位置を算出し、該仮の瞳孔位置に基づいて角膜反射点を検出し、該角膜反射点に基づいて該次の画像ペアに対して更なる位置補正を実行し、更なる位置補正が為された該次の瞳孔画像ペアから次の瞳孔座標を算出してもよい。
【０１００】
このように角膜反射点に基づいて更なる位置補正を行うことで、瞳孔位置を高精度に検出でき、その結果、視線をより正確かつ確実に（ロバストに）算出することができる。
【０１０１】
他の側面に係る顔検出システムでは、顔姿勢算出部が、顔姿勢ベクトルに基づいて次の瞳孔画像における瞳孔座標を予測し、画像取得部が更に次の瞳孔画像を取得し、視線算出部が、顔姿勢算出部により予測された瞳孔座標に基づいて、次の瞳孔画像から次の瞳孔座標を算出し、該次の瞳孔座標に基づいて次の視線を算出してもよい。
【０１０２】
このように次の瞳孔位置を予測し、その予測結果を用いて次の瞳孔画像から次の瞳孔座標を算出することで、対象者の頭部が速く動く場合でもその動きに対応して瞳孔位置を高精度に検出することができる。その結果、視線をより正確かつ確実に（ロバストに）算出することができる。
【０１０３】
他の側面に係る顔検出システムでは、鼻孔用カメラの分解能が瞳孔用カメラの分解能より低くてもよい。この場合には、鼻孔用カメラのコストを更に下げることができ、その結果、顔検出システムのコストも更に抑えることができる。
【０１０４】
以上、本発明をその実施形態に基づいて詳細に説明した。しかし、本発明は上記実施形態に限定されるものではない。本発明は、その要旨を逸脱しない範囲で様々な変形が可能である。
【０１０５】
視線算出部は、瞳孔位置を求める際に２段階の位置補正のどちらか一方を省略してもよいし、その双方を省略してもよい。
【０１０６】
顔検出システムは２台以上の鼻孔用カメラを備えてもよい。この場合には、鼻孔をより確実に撮影することができる。例えば、複数の鼻孔用カメラを瞳孔用カメラよりも低い位置に水平に並べてもよい。この場合、より広い範囲の頭部の水平角度を計測できる。
【０１０７】
上記実施形態では、視線算出部３２が明瞳孔画像および暗瞳孔画像から差分画像を生成し、その差分画像から瞳孔座標を求めたが、視線算出部３２は差分画像を生成することなく、画像取得部３１から入力された１枚の瞳孔座標（明瞳孔画像または暗瞳孔画像）から瞳孔座標を求めてもよい。具体的には、視線算出部３２は１枚の瞳孔画像に対して２値化およびラベリングを実行し、瞳孔らしい面積、サイズ、面積比、正方形度、および瞳孔特徴量等の形状パラメータに基づいて、ラベルづけされた画素の連結成分の中から瞳孔候補を選択する。そして、視線算出部３２は上記実施形態と同様の基準（二つの瞳孔候補の位置関係、あるいは予測瞳孔位置への近さ）に基づいて、一つの瞳孔候補を、求めるべき瞳孔として特定する。そして、視線算出部３２はその瞳孔の座標を計算する。
【符号の説明】
【０１０８】
１…顔検出システム、１０…瞳孔用カメラ、１３…光源、２０…鼻孔用カメラ、３０…画像処理装置、３１…画像取得部、３２…視線算出部、３３…顔姿勢算出部、Ｐ１…顔検出プログラム、Ｐ１０…メインモジュール、Ｐ１１…画像取得モジュール、Ｐ１２…視線算出モジュール、Ｐ１３…顔姿勢算出モジュール。
【図１】
2015232771.tif 000017
【図２】
2015232771.tif 000018
【図３】
2015232771.tif 000019
【図４】
2015232771.tif 000020
【図５】
2015232771.tif 000021
【図６】
2015232771.tif 000022
【図７】
2015232771.tif 000023
【図８】
2015232771.tif 000024
【図９】
2015232771.tif 000025
【図１０】
2015232771.tif 000026
【図１１】
2015232771.tif 000027
【図１２】
2015232771.tif 000028
【図１３】
2015232771.tif 000029
【図１４】
2015232771.tif 000030
【図１５】
2015232771.tif 000031
【図１６】
2015232771.tif 000032
【図１７】
2015232771.tif 000033
【図１８】
2015232771.tif 000034
【図１９】
2015232771.tif 000035
【図２０】
2015232771.tif 000036
【図２１】
2015232771.tif 000037
【図２２】
2015232771.tif 000038
【図２３】
2015232771.tif 000039
【図２４】
2015232771.tif 000040