(57)【要約】警報システムは、小型カメラ（１０），スピーカ（２０），速度センサ（３０），前後Ｇセンサ（４０），横Ｇセンサ（５０），及び、車載ユニット（６０）を備える。車載ユニット（６０）のＣＰＵ（６０ａ）は、ＲＯＭ（６０ｈ）内の各プログラム（６１）〜（６４）を実行することにより、自動車の走行状態が安定している場合において、運転者Ｄが異常挙動を継続している間の走行距離が所定値を超えると、その超えた所定値の大きさに応じた警報をスピーカ（２０）から出力させる。この警報システムは、このように構成されるため、危険性が実際に高まっているときに的確に警報を出力できる。
2004102500.tif 000002
【特許請求の範囲】
【請求項１】
移動体の操縦席に着座した操縦者の挙動から異常挙動を検出するための挙動検出部と、
前記挙動検出部において操縦者の異常挙動が検出され続けている間の前記移動体の移動距離を測定する距離測定部と、
前記距離測定部において測定された移動距離が閾値を超えたときに危険状態であると判定する危険状態判定部と、
前記危険状態判定部において危険状態であると判定された場合に警報を出力する警報出力部と
を備えることを特徴とする警報システム。
【請求項２】
前記挙動検出部において操縦者の異常挙動が検出され続けている間の経過時間を測定する時間測定部を、更に備え、
前記危険状態判定部は、前記時間測定部において測定された経過時間が閾値を超えたとき、及び、前記距離測定部において測定された移動距離が閾値を超えたときの何れか一方である場合に、危険状態であると判定する
ことを特徴とする請求の範囲第１項記載の警報システム。
【請求項３】
前記距離測定部は、前記移動体の移動速度を測定するための速度センサを有し、その速度センサによって測定された移動速度と前記時間測定部において測定された経過時間とに基づいて、移動距離を算出する
ことを特徴とする請求の範囲第２項記載の警報システム。
【請求項４】
前記危険状態判定部は、前記移動距離について互いに大きさの異なる多数の閾値を有し、危険状態であると判定する際には、前記移動距離が超えた閾値の大きさに対応する危険レベルを、多数の危険レベルの中から特定し、
前記警報出力部は、前記危険状態判定部において特定された危険レベルに応じて警報の出力レベルを変化させる
ことを特徴とする請求の範囲第１項記載の警報システム。
【請求項５】
前記危険状態判定部は、
前記移動距離について互いに大きさの異なる多数の閾値を有するとともに、前記経過時間について互いに大きさの異なる多数の閾値を有し、
危険状態であると判定する際には、前記移動距離が超えた閾値の大きさに対応する危険レベルを多数の危険レベルの中から特定するとともに、前記経過時間が超えた閾値の大きさに対応する危険レベルを多数の危険レベルの中から特定し、
特定した２つの危険レベルのうちの高い方の危険レベルを特定し、
前記警報出力部は、前記危険状態判定部において特定された危険レベルに応じて警報の出力レベルを変化させる
ことを特徴とする請求の範囲第２項記載の警報システム。
【請求項６】
前記警報出力部は、前記危険状態判定部において特定される各危険レベルの単位時間あたりの個数を計数し、その個数に応じて警報の出力レベルを変化させる
ことを特徴とする請求の範囲第４又は５記載の警報システム。
【請求項７】
前記移動体の少なくとも３つの移動状態要素の値を検出するための移動状態検出部と、
前記移動状態検出部において検出された各移動状態要素の値に基づいて前記移動体の状態が安定状態であるか否かを判定する移動体状態判定部と
を更に備え、
前記危険状態判定部は、前記移動体状態判定部において前記移動体の状態が安定状態であると判定された場合にのみ、危険状態であるか否かを判定する
ことを特徴とする請求の範囲第１項記載の警報システム。
【請求項８】
前記移動状態検出部は、前記移動体の移動速度を測定するための速度センサと、前記移動体に掛かる加速度の前後方向の成分を測定するための前後加速度センサと、前記移動体に掛かる加速度の左右方向の成分を測定するための左右加速度センサとを有する
ことを特徴とする請求の範囲第７項記載の警報システム。
【請求項９】
前記移動体状態判定部は、前記移動速度が一定値以上である状態を所定時間継続した場合を、安定状態であると判定する際の条件の１つとしている
ことを特徴とする請求の範囲第８項記載の警報システム。
【請求項１０】
前記移動体状態判定部は、前記加速度の前後方向の成分が一定値以下である状態を所定時間継続した場合を、安定状態であると判定する際の条件の１つとしている
ことを特徴とする請求の範囲第８項記載の警報システム。
【請求項１１】
前記移動体状態判定部は、前記加速度の左右方向の成分が一定値以下である状態を所定時間継続した場合を、安定状態であると判定する際の条件の１つとしている
ことを特徴とする請求の範囲第８項記載の警報システム。
【請求項１２】
前記移動体状態判定部は、前記移動速度が一定値の範囲内にある状態を所定時間継続した場合を、安定状態ではないと判定する際の条件としている
ことを特徴とする請求の範囲第８項記載の警報システム。
【請求項１３】
前記移動体状態判定部は、前記加速度の前後方向の成分が一定値を上回る状態を所定時間継続した場合を、安定状態ではないと判定する際の条件としている
ことを特徴とする請求の範囲第８項記載の警報システム。
【請求項１４】
前記移動体状態判定部は、前記加速度の左右方向の成分が一定値を上回る状態を所定時間継続した場合を、安定状態ではないと判定する際の条件としている
ことを特徴とする請求の範囲第８項記載の警報システム。
【請求項１５】
前記距離測定部は、前記移動状態検出部の速度センサによって測定される移動速度に基づいて、移動距離を算出する
ことを特徴とする請求の範囲第８項記載の警報システム。
【請求項１６】
前記挙動検出部は、前記異常挙動を検出すると、検出した異常挙動の種類を特定し、
前記危険状態判定部は、異常挙動の種類に応じて大きさの異なる閾値を多数有し、危険状態を判定する際、前記挙動検出部において特定された異常挙動の種類に対応した閾値を、多数の閾値の中から採用する
ことを特徴とする請求の範囲第１項記載の警報システム。
【請求項１７】
前記挙動検出部は、前記異常挙動を検出すると、検出した異常挙動の種類を特定し、
前記危険状態判定部は、
移動距離について異常挙動の種類に応じて大きさの異なる閾値を多数有するとともに、経過時間について異常挙動の種類に応じて大きさの異なる閾値を多数有し、
危険状態を判定する際、前記挙動検出部において特定された異常挙動の種類に対応した前記移動距離及び前記経過時間についての閾値を、多数の閾値の中から採用する
ことを特徴とする請求の範囲第２項記載の警報システム。
【請求項１８】
前記挙動検出部は、前記操縦者の顔面の像を画像データとして取得する撮像装置を有しており、その撮像装置から取得される画像データの１コマ毎に、前記操縦者の挙動異常を検出する
ことを特徴とする請求の範囲第１項記載の警報システム。
【請求項１９】
前記挙動検出部が検出する異常挙動は、前記操縦者の閉眼である
ことを特徴とする請求の範囲第１８項記載の警報システム。
【請求項２０】
前記挙動検出部が検出する異常挙動は、前記操縦者の脇見である
ことを特徴とする請求の範囲第１８項記載の警報システム。
【請求項２１】
操縦者が操縦時に着座するための操縦席を有する移動体に組み込まれるとともに、前記移動体の移動速度を測定するための速度センサ，前記操縦者を撮影するための撮像装置，及び、出力装置に対して接続される警報制御装置であって、
前記撮像装置から取得される画像データから操縦者の異常挙動を検出するための挙動検出部と、
前記速度センサから取得される移動速度に基づいて、前記挙動検出部において操縦者の異常挙動が検出され続けている間の前記移動体の移動距離を測定する距離測定部と、
前記距離測定部において測定された移動距離が閾値を超えたときに危険状態であると判定する危険状態判定部と、
前記危険状態判定部において危険状態であると判定された場合に前記出力装置に警報を出力させる警報出力部と
を備えることを特徴とする警報制御装置。
【請求項２２】
操縦者が操縦時に着座するための操縦席を有する移動体に組み込まれ、前記移動体の移動速度を測定するための速度センサ，前記操縦者を撮影するための撮像装置，及び、出力装置に対して接続されるコンピュータに対し、
前記撮像装置から取得される画像データから操縦者の異常挙動を検出するための挙動検出手順，
前記速度センサから取得される移動速度に基づいて、操縦者の異常挙動を検出し続けている間の前記移動体の移動距離を測定する距離測定手順，
測定により得られた移動距離が閾値を超えたときに危険状態であると判定する危険状態判定手順，及び、
危険状態であると判定された場合にのみ前記出力装置に警報を出力させる警報出力手順
を実行させる
ことを特徴とする警報制御プログラム。
【請求項２３】
操縦者が操縦時に着座するための操縦席を有する移動体に組み込まれ、前記移動体の移動速度を測定するための速度センサ，前記操縦者を撮影するための撮像装置，及び、出力装置に対して接続されるコンピュータに対し、
前記撮像装置から取得される画像データから操縦者の異常挙動を検出するための挙動検出手順，
前記速度センサから取得される移動速度に基づいて、操縦者の異常挙動を検出し続けている間の前記移動体の移動距離を測定する距離測定手順，
測定により得られた移動距離が閾値を超えたときに危険状態であると判定する危険状態判定手順，及び、
危険状態であると判定された場合にのみ前記出力装置に警報を出力させる警報出力手順
を実行させる
警報制御プログラムを格納した
ことを特徴とするコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】    本発明は、移動体の操縦者の挙動が操縦に不向きな異常挙動である旨を操縦者に対して通知するための警報システムと、このような警報システムを移動体において機能させるための警報制御装置と、このような警報制御装置としてコンピュータを機能させるための警報制御プログラムとに、関する。
【背景技術】    周知のように、乗用車，トラック，二輪車，電車，船舶，及び航空機などの移動体の操縦者は、操縦中に、睡魔に襲われてウトウトと目を閉じたり、夜景を見るため或いは計器盤上のスイッチやオーディオシステムや携帯電話機を操作するために視線を逸らしたりすると、前方の様子を観察できなくなる。操縦中に前方の様子を観察できないと、操縦者は、危険回避行動を起こせなくなるので、事故を起こす可能性が高い。このため、このような操縦に不向きな異常挙動を操縦者がとるとスピーカやモニタや発光ダイオードランプから警報を出力させる警報システムが、各社から数多く提案されている。
これら従来の警報システムの多くは、異常挙動を判定するための要素（閉眼，脇見，蛇行運転など）を数値化し、その要素の値が所定の閾値を超えると、危険状態であると判定して、警報を出力する。また、最近の警報システムでは、その要素の値が所定の閾値を超えた異常挙動状態が一定時間継続すると、危険状態であると判定して、警報を出力する（例えば特許文献１乃至３参照）。
【特許文献１】    日本特開２００２−２１９９６８号公報（段落００１２）
【特許文献２】    日本特開２００１−１３８７６７号公報（段落００３７）
【特許文献３】    日本特開平０６−０３２１５４号（段落００６９）
ところで、移動体の移動速度が１００ｋｍ／ｈである場合に異常挙動を一定時間行う場合と、１０ｋｍ／ｈである場合に異常挙動を同じ一定時間行う場合とでは、危険性は大きく異なっており、前者のように移動速度が高いほうが極めて危険な状態である。
にも拘らず、上述したような従来の警報システムは、単純に、異常挙動状態が一定時間以上継続されたときに危険状態と判定するだけで、移動体の移動速度とは無関係に、すなわち、危険性の大きさとは無関係に、危険状態を判定している。このため、従来の警報システムによると、移動体の操縦者は、危険性が実際に高まっているときに的確に警報を受けることができなかった。
本発明は、上述したような従来の事情に鑑みてなされたものであり、その課題は、危険性が実際に高まっているときに的確に警報を出力することができる警報システムと、このような警報システムを移動体において機能させるための警報制御装置と、このような警報制御装置としてコンピュータを機能させるための警報制御プログラムとを、提供することにある。
【発明の開示】
上記の課題を解決するために構成された本発明の警報システムは、移動体の操縦席に着座した操縦者の挙動から異常挙動を検出するための挙動検出部と、前記挙動検出部において操縦者の異常挙動が検出され続けている間の前記移動体の移動距離を測定する距離測定部と、前記距離測定部において測定された移動距離が閾値を超えたときに危険状態であると判定する危険状態判定部と、前記危険状態判定部において危険状態であると判定された場合に警報を出力する警報出力部とを備えることを、特徴としている。
このように、危険状態であるか否かの判定条件として、異常挙動状態が継続されている間の移動体の移動距離を採用すると、移動距離の閾値が一定であることから、異常挙動の継続を許容できる限界時間が、移動体の移動速度に応じてリニアに変化することとなる。そのため、移動体の移動速度が高いときほど、短時間の異常挙動をとるだけで危険状態であると判定されるようになり、移動体の移動速度が遅いときには、多少長い時間異常挙動をとらないと危険状態であると判定されない。従って、移動体の操縦者は、危険性が実際に高まっているときに的確に警報を受けることができる。
なお、本発明の警報システムでは、危険状態判定部は、異常挙動の継続中の移動距離を危険状態の判定条件に用いているが、その判定条件を補完するために、異常挙動の継続中の経過時間を危険状態の判定条件に加えても良い。これにより、移動体の移動速度が高くなるほど、危険状態であると判定されるまでの時間が短くなり、移動体の移動速度がある一定以下になると、すなわち、経過時間が閾値を超えると、危険状態であると判定されるまでの時間は、一律に決定される。
また、本発明の警報システムでは、危険状態判定部は、移動体の状態とは無関係に常に危険状態であるか否かを判定しても良いが、移動体の状態が安定状態である場合に限って危険状態であるか否かを判定しても良い。後者の場合、移動体の停止時や非安定移動時に不要な警報が出力されることがない。なお、移動体の状態が安定状態であるか否かは、移動体の移動速度，前後加速度，左右加速度，ヨーレート，ピッチレート，ロールレート，操舵角，ガス噴射量，アクセル開度，ブレーキ踏量などから判定することができるが、これら移動状態要素のうち、少なくとも３つに基づいて移動体の状態を判定することが望ましい。
また、本発明の警報システムでは、危険状態判定部は、移動距離について、１つの閾値を有していても良いし、互いに大きさの異なる多数の閾値を有していても良い。後者の場合、危険状態であるか否かを判定する際には、移動距離が超えた閾値の大きさに対応する危険レベルを、多数の危険レベルの中から特定することができる。これにより、警報出力部では、危険レベルに応じて警報の出力レベルを変化させることができる。これにより、操縦者は、危険状態である旨を知ると同時に、どの程度危険性が高いかを知ることができる。
また、本発明の警報システムでは、危険状態判定部は、経過時間についても、１つの閾値を有していても良いし、互いに大きさの異なる多数の閾値を有していても良い。後者の場合、危険状態であるか否かを判定する際には、移動距離が超えた閾値の大きさに対応する危険レベルを、多数の危険レベルの中から特定するとともに、経過時間が超えた閾値の大きさに対応する危険レベルを多数の危険レベルの中から特定し、特定した２つの危険レベルのうちの高い方の危険レベルを特定することができる。これにより、警報出力部では、危険レベルに応じて警報の出力レベルを変化させることができる。
また、本発明の警報システムでは、挙動検出部は、異常挙動を検出すると、検出した異常挙動の種類を特定しても良い。異常挙動の種類としては、居眠り操縦の可能性が高い閉眼や、操縦者の視線が正しい視線からずれていることを示す脇見がある。この場合、危険状態判定部は、移動距離について若しくは継続時間について、異常挙動の種類に応じて異なる閾値を有しておけば、挙動検出部において異常挙動の種類が特定された際に、その種類に応じた閾値を採用することができる。
さらに、本発明の警報システムでは、挙動検出部は、操縦者の顔面の像を撮像する撮像装置から画像データを取得して、画像データの所定のコマ毎、例えば１コマ毎に、操縦者の挙動異常を検出しても良い。
また、上記の課題を解決するために構成された本発明の警報制御装置は、操縦者が操縦時に着座するための操縦席を有する移動体に組み込まれるとともに、前記移動体の移動速度を測定するための速度センサ，前記操縦者を撮影するための撮像装置，及び、出力装置に対して接続される警報制御装置であって、前記撮像装置から取得される画像データから操縦者の異常挙動を検出するための挙動検出部と、前記速度センサから取得される移動速度に基づいて、前記挙動検出部において操縦者の異常挙動が検出され続けている間の前記移動体の移動距離を測定する距離測定部と、前記距離測定部において測定された移動距離が閾値を超えたときに危険状態であると判定する危険状態判定部と、前記危険状態判定部において危険状態であると判定された場合に前記出力装置に警報を出力させる警報出力部とを備えることを、特徴としている。
従って、この警報制御装置は、速度センサ，撮像装置，及び出力装置に対して接続されると、上述した本発明の警報システムと同等のシステムを移動体において機能させることができる。
また、上記の課題を解決するために構成された本発明の警報制御プログラムは、操縦者が操縦時に着座するための操縦席を有する移動体に組み込まれ、前記移動体の移動速度を測定するための速度センサ，前記操縦者を撮影するための撮像装置，及び、出力装置に対して接続されるコンピュータに対し、前記撮像装置から取得される画像データから操縦者の異常挙動を検出するための挙動検出手順，前記速度センサから取得される移動速度に基づいて、操縦者の異常挙動を検出し続けている間の前記移動体の移動距離を測定する距離測定手順，測定により得られた移動距離が閾値を超えたときに危険状態であると判定する危険状態判定手順，及び、危険状態であると判定した場合にのみ前記出力装置に警報を出力させる警報出力手順を実行させることを、特徴としている。
従って、この警報制御プログラムによれば、上述した本発明の警報制御装置としてコンピュータを機能させることができることになる。
【図面の簡単な説明】    第１図は、本発明の第１の実施形態である警報システムを概略的に示す構成図である。
第２図は、警報システムの車載ユニットにおいて実行される車輌状態監視処理を説明するためのフローチャートである。
第３図は、車輌状態監視処理においてサブルーチンとして実行される停止状態処理を説明するためのフローチャートである。
第４図は、車輌状態監視処理においてサブルーチンとして実行される非安定状態処理を説明するためのフローチャートである。
第５図は、車輌状態監視処理においてサブルーチンとして実行される非安定状態処理を説明するためのフローチャートである。
第６図は、車輌状態監視処理においてサブルーチンとして実行される非安定状態処理を説明するためのフローチャートである。
第７図は、車輌状態監視処理においてサブルーチンとして実行される非安定状態処理を説明するためのフローチャートである。
第８図は、車輌状態監視処理においてサブルーチンとして実行される安定状態処理を説明するためのフローチャートである。
第９図は、車輌状態監視処理においてサブルーチンとして実行される安定状態処理を説明するためのフローチャートである。
第１０図は、車輌状態監視処理においてサブルーチンとして実行される安定状態処理を説明するためのフローチャートである。
第１１図は、車輌状態監視処理においてサブルーチンとして実行される安定状態処理を説明するためのフローチャートである。
第１２図は、警報システムの車載ユニットにおいて実行される挙動監視処理を説明するためのフローチャートである。
第１３図は、挙動監視処理においてサブルーチンとして実行される閉眼についての挙動判定処理を説明するためのフローチャートである。
第１４図は、警報システムの車載ユニットにおいて実行される危険状態判定処理を説明するためのフローチャートである。
第１５図は、警報システムの車載ユニットにおいて実行される危険状態判定処理を説明するためのフローチャートである。
第１６図は、警報システムの車載ユニットにおいて実行される危険状態判定処理を説明するためのフローチャートである。
第１７図は、警報システムの車載ユニットにおいて実行される警報出力処理を説明するためのフローチャートである。
第１８図は、警報出力処理において用いられるランク定義テーブルのデータ構造を説明するための表である。
第１９図は、挙動監視処理においてサブルーチンとして実行される脇見についての挙動判定処理を説明するためのフローチャートである。
第２０図は、本発明の第２の実施形態である警報システムの車載ユニットにおいて実行される危険状態判定処理の一部を説明するためのフローチャートである。
【発明を実施するための最良の形態】  以下、図面に基づいて、本発明を実施するための形態を説明する。
第１の実施形態
第１図は、本発明の第１の実施形態である警報システムの概略的な構成図である。第１図に示されるように、この警報システムは、小型カメラ１０，スピーカ２０，速度センサ３０，前後Ｇセンサ４０，横Ｇセンサ５０，及び車載ユニット６０を、備えている。
小型カメラ１０は、動画撮影用のエリアイメージセンサや対物光学系を備える撮像装置である。エリアイメージセンサは、対物光学系によって撮像面に形成された像を画像データに変換し、画像データをアナログ信号の形態で出力する。この小型カメラ１０は、乗用車やトラックなどの自動車の室内のダッシュボード上のインストルメントパネル周り，サンバイザー周辺，或いは、Ａピラーに設置される。何れの場所に設置される場合でも、小型カメラ１０の向きは、運転席に着座した運転者Ｄの顔面が視野に含まれるように、調整される。
スピーカ２０は、アナログ信号の形態で入力される音声データを音声に変換する出力装置である。このスピーカ２０は、警報システム専用として自動車に搭載されたものであっても良いが、自動車にオーディオ用として備えられているスピーカであっても良い。後者の場合には、音声データは、外部入力端子からオーディオシステムへ一旦入力され、そのオーディオシステムが、自己のスピーカに対し、音声データに基づく音声を出力させる。
速度センサ３０は、自動車の速度に応じた信号を出力する検出装置である。この速度センサ３０は、警報システム専用として自動車に搭載されたものであっても良いが、自動車内の他のシステムと共用される速度センサであっても良い。自動車内の他のシステムとしては、上記インストルメントパネル内の速度表示システム（いわゆる速度メーター）や、ＡＢＳ［Ａｎｔｉｌｏｃｋ  Ｂｒａｋｅ  Ｓｙｓｔｅｍ］や、ＴＲＣ［Ｔｒａｃｔｉｏｎ  Ｃｏｎｔｒｏｌ］システムや、ＶＤＣ［Ｖｅｈｉｃｌｅ  Ｄｙｎａｍｉｃ  Ｃｏｎｔｒｏｌ］システムがある。
前後Ｇセンサ４０は、自動車に掛かる慣性力の前後方向（自動車の進退方向）の成分に応じた信号を出力する検出装置であり、横Ｇセンサ５０は、その慣性力の横方向（自動車の左右方向）の成分に応じた信号を出力する装置である。両Ｇセンサ４０，５０とも、警報システム専用として自動車に搭載されたものであっても良いが、自動車内の他のシステムと共用される前後Ｇセンサ及び横Ｇセンサであっても良い。自動車内の他のシステムとしては、アクティブサスペンションシステムや、ＡＢＳや、ＶＤＣシステムがある。
車載ユニット６０は、上述した他の装置１０〜５０を利用して警報システムを自動車において機能させるための制御装置であり、上述した他の装置１０〜５０は、何れもこの車載ユニット６０に接続されている。この車載ユニット６０は、例えばエンジン制御ユニットとともに上記ダッシュボード周辺に収納される。
この車載ユニット６０の内部には、ＣＰＵ［Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ］６０ａ、ＲＡＭ［Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ］６０ｂ，ビデオ制御装置６０ｃ，音源制御装置６０ｄ，第１乃至第３のＩ／Ｏ［Ｉｎｐｕｔ／Ｏｕｔｐｕｔ］ポート６０ｅ〜６０ｇ，及び、ＲＯＭ［Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ］６０ｈが、備えられており、これらハードウエア６０ａ〜６０ｈは、バスＢを介して互いに繋がれている。
ＣＰＵ６０ａは、この車載ユニット６０全体を制御する中央処理装置である。ＲＡＭ６０ｂは、ＣＰＵ６０ａが各種プログラムを実行するに際しての作業領域が展開される主記憶装置である。
ビデオ制御装置６０ｃは、小型カメラ１０からの画像データの受信を司る装置である。より具体的には、このビデオ制御装置６０ｃは、小型カメラ１０から入力されるアナログ信号又はデジタル信号を一定の時間間隔毎（例えば３３ｍｓ毎）にサンプリングし、１コマ毎のデータ量を圧縮してなるデジタルの画像データを生成する。また、ビデオ制御装置６０ｃは、生成した画像データをＣＰＵ６０ａへ順次送信する。
音源制御装置６０ｄは、スピーカ２０への音声データの出力を司る装置である。この音源制御装置６０ｄは、音声データを示すデジタル信号をＣＰＵ６０ａから受け取ると、そのデジタル信号をアナログ信号に変換し、アナログ信号をスピーカ２０へ出力する。
第１のＩ／Ｏポート６０ｅは、ＣＰＵ６０ａと速度センサ３０との間でデータの仲介を行う装置である。この第１のＩ／Ｏポート６０ｅは、速度センサ３０から常時出力される信号に基づいて自動車の速度データを生成し、この速度データにて自己のメモリ内を順次更新する。また、この第１のＩ／Ｏポート６０ｅは、ＣＰＵ６０ａから指示があると、メモリ内の速度データをＣＰＵ６０ａへ出力する。
第２のＩ／Ｏポート６０ｆは、ＣＰＵ６０ａと前後Ｇセンサ４０との間でデータの仲介を行う装置であり、第３のＩ／Ｏポート６０ｇは、ＣＰＵ６０ａと横Ｇセンサ５０との間でデータの仲介を行う装置である。両Ｉ／Ｏポート６０ｆ，６０ｇは、何れも、Ｇセンサ４０，５０から常時出力される信号に基づいて自動車の加速度データを生成し、この加速度データにて自己のメモリ内を順次更新する。また、両Ｉ／Ｏポート６０ｆ，６０ｇとも、ＣＰＵ６０ａから指示があると、メモリ内の加速度データをＣＰＵ６０ａへ出力する。
ＲＯＭ６０ｈは、各種データや各種プログラムが記録された記録装置である。このＲＯＭ６０ｈは、車載ユニット６０内部に備えられたソケットに対して着脱可能に装着されても良い。この場合、車載ユニット６０に装着されたＲＯＭ６０ｈは、修正された各種データやバージョンアップされた各種プログラムが記録されたＲＯＭ６０ｈへ、交換することができる。このとき、ＲＯＭ６０ｈは、交換可能なコンピュータ可読媒体として機能する。
このＲＯＭ６０ｈが記録しているプログラムには、車輌状態監視プログラム６１，挙動監視プログラム６２，危険状態判定プログラム６３，及び、警報出力プログラム６４が、含まれている。
なお、車輌状態監視プログラム６１は、移動体状態判定部に相当し、速度センサ３０，前後Ｇセンサ４０，及び横Ｇセンサ５０は、移動状態検出部に相当する。また、挙動監視プログラム６２及び小型カメラ１０は挙動検出部に相当し、危険状態判定プログラム６３は、距離測定部，時間測定部，及び危険状態判定部に相当する。また、警報出力プログラム６４及びスピーカ２０は、警報出力部に相当する。
以下、これらプログラム６１〜６４に従ってＣＰＵ６０ａが実行する処理の内容について、順に説明する。
まず、自動車の運転席に着座した運転者Ｄによってイグニッションキーが回されると、エンジンの駆動が開始されるとともに、小型カメラ１０，各Ｇセンサ４０，５０，及び車載ユニット６０に電源が投入される。すると、車載ユニット６０では、ＣＰＵ６０ａによってＲＯＭ６０ｈから４つのプログラム６１〜６４が読み出され、車輌状態監視処理，挙動監視処理，危険状態判定処理，及び、警報出力処理の実行が開始される。なお、これら４つの処理は、互いに並行に実行される。つまり、車載ユニット６０は、これら４つの処理プロセスが同時に生成された状態になる。
＜車輌状態監視処理＞
第２図は、車輌状態監視処理を説明するためのフローチャートである。
車輌状態監視処理の実行開始後、最初のステップＳ１０１では、ＣＰＵ６０ａは、車輌状態変数Ｖｓに代入されている値が幾つであるかを、判別する。なお、この車輌状態変数Ｖｓの値は、起動時に初期値として１に設定される。そして、ＣＰＵ６０ａは、車輌状態変数Ｖｓに代入されている値が１であった場合には、車輌状態が停止状態であるとして、ステップＳ１０２へ処理を進める。
ステップＳ１０２では、ＣＰＵ６０ａは、停止状態サブルーチンを読み出して、停止状態処理の実行を開始する。第３図は、この停止状態処理を説明するためのフローチャートである。
停止状態処理の実行開始後、最初のＳ２０１では、ＣＰＵ６０ａは、第１のＩ／Ｏポート６０ｅにおいて順次更新される速度データを監視し、自動車の速度が０ｋｍ／ｈでなくなるまで、待機する。そして、自動車の速度が０ｋｍ／ｈでなくなった場合には、ＣＰＵ６０ａは、ステップＳ２０２へ処理を進める。
ステップＳ２０２では、ＣＰＵ６０ａは、時間計測処理を開始する。より具体的には、ＣＰＵ６０ａは、時間変数Ｔの値を０から所定単位秒（例えば０．０１秒）ずつインクリメントする処理を、開始する。
次のステップＳ２０３では、ＣＰＵ６０ａは、自動車の速度が０ｋｍ／ｈであるか否かを、判別する。そして、自動車の速度が０ｋｍ／ｈでなかった場合には、ＣＰＵ６０ａは、ステップＳ２０４へ処理を進める。
ステップＳ２０４では、ＣＰＵ６０ａは、時間変数Ｔの値が所定の上限値（例えば２秒）を上回っているか否かを、判別する。そして、時間変数Ｔの値が所定の上限値以下であった場合には、ＣＰＵ６０ａは、ステップＳ２０３へ処理を戻す。
ステップＳ２０３及びＳ２０４の処理ループの実行中、ＣＰＵ６０ａは、時間変数Ｔの値が所定の上限値を上回る前に、自動車の速度が０ｋｍ／ｈになった場合には、ステップＳ２０３からＳ２０１へ処理を戻し、自動車の速度が０ｋｍ／ｈになる前に、時間変数Ｔの値が所定の上限値を上回った場合には、ステップＳ２０４からＳ２０５へ処理を進める。
ステップＳ２０５では、ＣＰＵ６０ａは、車輌状態を停止状態から非安定状態へ切り替える。より具体的には、ＣＰＵ６０ａは、車輌状態変数Ｖｓの値を１から２へ変更する。そして、ＣＰＵ６０ａは、停止状態処理の実行を終了し、第２図のメインルーチンにおけるステップＳ１０５へ処理を進める。
また、ステップＳ１０１において、車輌状態変数Ｖｓに代入されている値が２であった場合には、ＣＰＵ６０ａは、車輌状態が非安定状態であるとして、ステップＳ１０３へ処理を進める。
ステップＳ１０３では、ＣＰＵ６０ａは、非安定状態サブルーチンを読み出して、非安定状態処理の実行を開始する。第４乃至７図は、この非安定状態処理を説明するためのフローチャートである。
非安定状態処理の実行開始後、最初のＳ３０１では、ＣＰＵ６０ａは、第１のＩ／Ｏポート６０ｅにおいて順次更新される速度データを監視し、自動車の速度が０ｋｍ／ｈであるか否かを、判別する。そして、自動車の速度が０ｋｍ／ｈであった場合には、ＣＰＵ６０ａは、ステップＳ３０２へ処理を進める。
ステップＳ３０２では、ＣＰＵ６０ａは、時間変数Ｔの値を０から所定単位秒ずつインクリメントする時間計測処理を、開始する。
次のステップＳ３０３では、ＣＰＵ６０ａは、自動車の速度が０ｋｍ／ｈであるか否かを、判別する。そして、自動車の速度が０ｋｍ／ｈであった場合には、ＣＰＵ６０ａは、ステップＳ３０４へ処理を進める。
ステップＳ３０４では、ＣＰＵ６０ａは、時間変数Ｔの値が所定の上限値（例えば３秒）を上回っているか否かを、判別する。そして、時間変数Ｔの値が所定の上限値以下であった場合には、ＣＰＵ６０ａは、ステップＳ３０３へ処理を戻す。
ステップＳ３０３及びＳ３０４の処理ループの実行中、ＣＰＵ６０ａは、時間変数Ｔの値が所定の上限値を上回る前に、自動車の速度が０ｋｍ／ｈでなくなった場合には、ステップＳ３０３からＳ３０１へ処理を戻し、自動車の速度が０ｋｍ／ｈでなくなる前に、時間変数Ｔの値が所定の上限値を上回った場合には、ステップＳ３０４からＳ３０５へ処理を進める。
ステップＳ３０５では、ＣＰＵ６０ａは、車輌状態を非安定状態から停止状態へ切り替える。より具体的には、ＣＰＵ６０ａは、車輌状態変数Ｖｓの値を２から１へ変更する。そして、ＣＰＵ６０ａは、非安定状態処理の実行を終了し、第２図のメインルーチンにおけるステップＳ１０５へ処理を進める。
一方、ステップ３０１において、自動車の速度が０ｋｍ／ｈでなかった場合には、ＣＰＵ６０ａは、ステップＳ３０６，Ｓ３１１，Ｓ３１６へ処理を進める。なお、第５図に示されるステップＳ３０６〜Ｓ３１０のルーチンと、第６図に示されるステップＳ３１１〜Ｓ３１５のルーチンと、第７図に示されるステップＳ３１６〜Ｓ３２０のルーチンは、互いに並行に実行され、３つのルーチンが全て終了すると、ステップＳ３２１が実行される。
第５図のステップＳ３０６では、ＣＰＵ６０ａは、時間変数Ｔの値を０から所定単位秒ずつインクリメントする時間計測処理を、開始する。
次のステップＳ３０７では、ＣＰＵ６０ａは、自動車の速度が所定の上限値を下回っているか否かを、判別する。なお、この上限値は、自動車の車輌状態が安定走行状態になったことを判別するための条件の１つである速度条件であり、この上限値には、例えば４０ｋｍ／ｈの値が設定される。そして、自動車の速度がこの所定の上限値以上であった場合には、ＣＰＵ６０ａは、ステップＳ３０８へ処理を進める。
ステップＳ３０８では、ＣＰＵ６０ａは、時間変数Ｔの値が所定の上限値（例えば５秒）を上回っているか否かを、判別する。そして、時間変数Ｔの値が所定の上限値以下であった場合には、ＣＰＵ６０ａは、ステップＳ３０７へ処理を戻す。
ステップＳ３０７及びＳ３０８の処理ループの実行中、自動車の速度が所定の上限値を下回る前に、時間変数Ｔの値が所定の上限値を上回った場合には、ＣＰＵ６０ａは、ステップＳ３０８からＳ３０９へ処理を進める。
ステップＳ３０９では、ＣＰＵ６０ａは、安定速度条件フラグをＴＲＵＥに切り替えて、第４図のステップＳ３２１へ処理を進める。
一方、ステップＳ３０７及びＳ３０８の処理ループの実行中、時間変数Ｔの値が所定の上限値を上回る前に、自動車の速度が所定の上限値を下回った場合には、ＣＰＵ６０ａは、ステップＳ３０７からＳ３１０へ処理を進める。
ステップＳ３１０では、ＣＰＵ６０ａは、安定速度条件フラグをＦＡＬＳＥに切り替えて、第４図のステップＳ３２１へ処理を進める。
また、第６図のステップＳ３１１では、ＣＰＵ６０ａは、時間変数Ｔの値を０から所定単位秒ずつインクリメントする時間計測処理を、開始する。
次のステップＳ３１２では、ＣＰＵ６０ａは、第２のＩ／Ｏポート６０ｆにおいて順次更新される前後加速度データを監視し、自動車の前後加速度が所定の上限値を上回っているか否かを、判別する。なお、この上限値は、自動車の車輌状態が安定走行状態になったことを判定するための条件の１つである加減速条件であり、この上限値には、例えば１ｍ／ｓ２の値が設定される。そして、自動車の前後加速度が所定の上限値以下であった場合には、ＣＰＵ６０ａは、ステップＳ３１３へ処理を進める。
ステップＳ３１３では、ＣＰＵ６０ａは、時間変数Ｔの値が所定の上限値（例えば５秒）を上回っているか否かを、判別する。そして、時間変数Ｔの値が所定の上限値以下であった場合には、ＣＰＵ６０ａは、ステップＳ３１２へ処理を戻す。
ステップＳ３１２及びＳ３１３の処理ループの実行中、自動車の前後加速度が所定の上限値を上回る前に、時間変数Ｔの値が所定の上限値を上回った場合には、ＣＰＵ６０ａは、ステップＳ３１３からＳ３１４へ処理を進める。
ステップＳ３１４では、ＣＰＵ６０ａは、安定前後加速度条件フラグをＴＲＵＥに切り替えて、第４図のステップＳ３２１へ処理を進める。
一方、ステップＳ３１２及びＳ３１３の処理ループの実行中、時間変数Ｔの値が所定の上限値を上回る前に、自動車の前後加速度が所定の上限値を上回った場合には、ＣＰＵ６０ａは、ステップＳ３１２からＳ３１５へ処理を進める。
ステップＳ３１５では、ＣＰＵ６０ａは、安定前後加速度条件フラグをＦＡＬＳＥに切り替えて、第４図のステップＳ３２１へ処理を進める。
また、第７図のステップＳ３１６では、ＣＰＵ６０ａは、時間変数Ｔの値を０から所定単位秒ずつインクリメントする時間計測処理を、開始する。
次のステップＳ３１７では、ＣＰＵ６０ａは、第３のＩ／Ｏポート６０ｇにおいて順次更新される左右加速度データを監視し、自動車の左右加速度が所定の上限値を上回っているか否かを、判別する。なお、この上限値は、自動車の車輌状態が安定走行状態になったことを判定するための条件の１つであるカーブ条件であり、この上限値には、例えば０．５ｍ／ｓ２の値が設定される。そして、自動車の左右加速度が所定の上限値以下であった場合には、ＣＰＵ６０ａは、ステップＳ３１８へ処理を進める。
ステップＳ３１８では、ＣＰＵ６０ａは、時間変数Ｔの値が所定の上限値（例えば５秒）を上回っているか否かを、判別する。そして、時間変数Ｔの値が所定の上限値以下であった場合には、ＣＰＵ６０ａは、ステップＳ３１７へ処理を戻す。
ステップＳ３１７及びＳ３１８の処理ループの実行中、自動車の左右加速度が所定の上限値を上回る前に、時間変数Ｔの値が所定の上限値を上回った場合には、ＣＰＵ６０ａは、ステップＳ３１８からＳ３１９へ処理を進める。
ステップＳ３１９では、ＣＰＵ６０ａは、安定左右加速度条件フラグをＴＲＵＥに切り替えて、第４図のステップＳ３２１へ処理を進める。
一方、ステップＳ３１７及びＳ３１８の処理ループの実行中、時間変数Ｔの値が所定の上限値を上回る前に、自動車の左右加速度が所定の上限値を上回った場合には、ＣＰＵ６０ａは、ステップＳ３１７からＳ３２０へ処理を進める。
ステップＳ３２０では、ＣＰＵ６０ａは、安定左右加速度条件フラグをＦＡＬＳＥに切り替えて、第４図のステップＳ３２１へ処理を進める。
第５乃至７図の３つのルーチンの実行終了（戻り値取得）後、ステップＳ３２１では、ＣＰＵ６０ａは、安定速度条件フラグ，安定前後加速度条件フラグ，及び、安定左右加速度条件フラグの３つのフラグが何れもＴＲＵＥであるか否かを、判別する。そして、ＣＰＵ６０ａは、３つのフラグのうちの１つでもＦＡＬＳＥであった場合には、ステップＳ３０１へ処理を戻し、３つのフラグの全てがＴＲＵＥであった場合には、ステップＳ３２２へ処理を進める。
ステップＳ３２２では、ＣＰＵ６０ａは、車輌状態を非安定状態から安定状態へ切り替える。より具体的には、ＣＰＵ６０ａは、車輌状態変数Ｖｓの値を２から３へ更新する。そして、ＣＰＵ６０ａは、非安定状態処理の実行を終了し、第２図のメインルーチンにおけるステップＳ１０５へ処理を進める。
また、ステップＳ１０１において、車輌状態変数Ｖｓに代入されている値が３であった場合には、ＣＰＵ６０ａは、車輌状態が安定状態であるとして、ステップＳ１０４へ処理を進める。
ステップＳ１０４では、ＣＰＵ６０ａは、安定状態サブルーチンを読み出して、安定状態処理の実行を開始する。第８乃至１１図は、この安定状態処理を説明するためのフローチャートである。
安定状態処理の実行開始後、最初のＳ４０１では、ＣＰＵ６０ａは、第１のＩ／Ｏポート６０ｅにおいて順次更新される速度データを監視し、自動車の速度が０ｋｍ／ｈであるか否かを、判別する。そして、自動車の速度が０ｋｍ／ｈであった場合には、ＣＰＵ６０ａは、ステップＳ４０２へ処理を進める。
ステップＳ４０２では、ＣＰＵ６０ａは、時間変数Ｔの値を０から所定単位秒ずつインクリメントする時間計測処理を、開始する。
次のステップＳ４０３では、ＣＰＵ６０ａは、自動車の速度が０ｋｍ／ｈであるか否かを、判別する。そして、自動車の速度が０ｋｍ／ｈであった場合には、ＣＰＵ６０ａは、ステップＳ４０４へ処理を進める。
ステップＳ４０４では、ＣＰＵ６０ａは、時間変数Ｔの値が所定の上限値（例えば３秒）を上回っているか否かを、判別する。そして、時間変数Ｔの値が所定の上限値以下であった場合には、ＣＰＵ６０ａは、ステップＳ４０３へ処理を戻す。
ステップＳ４０３及びＳ４０４の処理ループの実行中、ＣＰＵ６０ａは、時間変数Ｔの値が所定の上限値を上回る前に、自動車の速度が０ｋｍ／ｈでなくなった場合には、ステップＳ４０３からＳ４０１へ処理を戻し、自動車の速度が０ｋｍ／ｈでなくなる前に、時間変数Ｔの値が所定の上限値を上回った場合には、ステップＳ４０４からＳ４０５へ処理を進める。
ステップＳ４０５では、ＣＰＵ６０ａは、車輌状態を安定状態から停止状態へ切り替える。より具体的には、ＣＰＵ６０ａは、車輌状態変数Ｖｓの値を３から１へ変更する。そして、ＣＰＵ６０ａは、安定状態処理の実行を終了し、第２図のメインルーチンにおけるステップＳ１０５へ処理を進める。
一方、ステップ４０１において、自動車の速度が０ｋｍ／ｈでなかった場合には、ＣＰＵ６０ａは、ステップＳ４０６，Ｓ４１１，Ｓ４１６へ処理を進める。なお、第９図に示されるステップＳ４０６〜Ｓ４１０のルーチンと、第１０図に示されるステップＳ４１１〜Ｓ４１５のルーチンと、第１１図に示されるステップＳ４１６〜Ｓ４２０のルーチンは、互いに並行に実行され、３つのルーチンが全て終了すると、ステップＳ４２１が実行される。
第９図のステップＳ４０６では、ＣＰＵ６０ａは、時間変数Ｔの値を０から所定単位秒ずつインクリメントする時間計測処理を、開始する。
次のステップＳ４０７では、ＣＰＵ６０ａは、自動車の速度が所定の範囲内の速度であるか否かを、判別する。つまり、ＣＰＵ６０ａは、自動車の速度が所定の上限値よりも下回り且つ所定の下限値よりも上回る速度であるか否かを、判別する。なお、自動車の速度が所定の範囲から外れることは、自動車の車輌状態が非安定走行状態になったことを判定するための条件の１つである速度条件であり、その範囲の上限値には、例えば１００ｋｍ／ｈの値が設定され、その範囲の下限値には、４０ｋｍ／ｈが設定される。なお、上限値については、不要な場合には設定されなくても良い。そして、自動車の速度が所定の範囲内の速度でなかった場合には、ＣＰＵ６０ａは、ステップＳ４０８へ処理を進める。
ステップＳ４０８では、ＣＰＵ６０ａは、時間変数Ｔの値が所定の上限値（例えば５秒）を上回っているか否かを、判別する。そして、時間変数Ｔの値が所定の上限値以下であった場合には、ＣＰＵ６０ａは、ステップＳ４０７へ処理を戻す。
ステップＳ４０７及びＳ４０８の処理ループの実行中、自動車の速度が所定の範囲内の速度となる前に、時間変数Ｔの値が所定の上限値を上回った場合には、ＣＰＵ６０ａは、ステップＳ４０８からＳ４０９へ処理を進める。
ステップＳ４０９では、ＣＰＵ６０ａは、非安定速度条件フラグをＴＲＵＥに切り替えて、第８図のステップＳ４２１へ処理を進める。
一方、ステップＳ４０７及びＳ４０８の処理ループの実行中、時間変数Ｔの値が所定の上限値を上回る前に、自動車の速度が上記所定の範囲内の速度となった場合には、ＣＰＵ６０ａは、ステップＳ４０７からＳ４１０へ処理を進める。
ステップＳ４１０では、ＣＰＵ６０ａは、非安定速度条件フラグをＦＡＬＳＥに切り替えて、第８図のステップＳ４２１へ処理を進める。
また、第１０図のステップＳ４１１では、ＣＰＵ６０ａは、時間変数Ｔの値を０から所定単位秒ずつインクリメントする時間計測処理を、開始する。
次のステップＳ４１２では、ＣＰＵ６０ａは、第２のＩ／Ｏポート６０ｆにおいて順次更新される前後加速度データを監視し、自動車の前後加速度が所定の上限値を下回っているか否かを、判別する。なお、この上限値は、自動車の車輌状態が非安定走行状態になったことを判定するための条件の１つである加減速条件であり、この上限値には、例えば２ｍ／ｓ２の値が設定される。そして、自動車の前後加速度が所定の上限値以上であった場合には、ＣＰＵ６０ａは、ステップＳ４１３へ処理を進める。
ステップＳ４１３では、ＣＰＵ６０ａは、時間変数Ｔの値が所定の上限値（例えば５秒）を上回っているか否かを、判別する。そして、時間変数Ｔの値が所定の上限値以下であった場合には、ＣＰＵ６０ａは、ステップＳ４１２へ処理を戻す。
ステップＳ４１２及びＳ４１３の処理ループの実行中、自動車の前後加速度が所定の上限値を下回る前に、時間変数Ｔの値が所定の上限値を上回った場合には、ＣＰＵ６０ａは、ステップＳ４１３からＳ４１４へ処理を進める。
ステップＳ４１４では、ＣＰＵ６０ａは、非安定前後加速度条件フラグをＴＲＵＥに切り替えて、第８図のステップＳ４２１へ処理を進める。
一方、ステップＳ４１２及びＳ４１３の処理ループの実行中、時間変数Ｔの値が所定の上限値を上回る前に、自動車の前後加速度が所定の上限値を下回った場合には、ＣＰＵ６０ａは、ステップＳ４１２からＳ４１５へ処理を進める。
ステップＳ４１５では、ＣＰＵ６０ａは、安定前後加速度条件フラグをＦＡＬＳＥに切り替えて、第８図のステップＳ４２１へ処理を進める。
また、第１１図のステップＳ４１６では、ＣＰＵ６０ａは、時間変数Ｔの値を０から所定単位秒ずつインクリメントする時間計測処理を、開始する。
次のステップＳ４１７では、ＣＰＵ６０ａは、第３のＩ／Ｏポート６０ｇにおいて順次更新される左右加速度データを監視し、自動車の左右加速度が所定の上限値を下回っているか否かを、判別する。なお、この上限値は、自動車の車輌状態が非安定走行状態になったことを判定するための条件の１つであるカーブ条件であり、この上限値には、例えば１ｍ／ｓ２の値が設定される。そして、自動車の左右加速度が所定の上限値以上であった場合には、ＣＰＵ６０ａは、ステップＳ４１８へ処理を進める。
ステップＳ４１８では、ＣＰＵ６０ａは、時間変数Ｔの値が所定の上限値（例えば５秒）を上回っているか否かを、判別する。そして、時間変数Ｔの値が所定の上限値以下であった場合には、ＣＰＵ６０ａは、ステップＳ４１７へ処理を戻す。
ステップＳ４１７及びＳ４１８の処理ループの実行中、自動車の左右加速度が所定の上限値を下回る前に、時間変数Ｔの値が所定の上限値を上回った場合には、ＣＰＵ６０ａは、ステップＳ４１８からＳ４１９へ処理を進める。
ステップＳ４１９では、ＣＰＵ６０ａは、非安定左右加速度条件フラグをＴＲＵＥに切り替えて、第８図のステップＳ４２１へ処理を進める。
一方、ステップＳ４１７及びＳ４１８の処理ループの実行中、時間変数Ｔの値が所定の上限値を上回る前に、自動車の左右加速度が所定の上限値を下回った場合には、ＣＰＵ６０ａは、ステップＳ４１７からＳ４２０へ処理を進める。
ステップＳ４２０では、ＣＰＵ６０ａは、非安定左右加速度条件フラグをＦＡＬＳＥに切り替えて、第８図のステップＳ４２１へ処理を進める。
第９乃至１１図の３つのルーチンの実行終了（戻り値取得）後、ステップＳ４２１では、ＣＰＵ６０ａは、非安定速度条件フラグ，非安定前後加速度条件フラグ，及び、非安定左右加速度条件フラグの３つのフラグのうちの少なくとも１つがＴＲＵＥであるか否かを、判別する。そして、ＣＰＵ６０ａは、３つのフラグの全てがＦＡＬＳＥであった場合には、ステップＳ４０１へ処理を戻し、３つのフラグのうちの１つでもＴＲＵＥであった場合には、ステップＳ４２２へ処理を進める。
ステップＳ４２２では、ＣＰＵ６０ａは、車輌状態を安定状態から非安定状態へ切り替える。より具体的には、ＣＰＵ６０ａは、車輌状態変数Ｖｓの値を３から２へ変更する。そして、ＣＰＵ６０ａは、安定状態処理の実行を終了し、第２図のメインルーチンにおけるステップＳ１０５へ処理を進める。
ステップＳ１０５では、ＣＰＵ６０ａは、この時点の車輌状態変数Ｖｓの値を、挙動監視処理プロセス及び危険状態判定処理プロセスへ通知する。その後、ＣＰＵ６０ａは、ステップＳ１０１へ処理を戻し、この時点の車輌状態変数Ｖｓに代入されている値が幾つであるかを、判別する。
このような車輌状態監視処理が実行されることにより、自動車が停止してから一定時間が経過すると、車輌状態が停止状態に切り替わり（Ｓ１０３，Ｓ３０１〜Ｓ３０５，Ｓ１０４，Ｓ４０１〜Ｓ４０５）、自動車が走行を開始してから一定時間が経過すると、車輌状態が非安定状態に切り替わる（Ｓ１０２，Ｓ２０１〜Ｓ２０５）。
また、車輌状態が非安定状態にあるときに、自動車の速度が所定速度以上であり且つその前後加速度と左右加速度がそれぞれ所定加速度以下である状態が、一定時間継続すると、車輌状態が安定状態に切り替わる（Ｓ１０３，Ｓ３０１，Ｓ３０６〜Ｓ３２２）。つまり、アクセルやブレーキを勢いよく踏みつけるような急加減速をしていない状態（安定前後加速度条件フラグ＝ＴＲＵＥ），湾曲道路（カーブ）に沿って転回していない状態（安定左右加速度条件フラグ＝ＴＲＵＥ），及び、所定速度以上にて巡航している状態（安定速度条件フラグ＝ＴＲＵＥ）であるときに、車輌状態が安定状態に切り替わる。
さらに、車輌状態が安定状態にあるときに、自動車の速度が所定速度範囲内にあり且つその前後加速度と左右加速度がそれぞれ所定加速度以上である状態が、一定時間継続すると、車輌状態が非安定状態に切り替わる（Ｓ１０４，Ｓ４０１，Ｓ４０６〜Ｓ４２２）。つまり、アクセルやブレーキを勢いよく踏みつけるような急加減速をしている状態（非安定前後加速度条件フラグ＝ＴＲＵＥ），湾曲道路（カーブ）に沿って転回している状態（非安定左右加速度条件フラグ＝ＴＲＵＥ），又は、所定速度にて巡航していない状態（非安定速度条件フラグ＝ＴＲＵＥ）であるときに、車輌状態が非安定状態に切り替わる。
そして、このように車輌状態が切り替えられると、車輌状態変数Ｖｓが、以下に説明する挙動監視処理プロセス及び危険状態判定処理プロセスへと通知される（Ｓ１０５）。
＜挙動監視処理＞
第１２図は、挙動監視処理を説明するためのフローチャートである。
挙動監視処理の実行開始後、最初のＳ５０１では、ＣＰＵ６０ａは、処理状態変数Ｖｐに代入されている値が幾つであるかを、判別する。なお、この処理状態変数Ｖｐの値は、起動時に初期値として１に設定される。そして、処理状態変数Ｖｐに代入されている値が１であった場合には、ＣＰＵ６０ａは、処理状態が停止状態であるとして、ステップＳ５０２へ処理を進める。
ステップＳ５０２では、ＣＰＵ６０ａは、上述した車輌状態監視処理プロセスから車輌状態変数Ｖｓの値が通知されるまで、待機する。そして、ＣＰＵ６０ａは、車輌状態監視処理プロセスから車輌状態変数Ｖｓの値が通知されると、ステップＳ５０３へ処理を進める。
ステップＳ５０３では、ＣＰＵ６０ａは、通知された車輌状態変数Ｖｓの値が３であるか否かを、判別する。つまり、ＣＰＵ６０ａは、車輌状態が安定状態に切り替わったか否かを、判別する。そして、通知された車輌状態変数Ｖｓの値が３であった場合には、ＣＰＵ６０ａは、ステップＳ５０４へ処理を進める。
ステップＳ５０４では、ＣＰＵ６０ａは、実行開始フラグをＴＲＵＥに切り替えて、ステップＳ５０６へ処理を進める。
一方、ステップＳ５０３において、通知された車輌状態変数Ｖｓの値が３ではなかった場合には、ＣＰＵ６０ａは、ステップＳ５０５へ処理を進める。
ステップＳ５０５では、ＣＰＵ６０ａは、実行開始フラグをＦＡＬＳＥに切り替えて、ステップＳ５０６へ処理を進める。
ステップＳ５０６では、ＣＰＵ６０ａは、実行開始フラグがＴＲＵＥであるか否かを、判別する。そして、ＣＰＵ６０ａは、実行開始フラグがＴＲＵＥでなかった場合には、ステップＳ５０１，Ｓ５０２へ処理を戻し、実行開始フラグがＴＲＵＥであった場合には、ステップＳ５０７へ処理を進める。
ステップＳ５０７では、ＣＰＵ６０ａは、処理状態を停止状態から実行状態へ切り替える。より具体的には、ＣＰＵ６０ａは、処理状態変数Ｖｐの値を１から２へ変更する。その後、ＣＰＵ６０ａは、ステップＳ５０１へ処理を戻す。
一方、ステップＳ５０１において、処理状態変数Ｖｐに代入されている値が２であった場合には、ＣＰＵ６０ａは、処理状態が実行状態であるとして、ステップＳ５０８へ処理を進める。
ステップＳ５０８では、ＣＰＵ６０は、挙動判定サブルーチンを読み出して、挙動判定処理の実行を開始する。第１３図は、この挙動判定処理を説明するためのフローチャートである。
挙動判定処理の実行開始後、最初のＳ６０１では、ＣＰＵ６０ａは、ビデオ制御装置６０ｃから１コマ分の画像データの受信が完了するまで、待機する。そして、１コマ分の画像データの受信が完了すると、ＣＰＵ６０ａは、ステップＳ６０２へ処理を進める。
ステップＳ６０２では、ＣＰＵ６０ａは、眼開度取得処理を実行する。なお、この眼開度取得処理は、例えば日本特開２０００−１６３５６４号公報，日本特開２０００−１４２１６４号公報，日本特開平０７−１８１０１２号公報，及び、日本特開平０６−０３２１５４号公報に詳しく説明されているような眼開度取得処理であるため、ここでは詳しく説明しない。但し、その概略を説明すると、この眼開度取得処理は、受信した画像データ中の全画素の中から、運転者Ｄの眼を示す画素群を特定し、特定した画素群の縦方向の幅を、運転者Ｄの眼の開度として測定するという処理である。ＣＰＵ６０ａは、このような眼開度取得処理を実行することによって、運転者Ｄの眼の開度を取得した後、ステップＳ６０３へ処理を進める。
ステップＳ６０３では、ＣＰＵ６０ａは、取得した眼の開度が所定の閾値以上であるか否かを、判別する。そして、ＣＰＵ６０ａは、眼の開度が所定の閾値以上であった場合には、運転者Ｄが覚醒している可能性が高いとして、ステップＳ６０４へ処理を進める。
ステップＳ６０４では、ＣＰＵ６０ａは、取得した眼の開度をＲＡＭ６０ｂに記録して、ステップＳ６０５へ処理を進める。
ステップＳ６０５では、ＣＰＵ６０ａは、上記閾値を調整する。なお、この調整方法については、様々なものがあるが、その一例として、以下に説明するような調整方法が採られても良い。その調整方法とは、ＣＰＵ６０ａが、ＲＡＭ６０ｂに記録されている多数の（又は最新の所定個数の）眼開度の平均値を算出し、この平均値と元の閾値との差分を算出し、この差分に基づいて調整量を決定し、この調整量を元の閾値に加算又は減算することによって新たな閾値を生成するという方法である。ＣＰＵ６０ａは、上記一例に示されるような調整方法に従って閾値の調整を行った後、挙動判定処理の実行を終了し、第１２図のメインルーチンにおけるステップＳ５０９へ処理を進める。
一方、ステップＳ６０３において、眼の開度が所定の閾値未満であった場合には、運転者Ｄが昏睡している可能性が高いとして、ステップＳ６０６へ処理を進める。
ステップＳ６０６では、ＣＰＵ６０ａは、運転者Ｄの挙動が異常であることを示す挙動異常情報を、危険状態判定処理プロセスへ通知する。その後、ＣＰＵ６０ａは、挙動判定処理の実行を終了し、第１２図のメインルーチンにおけるステップＳ５０９へ処理を進める。
ステップＳ５０９では、ＣＰＵ６０ａは、車輌状態監視処理プロセスからの車輌状態変数Ｖｓの値の通知があったか否かを、判別する。そして、車輌状態監視処理プロセスからの車輌状態変数Ｖｓの値の通知がなかった場合には、ＣＰＵ６０ａは、ステップＳ５０８へ処理を戻す。
ステップＳ５０８及びＳ５０９の処理ループの実行中、車輌状態監視処理プロセスからの車輌状態変数Ｖｓの値の通知があると、ＣＰＵ６０ａは、ステップＳ５１０へ処理を進める。
ステップＳ５１０では、ＣＰＵ６０ａは、通知された車輌状態変数Ｖｓの値が１であるか否かを、判別する。つまり、ＣＰＵ６０ａは、車輌状態が停止状態に切り替わったか否かを、判別する。そして、通知された車輌状態変数Ｖｓの値が１であった場合には、ＣＰＵ６０ａは、ステップＳ５１１へ処理を進める。
ステップＳ５１１では、ＣＰＵ６０ａは、実行終了フラグをＴＲＵＥに切り替えて、ステップＳ５１３へ処理を進める。
一方、ステップＳ５１０において、通知された車輌状態変数Ｖｓの値が１ではなかった場合には、ＣＰＵ６０ａは、ステップＳ５１２へ処理を進める。
ステップＳ５１２では、ＣＰＵ６０ａは、実行終了フラグをＦＡＬＳＥに切り替えて、ステップＳ５１３へ処理を進める。
ステップＳ５１３では、ＣＰＵ６０ａは、実行終了フラグがＴＲＵＥであるか否かを、判別する。そして、ＣＰＵ６０ａは、実行終了フラグがＴＲＵＥでなかった場合には、ステップＳ５０１，Ｓ５０８，Ｓ５０９へ処理を戻し、実行終了フラグがＴＲＵＥであった場合には、ステップＳ５１４へ処理を進める。
ステップＳ５１４では、ＣＰＵ６０ａは、処理状態を実行状態から停止状態へ切り替える。より具体的には、ＣＰＵ６０ａは、処理状態変数Ｖｐの値を２から１へ変更する。その後、ＣＰＵ６０ａは、ステップＳ５０１，Ｓ５０２へ処理を戻す。
このような挙動監視処理が実行されることにより、車輌状態が停止状態から安定状態へ切り替わる（Ｓ５０１〜Ｓ５０７）と、画像データの１コマ毎に挙動異常情報を通知すべきか否かを判別する処理が、開始される（Ｓ５０８，Ｓ５０９）。すなわち、自動車を運転している最中にある運転者Ｄの挙動の監視が開始される。また、そのような運転者Ｄの挙動が監視されている間に、車輌状態が安定状態又は非安定状態から停止状態へ切り替わる（Ｓ５１０〜Ｓ５１３）と、運転者Ｄの挙動の監視が終了される（Ｓ５１４）。
また、このような挙動の監視の結果、挙動異常情報が、以下に説明する危険状態判定処理プロセスへ通知される（Ｓ６０６）。なお、この挙動異常情報は、１コマの画像データにつき１回だけ通知される（Ｓ５０８，Ｓ６０１〜Ｓ６０６）ので、例えば、連続する１０コマの画像データの全てにおいて挙動異常情報を通知すべきと判別された場合には、危険状態判定処理プロセスへは、１０回連続して挙動異常情報が通知される。
＜危険状態判定処理＞
第１４乃至１６図は、危険状態判定処理を説明するためのフローチャートである。
危険状態判定処理の実行開始後、最初のＳ７０１では、ＣＰＵ６０ａは、上述した挙動監視処理プロセスからの挙動異常情報の連続的な通知が開始されるまで、待機する。そして、ＣＰＵ６０ａは、挙動監視処理プロセスからの挙動異常情報の連続的な通知が開始されると、ステップＳ７０２へ処理を進める。
ステップＳ７０２では、ＣＰＵ６０ａは、車輌状態が安定状態であるか否かを、判別する。そして、ＣＰＵ６０ａは、車輌状態が安定状態でなかった場合には、ステップＳ７０１へ処理を戻し、車輌状態が安定状態であった場合には、ステップＳ７０３へ処理を進める。
ステップＳ７０３では、ＣＰＵ６０ａは、時間変数Ｔの値を０から所定単位秒ずつインクリメントする時間計測処理を、開始する。
次のステップＳ７０４では、ＣＰＵ６０ａは、距離計測処理を開始する。なお、この距離計測処理では、一定の時間間隔毎（例えば０．５秒毎）に第１のＩ／Ｏポート６０ｅから速度データをサンプリングするとともに、サンプリングした速度データとその時間とに基づいてその時間間隔での自動車の走行距離を算出するという処理が、繰り返される。さらに、その時間間隔毎の走行距離が積算され、積算された値にて走行距離変数Ｌが順次更新される。ＣＰＵ６０ａは、このような距離計測処理を開始した後、ステップＳ７０５へ処理を進める。
ステップＳ７０５では、ＣＰＵ６０ａは、後述する第１準位情報がＲＡＭ６０ｂに記録されているか否かを、判別する。そして、ＣＰＵ６０ａは、第１準位情報がＲＡＭ６０ｂに記録されていた場合には、ステップＳ７１０へ処理を進め、第１準位情報がＲＡＭ６０ｂに記録されていなかった場合には、ステップＳ７０６へ処理を進める。
ステップＳ７０６では、ＣＰＵ６０ａは、時間変数Ｔの値が所定の第１時間上限値（例えば１秒）を上回っているか否かを、判別する。そして、ＣＰＵ６０ａは、時間変数Ｔの値が所定の第１上限時間を上回っていた場合には、ステップＳ７０８へ処理を進め、時間変数Ｔの値が所定の第１上限時間以下であった場合には、ステップＳ７０７へ処理を進める。
ステップＳ７０７では、ＣＰＵ６０ａは、走行距離変数Ｌが所定の第１上限距離（例えば１０ｍ）を上回っているか否かを、判別する。そして、ＣＰＵ６０ａは、走行距離変数Ｌの値が所定の第１上限距離以下であった場合には、ステップＳ７１０へ処理を進め、走行距離変数Ｌの値が所定の第１上限距離を上回っていた場合には、ステップＳ７０８へ処理を進める。
ステップＳ７０８では、ＣＰＵ６０ａは、第１準位情報を警報出力処理プロセスへ通知する。なお、この第１準位情報は、所定時間（第１上限時間）だけ経過する間、又は、自動車が所定距離（第１上限距離）だけ走行する間、運転者Ｄの挙動異常が継続したことを示す情報である。
次のステップＳ７０９では、ＣＰＵ６０ａは、第１準位情報をＲＡＭ６０ｂに記録して、ステップＳ７１０へ処理を進める。
ステップＳ７１０では、ＣＰＵ６０ａは、後述する第２準位情報がＲＡＭ６０ｂに記録されているか否かを、判別する。そして、ＣＰＵ６０ａは、第２準位情報がＲＡＭ６０ｂに記録されていた場合には、ステップＳ７１５へ処理を進め、第２準位情報がＲＡＭ６０ｂに記録されていなかった場合には、ステップＳ７１１へ処理を進める。
ステップＳ７１１では、ＣＰＵ６０ａは、時間変数Ｔの値が所定の第２上限時間（例えば２秒）を上回っているか否かを、判別する。そして、ＣＰＵ６０ａは、時間変数Ｔの値が所定の第２上限時間を上回っていた場合には、ステップＳ７１３へ処理を進め、時間変数Ｔの値が所定の第２上限時間以下であった場合には、ステップＳ７１２へ処理を進める。
ステップＳ７１２では、ＣＰＵ６０ａは、走行距離変数Ｌが所定の第２上限距離（例えば２０ｍ）を上回っているか否かを、判別する。そして、ＣＰＵ６０ａは、走行距離変数Ｌの値が所定の第２上限距離以下であった場合には、ステップＳ７１５へ処理を進め、走行距離変数Ｌの値が所定の第２上限距離を上回っていた場合には、ステップＳ７１３へ処理を進める。
ステップＳ７１３では、ＣＰＵ６０ａは、第２準位情報を警報出力処理プロセスへ通知する。なお、この第２準位情報は、所定時間（第２上限時間）だけ経過する間、又は、自動車が所定距離（第２上限距離）だけ走行する間、運転者Ｄの挙動異常が継続したことを示す情報である。
次のステップＳ７１４では、ＣＰＵ６０ａは、第２準位情報をＲＡＭ６０ｂに記録して、ステップＳ７１５へ処理を進める。
ステップＳ７１５では、ＣＰＵ６０ａは、後述する第３準位情報がＲＡＭ６０ｂに記録されているか否かを、判別する。そして、ＣＰＵ６０ａは、第３準位情報がＲＡＭ６０ｂに記録されていた場合には、ステップＳ７２０へ処理を進め、第３準位情報がＲＡＭ６０ｂに記録されていなかった場合には、ステップＳ７１６へ処理を進める。
ステップＳ７１６では、ＣＰＵ６０ａは、時間変数Ｔの値が所定の第３上限時間（例えば３秒）を上回っているか否かを、判別する。そして、ＣＰＵ６０ａは、時間変数Ｔの値が所定の第３上限時間を上回っていた場合には、ステップＳ７１８へ処理を進め、時間変数Ｔの値が所定の第３上限時間以下であった場合には、ステップＳ７１７へ処理を進める。
ステップＳ７１７では、ＣＰＵ６０ａは、走行距離変数Ｌが所定の第３上限距離（例えば３０ｍ）を上回っているか否かを、判別する。そして、ＣＰＵ６０ａは、走行距離変数Ｌの値が所定の第３上限距離以下であった場合には、ステップＳ７２０へ処理を進め、走行距離変数Ｌの値が所定の第３上限距離を上回っていた場合には、ステップＳ７１８へ処理を進める。
ステップＳ７１８では、ＣＰＵ６０ａは、第３準位情報を警報出力処理プロセスへ通知する。なお、この第３準位情報は、所定時間（第３上限時間）だけ経過する間、又は、自動車が所定距離（第３上限距離）だけ走行する間、運転者Ｄの挙動異常が継続したことを示す情報である。
次のステップＳ７１９では、ＣＰＵ６０ａは、第３準位情報をＲＡＭ６０ｂに記録して、ステップＳ７２０へ処理を進める。
ステップＳ７２０では、ＣＰＵ６０ａは、１又は２の値を持つ車輌状態変数Ｖｓが上述の車輌状態監視処理プロセスから通知されたか否かを、判別する。そして、ＣＰＵ６０ａは、１又は２の値を持つ車輌状態変数Ｖｓが車輌状態監視処理プロセスから通知されていた場合には、ステップＳ７２２へ処理を進め、１又は２の値を持つ車輌状態変数Ｖｓが車輌状態監視処理プロセスから通知されていなかった場合には、ステップＳ７２１へ処理を進める。
ステップＳ７２１では、ＣＰＵ６０ａは、上述した挙動監視処理プロセスからの挙動異常情報の連続的な通知が終了したか否かを、判別する。そして、ＣＰＵ６０ａは、挙動監視処理プロセスからの挙動異常情報の連続的な通知が終了していなかった場合には、ステップＳ７０５へ処理を戻し、挙動監視処理プロセスからの挙動異常情報の連続的な通知が終了していた場合には、ステップＳ７２２へ処理を進める。
ステップＳ７２２では、ＣＰＵ６０ａは、後述する警報出力処理プロセスへ、挙動異常終了を通知して、ステップＳ７２３へ処理を進める。
ステップＳ７２３では、ＣＰＵ６０ａは、ＲＡＭ６０ａ内の準位情報をクリアして、ステップＳ７０１へ処理を戻す。
このような危険状態判定処理が実行されることにより、車輌状態が安定状態である場合において挙動監視処理プロセスから挙動異常情報が連続的に通知され始める（Ｓ７０１，Ｓ７０２）と、危険状態がどのくらいのレベルにあるかを判別する処理（Ｓ７０３〜Ｓ７１９）が開始される。そして、その処理は、車輌状態が安定状態にある間（Ｓ７２０），又は、挙動異常情報の通知が連続している間（Ｓ７２１）は継続され、挙動異常情報の通知が途絶えると、その処理は、終了する（Ｓ７２３）。
また、その処理（Ｓ７０３〜Ｓ７１９）では、挙動異常情報が連続的に通知されたときの経過時間や自動車の走行距離が許容範囲（第１乃至第３上限時間及び第１乃至第３上限距離）を超えると、危険状態になったことが決定され、その経過時間や走行距離が増す毎に、危険状態のレベルが増加する。そして、危険状態のレベルが増加する毎に、レベルに応じた情報（第１乃至第３準位情報）が、以下に説明する警報出力処理プロセスへ通知される（Ｓ７０８，Ｓ７１３，Ｓ７１８）。
さらに、挙動異常情報の連続的な通知が途絶える毎に、すなわち、運転者Ｄが異常な挙動を終える毎に、危険状態判定処理プロセスから警報出力処理プロセスへ、挙動異常終了が通知される（Ｓ７２２）。
＜警報出力処理＞
第１７図は、警報出力処理を説明するためのフローチャートである。
警報出力処理の実行開始後、最初のＳ８０１では、ＣＰＵ６０ａは、上述した危険状態判定処理プロセスから第１乃至第３準位情報の何れかが通知されるまで、待機する。そして、第１乃至第３準位情報の何れかが通知されると、ＣＰＵ６０ａは、ステップＳ８０２へ処理を進める。
ステップＳ８０２では、ＣＰＵ６０ａは、通知された準位情報をＲＡＭ６０ｂに記録して、ステップＳ８０３へ処理を進める。
ステップＳ８０３では、ＣＰＵ６０ａは、時間変数Ｔの値を０から所定単位秒ずつインクリメントする時間計測処理を、開始する。
次のステップＳ８０４では、ＣＰＵ６０ａは、第１乃至第３準位情報のいずれかが危険状態判定処理プロセスから通知されたか否かを、判別する。そして、ＣＰＵ６０ａは、第１乃至第３準位情報のいずれかが危険状態判定処理プロセスから通知されていなかった場合には、ステップＳ８０６へ処理を進め、第１乃至第３準位情報のいずれかが危険状態判定処理プロセスから通知されていた場合には、ステップＳ８０５へ処理を進める。
ステップＳ８０５では、ＣＰＵ６０ａは、通知された準位情報をＲＡＭ６０ｂに記録して、ステップＳ８０６へ処理を進める。
ステップＳ８０６では、ＣＰＵ６０ａは、ＲＡＭ６０ｂ内に記録している各準位情報と時間変数Ｔの値とに基づいて、第１乃至第３準位情報のそれぞれについての単位時間当たりの通知回数を算出する。
次のステップＳ８０７では、ＣＰＵ６０ａは、ランク定義テーブルを参照して、第１乃至第３準位情報のそれぞれについての単位時間当たりの通知回数の組み合わせに対応する警報ランクを、特定する。
第１８図は、このランク定義テーブルを説明するために作成された表である。この第１８図に示されるように、ランク定義テーブルは、「警報ランク」，「第１準位の回数」，「第２準位の回数」，及び「第３準位の回数」の項目欄（フィールド）からなるレコードを警報ランク毎に作成することによって、構成されている。
「警報ランク」には、後述する警報出力の程度を示す警報ランクを識別するための番号が、記録される。「第１準位の回数」には、第１準位情報の単位時間当たりの通知回数が、記録される。これと同様に、「第２準位の回数」及び「第３準位の回数」にも、第２準位情報及び第３準位情報の単位時間当たりの通知回数が、それぞれ記録される。
なお、第１８図に示されるランク定義テーブルがＣＰＵ６０ａによって参照される場合、例えば第１準位情報の単位時間当たりの通知回数が３回であるか、第２準位情報のそれが２回であるか、第３準位情報のそれが１回であれば、警報ランクが３と特定される。つまり、１つの警報ランクおける「警報ランク」以外の各項目欄の数値は、論理和（ＯＲ）の関係にある。また、例えば、第１乃至第３準位情報の単位時間当たりの通知回数が何れも３回である場合には、その中で最高位の警報ランクである５が、特定される。
そして、ＣＰＵ６０ａは、このようなランク定義テーブルを参照することによって、警報ランクを特定した後、第１７図のステップＳ８０８へ処理を進める。
ステップＳ８０８では、ＣＰＵ６０ａは、警報ランクに応じた音声を警報として出力させるための音声データを音源制御装置６０ｄに引き渡し、音源制御装置６０ｄに対し、その音声データに基づく信号をスピーカ２０へ出力させる。
なお、音声データは、警報ランクの個数に応じた個数だけＲＯＭ６０ｈ内に事前に用意されており、各音声データは、高い警報ランクに対応付けられているものほど高い音色の電子音を出力させるように、構成されている。そして、ＣＰＵ６０ａは、このステップＳ８０８において、ＲＯＭ６０ｈ内の多数の音声データの中から、警報ランクに対応する音声データを１つ特定して音源制御装置６０ｄへ引き渡し、警報ランクに対応した高さの音色を持つ電子音をスピーカ２０から警報として出力させる。
次のステップＳ８０９では、ＣＰＵ６０ａは、上述した危険状態判定処理プロセスから挙動異常終了が通知されたか否かを、判別する。そして、ＣＰＵ６０ａは、危険状態判定処理プロセスから挙動異常終了が通知されていなかった場合には、ステップＳ８０４へ処理を戻し、危険状態判定処理プロセスから挙動異常終了が通知されていた場合には、ステップＳ８１０へ処理を進める。
ステップＳ８１０では、ＣＰＵ６０ａは、時間計測処理を終了し、ステップＳ８０１へ処理を戻す。
このような警報出力処理が実行されることにより、危険状態判定処理プロセスから挙動異常終了が通知されてから次の挙動異常終了が通知されるまで（つまり、運転者Ｄが異常な挙動をとっている間）、警報を出力すべきか否か、出力する場合にはどのレベルの警報を出すべきかが決定され、警報が出力される（Ｓ８０１〜Ｓ８１０）。
また、単位時間あたりの準位情報の通知回数によって警報ランクが決定される（Ｓ８０６，Ｓ８０７）ため、頻繁に準位情報が通知されたり高い順位情報が通知されたりすると、高い音色の電子音が警報として出力されるようになり、準位情報の通知回数が減少したり通知間隔が空いたりすると、低い音色の電子音が警報として出力されるようになる（Ｓ８０４〜Ｓ８０９）。
このように、第１の実施形態によれば、危険状態であるか否かの判定条件として、異常挙動状態が継続されている間の自動車の走行距離が採用されているので、走行距離の閾値（例えば第１上限距離）が一定であることから、異常挙動の継続を許容できる限界時間が、自動車の速度に応じてリニアに変化することとなる。そのため、自動車の速度が高いときほど、短時間の異常挙動をとるだけで危険状態であると判定されるようになり、自動車の速度が遅いときには、多少長い時間異常挙動をとらないと危険状態であると判定されない。従って、自動車の運転者は、危険性が実際に高まっているときに的確に警報を受けることができる。
また、第１の実施形態によれば、危険状態の判定条件に、異常挙動の継続中の経過時間が、危険状態の判定条件に加えられているので、自動車の速度がある一定以下になると、すなわち、経過時間が閾値（例えば第１上限時間）を超えると、危険状態であると判定されるまでの時間は、一律に決定されるようになる。
また、第１の実施形態によれば、自動車の走行状態が安定している場合において、運転者Ｄが異常挙動を継続している間の経過時間又は走行距離が、所定値を超えると、その超えた所定値の大きさに応じた警報がスピーカ２０から出力される。このとき、異常挙動の継続中の経過時間又は走行距離が危険性の高さに応じて段階的に細かく設定されていると（第１乃至第３上限時間や第１乃至第３上限距離）、警報を出力すべきと判定する際の条件を危険性の高さに応じてきめ細やかに変化させることができる。
さらに、第１の実施形態によれば、自動車の速度，前後加速度，及び左右加速度に基づいて判別される自動車の走行状態が安定状態にないと、危険状態が判定されないため、自動車の停車時や非安定走行時に不要な警報が出力されることがない。
＜変形例１＞
ところで、上述した第１の実施形態では、スピーカ２０から警報として出力される電子音は、警報ランクが高くなるにつれて音色が高くなるように、設定されていたが、そうでなくても良い。例えば、スピーカ２０から警報として出力される電子音が、オンオフ出力されても良い。この場合、警報ランクが高くなるにつれてオンオフの間隔が短くなるように設定することにより、運転者Ｄに対し、危険度の高さを、異常な挙動をとっている旨とともに伝えることができる。
また、スピーカ２０から警報として出力される電子音が、警報ランクが高くなるにつれて音色が高くなるとともにオンオフの間隔が短くなるように、設定されていても良い。さらに、その電子音が、音楽であっても良い。音楽である場合、警報ランクの高さに応じてテンポの速い曲へと移り変わるように設定されていると、運転者Ｄに対し、危険度の高さを、異常な挙動をとっている旨とともに伝えることができる。
＜変形例２＞
また、上述した第１の実施形態では、警報を出力するための装置がスピーカ２０であったが、そうでなくても良い。例えば、警報を出力するための装置は、ビデオ制御装置６０ｄに接続されたモニタ（図示略）であっても良いし、バスＢ上の図示せぬＩ／Ｏポートに接続された発光ダイオードランプ（図示略）であっても良い。
前者のようなモニタの場合、ＣＰＵ６０ａは、警報ランクに応じた指標をモニタに表示させるための画面データをビデオ制御装置６０ｃに引き渡し、ビデオ制御装置６０ｃに対し、その画面データに基づく画面をモニタへ表示させる。なお、このモニタは、警報システム専用として自動車に搭載されたものであっても良いが、自動車にナビゲーションシステム用又はタッチスクリーン用として備えられているモニタであっても良い。
また、モニタに警報を出力させる場合、モニタに表示される指標の大きさが、警報ランクの高さに応じて大きくなるように構成されていても良いし、モニタに表示される指標の色が、警報ランクの高さに応じて変化するように構成されていても良いし、モニタに表示される指標の点滅間隔が、警報ランクの高さに応じて短くなるように構成されていても良い。
一方、後者のように発光ダイオードランプに警報を出力させる場合、警報ランクの高さに応じて点滅間隔が短くなるように構成されていても良いし、警報ランクの高さに応じて発光強度が高くなるように構成されていても良い。
＜変形例３＞
また、上述した第１の実施形態では、第１２図に示される挙動監視処理のステップＳ５０８において実行される挙動判定処理が、運転者Ｄの眼の開度を判定する処理であったため、運転者Ｄが居眠り運転をしているか否かが判定されていたが、そうでなくても良い。例えば、この挙動判定処理が、運転者Ｄの脇見度（視線のずれ）を判定する処理であっても良い。第１９図は、脇見度についての挙動判定処理を説明するためのフローチャートである。
挙動異常判定処理の実行開始後、ＣＰＵ６０ａは、１コマ分の画像データの受信を完了する（Ｓ６０１’；ＹＥＳ）と、脇見度取得処理を実行する（Ｓ６０２’）。この脇見度取得処理については、様々なものが存在しているが、その一例が、日本特開平１１−１６１７９８７号公報や日本特開平０３−１６７６９８号公報に詳しく説明されているので、ここでは詳しく説明しない。但し、その概略を説明すると、この脇見度取得処理は、受信した画像データ中の全画素の中から、運転者Ｄの顔方向を取得し、正しい顔方向とのずれ量を脇見度として取得するという処理である。
そして、ＣＰＵ６０ａは、脇見度が所定の閾値未満である場合（Ｓ６０３’；ＮＯ）には、その脇見度をＲＡＭ６０ｂに記録し（Ｓ６０４’）、閾値を調整して（Ｓ６０５’）、第１２図のステップＳ５０９へ処理を進める。一方、脇見度が所定の閾値以上である場合（Ｓ６０３’；ＹＥＳ）には、ＣＰＵ６０ａは、脇見についての挙動異常情報を危険状態判定処理プロセスへ通知して（Ｓ６０６’）、第１２図のステップＳ５０９へ処理を進める。
このような挙動判定処理が、第１２図に示される挙動監視処理のステップＳ５０８において実行されると、画像データの１コマ毎に、景色を眺めたりオーディオを操作したりといった脇見運転を運転者Ｄが行っているか否かが判定される。その結果、運転者Ｄが脇見運転した場合には、危険状態判定処理プロセスから警報出力処理プロセスへ、第１乃至第３準位情報の何れかが通知され、警報ランクに応じた音声がスピーカ２０から警報として出力される。
第２の実施形態
第２の実施形態は、危険状態判定処理プロセスが危険状態の判定に用いる第１乃至第３上限時間及び第１乃至第３上限距離の組み合わせが多数用意されているとともに、これに合わせて危険状態判定処理の内容が若干変更されている他は、第１の実施形態と同じ構成を有している。従って、以下では、第１の実施形態との相違点について、説明する。
第１の実施形態では、第１２図のフローチャートにおけるステップＳ５０８において、第１３図に示されるような閉眼についての挙動異常判定処理が、実行されていた。これに対し、第２の実施形態では、図示していないが、第１２図のステップＳ５０８において、閉眼についての挙動異常判定処理と並行して、第１９図に示されるような脇見についての挙動異常判定処理が、実行される。その結果、危険状態判定処理プロセスには、閉眼についての挙動異常情報と、脇見についての挙動異常情報とが、通知される。
また、第１の実施形態における危険状態判定処理プロセスでは、第１４図に示されるように、挙動異常情報が挙動監視処理プロセスから通知される（Ｓ７０１；ＹＥＳ）と、ＣＰＵ６０ａは、時間計測処理及び距離計測処理を直ちに実行していた（Ｓ７０２，Ｓ７０３）。これに対し、第２の実施形態における危険状態判定処理プロセスでは、第２０図に示されるように、挙動異常情報が挙動監視処理プロセスから通知される（Ｓ７０１；ＹＥＳ）と、ＣＰＵ６０ａは、挙動異常情報が閉眼についてのものであるか脇見についてのものであるかを判別し（Ｓ７０１−１）、挙動異常が閉眼についてのものである場合には、閉眼用の走行状態判定情報をＲＯＭ６０ｈから読み出し（Ｓ７０１−２）、挙動異常が脇見についてのものである場合には、脇見用の走行状態判定情報をＲＯＭ６０ｈから読み出す。そして、何れかの走行状態判定情報を読み出した後、ＣＰＵ６０ａは、時間計測処理及び距離計測処理を実行する（Ｓ７０２，Ｓ７０３）。
なお、走行状態判定情報とは、第１４及び１５図を用いて説明した第１乃至第３上限時間及び第１乃至第３上限距離の組み合わせのことであり、閉眼用と脇見用とで異なる数値を持つ組み合わせとなっている。これら閉眼用及び脇見用の走行状態判定情報は、何れも、ＲＯＭ６０ｈに事前に記録されている。
このように、第２の実施形態によれば、危険状態判定処理プロセスは、挙動監視処理プロセスから通知される異常挙動の種類に応じて、危険状態の判定に利用する走行状態判定情報を変更する。このため、警報システムは、運転者Ｄが居眠りをした場合でも脇見をした場合でも、警報を出力することができる。
また、通常、脇見運転をしているときより、居眠り運転をしているときのほうが、おおむね危険性が高い。このため、閉眼時よりも脇見時のほうが、条件が緩くなるように設定されていると、第２の実施形態の警報システムは、警報を出力すべきと判定する際の条件を、危険性の高さに応じてきめ細やかに変化させることができる。
なお、上記の第１の実施形態及び第２の実施形態では、移動体の具体的な一例として、自動車を挙げて説明したが、これに限定されるものではない。本発明は、自動車以外の例えばトラック，二輪車，電車，船舶，及び、航空機などの移動体においても適用することができる。
【産業上の利用可能性】    以上に説明したように、本発明によれば、危険性が実際に高まっているときに的確に警報を出力することができる。
【図１】
2004102500.tif 000003
【図２】
2004102500.tif 000004
【図３】
2004102500.tif 000005
【図４】
2004102500.tif 000006
【図５】
2004102500.tif 000007
【図６】
2004102500.tif 000008
【図７】
2004102500.tif 000009
【図８】
2004102500.tif 000010
【図９】
2004102500.tif 000011
【図１０】
2004102500.tif 000012
【図１１】
2004102500.tif 000013
【図１２】
2004102500.tif 000014
【図１３】
2004102500.tif 000015
【図１４】
2004102500.tif 000016
【図１５】
2004102500.tif 000017
【図１６】
2004102500.tif 000018
【図１７】
2004102500.tif 000019
【図１８】
2004102500.tif 000020
【図１９】
2004102500.tif 000021
【図２０】
2004102500.tif 000022
【手続補正書】
【提出日】平成17年3月14日(2005.3.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
移動体の操縦席に着座した操縦者の挙動から異常挙動を検出するための挙動検出部と、
前記挙動検出部において操縦者の異常挙動が検出され続けている間の前記移動体の移動距離を測定する距離測定部と、
前記距離測定部において測定された移動距離が閾値を超えたときに危険状態であると判定する危険状態判定部と、
前記危険状態判定部において危険状態であると判定された場合に警報を出力する警報出力部と
を備えることを特徴とする警報システム。
【請求項２】
前記挙動検出部において操縦者の異常挙動が検出され続けている間の経過時間を測定する時間測定部を、更に備え、
前記危険状態判定部は、前記時間測定部において測定された経過時間が閾値を超えたとき、及び、前記距離測定部において測定された移動距離が閾値を超えたときの何れか一方である場合に、危険状態であると判定する
ことを特徴とする請求項１記載の警報システム。
【請求項３】
前記距離測定部は、前記移動体の移動速度を測定するための速度センサを有し、その速度センサによって測定された移動速度と前記時間測定部において測定された経過時間とに基づいて、移動距離を算出する
ことを特徴とする請求項２記載の警報システム。
【請求項４】
前記危険状態判定部は、前記移動距離について互いに大きさの異なる多数の閾値を有し、危険状態であると判定する際には、前記移動距離が超えた閾値の大きさに対応する危険レベルを、多数の危険レベルの中から特定し、
前記警報出力部は、前記危険状態判定部において特定された危険レベルに応じて警報の出力レベルを変化させる
ことを特徴とする請求項１記載の警報システム。
【請求項５】
前記危険状態判定部は、
前記移動距離について互いに大きさの異なる多数の閾値を有するとともに、前記経過時間について互いに大きさの異なる多数の閾値を有し、
危険状態であると判定する際には、前記移動距離が超えた閾値の大きさに対応する危険レベルを多数の危険レベルの中から特定するとともに、前記経過時間が超えた閾値の大きさに対応する危険レベルを多数の危険レベルの中から特定し、
特定した２つの危険レベルのうちの高い方の危険レベルを特定し、
前記警報出力部は、前記危険状態判定部において特定された危険レベルに応じて警報の出力レベルを変化させる
ことを特徴とする請求項２記載の警報システム。
【請求項６】
前記警報出力部は、前記危険状態判定部において特定される各危険レベルの単位時間あたりの個数を計数し、その個数に応じて警報の出力レベルを変化させる
ことを特徴とする請求項４又は５記載の警報システム。
【請求項７】
前記移動体の少なくとも３つの移動状態要素の値を検出するための移動状態検出部と、
前記移動状態検出部において検出された各移動状態要素の値に基づいて前記移動体の状態が安定状態であるか否かを判定する移動体状態判定部と
を更に備え、
前記危険状態判定部は、前記移動体状態判定部において前記移動体の状態が安定状態であると判定された場合にのみ、危険状態であるか否かを判定する
ことを特徴とする請求項１記載の警報システム。
【請求項８】
操縦者が操縦時に着座するための操縦席を有する移動体に組み込まれるとともに、前記移動体の移動速度を測定するための速度センサ，前記操縦者を撮影するための撮像装置，及び、出力装置に対して接続される警報制御装置であって、
前記撮像装置から取得される画像データから操縦者の異常挙動を検出するための挙動検出部と、
前記速度センサから取得される移動速度に基づいて、前記挙動検出部において操縦者の異常挙動が検出され続けている間の前記移動体の移動距離を測定する距離測定部と、
前記距離測定部において測定された移動距離が閾値を超えたときに危険状態であると判定する危険状態判定部と、
前記危険状態判定部において危険状態であると判定された場合に前記出力装置に警報を出力させる警報出力部と
を備えることを特徴とする警報制御装置。
【請求項９】
操縦者が操縦時に着座するための操縦席を有する移動体に組み込まれ、前記移動体の移動速度を測定するための速度センサ，前記操縦者を撮影するための撮像装置，及び、出力装置に対して接続されるコンピュータに対し、
前記撮像装置から取得される画像データから操縦者の異常挙動を検出するための挙動検出手順，
前記速度センサから取得される移動速度に基づいて、操縦者の異常挙動を検出し続けている間の前記移動体の移動距離を測定する距離測定手順，
測定により得られた移動距離が閾値を超えたときに危険状態であると判定する危険状態判定手順，及び、
危険状態であると判定された場合にのみ前記出力装置に警報を出力させる警報出力手順
を実行させる
ことを特徴とする警報制御プログラム。
【請求項１０】
操縦者が操縦時に着座するための操縦席を有する移動体に組み込まれ、前記移動体の移動速度を測定するための速度センサ，前記操縦者を撮影するための撮像装置，及び、出力装置に対して接続されるコンピュータに対し、
前記撮像装置から取得される画像データから操縦者の異常挙動を検出するための挙動検出手順，
前記速度センサから取得される移動速度に基づいて、操縦者の異常挙動を検出し続けている間の前記移動体の移動距離を測定する距離測定手順，
測定により得られた移動距離が閾値を超えたときに危険状態であると判定する危険状態判定手順，及び、
危険状態であると判定された場合にのみ前記出力装置に警報を出力させる警報出力手順
を実行させる
警報制御プログラムを格納した
ことを特徴とするコンピュータ可読媒体。
【国際調査報告】
2004102500.tif 000023
2004102500.tif 000024