以下、ドライバの運転不能状態検出装置を具現化した実施形態について、図面を参照しつつ説明する。なお、本実施形態では、ドライバの運転不能状態は、ドライバが急病を発症して意識がなくなり運転操作できない状態と、ドライバが心臓発作等の急病を発症して、意識はあるが体を動かせないために運転操作できない状態とを含む。
まず、本実施形態に係る検出装置100(ドライバの運転不能状態検出装置)の構成について、図1〜3を参照して説明する。検出装置100は、制御装置50、ドライバ状態認識装置20、車両情報認識装置30、走行環境認識装置40、HMI(Human Machine Interface)80、及び記憶装置52を備えて、ドライバの運転不能状態を検出する。そして、検出装置100は、ドライバが運転不能状態であることをドライバに確認して応答がなかった場合に、車両を安全に停止させる指令を車両制御装置90へ送信する。
ドライバ状態認識装置20は、複数のドライバカメラ21(撮像装置)、シートベルトセンサ22(量検出手段)、座面センサ23(座圧検出手段)を備える。ドライバカメラ21は、例えばCCDカメラであり、近赤外LED等の照明装置により照らされた運転席を撮像する。ドライバカメラ21は、図2及び3に示すように、メーターパネル14、バックミラー16の下端の略中央、左右のAピラー17に、それぞれドライバに向かって搭載されている。メーターパネル14の代わりに、ダッシュボード13の上(破線で示す)やステアリングコラムにドライバカメラ21が設置されていてもよい。また、バックミラー16の下端の代わりに、バックミラー16の左端や右端(破線で示す)に設置されていてもよい。これら4つのドライバカメラ21はドライバステータスモニタを構成し、運転席のシート11に座ったドライバの上半身を正面側から1秒に数十画像分撮像する。
シートベルトセンサ22は、シートベルト12の引き出し量を検出するセンサである。具体的には、シートベルトセンサ22は、シートベルト12の送り出し及び巻き取りを行うモータの回転角度を検出するエンコーダである。座面センサ23は、運転席のシート11の座部11aの圧力分布を検出するセンサである。
車両情報認識装置30は、車速センサ31、舵角センサ32、アクセルセンサ33、及びブレーキセンサ34を備える。車速センサ31は、車両10の速度を検出するセンサである。舵角センサ32は、ハンドル15の操舵角を検出するセンサである。アクセルセンサ33は、アクセル開度すなわちアクセルペダルの操作量を検出するセンサである。ブレーキセンサ34は、ブレーキペダルの操作量を検出するセンサである。
走行環境認識装置40は、前方・後方カメラ41、前方・後方センサ42、カーナビゲーション装置43、及びGセンサ44を備える。前方・後方カメラ41は、道路の白線を含む車両10の前方を撮像するカメラや、車両10の後方及び後側方を撮像するカメラである。前方・後方センサ42は、超音波センサ、レーザーレーダ、ミリ波レーダ等のセンサであり、車両10の前方や後方の物体を検出し、車両10と前方や後方の物体との距離を取得する。前方・後方センサ42により取得された車両10と前方車両や後方車両との距離に基づいて、前方車両や後方車両との相対速度が算出できる。
カーナビゲーション装置43は、GPS受信機により受信されたGPS信号や、Gセンサを含む各種センサにより取得された情報を用いて、車両10の現在位置を算出し、現在位置から目的地までの誘導経路を算出する。Gセンサ44は、例えばシート11に設置され、車両10の前後、左右、上下の3次元の加速度を検出するセンサである。また、Gセンサ44は、カーナビゲーション装置43が備えるセンサであってもよいし、車両10が車両運行管理システム(AVOS)を備えている場合には、Gセンサ44は、AVOSが備えるセンサであってもよい。すなわち、Gセンサ44は、他の用途で設置されているものがある場合には、共用すればよい。
制御装置50は、CPU、ROM、RAM及びI/O等を備えるマイクロコンピュータであり、ドライバ状態認識装置20、車両情報認識装置30、走行環境認識装置40、記憶装置52、HMI80から各種情報を取得する。制御装置50と各種装置とは、CAN等の有線通信や、LAN、Bluetooth(登録商標)等の無線通信で接続されている。また、制御装置50は、CPUがROMに記憶されている各種プログラムを実行することにより、画像解析手段60、学習手段51、状態検出手段70の機能を実現し、ドライバの運転不能状態を検出する。各手段についての詳しい説明は後で述べる。
HMI80(姿勢報知手段、確認手段)は、ディスプレイ81、スピーカ82、キャンセルスイッチ83を備える。ディスプレイ81は、カーナビゲーション装置43のディスプレイや、メーターパネル14内に設けられている車載ディスプレイである。ディスプレイ81は、液晶パネルや有機ELパネルを備えたタッチディスプレイでもよい。ディスプレイ81は、画像から検出されたドライバの姿勢に基づいて、ドライバの姿勢の崩れ度合を報知する。詳しくは、ディスプレイ81は、ドライバの姿勢のステータスを5段階で表示する。最も崩れ度合の高い姿勢崩れレベル5は、ドライバが急病を発症して運転姿勢を維持できなくなった状態、すなわち運転不能状態と判定されるレベルである。ドライバは、ディスプレイ81に表示された姿勢のステータスを見て自分の運転姿勢を確認できるので、姿勢崩れレベルが5に近づいた場合には、運転不能状態と判定される前に運転姿勢を修正できる。
スピーカ82は、カーナビゲーション装置43やオーディオ装置等と共用される車載スピーカである。スピーカ82は、ドライバの運転不能状態が検出された場合に、ドライバに運転不能状態か音声で確認する。なお、ディスプレイ81が、運転不能状態を確認する画面を表示してもよい。また、スピーカ82が、ドライバの姿勢崩れレベルを音声で報知してもよい。
キャンセルスイッチ83は、運転不能状態の検出を中止するスイッチである。キャンセルスイッチ83が1回操作されると、1トリップの間、運転不能状態の検出が中止される。また、トリップ中にキャンセルスイッチ83が操作された場合には、キャンセルスイッチ83が操作されている間、又は操作されてから一定時間(数秒程度)、運転不能状態の検出が中止される。よって、ドライバがものを取る動作を行う際に、予めキャンセルスイッチ83を操作すれば、ドライバの姿勢が崩れても運転不能状態であると誤検出されるおそれがない。
次に、制御装置50が実現する各種機能について、図4を参照して説明する。画像解析手段60は、頭部検出手段61、軌跡取得手段62、痙攣検出手段63、傾き検出手段64、顔向き検出手段65、白目検出手段66を含む。
頭部検出手段61は、ドライバカメラ21により撮像された運転席の画像に基づいて、ドライバの首よりも上の頭部を逐次検出する。詳しくは、頭部検出手段61は、ドライバカメラ21により運転席の画像が撮像される都度、運転席の画像からドライバの頭部の輪郭を表すエッジを抽出し、抽出したエッジで囲まれた領域を頭部として検出する。
軌跡取得手段62は、頭部検出手段61により逐次検出されたドライバの頭部の位置から、ドライバの頭部の軌跡を取得する。軌跡取得手段62は、例えば、各画像において検出されたドライバの頭部の中心を頭部の位置とし、各画像における頭部の位置を繋げて頭部の軌跡を取得する。
痙攣検出手段63は、ドライバの痙攣、すなわちドライバの頭部及び首よりも下の胴体部の筋肉の不随意な収縮を検出する。詳しくは、痙攣検出手段63は、各画像においてドライバの頭部及び胴体部の輪郭を表すエッジを抽出し、連続した画像において抽出したエッジが規則的(周期的)に振動している場合に、ドライバが痙攣していることを検出する。
傾き検出手段64は、運転席の画像に基づいて、ドライバの胴体部に対する頭部の傾きθを検出する。詳しくは、傾き検出手段64は、頭部及び胴体部の輪郭を表すエッジに囲まれた領域を、それぞれ頭部及び胴体部として検出するとともに、頭部及び胴体部の中心軸線を検出する。そして、傾き検出手段64は、胴体部の中心軸線に対する頭部の中心軸線の傾きを頭部の傾きθとする。胴体部の中心軸線は、予め用意されている胴体部の向きのパターンと、検出した胴体部の向きとのマッチングを行って胴体部の向きを決め、向きを決めた胴体部から検出する。また、頭部の中心軸線は、頭部に含まれる顔の目、鼻、口等の特徴点を抽出し、顔の特徴点の3次元的な配置から検出する。頭部が前方に傾いた場合は、顔の特徴点と車両前方との距離が近づき、頭部が仰け反った場合は、顔の特徴点と車両前方との距離が遠ざかる。頭部の中心軸線を検出する際に、車両の前後方向における顔の特徴点の距離を用いてもよい。
あるいは、傾き検出手段64は、運転席の画像から運転席のシートベルト12を検出し、シートベルト12と頭部との位置関係から、胴体部に対する頭部の傾きθを検出する。ドライバの胴体部はシートベルト12により拘束されているため、シートベルト12の位置から胴体部の位置を推定できる。
顔向き検出手段65は、運転席の画像に基づいて、車両10の前方に対するドライバの顔の向きを検出する。顔向き検出手段65は、車両10の前面に対向する垂直平面に対する顔面の傾きを、顔向きとして検出する。
白目検出手段66は、表情検出手段67及び白目度合算出手段68を含み、ドライバが白目をむいた状態を検出する。ここで、白目をむいた状態とは、図15(c)に示すように完全に白目をむいた状態に限らず、図15(b)に示すように黒目領域が所定量よりも小さくなった状態も含む。すなわち、白目をむいた状態は、黒目が偏ることにより視野が所定範囲よりも狭くなっている状態をいう。
表情検出手段67は、運転席の画像に基づいて、ドライバの目の輪郭及び黒目領域を検出する。ここで、ドライバの目の輪郭は、瞼と目との境界線である。また、黒目領域は、目の輪郭の内側の領域において、白目よりも明度の低い領域であり、黒色に限らず、青色、茶色、灰色等の色がついた領域である。また、表情検出手段67は、抽出された口の輪郭を表すエッジから、ドライバの口の開きを検出する。
白目度合算出手段68は、表情検出手段67により検出された目の輪郭及び黒目領域に基づいて、ドライバの目の白目度合を算出する。
具体的には、白目度合算出手段68は、目の輪郭で囲まれた領域の縦方向の長さLw+Lbと、黒目領域の縦方向の長さLbとの比から、白目度合を算出する(図15参照)。長さLw+Lbに対する長さLbが小さいほど、白目度合は大きくなる。あるいは、白目度合算出手段68は、目の輪郭の上部から黒目領域の最下部までの距離Lbに基づいて、白目度合を算出する。距離Lbが小さいほど、白目度合は大きくなる。あるいは、白目度合算出手段68は、目の輪郭で囲まれた目全体の領域の面積から黒目領域の面積を除いた白目領域の面積と、黒目領域の面積との比に基づいて、白目度合を算出する。白目領域の面積に対する黒目領域の面積が小さいほど、白目度合は大きくなる。
あるいは、白目度合算出手段68は、黒目領域の偏平率に基づいて、白目度合を算出する。白目をむいた状態では、黒目領域が上側を向くため、黒目領域の偏平率が見かけ上大きくなり、黒目領域の偏平率が大きいほど、白目度合は大きくなる。あるいは、白目度合算出手段68は、目の輪郭で囲まれた領域の縦方向の中心となる中心線から黒目領域の最下部までの距離Lcに基づいて、白目度合を算出する。
学習手段51は、ドライバが運転不能状態でない場合において、傾き検出手段64により検出された頭部の傾きθを学習する。また、学習手段51は、ドライバが運転不能状態でない場合において、顔向き検出手段65により検出された顔の向きを学習する。さらに、学習手段51は、ドライバが運転不能状態でない場合において、頭部検出手段61により検出された頭部の揺れの振幅を学習する。すなわち、学習手段51は、ドライバの運転姿勢の癖を学習する。車両10を運転するドライバが複数いる場合には、ドライバごとに運転姿勢の癖を学習する。
状態検出手段70は、フレームアウト状態検出手段71、姿勢崩れ状態検出手段72、向き崩れ状態検出手段73、揺れ状態検出手段74、及び白目状態検出手段75を含む。
フレームアウト状態検出手段71は、車両10の走行中に、フレームアウトを判定して、フレームアウトしている場合に、ドライバが運転不能状態であることを検出する。詳しくは、フレームアウト状態検出手段71は、頭部検出手段61により検出されたドライバの頭部が、画像の範囲FAから外れている場合に、ドライバが運転不能状態であることを検出する。ここで、範囲FAは、ドライバカメラ21により撮像された画像における所定の範囲である。通常の運転時には、ドライバの頭部が範囲FAから外れることはない。範囲FAを、撮像された画像の全体としてもよい。
ドライバが車両10を正常に運転している場合は、図6に示すように、ドライバがものを取る動作をしても、ドライバの頭部は画像の範囲FAに収まることが多い。これに対して、急病を発症してドライバの意識がなくなると、図5に示すように、ドライバの頭部が範囲FAから外れることがある。よって、フレームアウト状態検出手段71は、ドライバの頭部が画像の範囲FAから外れている場合に、ドライバが運転不能状態であることを検出する。
このとき、フレームアウト状態検出手段71は、頭部が範囲FAから外れるまでに、軌跡取得手段62により取得された軌跡を考慮すると、ドライバの運転不能状態を検出する精度を向上させることができる。画像の不明瞭等により範囲FA内でドライバの頭部を検出できなかった場合と、ドライバの頭部が移動して範囲FA内で検出できなかった場合とを、頭部の軌跡を用いることにより判別できるため、ドライバの運転不能状態の検出精度が向上する。
なお、ドライバが一時的に頭部を移動させた場合や、画像の不明瞭等により頭部の不検出となった場合には、軌跡の最終位置付近で、再度頭部を検出できることが多い。よって、頭部検出手段61により頭部が検出されなくなった場合に、頭部検出手段61は、軌跡取得手段62により取得された軌跡の最終位置付近を探索する。このようにすると、ドライバの頭部が不検出になった場合でも、頭部の軌跡を用いて、再度の頭部検出を効率的に行うことができる。
姿勢崩れ状態検出手段72は、車両10の走行中に、ドライバの姿勢崩れの判定をして、姿勢崩れしている場合に、ドライバが運転不能状態であることを検出する。詳しくは、姿勢崩れ状態検出手段72は、傾き検出手段64により検出された頭部の傾きθが、閾値Th1(相対傾き閾値)よりも大きい場合に、ドライバが運転不能状態であることを検出する。
通常、ドライバの胴体部は運転席のシート11やシートベルト12により拘束されているため、ドライバの意識がなくなっても胴体部は比較的動きにくい。一方、ドライバの頭部は拘束されていないことが多いため、ドライバの意思で頭部の位置を維持する必要がある。そのため、急病を発症してドライバの意識がなくなると、ドライバは頭部の位置を維持できなくなり、図7に示すように、頭部は胴体部に対していずれかの方向に大きく傾くことが多い。
これに対して、走行中にドライバが脇見をするときは、一般的にドライバは首を回転させて見るため、図8に示すように、胴体部に対する頭部の傾きは小さくなることが多い。また、ドライバが運転席から離れた位置のものを取るときは、一般的にドライバは意識して胴体部を傾けるため、図9に示すように、胴体部に対する頭部の傾きθは小さくなることが多い。よって、姿勢崩れ状態検出手段72は、頭部の傾きθが閾値Th1よりも大きい場合に、ドライバが運転不能状態であることを検出する。このとき、姿勢崩れ状態検出手段72は、更にドライバの顔が車両10の前方を向いていないことを条件として、ドライバが運転不能状態であることを検出すると、運転不能状態の誤検出を抑制できる。
向き崩れ状態検出手段73は、車両10の走行中に、ドライバの顔向きの崩れの判定をして、顔向きが崩れている場合に、ドライバが運転不能状態であることを検出する。詳しくは、向き崩れ状態検出手段73は、顔向き検出手段65により検出された車両10の前方に対する顔の向きが、時間T2(向き崩れ判定時間)を超えて閾値Th2(顔向き閾値)よりも大きい場合に、ドライバが運転不能状態であることを検出する。
一般的に、急病を発症すると、ドライバは顔の向きを維持できなくなり、図10に示すように、車両10の前方に対する顔の向きが崩れたままの状態になる。これに対して、走行中にドライバが脇見をするときは、一般的にドライバは顔の向きを変えてもすぐに戻すことが多い。よって、向き崩れ状態検出手段73は、上記場合にドライバが運転不能状態であることを検出する。
または、向き崩れ状態検出手段73は、顔向き検出手段65により検出された車両10の前方に対する顔の向きが、閾値Th2よりも大きく、且つドライバがハンドル15を放している場合に、ドライバが運転不能状態であることを検出する。ドライバがハンドル15を放しているか否かは、画像から検出してもよいし、ハンドル15に設置した圧力センサ等により検出してもよい。
一般的に、急病を発症すると、ドライバは顔の向きを維持できなくなり、図10に示すように、車両10の前方に対する顔の向きが崩れるとともに、ドライバはハンドル15を放すことが多い。これに対して、走行中にドライバが脇見をするときは、図11に示すように、一般的にドライバはハンドル15を把持したまま顔の向きを変えることが多い。また、ドライバが脇見をするときは、頭部を傾けないで、首を回して顔向きだけ変えることもある。よって、向き崩れ状態検出手段73は、上記場合にドライバが運転不能状態であることを検出する。
または、向き崩れ状態検出手段73は、顔向き検出手段65により検出された顔の向きが閾値Th2よりも大きく、且つアクセル開度が所定開度よりも大きい場合に、ドライバが運転不能状態であることを検出する。
一般的に、走行中にドライバが脇見をするときは、安全上アクセルを大きく踏み込まないことが多い。したがって、車両10の前方に対する顔の向きが閾値Th2よりも大きく、且つアクセル開度が所定開度よりも大きい場合には、脇見などによる顔向きの崩れではなく、急病による顔向きの崩れである可能性が高い。よって、向き崩れ状態検出手段73は、上記場合にドライバが運転不能状態であることを検出する。
または、向き崩れ状態検出手段73は、顔向き検出手段65により検出された顔の向きが閾値Th2よりも大きく、且つ時間T3(操作判定時間)よりも長い時間アクセル操作及びブレーキ操作が行われていない場合に、ドライバが運転不能状態であることを検出する。
一般的に、急病を発症すると、車両10の前方に対する顔の向きが崩れるとともに、時間T3よりも長い時間アクセル操作及びブレーキ操作が行われない。これに対して、走行中にドライバが脇見をするときは、一般的にドライバは、顔の向きを変えるとともに時間T3内にアクセル操作又はブレーキ操作を行うことが多い。よって、向き崩れ状態検出手段73は、上記場合にドライバが運転不能状態であることを検出する。
揺れ状態検出手段74は、車両10の走行中において、外力に伴うドライバの頭部の揺れ状態を判定して、頭部が通常と異なる揺れをしている場合に、ドライバが運転不能状態であることを検出する。詳しくは、揺れ状態検出手段74は、車両10に外力が加わってから時間T5(揺れ判定時間)経過するまでの間、頭部検出手段61により検出された頭部の揺れの振幅が、振幅Am1(第1振幅)よりも小さい場合に、又は振幅Am2(第2振幅)よりも大きい場合に、ドライバが運転不能状態であることを検出する。振幅Am2は振幅Am1よりも大きい値である。
図12に示すように、車両10に外力が加わると、所定の時間差の後、ドライバに振動が伝わる。通常、ドライバの意識がある場合、車両10に外力(詳しくは上下方向の外力)が加わった際に、図13に示すように、ドライバの頭部は振幅Am1から振幅Am2の範囲内の振幅で揺れる。これに対して、ドライバが急病を発症して体が硬直していると、正常時よりも頭部の揺れの振幅が小さくなる。また、ドライバが急病を発症して体が弛緩していると、正常時よりも頭部の揺れの振幅が大きくなる。よって、揺れ状態検出手段74は、上述した場合にドライバの運転不能状態を検出する。
なお、時間T5は、車両10に外力が加わってから、ドライバの動きが外力と無関係な動きとなるまでの時間である。また、振幅Am1及び振幅Am2は時間の関数であり、図13はその1例を示している。揺れ状態の判定では、簡易的に、外力が加わってから時間T5経過するまでの間における振幅Am1の最小値、及び振幅Am2の最大値を閾値としてもよい。
白目状態検出手段75は、車両10の走行中に、白目の判定をして、白目検出手段66により白目をむいた状態が検出された場合に、ドライバが運転不能状態であることを検出する。詳しくは、白目状態検出手段75は、白目度合算出手段68により算出された白目度合が、閾値Th3(白目閾値)よりも大きい場合に、ドライバが運転不能状態であることを検出する。
通常、ドライバが運転可能な状態の場合は、ドライバが白目をむくことはない。これに対して、ドライバが急病を発症すると、図14に示すように、ドライバが白目をむくことがある。よって、白目状態検出手段75は、白目をむいた状態が検出された場合に、ドライバが運転不能状態であることを検出する。
記憶装置52(記憶手段)には、各状態検出手段により用いられる各閾値及び各判定値が記憶されている。さらに、記憶装置52には、学習手段51により学習された頭部の傾きθ、顔の向き及び頭部の揺れの振幅が記憶される。また、記憶装置52には、ドライバの病歴及び年齢を含む個人情報が登録されている。ドライバが複数いる場合には、各ドライバの個人情報が登録されている。また、記憶装置52には、運転不能状態と判定しないドライバの姿勢、及び運転不能状態と判定するドライバの姿勢が登録されている。運転不能状態と判定しないドライバの姿勢は、例えば通常の運転姿勢や運転中によくする姿勢である。運転不能状態と判定するドライバの姿勢は、例えば持病があるドライバが発作時にする姿勢である。ドライバは、予め運転席で登録したい姿勢をドライバカメラ21で撮像して、記憶装置52に登録する。
次に、ドライバの運転不能状態を検出する処理手順について、図16のフローチャートを参照して説明する。本処理手順は、制御装置50が実行する。
まず、車両10の車速がV以下か否か判定する(S10)。Vは0km/h(停車)であってもよいし、停車とみなせる程度に十分に低い速度(例えば1km/h)である。車速がV以下(S10:YES)の場合は、車速がVよりも高いと判定されるまで、S10の判定を繰り返し実行する。車速がVよりも高い場合(S10:N0)は、走行中であると判定して、ドライバの運転不能状態の検出処理を開始し、最初にフレームアウトの判定を行う。
ここで、S10の判定では、ドライバが運転操作を行っているか否かも判定して、運転操作を行っている場合には、S10の判定を繰り返し実行するようにし、走行中で且つ運転操作を行っていない場合に、ドライバの運転不能状態の検出処理を開始するようにしてもよい。例えば、車両10の車速がV2(例えば50km/h)以上、又は舵角センサ32により検出された操舵角が所定の角度以上、又は操舵角速度が所定の角速度以上か否か判定する。V2はドライバがアクセルペダルの操作を行っているとみなせる値、所定の角度、及び所定の角速度は、ドライバがハンドル操作を行っているとみなせる値である。上記3つの条件のすくなくとも1つの条件を満たしている場合には、ドライバが運転操作を行っているとして、ドライバの運転不能状態の検出処理を開始しない。
フレームアウトの判定では、まず、運転席の画像からドライバの頭部及び胴体部を検出する(S11)。このとき、ドライバの頭部に含まれる顔の特徴点を検出して、ドライバの認証を行う。なお、ドライバの認証は、予めスマートフォン等の携帯端末との通信で行っていてもよし、個人情報が登録された車両10のキーとの通信で行ってもよい。
次に、頭部位置が検出できたか否か判定する(S12)。頭部位置が検出できなかった場合は(S12:NO)、後述するS19の処理で記録した頭部位置から頭部の軌跡情報を取得し、軌跡情報がフレームアウトを示しているか否か判定する(S13)。すなわち、頭部位置の不検出が、頭部が撮像範囲外へ出たことによる不検出か、画像の不明瞭等による不検出かを判定する。
頭部の軌跡情報がフレームアウトを示していない場合は(S13:NO)、一時的な画像の不明瞭等による不検出と判定して、S10の処理に戻る。一方、頭部の軌跡情報がフレームアウトを示している場合は(S13:YES)、頭部が撮像範囲外へ出たと判定する。この場合、頭部が撮像範囲外に存在することを確認するために補助的に使用する、シートベルトセンサ22及び座面センサ23の情報を取得する(S14)。
次に、時間T0(フレームアウト判定時間)以上継続して、フレームアウトした状態か否か判定する(S15)。詳しくは、時間T0以上継続して、頭部位置が範囲FAから外れており、且つシートベルト12の引き出し量が、シートベルト12の装着時に検出された引き出し量よりも第1引き出し量を超えて多く、且つ座部11aの圧力分布において高圧部分が座部11aの端部に偏っているか否か判定する。そして、上記3つの条件を満たしている場合に、時間T0を超えてフレームアウトした状態であると判定する。このときさらに、シートベルトセンサ22により検出された量検出時間あたりの引き出し量が、すなわちシートベルト12の引き出し速度が、第2引き出し量よりも多いことを条件としてもよい。
なお、シートベルトセンサ22及び座面センサ23の情報は使用しなくてもよい。すなわち、S14の処理は実行せず、S15の処理では、時間T0以上継続して、頭部位置が範囲FAから外れているか否か判定するだけでもよい。
ここで、時間T0は、記憶装置52に登録されている個人情報に基づいて設定する。例えば、年齢が高い人は低い人よりも時間T0を短くする。また、特定の病歴がある人は、特定の病歴がない人よりも時間T0を短くする。さらに、時間T0は、ドライバの状態や走行環境に応じて変更する。ドライバが運転不能状態になる兆候を示している状態や、ドライバが運転不能状態である可能性が高い状態や、ドライバが運転不能状態となった場合に衝突の危険性が高い走行環境では、時間T0を短縮してドライバの運転不能状態を検出されやすくする。
具体的には、S19の処理で記録した頭部位置が所定振幅よりも大きい振幅で振動している場合、すなわち頭部がふらふら揺れている場合には、運転不能状態になる確率が高いので、時間T0を短縮する。また、頭部の移動速度が大きいほど、ものを取る時の姿勢崩れではなく急病による姿勢崩れである可能性が高い。よって、取得した頭部の軌跡情報において、頭部位置の移動速度が大きいほど時間T0を短くする。また、急病による姿勢崩れの場合は、頭部が範囲FAの端に近づくほど、頭部の移動速度が大きくなることが多い。よって、頭部が範囲FAの端に近づくほど、頭部の移動速度が大きくなる場合は、ものを取る時の姿勢崩れではなく急病による姿勢崩れである可能性が高い。したがって、記録した頭部位置が範囲FAの端に近づくほど、頭部の移動速度が大きくなる場合には、時間T0を短くする。また、痙攣が検出された場合には、運転不能状態になる確率が高いので、時間T0を短縮する。
また、衝突を回避するために、車速が速いほど早く適切な車両制御を開始する必要があるので、車両10の車速が高いほど時間T0を短くする。また、衝突を回避するために、先行車両との車間距離を先行車両との相対速度で除したTTC(衝突余裕時間)が短いほど、早く適切な車両制御を開始する必要があるので、TTCが短いほど時間T0を短くする。また、車両10においてACC(Adaptive Cruise Control)やLKA(Lane Keep Assist)等の運転支援制御が実行されている場合には、ドライバは長い時間姿勢を崩すことがあるので、時間T0を延長する。さらに、統計的に出ている心臓発作等の急病が発症しやすい曜日や時間帯では、時間T0を短縮してもよい。
時間T0以上継続してフレームアウトした状態でない場合は(S15:NO)、S21の処理に進む。時間T0以上継続してフレームアウトした状態の場合は(S15:YES)、ドライバが運転不能状態であることを検出し、ドライバに運転不能状態か確認する。詳しくは、スピーカ82からの音声、ディスプレイ81上での表示、インジケータ(図示なし)の点滅等により運転不能状態の検出を通知し、所定の時間内にドライバから応答があるか否か判定する(S16)。
所定の時間内に、ドライバのタッチディスプレイへの接触、ドライバの音声、ハンドル15やブレーキ等の車両10の操作、特定のスイッチの操作等のいずれかを検出した場合には、ドライバから応答ありと判定する(S16:NO)。上記のいずれも検出しなかった場合には、ドライバから応答なしと判定する(S16:YES)。
そして、ドライバから応答ありと判定した場合は、ドライバによる運転が可能であると認識したことを、スピーカ82からの音声、又はディスプレイ81上での表示等で通知する(S17)。一方、ドライバから応答なしと判定した場合は、適切な制動及び操舵を行い安全に停車するように、車両制御装置90へ指示を出す。また、周囲の車両に危険を報知するために、車両制御装置90へヘッドライトの灯火及びクラクションの吹聴の指示を出す(S18)。さらに、車両10の他の搭乗者へも危険を報知する。
次に、S12の処理で頭部位置が検出できたと判定した場合には(S12:YES)、頭部及び胴体部の位置を記録する(S19)。各画像において記録された頭部の位置から、頭部の軌跡情報が取得できる。
続いて、頭部位置が予め設定した範囲FA外に出たか否か判定する(S20)。頭部位置が撮像範囲内にあっても範囲FA外に出た場合には(S20:YES)、S15の処理に進み、フレームアウトの判定を行う。
続いて、頭部及び胴体部の位置関係に基づいて、ドライバの姿勢が、記憶装置52に予め登録されている運転不能状態と判定する姿勢であるか否か判定する(S21)。ドライバの姿勢が運転不能状態と判定する姿勢の場合は(S21:YES)、ドライバが運転不能状態であることを検出し、S16の確認処理に進む。
ドライバの姿勢が運転不能状態と判定する姿勢でない場合は(S21:NO)、ドライバの姿勢が、記憶装置52に予め登録されている運転不能状態と判定しない姿勢か否か判定する(S22)。ドライバの姿勢が運転不能状態と判定しない姿勢の場合は(S22:YES)、S10の処理に戻る。ドライバの姿勢が運転不能状態と判定しない姿勢と異なる場合は(S22:NO)、次に姿勢崩れの判定を行う。
まず、姿勢崩れを検出したか否か判定する(S23)。詳しくは、図17のサブルーチンの処理により、姿勢崩れを検出する。まず、頭部の傾き及び頭部の傾きの方向を算出する(S231)。続いて、胴体部の傾き及び胴体部の傾きの方向を算出する(S232)。続いて、算出した胴体部の傾きと頭部の傾きとのなす角度、すなわち胴体部に対する頭部の傾きθを算出する(S233)。算出した頭部の傾きθは、ドライバの運転不能状態が検出されなかった場合に学習する。そして、算出した頭部の傾きθが閾値Th1(相対傾き閾値)よりも大きい場合に、姿勢崩れを検出する(S234)。そして、姿勢崩れを検出していない場合は(S23:NO)、S25の顔向き崩れの判定に進む。
姿勢崩れを検出した場合は(S23:YES)、時間T1以上継続して、頭部の傾きθが閾値Th1よりも大きく、且つ顔が車両10の前方を向いていないか判定する(S24)。
このとき、簡易的に、時間T1以上継続して、頭部の傾きθが閾値Th1よりも大きいことのみ、又は顔が車両10の前方を向いていないことのみを条件としてもよい。また、このときさらに、時間T1以上継続して、算出された頭部の傾きの方向及び胴体部の傾きの方向が変動しない、すなわち、頭部の位置及び胴体部の位置が範囲UA(不動判定範囲)内にあることを条件としてもよい。範囲UAは、頭部及び胴体部が動いていないとみなせる範囲である。また、算出された頭部の傾きθが、学習された頭部の傾きよりも、判定値D1(傾き判定値)を超えて大きいことを条件としてもよい。また、時間T3(操作判定時間)よりも長い時間、ハンドル15が操作されていないことを条件としてもよい。
ここで時間T1は、時間T0と同様に、記憶装置52に登録されている個人情報に基づいて設定し、車速、TTC、運転支援制御の実行の有無に応じて変更する。また、閾値Th1は、痙攣が検出された場合に縮小する。さらに、時間T0と同様に、統計的に出ている心臓発作等の急病が発症しやすい曜日や時間帯では、時間T1を短縮してもよい。
時間T1を超えて、頭部の傾きθが閾値Th1よりも大きく、且つ顔が車両10の前方を向いていない場合は(S24:YES)、ドライバが運転不能状態であることを検出し、S16の確認処理に進む。また、時間T1以上継続して、頭部の傾きθが閾値Th1よりも大きくない、又は顔が車両の前方を向いている場合は(S24:NO)、次に顔向き崩れの判定を行う。
まず、顔向きの崩れを検出したか否か判定する(S25)。詳しくは、車両の前方に対するドライバの顔の向きを検出する。そして、検出した顔の向きが閾値Th2(顔向き閾値)よりも大きい場合に、顔向きの崩れを検出する。顔向きの崩れを検出していない場合は(S25:NO)、S28の揺れ状態の判定に進む。なお、検出した顔の向きは、ドライバの運転不能状態が検出されなかった場合に学習する。
顔向きの崩れを検出した場合は(S25:YES)、時間T2(向き崩れ判定時間)以上継続して、顔向きが閾値Th2よりも大きいか否か判定する(S26)。
ここで時間T2は、時間T0と同様に、記憶装置52に登録されている個人情報に基づいて設定し、車速、TTC、運転支援制御の実行の有無に応じて変更する。さらに、時間T0と同様に、統計的に出ている心臓発作等の急病が発症しやすい曜日や時間帯では、時間T2を短縮してもよい。また、閾値Th2は、痙攣が検出された場合に縮小する。
時間T2以上継続して顔向きが閾値Th2よりも大きい場合は(S26:YES)、ドライバが運転不能状態であることを検出し、S16の確認処理に進む。
時間T2以上継続して顔向きが閾値Th2よりも大きくない場合は(S26:NO)、次に、時間T3以上継続して、ドライバがハンドル15を解放している、又はアクセル開度が所定開度よりも大きい、又はアクセル操作及びブレーキ操作がないか否か判定する(S27)。S27の処理における3つの条件のすくなくとも1つの条件を満たしている場合は(S27:YES)、ドライバが運転不能状態であることを検出して、S16の確認処理に進む。S27の処理における3つの条件のいずれも満たしていない場合は(S27:NO)、次に揺れ状態の判定を行う。
ここで、S26の判定ではさらに、S27の処理における3つの条件のすくなくとも1つを満たすことを条件としてもよい。また、S26及びS27の判定ではさらに、検出された顔の向きが、学習された顔の向きよりも、判定値D1(傾き判定値)を超えて大きいことを条件としてもよい。また、一般的に、ドライバの手がドライバの首よりも上にあるままの状態で運転不能状態になることはないので、ドライバの手がドライバの首よりも下にあることを条件としてもよい。
次に、揺れ状態の判定では、外力に対して通常とは異なる頭部のふらつきを検出したか否か判定する(S28)。詳しくは、車両10に外力が加わってから時間T5(揺れ判定時間)経過するまでの間、頭部の揺れの振幅が、振幅Am1(第1振幅)よりも小さい、又は振幅Am2(第2振幅)よりも大きいか否か判定する。
このときさらに、車両10に外力が加わってから時間T5経過するまでの間は、頭部が通常と異なる振幅で振動しており、時間T5経過した後、頭部の位置が範囲UA内にあることを条件としてもよい。すなわち、外力に応じて頭部が振動し、且つ外力の影響がなくなった後に頭部の位置が変動しないことを条件としてもよい。また、ドライバが運転不能状態であることが検出されなかった場合に、頭部の揺れの振幅を学習し、検出された頭部の揺れの振幅が、学習された頭部の揺れの振幅よりも判定値D2(振幅判定値)を超えて大きいことを条件としてもよい。また、時間T3以上継続して、ハンドル15が操作されていないことを条件としてもよい。
外力に対して通常とは異なる頭部のふらつきを検出した場合は(S28:YES)、ドライバが運転不能状態であることを検出して、S16の確認処理に進む。外力に対して通常とは異なる頭部のふらつきを検出していない場合は(S28:NO)、次に白目状態の判定を行う。
まず、白目をむいた状態を検出したか否か判定する(S29)。詳しくは、算出した白目度合が閾値Th3(白目閾値)よりも大きい場合に、白目をむいた状態を検出したと判定する。ここでは、ドライバの両目の白目度合をそれぞれ算出し、両目の白目度合がそれぞれ閾値Th3よりも大きいことを条件として、白目をむいた状態を検出したと判定する。ただし、片方の目だけが検出された場合や、簡易的に白目をむいた状態を検出する場合は、片方の目の白目度合だけで白目をむいた状態の検出を判定してもよい。
白目をむいた状態を検出していないと判定した場合は(S29:NO)、フレームアウト判定、姿勢崩れ判定、顔向き崩れ判定、揺れ状態判定、及び白目状態判定の全ての判定で、ドライバが運転不能状態であることが検出されなかったので、S10の処理に戻る。
白目をむいた状態を検出したと判定した場合は(S29:YES)、時間T4(白目判定時間)以上継続して、白目度合が閾値Th3よりも大きいか否か判定する(S30)。このときさらに、時間T3以上継続して、ハンドル15が操作されていないことを条件としてもよい。
ここで時間T4は、時間T0と同様に、記憶装置52に登録されている個人情報に基づいて設定し、車速、TTCに応じて変更する。また、閾値Th3は、痙攣が検出された場合に縮小する。さらに、時間T0と同様に、統計的に出ている心臓発作等の急病が発症しやすい曜日や時間帯では、時間T4を短縮してもよい。
時間T4以上継続して白目度合が閾値Th3よりも大きくない場合は(S30:NO)、S10の処理に戻る。時間T4以上継続して白目度合が閾値Th3よりも大きい場合は(S30:YES)、ドライバの運転不能状態を検出して、S16の確認処理に進む。以上で本処理を終了する。
なお、検出した胴体部に対する頭部の傾きθ、検出した顔の向き、検出した頭部の位置に基づいて、図18に示すように、ドライバの姿勢崩れ度合をディスプレイ81に表示する。検出した頭部の傾きθが大きいほど姿勢崩れレベルを高くする。また、検出した顔の向きが大きいほど姿勢崩れレベルを高くする。また、検出した頭部の位置が、運転時の標準位置から離れているほど姿勢崩れレベルを高くする。運転時の標準位置は、車両10の始動時の頭の位置、あるいは、ドライバが運転不能状態であることが検出されなかったときの頭部の平均位置とする。
以上説明した本実施形態によれば、以下の効果を奏する。
・ドライバの頭部が範囲FAから外れた場合に、ドライバが運転不能状態であることを検出することにより、ドライバの運転不能状態を簡易に検出できる。さらに、頭部が範囲FAから外れるまでの軌跡を考慮すると、ドライバの運転不能状態を検出する精度を向上させることができる。
・ドライバが運転席から離れた位置のものを取る時は、頭部が範囲FAから一時的に離れても範囲FAに戻ってくることが多い。よって、時間T0を超えて、ドライバの頭部が範囲FAから外れていることを条件とすることにより、ドライバの運転不能状態の誤検出を抑制できる。
・範囲FAを画像の全体とすれば、画像中にドライバの頭部が存在しない場合に、ドライバが運転不能状態であることが検出されるため、検出処理をより簡易にできる。
・急病によりドライバの姿勢が崩れた場合、シートベルト12の引き出し量が装着時の引き出し量よりも第1引き出し量を超えて多くなると考えられる。また、ドライバの頭部が不検出になった場合でも、シートベルト12の引き出し量が装着時の引き出し量よりも第1引き出し量を超えて多いときには、ドライバの頭部は撮像範囲から外れた位置に存在することがわかる。よって、シートベルト12の引き出し量が、装着時の引き出し量よりも第1引き出し量を超えて多いことを条件とすることにより、ドライバの運転不能状態を高精度に検出できる。
・急病を発症した時には、ものを取る時よりもドライバの姿勢が急激に崩れることが多い。そのため、急病を発症した時には、ものを取る時よりもシートベルト12が急激に引き出されることが多い。よって、量検出時間あたりのシートベルト12の引き出し量が、第2引き出し量よりも多いことを条件とすることにより、ドライバの運転不能状態の誤検出を抑制できる。
・急病によりドライバの姿勢が崩れた場合、運転席の座部11aの圧力分布における高圧部分が、座部11aの端部に偏ると考えられる。また、ドライバの頭部が不検出になった場合でも、運転席の座部11aの圧力分布における高圧部分が座部の端部に偏っているときは、ドライバの頭部は撮像範囲から外れた位置に存在することがわかる。よって、座部11aの圧力分布における高圧部分が座部11aの端部に偏っていることを条件とすることにより、ドライバの運転不能状態を高精度に検出できる。
・所定振幅よりも大きい頭部の振動が検出された場合に、すなわち頭部がふらふら揺れている場合に、時間T0を短縮することにより、ドライバの運転不能状態の判定に要する時間を短縮できる。ひいては、ドライバの運転不能状態時における車両制御の実行を早く開始できる。
・頭部の移動速度が大きいほど、時間T0を短くすることにより、ドライバの運転不能状態の判定に要する時間を短縮できる。
・頭部が範囲FAの端に近づくほど、頭部の移動速度が大きくなる場合に、運転不能状態の判定に要する時間を短縮することにより、ドライバの運転不能状態の判定に要する時間を短縮できる。
・胴体部に対する頭部の傾きθが閾値Th1よりも大きい場合には、ものを取るときなどの姿勢崩れではなく急病による姿勢崩れである可能性が高い。したがって、胴体部に対する頭部の傾きθが閾値Th1よりも大きい場合に、ドライバが運転不能状態であることを検出することにより、ドライバの運転不能状態を高精度に検出できる。
・走行中に、ドライバが胴体部に対して頭部を大きく傾ける動作を意識的にした場合は、安全上ドライバは顔を車両10の前方に向けたままにすると考えられる。よって、顔が車両10の前方を向いていないことを条件とすることにより、ドライバの運転不能状態を誤検出することを抑制できる。
・走行中に、ドライバが胴体部に対して頭部を大きく傾ける動作を意識的にした場合は、安全上ドライバは頭部の位置をすぐに元の位置に戻すと考えられる。よって、時間T1を超えて、胴体部に対して頭部が大きく傾いていることを条件とすることにより、ドライバの運転不能状態を誤検出することを抑制できる。
・時間T1を超えて、胴体部に対して頭部が大きく傾いたまま、頭部と胴体部の位置が変動しないことを条件とすることにより、ドライバの運転不能状態を誤検出することを抑制できる。
・検出された頭部の傾きθが学習された頭部の傾きよりも、判定値D1を超えて大きいことを条件とすることにより、ドライバが胴体部に対して頭部を傾ける姿勢の癖を持っている場合でも、ドライバの運転不能状態を誤検出することを抑制できる。
・車両10の前方に対する顔の向きが、時間T2を超えて閾値Th2よりも大きい場合には、脇見などによる顔向きの崩れではなく、急病による顔向きの崩れである可能性が高い。したがって、上記場合にドライバが運転不能状態であることを検出することにより、ドライバの運転不能状態を高精度に検出できる。
・車両10の前方に対する顔の向きが閾値Th2よりも大きく、且つドライバがハンドル15を放している場合には、脇見などによる顔向きの崩れではなく、急病による顔向きの崩れである可能性が高い。したがたって、上記場合にドライバが運転不能状態であることを検出することにより、ドライバの運転不能状態を高精度に検出できる。
・車両10の前方に対する顔の向きが閾値Th2よりも大きく、且つアクセル開度が所定開度よりも大きい場合には、脇見などによる顔向きの崩れではなく、急病による顔向きの崩れである可能性が高い。したがって、上記場合にドライバが運転不能状態であることを検出することにより、ドライバの運転不能状態を高精度に検出できる。
・車両10の前方に対する顔の向きが閾値Th2よりも大きく、且つ時間T3よりも長い時間アクセル及びブレーキの操作が行われない場合には、脇見などによる顔向きの崩れではなく、急病による顔向きの崩れである可能性が高い。したがって、上記場合にドライバが運転不能状態であることを検出することにより、ドライバの運転不能状態を高精度に検出できる。
・一般に、ドライバが運転可能状態であれば、時間T3内にハンドル操作が行われる。よって、時間T3よりも長い時間、ハンドル操作されていないことを条件とすることにより、ドライバの運転不能状態を誤検出することを抑制できる。
・一般的に、ドライバが運転可能な状態であれば、時間T3よりも長い時間、アクセルを大きく踏み込み続けることはない。よって、時間T3よりも長い時間、アクセル開度が所定開度よりも大きいことを条件とすることにより、ドライバの運転不能状態を誤検出することを抑制できる。
・走行中に、ドライバが車両10の前方対する顔の向きを変える動作を意識的にした場合は、安全上ドライバはすぐに顔の向きを正面に戻すと考えられる。よって、時間T2を超えて、車両10の正面に対する顔の向きが閾値Th2よりも大きいことを条件とすることにより、ドライバの運転不能状態を誤検出することを抑制できる。
・一般的に、ドライバが急病を発症した場合、ドライバの手がドライバの首よりも上にあるままの状態で運転不能状態になることはない。よって、ドライバの手がドライバの首よりも下にあることを条件とすることにより、ドライバの運転不能状態を誤検出することを抑制できる。
・車両に外力が加わってから時間T5経過するまでの間、頭部の揺れの振幅が振幅Am1よりも小さい又は振幅Am2よりも大きい場合に、ドライバが運転不能状態であることを検出することにより、ドライバの運転不能状態を簡易に検出できる。
・一般に、ドライバの意識がない場合は、外力に応じて頭部が振動し、外力の影響がなくなると頭部は動かなくなる。これに対して、ドライバが癖で頭部を振動させている場合は、外力の影響に関わらず頭部が振動している。よって、外力に応じて頭部が振動し、且つ外力の影響がなくなった後に頭部の位置が変動しないことを条件とすることにより、ドライバの運転不能状態を誤検出することを抑制できる。
・検出された頭部の揺れの振幅が、学習された頭部の揺れの振幅よりも判定値D2を超えて大きいことを条件とすることにより、ドライバが頭を揺らす癖を持っている場合でも、ドライバの運転不能状態を誤検出することを抑制できる。
・白目をむいた状態が検出された場合に、ドライバが運転不能状態であることを検出することにより、ドライバの運転不能状態を高精度に検出できる。
・画像に基づき、ドライバの目の輪郭及び黒目領域が検出される。そして、検出された目の輪郭及び黒目領域に基づいて、白目度合が算出され、白目度合が閾値Th3よりも大きい場合に、ドライバが運転不能状態であることを検出される。よって、ドライバが白目をむいている状態を高精度に検出し、ひいては、ドライバの運転不能状態を高精度に検出できる。
・ドライバが運転可能な状態の場合は、視線を上に向けて一時的に白目の度合が大きくなることがあっても、白目の度合が大きくなったままの状態になることはない。よって、時間T4を超えて白目度合が閾値Th3よりも大きいことを条件とすることにより、ドライバの運転不能状態を誤検出することを抑制できる。
・両面の白目度合がそれぞれ閾値Th3よりも大きいことを条件とすることにより、片目に眼帯を装着していたり、片目が義眼であったりして、白目をむいた状態と誤検出されても、もう一方の目が白目をむいていない場合には、ドライバの運転不能状態は検出されない。よって、ドライバの運転不能状態を誤検出することを抑制できる。
・目の縦方向の長さLw+Lbと黒目領域の縦方向の長さLbとの比は、目の全領域に対する白目の領域の割合と相関があるため、目の縦方向の長さLw+Lbと黒目領域の縦方向の長さLbとの比から、白目度合を算出できる。
・目の輪郭の上部から黒目領域の最下部までの距離Lbが小さいほど、白目度合は大きい。よって、目の輪郭の上部から黒目領域の最下部までの距離Lbから、白目度合を算出できる。
・白目領域の面積と黒目領域の面積との比から、白目度合を算出できる。
・白目をむいた状態では、黒目領域が上側を向くため、黒目領域の扁平率が見かけ上大きくなる。よって、黒目領域の偏平率から白目度合を算出できる。
・目の全体の縦方向の中心線から黒目領域の最下部までの距離Lcが大きいほど、黒目領域は小さく、白目度合が大きくなる。よって、中心線から黒目領域の最下部までの距離Lcから、白目度合を算出できる。
・一般に、ドライバが痙攣を起こした場合には、痙攣を起こしていない場合よりも、運転不能な状態になる確率が高い。よって、痙攣が検出された場合には、閾値Th1、Th2を縮小することにより、ドライバの運転不能状態を検出されやすくできる。
・車速が高いほど、時間T0、T1、T2、T4を短くすることにより、車速が高いほどドライバの運転不能状態の判定に要する時間が短くなり、適切な車両制御の実行を早く開始できる。
・TTCが短いほど時間T0、T1、T2、T4を短くすることにより、TTCが短いほど、ライバの運転不能状態の判定に要する時間が短くなり、適切な車両制御の実行を早く開始できる。
・ドライバの病歴や年齢を含む個人情報に基づいて時間T0、T1、T2、T4を設定することにより、運転不能状態の判定に要する時間を、ドライバ個人の特性に応じた時間にすることができる。
・車両において運転支援制御が実行されている場合には、時間T0、T1、T2を延長することにより、運転不能状態の誤検出を抑制できる。
・ドライバの姿勢の崩れ度合をドライバに報知することにより、ドライバは自分の姿勢を認識できる。そのため、ドライバは、運転姿勢が崩れても、運転不能状態と検出されないように姿勢を修正することができる。これにより、運転不能状態の誤検出を抑制できる。
・ドライバの運転不能状態が検出された場合に、ドライバに運転不能か確認することにより、ドライバの運転不能状態を誤検出した場合に、車両を安全に停止させるための車両制御の実行を回避できる。
(他の実施形態)
・ドライバカメラ21は、車室内に搭載された4つのカメラのうちの一部でもよい。ドライバカメラ21は、最低限1つあればよい。
・フレームアウト状態検出手段71は、軌跡取得手段62により取得された軌跡に基づいて、ドライバが運転不能状態であることを検出してもよい。急病を発症してドライバが運転不能状態になると、ドライバの頭部は、運転時の位置から移動して、運転時の位置に戻ってこなくなることが多いので、頭部の軌跡に基づいてドライバの運転不能状態を検出できる。
・向き崩れ状態検出手段73は更に、ドライバの顔が、閾値Th2d(下向き閾値)よりも大きく下側に向いている、又は閾値Th2u(上向き閾値)よりも大きく上側に向いている場合にも、ドライバが運転不能状態であることを検出してもよい。一般的に、急病を発症してドライバの意識がなくなると、ドライバの顔が閾値Th2dよりも大きく下側に向いたり、閾値Th2uよりも大きく上側に向いたりすることが多い。よって、ドライバの顔の向きが下側に大きい、又は上側に大きい場合に、ドライバが運手不能状態であることを検出できる。
・揺れ状態検出手段74は、車両10の走行中において、車両10に外力が加わった際に、頭部検出手段61により検出された頭部が、時間T6(復帰判定時間)を超えて外力の方向に傾いている場合に、ドライバが運転不能状態であることを検出してもよい。通常、ドライバの意識がある場合、車両10に外力(詳しくは左右方向及び前後方向の外力)が加わった際に、ドライバの頭部は外力方向に傾いても、時間T6内に元の場所に戻る。これに対して、ドライバが急病を発症して意識がないと、ドライバの頭部は、外力に対して抵抗が減少し、時間T6を超えて外力の方向に傾いたままになる。よって、揺れ状態検出手段74は、上述した場合にドライバの運転不能状態を検出できる。
・白目状態検出手段75は更に、表情検出手段67により検出された口の開き(詳しくは縦方向の開き)が、開き判定量よりも大きい場合にも、ドライバが運転不能状態であることを検出してもよい。ドライバが急病を発症して白目をむいた場合には、口が開いた状態になることが多い。よって、ドライバの口の開きが開き判定量よりも大きい場合にも、ドライバが運転不能状態であることを検出してもよい。
・フレームアウト判定、姿勢崩れ判定、顔向き崩れ判定、揺れ状態判定、及び白目状態判定は、全て実行するとドライバの運転不能状態の検出精度が最も高くなるが、すくなくとも1つの判定を行えばよい。また、任意の数の判定を組み合わせて実行してもよい。その場合、フレームアウト判定、姿勢崩れ判定、顔向き崩れ判定、揺れ状態判定、白目状態判定の順に優先して実行するとよい。
例えば、姿勢崩れ判定と揺れ状態判定の二つを組み合わせる場合は、姿勢崩れ判定でドライバが運転不能状態であると検出されなかった場合に、揺れ状態判定を行うと、ドライバの運転不能状態を高精度に検出できる。
また、顔向き崩れ判定と揺れ状態判定の二つを組み合わせる場合は、顔向き崩れ判定でドライバが運転不能状態であると検出されなかった場合に、揺れ状態判定を行うと、ドライバの運転不能状態を高精度に検出できる。
また、揺れ状態判定と白目状態判定の二つを組み合わせる場合は、揺れ状態判定でドライバが運転不能状態であると検出されなかった場合に、白目状態判定を行うと、ドライバの運転不能状態を高精度に検出できる。
・学習手段51は、ドライバが運転不能状態であることを誤検出した場合におけるドライバの姿勢を学習してもよい。すなわち、ドライバが運転不能状態であることを検出したが、ドライバから応答があった場合におけるドライバの姿勢を学習してもよい。そして、学習した姿勢を運転不能状態と判定しない姿勢としてもよい。
・各閾値及び各判定値の統計値を記憶装置52に記憶しておき、それらを初期値として用いてもよい。各閾値及び各判定値の統計値は、複数の車両のドライバのそれぞれに対応する各閾値及び各判定値を統計したものである。また、車両10から、ドライバに対応して設定され各閾値及び各判定値を情報センターに送信して、情報センターで統計するようにするとよい。
・ドライバに運転不能状態か確認して、ドライバから応答があった場合は、その後一定の時間、ドライバは運転可能な状態と認識するようにしてもよい。また、ドライバの運転不能状態を検出する処理を、ドライバが設定した時間間隔(例えば、1時間に1回)で行うようにしてもよい。
・車両10に加わる外力はGセンサ44以外、例えば座面センサ23で検出してもよい。