(57)【要約】【課題】ドライバが運転中に正面を向いている場合の顔の向きを迅速かつ確実に検出する。【解決手段】顔検出部１２は、カメラ１１により運転席に座っているドライバを撮影した画像である入力画像におけるドライバの顔の位置を検出する。イニシャル方向検出部１３は、入力画像におけるドライバの顔の位置と、ドライバが運転中に正面を向いている場合の顔の向きであるイニシャル方向とが予め関連づけられている変換テーブルを記憶部１５から読み出し、変換テーブル、および、顔検出部１１により検出されたドライバの顔の位置に基づいて、イニシャル方向を検出する。本発明は、ドライバの顔の向きを検出する顔向き検出装置に適用できる。【選択図】図１
2007249352.tif 000002
【特許請求の範囲】
【請求項１】
運転席に座っているドライバを撮影した画像である入力画像におけるドライバの顔の位置である検出位置を検出する位置検出手段と、
前記入力画像における前記ドライバの顔の位置と、前記ドライバが運転中に正面を向いている場合の顔の向きであるイニシャル方向とが予め関連づけられているデータである変換データから、前記検出位置に対応する前記イニシャル方向を取得するイニシャル方向取得手段と
を含む情報処理装置。
【請求項２】
前記入力画像に基づいて検出された前記ドライバの顔の向きを、前記イニシャル方向を基準とする向きに変換する変換手段を
さらに含む請求項１に記載の情報処理装置。
【請求項３】
前記入力画像に基づいて前記ドライバの顔の向きを検出する顔向き検出手段を
さらに含む請求項１に記載の情報処理装置。
【請求項４】
前記位置検出手段は、複数の方向から前記運転席に座っているドライバを撮影した複数の入力画像について前記検出位置を検出し、
前記イニシャル方向取得手段は、それぞれの前記入力画像に対応する前記変換データから、それぞれの前記入力画像における前記検出位置に対応する前記イニシャル方向を取得する
請求項１に記載の情報処理装置。
【請求項５】
運転席に座っているドライバを撮影した画像である入力画像におけるドライバの顔の位置である検出位置を検出する位置検出ステップと、
前記入力画像における前記ドライバの顔の位置と、前記ドライバが運転中に正面を向いている場合の顔の向きであるイニシャル方向とが予め関連づけられているデータである変換データからの、前記検出位置に対応する前記イニシャル方向の取得を制御するイニシャル方向取得制御ステップと
を含む検出方法。
【請求項６】
運転席に座っているドライバを撮影した画像である入力画像におけるドライバの顔の位置である検出位置を検出する位置検出ステップと、
前記入力画像における前記ドライバの顔の位置と、前記ドライバが運転中に正面を向いている場合の顔の向きであるイニシャル方向とが予め関連づけられているデータである変換データからの、前記検出位置に対応する前記イニシャル方向の取得を制御するイニシャル方向取得制御ステップと
を含む情報処理をコンピュータに実行させるプログラム。
【請求項７】
請求項６に記載のプログラムを記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置および方法、記録媒体、並びに、プログラムに関し、特に、ドライバが運転中に正面を向いている場合の顔の向きを、迅速かつ確実に求めることができるようにした情報処理装置および方法、記録媒体、並びに、プログラムに関する。
【背景技術】
【０００２】
従来、撮像した画像間のオプティカルフローを画像処理により求め、求めたオプティカルフローに基づいて、ドライバの顔の向きを検出することが提案されている（例えば、特許文献１参照）。
【０００３】
ところで、近年、開発が盛んである運転を支援する運転支援装置などにおいて、ドライバの脇見を検出する場合、例えば、ドライバが運転中に正面を向いている場合の顔の向き（以下、イニシャル方向と称する）を基準とするドライバの顔の向きを検出することにより、脇見が検出される。従って、この場合、イニシャル方向をできる限り正確に設定することが重要となる。
【０００４】
しかしながら、特許文献１に記載の発明では、ドライバを撮像するカメラをドライバの正面下方に設置することが前提とされ、イニシャル方向を求めることについては言及されていない。従って、ドライバの身長、ドライビングポジション（運転姿勢）などの違いに対応して、イニシャル方向が調整することができないため、想定したイニシャル方向と実際のイニシャル方向との間に誤差が生じる場合がある。また、特許文献１の図１にあるように、カメラをドライバの正面下方に設置した場合、ステアリングホイールやドライバの手などが邪魔になり、ドライバの顔が撮影できないときがある。
【０００５】
そこで、従来、車両の走行速度および先行車との車間距離に基づいて、眼の位置データを測定するサンプル数またはサンプリング時間を設定し、設定したサンプル数またはサンプリング時間における測定値の平均値を、ドライバが正面を向いている場合の眼の位置（イニシャル位置）に設定することが提案されている（例えば、特許文献２参照）。
【０００６】
また、ドライバが運転姿勢を保ち、正面遠方を向いた状態で、所定のスイッチを押すことにより、イニシャル方向（基準方向）を設定することが提案されている（例えば、特許文献３参照）。
【０００７】
【特許文献１】特開２００４−３３４７８６号公報
【特許文献２】特開２００４−１３０９４０号公報
【特許文献３】特許２８２２５０８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献２に記載の発明では、先行車がない場合、先行車との車間距離を検出できないため、イニシャル位置を設定することができない。また、特許文献１に記載の発明では、毎回、所定のサンプル数またはサンプリング時間以上、眼の位置データを測定する必要があり、イニシャル位置を設定するまでに時間を要してしまう。
【０００９】
また、特許文献３に記載の発明では、イニシャル方向を設定するために、ドライバが所定の操作を行う必要があり、イニシャル方向の設定が忘れられたり、実際に運転中に正面遠方を向いている状態と異なる状態において、イニシャル方向が設定されてしまう可能性がある。
【００１０】
本発明は、このような状況に鑑みてなされたものであり、イニシャル方向を迅速かつ確実に求めることができるようにするものである。
【課題を解決するための手段】
【００１１】
本発明の一側面の情報処理装置は、運転席に座っているドライバを撮影した画像である入力画像におけるドライバの顔の位置である検出位置を検出する位置検出手段と、入力画像におけるドライバの顔の位置と、ドライバが運転中に正面を向いている場合の顔の向きであるイニシャル方向とが予め関連づけられているデータである変換データから、検出位置に対応するイニシャル方向を取得するイニシャル方向取得手段とを備える。
【００１２】
本発明の一側面の情報処理装置においては、運転席に座っているドライバを撮影した画像である入力画像におけるドライバの顔の位置である検出位置が検出され、入力画像におけるドライバの顔の位置と、ドライバが運転中に正面を向いている場合の顔の向きであるイニシャル方向とが予め関連づけられているデータである変換データから、検出位置に対応するイニシャル方向が取得される。
【００１３】
従って、入力画像におけるドライバの顔の位置に基づいて、ドライバが運転中に正面を向いている場合の顔の向きを求めることができる。また、ドライバが運転中に正面を向いている場合の顔の向きを、迅速かつ確実に求めることができる。
【００１４】
この位置検出手段、イニシャル方向取得手段は、例えば、CPU（Central Processing Unit）により構成される。
【００１５】
この情報処理装置は、入力画像に基づいて検出されたドライバの顔の向きを、イニシャル方向を基準とする向きに変換する変換手段をさらに備えることができる。
【００１６】
これにより、ドライバが運転中に正面を向いている場合の顔の向きを基準とするドライバの顔の向きを検出することができる。
【００１７】
この変換手段は、例えば、CPUにより構成される。
【００１８】
この情報処理装置は、入力画像に基づいて前記ドライバの顔の向きを検出する顔向き検出手段をさらに備えることができる。
【００１９】
これにより、ドライバの顔の向きとイニシャル方向の両方を検出することができる。
【００２０】
この顔向き検出手段は、例えば、CPUにより構成される。また、この顔向き検出手段および顔検出手段は、例えば、顔の向きを検出する専用の装置により構成するようにすることもできる。
【００２１】
この位置検出手段には、複数の方向から運転席に座っているドライバを撮影した複数の入力画像について検出位置を検出させ、イニシャル方向取得手段には、それぞれの入力画像に対応する変換データから、それぞれの入力画像における検出位置に対応するイニシャル方向を取得させることができる。
【００２２】
これにより、イニシャル方向を検出できる範囲を広げることができる。
【００２３】
本発明の一側面の情報処理方法、プログラム、または、記録媒体に記録されているプログラムは、運転席に座っているドライバを撮影した画像である入力画像におけるドライバの顔の位置である検出位置を検出する位置検出ステップと、入力画像におけるドライバの顔の位置と、ドライバが運転中に正面を向いている場合の顔の向きであるイニシャル方向とが予め関連づけられているデータである変換データからの、検出位置に対応するイニシャル方向の取得を制御するイニシャル方向取得制御ステップとを含む。
【００２４】
本発明の一側面の情報処理方法、プログラム、または、記録媒体に記録されているプログラムにおいては、運転席に座っているドライバを撮影した画像である入力画像におけるドライバの顔の位置である検出位置が検出され、入力画像におけるドライバの顔の位置と、ドライバが運転中に正面を向いている場合の顔の向きであるイニシャル方向とが予め関連づけられているデータである変換データからの、検出位置に対応するイニシャル方向の取得が制御される。
【００２５】
従って、入力画像におけるドライバの顔の位置に基づいて、ドライバが運転中に正面を向いている場合の顔の向きを求めることができる。また、ドライバが運転中に正面を向いている場合の顔の向きを、迅速かつ確実に求めることができる。
【００２６】
この位置検出ステップは、例えば、運転席に座っているドライバを撮影した画像である入力画像におけるドライバの顔の位置である検出位置をCPUにより検出する位置検出ステップにより構成され、このイニシャル方向制御ステップは、例えば、入力画像におけるドライバの顔の位置と、ドライバが運転中に正面を向いている場合の顔の向きであるイニシャル方向とが予め関連づけられているデータである変換データからの、検出位置に対応するイニシャル方向の取得をCPUにより制御するイニシャル方向取得制御ステップにより構成される。
【発明の効果】
【００２７】
以上のように、本発明の一側面によれば、入力画像におけるドライバの顔の位置に基づいて、ドライバが運転中に正面を向いている場合の顔の向きを求めることができる。また、本発明の一側面によれば、ドライバが運転中に正面を向いている場合の顔の向きを、迅速かつ確実に求めることができる。
【発明を実施するための最良の形態】
【００２８】
以下、図を参照して、本発明の実施の形態について説明する。
【００２９】
図１は、本発明を適用した顔向き検出装置の第１の実施の形態を示すブロック図である。顔向き検出装置１は、カメラ１１、顔検出部１２、イニシャル方向取得部１３、顔向き検出部１４、および、記憶部１５を含むように構成される。
【００３０】
カメラ１１は、顔向き検出装置１が設けられている車両の運転席に座っているドライバ２の顔を撮影した画像（以下、入力画像と称する）を顔検出部１２および顔向き検出部１４に供給する。
【００３１】
なお、カメラ１１は、ドライバの体格および姿勢などの違いに関わらず、運転中のドライバ２の顔をできる限り撮影することができる位置に設置されることが望ましい。例えば、カメラ１１は、車両内のセンタミラー（ルームミラー）の根元付近（センタミラーが車両に取り付けられているあたり）に設置され、前方左斜め上方向からドライバ２を撮影する。
【００３２】
顔検出部１２は、所定の手法に基づいて、入力画像の中からドライバ２の顔の位置を検出し、検出結果を示す情報をイニシャル方向取得部１３および顔向き検出部１４に供給する。なお、顔検出部１２が、入力画像の中からドライバ２の顔の位置を検出する手法は、特定の手法に限定されるものではなく、顔の位置をより迅速かつ正確に検出できる手法が望ましい。
【００３３】
イニシャル方向取得部１３は、図２を参照して後述するように、記憶部１５に記憶されている、入力画像におけるドライバの顔の位置と、ドライバが運転中に正面を向いている場合の顔の向きであるイニシャル方向とが予め関連づけられている変換テーブルから、顔検出部１２により検出された、入力画像におけるドライバ２の顔の位置に対応するイニシャル方向を取得する。イニシャル方向取得部１３は、取得したイニシャル方向を示す情報を、顔向き検出装置１の後段の装置に供給する。なお、変換テーブルについては、図４乃至図６を参照して後述する。また、以下では、イニシャル方向は、カメラ１１から見た顔の向き、すなわち、入力画像における顔の向きにより表されるものとする。
【００３４】
顔向き検出部１４は、所定の手法を用いて、カメラ１１から見た、すなわち、入力画像におけるドライバ２の顔の向きを検出する。顔向き検出部１４は、検出結果を示す情報を、顔向き検出装置１の後段の装置に供給する。なお、顔向き検出部１４が、ドライバ２の顔の向きを検出する手法は、特定の手法に限定されるものではなく、顔の向きをより迅速かつ正確に検出できる手法が望ましい。例えば、顔向きを検出する手法の詳細については、特許２９８２２０４号公報などに、その詳細が開示されている。
【００３５】
顔向き検出装置１の後段の装置は、例えば、イニシャル方向取得部１３からの情報、および、顔向き検出部１４からの検出結果に基づいて、イニシャル方向を基準とするドライバ２の顔の向き、すなわち、ドライバ２のイニシャル方向を基準とする顔の向きを検出し、検出結果に基づいて、所定の処理（例えば、ドライバ２の脇見の検出、車両の制御など）を行う。
【００３６】
次に、図２のフローチャートを参照して、顔向き検出装置１により実行される顔向き検出処理を説明する。なお、この処理は、例えば、顔向き検出装置１が設けられている車両のアクセサリー（ACC）用の電源からの顔向き検出装置１への供給が開始されたとき、開始される。
【００３７】
ステップＳ１において、カメラ１１は、運転席周辺の撮影を開始する。すなわち、カメラ１１により運転席に座っているドライバ２の顔の撮影が開始される。
【００３８】
ステップＳ２において、顔検出部１２および顔向き検出部１４は、カメラ１１により撮影された入力画像を取得する。
【００３９】
ステップＳ３において、顔検出部１２は、ドライバ２の顔の位置を検出する。具体的には、まず、顔検出部１２は、所定の手法を用いて、入力画像の中からドライバ２の顔が写っている顔領域を検出する。図３は、入力画像の例を示しており、ドライバ２の顔が写っている顔領域３１が検出される。次に、顔検出部１２は、検出した顔領域の中心点をドライバ２の顔の位置として検出する。図３の例においては、顔領域３１の中心点３２が、ドライバの顔の位置として検出される。
【００４０】
ステップＳ４において、顔検出部１２は、ステップＳ３の処理において、ドライバ２の顔が検出できたか否かを判定する。ドライバ２の顔が検出できたと判定された場合、処理はステップＳ５に進む。
【００４１】
ステップＳ５において、イニシャル方向取得部１３は、イニシャル方向を取得する。具体的には、顔検出部１２は、ドライバ２の顔が検出できたと判定した場合、検出結果を示す情報を、イニシャル方向取得部１３に供給する。イニシャル方向取得部１３は、記憶部１５に記憶されている変換テーブルを読み出す。ここで、図４乃至図６を参照して、変換テーブルについて説明する。
【００４２】
図４は、ドライバ２およびカメラ１１を上から見た図であり、ドライバ２とカメラ１１との位置関係を示している。なお、図中、矢印４１は、車両の前方の方向を示し、位置４２および４３は、ドライバ２の頭部の位置を示している。また、図４の例において、カメラ１１は、車両内のセンタミラー（ルームミラー）の根元、すなわち、前方左斜め上方向からドライバ２を撮影する位置に設置されているものとする。
【００４３】
一般的に、運転中にドライバが正面を向いている場合の顔の位置は、ドライバ、または、ドライビングポジションの違い（例えば、座席の前後の位置、背もたれの角度などによる運転姿勢の違い）により、車両の前後および上下方向に変化する。一方、一般的に運転席は左右方向に移動しないため、ドライバまたはドライビングポジションが違っても、運転中にドライバが正面を向いている場合の顔の位置は、左右方向にはほとんど変化しない。すなわち、運転中にドライバが正面を向いている場合の顔の位置は、ドライバまたはドライビングポジションの違いにより、車両の前後および上下方向の２次元の平面上を変化すると考えられる。
【００４４】
また、一般的に、ドライバまたはドライビングポジションが違っても、運転中にドライバが正面を向いている場合の車両に対する顔の向きは、ほぼ同様であり、図４の例においては、ほぼ矢印４１の方向となる。従って、ドライバまたはドライビングポジションが違っても、ドライバの顔の位置が同じであれば、運転中にドライバが正面を向いている場合のカメラ１１から見たドライバの顔の向き、すなわち、イニシャル方向はほぼ同じになり、ドライバの顔の位置が異なれば、イニシャル方向はほぼ異なると言える。すなわち、カメラ１１に対するドライバの顔の位置と、イニシャル方向とはほぼ１対１に対応すると言える。
【００４５】
例えば、ドライバ２が矢印４１の方向を向いている場合、ドライバ２の頭部が位置４２にあるとき、カメラ１１から見たドライバ２の左右方向（水平方向）の顔の向きを示す角度をθ１、ドライバ２の頭部が位置４３にあるとき、カメラ１１から見たドライバ２の左右方向（水平方向）の顔の向きを示す角度をθ２とすると、θ１＜θ２となる。すなわち、運転中にドライバ２が正面を向いている場合、ドライバ２の顔の位置が前方にあるほど、例えば、ドライバ２のドライビングポジションが前方にあるほど、左方向の傾き（角度）が大きくなり、ドライバ２の顔の位置が後方にあるほど、例えば、ドライバ２のドライビングポジションが後方にあるほど、左方向の傾き（角度）が小さくなる。
【００４６】
また、図示はしないが、同様に、運転中にドライバ２が正面を向いている場合、カメラ１１から見たドライバ２の顔の向きは、ドライバ２の顔の位置が下にあるほど、例えば、ドライバ２の座高が低いほど、下方向の傾き（角度）が大きくなり、ドライバ２の顔の位置が上にあるほど、例えば、ドライバ２の座高が高いほど、下方向の傾き（角度）が小さくなる。
【００４７】
上述したように、運転中のカメラ１１に対するドライバの顔の位置は、車両の前後および上下方向の２次元の平面上を移動し、かつ、カメラ１１に対するドライバの顔の位置と、イニシャル方向とはほぼ１対１に対応するので、入力画像におけるドライバの顔の位置と、イニシャル方向とはほぼ１対１に対応する。従って、入力画像におけるドライバの顔の位置が分かれば、イニシャル方向をほぼ正確に推定することができる。
【００４８】
図５は、運転中にドライバが正面を向いている場合の顔の向きと、入力画像におけるドライバの顔の位置との関係を模式的に表した図である。なお、図５においては、入力画像が縦３×横４の合計１２の領域に分割されている。例えば、ドライバの顔の位置が左下隅の領域内である場合、入力画像におけるドライバの顔の向き（カメラ１１から見たドライバの顔の向き、すなわち、イニシャル方向）は、左右方向については、ドライバの顔の位置が左上隅の領域内である場合とほぼ同じ方向となり、上下方向については、ドライバの顔の位置が右下隅の領域内である場合とほぼ同じ方向となる。同様に、ドライバの顔の位置が右上隅の領域内である場合、入力画像におけるドライバの顔の向きは、左右方向については、ドライバの顔の位置が右下隅の領域内である場合とほぼ同じ方向となり、上下方向については、ドライバの顔の位置が入力画像の左上隅の領域内である場合とほぼ同じ方向となる。
【００４９】
図６は、変換テーブルの例を示す図である。変換テーブルは、ドライバまたはドライビングポジションの違いに関わらず、入力画像におけるドライバの顔の位置とイニシャル方向とがほぼ１対１に対応するという性質に基づいて、入力画像におけるドライバの顔の位置とイニシャル方向とが関連づけられたデータである。図６においては、図５の場合と同様に、入力画像が縦３×横４の合計１２の領域に分割され、各領域に対してイニシャル方向が１つずつ対応づけられている。例えば、図６の変換テーブルにおいては、入力画像の左上隅の領域に対応するイニシャル方向は、左方向４５°、下方向０°であり、入力画像の右下隅の領域に対応するイニシャル方向は、左方向３０°、下方向１０°である。
【００５０】
なお、各車種、および、想定されるカメラ１１の設置位置ごとに、事前に計測などを行うことにより、各車種および設置位置に応じた変換テーブルが個別に作成され、顔向き検出装置１においては、カメラ１１が設置される車種および設置位置に対応した変換テーブルが用いられる。
【００５１】
図２に戻り、ステップＳ５において、イニシャル方向取得部１３は、変換テーブルから、顔検出部１２により検出されたドライバの顔の位置に対応するイニシャル方向を取得する。
【００５２】
ステップＳ６において、イニシャル方向取得部１３は、イニシャル方向を出力する。具体的には、イニシャル方向取得部１３は、イニシャル方向を示す情報を、顔向き検出装置１の後段の装置に出力する。
【００５３】
ステップＳ７において、顔向き検出部１４は、ドライバ２の顔の向きを検出する。具体的には、顔検出部１２は、ドライバ２の顔が検出できたと判定した場合、検出結果を示す情報を顔向き検出部１４に供給する。顔向き検出部１４は、所定の手法を用いて、入力画像、および、顔検出部１２により検出されたドライバ２の顔の位置に基づいて、カメラ１１から見たドライバの顔の向きを検出する。
【００５４】
ステップＳ８において、顔向き検出部１４は、ステップＳ７の処理において、ドライバ２の顔の向きが検出できたか否かを判定する。ドライバ２の顔の向きが検出できたと判定された場合、処理はステップＳ９に進む。
【００５５】
ステップＳ９において、顔向き検出部１４は、ドライバ２の顔の向きを出力する。具体的には、顔向き検出部１４は、検出したドライバ２の顔の向きの検出結果を示す情報を、顔向き検出装置１の後段の装置に出力する。その後、処理はステップＳ１１に進む。
【００５６】
ステップＳ８において、ドライバ２の顔の向きが検出できなかったと判定された場合、処理はステップＳ１０に進む。
【００５７】
また、ステップＳ４において、顔検出部１２は、ドライバ２の顔が検出できなかったと判定した場合、処理はステップＳ１０に進む。
【００５８】
ステップＳ１０において、顔向き検出部１４は、検出エラーを出力する。具体的には、顔検出部１２は、ドライバ２の顔を検出できなかった場合、ドライバ２の顔を検出できなかったことを示す情報を、イニシャル方向取得部１３および顔向き検出部１４に供給する。顔向き検出部１４は、ドライバ２の顔の向きの検出に失敗したことを示す検出エラーを通知する情報を、顔向き検出装置１の後段の装置に出力する。
【００５９】
ステップＳ１１において、顔向き検出装置１は、処理を終了するか否かを判定する。処理を終了しないと判定された場合、処理はステップＳ２に戻り、ステップＳ１１において、処理が終了すると判定されるまで、ステップＳ２乃至Ｓ１１の処理が繰返し実行される。
【００６０】
ステップＳ１１において、例えば、車両のアクセサリー（ACC）用の電源の供給が停止されたとき、顔向き検出装置１は、処理を終了すると判定し、顔向き検出処理は終了する。
【００６１】
このように、ドライバまたはドライビングポジションなどが異なっても、そのドライバおよびドライビングポジションに対応したイニシャル方向が、ほぼ正確に求められる。また、ドライバが運転席に座った状態において、ドライバの顔の位置を検出するだけで、運転を開始する前に、迅速にイニシャル方向が求められる。さらに、イニシャル方向のみを求めるのであれば、ドライバの認識を行ったり、ドライバの顔の各器官を認識したりする必要がないため、処理を軽くすることができ、また、入力画像の解像度を低く抑えることができる。また、入力画像の画質が少々悪くても、イニシャル方向を求めることが可能である。さらに、イニシャル方向を求めるための特別な対応をドライバが行うことなく、自動的に確実にイニシャル方向を求めることができる。
【００６２】
なお、変換テーブルをより細かな領域に分割することにより、イニシャル方向の精度を向上させることができる。
【００６３】
次に、図７乃至図９を参照して、本発明の第２の実施の形態について説明する。図７は、本発明の第２の実施の形態である顔向き検出装置１０１の機能の構成の例を示すブロック図である。顔向き検出装置１０１は、後述するように、イニシャル方向を基準とするドライバ２の顔の向きを、後段の装置に出力することを特徴とする。顔向き検出装置１０１は、カメラ１１、顔検出部１２、イニシャル方向取得部１３、顔向き検出部１４、記憶部１５、および、変換部１１１を含むように構成される。
【００６４】
なお、図中、図１と対応する部分については同じ符号を付してあり、処理が同じ部分に関しては、その説明は繰り返しになるので省略する。
【００６５】
顔向き検出装置１０１は、図１の顔向き検出装置１と比べて、カメラ１１、顔検出部１２、イニシャル方向取得部１３、顔向き検出部１４、および、記憶部１５を含む点で一致し、変換部１１１を含む点で異なる。
【００６６】
変換部１１１は、イニシャル方向を示す情報をイニシャル方向取得部１３から取得し、ドライバ２の顔の向きの検出結果を示す情報を顔向き検出部１４から取得する。変換部１１１は、顔向き検出部１４により検出された、カメラ１１から見たドライバ２の顔の向きを、イニシャル方向を基準とする向きに変換する。変換部１１１は、変換した顔の向きを示す情報を、顔向き検出装置１０１の後段の装置に出力する。
【００６７】
次に、図８のフローチャートを参照して、顔向き検出装置１０１により実行される顔向き検出処理を説明する。
【００６８】
ステップＳ１０１乃至Ｓ１０５の処理は、図２のステップＳ１乃至Ｓ５の処理と同様であり、その説明は繰り返しになるので省略する。
【００６９】
ステップＳ１０６において、図２のステップＳ７の処理と同様に、カメラ１１から見たドライバ２の顔の向きが検出される。
【００７０】
ステップＳ１０７において、図２のステップＳ８の処理と同様に、ドライバ２の顔の向きが検出できたか否かが判定される。ドライバ２の顔の向きが検出できたと判定された場合、処理はステップＳ１０８に進む。
【００７１】
ステップＳ１０８において、変換部１１１は、検出された顔の向きを変換する。具体的には、イニシャル方向取得部１３は、イニシャル方向を示す情報を変換部１１１に供給する。顔向き検出部１４は、ドライバ２の顔の向きの検出結果を示す情報を変換部１１１に供給する。変換部１１１は、顔向き検出部１４により検出された、カメラ１１から見たドライバ２の顔の向きを、イニシャル方向を基準とする向きに変換する。
【００７２】
ここで、図９を参照して、変換部１１１による変換方法について説明する。なお、ここでは、説明を簡単にするために左右方向の顔の向きについてのみ考える。顔１３１の向きが、ドライバ２が正面を向いている場合におけるカメラ１１から見たドライバの顔の向き、すなわち、イニシャル方向を示し、顔１３２の向きが、顔向き検出部１４により検出されたドライバ２の顔の向きを示しているとした場合、イニシャル方向を基準とするドライバ２の顔の向きは、顔１３２の向きから顔１３１の向きを引いた向き（角度）、すなわち、顔１３３の向きとなる。例えば、イニシャル方向を左方向に３０°、顔向き検出部１４により検出されたドライバ２の顔の向きを右方向に３０°とした場合、イニシャル方向を基準とするドライバ２の顔の向きは、右方向６０°（＝右方向３０°−左方向３０°）となる。
【００７３】
なお、上下方向についても同様の方法により、イニシャル方向を基準とするドライバ２の顔の向きが求められる。
【００７４】
ステップＳ１０９において、変換部１１１は、ドライバ２の顔の向きを出力する。具体的には、変換部１１１は、イニシャル方向を基準とするドライバの顔の向きを示す情報を、顔向き検出装置１０１の後段の装置に出力する。その後、処理はステップＳ１１０に進む。
【００７５】
ステップＳ１０４において、ドライバ２の顔が検出できなかったと判定された場合、または、ステップＳ１０７において、ドライバ２の顔の向きが検出できなかったと判定された場合、処理はステップＳ１１０に進む。
【００７６】
ステップＳ１１０において、変換部１１１は、検出エラーを出力する。具体的には、顔検出部１２は、ドライバ２の顔を検出できなかった場合、ドライバ２の顔を検出できなかったことを示す情報を、イニシャル方向取得部１３および顔向き検出部１４に供給する。また、顔向き検出部１４は、ドライバ２の顔の向きを検出できなかった場合、ドライバ２の顔の向きを検出できなかったことを示す情報を、変換部１１１に供給する。変換部１１１は、ドライバ２の顔の向きが検出されなかったことを示す情報を、顔向き検出装置１０１の後段の装置に出力する。
【００７７】
ステップＳ１１１において、上述した図２のステップＳ１１の処理と同様に、処理を終了するか否かが判定される。処理を終了しないと判定された場合、処理はステップＳ１０２に戻り、ステップＳ１１１において、処理を終了すると判定されるまで、ステップＳ１０２乃至Ｓ１１１の処理が繰返し実行される。
【００７８】
ステップＳ１１１において、処理を終了すると判定された場合、顔向き検出処理は終了する。
【００７９】
このように、顔向き検出装置１０１の後段の装置に、イニシャル方向を基準とするドライバ２の顔の向きが出力されるようになる。
【００８０】
なお、顔向き検出装置１０１の後段の装置に、イニシャル方向も合わせて出力するようにしてもよい。
【００８１】
次に、図１０乃至図１２を参照して、本発明の第３の実施の形態について説明する。図１０は、本発明の第３の実施の形態である顔向き検出装置２０１の機能の構成の例を示すブロック図である。顔向き検出装置２０１は、複数台のカメラを用いてドライバ２の顔の向きを検出することを特徴とする。顔向き検出装置２０１は、カメラ１１，２１１、顔検出部１２、イニシャル方向取得部１３、顔向き検出部１４、記憶部１５、および、変換部１１１を含むように構成される。
【００８２】
なお、図中、図７と対応する部分については同じ符号を付してあり、処理が同じ部分に関しては、その説明は繰り返しになるので省略する。
【００８３】
顔向き検出装置２０１は、図７の顔向き検出装置１０１と比べて、カメラ１１、顔検出部１２、イニシャル方向取得部１３、顔向き検出部１４、記憶部１５、および、変換部１１１を含む点で一致し、カメラ２１１を含む点で異なる。
【００８４】
カメラ２１１は、カメラ１１とは異なる位置に設置され、カメラ１１とは異なる方向から、顔向き検出装置２０１が設けられている車両の運転席に座っているドライバ２の顔を撮影した画像（入力画像）を顔検出部１２および顔向き検出部１４に供給する。なお、以下、カメラ１１により撮影された画像とカメラ２１１により撮影された画像を区別する必要がある場合、カメラ１１により撮影された画像を第１の入力画像といい、カメラ２１１により撮影された画像を第２の入力画像という。
【００８５】
図１１は、カメラ１１およびカメラ２１１の設置位置の例を示す。カメラ１１は、例えば、車両内のセンタミラーの根元付近に設置され、前方左斜め上方向からドライバ２の顔を撮影する。また、カメラ２１１は、運転席前方のダッシュボード（インストルメントパネル）上部右端付近に設置され、前方右斜め下方向からドライバ２の顔を撮影する。これにより、ドライバ２の顔を撮影できる範囲が広がり、ドライバの顔の向きを検出できる範囲が広がる。例えば、ドライバ２が、カメラ１１に対して９０°右の方向に顔を向け、カメラ１１によりドライバ２の顔が撮影できない場合においても、カメラ２１１により、ドライバ２の顔の向きを撮影でき、ドライバ２の顔の向きを検出することができる。
【００８６】
なお、記憶部１５には、第１の入力画像に対応した変換テーブル、すなわち、第１の入力画像におけるドライバ２の顔の位置と、カメラ１１から見たイニシャル方向（以下、第１のイニシャル方向とも称する）とを関連づけた変換テーブル（以下、第１の変換テーブルとも称する）、および、第２の入力画像に対応した変換テーブル、すなわち、第２の入力画像におけるドライバ２の顔の位置と、カメラ２１１から見たイニシャル方向（以下、第２のイニシャル方向とも称する）とを関連づけた変換テーブル（以下、第２の変換テーブルとも称する）が記憶される。イニシャル方向取得部１３は、第１の入力画像におけるドライバ２の顔の位置および第１の変換テーブル、または、第２の入力画像におけるドライバ２の顔の位置および第２の変換テーブルに基づいて、イニシャル方向を検出する。
【００８７】
次に、図１２のフローチャートを参照して、顔向き検出装置２０１により実行される顔向き検出処理を説明する。なお、この処理は、例えば、顔向き検出装置２０１が設けられている車両のアクセサリー（ACC）用の電源からの顔向き検出装置２０１への供給が開始されたとき、開始される。
【００８８】
ステップＳ２０１において、カメラ１１および２１１は、運転席周辺の撮影を開始する。すなわち、カメラ１１および２１１により運転席に座っているドライバ２の顔の撮影が開始される。
【００８９】
ステップＳ２０２において、顔検出部１２および顔向き検出部１４は、カメラ１１および２１１により撮影された入力画像（第１および第２の入力画像）を取得する。
【００９０】
ステップＳ２０３において、顔検出部１２は、上述した図２のステップＳ３の処理と同様に、ドライバ２の顔の位置を検出する。ただし、図２のステップＳ３の処理と異なり、顔検出部１２は、第１および第２の２つの入力画像におけるドライバ２の顔の位置を検出する。
【００９１】
ステップＳ２０４において、顔検出部１２は、ドライバ２の顔の位置を検出できたか否かを判定する。顔検出部１２は、ステップＳ２０３において、第１の入力画像または第２の入力画像のうち少なくとも一方におけるドライバ２の顔の位置を検出できた場合、ドライバ２の顔の位置を検出できたと判定し、処理はステップＳ２０５に進む。
【００９２】
ステップＳ２０５において、上述した図２のステップＳ５の処理と同様に、イニシャル方向が取得される。ただし、ステップＳ５の処理と異なり、第１および第２の入力画像の両方において、ドライバ２の顔の位置が検出されている場合、それぞれの入力画像に対応する変換テーブルから、それぞれの入力画像におけるドライバ２の顔の位置に対応するイニシャル方向が取得される。また、第１または第２の入力画像の一方のみにおいて、ドライバ２の顔の位置が検出されている場合、ドライバ２の顔の位置が検出された入力画像に対応する変換テーブルから、その入力画像におけるドライバ２の顔の位置に対応するイニシャル方向が取得される。
【００９３】
ステップＳ２０６において、上述した図２のステップＳ７の処理と同様に、ドライバ２の顔の向きが検出される。ただし、ステップＳ７の処理と異なり、第１および第２の入力画像の両方において、ドライバ２の顔の位置が検出されている場合、それぞれの入力画像に基づいて、ドライバ２の顔の向きが検出される。また、第１または第２の入力画像の一方のみにおいて、ドライバ２の顔の位置が検出されている場合、ドライバ２の顔の位置が検出された入力画像に基づいて、ドライバ２の顔の向きが検出される。
【００９４】
ステップＳ２０７において、顔向き検出部１４は、ドライバ２の顔の向きが検出できたか否かを判定する。顔向き検出部１４は、ステップＳ２０６において、第１または第２の入力画像のうち少なくとも一方の入力画像に基づいて、ドライバ２の顔の向きが検出できた場合、ドライバ２の顔の向きを検出できたと判定し、処理はステップＳ２０８に進む。
【００９５】
ステップＳ２０８において、変換部１１１は、検出された顔の向きを変換する。具体的には、イニシャル方向取得部１３は、イニシャル方向の検出結果を示す情報を変換部１１１に供給する。顔向き検出部１４は、ドライバ２の顔の向きの検出結果を示す情報を変換部１１１に供給する。変換部１１１は、上述した図８のステップＳ１０８の処理と同様に、顔向き検出部１４により検出されたドライバ２の顔の向きを、イニシャル方向を基準とする向きに変換する。
【００９６】
ただし、第１の入力画像に基づくドライバ２の顔の向き、および、第２の入力画像に基づくドライバ２の顔の向きの両方ともが検出されている場合、どちらか一方の入力画像に基づく顔の向きが選択されて、選択された顔の向きが、イニシャル方向を基準とする向きに変換される。例えば、カメラ１１またはカメラ２１１から見て、より正面に近い方の顔の向きが選択される。
【００９７】
ステップＳ２０９において、上述した図８のステップＳ１０９の処理と同様に、イニシャル方向を基準とするドライバの顔の向きを示す情報が、顔向き検出装置２０１の後段の装置に出力される。その後、処理はステップＳ２１１に進む。
【００９８】
ステップＳ２０４において、ドライバ２の顔が検出できなかったと判定された場合、または、ステップＳ２０７において、ドライバ２の顔の向きが検出できなかったと判定された場合、処理はステップＳ２１０に進む。
【００９９】
ステップＳ２１０において、上述した図８のステップＳ１１０の処理と同様に、検出エラーが出力される。
【０１００】
ステップＳ２１１において、上述した図２のステップＳ１１の処理と同様に、処理を終了するか否かが判定される。処理を終了しないと判定された場合、処理はステップＳ２０２に戻り、ステップＳ２１１において、処理を終了すると判定されるまで、ステップＳ２０２乃至Ｓ２１１の処理が繰返し実行される。
【０１０１】
ステップＳ２１１において、処理を終了すると判定された場合、顔向き検出処理は終了する。
【０１０２】
このように、ドライバ２の顔の向きの検出範囲を広げることができる。
【０１０３】
なお、以上の説明では、カメラの数を２台とする例を示したが、カメラを３台以上設けるようにしてもよい。この場合、カメラの数が２台の場合と同様に、それぞれのカメラにより撮影された入力画像に対応する変換テーブルが用いられる。
【０１０４】
また、顔向き検出装置２０１の後段の装置に、イニシャル方向も合わせて出力するようにしてもよいし、顔向き検出装置１と同様に、イニシャル方向、および、カメラ１１またはカメラ２１１から見たドライバ２の顔の向きを出力するようにしてもよい。
【０１０５】
次に、図１３乃至図２２を参照して、本発明の第４の実施の形態について説明する。図１３は、本発明の第４の実施の形態である顔向き検出装置３０１の機能の構成の例を示すブロック図である。顔向き検出装置３０１は、予めイニシャル方向が登録された変換テーブルを用いずに、学習処理によりイニシャル方向の登録または消去を行うことにより、変換テーブルを適宜更新することを特徴とする。顔向き検出装置３０１は、カメラ１１、顔検出部１２、顔向き検出部１４、記憶部１５、変換部１１１、イニシャル方向取得部３１１、正面向き判定部３１２、イニシャル方向検出部３１３、および、変換テーブル更新部３１４を含むように構成される。
【０１０６】
なお、図中、図７と対応する部分については同じ符号を付してあり、処理が同じ部分に関しては、その説明は繰り返しになるので省略する。
【０１０７】
顔向き検出装置３０１は、図７の顔向き検出装置１０１と比べて、カメラ１１、顔検出部１２、顔向き検出部１４、記憶部１５、および、変換部１１１を含む点で一致し、イニシャル方向取得部３１１、正面向き判定部３１２、イニシャル方向検出部３１３、および、変換テーブル更新部３１４を含み、イニシャル方向取得部１３を含まない点で異なる。
【０１０８】
イニシャル方向取得部３１１は、図７のイニシャル方向取得部１３と同様に、記憶部１５に記憶されている変換テーブルから、顔検出部１２により検出されたドライバ２の顔の位置に対応するイニシャル方向を取得する。イニシャル方向取得部３１１は、取得したイニシャル方向を示す情報を変換部１１１に供給する。
【０１０９】
また、イニシャル方向取得部３１１は、顔検出部１２により検出されたドライバ２の顔の位置に対応するイニシャル方向が変換テーブルに登録されていない場合、イニシャル方向が登録されていないことを示す情報を、正面向き判定部３１２およびイニシャル方向検出部３１３に供給する。
【０１１０】
正面向き判定部３１２は、ドライバ２の顔の向きの検出結果を示す情報を顔向き検出部１４から取得する。また、正面向き判定部３１２は、顔向き検出装置３０１が設けられている車両の各種の動作を制御する図示せぬ車両制御部から、車両の各種の状態を示す情報を取得する。正面向き判定部３１２は、図２２を参照して後述するように、ドライバ２の顔の向きの検出結果、および、車両の状態に基づいて、ドライバ２が正面（車両の前方の方向）を向いているか否かを判定し、判定結果を示す情報をイニシャル方向検出部３１３に供給する。
【０１１１】
イニシャル方向検出部３１３は、ドライバ２の顔の位置の検出結果を示す情報を顔検出部１２から取得する。また、イニシャル方向検出部３１３は、ドライバ２の顔の向きの検出結果を示す情報を顔向き検出部１４から取得する。イニシャル方向検出部３１３は、顔検出部１２により検出されたドライバ２の顔の位置に対応するイニシャル方向が、記憶部１５に記憶されている変換テーブルに登録されていない場合、図２２を参照して後述するように、正面向き判定部３１２によりドライバ２が正面を向いていると判定された場合におけるドライバ２の顔の向きの統計をとることにより、イニシャル方向を検出する。イニシャル方向検出部３１３は、検出結果を示す情報を変換テーブル更新部３１４に供給する。
【０１１２】
変換テーブル更新部３１４は、図１６乃至図２１を参照して後述するように、顔検出部１２により検出された、入力画像におけるドライバ２の顔の位置、および、イニシャル方向検出部３１３により検出されたイニシャル方向に基づいて、変換テーブルを更新する。また、変換テーブル更新部３１４は、変換テーブルの更新結果を示す情報をイニシャル方向取得部３１１に供給する。
【０１１３】
次に、図１４のフローチャートを参照して、顔向き検出装置３０１により実行される顔向き検出処理を説明する。
【０１１４】
なお、ステップＳ３０１乃至Ｓ３０４の処理は、上述した図８のステップＳ１０１乃至Ｓ１０４の処理と同様であり、その説明は繰り返しになるので省略する。
【０１１５】
ステップＳ３０５において、上述した図８のステップＳ１０６の処理と同様に、ドライバ２の顔の向きが検出される。
【０１１６】
ステップＳ３０６において、上述した図８のステップＳ１０７の処理と同様に、ドライバ２の顔の向きが検出できたか否かが判定され、ドライバ２の顔の向きが検出できたと判定された場合、処理はステップＳ３０７に進む。
【０１１７】
ステップＳ３０７において、イニシャル方向取得部３１１は、ドライバ２の顔の位置に対するイニシャル方向が登録されているか否かを判定する。具体的には、イニシャル方向取得部３１１は、記憶部１５に記憶されている変換テーブルを読み出す。
【０１１８】
図１５は、変換テーブルの例を示す図である。なお、図１５の変換テーブルにおいて、左方向および下方向の角度が示されている領域は、すでにイニシャル方向が登録されている領域である。例えば、右上隅の領域に対応するイニシャル方向は、左方向３０°および下方向０°となる。また、斜線で示される領域は、イニシャル方向がまだ学習されておらず、イニシャル方向が未登録の領域である。
【０１１９】
イニシャル方向取得部３１１は、顔検出部１２により検出されたドライバの顔の位置に対応するイニシャル方向が変換テーブルに登録されていない場合、例えば、図１５の例において、検出されたドライバ２の顔の位置が斜線で示される領域内である場合、ドライバ２の顔の位置に対するイニシャル方向が登録されていないと判定し、処理はステップＳ３０８に進む。
【０１２０】
ステップＳ３０８において、顔向き検出装置３０１は、変換テーブル学習処理を実行する。変換テーブル学習処理の詳細は、図１６を参照して後述するが、この処理により、変換テーブルの学習が行われ、必要に応じて、変換テーブルが更新される。
【０１２１】
ステップＳ３０９において、ステップＳ３０７の処理と同様に、ドライバ２の顔の位置に対するイニシャル方向が登録されているか否かが判定される。ドライバ２の顔の位置に対するイニシャル方向が登録されていると判定された場合、すなわち、ステップＳ３０８の変換テーブル学習処理により、検出されたドライバ２の顔の位置に対するイニシャル方向が変換テーブルに新たに登録された場合、処理はステップＳ３１０に進む。
【０１２２】
一方、Ｓ３０７において、顔検出部１２により検出されたドライバの顔の位置に対応するイニシャル方向が変換テーブルに登録されている場合、例えば、図１５の例において、検出されたドライバ２の顔の位置が斜線で示される領域以外の領域内である場合、ドライバ２の顔の位置に対するイニシャル方向が登録されていると判定され、ステップＳ３０８乃至Ｓ３０９の処理はスキップされ、すなわち、変換テーブル学習処理は行われずに、処理はステップＳ３１０に進む。
【０１２３】
ステップＳ３１０において、イニシャル方向取得部３１１は、図８のステップＳ１０５の処理と同様に、顔検出部１２により検出されたドライバの顔の位置に対応するイニシャル方向を、変換テーブルから取得する。
【０１２４】
ステップＳ３１１において、上述した図８のステップＳ１０８の処理と同様に、検出されたドライバ２の顔の向きが、イニシャル方向を基準とする向きに変換される。
【０１２５】
ステップＳ３１２において、上述した図８のステップＳ１０９の処理と同様に、イニシャル方向を基準とするドライバの顔の向きを示す情報が、顔向き検出装置３０１の後段の装置に出力される。その後、処理はステップＳ３１５に進む。
【０１２６】
ステップＳ３０９において、ドライバ２の顔の位置に対応するイニシャル方向が登録されていないと判定された場合、すなわち、ステップＳ３０８の変換テーブル学習処理により、検出されたドライバ２の顔の位置に対するイニシャル方向が変換テーブルに登録されなかった場合、処理はステップＳ３１３に進む。
【０１２７】
ステップＳ３１３において、変換部１１１は、イニシャル方向未登録を出力する。具体的には、イニシャル方向取得部３１１は、イニシャル方向が登録されていないことを示す情報を変換部１１１に供給する。変換部１１１は、イニシャル方向が未登録のためドライバ２の顔の向きが検出されなかったことを示すイニシャル方向未登録を通知する情報を、顔向き検出装置３０１の後段の装置に出力する。その後、処理はステップＳ３１５に進む。
【０１２８】
ステップＳ３０４において、ドライバ２の顔が検出できなかったと判定された場合、または、ステップＳ３０６において、ドライバ２の顔の向きが検出できなかったと判定された場合、処理はステップＳ３１４に進む。
【０１２９】
ステップＳ３１４において、上述した図８のステップＳ１１０の処理と同様に、検出エラーが出力される。その後、処理はステップＳ３１５に進む。
【０１３０】
ステップＳ３１５において、上述した図８のステップＳ１１１の処理と同様に、処理を終了するか否かが判定される。処理を終了しないと判定された場合、処理はステップＳ３０２に戻り、ステップＳ３１５において、処理を終了すると判定されるまで、ステップＳ３０２乃至Ｓ３１５の処理が繰返し実行される。
【０１３１】
ステップＳ３１５において、処理を終了すると判定された場合、顔向き検出処理は終了する。
【０１３２】
次に、図１６のフローチャートを参照して、図１４のステップＳ３０８の変換テーブル学習処理の詳細を説明する。
【０１３３】
ステップＳ３３１において、顔向き検出装置３０１は、イニシャル方向検出処理を実行する。イニシャル方向検出処理の詳細は、図２２を参照して後述するが、この処理により、ドライバ２が正面を向いているか否かが判定され、ドライバ２が正面を向いていると判定された場合、現在のドライバ２の顔の位置に対応するイニシャル方向が検出される。また、検出結果を示す情報が、イニシャル方向検出部３１３から変換テーブル更新部３１４に供給される。
【０１３４】
ステップＳ３３２において、変換テーブル更新部３１４は、イニシャル方向が検出された否かが判定される。イニシャル方向が検出されたと判定された場合、処理はステップＳ３３３に進む。
【０１３５】
ステップＳ３３３において、変換テーブル更新部３１４は、登録済みのイニシャル方向と整合性が登録されているか否かを判定する。具体的には、変換テーブル更新部３１４は、変換テーブルを記憶部１５から読み出す。変換テーブル更新部３１４は、イニシャル方向検出部３１３により検出されたイニシャル方向が、すでに変換テーブルに登録されているイニシャル方向と整合性が取れているか否かを調べる。
【０１３６】
ここで、図１７を参照して、検出されたイニシャル方向と登録済みのイニシャル方向との整合性について説明する。図１７は、変換テーブルの例を示す図である。なお、図１７においては、入力画像が縦２×横３の合計６つの領域に分割される場合に対応する変換テーブルの例が示されている。
【０１３７】
例えば、図１７の変換テーブルにおいて、領域３３１−１および３３１−６に対応するイニシャル方向が、まだ学習されていないため（未学習のため）登録されておらず、領域３３１−３乃至３３１−５に対応するイニシャル方向が登録済みである場合に、領域３３１−２に対応するイニシャル方向が新たに検出されたときについて考える。
【０１３８】
領域３３１−２は、隣接する領域３３１−１および領域３３１−３と同じ行（同じ高さ）にあるので、領域３３１−２に対応するイニシャル方向の上下方向の向き（角度）は、領域３３１−１および領域３３１−３に対応するイニシャル方向の上下方向の向きに近くなると推定される。また、領域３３１−２は、隣接する領域３３１−５と同じ列（左右方向において同じ位置）にあるので、領域３３１−２に対応するイニシャル方向の左右方向の向きは、領域３３１−５に対応するイニシャル方向の左右方向の向きに近くなると推定される。
【０１３９】
例えば、いま、領域３３１−２に対応するイニシャル方向が、左方向３５°および下方向２０°と検出されたとすると、左右方向の向きについては、領域３３１−５に対応するイニシャル方向と同様であるが、上下方向の向きについては、領域３３１−３に対応するイニシャル方向の上下方向の向きとの差が１５°となり、大きく異なっている。例えば、整合性が取れているか否かを判定する所定の閾値を±１０°とした場合、検出された領域３３１−２に対応するイニシャル方向は、登録済みのイニシャル方向との整合性が取れていないと判定される。
【０１４０】
このように、変換テーブル更新部３１４は、イニシャル方向取得部１３により検出されたイニシャル方向（登録しようとする前記イニシャル方向）と、登録しようとするイニシャル方向に対応する領域（ドライバ２の顔の位置）の近傍の領域（位置）に対応するイニシャル方向との差が所定の閾値以内である場合、整合性が取れていると判定し、その差が所定の閾値を超えている場合、整合性が取れていないと判定する。
【０１４１】
ステップＳ３３３において、登録済みのイニシャル方向と整合性が取れていると判定された場合、処理はステップＳ３３４に進む。
【０１４２】
ステップＳ３３４において、変換テーブル更新部３１４は、検出されたイニシャル方向を変換テーブルに登録する。
【０１４３】
ステップＳ３３５において、変換テーブル更新部３１４は、変換テーブルを線形補間する。ここで、図１８および図１９を参照して、変換テーブルの線形補間について説明する。なお、図１８は、線形補間前の変換テーブルの例を示し、図１９は、線形補間後の変換テーブルの例を示している。また、図１８および図１９においては、入力画像が縦２×横４の合計８の領域に分割される場合に対応する変換テーブルの例が示されている。
【０１４４】
図１８の変換テーブルにおいて、領域３３２−１乃至３３２−３および３３２−６乃至３３２−８対応するイニシャル方向が、まだ学習されていないため登録されておらず、領域３３２−４に対応するイニシャル方向が登録済みである場合に、領域３３２−５に対応するイニシャル方向が新たに検出されたときについて考える。
【０１４５】
上述したように、ドライバ２の顔の位置はほぼ２次平面上を移動するので、イニシャル方向は、入力画像におけるドライバ２の顔の位置にほぼ比例して変化すると仮定することができる。そのように仮定した場合、領域３３２−４と領域３３２−５の間にある領域３３２−１乃至３３２−３および３３２−６乃至３３２−８について、領域３３２−４および３３２−５に対応するイニシャル方向を用いて線形補間することが可能である。
【０１４６】
すなわち、領域３３２−４と領域３３２−５の間において、縦方向および横方向について、位置の変化に対して、イニシャル方向がそれぞれ等間隔で変化すると仮定して、領域３３２−１に対応するイニシャル方向が、左方向４５および下方向５°に設定され、領域３３２−２に対応するイニシャル方向が、左方向４０°および下方向に５°に設定され、領域３３２−３に対応するイニシャル方向が、左方向３５°および下方向５°に設定され、領域３３２−６に対応するイニシャル方向が、左方向４０°および下方向１０°に設定され、領域３３２−７に対応するイニシャル方向が、左方向に３５°および下方向に１０°に設定され、領域３３２−８に対応するイニシャル方向が、左方向３０°および下方向５°に設定される。すなわち、変換テーブルに登録されているイニシャル方向を用いて、イニシャル方向が登録されていない領域（位置）に対応するイニシャル方向を線形補間することが可能である。
【０１４７】
なお、イニシャル方向が等間隔ではない、所定の規則に従って変化する場合、例えば、二次関数、正弦関数などの所定の関数に従って変化することが分かっている場合、その規則に従って、イニシャル方向を補間するようにすることも可能である。
【０１４８】
また、この線形補間処理は、必ずしも行う必要はない。すなわち、線形補間処理を行わずに、実際の検出したイニシャル方向のみを変換テーブルに登録するようにしてもよい。
【０１４９】
その後、処理はステップＳ３３７に進む。
【０１５０】
ステップＳ３３３において、登録済みのイニシャル方向と整合性が取れていないと判定された場合、処理はステップＳ３３６に進む。
【０１５１】
ステップＳ３３６において、変換テーブル更新部３１４は、イニシャル方向を消去する。例えば、図１７の例のように、新たに検出された領域３３１−２に対応するイニシャル方向が、変換テーブルに登録済みのイニシャル方向と整合性が取れていない場合、変換テーブル更新部３１４は、図２０に示されるように、検出されたイニシャル方向を、変換テーブルに登録せずに、そのまま消去する。すなわち、領域３３１−２に対応するイニシャル方向は未登録のままとなる。また、例えば、変換テーブル更新部３１４は、図２１に示されるように、さらに、領域３３１−２に隣接する領域（領域３３１−１の近傍の位置）に対応するイニシャル方向を変換テーブルから消去する。
【０１５２】
その後、処理はステップＳ３３７に進む。
【０１５３】
ステップＳ３３２において、イニシャル方向が検出されなかったと判定された場合、処理はステップＳ３３７に進む。
【０１５４】
ステップＳ３３７において、変換テーブル更新部３１４は、変換テーブルの更新結果をイニシャル方向取得部３１１に供給し、変換テーブル学習処理は終了する。
【０１５５】
次に、図２２のフローチャートを参照して、図１６のステップＳ３３１のイニシャル方向検出処理の詳細を説明する。
【０１５６】
ステップＳ３５１において、正面向き判定部３１２は、車両が所定の速度以上で前進しているか否かを判定する。具体的には、正面向き判定部３１２は、顔向き検出装置３０１が設けられている車両の車両制御部から、車両の速度、および、車両のトランスミッション（動力伝達装置）のギアの位置を示す情報を取得し、取得した情報に基づいて、車両が所定の速度以上で前進しているか否かを判定する。車両が所定の速度以上で前進していると判定された場合、処理はステップＳ３５２に進む。
【０１５７】
ステップＳ３５２において、正面向き判定部３１２は、ドライバ２の顔の位置および向きの変化が所定の範囲以内である状態が所定の時間継続したか否かを判定する。具体的には、正面向き判定部３１２は、現在より所定の時間前のフレームから現在のフレームまでの間、ドライバ２の顔の位置が、変換テーブルにおける１つの領域内にあり、かつ、顔の向きの変化量が所定の範囲内（例えば、上下方向および左右方向において３０°以内の範囲内）である場合、ドライバ２の顔の位置および向きの変化が所定の範囲以内である状態が所定の時間継続したと判定し、処理はステップＳ３５３に進む。すなわち、これは、車両が所定の速度以上で前進し、かつ、ドライバ２の顔の位置および向きの変化が所定の範囲以内である状態が所定の時間継続しており、ドライバ２が正面を向いている可能性が高い場合である。
【０１５８】
ステップＳ３５３において、イニシャル方向検出部３１３は、イニシャル方向を検出し、イニシャル方向検出処理は終了する。具体的には、正面向き判定部３１２は、ドライバ２が正面を向いていることを示す情報をイニシャル方向検出部３１３に供給する。イニシャル方向検出部３１３は、ドライバ２の顔の位置および向きの変化が所定の範囲以内である状態が所定の時間継続したときの、その所定の時間におけるドライバの顔の向きの統計をとることにより、イニシャル方向を求める。例えば、イニシャル方向検出部３１３は、その所定の時間における、ドライバ２の顔の向きの平均値、または、ドライバ２の顔の向きの分布におけるピーク値をイニシャル方向として求める。イニシャル方向検出部３１３は、検出結果を示す情報を変換テーブル更新部３１４に供給する。
【０１５９】
ステップＳ３５１において、車両が所定の速度以上で前進していないと判定された場合、処理はステップＳ３５４に進む。
【０１６０】
ステップＳ３５４において、正面向き判定部３１２は、計測値をリセットする。具体的には、正面向き判定部３１２は、ドライバ２の顔の位置および向きの変化が所定の範囲内である状態の継続時間の計測値をリセットし、再計測を開始する。
【０１６１】
ステップＳ３５２において、ドライバ２の顔の位置および向きの変化が所定の範囲内である状態が所定の時間継続していないと判定された場合、処理はステップＳ３５５に進む。
【０１６２】
ステップＳ３５５において、イニシャル方向検出部３１３は、イニシャル方向が未検出であることを通知する。具体的には、正面向き判定部３１２は、ドライバ２が正面を向いていると判定できなかったことを示す情報を、イニシャル方向検出部３１３に供給する。イニシャル方向検出部３１３は、イニシャル方向が未検出であることを示す情報を変換テーブル更新部３１４に供給する。
【０１６３】
このように、車種、カメラ１１の設置位置、または、カメラ１１と運転席の位置関係の違いに関わらず、それらの違いに対応した最適な変換テーブルを生成することができ、車種またはカメラ１１の設置位置に個別に対応した変換テーブルを事前に準備する必要がなくなる。また、車種またはカメラ１１の設置位置が異なっても、顔向き検出装置３０１に変更を加える必要がなく、部品の共通化やコストダウンを実現することができる。また、同じ車種において、例えば、ステアリングホイールの位置（いわゆる、右ハンドルまたは左ハンドル）などの仕様が異なっても、変更を加えずに顔向き検出装置３０１を使用することができる。
【０１６４】
また、イニシャル方向が変換テーブルに登録されていない場合、未登録を示す情報が、後段の装置に出力されるため、後段の装置は、ドライバ２の顔の向きを用いた処理を無効にし、誤動作を防止することができる。また、イニシャル方向が学習された時点で、その処理を再開することができる。
【０１６５】
なお、図１０の顔向き検出装置２０１と同様に、顔向き検出装置３０１に複数台のカメラを設けるようにしてもよい。図２３は、顔向き検出装置３０１に、カメラ４１１を追加することにより、２台のカメラを用いてドライバ２の顔の向きを検出する顔向き検出装置４０１の実施の形態を示すブロック図である。
【０１６６】
顔向き検出装置４０１は、図１３の顔向き検出装置３０１と比較して、カメラ１１、顔検出部１２、顔向き検出部１４、記憶部１５、変換部１１１、イニシャル方向取得部３１１、正面向き判定部３１２、イニシャル方向検出部３１３、および、変換テーブル更新部３１４を含む点で一致し、カメラ４１１を含む点で異なる。
【０１６７】
顔向き検出装置４０１による顔向き検出処理の詳細の説明は省略するが、上述した顔向き検出装置３０１と同様の処理により、カメラ１１およびカメラ４１１の両方の入力画像に対応する変換テーブルが学習され、２つのカメラおよび変換テーブルに基づいて、ドライバ２の顔の向きが検出される。これにより、ドライバ２の顔の向きの検出範囲を広げることができる。
【０１６８】
なお、カメラを３台以上とすることももちろん可能である。
【０１６９】
なお、本発明は、上述した例以外にも、例えば、各種の乗り物を運転または操作する人（例えば、自動車のドライバ、電車の運転士、航空機の操縦士、船舶の操縦士など）の顔の向きを検出する装置、工作機械の操作者の顔の向きを検出する装置などに適用することができる。
【０１７０】
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
【０１７１】
図２４は、上述した一連の処理をプログラムにより実行するパーソナルコンピュータ９００の構成の例を示すブロック図である。CPU（Central Processing Unit）９０１は、ROM（Read Only Memory）９０２、または記録部９０８に記憶されているプログラムに従って各種の処理を実行する。RAM（Random Access Memory）９０３には、CPU９０１が実行するプログラムやデータなどが適宜記憶される。これらのCPU９０１、ROM９０２、およびRAM９０３は、バス９０４により相互に接続されている。
【０１７２】
CPU９０１にはまた、バス９０４を介して入出力インタフェース９０５が接続されている。入出力インタフェース９０５には、キーボード、マウス、マイクロホンなどよりなる入力部９０６、ディスプレイ、スピーカなどよりなる出力部９０７が接続されている。CPU９０１は、入力部９０６から入力される指令に対応して各種の処理を実行する。そして、CPU９０１は、処理の結果を出力部９０７に出力する。
【０１７３】
入出力インタフェース９０５に接続されている記録部９０８は、例えばハードディスクからなり、CPU９０１が実行するプログラムや各種のデータを記憶する。通信部９０９は、インターネットやローカルエリアネットワークなどのネットワークを介して外部の装置と通信する。
【０１７４】
また、通信部９０９を介してプログラムを取得し、記録部９０８に記憶してもよい。
【０１７５】
入出力インタフェース９０５に接続されているドライブ９１０は、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア９１１が装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記録部９０８に転送され、記憶される。
【０１７６】
コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプログラムを格納するプログラム記録媒体は、図２４に示すように、磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)を含む）、光磁気ディスク、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア９１１、または、プログラムが一時的もしくは永続的に格納されるROM９０２や、記録部９０８を構成するハードディスクなどにより構成される。プログラム記録媒体へのプログラムの格納は、必要に応じてルータ、モデムなどのインタフェースである通信部９０９を介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を利用して行われる。
【０１７７】
なお、本明細書において、プログラム記録媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０１７８】
さらに、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【０１７９】
【図１】本発明を適用した顔向き検出装置の第１の実施の形態を示すブロック図である。
【図２】図１の顔向き検出装置により実行される顔向き検出処理を説明するためのフローチャートである。
【図３】入力画像におけるドライバの顔の位置を説明するための図である。
【図４】カメラから見たドライバの顔の向きを説明するための図である。
【図５】ドライバ正面を向いている場合における顔の向きと入力画像におけるドライバの顔の位置との関係を模式的に示す図である。
【図６】変換テーブルの例を示す図である。
【図７】本発明を適用した顔向き検出装置の第２の実施の形態を示すブロック図である。
【図８】図７の顔向き検出装置により実行される顔向き検出処理を説明するためのフローチャートである。
【図９】検出されたドライバの顔の向きをイニシャル方向を基準とする向きに変換する方法を説明するための図である。
【図１０】本発明を適用した顔向き検出装置の第３の実施の形態を示すブロック図である。
【図１１】図１０のカメラの設置位置の例を示す図である。
【図１２】図１０の顔向き検出装置により実行される顔向き検出処理を説明するためのフローチャートである。
【図１３】本発明を適用した顔向き検出装置の第４の実施の形態を示すブロック図である。
【図１４】図１３の顔向き検出装置により実行される顔向き検出処理を説明するためのフローチャートである。
【図１５】変換テーブルの例を示す図である。
【図１６】図１４のステップＳ３０８の変換テーブル学習処理の詳細を説明するためのフローチャートである。
【図１７】検出されたイニシャル方向と登録済みのイニシャル方向との整合性について説明するための図である。
【図１８】変換テーブルの線形補間について説明するための図である。
【図１９】変換テーブルの線形補間について説明するための図である。
【図２０】変換テーブルからイニシャル方向を消去する方法を説明するための図である。
【図２１】変換テーブルからイニシャル方向を消去する他の方法を説明するための図である。
【図２２】図１６のステップＳ３３１のイニシャル方向検出処理の詳細を説明するためのフローチャートである。
【図２３】本発明を適用した顔向き検出装置の第５の実施の形態を示すブロック図である。
【図２４】パーソナルコンピュータの構成の例を示すブロック図である。
【符号の説明】
【０１８０】
１  顔向き検出装置
２  ドライバ
１１  カメラ
１２  顔検出部
１３  イニシャル方向取得部
１４  顔向き検出部
１５  記憶部
１０１  顔向き検出装置
１１１  変換部
２０１  顔向き検出装置
２１１  カメラ
３０１  顔向き検出装置
３１１  イニシャル方向取得部
３１２  正面向き判定部
３１３  イニシャル方向検出部
３１４  変換テーブル更新部
４０１  顔向き検出装置
４１１  カメラ
９０１  CPU
９０２  ROM
９０３  RAM
９０８  記録部
９１０  ドライブ
９１１  リムーバブルメディア
【図１】
2007249352.tif 000003
【図２】
2007249352.tif 000004
【図３】
2007249352.tif 000005
【図４】
2007249352.tif 000006
【図５】
2007249352.tif 000007
【図６】
2007249352.tif 000008
【図７】
2007249352.tif 000009
【図８】
2007249352.tif 000010
【図９】
2007249352.tif 000011
【図１０】
2007249352.tif 000012
【図１１】
2007249352.tif 000013
【図１２】
2007249352.tif 000014
【図１３】
2007249352.tif 000015
【図１４】
2007249352.tif 000016
【図１５】
2007249352.tif 000017
【図１６】
2007249352.tif 000018
【図１７】
2007249352.tif 000019
【図１８】
2007249352.tif 000020
【図１９】
2007249352.tif 000021
【図２０】
2007249352.tif 000022
【図２１】
2007249352.tif 000023
【図２２】
2007249352.tif 000024
【図２３】
2007249352.tif 000025
【図２４】
2007249352.tif 000026