(57)【特許請求の範囲】
【請求項１】
物体の向きを計算する物体の向き計算装置であって、
前記物体の特徴点の空間的位置を表す形状行列を予め作成し、この形状行列から一般逆行列を求める一般逆行列計算手段と、
前記物体が撮影された画像を入力する画像入力手段と、
前記画像中から前記物体の特徴点を検出すると共に、これら特徴点から計測行列を作成する特徴点検出手段と、
前記特徴点検出手段で作成された計測行列と、予め作成された前記物体に関する一般逆行列を用いて物体の向きの情報を表す運動行列を計算する物体向き計算手段と、
を有する
ことを特徴とする物体向き計算装置。
【請求項２】
前記一般逆行列計算手段は、
前記画像入力手段によって物体の様々な向きが撮影された複数の画像を入力し、
前記特徴点検出手段によって、前記各画像から前記物体の特徴点をそれぞれ検出すると共に、これら特徴点からその物体固有の計測行列を１個作成し、
この計測行列から因子分解法を用いて前記物体固有の形状行列を求め、
この形状行列から一般逆行列を求める
ことを特徴とする請求項１記載の物体向き計算装置。
【請求項３】
前記物体向き計算手段によって計算した人間の顔向き情報を表す運動行列から、その人間の顔が向いているディスプレイ上の点を計算し、その点上にポインターを表示するポインター表示手段を有する
ことを特徴とする請求項１記載の物体向き計算装置。
【請求項４】
前記ポインター表示手段は、
前記物体向き計算手段で計算した運動行列から顔の向きを示す顔の法線ベクトルを求め、
この法線ベクトルの係数を調整して、ポインターの動く範囲を調節する
ことを特徴とする請求項３記載の物体向き計算装置。
【請求項５】
物体の向きを計算する物体の向き計算方法であって、
前記物体の特徴点の空間的位置を表す形状行列を予め作成し、この形状行列から一般逆行列を求める一般逆行列計算ステップと、
前記物体が撮影された画像を入力する画像入力ステップと、
前記画像中から前記物体の特徴点を検出すると共に、これら特徴点から計測行列を作成する特徴点検出ステップと、
前記特徴点検出ステップで作成された計測行列と、予め作成された前記物体に関する一般逆行列を用いて物体の向きの情報を表す運動行列を計算する物体向き計算ステップと、
を有する
ことを特徴とする物体向き計算方法。
【請求項６】
物体の向きを計算する物体の向き計算方法をコンピュータによって実現するプログラムであって、
前記物体の特徴点の空間的位置を表す形状行列を予め作成し、この形状行列から一般逆行列を求める一般逆行列計算機能と、
前記物体が撮影された画像を入力する画像入力機能と、
前記画像中から前記物体の特徴点を検出すると共に、これら特徴点から計測行列を作成する特徴点検出機能と、
前記特徴点検出機能で作成された計測行列と、予め作成された前記物体に関する一般逆行列を用いて物体の向きの情報を表す運動行列を計算する物体向き計算機能と、
を実現する
ことを特徴とする物体向き計算方法のプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＣＣＤカメラ等で撮影された動画像を入力し、その画像から、顔の三次元向きを実時間で計算し、ディスプレイ上に顔が向いている位置を表示する技術分野に関する。
【０００２】
【従来の技術】
パソコン等を操作する場合、ディスプレイ上のカーソルを動かすためにマウスが広く利用されている。操作者にとって、カーソルを動かすためにキーボードに置いた手をマウスに移動することは、スムーズな仕事の流れを阻害する動作である。ノートＰＣでは、アキュポイント、トラックパッド等を用いてキーボードから手を大きく移動させることなくカーソルを動かすことができるが、使い慣れるまでに時間がかかったり、広い範囲を動かす場合には不便であること等から、結局マウスを取り付けるということも少なくない。
【０００３】
そのために、もし顔を動かすことによってカーソルを移動させることができれば、キーボードに置いた手を動かすことなく、仕事を効率的に進めることができるだけでなく、広い範囲に渡って動かすことも無理無くできる。また、顔の向きは人間の注意の方向をあらわすため、顔の向きでカーソルを動かすことは、人間の直感に合った動作であると考えられる。
【０００４】
しかしながら、まだそのような顔向きを利用したポインター表示技術は確立されていない。これを実現するためには、顔向きを実時間で精密に求めることが必要になる。
【０００５】
従来の顔向き計算方法には、大きく分けて２通りの方法がある。
【０００６】
第１の従来方法は、向き毎の顔画像パターンをそのまま或いは次元圧縮してテンプレートとし、顔全体のパターンマッチングにより最もマッチしたテンプレートに対応する向きを顔の向きと判定する方法である。
【０００７】
第２の従来方法は、目鼻口などの顔の特徴点を検出してそれらの画像座標を用いて幾何学的に向きを計算する方法である。
【０００８】
以降、第１の従来方法をパターンベースの方法、第２の従来方法を特徴点ベースの方法とよぶことにする。
【０００９】
パターンスペースの方法は、顔向き計算をパターン分類問題として扱っているため、顔向きの結果が離散値で出力され、そのままでは精度が低い。連続値として求めるためには、補間等の処理が別途必要になる。このような方法は、顔向きを精密かつ高速に求める必要のあるポインター等への応用には不向きである。
【００１０】
それに対して、特徴点ベースの方法は、特徴点の座標が正確に求まりさえすれば顔向きも正確に連続値で計算できる精密な方法である。
【００１１】
その中でも代表的な優れた手法がＴｏｍａｓｉと金出によって１９９１年に提案された因子分解法である（Ｔｏｍａｓｉ．Ｃ．ａｎｄ  Ｔ．Ｋａｎａｄｅ：Ｔｅｃｈｎｉｃａｌ  Ｒｅｐｏｒｔ  ＣＭＵ−ＣＳ−９１−１７２，ＣＭＵ（１９９１）；ＩｎｔｅｒｎａｔｉｏｎａｌＪｏｕｒｎａｌ  ｏｆ  ＣｏｍｐｕｔｅｒＶｉｓｉｏｎ，９：２，１３７−１５４（１９９２））。
【００１２】
この手法では、カメラパラメータを求める必要がなく、複数フレームの２次元画像から３次元形状と各フレームの向きを求めることができる。しかし、複数フレームをまとめて計算するため、バッチ処理には有用だが、処理したい画像が次々に入力されるようなオンライン処理には向かない。
【００１３】
これを実時間処理に対応させるため、藤木と蔵田によって逐次型因子分解法が提案された（藤木、蔵田：電子情報通信学会論文誌、Ｊ８４−Ｄ−II：８，１６６３−１６７３（２００１））。
【００１４】
この手法では、バッチ処理の因子分解法に比べ処理時間を１０分の１に減らすことができるが、特徴点検出等の処理時間も合わせると更なる高速化が必要である。また、新しいフレーム毎に得られる向きと３次元形状を次フレームの向き計算に利用するため、誤差が蓄積される可能性もある。
【００１５】
特徴点ベースの顔向き計算を行う場合、顔の特徴点を安定して検出する必要がある。
【００１６】
特徴点検出の従来手法も大きく分けて２通りの方法がある。
【００１７】
第１の従来方法は、コーナー検出を行った後、各フレームで検出されたコーナー同士の対応をフレーム間で取るという方法である。
【００１８】
この場合、どの特徴点が得られるかは照明条件等の環境の変化や個人によって異なる。また、得られた特徴点は必ずしも目・鼻・口等とは一致しない。
【００１９】
第２の従来方法は、検出したい特徴点を予め決めておき、その性質を利用して検出する方法である。例えば、顔の特徴点としては、目・鼻・口等がよく用いられる。
【００２０】
福井と山口は、瞳や鼻孔が円形をしていることから、円形の分離度フィルターを利用して瞳や鼻孔を安定して検出できることを示している（福井、山口：電子情報通信学会論文誌、Ｊ８０−Ｄ−II：８，２１７０−２１７７（１９７７））。
【００２１】
口の端、即ち、上唇と下唇の接合部を口端とよぶが、口端にも分離度フィルターを利用することができる。しかし、口端の形状自体が個人差があるなど不安定なため、形状を利用して検出を行う分離度フィルターはあまり向いていない。
【００２２】
顔向きが求まった後、得られた顔向き結果からポインターを表示する位置を計算しなければならないが、大きな顔の動きでポインターを動かしたい場合や逆に小さな動きでもポインターが動くようにしたい場合等、ユーザーやポインターの表示領域によって、使い易さの基準も異なる。ユーザーにとって使い易いポインター装置を実現するためには、顔を動かす範囲とポインター表示領域とを一致させればよいと考えられる。しかし、そのような技術はまだ存在しない。
【００２３】
【発明が解決しようとする課題】
そこで、本発明の課題は、顔向きを利用したポインター表示装置の実現、及び、そのために必要な要素技術の確立である。
【００２４】
その要素技術の中でも最も核となる課題は、入力される動画像から実時間で顔の向きを精密に計算することである。
【００２５】
顔の向きをポインター等の動きに連動させるような場合、顔の向きを連続値として求める必要がある。
【００２６】
本発明では、従来技術で述べたように顔向きが離散値で求まるパターンマッチングの方式ではなく、連続値で求まる特徴点ベースの方式を採用する。
【００２７】
この場合、顔の特徴点を安定して検出することも重要な課題である。さらに、顔向きの計算結果からポインターの表示位置を計算する場合、ユーザーの顔向きの範囲とポインターの動く範囲を一致させる等して、ユーザーの直感に合わせて使い易くすることも本発明の課題の一つである。
【００２８】
【課題を解決するための手段】
請求項１の発明は、物体の向きを計算する物体の向き計算装置であって、前記物体の特徴点の空間的位置を表す形状行列を予め作成し、この形状行列から一般逆行列を求める一般逆行列計算手段と、前記物体が撮影された画像を入力する画像入力手段と、前記画像中から前記物体の特徴点を検出すると共に、これら特徴点から計測行列を作成する特徴点検出手段と、前記特徴点検出手段で作成された計測行列と、予め作成された前記物体に関する一般逆行列を用いて物体の向きの情報を表す運動行列を計算する物体向き計算手段と、を有することを特徴とする物体向き計算装置である。
【００３５】
【発明の実施の形態】
以下、本発明の顔向き計算結果を利用したポインター装置の実施形態について、図面に基づいて説明する。
【００３６】
１．ポインター装置２０の構成
図１は、顔向き計算結果を利用したポインター装置２０の構成を示すブロック図である。
【００３７】
ポインター装置２０は、ＣＣＤカメラ等から動画像や静止画像を入力する画像入力部１と、入力画像中から特徴点を検出する特徴点検出部２と、形状行列登録部３と、一般逆行列格納部４と、特徴点検出部２で検出された特徴点と一般逆行列格納部４で格納されている形状行列の一般逆行列を用いて顔の向きを計算する顔向き計算部５と、顔向き計算部５の顔向き計算結果から顔が向いているディスプレイ上の点を計算し、その点上にポインターを表示するポインター表示部６とから成る。
【００３８】
これら各構成の機能は、コンピュータに記憶されたプログラムによって実行されるものである。
【００３９】
画像入力部１と特徴点検出部２と形状行列登録部３によって、形状行列登録方法が実行される。
【００４０】
また、一般逆行列格納部４と画像入力部１と特徴点検出部２と顔向き計算部５によって、顔向き計算方法が実行される。
【００４１】
特徴点検出部２によって、口端検出の方法や目・鼻・ほくろ等他の特徴点検出方法が実行される。
【００４２】
ポインター表示部６によって、ポインター表示の自動調整法や、ポインター表示のユーザー調整法が実行される。
【００４３】
このようなシステムによって、各要素技術を実施し、それらの結果を統合することにより、顔向きを利用したポインター表示装置２０が実現される。
【００４４】
簡単に、ポインター装置２０によって顔向き計算結果を求めるまでを説明する。
【００４５】
まず、準備としてユーザの形状行列を予め登録しておく。これは、各ユーザ毎に様々な顔の向きを撮影した画像を画像入力部１で入力する。
【００４６】
次に、特徴点検出部２によって、その画像の特徴点をＰ個検出して、それから計測行列Ｗを求める。
【００４７】
次に、形状行列登録部３によって、この計測行列Ｗからユーザ固有の形状行列Ｓを求めて登録しておく。
【００４８】
パソコンにおいて特定のユーザがポインターを使用する場合に、そのユーザの顔向きを検出する必要がある。その時は、画像入力部１によって使用中のユーザの顔を撮影して画像を入力する。この画像から特徴点をＰ個検出して、それから計測行列Ｗｎｅｗを求める。そして、上記で予め登録してある形状行列Ｓから一般逆行列を求めて、この一般逆行列と前記計測行列Ｗｎｅｗから顔向きを表す運動行列Ｍｎｅｗを求める。
【００４９】
２．因子分解法の説明
まず、計測行列から形状行列を求める因子分解法を説明する。
【００５０】
ここでは、説明を簡便にするため正射影モデルを仮定するが、弱中心射影モデルや疑似中心射影モデル等にも拡張できる。
【００５１】
フレーム数をＦ、特徴点数をＰとする。ｆフレーム目の画像における特徴点の座標を｛（ｕｆｐ，ｖｆｐ）｜ｐ＝１，…，Ｐ｝、重心座標を（ｕＣｆ  ，ｖＣｆ  ）で表す。特徴点の座標から重心座標を引いたものを
【数１】
0003822483.tif 000002
【数２】
0003822483.tif 000003
とし、２Ｆ×Ｐ行列をＷ＝〔ｗｉｊ〕で定義する。これは計測行列とよばれる。この計測行列と、カメラの運動を表す運動行列Ｍと特徴点の空間的位置を表す形状行列Ｓとは
【数３】
0003822483.tif 000004
の関係が成り立つ。
【００５２】
Ｍはｆフレーム目のカメラの座標軸の基底ベクトルｉｆ  ，ｊｆ  の転置を上から順に並べた２Ｆ×３行列、Ｓはｐ個の特徴点の重心を原点とした三次元座標を左から順に並べた３×Ｐ行列であり、共にランクは３以下である。このことと特異値分解を利用して、Ｗが与えられた場合、Ｗを式（３）のように分解し、Ｍ，Ｓを求める方法が前述のＴｏｍａｓｉと金出の因子分解法である。
【００５３】
この因子分解法では、処理したい画像をまとめて扱うため、次々と新しい画像が入力されるような場面には適さない。しかしながらバッチ処理に対しては、カメラパラメータを求めることなく注目物体の向きと特徴点の三次元形状を復元することができる、大変優れた手法である。
【００５４】
３．形状行列の登録方法
次に、この因子分解法をバッチ処理で用いて特徴点の形状行列を求め登録しておく方法を図３に基づいて説明する。この形状行列は、ユーザ毎に１個を形状行列登録部３に登録するものである。
【００５５】
図３に形状登録処理の流れの一例を示す。
【００５６】
最初に、登録フレーム数を初期化する。すなわち、ｆ＝０とする（ｓｔｅｐ７）。
【００５７】
次に、登録したいユーザの様々な顔向きの画像を撮影するために、ユーザーが顔を向けてほしいディスプレイ上の位置にポインターをポインター表示部６によって表示し、そのユーザーの注意を喚起する（ｓｔｅｐ８）。
【００５８】
ユーザーがポインター方向に顔を向けたら画像入力部１のＣＣＤカメラで撮影する（ｓｔｅｐ９）。
【００５９】
特徴点検出部２が、その入力画像からＰ個の特徴点を検出する（ｓｔｅｐ１０）。
【００６０】
これを繰り返し、形状を求めるために必要なフレーム数ｆの画像を撮影する（ｓｔｅｐ１３）。
【００６１】
特徴点検出部２が、フレーム数ｆの画像に対応するＰ個（Ｐ＞＝４）の特徴点から計測行列Ｗを求める。そして、形状行列登録部３が、その計測行列Ｗに因子分解法を適用して運動行列Ｍと形状行列Ｓを求めて、Ｓを登録する（ｓｔｅｐ１４）。
【００６２】
この形状行列Ｓは、登録したいユーザ固有のものである。したがって、ユーザが複数人の場合には、それぞれのユーザ毎に形状行列を登録する。
【００６３】
また、形状行列Ｓの作成は、上記したように、複数のフレーム数ｆ（ｆ＞＝３）に基づいて作成する必要がある。これは式（３）を計算するために必要なためである。
【００６４】
なお、ｓｔｅｐ８のポインターには、キャラクターを表示しても良いし、音声で方向を知らせることもできる。
【００６５】
また、ｓｔｅｐ１０で特徴点検出の結果を表示し、検出結果が正しくない場合はそのフレームを使わない等、検出結果を確認すれば、確実に精度の高い形状行列を求めることができる。
【００６６】
また、ポインターを動かしユーザーがそれを追う間に必要なフレーム数の撮影を行い、撮影後にまとめて特徴点検出と形状復元を行うこともできる。
【００６７】
４．顔向き計算方法
次に、登録した形状行列を使って、処理したい画像が入力される場合に向きを実時間で求める計算方法について説明する。
【００６８】
まず、画像入力部１で、顔の向きを求めたい画像を入力する。
【００６９】
次に、上記と同様に特徴点検出部２で、Ｐ個の特徴点を求め、その特徴点から計測行列Ｗｎｅｗ  を求める。
【００７０】
式（３）は画像上の特徴点座標とその空間的位置とカメラ軸の関係をＦフレームまとめて表現したものである。これは１フレームのみに対しても成り立つ。
【００７１】
そして、顔向きを求めたい新しい１枚の画像の計測行列と運動行列をＷｎｅｗ  ，Ｍｎｅｗ  で表し、ユーザーの顔の特徴点の３次元形状は不変なので既に登録してある形状行列Ｓを用いる。
【００７２】
そして、形状行列登録部３に登録されている形状行列の中から、そのユーザに対応する形状行列Ｓを呼び出してくる。
【００７３】
また、この顔向き計算方法における入力画像、すなわち、フレーム数は１でよく、この１個のフレーム数の特徴点から求めた計測行列Ｗｎｅｗ  を用いる。これは、上記の形状行列の登録方法では、３個以上のフレーム数ｆを必要としたが、顔向き計算方法では、式（３）を計算する必要がなく、式（８）を計算すればよいだけだからである。
【００７４】
但し、新しい１枚の画像から求められる特徴点の数は、予め登録してある形状行列を作成する際に、用いた特徴点の数Ｐと同じ数でなければならない。数が異なる場合は、後述する。
【００７５】
さて、計測行列Ｗｎｅｗ  と運動行列をＭｎｅｗ  と、予め登録してあるユーザ固有の形状行列Ｓとの間には、
【数４】
0003822483.tif 000005
の関係が成り立つ。
【００７６】
文献「Ｒｅｇｒｅｓｓｉｏｎ  ａｎｄ  ｔｈｅ  Ｍｏｏｒｅ−Ｐｅｎｒｏｓｅｐｓｅｕｄｏｉｎｖｅｒｓｅ（Ａｌｂｅｒｔ，Ａ．著  Ａｃａｄｅｍｉｃ  Ｐｒｅｓｓ．１９７２）」によれば、行列方程式
【数５】
0003822483.tif 000006
の一般解Ｘは
【数６】
0003822483.tif 000007
で与えられる。ここで、Ａ＋  は行列Ａの一般逆行列、Ｙは任意の行列を表す。これを式（４）に運用すると、新しいフレームの運動行列は
【数７】
0003822483.tif 000008
で与えられる。ここで、ＳＳ＋  はＳの値域Ｒ（Ｓ）への射影行列である。Ｒ（Ｓ）はＳの縦ベクトル、すなわち、各特徴点の三次元座標を表すベクトルで張られる空間である。
【００７７】
Ｐ個の特徴点のうち、少なくとも４個の特徴点が同一平面上になく立体状になるようにすれば、Ｒ（Ｓ）の次元は３次元となり全空間と一致する。このとき、ＳＳ＋  ＝Ｉとなり、式（７）は
【数８】
0003822483.tif 000009
となる。
【００７８】
すなわち、予め登録しておいた形状行列Ｓの一般逆行列を使って、新しいフレームの運動行列を求めることができる。
【００７９】
一般逆行列はＳ＋  ＝ＳＴ  （ＳＳＴ  ）＋  で与えられるが、Ｒ（ＳＳＴ  ）は先程の議論と同様に全空間と一致するので逆行列が存在し、この場合一般逆行列はＳ＋  ＝ＳＴ  （ＳＳＴ  ）−１で計算することができる。ここで、ＳＴ  はＳの転置行列を表す。
【００８０】
形状行列の一般逆行列を一度計算しておけば、順次入力される画像から得られる計測行列と一般逆行列との掛け算という非常に軽い処理のみで、運動行列が計算できる。
【００８１】
運動行列Ｍｎｅｗ  は、対象物体を固定しカメラ向きが変化したとみなした場合のカメラの座標軸運動を表す。すなわち運動行列Ｍｎｅｗ  の行ベクトルの転置がカメラ座標の３つの基底ベクトルのうち２つの基底ベクトルｉｎｅｗ  ，ｊｎｅｗ  になっており、ｉｎｅｗ  ，ｊｎｅｗ  の外積から残りの基底ベクトルｋｎｅｗ  が求まる。対象物体の正面にカメラを置いた場合のカメラ向きを基準とすれば、カメラを固定した場合の対象物体の回転行列Ｒｎｅｗ  は、ｉｎｅｗ  ，ｊｎｅｗ  ，ｋｎｅｗ  を並べた行列として求まり、この回転行列から対象物体の回転角を計算することができる。
【００８２】
また、対象物体の向きを表す単位ベクトル（対象物体として顔を考えた場合は、顔を平面と見倣し顔平面から外に向かった法線ベクトル）ベクトルｄは、Ｒｎｅｗ  の第３行目の行ベクトルの転置を−１倍して求まる。
【００８３】
まとめると、法線ベクトルｄのｘ成分は、運動行列Ｍｎｅｗ  の１行３列目の成分であり、法線ベクトルｄのｙ成分は、運動行列Ｍｎｅｗ  の２行３列目の成分の−１倍である。
【００８４】
図４に、対象物体として顔を考え、運動行列Ｍｎｅｗ  を計算する様子を示す。
【００８５】
図４では、カメラを固定して顔を動かす様子を相対的に、顔を固定してカメラ向きが変化するとみなしている。
【００８６】
図２に顔向き計算処理の流れの一例を示す。
【００８７】
まず、登録してある形状行列からその一般逆行列Ｓ＋を求め、一般逆行列格納部４に保存しておく（ｓｔｅｐ１）。
【００８８】
画像入力部１によってユーザーの顔画像を１フレーム入力する（ｓｔｅｐ２）。
【００８９】
特徴点検出部２によって特徴点検出を行い、計測行列Ｗｎｅｗ  を計算する（ｓｔｅｐ３）。
【００９０】
顔向き推定部５によって、式（８）のように計測行列Ｗｎｅｗ  と、保存してあるＳ＋の積を計算すれば、そのフレームにおける向きＭｎｅｗ  が求まる（ｓｔｅｐ４）。
【００９１】
ｓｔｅｐ２からｓｔｅｐ４を繰り返し行えばユーザーの顔向き計算をオンライン処理で実行できる。
【００９２】
登録処理では形状行列を登録しておき、顔向き計算処理で一般逆行列を求めたが、登録処理で一般逆行列の計算まで行っておけば、顔向き計算処理での一般逆行列の計算は必要なくなる。
【００９３】
（顔向き計算方法の変更例）
ところで、新しい１枚の画像から求められる特徴点の数は、予め登録してある形状行列を作成する際に用いた特徴点の数Ｐと同じ数でなければならない。しかし、常に同じ特徴点が映っているとは限らず、向きによっては登録してあった特徴点が隠れてしまったり、逆に登録してない新たな特徴点が見つかる場合がある。
【００９４】
本実施形態における顔向き計算方法では、このような特徴点の増減にも簡単に対応できる。
【００９５】
特徴点が隠れてしまった場合は、形状行列からその点を取り除けば、通常と同じように式（８）で向きが計算できる。
【００９６】
新たな特徴点が見つかった場合は、登録済みの特徴点から運動行列を計算し、求まった運動行列の一般逆行列と、新たな特徴点の計測行列の積からその特徴点の形状行列が求まる。これを登録済みの形状行列に並べたものを新たな形状行列とすれば、次のフレームからその特徴点も利用することができる。
【００９７】
但し、このように特徴点が増減する場合は、計測行列を登録済みの特徴点の重心を用いて求める必要があるため、特徴点の重心も併せて登録しておく必要がある。
【００９８】
なお、本実施形態における形状行列登録方法と顔向き計算法では、顔を対象として説明しているが、対象物体は顔に限らず、任意の物体に対して向きを求めることができる。
【００９９】
（口端検出方法）
３次元形状の登録で因子分解法を利用する場合や、登録した形状行列を基に顔向きを計算する場合等、特徴点ベースの手法を用いる場合はいずれも、画像における顔の特徴点座標を正確に求める必要がある。
【０１００】
以下では、口端検出方法について図５に基づいて説明する。
【０１０１】
図５に口端位置と口周りの画像を示す。
【０１０２】
口周りの画像の性質として、上下の唇が合わさる部分は連続なエッジになっているという点と、口の周りはテクスチャーが少ないという点が挙げられる。
【０１０３】
まず、口周りの画像に１次微分フィルター等をかけ、エッジを強調する。エッジ画像に対して、物体境界の特定法（特願２００１−１７３００８）を用いれば、上記の２点を生かした口端検出を行うことができる。この物体境界の特定法とは、注目物体は明るく周りは暗い、あるいはその逆の場合に、物体の境界においては、注目画素の輝度とその外側の画素の輝度平均値との差が最大となることから、その最大値をとる画素を物体領域の境界として探索する方法である。
【０１０４】
従来技術で述べた福井と山口の分離度フィルターを用いて瞳と鼻孔を検出する等して、口端の探索領域を絞り込むことができるので、その探索領域に対して上述の方法を適用すれば、口端を安定して検出することができる。
【０１０５】
（ポインター表示の自動調整法）
以上は顔向きを計算するために必要な技術であるが、以下では、顔向きの計算結果から、ディスプレイ上にポインターを表示する位置を計算する場合を説明する。
【０１０６】
ディスプレイ上のポインター表示位置は、顔を平面と見倣し、顔平面から外に向かった法線ベクトルｍｄをディスプレイに射影することによって求まる。
【０１０７】
【数９】
0003822483.tif 000010
ここで、ベクトルｄは顔平面から外に向かった法線方向を表す単位ベクトルであり、例えば先に述べたように運動行列から簡単に求めることができる。
【０１０８】
ｍはユーザーが動かす顔向きの範囲とディスプレイの大きさとから決まる表示スケールを表す定数である。ｍの値を大きく設定すれば小さな顔向き角度でディスプレイの端まで動かすことができるし、ｍの値を小さく設定すればディスプレイの端まで動かすためには大きな角度で顔向きを動かす必要がある。どちらが使い易いかはユーザーによって異なるだけでなく、ディスプレイの大きさにも依存する。従って、ユーザーの顔向きの範囲とポインターの動く範囲を一致させるようなｍをユーザーやディスプレイ毎に求める必要がある。
【０１０９】
まず、ポインター表示の自動調整法について説明する。
【０１１０】
これは、顔向きの統計を利用して、ポインターの動く範囲を自動調節する方法である。
【０１１１】
顔向き計算により求まった顔向き結果から、例えば、ディスプレイの水平方向の角度の最大値と最小値、及び、垂直方向の角度の最大値と最小値を更新していき、一定時間が経った時点で、最大角と最小角を向いている場合のポインター位置がディスプレイの四角に表示されるように、ポインター位置の表示スケールｍを変化させればよい。
【０１１２】
ディスプレイの外を向いている場合も考慮するならば、角度の分布をとり、最大値と最小値の代りに中間値から左右に例えば４０％ずつ含む領域の最大値と最小値を用いることもできる。
【０１１３】
このように顔向きの統計を利用することによって、顔向きの範囲を絞り込み、その範囲をディスプレイの大きさに対応させてポインター表示位置を求めれば、ユーザーの顔の動く範囲とポインターの動く範囲とのずれを防ぐことができ、直感と連動した使いやすいものになる。
【０１１４】
（ポインター表示のユーザー調整法）
ユーザーによるポインター表示の調整方法について説明する。
【０１１５】
表示スケールｍの値をユーザー自身が入力できるようにすれば、実際に様々な値を試しながら表示スケールをユーザーの使い勝手の良いように設定することができる。また、上記の自動調整法により大まかに自動調整されたものを基に、このユーザー調整法により、ユーザーが微調整を行うこともできる。
【０１１６】
以上に述べたとおり、本発明によれば顔向きを利用したポインター装置２０を実現することができる。
【０１１７】
本実施形態により実現される顔向きポインター表示装置２０をＰＣのカーソル制御に用いれば、ＰＣ操作の作業効率を高めることができる。
【０１１８】
（変更例）
その他にも例えば、家電製品等の入力装置としても利用することができる。
【０１１９】
また、ディスプレイをいくつかの領域に分け文字を表示し、顔が向いている領域を選択できるような文字入力装置としても利用できる。
【０１２０】
また、顔向き計算技術単独で考えれば、ポインター装置に限らず、乗り物の運転者、展示物の観客、ゲーム端末の操作者などに対して顔向き計算技術が応用可能である。
【０１２１】
乗り物の運転者に対しては、顔向き計算により運転に支障となる脇見を検知して警報を鳴らせたり、顔向きに応じて安全運行のための適切な情報を提示することができる。展示物の観客に対しては、顔向き計算により観客の注目している展示を見極めて、その展示に関する情報を自動提示することができる。
【０１２２】
ゲーム端末の操作者に対しては、顔向き計算によりゲーム環境の視点を変更したり、シューティングの狙いを定めたり、首振り動作を用いて登場人物とのコミュニケーションに役立てたりすることができる。このように、顔向きポインターに関する技術は様々な分野で利用可能である。
【０１２３】
【発明の効果】
以上述べてきたように、本発明によれば、顔等の物体の特徴点の３次元形状を正確に求め、予め登録しておき、登録した形状行列の一般逆行列を利用することにより、次々と入力される画像から顔向きを高速かつ正確に計算することが可能である。
【０１２４】
そして、その計算結果から顔が向いているディスプレイ上の位置にポインターを表示することができる。
【図面の簡単な説明】
【図１】顔向きを利用したポインター表示装置の仕組みを表す。点線の矢印は形状登録処理の流れを表し、実線の矢印は顔向き計算処理の流れを表す。
【図２】顔向き計算処理の流れを表す。
【図３】形状登録処理の流れを表す。
【図４】顔向き計算方法を表す。
【図５】口端位置と口周りの画像を表す。
【符号の説明】
１  画像入力部
２  特徴点検出部
３  形状行列登録部
４  一般逆行列格納部
５  顔向き計算部
６  ポインター表示部
【図１】
0003822483.tif 000011
【図２】
0003822483.tif 000012
【図３】
0003822483.tif 000013
【図４】
0003822483.tif 000014
【図５】
0003822483.tif 000015