(57)【要約】【課題】ドリフト現象の発生を抑制しつつ、複数のテンプレートを更新することができる顔向き検出装置を提供すること。【解決手段】顔テンプレート格納部１２０は、顔向き検出に用いられる複数の顔テンプレートを、顔向きごとに整理された状態で格納する。顔向き検出部１４０は、顔テンプレート格納部１２０に格納された顔テンプレートを用いて、入力画像中の人物の顔向きを検出する。顔テンプレート更新条件設定部１６４は、正面の顔向きに対応する顔テンプレートの更新頻度が低く、かつ、正面以外の顔向きに対応する顔テンプレートの更新頻度が高くなるように、顔テンプレートの更新条件を設定する。顔テンプレート更新可否判定部１６６は、設定された更新条件と検出された顔向きとに基づいて、顔テンプレート格納部１２０に格納された顔テンプレートを更新するか否かを判定する。【選択図】図１
2008021266.tif 000002
【特許請求の範囲】
【請求項１】
顔向き検出に用いられる複数のテンプレートを格納するテンプレート格納部と、
前記テンプレート格納部に格納されたテンプレートを用いて、入力画像中の人物の顔向きを検出する顔向き検出部と、
前記テンプレート格納部に格納されたテンプレートに関する情報に基づいて、前記テンプレート格納部に格納されたテンプレートを更新するための条件を設定する更新条件設定部と、
前記更新条件設定部によって設定された更新条件と、前記顔向き検出部によって検出された顔向きとに基づいて、前記テンプレート格納部に格納されたテンプレートを更新するか否かを判定する更新可否判定部と、
を有する顔向き検出装置。
【請求項２】
前記テンプレート格納部は、
前記複数のテンプレートを、顔向きごとに整理した状態で格納する、
請求項１記載の顔向き検出装置。
【請求項３】
前記テンプレートに関する情報は、前記テンプレートに対応する顔向き、前記テンプレートの使用頻度、および前記テンプレートの精度のうち、少なくともいずれか１つである、
請求項１記載の顔向き検出装置。
【請求項４】
前記更新条件設定部は、
顔向きに応じてテンプレートの更新頻度が異なるように、テンプレートの更新条件を設定する、
請求項１記載の顔向き検出装置。
【請求項５】
前記更新条件設定部は、
正面の顔向きに対応するテンプレートの更新頻度が低く、かつ、正面以外の顔向きに対応するテンプレートの更新頻度が高くなるように、テンプレートの更新条件を設定する、
請求項１記載の顔向き検出装置。
【請求項６】
現在の顔向きと、前記テンプレートに対応する顔向きとを比較して、前記テンプレートを追加するか更新するかを判定する追加／更新判定部、をさらに有し、
前記更新条件設定部は、
前記テンプレートを更新すると判定された場合に、更新条件の設定を行う、
請求項１記載の顔向き検出装置。
【請求項７】
顔向き検出に用いられる複数のテンプレートを格納するテンプレート格納部に格納されたテンプレートを用いて、入力画像中の人物の顔向きを検出する顔向き検出ステップと、
前記テンプレート格納部に格納されたテンプレートに関する情報に基づいて、前記テンプレート格納部に格納されたテンプレートを更新するための条件を設定する更新条件設定ステップと、
前記更新条件設定ステップで設定した更新条件と、前記顔向き検出ステップで検出した顔向きとに基づいて、前記テンプレート格納部に格納されたテンプレートを更新するか否かを判定する更新可否判定ステップと、
を有する顔向き検出方法。
【請求項８】
顔向き検出に用いられる複数のテンプレートを格納するテンプレート格納部に格納されたテンプレートを用いて、入力画像中の人物の顔向きを検出する顔向き検出ステップと、
前記テンプレート格納部に格納されたテンプレートに関する情報に基づいて、前記テンプレート格納部に格納されたテンプレートを更新するための条件を設定する更新条件設定ステップと、
前記更新条件設定ステップで設定した更新条件と、前記顔向き検出ステップで検出した顔向きとに基づいて、前記テンプレート格納部に格納されたテンプレートを更新するか否かを判定する更新可否判定ステップと、
をコンピュータに実行させるための顔向き検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、人物の顔周辺を撮影した画像から、当該人物の顔が向いている方向を検出する顔向き検出装置、顔向き検出方法、および顔向き検出プログラムに関する。
【背景技術】
【０００２】
顔向き検出技術は、例えば、自動車運転者の脇見行動検知などへの応用が期待されている。そのためには、運転者が顔を左右に大きく振った場合にも安定して追跡を継続できなければならない。
【０００３】
しかしながら、運転者が正面を向いている状態と顔を大きく横に向けた状態とでは、固定カメラにより撮影した顔画像が大きく異なる。そのため、従来の多くの顔向き検出技術では、運転者が横を向いたときにも安定して顔向きを検出するのは困難であった。
【０００４】
この問題に対し、最近、顔向き追跡中に人物がある閾値以上横を向いた時点で、その時の追跡結果として得られる顔領域の画像をテンプレートとして登録し、以降、登録された複数のテンプレートを顔向きに応じて選択的に利用することにより、横向き時の顔向き追跡性能を向上させる方法が提案されている（特許文献１）。
【特許文献１】特開２００３−３４６１５８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記した従来の方法にあっては、一度登録したテンプレートを更新することができないため、テンプレート登録時には頭部運動が限定されてしまうこととなる。なぜなら、頭部の運動速度や動かし方によっては顔向きを正確に検出できない場合があり、その場合には実際に登録すべき画像とは異なる画像を登録してしまう可能性が高いためである。したがって、常に自由な頭部運動を許容するためには、一度テンプレートを登録した後も、随時テンプレートを更新する必要がある。
【０００６】
一方で、無作為にテンプレートの更新を行う場合には、徐々に顔向き検出結果がずれていく現象（一般に「ドリフト現象」と呼ばれる）が頻繁に発生するという問題がある。このドリフト現象は、ある画像中の対象物を追跡して得られた結果をもとにテンプレートを登録し、そこで登録したテンプレートを用いて別の画像中の同じ対象物を追跡する、といった処理を行う場合にしばしば発生する現象である。
【０００７】
本発明は、かかる点に鑑みてなされたものであり、ドリフト現象の発生を抑制しつつ、複数のテンプレートを更新することができる顔向き検出装置、顔向き検出方法、および顔向き検出プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の顔向き検出装置は、顔向き検出に用いられる複数のテンプレートを格納するテンプレート格納部と、前記テンプレート格納部に格納されたテンプレートを用いて、入力画像中の人物の顔向きを検出する顔向き検出部と、前記テンプレート格納部に格納されたテンプレートに関する情報に基づいて、前記テンプレート格納部に格納されたテンプレートを更新するための条件を設定する更新条件設定部と、前記更新条件設定部によって設定された更新条件と、前記顔向き検出部によって検出された顔向きとに基づいて、前記テンプレート格納部に格納されたテンプレートを更新するか否かを判定する更新可否判定部と、を有する構成を採る。
【０００９】
本発明の顔向き検出方法は、顔向き検出に用いられる複数のテンプレートを格納するテンプレート格納部に格納されたテンプレートを用いて、入力画像中の人物の顔向きを検出する顔向き検出ステップと、前記テンプレート格納部に格納されたテンプレートに関する情報に基づいて、前記テンプレート格納部に格納されたテンプレートを更新するための条件を設定する更新条件設定ステップと、前記更新条件設定ステップで設定した更新条件と、前記顔向き検出ステップで検出した顔向きとに基づいて、前記テンプレート格納部に格納されたテンプレートを更新するか否かを判定する更新可否判定ステップと、を有するようにした。
【００１０】
本発明の顔向き検出プログラムは、顔向き検出に用いられる複数のテンプレートを格納するテンプレート格納部に格納されたテンプレートを用いて、入力画像中の人物の顔向きを検出する顔向き検出ステップと、前記テンプレート格納部に格納されたテンプレートに関する情報に基づいて、前記テンプレート格納部に格納されたテンプレートを更新するための条件を設定する更新条件設定ステップと、前記更新条件設定ステップで設定した更新条件と、前記顔向き検出ステップで検出した顔向きとに基づいて、前記テンプレート格納部に格納されたテンプレートを更新するか否かを判定する更新可否判定ステップと、をコンピュータに実行させるためのものである。
【発明の効果】
【００１１】
本発明によれば、ドリフト現象の発生を抑制しつつ、複数のテンプレートを更新することができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。
【００１３】
なお、ここでは、画像中の人物の顔向きを検出する装置において、複数のテンプレートを選択的に使用することにより、様々な方向に変化する顔向きを安定に検出することができる顔向き検出装置および顔向き検出方法の例を説明する。また、本明細書において、顔に関するテンプレートを「顔テンプレート」と呼ぶことにするが、適宜、単に「テンプレート」と称する。また、各図面において、同一の構成要素には同一の符号を付し、適宜その説明を全部または一部省略する。
【００１４】
（実施の形態１）
図１は、本発明の実施の形態１に係る顔向き検出装置の機能構成を示すブロック図である。
【００１５】
図１に示す顔向き検出装置１００は、大別して、入力画像取得部１１０、顔テンプレート格納部１２０、顔テンプレート選択部１３０、顔向き検出部１４０、顔向き履歴情報格納部１５０、および顔テンプレート更新部１６０を有する。顔テンプレート更新部１６０は、さらに、更新対象テンプレート選択部１６２、顔テンプレート更新条件設定部１６４、顔テンプレート更新可否判定部１６６、新テンプレート抽出部１６８、および新テンプレート登録部１７０を有する。
【００１６】
本実施の形態では、入力画像取得部１１０で取得した画像中の人物の顔向きを顔向き検出部１４０で検出した後、検出された顔向き情報を用いて顔テンプレート格納部１２０の一部を更新することを試みる。このとき、実際に顔テンプレートを更新するか否かは、顔テンプレート更新条件設定部１６４で設定する条件に基づいて判定する。ここでは、ある特定のテンプレートについては更新条件を厳しく設定し、その他のテンプレートについては更新条件を緩く設定することにより、意図的に前者のテンプレートの更新頻度が後者のテンプレートの更新頻度に比べて低くなるように導く。具体的にどのような条件設定をすれば良いかについては、後で詳細に説明する。
【００１７】
次に、顔向き検出装置１００の各部について説明する。
【００１８】
入力画像取得部１１０は、顔向き検出装置１００への入力画像を取得する。すなわち、入力画像取得部１１０は、外部から画像を受け取り、所定の各部に引き渡す。このとき、入力画像は、入力画像取得部１１０に接続された撮像素子（例えば、ビデオカメラなど）により撮影された画像であってもよい。また、あらかじめ録画された画像列を入力画像として与えてもよい。入力画像は、例えば、被験者の顔周辺を撮影した画像である。
【００１９】
顔テンプレート格納部１２０は、複数の顔テンプレートを格納する。すなわち、顔テンプレート格納部１２０は、顔に関する複数のテンプレートを格納しており、顔テンプレート選択部１３０や更新対象テンプレート選択部１６２からの要請に応じて顔テンプレートの一部を出力したり、新テンプレート登録部１７０からの要請に応じて顔テンプレートの一部を更新する。顔テンプレート格納部１２０に格納される顔テンプレートは、例えば、顔の一部（目の両端や口の両端などの特徴点）の画像である。
【００２０】
なお、顔テンプレートは、顔の一部を含んでいればよく、顔全体を含む画像であってもよい。また、顔テンプレートは、エッジ特徴などの特徴量を抽出したものであってもよい。
【００２１】
図２は、顔テンプレート格納部１２０の構成の一例を示す概念図である。顔テンプレート格納部１２０に格納される複数の顔テンプレートは、例えば、顔向き角度に従って整理されている。具体的には、例えば、図２に示すように、顔テンプレート格納部１２０は、顔の左右方向の角度が０度、１０度、２０度、…や、−１０度、−２０度、…のそれぞれに対応する顔テンプレートを持つように構成されている。また、顔テンプレート格納部１２０には、格納される各テンプレートに対して、各テンプレートが担当すべき顔向き角度範囲が割り当てられている。すなわち、例えば、図２の例では、顔テンプレート格納部１２０は、複数（ここでは、５個）の顔テンプレート１８０−１、１８０−２、１８０−３、１８０−４、１８０−５を格納しており、各テンプレート１８０−１〜１８０−５は、基本となる顔向き角度θ１（ここでは、−２０度）、θ２（ここでは、−１０度）、θ３（ここでは、０度）、θ４（ここでは、１０度）、θ５（ここでは、２０度）と、自己に対応する角度範囲Ａ１、Ａ２、Ａ３、Ａ４、Ａ５とを持っている。このとき、角度範囲Ａｎ（ｎ＝１〜５）を持つ顔テンプレートが、顔向き角度θｎ（ｎ＝１〜５）に対応する顔テンプレートであるか否かは、その顔向き角度θｎがその角度範囲Ａｎに含まれるか否かによって判断される。例えば、その顔向き角度θｎがその角度範囲Ａｎに含まれる場合は、互いに対応する顔テンプレートとみなす。
【００２２】
なお、図２に示すように、顔の左右方向の角度に応じて顔テンプレートが整理される場合、初期状態では、顔テンプレート格納部１２０に顔テンプレートは格納されていない。よって、初期状態では、例えば、初期テンプレート登録装置により、顔テンプレートを新規登録する。これについては後で詳述する。
【００２３】
また、図２では、顔の左右方向の角度に応じて顔テンプレートが整理されている場合を例示したが、顔テンプレート格納部１２０の構成はこれに限定されない。例えば、顔の左右方向だけでなく顔の上下方向の角度についても同様の構成を持つことが可能である。
【００２４】
顔テンプレート選択部１３０は、複数の顔テンプレートの中から顔向き検出に適したテンプレートを選択する。すなわち、顔テンプレート選択部１３０は、顔テンプレート格納部１２０に格納されている複数の顔テンプレートの中から、顔向き検出を実行するにあたって最適な顔テンプレートを選択し、選択した顔テンプレートを顔向き検出部１４０に提供する。なお、図示しないが、顔テンプレート選択部１３０は、顔テンプレートの使用頻度を検出するため、顔テンプレート格納部１２０に格納されている顔テンプレートの選択回数をカウントするカウンタを備えている。
【００２５】
ここで、ある顔テンプレートが顔向き検出に適しているか否かの判断基準については、例えば、その顔テンプレートに対応する顔向きが、直前の画像フレームで検出された顔向きに近いか否かによって判断する。このとき、近いか否かの判断は、例えば、検出された顔向きが、各テンプレートの顔向き角度範囲Ａｎに含まれるか否かによって行われる。
【００２６】
なお、顔向きが近いか否かの判断方法は、上記の例に限定されない。例えば、検出された顔向きと各テンプレートに対応する顔向きとの差をすべて計算し、その差が最も小さい顔テンプレートを選択することもできる。
【００２７】
また、他の判断方法として、直前の画像フレームで検出された顔向きの代わりに、現在の画像フレームでの顔向きを予測した上で、その顔向きによって判断することも可能である。このときの顔向き予測は、例えば、直前（１フレーム前）のフレームの顔向きと２フレーム前の顔向きとの差分によって顔向き角速度を計算し、この角速度で等角速度運動が行われているという仮定を設定することによって計算可能である。
【００２８】
このように顔向き角度に応じて使用する顔テンプレートを切替・選択することにより、顔を観察する角度によって見え方が異なることを考慮したテンプレート選択を実現することができる。すなわち、実際の見え方に近いテンプレートを使用して顔向き検出を行うことができ、画像内の人物が横を向いた場合にも、顔向きを安定して検出することが可能となる。
【００２９】
顔向き検出部１４０は、選択された顔テンプレートを用いて入力画像中の人物の顔向きを検出する。すなわち、顔向き検出部１４０は、顔テンプレート選択部１３０で選択された顔テンプレートを用いて、入力画像取得部１１０で得られた画像中の人物の顔向きを検出する。
【００３０】
図３は、顔向き検出部１４０の機能構成の一例を示すブロック図である。
【００３１】
図３に示す顔向き検出部１４０は、画像入力部１４１、顔テンプレート入力部１４２、顔特徴点検出部１４３、頭部領域検出部１４４、および顔向き推定部１４５を有する。
【００３２】
画像入力部１４１は、入力画像取得部１１０から入力画像を受け取って、顔特徴点検出部１４３および頭部領域検出部１４４に引き渡す。また、顔テンプレート入力部１４２は、顔テンプレート選択部１３０から顔テンプレートを受け取って、顔特徴点検出部１４３に引き渡す。
【００３３】
顔特徴点検出部１４３は、入力された顔テンプレートを用いて、入力画像中でテンプレートマッチングを行い、顔特徴点の位置を検出する。例えば、顔テンプレートが右目、左目、口という３枚の画像で提供されている場合、それぞれに対応する位置が、顔特徴点として入力画像中で特定される。
【００３４】
頭部領域検出部１４４は、入力画像から、例えば、肌色抽出によって頭部領域を検出する。また、顔向き推定部１４５は、例えば、顔特徴点検出部１４３で検出された顔特徴点から顔中心を計算し、得られた顔中心が、頭部領域検出部１４４で検出された頭部領域においてどの位置にあるかによって、顔向きを推定する。
【００３５】
なお、顔向き検出部１４０は、現在の顔向き以外にも頭部運動に関する情報を保持している。また、本実施の形態では、顔向きの履歴の情報は、顔向き履歴情報格納部１５０に格納されているが、これに限定されない。例えば、顔向き検出部１４０は、頭部運動の速度や顔向きの履歴などの情報も保持しており、必要に応じてそれらを出力するようにしてもよい。また、ここで得られた顔向きは、例えば、画像中の人物が実世界の何に注目しているのかといった情報を得るためにも使うことができる。
【００３６】
顔向き履歴情報格納部１５０は、上記のように、顔向き検出部１４０で検出された顔向きの履歴の情報を格納する。顔向き履歴情報格納部１５０は、顔テンプレート選択部１３０や顔テンプレート更新可否判定部１６６からの要請に応じて、必要な履歴情報を提供する。
【００３７】
ここで、初期状態における顔テンプレートの新規登録について説明しておく。顔テンプレートの新規登録は、初期テンプレート登録装置によって行われる。
【００３８】
図４は、初期テンプレート登録装置の機能構成の一例を示すブロック図である。
【００３９】
図４に示す初期テンプレート登録装置１９０は、入力画像取得部１１０、顔向き検出部１４０（特に、画像入力部１４１、顔特徴点検出部１４３、頭部領域検出部１４４、および顔向き推定部１４５）、顔テンプレート抽出部１９２、および顔テンプレート登録部１９４を有する。
【００４０】
まず、初期テンプレート登録装置１９０は、入力画像取得部１１０で得られた入力画像を顔特徴点検出部１４３で分析することにより、人物の顔特徴点周辺領域を顔テンプレートとして検出する。例えば、あらかじめ目や口の画像を学習しておき、その学習結果を用いることにより、入力画像中で目や口を検出することが可能である。
【００４１】
そして、頭部領域検出部１４４では、頬や耳などの領域を含む頭部領域を検出する。例えば、入力画像中から肌色領域を抽出することにより、大まかな頭部領域を検出することができる。
【００４２】
そして、顔向き推定部１４５では、例えば、顔特徴点検出部１４３における両目と口の位置の検出結果から顔中心を計算した後、頭部領域検出部１４４で検出した頭部領域内での顔中心の偏りを計算することによって、顔向きを推定する。
【００４３】
そして、顔テンプレート抽出部１９２では、顔向き推定部１４５の出力（例えば、顔特徴点の位置）を用いて、顔テンプレートに対応する領域を入力画像から抽出する。
【００４４】
そして、顔テンプレート登録部１９４では、顔向き推定部１４５で推定した顔向きと、顔テンプレート抽出部１９２で抽出した顔テンプレートとを、互いに関連付けた状態で顔テンプレート格納部１２０に格納し、次回以降の顔向き推定などで利用できるようにしておく。
【００４５】
この方法により、最初の１個の顔テンプレートが登録される。このとき、例えば、そのテンプレートに対応する角度範囲は、無限大に広げておく。これは、ここで得られた顔向き以外の顔向きに対応する顔テンプレートが必要になった場合には、この時得られた顔テンプレートで代用することを意味する。その後、顔向き検出を続けていく中で他の顔向きに対応する顔テンプレートが新たに登録された場合には、新たに登録された顔テンプレートの顔向きに応じて、角度範囲を適宜分割・限定していく。
【００４６】
なお、顔テンプレート抽出部１９２および顔テンプレート登録部１９４は、もちろん、図１に示す新テンプレート抽出部１６８および新テンプレート登録部１７０によってそれぞれ構成することも可能である。
【００４７】
次に、顔テンプレート更新部１６０を構成する各部について説明する。
【００４８】
更新対象テンプレート選択部１６２は、顔向き情報などに基づいて、更新対象とする顔テンプレートを顔テンプレート格納部１２０から選択する。すなわち、更新対象テンプレート選択部１６２は、顔向き検出部１４０から得られた情報をもとに、顔テンプレート格納部１２０に格納されている顔テンプレートのうち、どのテンプレートを更新すべきかを決定する。例えば、上記のように、顔テンプレート格納部１２０に格納されている各テンプレートに対して、自己が担当すべき顔向き角度範囲Ａｎが割り当てられている場合には、現在の顔向きが含まれる角度範囲が割り当てられている顔テンプレートを、更新対象として決定することができる。
【００４９】
なお、更新対象の決定方法については、例えば、顔テンプレート格納部１２０に格納されている各テンプレートの顔向きと、顔向き検出部１４０で得られた現在の顔向きとの差をすべて計算し、その差が最も小さいものを更新対象テンプレートとして決定することもできる。
【００５０】
さらに、更新対象テンプレート選択部１６２で行う判断の一例として、顔テンプレートを更新する（つまり、元のテンプレートを削除した後で新たに登録する）のではなく、顔テンプレートを追加することも可能である。具体的には、例えば、現在の顔向きに最も近い顔テンプレートの顔向きと現在の顔向きとの差が大きいと判断できる場合、例えば、その差があらかじめ設定された閾値以上の場合には、顔テンプレート格納部１２０に既に格納されている顔テンプレートを更新するのではなく、顔テンプレート格納部１２０に新しく顔テンプレートを追加するという判断を行うこともできる。このような判断を行う場合は、図１の顔テンプレート更新条件設定部１６４および顔テンプレート更新可否判定部１６６の処理をスキップすることになる。
【００５１】
顔テンプレート更新条件設定部１６４は、更新対象として選択されたテンプレートの顔向き情報などに基づいて、当該テンプレートを更新するための条件を設定する。すなわち、顔テンプレート更新条件設定部１６４は、更新対象テンプレート選択部１６２で更新対象として選択された顔テンプレートに関する情報に基づいて、当該テンプレートを更新するための条件を適応的に設定する。ここで利用する顔テンプレートに関する情報としては、例えば、顔テンプレートに対応する顔向きや、顔テンプレートの使用頻度に関する指標を使用する。
【００５２】
本実施の形態では、設定される更新条件は、例えば、「緩い更新条件」と「厳しい更新条件」の２種類に分かれる。「緩い条件」とは、装置が一般的な稼動をした場合に、その条件を満たす可能性が高いことが予想されるような条件を意味する。逆に、「厳しい条件」とは、その条件を満たす可能性が低いことが予想されるような条件を意味する。
【００５３】
緩い条件を設定する上での重要なポイントは、追跡を継続する中で少なくとも数フレームは更新不可と判定されるように、条件を設定することである。あるフレームで顔向きを誤検出した場合、その顔向きを利用してテンプレートを抽出・登録すると、実際の特徴点位置とは異なる部分に対応するテンプレートが登録されることとなる。このとき、それ以降のフレームでは、顔向き検出にある程度の誤差を含んだ結果が得られることとなる。これを繰り返すことにより、徐々に顔向き検出誤差が蓄積し、最終的に追跡に失敗する。これが上記のドリフト現象である。一方で、顔が大きく横を向いた場合などには、顔向きを誤検出するフレームが比較的多くなる傾向がある。以上のことから、すべてのフレームでテンプレートを更新した場合には、どこかのフレームで誤ったテンプレートを登録してしまう可能性が非常に高くなり、その結果、非常に高い確率でドリフト現象が発生して顔向き検出に失敗する。このため、ある特定のタイミングにおいてのみテンプレートを更新することにより、ドリフト現象の発生確率を低下させることができる。
【００５４】
緩い条件の基本的な条件となるのは、今回、更新対象テンプレート選択部１６２で選択されたテンプレートが、直前フレームにて選択されたテンプレートとは異なる、という条件である。例えば、図２に示す顔テンプレートを持っている場合において、図５に示すタイムラインでテンプレートが更新される。
【００５５】
図５は、顔テンプレートの更新のタイミングの一例を説明するための図である。
【００５６】
図５中の実線は、顔向き検出部１４０で検出された顔向き角度の変化を示している。また、図５中の黒丸は、その時点でテンプレートが更新されたことを示している。また、図５において、横軸は時刻、縦軸は顔向きをそれぞれ表し、縦軸に沿って対応する顔テンプレート１８０−３〜１８０−５と角度範囲Ａ３〜Ａ５を表記している。
【００５７】
図５の例では、時刻Ｔ１、時刻Ｔ２、時刻Ｔ３、時刻Ｔ４の時点でテンプレートがそれぞれ更新されている。具体的には、時刻Ｔ１と時刻Ｔ３ではテンプレート１８０−４が、時刻Ｔ２と時刻Ｔ４ではテンプレート１８０−５が、それぞれ更新されている。すなわち、この場合、テンプレートは、毎フレーム更新されるわけではないが、一定区間顔向きを移動するごとに、つまり、顔向きが別の角度範囲に入るごとに更新されることとなる。
【００５８】
なお、上記基本条件は、所定の角度範囲に入った時点で１回更新するものであるが、これに限定されない。例えば、顔向きが所定の角度範囲に入ってからその角度範囲を出るまでの期間に１回更新するようにしてもよい。
【００５９】
また、上記基本条件は、所定の角度範囲に顔向きがある間に１回更新するものであるが、これに限定されるわけではなく、複数回更新してもよい。ただし、所定の角度範囲に顔向きがある間のすべてのフレームで更新するものではない。
【００６０】
また、他の更新条件として、上記基本条件を満たし、かつ、正面（０度）から遠ざかる向きに顔向き移動をしている、という条件を満たした場合にのみテンプレートを更新するという例も挙げられる。例えば、図２に示す顔テンプレートを持っている場合において、図６に示すタイムラインでテンプレートが更新される。
【００６１】
図６は、顔テンプレートの更新のタイミングの他の例を説明するための図である。
【００６２】
図６中の実線は、図５と同様に、顔向き検出部１４０で検出された顔向き角度の変化を示している。また、図６中の黒丸は、その時点でテンプレートが更新されたことを示している。また、図６において、横軸は時刻、縦軸は顔向きをそれぞれ表し、縦軸に沿って対応する顔テンプレート１８０−３〜１８０−５と角度範囲Ａ３〜Ａ５を表記している。
【００６３】
図６の例では、時刻Ｔ１、時刻Ｔ２、時刻Ｔ４の時点でテンプレートがそれぞれ更新されている。具体的には、時刻Ｔ１ではテンプレート１８０−４が、時刻Ｔ２、時刻Ｔ４ではテンプレート１８０−５が、それぞれ更新されている。すなわち、この場合、テンプレートは、毎フレーム更新されるわけではないが、例えば、正面→左→正面と向いた場合、最低１度は更新されることとなる。
【００６４】
このように、正面から遠ざかる向きに顔向きを移動している場合に限定してテンプレートを更新することにより、正面から外側に向かって徐々にテンプレートを更新していく形となる。したがって、正面付近のテンプレートの信頼性が高い場合には、外側のテンプレートの信頼性も高い可能性が高い。したがって、正面に近づく向きに顔向きを移動している場合にテンプレートを更新する場合と比較して、テンプレートの信頼性を高く維持できる効果を期待することができる。
【００６５】
また、さらに他の更新条件として、上記基本条件を満たし、かつ、更新対象テンプレートが前回更新された時点から現時点までの間に、顔テンプレート選択部１３０において特定のテンプレートが選択された場合にのみテンプレートを更新するという例も挙げられる。換言すれば、上記基本条件を満たしても、更新対象テンプレートが更新された時点から現時点までの間に特定の顔向きを向いていなければ、更新しない、という条件である。ここで、特定のテンプレートとは、例えば、上記の「厳しい条件」を満たした上で更新したテンプレートであり、特定の顔向きとは、上記特定のテンプレートに対応する顔向き角度または角度範囲である。この角度範囲の代表的な例は、０度（正面）近傍の範囲である。例えば、図２に示す顔テンプレートを持っている場合において、図７に示すタイムラインでテンプレートが更新される。
【００６６】
図７は、顔テンプレートの更新のタイミングのさらに他の例を説明するための図である。
【００６７】
図７中の実線は、図５および図６と同様に、顔向き検出部１４０で検出された顔向き角度の変化を示している。また、図７中の黒丸は、その時点でテンプレートが更新されたことを示している。また、図７において、横軸は時刻、縦軸は顔向きをそれぞれ表し、縦軸に沿って対応する顔テンプレート１８０−３〜１８０−５と角度範囲Ａ３〜Ａ５を表記している。
【００６８】
図７の例では、時刻Ｔ１、時刻Ｔ２の時点でテンプレートがそれぞれ更新されている。具体的には、時刻Ｔ１ではテンプレート１８０−４が、時刻Ｔ２ではテンプレート１８０−５が、それぞれ更新されている。すなわち、この場合、テンプレートは、毎フレーム更新されるわけではないが、例えば、正面→左→正面と向いた場合、最低１度は更新されることとなる。
【００６９】
このように、一度正面を向き直るまでは更新しないことにより、ドリフト現象を最大限抑制する効果を期待することができる。同時に、一度横を向いても再び正面を向き直るという状況が頻繁に発生する環境下では、十分な更新頻度を保つことが可能である。
【００７０】
また、さらに他の更新条件として、上記基本条件を満たした場合のみ更新可と判断するのに加えて、上記基本条件を満たさなかった場合でも、頭部運動速度に関する一条件を満たした場合には更新可とする、という更新条件も一例として挙げられる。ここでは、各テンプレートは、それが登録された際の頭部運動速度を記憶しており、更新対象テンプレート選択部１６２で選択された顔テンプレートの速度と、顔向き検出部１４０で検出された現在の顔向きについての速度とを比較して、現在の頭部運動速度の方が遅ければ更新可と判断するものである。これは、頭部運動速度の遅い方が画像のぶれ（ブラー）が発生しにくいという知見に基づいて、できるだけ明瞭な顔テンプレートを登録することにより追跡性能の向上を図るための条件である。
【００７１】
また、さらに他の更新条件として、上記基本条件を満たした場合のみ更新可と判断するのに加えて、上記基本条件を満たさなかった場合でも、顔向きに関する一条件を満たした場合には更新可とする、という更新条件も一例として挙げられる。すなわち、更新対象テンプレート選択部１６２で選択された顔テンプレートの角度範囲（例えば、図２のＡ１〜Ａ５参照）の中心角度を計算した上で、顔向き検出部１４０で検出された現在の顔向きの方が、上記顔テンプレートの顔向き角度よりも、上記中心角度に近ければ、更新可と判断するものである。これは、顔テンプレートに対応する顔向きが角度範囲の中心に位置する場合、テンプレートの見え方の面で、最もバランスが良いという知見に基づいている。
【００７２】
一方、厳しい条件の基本的な条件となるのは、追跡に失敗したことを検出した上で、その状態から再度追跡を開始する状態になった瞬間にのみ顔テンプレートの更新を行うとするものである。装置を起動してから終了するまでの間にこの条件を満たす状態が出現する確率は、上記の緩い条件を満たす状態の出現確率と比較して、格段に低いことがわかっている。
【００７３】
なお、上記基本条件よりも厳しくし、装置起動後に最初に追跡を開始した瞬間のみ登録・更新するという条件にすることもできる。この場合、実質的には、一度登録した後には更新しないということになる。それゆえ、この条件を満たす確率という面で見ると、その確率が極めて低いことは明らかである。
【００７４】
また、上記基本条件を満たした場合のみ更新可と判断するのに加えて、緩い条件を満たし、かつ、顔テンプレートの見え方が大きく変化した場合にも更新可とするということもできる。ここで、顔テンプレートの見え方が大きく変化した場合とは、例えば、入力画像の中から顔テンプレートに対応する領域を抽出して顔テンプレートと比較したときに、双方の輝度平均や輝度分散が閾値以上異なっており、かつ、その状態が一定期間以上連続して観測されたような場合と定義できる。この場合、利用者を取り巻く周辺環境が大きく変化したと判断でき、現在のテンプレートのままでは安定して追跡することが困難であるため、顔テンプレートを更新するというものである。この条件は、上記の緩い条件を満たした場合のみ満たす構成になっているため、この条件を満たす状態が出現する確率は、緩い条件を満たす確率よりも必ず低くなることがわかる。
【００７５】
このように、厳しい条件は緩い条件と比較して条件を満たす確率が低いため、厳しい条件は緩い条件よりも発生頻度が低いことが特徴となっている。
【００７６】
顔テンプレート更新条件設定部１６４の最大の特徴は、上記した厳しい条件と緩い条件を、更新対象として選ばれた顔テンプレートの特徴に応じて切り替えることである。これにより、ドリフト現象を抑制しつつ顔テンプレートの更新が可能な状況を実現することができる。
【００７７】
ここで利用する顔テンプレートの特徴とは、例えば、顔テンプレートに対応する顔向きが挙げられる。この顔向きが０度（正面）に最も近い１個の顔テンプレートについては、上記の厳しい条件を適用し、一方、それ以外の顔テンプレートについては、上記の緩い条件を適用する。これにより、正面付近の顔向きに対応する顔テンプレートについてはほとんど更新されず、それ以外の顔向きの顔テンプレートについては比較的頻繁に更新されるという状況が得られる。
【００７８】
このような構成にした場合、顔向きが正面以外を向いて運動を継続する場合にはドリフト現象が発生する可能性があるが、顔向きが正面を向いた時点でドリフト現象が解消されるという効果が得られる。これは、正面に対応するテンプレートについては、位置ずれ誤差が含まれない状態で維持されているためである。以下、その作用について説明する。
【００７９】
ドリフト現象が発生する原因は、誤ったテンプレートを登録してしまうことである。顔向き検出結果に基づいてテンプレートを登録する場合、常に正しい顔向き検出結果が得られるのであれば、非常に高い確率で正しいテンプレートが登録されるため、ドリフト現象は発生しない。しかしながら、顔向き検出結果は常に正しいものが得られるとは限らないため、実際の位置から多少外れたテンプレートが登録されることが多い。この誤ったテンプレートを用いて顔向きを検出すると、ある程度の誤差を含む顔向き検出結果が得られることとなる。この状態からテンプレート更新と顔向き検出を繰り返すと、徐々に顔向き検出結果に誤差が蓄積することとなり（ドリフト現象の発生）、いずれは顔向き検出に失敗する。すなわち、テンプレートの更新を行うごとに、多少なりとも誤差が蓄積する可能性がある。
【００８０】
このような誤差が蓄積した状態を解消するためには、位置ずれ誤差を含まないテンプレートで顔向き検出を行えばよい。さらに、その顔向き検出結果を用いて顔テンプレートを更新することにより、テンプレートに含まれる誤差を初期状態に戻すことができる。したがって、正面に対応するテンプレートが位置ずれ誤差を含まない状態で維持できていれば、顔向きが正面を向いた時点で蓄積誤差、つまり、ドリフト現象が解消されることとなる。
【００８１】
このため、本方法によれば、一度横を向いても近い将来には正面を向き直るという運動パターンを取る場合には、ドリフト抑制効果が最大限に発揮される。上記運動パターンは、例えば、自動車の運転に非常に良く当てはまる。自動車を通常運転する際には、右折または左折するときに横を向くが、再び直進するために前に向き直る状況が頻繁に発生する。また、左右の安全確認のために首を左右に振る場合の顔向き運動についても、必ず途中で正面向きを経由する。
【００８２】
なお、厳しい条件を適用する顔テンプレートの個数は正面に近い１個に限定する必要はなく、正面に近ければ複数個の顔テンプレートに対して厳しい条件を適用してもよい。
【００８３】
また、顔向きが０度に近い顔テンプレートに厳しい条件を適用する代わりに、任意の顔向き角度に対して厳しい条件を適用することも考えられる。この場合は、これ以外の顔向き角度に対して緩い条件を適用する。ただし、厳しい条件を適用する顔テンプレートは、一定以上の頻度で顔テンプレート選択部１３０において選択される必要があり、具体的には、顔向きを追跡している間に最低１回は選択されなければならない。
【００８４】
厳しい条件と緩い条件を切り替えるための別の判断基準として、更新対象として選ばれた顔テンプレートが顔テンプレート選択部１３０において最も選択されている顔テンプレートであれば厳しい条件を適用し、それ以外の顔テンプレートには緩い条件を適用するということも可能である。これにより、顔テンプレート選択部１３０で頻繁に選択される顔テンプレートについてはほとんど更新されず、それ以外の顔向きの顔テンプレートについては比較的頻繁に更新されるという状況が得られる。
【００８５】
ただし、新たに登録されて間もない顔テンプレートは、顔テンプレート選択部１３０で選択された回数は非常に少ないため、例えば、ある顔テンプレートが登録されてからある一定期間の間はそのテンプレートを更新しないようにし、その一定期間の間に顔テンプレート選択部１３０で選択された回数を計測し、その回数に応じて厳しい条件と緩い条件を切り替える。
【００８６】
また、上記のように実際の回数を数えなくても、上記の回数の大まかな数値をあらかじめ予想し、それに応じて切り替えることも可能である。例えば、新テンプレート登録部１７０でテンプレートを更新するときに、更新前の顔テンプレートで用いた値をそのまま予想値とすることができる。また、顔向き検出装置１００を使用する環境が限定されており、利用者の一般的な動作も予想できる場合には、その予想される動作に応じて上記条件を切り替えることが可能である。
【００８７】
このような構成にした場合、頻繁に更新される顔テンプレートを用いて追跡を継続する場合にはドリフトする可能性があるが、ほとんど更新されない顔テンプレートを使用した時点でドリフトが解消されるという効果がある。
【００８８】
なお、厳しい条件を適用する顔テンプレートの個数は、顔テンプレート選択部１３０で最も選択される１個に限定する必要はなく、顔テンプレート選択部１３０で一定の回数以上選択されている、または選択されることが予想される複数個の顔テンプレートに対して厳しい条件を適用してもよい。
【００８９】
顔テンプレート更新可否判定部１６６は、顔向き検出部１４０で検出した顔向き情報などと、顔テンプレート更新条件設定部１６４で設定されたテンプレート更新条件とを比較して、当該更新対象テンプレートを更新するか否かを判定する。すなわち、顔テンプレート更新可否判定部１６６は、顔テンプレート更新条件設定部１６４で設定された顔テンプレートを更新するための条件を用いて、顔向き検出部１４０で得られた現在の顔向きに関する情報が当該条件を満たしていれば更新可と判定し、当該条件を満たしていなければ更新不可と判定する。
【００９０】
新テンプレート抽出部１６８は、更新対象テンプレートを更新すると判定された場合に、入力画像から新しいテンプレートを抽出する。すなわち、新テンプレート抽出部１６８は、顔テンプレート更新可否判定部１６６で更新可と判定された場合に実行され、顔テンプレートに対応する領域を入力画像から抽出する。例えば、顔向き検出部１４０において一度顔特徴点を検出してから顔向きを検出するという方法を取っている場合は、その際に検出した顔特徴点の位置を顔テンプレートの中心とし、その周辺領域を顔テンプレートに対応する領域として抽出する。
【００９１】
なお、入力画像からテンプレートを抽出する方法については、１種類に限定されるわけではなく、例えば、あらかじめ２種類以上の抽出方法を設けておき、必要に応じてそれらを切り替えることも可能である。
【００９２】
新テンプレート登録部１７０は、更新対象テンプレートを新しいテンプレートで置き換える。すなわち、新テンプレート登録部１７０は、新テンプレート抽出部１６８で抽出された顔テンプレートを顔テンプレート格納部１２０に登録する。例えば、更新対象テンプレート選択部１６２で選択された顔テンプレートを削除し、その代わりに、新たに抽出されたテンプレートを登録するという処理を行う。
【００９３】
このとき、各テンプレートに角度範囲Ａｎが割り当てられている場合には、例えば、削除された顔テンプレートの角度範囲を継承する。
【００９４】
なお、この角度範囲については、新たに設定し直すという方法も考えられる。例えば、新たに登録するテンプレートの顔向きと隣接する顔テンプレートの顔向きの平均値を角度範囲の端点として設定することが考えられる。この場合、必要に応じて、隣接する顔テンプレートの角度範囲も変更する。
【００９５】
また、上記のように、既に登録されている顔テンプレートを削除することなく、新たに顔テンプレートを追加するという処理を行う例も挙げられる。
【００９６】
次いで、上記構成を有する顔向き検出装置１００の動作について、図８に示すフローチャートを用いて説明する。なお、図８に示すフローチャートは、図示しない記憶装置（例えば、ＲＯＭなど）に制御プログラムとして記憶されており、図示しないＣＰＵによって実行される。
【００９７】
まず、ステップＳ１０００では、入力画像取得部１１０で、初期登録のための処理対象となる画像を入力する。
【００９８】
そして、ステップＳ１１００では、例えば、図４に示す初期テンプレート登録装置１９０により、ステップＳ１０００で得た入力画像から初期テンプレートを抽出して顔テンプレート格納部１２０に登録する。
【００９９】
そして、ステップＳ１２００では、入力画像取得部１１０で、新たな別画像を入力する。
【０１００】
そして、ステップＳ１３００では、顔テンプレート選択部１３０で、顔向き検出に使用する顔テンプレートを、顔テンプレート格納部１２０から選択する。このとき、顔テンプレート選択部１３０は、上記のように、予測された顔向きに応じて顔テンプレートを選択するという作業を行う。なお、初期テンプレートが登録された直後の場合は、初期テンプレート登録装置１９０において副産物として出力される顔向き情報を利用する。
【０１０１】
そして、ステップＳ１４００では、顔向き検出部１４０で、ステップＳ１２００で得た入力画像と、ステップＳ１３００で選択された顔テンプレートとのマッチング作業を行い、入力画像中の人物の顔向きを検出する。
【０１０２】
そして、ステップＳ１５００では、更新対象テンプレート選択部１６２で、現在の顔向きなどの情報に基づいて、テンプレートを新たに追加するか、既存のテンプレートを更新するかを判断する。この判断の結果として、テンプレートを新たに追加する場合は（Ｓ１５００：追加）、ただちにステップＳ１９００に進み、既存のテンプレートを更新する場合は（Ｓ１５００：更新）、ステップＳ１６００に進む。
【０１０３】
ステップＳ１６００では、同じく更新対象テンプレート選択部１６２で、顔テンプレート格納部１２０の中から更新すべき顔テンプレートを選択する。
【０１０４】
そして、ステップＳ１７００では、顔テンプレート更新条件設定部１６４で、ステップＳ１６００で選択された顔テンプレートを実際に更新するために満たすべき条件を設定し直す。
【０１０５】
そして、ステップＳ１８００では、顔テンプレート更新可否判定部１６６で、ステップＳ１７００で設定された更新条件を満たすか否かを判断する。この判断の結果として、更新条件を満たす場合は（Ｓ１８００：ＹＥＳ）、ステップＳ１９００に進み、更新条件を満たさない場合は（Ｓ１８００：ＮＯ）、ただちにステップＳ２１００に進む。
【０１０６】
ステップＳ１９００では、テンプレートを新たに追加するため（ステップＳ１５００：追加）またはテンプレートを更新するため（Ｓ１８００：ＹＥＳ）、新テンプレート抽出部１６８で、新たに登録するテンプレートを入力画像から抽出する。
【０１０７】
そして、ステップＳ２０００では、新テンプレート登録部１７０で、ステップＳ１９００で抽出したテンプレートを顔テンプレート格納部１２０に登録する。
【０１０８】
そして、ステップＳ２１００では、所定の終了条件を満たすか否かを判断する。この判断の結果として、終了条件を満たす場合は（Ｓ２１００：ＹＥＳ）、上記一連の処理を終了し、終了条件を満たさない場合は（Ｓ２１００：ＮＯ）、ステップＳ１２００に戻って、ステップＳ１２００〜ステップＳ２１００の処理を繰り返す。
【０１０９】
このように、本実施の形態によれば、顔テンプレート更新条件設定部１６４で設定する条件に従って顔テンプレートを登録・更新するため、ドリフト現象の発生を抑制しつつ、複数のテンプレートを更新することができる。このため、横向き時にも、画像中の人物の安定した顔向き検出を実現することができる。
【０１１０】
すなわち、自由な頭部運動を許容するためにはテンプレートを頻繁に更新する必要がある一方で、テンプレートを頻繁に更新した場合にはドリフト現象がしばしば発生するという状況のもとで、本実施の形態では、顔向きごとに整理された複数のテンプレートが存在する中で、正面顔に対応するテンプレートには厳しい更新条件を課す一方で、横顔に対応するテンプレートについては緩やかな更新条件を課すため、結果的に、正面顔に対応するテンプレートの更新頻度は横顔に対応するテンプレートの更新頻度に比べて低くなるような状況を実現することができる。すなわち、テンプレートのうちの一部をほとんど更新せずに、それを軸として追跡を継続するため、ドリフト現象の発生を抑制しつつ、自由に頭部を運動させることが可能となる。特に、車の運転では、正面を向いている時間が非常に長いことに着目すると、正面に対応するテンプレートを軸とするのがふさわしいと判断できる。
【０１１１】
また、顔テンプレートを適切に更新することにより（例えば、上記のように、正面付近の顔向きに対応するテンプレートの更新頻度は低く、かつ、正面以外のテンプレートの更新頻度は高い）、利用者が大きく横を向いた場合の顔向き検出精度を向上させることができる。
【０１１２】
また、顔テンプレートを更新するタイミングを制御することにより、利用者が大きく横を向いた場合の顔向き検出においても、ドリフト現象を抑制しつつ顔向きを検出することができる。
【０１１３】
さらに、顔テンプレートを適切に更新することにより、利用者が大きく横を向くごとに運動速度などの動作パターンや周辺環境が変化しても、安定して顔向きを検出することができる。
【産業上の利用可能性】
【０１１４】
本発明は、画像中の人物の顔向きを検出・追跡する際に、顔を大きく横に向けた場合にも、その顔向きを安定して検出することができるという効果を有し、自動車運転者の顔向き検出装置などとして有益である。また、自動車運転者の安全運転を支援する装置のみならず家電機器の操作などの用途にも応用が可能である。
【図面の簡単な説明】
【０１１５】
【図１】本発明の実施の形態１に係る顔向き検出装置の機能構成を示すブロック図
【図２】図１の顔テンプレート格納部の構成の一例を示す概念図
【図３】図１の顔向き検出部の機能構成の一例を示すブロック図
【図４】本実施の形態における初期テンプレート登録装置の機能構成の一例を示すブロック図
【図５】顔テンプレートの更新のタイミングの一例を説明するための図
【図６】顔テンプレートの更新のタイミングの他の例を説明するための図
【図７】顔テンプレートの更新のタイミングのさらに他の例を説明するための図
【図８】本実施の形態に係る顔向き検出装置の動作を示すフローチャート
【符号の説明】
【０１１６】
１００  顔向き検出装置
１１０  入力画像取得部
１２０  顔テンプレート格納部
１３０  顔テンプレート選択部
１４０  顔向き検出部
１５０  顔向き履歴情報格納部
１６０  テンプレート更新部
１６２  更新対象テンプレート選択部
１６４  顔テンプレート更新条件設定部
１６６  顔テンプレート更新可否判定部
１６８  新テンプレート抽出部
１７０  新テンプレート登録部
【図１】
2008021266.tif 000003
【図２】
2008021266.tif 000004
【図３】
2008021266.tif 000005
【図４】
2008021266.tif 000006
【図５】
2008021266.tif 000007
【図６】
2008021266.tif 000008
【図７】
2008021266.tif 000009
【図８】
2008021266.tif 000010