【国等の委託研究の成果に係る記載事項】(出願人による申告)平成25年度、 独立行政法人科学技術振興機構、 知財活用促進ハイウェイ、産業技術力強化法第19条の適用を受ける特許出願
【解決手段】一実施形態に係る顔検出システムは、顔検出システムは、光源を備える瞳孔用カメラと、瞳孔用カメラの光源からの光を用いて撮影を実行する鼻孔用カメラと、瞳孔用カメラを制御することで対象者の瞳孔画像を取得すると共に、鼻孔用カメラを制御することで対象者の鼻孔画像を取得する画像取得部と、瞳孔画像から瞳孔座標を算出し、該瞳孔座標に基づいて視線を算出する視線算出部と、鼻孔画像から鼻孔中心座標を算出し、瞳孔座標および該鼻孔中心座標に基づいて対象者の顔姿勢ベクトルを算出する顔姿勢算出部とを備える。
前記視線算出部が、前記位置補正された次の瞳孔画像ペアから仮の瞳孔位置を算出し、該仮の瞳孔位置に基づいて角膜反射点を検出し、該角膜反射点に基づいて該次の画像ペアに対して更なる位置補正を実行し、更なる位置補正が為された該次の瞳孔画像ペアから前記次の瞳孔座標を算出する、
請求項3に記載の顔検出システム。
光源を備える瞳孔用カメラを制御することで対象者の瞳孔画像を取得すると共に、前記瞳孔用カメラの前記光源からの光を用いて撮影するように鼻孔用カメラを制御することで前記対象者の鼻孔画像を取得する画像取得部と、
前記瞳孔画像から瞳孔座標を算出し、該瞳孔座標に基づいて視線を算出する視線算出部と、
前記鼻孔画像から鼻孔中心座標を算出し、前記瞳孔座標および該鼻孔中心座標に基づいて前記対象者の顔姿勢ベクトルを算出する顔姿勢算出部と
してコンピュータを機能させるための顔検出プログラム。
【発明を実施するための形態】
【0013】
以下、添付図面を参照しながら本発明の実施形態を詳細に説明する。なお、図面の説明において同一又は同等の要素には同一の符号を付し、重複する説明を省略する。
【0014】
[顔検出システムの構成]
まず、
図1〜5を用いて、実施形態に係る顔検出システム1の構成を説明する。顔検出システム1は、対象者の視線および顔姿勢を検出するコンピュータシステムであり、このシステムにより、本実施形態に係る顔検出方法が実施される。対象者とは、視線および顔姿勢を検出する対象となる人であり、被験者ともいうことができる。視線とは、対象者の瞳孔中心と該対象者の注視点(対象者が見ている点)とを結ぶ線である。なお、「視線」という用語は、起点、終点、および方向の意味(概念)を含む。顔姿勢は、顔の方向および重心とで定まり、後述する顔姿勢ベクトルで表される。顔検出システム1および顔検出方法の利用目的は何ら限定されず、例えば、よそ見運転の検出、運転者の眠気の検出、商品の興味の度合いの調査、コンピュータへのデータ入力などに顔検出システム1を利用することができる。
【0015】
図1に模式的に示すように、顔検出システム1は、ステレオカメラとして機能する一対の瞳孔用カメラ10と、一つの鼻孔用カメラ20と、画像処理装置30とを備える。以下では、必要に応じて、一対の瞳孔用カメラ10を、対象者Aの左側にある左カメラ10
Lと、対象者Aの右側にある右カメラ10
Rとに区別する。本実施形態では、顔検出システム1は、対象者Aが見る対象であるディスプレイ装置40をさらに備えるが、顔検出システム1の利用目的は上記のように限定されないので、対象者Aの視線の先にある物はディスプレイ装置40に限定されず、例えば自動車のフロントガラスでもあり得る。したがって、ディスプレイ装置40は顔検出システム1における必須の要素ではない。3台のカメラ10,20はいずれも画像処理装置30と無線または有線により接続され、各カメラ10,20と画像処理装置30との間で各種のデータまたは命令が送受信される。各カメラ10,20に対しては予めカメラ較正が行われる。
【0016】
瞳孔用カメラ10および鼻孔用カメラ20はいずれも対象者Aの顔を撮像する装置であるが、瞳孔用カメラ10は特に対象者Aの瞳孔およびその周辺を撮影するために用いられ、鼻孔用カメラ20は特に対象者Aの瞳孔、鼻孔、およびこれらの周辺を撮影するために用いられる。瞳孔用カメラ10は瞳孔光学系であり鼻孔用カメラ20は鼻孔光学系である。本明細書では、瞳孔用カメラ10により得られる画像を瞳孔画像(明瞳孔画像または暗瞳孔画像)といい、鼻孔用カメラ20により得られる画像を鼻孔画像という。
【0017】
瞳孔用カメラ10および鼻孔用カメラ20は、対象者Aが眼鏡をかけているときの顔画像における反射光の写り込みを防止する目的で、対象者Aの顔より低い位置に設けられる。一対の瞳孔用カメラ10は水平方向に沿って所定の間隔をおいて配され、鼻孔用カメラ20は一対の瞳孔用カメラ10より低くかつ水平方向において一対の瞳孔用カメラ10の間の位置に配される。鼻孔用カメラ20を瞳孔用カメラ10より下に配置するのは、対象者が顔を下に向けた場合でも鼻孔を検出できるようにするためである。水平方向に対する瞳孔用カメラ10および鼻孔用カメラ20の仰角は、瞳孔の確実な検出と対象者Aの視野範囲の妨げの回避との双方を考慮して、例えば20〜35度の範囲に設定される。あるいは、瞳孔用カメラ10の仰角が20〜30度の範囲に設定され、鼻孔用カメラ20の仰角が25〜35度程度の範囲に設定されてもよい。
【0018】
本実施形態では、瞳孔用カメラ10および鼻孔用カメラ20は、インターレーススキャン方式の一つであるNTSC方式のカメラである。NTSC方式では、1秒間に30枚得られる1フレームの画像データは、奇数番目の水平画素ラインで構成される奇数フィールドと、偶数番目の水平画素ラインで構成される偶数フィールドから構成され、奇数フィールドの画像と偶数フィールドの画像とが1/60秒の間隔で交互に撮影されることで生成される。したがって、一つのフレームは、一対の奇数フィールドおよび偶数フィールドに相当する。瞳孔用カメラ10および鼻孔用カメラ20はそれぞれ、画像処理装置30からの命令に応じて対象者Aを撮像し、画像データを画像処理装置30に出力する。
【0019】
それぞれの瞳孔用カメラ10は光源を備えるのに対して、鼻孔用カメラ20は光源を備えない。瞳孔用カメラ10および鼻孔用カメラ20の違いを
図2に示す。
図2(a)は瞳孔用カメラ10のレンズ部分を模式的に示す平面図であり、
図2(b)は鼻孔用カメラ20のレンズ部分を模式的に示す平面図である。瞳孔用カメラ10では、対物レンズ11が円形状の開口部12に収容され、開口部12の外側に光源13が設けられる。光源13は、対象者Aの顔に向けて照明光を照射するための機器であり、複数の発光素子13aと複数の発光素子13bとから成る。発光素子13aは、出力光の中心波長が850nmの半導体発光素子(LED)であり、開口部12の縁に沿って等間隔でリング状に配される。発光素子13bは、出力光の中心波長が940nmの半導体発光素子であり、発光素子13aの外側に等間隔でリング状に配される。したがって、瞳孔用カメラ10の光軸から発光素子13bまでの距離は、該光軸から発光素子13aまでの距離よりも大きい。それぞれの発光素子13a,13bは、瞳孔用カメラ10の光軸に沿って照明光を出射するように設けられる。なお、光源13の配置は
図2(a)に示す構成に限定されず、カメラをピンホールモデルとみなすことができれば他の配置であってもよい。一方、対物レンズ21を有する鼻孔用カメラ20は光源を備えず、瞳孔用カメラ10の光源13により照らされた対象者Aの顔を撮影する。すなわち、鼻孔用カメラ20は光源13からの光を利用して撮影を行う。
【0020】
鼻孔は後述する角膜反射に比べて寸法が大きいので、瞳孔用カメラ10より分解能が低いカメラを鼻孔用カメラ20として用いても鼻孔を検出することができる。すなわち、鼻孔用カメラ20の分解能は瞳孔用カメラ10の分解用カメラより低くてもよい。例えば、瞳孔用カメラ10の分解能が640ピクセル×480ピクセルであるのに対して、鼻孔用カメラ20の分解能が320ピクセル×240ピクセルであってもよい。
【0021】
画像処理装置30は、瞳孔用カメラ10および鼻孔用カメラ20の制御と、対象者Aの視線および顔姿勢の算出(検出)とを実行するコンピュータである。画像処理装置30は、据置型または携帯型のパーソナルコンピュータ(PC)により構築されてもよいし、ワークステーションにより構築されてもよいし、他の種類のコンピュータにより構築されてもよい。あるいは、画像処理装置30は複数台の任意の種類のコンピュータを組み合わせて構築されてもよい。複数台のコンピュータを用いる場合には、これらのコンピュータはインターネットやイントラネットなどの通信ネットワークを介して接続される。
【0022】
画像処理装置30の一般的なハードウェア構成を
図3に示す。画像処理装置30は、オペレーティングシステムやアプリケーション・プログラムなどを実行するCPU(プロセッサ)101と、ROMおよびRAMで構成される主記憶部102と、ハードディスクやフラッシュメモリなどで構成される補助記憶部103と、ネットワークカードあるいは無線通信モジュールで構成される通信制御部104と、キーボードやマウスなどの入力装置105と、ディスプレイやプリンタなどの出力装置106とを備える。
【0023】
後述する画像処理装置30の各機能要素は、CPU101または主記憶部102の上に所定のソフトウェアを読み込ませ、CPU101の制御の下で通信制御部104や入力装置105、出力装置106などを動作させ、主記憶部102または補助記憶部103におけるデータの読み出しおよび書き込みを行うことで実現される。処理に必要なデータやデータベースは主記憶部102または補助記憶部103内に格納される。
【0024】
図4に示すように、画像処理装置30は機能的構成要素として画像取得部31、視線算出部32、および顔姿勢算出部33を備える。画像取得部31は、瞳孔用カメラ10および鼻孔用カメラ20の撮影タイミングと瞳孔用カメラ10の光源13の発光タイミングとを制御することで、瞳孔用カメラ10および鼻孔用カメラ20から画像データを取得する機能要素である。視線算出部32は、画像データに基づいて視線を算出する機能要素である。顔姿勢算出部33は、画像データに基づいて顔姿勢を算出する機能要素である。視線算出部32は瞳孔光学系の処理を実行し、顔姿勢算出部33は鼻孔光学系の処理を実行するともいうことができる。視線及び顔姿勢の算出結果の出力先は何ら限定されない。例えば、画像処理装置30は算出結果を画像、図形、またはテキストでモニタに表示してもよいし、メモリやデータベースなどの記憶装置に格納してもよいし、通信ネットワーク経由で他のコンピュータシステムに送信してもよい。
【0025】
視線算出部32および顔姿勢算出部33は互いに情報を提供し合うことで視線および顔姿勢を算出する。具体的には、
図5に示すように、顔姿勢算出部33(鼻孔光学系)は視線算出部32(瞳孔光学系)から提供される瞳孔位置を用いて顔姿勢を算出し、視線算出部32(瞳孔光学系)は顔姿勢算出部33(鼻孔光学系)から提供される予測瞳孔位置を用いて次の視線を算出する。この相互作用の詳細は後述する。
【0026】
[顔検出方法]
次に、
図6〜23を用いて、顔検出システム1の動作について説明するとともに、本実施形態に係る顔検出方法について説明する。
【0027】
(瞳孔画像および鼻孔画像の取得)
眼に入った光は網膜で乱反射し、反射光のうち瞳孔を通り抜けた光は強い指向性をもって光源へ戻る性質がある。カメラの開口部近くにある光源が発光した時にカメラを露光させると、網膜で反射した光の一部がその開口部に入るため、瞳孔が瞳孔周辺よりも明るく写った画像を取得することができる。この画像が明瞳孔画像である。これに対して、カメラの開口部から離れた位置にある光源が発光した時にカメラを露光させると、眼から戻ってきた光はカメラの開口部にほとんど戻らないため、瞳孔が暗く写った画像を取得することができる。この画像が暗瞳孔画像である。また、透過率が高い波長の光を眼に照射すると、網膜での光の反射が多くなるので瞳孔が明るく写り、透過率が低い波長の光を眼に照射すると、網膜での光の反射が少なくなるので瞳孔が暗く写る。
【0028】
本実施形態では、透過率が高い波長の光(中心波長が850nm)を発する発光素子13aが開口部12に隣接した位置に設けられ、眼の透過率が低い波長の光(中心波長が940nm)を発する発光素子13bを開口部12から離れた位置に設けられる。画像取得部31は、瞳孔用カメラ10の奇数フィールドに合わせて発光素子13aを点灯させて明瞳孔画像を撮影し、瞳孔用カメラ10の偶数フィールドに合わせて発光素子13aを点灯させて暗瞳孔画像を撮影する。画像取得部31は二つの瞳孔用カメラ10の間で作動タイミングをわずかにずらし、個々の瞳孔用カメラ10の露光時間はそのずらし時間以下に設定される。画像取得部31は、各瞳孔用カメラ10の露光時間中に、対応する発光素子13aおよび発光素子13bを交互に発光させることで、一方の瞳孔用カメラ10の光源13からの光が他方の瞳孔用カメラ10の画像に影響を与えないようにする(クロストークが起こらないようにする)。
【0029】
また、画像取得部31は瞳孔用カメラ10の光源13の発光に同期させて鼻孔用カメラ20を露光させることで、その光源13によって照らされた対象者Aの顔の鼻孔画像を撮影する。
【0030】
例えば、二つの瞳孔用カメラ10の間で駆動のタイミングを500μ秒ずらすのであれば、双方の瞳孔用カメラ10の露光時間は500μ秒に設定され、各瞳孔用カメラ10における発光素子13aおよび発光素子13bの発光時間は500μ秒以下に設定され、鼻孔用カメラ20の露光時間は1ミリ秒に設定される。
【0031】
画像取得部31は、これらの一連の制御により得られる明瞳孔画像、暗瞳孔画像、および鼻孔画像を取得する。得られる画像データは、奇数フィールド又は偶数フィールドのみに有効画素を有しているため、画像取得部31は、隣接する有効画素の画素ラインの輝度平均をそのライン間の画素値に埋め込むことによって、明瞳孔画像、暗瞳孔画像、または鼻孔画像を生成する。画像取得部31は明瞳孔画像および暗瞳孔画像を視線算出部32に出力し、鼻孔画像を顔姿勢算出部33に出力する。
図6では、瞳孔用カメラ10(光源13を含む)を制御して明瞳孔画像および暗瞳孔画像を取得する処理をステップS11で示し、光源13および鼻孔用カメラ20を制御して鼻孔画像を取得する処理をステップS12で示している。ステップS11は第1カメラ制御ステップおよび画像取得ステップに相当し、ステップS12は第2カメラ制御ステップおよび画像取得ステップに相当する。
【0032】
(瞳孔位置の検出)
視線算出部32は、連続する2フィールドの画像のうち、先に得られた画像の位置を後から得られた画像の位置に合わせ(この処理を位置補正という)、位置合わせされた2画像の差分を取ることで差分画像を生成する。そして、視線算出部32は差分画像から対象者Aの左右の瞳孔の位置を算出する。連続する2フィールドの一方は明瞳孔画像であり他方は暗瞳孔画像であり、本明細書ではこの2画像の組を「瞳孔画像ペア」ともいう。
図6ではこの一連の処理をステップS13(視線算出ステップ)で示している。
【0033】
i番目のフィールドの画像が撮影されてから(i+1)番目のフィールドの画像が撮影されるまでの間に対象者Aの頭部が動かなければ、
図7に示すように、単純に明瞳孔画像および暗瞳孔画像の差を取ることで、瞳孔部分(
図7における符号P)が浮かび上がった差分画像を生成することができる。しかし、i番目のフィールドの画像が撮影されてから(i+1)番目のフィールドの画像が撮影されるまでの間のわずかな時間に対象者Aの頭部が動くと、これら2画像の間で瞳孔の位置にずれが生じ、その結果、良好な差分画像を得ることができない。そこで、視線算出部32は、差分画像を得る前に明瞳孔画像および暗瞳孔画像に対して位置補正を実行する。
【0034】
本実施形態での位置補正には、顔姿勢の予測に基づく位置補正と、その後に行われる、角膜反射に基づく位置補正の2種類がある。顔姿勢の予測に基づく位置補正の概念を
図8に示し、角膜反射に基づく位置補正の概念を
図9に示す。
【0035】
顔姿勢の予測に基づく位置補正では、
図8に示すように、i番目のフィールド(画像)における瞳孔位置P
iおよび鼻孔中心N
iが算出され、続いて、(i+1)番目のフィールド(画像)における瞳孔位置P
i+1および鼻孔中心N
i+1を予測することで、次フィールドでの顔姿勢(顔の変位および回転角度)が推定される。そして、i番目のフィールド(画像)をその予測に従ってずらした上で、2画像との差分が取られる。顔姿勢の予測に基づく位置補正には、顔が回転した場合でも補正ができ、しかも、顔の速い動きに対応できるという有利な点がある。
【0036】
角膜反射に基づく位置補正では、i番目のフィールド(画像)と(i+1)番目のフィールド(画像)のそれぞれから検出した角膜反射点Rの位置が一致するようにi番目のフィールド(画像)をずらしてから(
図9の矢印を参照)、2画像の差分が取られる。この差分画像から瞳孔Pを検出することができる。
【0037】
2段階の位置補正を行って左右の瞳孔の位置を検出する処理の概要を
図10に示す。まず、視線算出部32は、顔姿勢算出部33から入力された予測瞳孔位置に基づいて、明瞳孔画像および暗瞳孔画像に対する位置補正を実行する(ステップS131)。続いて、視線算出部32は、位置補正された2画像から差分画像を生成し、その差分画像から仮の瞳孔位置を検出する(ステップS132)。続いて、視線算出部32は仮の瞳孔位置に基づいて明瞳孔画像および暗瞳孔画像に小ウィンドウを設定して角膜反射点を検出し(ステップS133)、その角膜反射点に基づいて2画像に対する位置補正を実行する(ステップS134)。そして、視線算出部32は明瞳孔画像および暗瞳孔画像から差分画像を生成し、その差分画像から瞳孔位置を算出する(ステップS135)。これら一連の処理により瞳孔位置が確定する。
【0038】
瞳孔検出の方法は前フィールド(i番目のフィールド)での瞳孔の検出結果(前回の瞳孔検出結果)によって下記の3種類に分かれる。
(1)前フィールド(前回の瞳孔検出)で両瞳孔を検出できた場合
(2)前フィールド(前回の瞳孔検出)で片方の瞳孔のみを検出できた場合
(3)前フィールド(前回の瞳孔検出)で両瞳孔を検出できなかった場合
【0039】
前フィールドで両瞳孔を検出できた場合には、視線算出部32は瞳孔追跡により両瞳孔を決定し、左右の瞳孔の中心座標を算出する。まず、視線算出部32は、顔姿勢算出部33から入力された予測瞳孔位置の3次元座標を、後述する式(6)を用いて撮像平面(瞳孔画像)上の2次元座標に変換する。また、視線算出部32は、次フィールド((i+1)番目のフィールド)の瞳孔画像を画像取得部31から取得する。続いて、視線算出部32は予測瞳孔位置の2次元座標を中心とする小ウィンドウ(例えば70ピクセル×70ピクセル)を次フィールドの瞳孔画像に設定する。一方、前フィールドの画像に対しては、視線算出部32は既に検出されている2次元座標を中心とする小ウィンドウを設定する。続いて、視線算出部32は前フィールドのウィンドウの位置を次フィールドのウィンドウの位置に合わせ、明瞳孔画像と暗瞳孔画像との差分を取る。続いて、視線算出部32は、その処理で得られた差分画像に対してPタイル法によって決定された閾値で2値化を行った後、孤立点除去およびラベリングを行う。続いて、視線算出部32は、瞳孔らしい面積、サイズ、面積比、正方形度、および瞳孔特徴量等の形状パラメータに基づいて、ラベルづけされた画素の連結成分の中から瞳孔候補を選択する。そして、視線算出部32は二つの瞳孔候補の関係が所定の関係にあるものを左右の瞳孔として決定し、画像データにおける左右の仮の瞳孔位置を求める。すなわち、視線算出部32は、顔姿勢から予測された瞳孔の3次元座標をピンホールモデルを用いて撮像平面に投影してから、位置補正を実行して差分画像を生成し、その差分画像に基づいて瞳孔を特定する。
【0040】
前フィールドで片方の瞳孔のみ検出された場合には、視線算出部32は、検出された方の瞳孔については、上記と同様の瞳孔追跡により瞳孔を決定し、仮の瞳孔位置を求める。一方、検出されなかった方の瞳孔については、視線算出部32は検出された方の瞳孔の位置から所定の距離(例えば30ピクセル)だけ離れた位置に中ウィンドウ(例えば150ピクセル×60ピクセル)を設定し、その中ウィンドウについて差分画像を生成する。そして、視線算出部32はその差分画像に対して、上記と同様の手順で瞳孔候補を選択する。そして、視線算出部32は瞳孔候補の中で面積が最も大きいものを他方の仮の瞳孔位置として決定する。
【0041】
前フィールドで両瞳孔を検出できなかった場合には、視線算出部32は画像全体から瞳孔を探索する。具体的には、視線算出部32は、前フィールドの画像と次フィールドの画像との差分を取ることで得た差分画像に対して、上記と同様の手順で瞳孔候補を選択する。そして、視線算出部32は二つの瞳孔候補の関係が所定の関係にあるものを左右の瞳孔として決定し、画像データにおける左右の仮の瞳孔位置を求める。
【0042】
続いて、視線算出部32は角膜反射の位置を考慮して最終的な瞳孔位置を確定する。具体的には、視線算出部32は、明瞳孔画像および暗瞳孔画像のそれぞれに対して、仮の瞳孔位置を中心とした小ウィンドウを設定し、その小ウィンドウの範囲のみを高分解像度化した画像データを作成し、その画像データから角膜反射を検出する。視線算出部32は、小ウィンドウ内において、Pタイル法による2値化とラベリングとを行い、形状や輝度平均などの情報から角膜反射候補を選択する。そして、視線算出部32は選択した部分の中心座標に対し分離度フィルタを与え、分離度と輝度を掛けて得られる特徴量を求める。その特徴量が一定値以上であれば、視線算出部32は小ウィンドウの中心座標を仮の角膜反射座標として検出し、二つの小ウィンドウの間での角膜反射の移動量を位置補正量として計算する。続いて、視線算出部32は明瞳孔画像および暗瞳孔画像の間で角膜反射点が一致するように、前フィールド(i番目のフィールド)の画像を、次フィールド((i+1)番目のフィールド)の画像に位置補正量だけずらした上で、これら2画像から差分画像を生成する。一方、角膜反射を検出できなかった場合には、視線算出部32は位置補正を行うことなく2画像の差分を取ることで差分画像を生成する。
【0043】
続いて、視線算出部32は差分画像から最終的な瞳孔位置を確定する。具体的には、視線算出部32は、前フレームと輝度が大きく変化しないことを利用して、前フレームで検出された瞳孔の輝度平均を利用して、その平均輝度の半分の値を閾値として差分画像を2値化し、ラベリングを行う。続いて、視線算出部32は、瞳孔らしい面積、サイズ、面積比、正方形度、および瞳孔特徴量等の形状パラメータに基づいて、ラベルづけされた画素の連結成分の中から瞳孔候補を選択する。そして、視線算出部32は、予測瞳孔位置の近くにある瞳孔候補が求めるべき瞳孔であると判定し、その瞳孔の中心座標を算出する。
【0044】
(瞳孔の中心座標から3次元座標への変換)
続いて、視線算出部32はステレオ法(ステレオマッチング)を用いて、算出した瞳孔中心座標から左右の瞳孔の3次元位置を計算する。ステレオ法とは、カメラのレンズの焦点距離、画像中心、画素サイズなどの内部パラメータと、カメラの位置や姿勢等の外部パラメータとを予め計測しておき、複数台のステレオカメラで対象物を撮影したときに、画像中の点の座標を基に、内部パラメータおよび外部パラメータを用いてその点の空間上の位置を決定する方法である。
【0045】
視線算出部32がステレオ法を用いて瞳孔の3次元座標を計算する際には、
図11に示すような座標系を用いる。同図に示す世界座標系(X
W,Y
W,Z
W)は、2台の瞳孔用カメラ10が共有する原点O
Wが例えばディスプレイ装置40の画面中央に位置する座標系である。カメラ座標系(X,Y,Z)は、その原点Cが瞳孔用カメラ10の光学中心とされ、Z軸が光学中心から画像面に垂直に引いた光軸と平行とされた座標系である。画像座標系(X
G,Y
G)は、撮像素子が置かれる画像面に沿ってXY平面と平行にされ、光軸と画像面の交点(画像中心)を原点C
iとする座標系である。点Pが目標点の座標とすると、瞳孔用カメラ10を用いた際の画像座標系への投影点(X
d,Y
d)は、画像のゆがみにより理想的な投影点(X
u,Y
u)からずれることになる。したがって、ステレオ法を用いた3次元位置計測を精度良く行うためには、目標点Pの世界座標とその画像座標との対応づけを記録したキャリブレーションデータを予め取得する必要がある。例えば、外部パラメータとしての世界座標に対するカメラ座標系の平行移動ベクトルおよび世界座標系に対するカメラ座標系の回転行列や、内部パラメータとしての焦点距離、画像中心座標、スケール係数、レンズひずみ係数、撮像素子間隔等がキャリブレーションデータとして予め取得され、視線算出部32に記憶される。
【0046】
視線算出部32は、2台の瞳孔用カメラ10からの出力データを基に検出した画像座標系における瞳孔中心座標と、世界座標系における瞳孔中心座標との関係式を、キャリブレーションデータを参照しながら取得する。次に、視線算出部32は、2つの関係式から世界座標系における対象者Aの瞳孔の3次元座標を求める。同様にして、視線算出部32は、対象者Aの左右の瞳孔の3次元座標を求めることができる。視線算出部32は左右の瞳孔の3次元座標を顔姿勢算出部33に出力する。
【0047】
(視線の検出)
続いて、視線算出部32は左右の瞳孔の3次元座標に基づいて視線を検出する。
図6ではこの一連の処理をステップS14(視線算出ステップ)で示している。
【0048】
図12に示すように、瞳孔の3次元位置Pに基づいて、瞳孔用カメラ10の開口部12の中心を原点Oとし、その原点Oと瞳孔中心Pを結ぶ基準線OPを法線とする仮想視点平面X’−Y’を考える。ここで、X’軸は、世界座標系のX
W−Z
w平面と仮想視点平面との交線に相当する。
【0049】
視線算出部32は、画像面S
Gにおける角膜反射点Gから瞳孔中心Pまでのベクトルr
Gを算出し、そのベクトルr
Gを、距離OPから求められたカメラの拡大率を用いて実寸に換算したベクトルrに変換する。このとき、各瞳孔用カメラ10をピンホールモデルと考え、角膜反射点Gと瞳孔中心Pとが、仮想視点平面X’−Y’と平行な平面上にあると仮定する。つまり、視線算出部32は、仮想視点平面と平行であって瞳孔Pの3次元座標を含む平面上において、瞳孔中心Pと角膜反射点Gの相対座標をベクトルrとして算出し、このベクトルrは角膜反射点Gから瞳孔中心Pまでの実距離を表す。
【0050】
続いて、視線算出部32は、対象者Aの仮想視点平面上の注視点Tに関して、直線OTの水平軸X’に対する傾きφが、ベクトルrの画像面上の水平軸X
Gに対する傾きφ’と等しいと仮定する。さらに、視線算出部32は、対象者Aの視線ベクトル、すなわち、瞳孔中心Pと注視点Tとを結ぶベクトルPTと、基準線OPとの成す角θを、ゲイン値kを含むパラメータを使った下記式(1)により計算する。
θ=f
1(r)=k×|r| …(1)
【0051】
このような角度φ,θの計算は、瞳孔中心Pの存在する平面上のベクトルrを仮想視点平面上で拡大したものがそのまま対象者Aの注視点に対応するとみなすことにより行われる。より詳しくは、対象者Aの視線PTの基準線OPに対する角度θは、瞳孔中心と角膜反射の距離|r|との間で線形関係を有すると仮定する。
【0052】
角度θと距離|r|とは線形近似できるという仮定、および二つの傾きφ,φ’が等しいという仮定を利用することで、(θ,φ)と(|r|,φ’)とを1対1に対応させることができる。このとき、視線算出部32は、瞳孔用カメラ10の開口部12の中心に設定された原点Oと、仮想視点平面上の注視点Tとを結ぶベクトルOTを次式(2)により得る。なお、ベクトルOPは瞳孔用カメラ10から得られる。
【数1】
【0053】
最後に、視線算出部32は視線ベクトルPTと視対象平面(ディスプレイ装置40)との交点である注視点Qを次式(3)で求める。
Q=nPT+P …(3)
【0054】
しかし、一般的にヒトの視軸(瞳孔中心および中心窩を通る軸)と光軸(角膜からレンズの中心へと延びる法線)との間にはずれがあり、対象者Aがカメラを注視した際にも角膜反射と瞳孔中心とは一致しない。そこで、これを補正する原点補正ベクトルr
0を定義し、カメラ画像から実測した角膜反射−瞳孔中心ベクトルをr’とすると、ベクトルrはr=r’−r
0で表されるので、式(1)は下記式(4)のように書き換えられる。
θ=k×|r’−r
0| …(4)
【0055】
計測されたr’に対して原点補正を行うことで、(θ,φ)と(|r|,φ’)とを1対1に対応させることができ、精度の高い注視点検出を行うことができる。このような補正は、当業者に周知である1点較正法を用いて実現可能である。
【0056】
(鼻孔の検出)
顔姿勢算出部33は、視線算出部32から入力された瞳孔の3次元位置に基づいて、鼻孔があると推定される鼻孔画像内の位置にウィンドウを設定し、そのウィンドウ内を処理することで鼻孔を検出する。顔姿勢算出部33は、明瞳孔画像または暗瞳孔画像から鼻孔を検出する。鼻孔検出の方法は前フィールドでの鼻孔の検出結果(前回の鼻孔検出の結果)によって下記の3種類に分かれる。
(1)前フィールド(前回の鼻孔検出)で左右の鼻孔の双方を検出できなかった場合
(2)前フィールド(前回の鼻孔検出)で左右の鼻孔の双方を検出できた場合
(3)前フィールド(前回の鼻孔検出)で片方の鼻孔のみを検出できた場合
【0057】
前フィールドで左右の鼻孔の双方を検出できなかった場合には、顔姿勢算出部33は瞳孔の位置に基づいて鼻孔画像内に所定の大きさの大ウィンドウを設定し、その大ウィンドウ内の輝度を反転させ、Pタイル法によって設定された閾値で2値化を行った後、孤立点除去、収縮処理、膨張処理、およびラベリングを行う。続いて、顔姿勢算出部33はラベルづけされた画素の連結成分から、鼻孔らしい面積および大ウィンドウ内での位置に基づいて鼻孔候補を選択する。続いて、顔姿勢算出部33は、大ウィンドウの中心に最も近い鼻孔候補を第1鼻孔とし、その第1鼻孔との距離が最も近い鼻孔候補を第2鼻孔と決定する。そして、顔姿勢算出部33はX座標に基づいて第1鼻孔および第2鼻孔のどちらか一方を左鼻孔と認定し他方を右鼻孔と認定し、各鼻孔の中心座標を算出する。
【0058】
前フィールドで左右の鼻孔の双方を検出できた場合には、顔姿勢算出部33は前フィールドの鼻孔位置からカルマンフィルタによって現在の処理対象フィールドにおける鼻孔位置を予測し、予測された鼻孔位置を中心とする小ウィンドウを設定する。小ウィンドウは大ウィンドウよりも小さい。そして、顔姿勢算出部33は大ウィンドウに対する処理と同様に、小ウィンドウ内の輝度反転、Pタイル法による2値化、孤立点除去、収縮処理、膨張処理、ラベリング、鼻孔候補の選択、および左右の鼻孔の認定を実行することで、各鼻孔の中心座標を算出する。
【0059】
前フィールドで片方の鼻孔のみ検出された場合には、顔姿勢算出部33は鼻孔推定を行う。顔姿勢算出部33は、対象者Aが鼻孔用カメラ20に真っ直ぐ向いているときの両瞳孔および両鼻孔の座標を事前に保持しており、これらの座標に基づいて瞳孔間の距離と鼻孔間の距離との比と求める。続いて、顔姿勢算出部33は、両瞳孔をつないだ直線と両鼻孔をつないだ直線が平行であるとの前提に立ち、二つの瞳孔座標と、検出できた一つの鼻孔座標と、求めた比とに基づいて、前フィールドで検出できなかった鼻孔座標を推定し、推定された鼻孔座標を中心に上記と同様の小ウィンドウを設定する。そして、顔姿勢算出部33は小ウィンドウ内の輝度反転、Pタイル法による2値化、孤立点除去、収縮処理、膨張処理、ラベリング、鼻孔候補の選択、および左右の鼻孔の認定を実行することで、各鼻孔の中心座標を算出する。
【0060】
(瞳孔および鼻孔の3次元座標の推定)
顔検出システム1における撮像光学系を、
図13に示すように焦点距離fのピンホールモデルと仮定することができる。ピンホールを原点Oとしたカメラ座標系(基準座標系)X−Y−Zにおける鼻孔画像(撮像平面PL)上の右瞳孔、左瞳孔、左鼻孔、および右鼻孔の中心点の2次元座標をそれぞれ、Q
1(x
1,y
1)、Q
2(x
2,y
2)、Q
3(x
3,y
3)、およびQ
4(x
4,y
4)とする。顔姿勢算出部33は、これら4点の2次元座標から、両鼻孔の中点の3次元座標(鼻孔中心座標)P
0、右瞳孔の3次元座標P
1、および左瞳孔の3次元座標P
2を求める。ここで、P
n=(X
n,Y
n,Z
n)(n=0,1,2)である。
【0061】
3個の特徴点(両鼻孔の中点、および左右の瞳孔)間を結んだ三角形の各辺の距離は、それらのうちの任意の一点をiとし、他の2点のうちの1点をjとすると、点i,jの間の距離L
ijで示される(下記式(5))。
【数2】
【0062】
ピンホールから各特徴点への位置ベクトルが求まれば、各特徴点に対応する撮像平面PL上の2次元位置は、カメラの焦点距離fを用いて下記式(6)で得られる。
Q
n=(X
n(f/Z
n),Y
n(f/Z
n)) …(6)
また、ピンホールOから各特徴点へ向かう位置ベクトルに対応した単位ベクトルは下記式(7)により得られる。
【数3】
各特徴点の位置ベクトルは定数a
n(n=0,1,2)を用いて下記式(8)で表される。
【数4】
すると、下記式(9)が成立する。
【数5】
これにより下記の連立方程式(10)が得られる。
【数6】
顔姿勢算出部33はこの連立方程式からa
0,a
1,a
2を求め、その解を式(8)に適用することで位置ベクトルP
0,P
1,P
2を求める。
【0063】
(顔姿勢の算出)
続いて、顔姿勢算出部33は特徴点P
0,P
1,P
2の3次元位置に基づいて顔座標系のカメラ座標系からの回転角および変位を算出することで顔姿勢を求める。
図6ではこの処理をステップS15(顔姿勢算出ステップ)で示している。
【0064】
図14に示すように、カメラ座標系XYZに対して特徴点P
0,P
1,P
2およびそれらの重心Gを基準にした顔座標系xyzを定義する。このx軸、y軸、z軸は、顔座標系の原点が重心Gと一致し、顔平面がxy平面と一致し、かつz軸が法線ベクトルと一致するように設定される。また、重心Gが顔座標系xyzの原点と位置し、かつ鼻孔中点がy軸上にあって負値をとるように設定された状態を顔座標系xyzでの基準姿勢と定義する。このとき、P
0,P
1,P
2のz座標はすべて0である。顔姿勢算出部33は、その基準姿勢の変化から顔平面の回転角α,β,γを求める。
【0065】
続いて、顔姿勢算出部33は各特徴点の3次元座標P
0,P
1,P
2の重心Gを通る平面Pの法線ベクトルV
F=(n
X,n
Y,n
Z)を求める。この法線ベクトルV
Fは、対象者Aの顔姿勢を示す顔姿勢ベクトルである。
【0066】
顔姿勢算出部33は、以下のようにして、ある撮像タイミングにおける特徴点P
0,P
1,P
2に対応した顔座標系を求める。まず、
図15に示すように、法線ベクトルV
FのY軸のまわりの回転角αは、Z軸からX軸へ向かう角度を正とすると、下記式(11)によって求まる。
【数7】
【0067】
次に、
図16に示すように、Y軸周りに回転角αだけ回転させたX軸およびZ軸をX’軸およびZ’軸とすると、法線ベクトルV
FのX’軸周りの回転角βは、Y軸からZ’軸へ向かう角度を正とすると、下記式(12)よって求まる。
【数8】
【0068】
さらに、
図17に示すように、X’軸周りに回転角βだけ回転させたY軸およびZ’軸をそれぞれY’軸およびZ’’軸とすると、Z’’軸と法線ベクトルV
Fとが一致する。このようにして得られたX’軸,Y’軸Z’’軸が、任意の時点での法線ベクトルV
Fに対応する顔座標系となる。顔姿勢算出部33は、このような一連の計算により、顔座標系のカメラ座標系からの回転角α,βおよび原点の変位を得る。
【0069】
顔姿勢算出部33は、カメラ座標系の特徴点の3次元座標P
n(n=0,1,2)を、下記式(13)を用いて顔座標系における座標P
n’に変換する。
P
n’=T
x(β)T
y(α)P
i …(13)
ここで、T
x(β)およびT
y(α)は下記式(14)によって定義される。
【数9】
【0070】
この顔座標系における対象者Aの基準姿勢の特徴点座標をP
00,P
10,P
20とすると、対象者Aの特徴点座標P
0’,P
1’,P
2’は顔座標系のxy平面上に位置するため、顔姿勢算出部33は、任意のタイミングでの対象者Aの姿勢に関する基準姿勢からのz軸周りの回転角γを算出することができる。顔座標系のz軸の正方向から見た基準姿勢の特徴点座標と、対象者Aの特徴点座標との関係を
図18に示す。なお、回転角γは、x軸からy軸へ向かう方向を正とする。例えば、顔姿勢算出部33は、基準姿勢の特徴点座標P
00と検出された対象者Aの特徴点座標P
0’とに基づいて、下記式(15)を用いて回転角γを算出する。
【数10】
【0071】
これにより、顔姿勢算出部33は、顔座標系における顔重心Gの周りの任意の点の位置ベクトルを、下記式(16),(17)を用いて、カメラ座標系における位置ベクトルに変換する。
【数11】
T(−α,−β,−γ)=T
y(−α)・T
x(−β)・T
z(−γ) …(17)
【0072】
また、顔姿勢算出部33は、カメラ座標系上の任意点の位置ベクトルを、下記式(18)により、顔座標系上の位置ベクトルに変換することもできる。
T
−1(−γ,−β,−α)=T(γ,β,α)=T
z(γ)・T
x(β)・T
y(α) …(18)
【0073】
(頭部姿勢予測)
顔姿勢は連続するフィールド間で連続的に変化する。顔姿勢算出部33は、次フィールドの顔姿勢を示す回転角および顔重心を予測し、予測された顔姿勢と顔座標系における基準姿勢座標とを用いることで、次フィールドの特徴点の3次元座標を予測する。
図6ではこの処理をステップS16で示している。
【0074】
具体的には、i番目のフィールドおよび(i−1)番目のフィールドにおける顔姿勢が検出された場合に、顔姿勢算出部33はカルマンフィルタを用いてこれら二つの顔姿勢から(i+1)番目のフィールド(次フィールド)における顔姿勢、および各特徴点の座標を予測する。予測される顔方向を(α^,β^,γ^)と表し、予測される顔重心をG^と表すとすると、各特徴点の基準位置座標P
00,P
10,P
20のそれぞれを式(13)により顔座標系に変換することで、顔座標系における特徴点の予測3次元座標P^
n(n=0,1,2)が得られる。すなわち、顔姿勢算出部33は下記式(19)により予測3次元座標を得る。
P^
n=T
y(−α^)・T
x(−β^)・T
z(−γ^)・P
n0+G^ …(19)
【0075】
顔姿勢算出部33は予測した3次元座標P^
1,P^
2を予測瞳孔位置として視線算出部32に出力する。視線算出部32はその予測瞳孔位置を用いて、上記ステップS13(ステップS131〜S135)およびステップS14の処理を実行する。
【0076】
(鼻孔検出用光学系における頭部姿勢推定アルゴリズム)
上述したように、顔姿勢算出部33は、瞳孔検出光学系で検出した瞳孔の座標を鼻孔しか検出できない鼻孔検出光学系へ補完することで、鼻孔検出光学系において1台のカメラによる頭部姿勢推定および瞳孔位置予測を行う。頭部姿勢を求めるには、上述したように、左右瞳孔および鼻孔中点の3次元位置を求めることが必要であり、それには各点へ向かう方向ベクトルを求める必要がある。顔姿勢算出部33は、少なくとも瞳孔が検出されている場合に鼻孔検出用光学系へ瞳孔情報の補完を行うことで、左右瞳孔および鼻孔中点の3次元位置を算出し、頭部姿勢推定を行う。
【0077】
両方の瞳孔を検出できた場合には、顔姿勢算出部33は以下の処理を実行する。
図19に示すように、2台の瞳孔用カメラ10
L,10
Rと1台の鼻孔用カメラ20とから二つの瞳孔と鼻孔中点とについての座標が得られたとする。この場合には、
図20に示すように、顔姿勢算出部33はステレオ法(ステレオマッチング)によって世界座標系における瞳孔3次元座標P
W1,P
W2を求めることができる。
【0078】
ある位置についての世界座標系およびカメラ座標系の3次元座標をそれぞれP
W,P
Cとすると、世界座標系とカメラ座標系の関係は次式(20)で表される。
P
C=R・P
W+T …(20)
ここで、Rは回転行列であり、Tは並進ベクトルである。
【0079】
式(20)を用いて世界座標系における左右の瞳孔の3次元座標P
W1,P
W2は、
図21に示すように、鼻孔用カメラ20の座標系における3次元座標P
B1,P
B2に変換される。この変換により得られた3次元座標P
Biの点へ向かう単位方向ベクトルU
BiはP
Bi=(x
Bi,y
Bi,z
Bi)とすると次式(21)で表せる。ここで、i=1,2である。
【数12】
単位方向ベクトルu
Biと定数a
iと用いてP
Biは次式(22)で表される。
P
Bi=a
iu
Bi …(22)
一方、鼻孔中点P
B0へ向かう単位方向ベクトルu
B0は下記式(23)で表される。
P
B0=a
0u
B0 …(23)
【0080】
ここで両瞳孔および鼻孔中点の3点のうちの任意の点をmとし、それ以外の2点のうちの1点をnとすると、2点m、nの間の距離L
mnを用いて次式(24)が成り立つ。
|P
Bm−P
Bn|=L
mn …(24)
この式の左辺を展開すると次式(25)が導かれる。
【数13】
これにより下記の連立方程式(26)が得られる。
【数14】
【0081】
顔姿勢算出部33はこの連立方程式(26)からa
0,a
1,a
2を求め、その解を式(22),(23)に適用することで3次元座標P
B0,P
B1,P
B2を求める。顔姿勢算出部33はこれらの3次元座標P
B0,P
B1,P
B2を用いて予測瞳孔位置を求め、その予測瞳孔位置を視線算出部32に出力する。視線算出部32はこの予測瞳孔位置を用いて、上記ステップS13(ステップS131〜S135)およびステップS14の処理を実行する。
【0082】
片方の瞳孔のみ検出できた場合には、顔姿勢算出部33は以下の処理を実行する。ここでは、
図22に示すように、右カメラ10
Rで左瞳孔が検出できなかった状況を考える。この状況では、ステレオ法により世界座標系における右瞳孔の3次元位置P
W1を求めることができるが、左瞳孔P
2の3次元位置をステレオ法で求めることができない。
【0083】
この場合、鼻孔用カメラ20の座標系における右瞳孔P
B1および鼻孔中点P
B0については次式(27),(28)を得ることができる。
P
B1=a
1u
B1 …(27)
P
B0=a
0u
B0 …(28)
また、左カメラ10
Lで検出できた左瞳孔の画像座標系の位置によって次の式(29)を得ることができる。
P
L2=a
2u
L2 …(29)
ここで、左カメラ10
Lの座標系で表すことができるP
L2を鼻孔用カメラ20の座標系での表現P
B2に変換すると次式(30),(31)が得られる(
図23参照)。
P
B2=a
2u
B2−T
LB …(30)
u
B2=R
B・R
L−1・u
L2 …(31)
ここで、R
L−1は世界座標系を左カメラ座標系に変換するための回転行列R
Lの逆行列であり、T
LBは左カメラ座標系から鼻孔用カメラ座標系へ変換するための並進ベクトルである。
【0084】
式(27),(28)、(30)を式(25)にそれぞれ代入すると次の連立方程式(32)が得られる。
a
12+a
22−2k
2a
1a
2+2k
3a
1−2k
0a
2+k
1−L
122=0
a
22+a
02−2k
4a
2a
0+2k
5a
2−2k
5a
0+k
1−L
202=0
a
02+a
12−2k
6a
0a
1−L
012=0
…(32)
ここで、k
0,k
1,k
2,k
3,k
4,k
5,k
6は以下のように定義される。
k
0=u
B2・T
LB …(33a)
k
1=|T
LB|
2 …(33b)
k
2=u
B1・u
B2 …(33c)
k
3=u
B1・T
LB …(33d)
k
4=u
B2・u
B0 …(33e)
k
5=u
B0・T
LB …(33f)
k
6=u
B0・u
B1 …(33g)
【0085】
L
01,L
12,L
20は定数なので、顔姿勢算出部33は、a
0,a
1,a
2を未知数として連立方程式(32)を解くことで、鼻孔用カメラ20の座標系での各特徴点の3次元座標P
B0,P
B1,P
B2を求める。顔姿勢算出部33はこれらの3次元座標P
B0,P
B1,P
B2を用いて予測瞳孔位置を求め、その予測瞳孔位置を視線算出部32に出力する。視線算出部32はこの予測瞳孔位置を用いて、上記ステップS13(ステップS131〜S135)およびステップS14の処理を実行する。
【0086】
[顔検出プログラム]
次に、
図24を用いて、画像処理装置30を実現するための顔検出プログラムP1を説明する。
【0087】
顔検出プログラムP1は、メインモジュールP10、画像取得モジュールP11、視線算出モジュールP12、および顔姿勢算出モジュールP13を備える。
【0088】
メインモジュールP10は、顔検出機能を統括的に制御する部分である。画像取得モジュールP11、視線算出モジュールP12、および顔姿勢算出モジュールP13を実行することにより実現される機能はそれぞれ、上記の画像取得部31、視線算出部32、および顔姿勢算出部33の機能と同様である。
【0089】
顔検出プログラムP1は、例えば、CD−ROMやDVD−ROM、半導体メモリなどの有形の記録媒体に固定的に記録された上で提供されてもよい。また、顔検出プログラムP1は、搬送波に重畳されたデータ信号として通信ネットワークを介して提供されてもよい。
【0090】
以上説明したように、本発明の一側面に係る顔検出システムは、光源を備える瞳孔用カメラと、瞳孔用カメラの光源からの光を用いて撮影を実行する鼻孔用カメラと、瞳孔用カメラを制御することで対象者の瞳孔画像を取得すると共に、鼻孔用カメラを制御することで対象者の鼻孔画像を取得する画像取得部と、瞳孔画像から瞳孔座標を算出し、該瞳孔座標に基づいて視線を算出する視線算出部と、鼻孔画像から鼻孔中心座標を算出し、瞳孔座標および該鼻孔中心座標に基づいて対象者の顔姿勢ベクトルを算出する顔姿勢算出部とを備える。
【0091】
本発明の一側面に係る顔検出方法は、プロセッサを備える顔検出システムにより実行される顔検出方法であって、光源を備える瞳孔用カメラを制御する第1カメラ制御ステップと、瞳孔用カメラの光源からの光を用いて、鼻孔用カメラによる撮影を実行する第2カメラ制御ステップと、瞳孔用カメラから対象者の瞳孔画像を取得すると共に、鼻孔用カメラから対象者の鼻孔画像を取得する画像取得ステップと、瞳孔画像から瞳孔座標を算出し、該瞳孔座標に基づいて視線を算出する視線算出ステップと、鼻孔画像から鼻孔中心座標を算出し、瞳孔座標および該鼻孔中心座標に基づいて対象者の顔姿勢ベクトルを算出する顔姿勢算出ステップとを含む。
【0092】
本発明の一側面に係る顔検出プログラムは、光源を備える瞳孔用カメラを制御することで対象者の瞳孔画像を取得すると共に、瞳孔用カメラの光源からの光を用いて撮影するように鼻孔用カメラを制御することで対象者の鼻孔画像を取得する画像取得部と、瞳孔画像から瞳孔座標を算出し、該瞳孔座標に基づいて視線を算出する視線算出部と、鼻孔画像から鼻孔中心座標を算出し、瞳孔座標および該鼻孔中心座標に基づいて対象者の顔姿勢ベクトルを算出する顔姿勢算出部としてコンピュータを機能させる。
【0093】
このような側面においては、複数の瞳孔用カメラ(瞳孔光学系)で撮影された瞳孔画像から瞳孔座標が算出され、その瞳孔座標から視線が算出される。また、その瞳孔座標と、鼻孔用カメラ(鼻孔光学系)で撮影された鼻孔画像から算出された鼻孔座標とに基づいて顔姿勢ベクトルが算出される。このように瞳孔光学系および鼻孔光学系を用いることで、対象者の視線および顔姿勢の双方を同時にかつ正確に検出することができる。また、鼻孔用カメラを用いた撮影では瞳孔用カメラの光源の光が用いられるので、鼻孔用カメラに光源を設ける必要がなく、その分だけ顔検出システムの全体のコストを抑えることができる。したがって、このような側面によれば、システムのコストを抑えつつ、対象者の視線および顔姿勢の双方を同時に正確に検出することができる。
【0094】
また、鼻孔用カメラにより鼻孔画像を撮影する際に他のカメラ(瞳孔用カメラ)の光源を用いることで、鼻孔内が照らされにくくなるので鼻孔を検出し易くなる(仮に鼻孔用カメラの光源を用いると、鼻孔内が照らされてしまい、却って鼻孔の検出が困難になる)。また、鼻孔用カメラよりも上方に位置する瞳孔用カメラの光源を用いることで鼻の影が現れにくくなる。これらの結果、鼻孔を正確に検出して、さらには顔姿勢も正確に検出することができる。
【0095】
他の側面に係る顔検出システムでは、画像取得部が、対象者の2枚の瞳孔画像を瞳孔画像ペアとして取得し、視線算出部が、瞳孔画像ペアから差分画像を生成して瞳孔座標を算出してもよい。
【0096】
このように差分画像を生成することで瞳孔の像をより明確に取得することができるので、瞳孔座標をより正確に求めることが可能になる。
【0097】
他の側面に係る顔検出システムでは、顔姿勢算出部が、顔姿勢ベクトルに基づいて次の瞳孔画像における瞳孔座標を予測し、画像取得部が更に次の瞳孔画像を取得し、視線算出部が、顔姿勢算出部により予測された瞳孔座標に基づいて、次の瞳孔画像を含む次の瞳孔画像ペアに対して位置補正を実行してから次の差分画像を生成し、該次の差分画像に基づいて次の瞳孔座標を算出し、該次の瞳孔座標に基づいて次の視線を算出してもよい。
【0098】
このように次の瞳孔位置を予測し、その予測結果を用いて次の瞳孔画像ペアに対して位置補正をした上で次の差分画像を生成することで、対象者の頭部が速く動く場合でもその動きに対応して瞳孔位置を高精度に検出することができる。その結果、視線をより正確かつ確実に(ロバストに)算出することができる。
【0099】
他の側面に係る顔検出システムでは、視線算出部が、位置補正された次の瞳孔画像ペアから仮の瞳孔位置を算出し、該仮の瞳孔位置に基づいて角膜反射点を検出し、該角膜反射点に基づいて該次の画像ペアに対して更なる位置補正を実行し、更なる位置補正が為された該次の瞳孔画像ペアから次の瞳孔座標を算出してもよい。
【0100】
このように角膜反射点に基づいて更なる位置補正を行うことで、瞳孔位置を高精度に検出でき、その結果、視線をより正確かつ確実に(ロバストに)算出することができる。
【0101】
他の側面に係る顔検出システムでは、顔姿勢算出部が、顔姿勢ベクトルに基づいて次の瞳孔画像における瞳孔座標を予測し、画像取得部が更に次の瞳孔画像を取得し、視線算出部が、顔姿勢算出部により予測された瞳孔座標に基づいて、次の瞳孔画像から次の瞳孔座標を算出し、該次の瞳孔座標に基づいて次の視線を算出してもよい。
【0102】
このように次の瞳孔位置を予測し、その予測結果を用いて次の瞳孔画像から次の瞳孔座標を算出することで、対象者の頭部が速く動く場合でもその動きに対応して瞳孔位置を高精度に検出することができる。その結果、視線をより正確かつ確実に(ロバストに)算出することができる。
【0103】
他の側面に係る顔検出システムでは、鼻孔用カメラの分解能が瞳孔用カメラの分解能より低くてもよい。この場合には、鼻孔用カメラのコストを更に下げることができ、その結果、顔検出システムのコストも更に抑えることができる。
【0104】
以上、本発明をその実施形態に基づいて詳細に説明した。しかし、本発明は上記実施形態に限定されるものではない。本発明は、その要旨を逸脱しない範囲で様々な変形が可能である。
【0105】
視線算出部は、瞳孔位置を求める際に2段階の位置補正のどちらか一方を省略してもよいし、その双方を省略してもよい。
【0106】
顔検出システムは2台以上の鼻孔用カメラを備えてもよい。この場合には、鼻孔をより確実に撮影することができる。例えば、複数の鼻孔用カメラを瞳孔用カメラよりも低い位置に水平に並べてもよい。この場合、より広い範囲の頭部の水平角度を計測できる。
【0107】
上記実施形態では、視線算出部32が明瞳孔画像および暗瞳孔画像から差分画像を生成し、その差分画像から瞳孔座標を求めたが、視線算出部32は差分画像を生成することなく、画像取得部31から入力された1枚の瞳孔座標(明瞳孔画像または暗瞳孔画像)から瞳孔座標を求めてもよい。具体的には、視線算出部32は1枚の瞳孔画像に対して2値化およびラベリングを実行し、瞳孔らしい面積、サイズ、面積比、正方形度、および瞳孔特徴量等の形状パラメータに基づいて、ラベルづけされた画素の連結成分の中から瞳孔候補を選択する。そして、視線算出部32は上記実施形態と同様の基準(二つの瞳孔候補の位置関係、あるいは予測瞳孔位置への近さ)に基づいて、一つの瞳孔候補を、求めるべき瞳孔として特定する。そして、視線算出部32はその瞳孔の座標を計算する。