以下、図を参照して、本発明の実施の形態について説明する。
図1は、本発明を適用した車載システムの一実施の形態を示すブロック図である。車載システム1は、カメラ11、車両状態検出部12、顔向き検出装置13、および、アプリケーション装置14を含むように構成される。
カメラ11は、車載システム1が設けられている車両を運転するドライバの顔を撮影した画像(以下、入力画像と称する)を顔向き検出装置13に供給する。なお、カメラ11は、ドライバが車両の正面方向を向いた状態において、ドライバの顔をほぼ正面から撮影できる位置に設置されることが望ましい。
車両状態検出部12は、車両に設けられている各種の制御装置やセンサなどから構成され、車両の各種の状態を検出し、検出した状態を示す情報を顔向き検出装置13に供給する。なお、図1においては、車両状態検出部12は、車速センサ21およびギア検出部22を含むように構成されている。
車速センサ21は、車両の速度を検出し、検出結果を示す情報を顔向き検出装置13の前進判定部31に供給する。
ギア検出部22は、車両のトランスミッション(動力伝達装置)のギアの位置を検出し、検出結果を示す情報を顔向き検出装置13の前進判定部31に供給する。
顔向き検出装置13は、ドライバが運転中に正面を向いている場合の顔の向き(以下、イニシャル方向と称する)を検出する。また、顔向き検出装置13は、イニシャル方向を基準とするドライバの顔の向きを検出し、検出した顔の向きを示す情報をアプリケーション装置14に供給する。顔向き検出装置13は、前進判定部31、トラッキング部32、顔向き検出部33、イニシャル方向検出部34、および、顔向き変換部35を含むように構成される。
前進判定部31は、イニシャル方向の検出中に、車速センサ21およびギア検出部22からの情報に基づいて、車両が前進しているか否かを判定する。前進判定部31は、判定結果を示す情報をトラッキング部32およびイニシャル方向検出部34に供給する。
トラッキング部32は、所定の手法を用いて、入力画像におけるドライバの顔をトラッキングする(ドライバの顔および顔の各器官の位置、形状などを検出する)。トラッキング部32は、トラッキング結果を示す情報を顔向き検出部33に供給する。なお、トラッキング部32が顔をトラッキングする手法は、特定の手法に限定されるものではなく、より迅速かつ正確に顔をトラッキングできる手法が望ましい。
顔向き検出部33は、所定の手法を用いて、トラッキング部32によるトラッキング結果に基づいて、カメラ11から見た、すなわち、入力画像におけるドライバの顔の向きを検出する。顔向き検出部33は、検出結果を示す情報を、イニシャル方向検出部34および顔向き変換部35に供給する。なお、顔向き検出部33が顔の向きを検出する手法は、特定の手法に限定されるものではなく、顔の向きをより迅速かつ正確に検出できる手法が望ましい。例えば、顔向きを検出する手法の詳細については、特許2982204号公報などに、その詳細が開示されている。
イニシャル方向検出部34は、図3を参照して後述するように、イニシャル方向を検出し、検出したイニシャル方向を示す情報を前進判定部31および顔向き変換部35に供給する。
顔向き変換部35は、顔向き検出部33により検出された、カメラ11から見たドライバの顔の向きを、イニシャル方向を基準とする向きに変換する。顔向き変換部35は、変換した顔の向きを示す情報をアプリケーション装置14に供給する。
アプリケーション装置14は、顔向き検出装置13により検出されたドライバの顔の向きを利用した機能を提供する装置である。例えば、アプリケーション装置14は、検出されたドライバの顔の向きに基づいて、脇見運転を検出したり、自動運転を行う機能を提供する。また、例えば、アプリケーション装置14は、検出されたドライバの顔の向きに基づいて、最適な位置において撮影された入力画像を選択して、ドライバの顔を認識したり、顔の属性(例えば、顔の各器官の位置、形など)を検出する機能を提供する。
次に、図2および図3を参照して、車載システム1の処理を説明する。
まず、図2のフローチャートを参照して、車載システム1により実行される顔向き検出処理を説明する。なお、この処理は、例えば、車載システム1が設けられている車両のエンジンが始動されたとき開始される。
ステップS1において、カメラ11は、ドライバの顔の撮影を開始する。また、カメラ11は、撮影した入力画像のトラッキング部32への供給を開始する。
ステップS2において、車両状態検出部12は、車両の状態の検出を開始する。具体的には、車速センサ21は、車速の検出、および、検出結果を示す情報の前進判定部31への供給を開始する。また、ギア検出部22は、車両のトランスミッションのギアの位置の検出、および、検出結果を示す情報の前進判定部31への供給を開始する。
ステップS3において、顔向き検出装置13は、イニシャル方向検出処理を実行する。イニシャル方向検出処理の詳細は、図3を参照して後述するが、この処理により、イニシャル方向が検出される。
ステップS4において、トラッキング部32は、ドライバの顔をトラッキングする。具体的には、トラッキング部32は、所定の手法を用いて、入力画像におけるドライバの顔をトラッキングし、ドライバの顔および顔の各器官の位置、形状などを検出する。トラッキング部32は、トラッキング結果を示す情報を顔向き検出部33に供給する。
ステップS5において、顔向き検出部33は、ドライバの顔の向きを検出する。具体的には、顔向き検出部33は、所定の手法を用いて、トラッキング部32によるトラッキング結果に基づいて、カメラ11から見たドライバの顔の向きを検出する。顔向き検出部33は、検出したドライバの顔の向きを示す情報を、イニシャル方向検出部34および顔向き変換部35に供給する。
ステップS6において、顔向き変換部35は、検出された顔の向きをイニシャル方向を基準とする向きに変換する。顔向き変換部35は、変換したドライバの顔の向きを示す情報をアプリケーション装置14に供給する。
アプリケーション装置14は、取得したドライバの顔の向きに基づいて、所定の機能を実現する処理を行う。
ステップS7において、前進判定部31は、エンジンが停止されたか否かを判定する。具体的には、前進判定部31は、図示せぬ車両のエンジン制御装置から供給される情報に基づいて、エンジンが停止されたか否かを判定し、エンジンが停止されていないと判定した場合、処理はステップS4に戻る。その後、ステップS7において、エンジンが停止されたと判定されるまで、ステップS4乃至S7の処理が繰返し実行され、イニシャル方向を基準とするドライバの顔の向きが検出される。
ステップS7において、エンジンが停止されたと判定された場合、顔向き検出処理は終了する。
次に、図3のフローチャートを参照して、図2のステップS3のイニシャル方向検出処理の詳細を説明する。
ステップS21において、前進判定部31は、車両が前進しているか否かを判定する。前進判定部31は、車速センサ21の出力が0でなく、かつ、車両のトランスミッションのギアの位置が前進方向のギアに設定されている場合、車両が前進していると判定し、判定結果を示す情報をトラッキング部32およびイニシャル方向検出部34に供給する。その後、処理はステップS22に進む。
ステップS22において、上述した図2のステップS4の処理と同様に、ドライバの顔がトラッキングされ、トラッキング結果を示す情報が、トラッキング部32から顔向き検出部33に供給される。
ステップS23において、上述した図2のステップS5の処理と同様に、ドライバの顔の向きが検出され、ドライバの顔の向きを示す情報が、顔向き検出部33から、イニシャル方向検出部34および顔向き変換部35に供給される。イニシャル方向検出部34は、検出されたドライバの顔の向きを、イニシャル方向の検出に用いるサンプル値として、図示せぬ内部の記憶部に記憶させる。
ステップS24において、イニシャル方向検出部33は、顔の向きの変化量が所定の範囲内であるか否かを判定する。具体的には、イニシャル方向検出部33は、内部に記憶しているサンプル値の変化量、すなわち、ドライバの顔の向きの変化量を調べ、顔の向きの変化量が所定の範囲(例えば、上下方向および左右方向において30°以内の範囲)を超えていると判定した場合、処理はステップS25に進む。
ステップS25において、イニシャル方向検出部34は、内部に記憶しているサンプル値を消去する。その後、処理はステップS27に進む。
ステップS24において、顔の向きの変化量が所定の範囲内であると判定された場合、ステップS25の処理はスキップされ、すなわち、サンプル値は消去されずに、処理はステップS27に進む。
ステップS21において、前進判定部31は、車速センサ21の出力が0、または、車両のトランスミッションのギアの位置が前進方向以外のギアに設定されている場合、車両が前進していないと判定し、判定結果を示す情報をトラッキング部32およびイニシャル方向検出部34に供給する。その後、処理はステップS26に進む。
ステップS26において、ステップS25の処理と同様に、イニシャル方向検出部34の内部に記憶されているサンプル値が消去され、処理はステップS27に進む。
ステップS27において、上述した図2のステップS7の処理と同様に、エンジンが停止されたか否かが判定される。エンジンが停止されていないと判定された場合、処理はステップS28に進む。
ステップS28において、イニシャル方向検出部34は、所定の時間分のサンプル値が蓄積されたか否かを判定する。イニシャル方向検出部34は、所定の時間分のサンプル値が蓄積されていないと判定した場合、処理はステップS21に戻る。その後、ステップS27において、エンジンが停止されたと判定されるか、ステップS28において、所定の時間分のサンプル値が蓄積されたと判定されるまで、ステップS21乃至S28の処理が繰返し実行され、所定の時間分のドライバの顔の向きのサンプル値が蓄積される。換言すれば、所定のサンプル数以上のドライバの顔の向きのサンプル値、さらに換言すれば、ドライバの顔の向きを所定のサンプル数以上検出した結果が蓄積される。
ステップS28において、所定の時間分のサンプル値が蓄積されたと判定された場合、処理はステップS29に進む。
ステップS29において、イニシャル方向検出部34は、イニシャル方向を求め、イニシャル方向検出処理は終了する。具体的には、イニシャル方向検出部34は、内部に蓄積されているサンプル値の統計、すなわち、ドライバの顔の向きの変化が所定の範囲内である状態が所定の時間継続したときの、所定の時間におけるドライバの顔の向きの統計をとることにより、イニシャル方向を求める。例えば、イニシャル方向は、サンプル値の平均値、または、サンプル値の分布における山のピークに対応する、カメラ11から見たドライバの顔の向きに設定される。イニシャル方向検出部34は、求めたイニシャル方向を示す情報を前進判定部31および顔向き変換部35に供給する。
ステップS27において、エンジンが停止されたと判定された場合、イニシャル方向検出処理および顔向き検出処理は終了する。
以上のようにして、イニシャル方向を簡単かつ正確に検出することができる。すなわち、ドライバの特徴、ドライビングポジションなどの個人差に関わらず、イニシャル方向を精度高く検出することができる。また、事前に各種の統計値を求めたり、先行車との車間距離を検出したりすることなく、イニシャル方向を検出することができる。
また、カメラ11とドライバとの位置関係を事前に把握する必要がないため、カメラ11の設置位置の自由度が向上する。
なお、以上の説明では、ステップS21において、車両が前進していないと判定された場合、ステップS26において、内部に記憶しているサンプル値を全て消去する例を示したが、例えば、ステップS26において、車両が前進していないと判定された期間に検出されたサンプル値のみを消去するようにしてもよい。すなわち、車両が前進していない場合には、サンプル値の蓄積を中断し、ドライバの顔の向きの変化量が所定の範囲を超えていても、蓄積されたサンプル値をリセットしないようにしてもよい。
これにより、車両が前進しており、かつ、ドライバの顔の向きの変化が所定の範囲内である状態におけるドライバの顔の向きのサンプル値が断続的に蓄積され、所定の時間分のドライバの顔の向きのサンプル値、換言すれば、所定のサンプル数以上のドライバの顔の向きのサンプル値が蓄積された時点で、蓄積されたサンプル値に基づいて、イニシャル方向が求められる。
従って、例えば、車両が方向転換しても、それまでに蓄積したサンプル値が消去されないため、より迅速にイニシャル方向を求めることができるようになる。また、必ず、車両が前進しており、かつ、ドライバの顔の向きの変化が所定の範囲内である状態におけるドライバの顔の向きのサンプル値が、所定のサンプル数以上蓄積されてから、イニシャル方向が求められるので、単純に所定の時間だけ、または、所定のサンプル数だけドライバの顔の向きのサンプル値を蓄積してからイニシャル方向を求める場合に比べて、イニシャル方向の検出精度が向上する。
次に、図4乃至図6を参照して、より正確にイニシャル方向を検出できるようにした車載システムの実施の形態について説明する。
図4は、より正確にイニシャル方向を検出できるようにした車載システム51の実施の形態を示すブロック図である。車載システム51は、カメラ11、アプリケーション装置14、車両状態検出部61、および、顔向き検出装置62を含むように構成される。また、車両状態検出部61は、車速センサ21、ギア検出部22、ウインカー動作検出部71、舵角検出部72、機器操作検出部73、警笛動作検出部74、および、加速度センサ75を含むように構成される。さらに、顔向き検出装置62は、前進判定部31、トラッキング部32、顔向き検出部33、顔向き変換部35、非正面状態検出部81、および、イニシャル方向検出部82を含むように構成される。
なお、図中、図1と対応する部分については同じ符号を付してあり、処理が同じ部分に関しては、その説明は繰り返しになるので省略する。
ウインカー動作検出部71は、車両の方向指示器(いわゆる、ウインカー)の点滅の有無を検出し、検出結果を示す情報を非正面状態検出部81に供給する。
舵角検出部72は、車両のステアリングホイール(いわゆる、ハンドル)の舵角を検出し、検出結果を示す情報を非正面状態検出部81に供給する。
機器操作検出部73は、運転中にドライバにより車両の運転とは異なる操作が行われる機器(例えば、カーナビゲーション装置、車載用のAV機器など)に対する操作の有無を検出する。機器操作検出部73は、検出結果を示す情報を非正面状態検出部81に供給する。
警笛動作検出部74は、車両の警笛(いわゆる、クラクション)の動作の有無を検出し、検出結果を示す情報を非正面状態検出部81に供給する。
加速度センサ75は、車両の加速度および減速度を検出し、検出結果を示す情報を非正面状態検出部81に供給する。
非正面状態検出部81は、ウインカー動作検出部71、舵角検出部72、機器操作検出部73、警笛動作検出部74、または、加速度センサ75からの情報に基づいて、ドライバが正面を向いていない可能性が高い状態、または、車両の走行が安定していない可能性が高い状態(例えば、車両の速度や進行方向が安定していない状態)である非正面状態を検出する。非正面状態検出部81は、検出結果を示す情報をトラッキング部32およびイニシャル方向検出部82に供給する。
イニシャル方向検出部82は、図6を参照して後述するように、イニシャル方向を検出し、検出したイニシャル方向を示す情報を前進判定部31、顔向き変換部35、および、非正面状態検出部81に供給する。
次に、図5および図6を参照して、車載システム51の処理について説明する。
まず、図5のフローチャートを参照して、車載システム51により実行される顔向き検出処理を説明する。なお、この処理は、例えば、車載システム51が設けられている車両のエンジンが始動されたとき開始される。
ステップS51において、上述した図2のステップS1の処理と同様に、ドライバの顔の撮影が開始される。
ステップS52において、車両状態検出部61は、車両の状態の検出を開始する。具体的には、車速センサ21は、車速の検出、および、検出結果を示す情報の前進判定部31への供給を開始する。また、ギア検出部22は、車両のトランスミッションのギアの位置の検出、および、検出結果を示す情報の前進判定部31への供給を開始する。
さらに、ウインカー動作検出部71は、車両のウインカーの点滅の有無の検出、および、検出結果を示す情報の非正面状態検出部81への供給を開始する。また、舵角検出部72は、車両のステアリングホイールの舵角の検出、および、検出結果を示す情報の非正面状態検出部81への供給を開始する。さらに、機器操作検出部73は、運転中にドライバにより車両の運転とは異なる操作が行われる機器に対する操作の有無の検出、および、検出結果を示す情報の非正面状態検出部81への供給を開始する。
また、警笛動作検出部75は、車両の警笛の動作の有無の検出、および、検出結果を示す情報の非正面状態検出部81への供給を開始する。さらに、加速度センサ75は、車両の加速度および減速度の検出、および、検出結果を示す情報の非正面状態検出部81への供給を開始する。
ステップS53において、顔向き検出装置62は、イニシャル方向検出処理を実行する。イニシャル方向検出処理の詳細は、図6を参照して後述するが、この処理により、イニシャル方向が検出される。
ステップS54乃至S57の処理は、上述した図2のステップS4乃至S7の処理と同様であり、その説明は繰り返しになるので省略する。
次に、図6のフローチャートを参照して、図5のステップS53のイニシャル方向検出処理の詳細を説明する。
ステップS71において、上述した図3のステップS21の処理と同様に、車両が前進しているか否かが判定される。車両が前進していると判定された場合、処理はステップS72に進む。
ステップS72において、非正面状態検出部81は、非正面状態であるか否かを判定する。具体的には、非正面状態検出部81は、ウインカー動作検出部71からの情報に基づいて、ウインカーが点滅中、または、ウインカーの点滅が終了してから所定の時間が経過していないことを検出した場合、非正面状態であると判定する。すなわち、ウインカーが点滅を開始してから、点滅が終了してから所定の時間が経過するまでの間においては、車両の方向転換もしくは車線変更を行う前後、または、その最中である可能性が高く、ドライバが正面を向いていないか、または、車両の走行が安定していない可能性が高いため、非正面状態であると判定される。
なお、以上のウインカーが点滅中の状態は、左右のウインカーが同時に点滅中の状態、いわゆるハザードランプが点滅中の状態を含む。すなわち、ハザードランプが点滅を開始してから、点滅が終了してから所定の時間が経過するまでの間においては、車両の走行が安定していない可能性が高いため、非正面状態であると判定される。
また、非正面状態検出部81は、舵角検出部72からの情報に基づいて、車両のステアリングホイールの舵角が所定の範囲を超えていることを検出した場合、非正面状態であると判定する。すなわち、ステアリングホイールの舵角が所定の範囲を超えている場合、ドライバが正面を向いていないか、または、車両の走行が安定していない可能性が高いため、非正面状態であると判定される。
さらに、非正面状態検出部81は、機器操作検出部73からの情報に基づいて、運転中にドライバにより車両の運転とは異なる操作が行われる機器を操作中であることを検出した場合、非正面状態であると判定する。すなわち、ドライバが、操作中の機器の方向を向き、正面を向いていない可能性が高いため、非正面状態であると判定される。
また、非正面状態検出部81は、警笛動作検出部74からの情報に基づいて、警笛が鳴動中であることを検出した場合、非正面状態であると判定する。すなわち、警笛が鳴動中である場合、注意すべき状態、危険な状態、または、非常事態などが発生している可能性が高く、ドライバが正面を向いていないか、または、車両の走行が安定していない可能性が高いため、非正面状態であると判定される。
さらに、非正面状態検出部81は、加速度センサ75からの情報に基づいて、車両の加速度が所定の閾値以上、または、車両の減速度が所定の閾値以上であることを検出した場合、非正面状態であると判定する。すなわち、例えば、アクセルペダルが踏み込まれたり、ブレーキがかけられたりして、車両が所定の閾値以上で加速している場合、または、車両が所定の閾値以上で減速している場合には、車両の走行が安定していないため、非正面状態であると判定される。
以上のように、ステップS72において、非正面状態であると判定された場合、非正面状態検出部81は、非正面状態であることを示す情報をトラッキング部32およびイニシャル方向検出部82に供給する。その後、処理はステップS77に進む。
また、ステップS71において、車両が前進していないと判定された場合、処理はステップS77に進む。
ステップS77において、上述した図6のステップS25の処理と同様に、サンプル値が消去され、処理はステップS78に進む。
一方、ステップS72において、非正面状態でないと判定された場合、処理はステップS73に進む。
ステップS73乃至S76の処理は、上述した図3のステップS22乃至S25、の処理と同様であり、その説明は繰り返しになるので省略する。また、ステップS78およびS79の処理は、上述した図3のS27およびS28の処理と同様であり、その説明は省略する。
ステップS80において、イニシャル方向検出部82は、イニシャル方向を求め、イニシャル方向検出処理は終了する。具体的には、イニシャル方向検出部82は、内部に蓄積されているサンプル値の統計、すなわち、ドライバの顔の向きの変化が所定の範囲内であり、かつ、非正面状態が検出されない状態が所定の時間継続したときの、所定の時間におけるドライバの顔の向きの統計をとることにより、イニシャル方向を求める。例えば、イニシャル方向は、サンプル値の平均値、または、サンプル値の分布における山のピークに対応する、カメラ11から見たドライバの顔の向きに設定される。イニシャル方向検出部82は、求めたイニシャル方向を示す情報を前進判定部31および顔向き変換部35に供給する。
このように、非正面状態である場合の顔の向きがサンプル値から除かれるため、より正確にイニシャル方向を検出することができる。
なお、以上の説明では、ステップS71において、車両が前進していないと判定された場合、または、ステップS72において、非正面状態であると判定された場合、ステップS77において、内部に記憶しているサンプル値を全て消去する例を示したが、例えば、ステップS77において、車両が前進していないと判定されるか、または、非正面状態であると判定された期間に検出されたサンプル値のみを消去するようにしてもよい。すなわち、車両が前進していない場合、または、非正面状態である場合には、サンプル値の蓄積を中断し、ドライバの顔の向きの変化量が所定の範囲を超えていても、蓄積されたサンプル値をリセットしないようにしてもよい。
これにより、車両が前進しており、かつ、非正面状態でなく、かつ、ドライバの顔の向きの変化が所定の範囲内である状態におけるドライバの顔の向きのサンプル値が断続的に蓄積され、所定の時間分のドライバの顔の向きのサンプル値、換言すれば、所定のサンプル数以上のドライバの顔の向きのサンプル値が蓄積された時点で、蓄積されたサンプル値に基づいて、イニシャル方向が求められる。
従って、例えば、車両が方向転換したり、ドライバが運転とは異なる操作をしても、それまでに蓄積されたサンプル値がリセットされないため、より迅速にイニシャル方向を求めることができるようになる。また、必ず、車両が前進しており、かつ、非正面状態でなく、かつ、ドライバの顔の向きの変化が所定の範囲内である状態におけるドライバの顔の向きのサンプル値が、所定のサンプル数以上蓄積されてから、イニシャル方向が求められるので、単純に所定の時間だけ、または、所定のサンプル数だけサンプル値を蓄積してからイニシャル方向を求める場合に比べて、求めたイニシャル方向の検出精度が向上する。
次に、図7および図8を参照して、ドライバおよびドライビングポジション(運転姿勢)の変更に対応してイニシャル方向を再検出するようにした車載システムの実施の形態について説明する。
図7は、ドライバおよびドライビングポジションの変更に対応してイニシャル方向を再検出するようにした車載システム101の実施の形態を示すブロック図である。車載システム101は、カメラ11、アプリケーション装置14、車両状態検出部111、および、顔向き検出装置112を含むように構成される。また、車両状態検出部111は、車速センサ21、ギア検出部22、ウインカー動作検出部71、舵角検出部72、機器操作検出部73、警笛動作検出部74、加速度センサ75、ドア開閉検出部121、ミラー位置検出部122、シート位置検出部123、および、ヘッドレスト位置検出部124を含むように構成される。さらに、顔向き検出装置112は、前進判定部31、トラッキング部32、顔向き検出部33、顔向き変換部35、非正面状態検出部81、顔認識部131、ドライビングポジション検出部132、および、イニシャル方向検出部133を含むように構成される。
なお、図中、図1または図4と対応する部分については同じ符号を付してあり、処理が同じ部分に関しては、その説明は繰り返しになるので省略する。
ドア開閉検出部121は、車両の運転席のドアの開閉を検出し、検出結果を示す情報をドライビングポジション検出部132に供給する。ドア開閉検出部121は、例えば、ドアの開閉を検出するドア開閉センサ、ドアスイッチのオンまたはオフを検出するセンサなどにより構成される。
ミラー位置検出部122は、車両のセンタミラー(ルームミラー)およびサイドミラーの位置を検出し、検出結果を示す情報をドライビングポジション検出部132に供給する。ミラー位置検出部122は、例えば、センタミラーまたはサイドミラーの調節されている角度を検出するミラー角度センサにより構成される。
シート位置検出部123は、車両の運転席の位置、および、運転席の背もたれの角度を検出し、検出結果を示す情報をドライビングポジション検出部132に供給する。シート位置検出部123は、例えば、運転席の調節されている位置を検出する位置センサまたはシートポジションセンサなどにより構成される。
ヘッドレスト位置検出部124は、車両の運転席に設けられているヘッドレストレイント(いわゆる、ヘッドレスト)の位置および角度を検出し、検出結果を示す情報をドライビングポジション検出部132に供給する。ヘッドレスト位置検出部124は、例えば、運転席のヘッドレストレイントの調節されている位置を検出する位置センサ、ヘッドレストレイントの調節されている角度を検出する角度センサなどにより構成される。
顔認識部131は、所定の手法を用いて、トラッキング部32から供給されるトラッキング結果を示す情報に基づいて、ドライバの顔を認識する。顔認識部131は、認識結果に基づいて、ドライバの変更を検出し、検出結果を示す情報を前進判定部31、非正面状態検出部81、および、イニシャル方向検出部133に供給する。なお、顔認識部131が顔を認識する手法は、特定の手法に限定されるものではなく、より迅速かつ正確に顔を認識できる手法が望ましい。
ドライビングポジション検出部132は、ドア開閉検出部121、ミラー位置検出部122、シート位置検出部123、または、ヘッドレスト位置検出部124からの情報に基づいて、ドライビングポジション(ドライバの運転姿勢)の変更を検出し、検出結果を示す情報を前進判定部31、非正面状態検出部81、および、イニシャル方向検出部133に供給する。
イニシャル方向検出部133は、図1のイニシャル方向検出部34、または、図4のイニシャル方向検出部82と同様に、イニシャル方向を検出し、検出したイニシャル方向を示す情報を、前進判定部31、顔向き変換部35、非正面状態検出部81、顔認識部131、および、ドライビングポジション検出部132に供給する。また、顔認識部131によりドライバの変更が検出された場合、または、ドライビングポジション検出部132によりドライビングポジションの変更が検出された場合、すなわち、イニシャル方向が変わった可能性が高い場合、イニシャル方向を再検出する。
次に、図8のフローチャートを参照して、車載システム101により実行される顔向き検出処理を説明する。なお、この処理は、例えば、車載システム101が設けられている車両のエンジンが始動されたとき開始される。
ステップS101において、上述した図2のステップS1の処理と同様に、ドライバの顔の撮影が開始される。
ステップS102において、車両状態検出部111は、車両の状態の検出を開始する。具体的には、車速センサ21は、車速の検出、および、検出結果を示す情報の前進判定部31への供給を開始する。また、ギア検出部22は、車両のトランスミッションのギアの位置の検出、および、検出結果を示す情報の前進判定部31への供給を開始する。
さらに、ウインカー動作検出部71は、車両のウインカーの点滅の有無の検出、および、検出結果を示す情報の非正面状態検出部81への供給を開始する。また、舵角検出部72は、車両のステアリングホイールの舵角の検出、および、検出結果を示す情報の非正面状態検出部81への供給を開始する。さらに、機器操作検出部73は、運転中にドライバにより車両の運転とは異なる操作が行われる機器に対する操作の有無の検出、および、検出結果を示す情報の非正面状態検出部81への供給を開始する。
また、警笛動作検出部75は、車両の警笛の動作の有無の検出、および、検出結果を示す情報の非正面状態検出部81への供給を開始する。さらに、加速度センサ75は、車両の加速度および減速度の検出、および、検出結果を示す情報の非正面状態検出部81への供給を開始する。
また、ドア開閉検出部121は、車両の運転席のドアの開閉の検出、および、検出結果を示す情報のドライビングポジション検出部132への供給を開始する。さらに、ミラー位置検出部122は、車両のセンタミラーおよびサイドミラーの位置の検出、および、検出結果を示す情報のドライビングポジション検出部132への供給を開始する。また、シート位置検出部123は、車両の運転席の位置および運転席の背もたれの角度の検出、並びに、検出結果を示す情報のドライビングポジション検出部132への供給を開始する。さらに、ヘッドレスト位置検出部124は、車両の運転席に設けられているヘッドレストレイントの位置および角度の検出、並びに、検出結果を示す情報のドライビングポジション検出部132への供給を開始する。
ステップS103において、上述した図2のステップS3または図5のステップS53の処理と同様に、イニシャル方向検出処理が実行され、イニシャル方向が検出される。
ステップS104において、上述した図2のステップS4の処理と同様に、ドライバの顔がトラッキングされる。
ステップS105において、上述した図2のステップS5の処理と同様に、ドライバの顔の向きが検出される。
ステップS106において、上述した図2のステップS6の処理と同様に、検出された顔の向きがイニシャル方向を基準とする向きに変換され、変換されたドライバの顔の向きを示す情報がアプリケーション装置14に供給される。
ステップS107において、ドライビングポジション検出部132は、ドライビングポジションが変更されたか否かを判定する。ドライビングポジション検出部132は、運転席のドアの開閉が検出されておらず、かつ、車両のセンタミラーおよびサイドミラーの位置の変更されておらず、かつ、車両の運転席の位置および運転席の背もたれの角度が変更されておらず、かつ、車両の運転席のヘッドレストの位置の変更されていない場合、ドライビングポジションが変更されていないと判定し、処理はステップS108に進む。
ステップS108において、顔認識部131は、ドライバが変更されたか否かを判定する。具体的には、顔認識部131は、所定の手法を用いて、トラッキング部32から供給されるトラッキング結果を示す情報に基づいて、ドライバの顔を認識する。顔認識部131は、認識結果に基づいて、ドライバが変更されていないと判定した場合、処理はステップS109に進む。
ステップS109において、上述した図2のステップS7と同様の処理により、エンジンが停止されたか否かが判定される。エンジンが停止されていないと判定された場合、処理はステップS104に戻り、ステップS107において、ドライビングポジションが変更されたと判定されるか、ステップS108において、ドライバが変更されたと判定されるか、ステップS109において、エンジンが停止されたと判定されるまで、ステップS104乃至S109の処理が繰返し実行される。
ステップS107において、ドライビングポジション検出部132は、ドア開閉検出部121からの情報に基づいて、車両の運転席のドアの開閉を検出した場合、または、ミラー位置検出部122からの情報に基づいて、車両のセンタミラーもしくはサイドミラーの位置の変更を検出した場合、または、シート位置検出部123からの情報に基づいて、車両の運転席の位置もしくは運転席の背もたれの角度の変更を検出した場合、または、ヘッドレスト位置検出部124からの情報に基づいて、車両の運転席のヘッドレストの位置もしくは角度の変更を検出した場合、ドライビングポジションが変更されたと判定し、ドライビングポジションの変更を示す情報を、前進判定部31、非正面状態検出部81、および、イニシャル方向検出部133に供給する。その後、処理はステップS103に戻り、ステップS103以降の処理が実行される。すなわち、ドライビングポジションの変更に伴いイニシャル方向が再検出され、再検出されたイニシャル方向を基準とするドライバの顔の向きの検出が行われる。
ステップS108において、顔認識部131は、ドライバの顔の認識結果に基づいて、ドライバが変更されたと判定した場合、ドライバの変更の検出を示す情報を、前進判定部31、非正面状態検出部81、および、イニシャル方向検出部133に供給する。その後、処理はステップS103に戻り、ステップS103以降の処理が実行される。すなわち、ドライバの変更に伴いイニシャル方向が再検出され、再検出されたイニシャル方向を基準とするドライバの顔の向きの検出が行われる。
ステップS109において、エンジンが停止されたと判定された場合、顔向き検出処理は終了する。
このように、ドライバまたはドライビングポジションの変更の検出に伴い、イニシャル方向を再検出することにより、イニシャル方向をより正確に検出することができる。
なお、必要に応じて、非正面状態を検出する条件に他の条件を追加したり、上述した条件のうちいくつかを選択して用いるようにしてもよい。すなわち、必要に応じて、上述した条件以外に、ドライバが正面を向いていない可能性が高い状態、または、車両の走行が安定していない可能性が高い状態を検出することが可能な条件を追加したり、採用する条件の種類を取捨選択するようにしてもよい。
また、必要に応じて、ドライビングポジションの変更を検出する条件に他の条件を追加したり、上述した条件のいくつかを選択して用いるようにしてもよい。
なお、本発明は、ドライバの顔の向きを検出する検出装置、および、ドライバの顔の向きに基づいて、各種の処理を行う装置に適用することができる。
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
図9は、上述した一連の処理をプログラムにより実行するパーソナルコンピュータ900の構成の例を示すブロック図である。CPU(Central Processing Unit)901は、ROM(Read Only Memory)902、または記録部908に記憶されているプログラムに従って各種の処理を実行する。RAM(Random Access Memory)903には、CPU901が実行するプログラムやデータなどが適宜記憶される。これらのCPU901、ROM902、およびRAM903は、バス904により相互に接続されている。
CPU901にはまた、バス904を介して入出力インタフェース905が接続されている。入出力インタフェース905には、キーボード、マウス、マイクロホンなどよりなる入力部906、ディスプレイ、スピーカなどよりなる出力部907が接続されている。CPU901は、入力部906から入力される指令に対応して各種の処理を実行する。そして、CPU901は、処理の結果を出力部907に出力する。
入出力インタフェース905に接続されている記録部908は、例えばハードディスクからなり、CPU901が実行するプログラムや各種のデータを記憶する。通信部909は、インターネットやローカルエリアネットワークなどのネットワークを介して外部の装置と通信する。
また、通信部909を介してプログラムを取得し、記録部908に記憶してもよい。
入出力インタフェース905に接続されているドライブ910は、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア911が装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記録部908に転送され、記憶される。
コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプログラムを格納するプログラム記録媒体は、図9に示すように、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)を含む)、光磁気ディスク、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア911、または、プログラムが一時的もしくは永続的に格納されるROM902や、記録部908を構成するハードディスクなどにより構成される。プログラム記録媒体へのプログラムの格納は、必要に応じてルータ、モデムなどのインタフェースである通信部909を介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を利用して行われる。
なお、本明細書において、プログラム記録媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
さらに、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。