説明

検出装置および方法、並びに、プログラム

【課題】より正確に目の開閉状態を検出する。
【解決手段】顔向き検出部121は、カメラ111により撮影された人の顔の画像である顔画像に基づいて、人の顔の向きを検出する。目検出部122は、顔画像に基づいて、人の目の大きさを検出する。開閉度算出部123は、顔画像における人の目の大きさに基づく人の目の開き具合を示す開閉度を、検出された人の顔の向きに基づいて人の顔を正面から見たときの値に補正した開閉度を算出する。本発明は、例えば、運転者の目の開閉状態を検出する車載装置に適用できる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、検出装置および方法、並びに、プログラムに関し、特に、人の目の開閉状態を検出する検出装置および方法、並びに、プログラムに関する。
【背景技術】
【0002】
従来、運転者の顔を撮影し、撮影した画像における運転者の目の縦幅(高さ)に基づいて、運転者の目の開き具合を示す開閉度を検出し、検出した開閉度に基づいて、運転者の居眠りなどの検出を行うことが提案されている。
【0003】
ところで、人の顔をカメラで撮影したとき、得られた画像における人の目の縦幅は、実際に目の縦幅が変化していなくても、顔の向きにより変化する。例えば、顔がカメラの正面を向いている場合に比べて、顔が上や下を向いた場合には、撮影した画像における目の縦幅は狭くなる。従って、単純に、撮影した画像における運転者の目の縦幅のみに基づいて目の開閉度を検出すると、運転者の顔の向きによって、目を開けているのに、開閉度が小さく検出されてしまうときがある。
【0004】
そこで、従来、運転者の顔が基準位置にあるときの目と鼻の間隔と、目と鼻の間隔の計測値との比に基づいて、目の縦幅の計測値を基準位置における値に補正することが提案されている(例えば、特許文献1参照)。例えば、この特許文献1に記載の発明を用いて、目の開閉度を検出することにより、開閉度の信頼度を向上させることが可能である。
【0005】
【特許文献1】特許第3296118号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかしながら、特許文献1に記載の発明では、目以外に鼻の位置を検出する必要があり、例えば、マスクをしているときなど、運転者の鼻を検出できない場合には、目の縦幅を補正することができず、その結果、目の開閉度を正確に検出することができない。
【0007】
本発明は、このような状況に鑑みてなされたものであり、より正確に目の開閉状態を検出できるようにするものである。
【課題を解決するための手段】
【0008】
本発明の一側面の検出装置は、人の顔を撮影した画像に基づいて、人の顔の向きを検出する顔向き検出手段と、画像における人の目の大きさを検出する目検出手段と、画像における人の目の大きさに基づく人の目の開き具合を示す開閉度を、検出された人の顔の向きに基づいて人の顔を正面から見たときの値に補正した開閉度を算出する開閉度算出手段とを含む。
【0009】
本発明の一側面の検出装置においては、人の顔を撮影した画像に基づいて、人の顔の向きが検出され、画像における人の目の大きさが検出され、画像における人の目の大きさに基づく人の目の開き具合を示す開閉度を、検出された人の顔の向きに基づいて人の顔を正面から見たときの値に補正した開閉度が算出される。
【0010】
従って、より正確に目の開閉状態を検出することができる。
【0011】
この顔向き検出手段、目検出手段、開閉度算出手段は、例えば、CPU(Central Processing Unit)またはECU(Electronic Control Unit)により構成される。
【0012】
この目検出手段には、画像における人の目の縦幅と横幅を検出させ、開閉度算出手段には、画像における人の目の縦幅と横幅の比を、検出された人の顔の向きに基づいて人の顔を正面から見たときの値に補正した開閉度を算出させることができる。
【0013】
これにより、画像に写っている人の顔の大きさや顔向きに関わらず、正確に目の開閉状態を検出することができる。
【0014】
この検出装置においては、人が目を開けているときの開閉度のデータを所定量取得し、データに基づいて、人が目を開けているか否かを判定する閾値を設定する閾値設定手段と、開閉度を閾値と比較することにより、人が目を開けているか否かを判定する判定手段とをさらに設けることができる。
【0015】
これにより、人が目を開けているか否かを正確に判定することができる。
【0016】
この閾値設定手段、判定手段は、例えば、CPU(Central Processing Unit)またはECU(Electronic Control Unit)により構成される。
【0017】
この閾値設定手段には、検出された開閉度が閾値を上回る頻度が所定の値を超えている場合、所定の期間内の開閉度に基づいて閾値を補正させることができる。
【0018】
これにより、目の状態の変化や検出対象となる人の変化に柔軟に対応して、人が目を開けているか否かを正確に判定することができる。
【0019】
人が目を閉じているときの開閉度のデータを所定量取得し、データに基づいて、人が目を閉じているか否かを判定する閾値を設定する閾値設定手段と、開閉度を閾値と比較することにより、人が目を閉じているか否かを判定する判定手段とをさらに設けることができる。
【0020】
これにより、人が目を閉じているか否かを正確に判定することができる。
【0021】
この閾値設定手段、判定手段は、例えば、CPU(Central Processing Unit)またはECU(Electronic Control Unit)により構成される。
【0022】
閾値設定手段には、検出された開閉度が閾値を下回る頻度が所定の値を超えている場合、所定の期間内の開閉度に基づいて閾値を補正させることができる。
【0023】
これにより、目の状態の変化や検出対象となる人の変化に柔軟に対応して、人が目を閉じているか否かを正確に判定することができる。
【0024】
本発明の一側面の検出方法は、検出装置が、人の顔を撮影した画像に基づいて、人の顔の向きを検出し、画像における人の目の大きさを検出し、画像における人の目の大きさに基づく人の目の開き具合を示す開閉度を、検出された人の顔の向きに基づいて人の顔を正面から見たときの値に補正した開閉度を算出するステップを含む。
【0025】
本発明の一側面のプログラムは、コンピュータに、人の顔を撮影した画像に基づいて、人の顔の向きを検出し、画像における人の目の大きさを検出し、画像における人の目の大きさに基づく人の目の開き具合を示す開閉度を、検出された人の顔の向きに基づいて人の顔を正面から見たときの値に補正した開閉度を算出するステップを含む処理を実行させる
【0026】
本発明の一側面の検出方法またはプログラムおいては、人の顔を撮影した画像に基づいて、人の顔の向きが検出され、画像における人の目の大きさが検出され、画像における人の目の大きさに基づく人の目の開き具合を示す開閉度を、検出された人の顔の向きに基づいて人の顔を正面から見たときの値に補正した開閉度が算出される。
【0027】
従って、より正確に目の開閉状態を検出することができる。
【発明の効果】
【0028】
以上のように、本発明の一側面によれば、目の開閉状態を検出することができる。特に、本発明の一側面によれば、より正確に目の開閉状態を検出することができる。
【発明を実施するための最良の形態】
【0029】
以下、図を参照して、本発明の実施の形態について説明する。
【0030】
まず、図1乃至図5を参照して、本発明の第1の実施の形態について説明する。
【0031】
図1は、本発明を適用した目開閉検出システムの第1の実施の形態を示すブロック図である。図1の目開閉検出システム101は、検出対象となる対象者の顔を撮影し、撮影した画像に基づいて、対象者の目の開き具合を示す開閉度を検出する。なお、以下、目開閉検出システム1を車両に設置し、運転者の目の開閉度を検出する場合について説明する。
【0032】
目開閉検出システム101は、カメラ111および検出装置112を含むように構成される。
【0033】
カメラ111は、目の開閉度の検出対象となる運転者の顔を撮影し、撮影の結果得られた画像(以下、顔画像と称する)を検出装置112の顔向き検出部121および目検出部122に供給する。例えば、カメラ111は、ステアリングコラム上に設置され、ほぼ正面から運転者を撮影したり、センタミラー(ルームミラー)の根元付近(センタミラーが車に取り付けられているあたり)に設置され、前方斜め上方向から運転者を撮影する。
【0034】
検出装置112は、顔向き検出部121、目検出部122、および、開閉度算出部123を含むように構成される。
【0035】
顔向き検出部121は、所定の手法により、顔画像に基づいて、運転者の顔の向きを検出する。顔向き検出部121は、検出結果を示す情報を開閉度算出部123に供給する。
【0036】
目検出部122は、所定の手法により、顔画像における運転者の目の大きさを検出する。目検出部122は、検出結果を示す情報を開閉度算出部123に供給する。
【0037】
開閉度算出部123は、図2乃至図5を参照して後述するように、運転者の顔の向き、および、顔画像における運転者の目の大きさに基づいて、運転者の目の開閉度を検出する。開閉度算出部123は、検出結果を示す情報を後段の装置に供給する。
【0038】
次に、図2のフローチャートを参照して、目開閉検出システム101により実行される目開閉度検出処理について説明する。なお、この処理は、例えば、目開閉検出システム101が設けられている車両のエンジンが始動したとき開始され、エンジンが停止したとき終了する。
【0039】
ステップS1において、目開閉検出システム101は、顔画像を取得する。具体的には、カメラ111は、運転者の顔を撮影する。カメラ111は、撮影の結果得られた顔画像を顔向き検出部121および目検出部122に供給する。
【0040】
ステップS2において、顔向き検出部121は、顔向きを検出する。すなわち、顔向き検出部121は、所定の手法により、顔画像に基づいて、運転者の顔の向きを検出する。この運転者の顔の向きは、例えば、カメラ111の光軸に平行で、かつ、カメラ111に向かう方向を基準方向として、運転者の顔の向きの基準方向に対する上下方向の角度αおよび左右方向の角度βにより表される。顔向き検出部121は、検出した運転者の顔の向きを示す情報を開閉度算出部123に供給する。
【0041】
なお、顔向き検出部121が顔の向きを検出する手法は、特定の手法に限定されるものではなく、より簡単、迅速かつ正確に顔の向きを検出できる手法を適用することが望ましい。
【0042】
ステップS3において、目検出部122は、目の縦幅と横幅を検出する。具体的には、目検出部122は、所定の手法により、顔画像における運転者の目の位置を検出し、さらに、検出した目の縦幅および横幅(ともに単位はピクセル)を検出する。目検出部122は、検出した運転者の目の横幅と縦幅を示す情報を開閉度算出部123に供給する。
【0043】
なお、目検出部122が目の縦幅と横幅を検出する手法は、特定の手法に限定されるものではなく、より簡単、迅速かつ正確に目の縦幅と横幅を検出できる手法を適用することが望ましい。
【0044】
ステップS4において、開閉度算出部123は、目の開閉度を算出する。ここで、図3乃至図5を参照して、目の開閉度の算出方法について説明する。
【0045】
人の目は、開閉により、目の縦幅(高さ)が変化する一方、横幅はほとんど変化しないため、目開閉検出システム101では、目の縦幅/目の横幅を開閉度として用いる。このように目の縦幅と横幅の比を開閉度として用いることにより、カメラ111と運転者の顔の間の距離の変化などにより発生する、顔画像における運転者の目の大きさの変動が、開閉度の検出結果に影響を与えることが防止される。
【0046】
ところで、カメラ111から見た運転者の目の縦幅と横幅は、実際の目の縦幅と横幅が変わらなくても、カメラ111に対する運転者の顔の向きにより変化する。
【0047】
図3および図4は、運転者の顔の向きと目の位置のモデルを示している。具体的には、図3は、運転者151の顔が、カメラ111に対してカメラ111の光軸と平行な方向、すなわち、カメラ111の正面を向いている場合のモデルを示しており、図4は、運転者151の顔が、図3の状態から角度αだけ上に向いた場合のモデルを示している。なお、図中、軸Aは、カメラ111の光軸に平行な軸を表し、線Eは、運転者151の目の高さ方向の位置を表している。また、以下、運転者151の実際の目の縦幅をHaとする。
【0048】
図3に示されるように、運転者151の顔が、カメラ111の正面を向いている場合、カメラ111から見た運転者151の目の縦幅Hc1は、実際の目の縦幅Haとほぼ等しくなる。そして、顔画像における運転者151の目の縦幅は、縦幅Hc1に対応したサイズとなる。
【0049】
一方、図4に示されるように、運転者151の顔が、軸Aに対して角度αだけ上を向いている場合、カメラ111から見た運転者151の目の縦幅Hc2は、実際の目の縦幅Haより小さくなる。具体的には、図5は、図4の斜線で示される三角形を拡大した図であるが、この図より、Hc2≒Ha×cosαとなることが分かる。そして、顔画像における運転者151の目の縦幅は、縦幅Hc2に対応したサイズとなる。これは、運転者151の顔が、軸Aに対して角度αだけ下を向いている場合も同様である。
【0050】
また、詳細な説明は省略するが、同様に、運転者の顔が、カメラ111に対してカメラ111の光軸と平行な方向から角度βだけ右または左を向いている場合、実際の運転者の目の横幅をWaとすると、カメラ111から見た運転者の目の横幅Wc≒Wa×cosβとなる。
【0051】
従って、運転者の顔が、基準方向(カメラ111の光軸に平行で、かつ、カメラ111に向かう方向)に対して上下方向に角度αおよび左右方向に角度βの方向を向いている場合の、顔画像における運転者の目の縦幅をHp、横幅をWpとしたとき、実際の運転者の目の縦幅の横幅の比を表す運転者の目の開閉度は、以下の式(1)により求めることができる。
【0052】
【数1】

【0053】
すなわち、式(1)の開閉度は、顔画像における運転者の目の縦幅と横幅の比を、運転者の顔の向きに基づいて、運転者がカメラ111の正面を向いているときの値に補正した値、換言すれば、運転者の顔を正面から見たときの値に補正した値となる。
【0054】
開閉度算出部123は、式(1)により運転者の目の開閉度を算出し、算出した目の開閉度を示す情報を後段の装置に出力する。
【0055】
その後、処理はステップS1に戻り、ステップS1以降の処理が実行される。
【0056】
このようにして、運転者の顔の向きに関わらず、運転者の目以外の顔の部分を用いずに、運転者の目の開閉度を正確に検出することができる。
【0057】
なお、基準方向に対する運転者の顔の向きが所定の角度以上である場合、顔画像に目が十分写っていない可能性が高く、開閉度の信頼度が低下するため、その場合には、目の開閉度を検出しないようにしてもよい。
【0058】
次に、図6乃至図11を参照して、本発明の第2の実施の形態について説明する。なお、本発明の第2の実施の形態は、目の開閉度に基づいて、運転者の目の開閉を判定できるようにするものである。
【0059】
図6は、本発明を適用した目開閉検出システムの第2の実施の形態を示すブロック図である。図6の目開閉検出システム201は、カメラ111、検出装置112および判定装置211を含むように構成される。すなわち、目開閉検出システム201は、図1の目開閉検出システム101に判定装置211を追加した構成となっている。なお、図中、図1と対応する部分には、同じ符号を付してあり、処理が同じ部分については、その説明は繰り返しになるので省略する。
【0060】
判定装置211は、閾値設定部221、蓄積部222、および、判定部223を含むように構成される。
【0061】
閾値設定部221は、開閉度算出部123から、運転者の目の開閉度を示す情報を取得するとともに、その目の開閉度の検出対象となった顔画像を撮影したときに、実際に運転者が目を開いていたか、あるいは、閉じていたかを示すデータを外部から取得する。閾値設定部221は、検出された運転者の目の開閉度と、外部から入力された運転者の目の開閉結果を対応づけて、蓄積部222に蓄積する。
【0062】
そして、閾値設定部221は、蓄積部222に蓄積されているデータのうち、運転者が目を開けているときの開閉度のデータに基づいて、運転者が目を開けているか否かを判定するための閾値THopenを設定する。また、閾値設定部221は、蓄積部222に蓄積されているデータのうち、運転者が目を閉じているときの開閉度のデータに基づいて、運転者が目を閉じているか否かを判定するための閾値THcloseを設定する。閾値設定部221は、設定した閾値THopenおよび閾値THcloseを示す情報を判定部223に供給する。
【0063】
また、閾値設定部221は、閾値THopenおよび閾値THcloseを設定した後、検出される運転者の目の開閉度を、閾値THopenおよび閾値THcloseと比較し、適宜閾値THopenおよび閾値THcloseを補正する。閾値設定部221は、補正した閾値THopenおよび閾値THcloseを示す情報を判定部223に供給する。
【0064】
蓄積部222は、例えば、HDD(ハードディスクドライブ)などの記録媒体により構成される。
【0065】
判定部223は、開閉度算出部123から、運転者の目の開閉度を示す情報を取得する。判定部223は、取得した運転者の目の開閉度を、閾値設定部221により設定された閾値と比較することにより、運転者が目の開閉を判定する。判定部223は、判定結果を示す情報を後段の装置に出力する。
【0066】
次に、図7のフローチャートを参照して、目開閉検出システム201により実行される学習処理について説明する。なお、この処理は、例えば、図示せぬ入力部を介して、学習処理の開始の指令が目開閉検出システム101に入力されたとき開始される。
【0067】
ステップS101乃至S104の処理は、図2のステップS1乃至S4の処理と同様であり、その説明は、繰り返しになるので省略する。なお、この処理により、運転者の顔画像に基づいて、運転者の目の開閉度が検出され、検出された目の開閉度を示す情報が、開閉度算出部123から閾値設定部221に供給される。
【0068】
ステップS105において、閾値設定部221は、目の開閉結果を取得する。具体的には、運転者あるいは他のユーザは、今回の開閉度の検出対象となった顔画像を撮影したときに、実際に運転者が目を開いていたか、あるいは、閉じていたかを示すデータを、図示せぬ入力部を介して、閾値設定部221に入力し、閾値設定部221は、入力されたデータを取得する。
【0069】
ステップS106において、閾値設定部221は、データを蓄積する。具体的には、閾値設定部221は、今回検出された運転者の目の開閉度と、外部から入力された運転者の目の開閉結果を対応づけて、蓄積部222に蓄積する。
【0070】
ステップS107において、閾値設定部221は、蓄積部222に所定量のデータが蓄積されたか否かを判定する。所定量のデータがまだ蓄積されていないと判定された場合、処理はステップS101に戻る。
【0071】
その後、ステップS107において、所定量のデータが蓄積されたと判定されるまで、ステップS101乃至S107の処理が繰り返し実行される。この間、運転者は、例えば、顔の向きを変えたり、目を開いたり、閉じたりしながら、様々な顔の向き、および、目の開閉状態における開閉度の検出結果のデータを、蓄積部222に蓄積させる。
【0072】
一方、ステップS107において、所定量のデータが蓄積されたと判定された場合、すなわち、目の開閉を判定するための閾値を設定するのに十分なデータが蓄積された判定された場合、処理はステップS108に進む。
【0073】
ステップS108において、閾値設定部221は、目の開閉を判定するための閾値を設定する。例えば、閾値設定部221は、蓄積部222に蓄積されているデータに基づいて、運転者の目が開けているときの開閉度の平均値を算出し、算出した平均値を閾値THopenに設定する。また、閾値設定部221は、蓄積部222に蓄積されているデータに基づいて、運転者の目が閉じているときの開閉度の平均値を算出し、算出した平均値を閾値THcloseに設定する。閾値設定部221は、算出した閾値THopenおよび閾値THcloseを示す情報を判定部223に供給する。その後、学習処理は終了する。
【0074】
次に、図8のフローチャートを参照して、目開閉検出システム201により実行される目開閉判定処理について説明する。なお、この処理は、例えば、目開閉検出システム201が設けられている車両のエンジンが始動したとき開始され、エンジンが停止したとき終了する。
【0075】
ステップS131乃至S134の処理は、図2のステップS1乃至S4の処理と同様であり、その説明は、繰り返しになるので省略する。なお、この処理により、運転者の顔画像に基づいて、運転者の目の開閉度が検出され、検出された目の開閉度を示す情報が、開閉度算出部123から閾値設定部221および判定部223に供給する。
【0076】
ステップS135において、判定部223は、目の開閉を判定する。具体的には、判定部223は、検出された運転者の目の開閉度が、閾値THopenを上回っている場合、運転者が目を開けていると判定し、閾値THcloseを下回っている場合、運転者が目を閉じていると判定し、閾値THopenと閾値THcloseの間の値である場合、運転者の目が半開きであると判定する。判定部223は、判定結果を示す情報を後段の装置に出力する。
【0077】
ステップS136において、閾値設定部221は、開閉度を蓄積する。すなわち、閾値設定部221は、検出装置112により検出された運転者の目の開閉度を示すデータを、検出された時刻とともに、蓄積部222に蓄積する。
【0078】
ステップS137において、閾値設定部221は、目の開閉度が閾値THopenを上回る頻度が所定の値を超えているか否かを判定する。具体的には、閾値設定部221は、蓄積部222に蓄積されているデータに基づいて、直近の所定の時間内(例えば、過去3分間)に検出された運転者の目の開閉度が、閾値THopenを上回った頻度を調べる。そして、閾値設定部221が、その頻度が所定の値(例えば、80%)を超えていると判定した場合、処理はステップS138に進む。
【0079】
ステップS138において、閾値設定部221は、閾値THopenを補正する。すなわち、例えば、運転者が変わったり、運転者または周囲の状態が変化したりして(例えば、運転者の周囲が眩しい状態から暗い状態に変化したりして)、目の開閉度が閾値THopenを頻繁に上回るようになった場合、閾値設定部221は、閾値THopenを補正する。
【0080】
例えば、閾値設定部221は、直近の所定の時間内(例えば、過去3分間)に検出された目の開閉度のヒストグラムを作成する。そして、閾値設定部221は、作成したヒストグラムのピークを中心とする所定の範囲内のデータにおける開閉度の平均値を、新しい閾値THopenとして算出する。このとき、閾値THopenの算出に用いるデータを、ヒストグラムのピークを中心とする所定の範囲内に限定することにより、瞬きなどにより運転者が目を閉じているときに検出された開閉度を、平均値の計算対象から除くことができる。閾値設定部221は、算出した閾値THopenを示す情報を判定部223に供給する。その後、処理はステップS131に戻り、ステップS131以降の処理が実行される。
【0081】
ここで、図9を参照して、ステップS137およびS138の処理の具体例について説明する。なお、図9は、運転者の目の開閉度の検出結果の一例を示しており、横軸は時間を示している。また、Dmaxは、図7の学習処理時に検出した運転者の目の開閉度の最大値を示し、Dminは最小値を示している。
【0082】
例えば、期間P1の間に、運転者が入れ替わり、入れ替わった後の運転者の目の縦幅が、入れ替わる前の運転者の目の縦幅より大きい場合、図9に示されるように、運転者が入れ替わった後、検出される目の開閉度が、閾値THopenを上回る頻度が高くなる。そして、所定の長さの期間P2において、目の開閉度が閾値THopenを上回る頻度が、所定の値を超えた場合、ステップS138において、例えば、期間P2において検出された目の開閉度に基づいて、閾値THopenが補正される。
【0083】
なお、例えば、周囲が眩しくて、運転者が目を細める状態が続き、後述するステップS141において、閾値THopenが小さい値に補正されている場合に、周囲が暗くなり、運転者の目が元の大きさに戻ったときなど、運転者が目を細めた状態から元の状態に戻ったときも同様に、検出される目の開閉度が閾値THopenを上回る頻度が高くなり、その結果、閾値THopenが補正される。
【0084】
なお、例えば、目の開閉度が最大値Dmaxを上回ったり、目の開閉度の平均値が閾値THopenを上回る状態が続いたりする場合も、運転者が変わっている可能性が高く、閾値THopenを補正することが望ましい。従って、目の開閉度が最大値Dmaxを上回ったか否か、目の開閉度の平均値が閾値THopenを上回る状態が所定の時間継続したか否かを、ステップS137の判定条件として用いるようにしてもよい。
【0085】
一方、ステップS137において、目の開閉度が閾値THopenを上回る頻度が所定の値を超えていないと判定された場合、処理はステップS139に進む。
【0086】
ステップS139において、閾値設定部221は、目の開閉度が閾値THcloseを下回る頻度が所定の値を超えているか否かを判定する。閾値設定部221が、直近の所定の時間内(例えば、過去3分間)において、運転者の目の開閉度が閾値THcloseを下回った頻度が、所定の値(例えば、80%)を超えていると判定した場合、処理はステップS140に進む。
【0087】
ステップS140において、閾値設定部221は、閾値THcloseを補正する。すなわち、例えば、運転者が変わって、目の開閉度が閾値THcloseを頻繁に下回るようになった場合、閾値設定部221は、閾値THcloseを補正する。
【0088】
例えば、閾値設定部221は、直近の所定の時間内(例えば、過去3分間)に検出された目の開閉度のヒストグラムを作成する。閾値設定部221は、作成したヒストグラムのピークを中心とする所定の範囲内のデータにおける開閉度の平均値を、新しい閾値THcloseとして算出する。このとき、閾値THcloseの算出に用いるデータを、ヒストグラムのピークを中心とする所定の範囲内に限定することにより、運転者が目を開けているときに検出された開閉度を、平均値の計算対象から除くことができる。閾値設定部221は、算出した閾値THcloseを示す情報を判定部223に供給する。その後、処理はステップS131に戻り、ステップS131以降の処理が実行される。
【0089】
ここで、図10を参照して、ステップS139およびS140の処理の具体例について説明する。なお、図10は、図9と同様に、運転者の目の開閉度の検出結果の一例を示している。
【0090】
例えば、期間P11の間に、運転者が入れ替わり、入れ替わった後の期間P12において、居眠りなどにより運転者が目を閉じた場合、運転者の目の形状によっては、図10に示されるように、検出される目の開閉度が、閾値THcloseを下回る頻度が高くなる場合がある。そして、所定の長さの期間P12において、検出される目の開閉度が閾値THcloseを下回る頻度が、所定の値を超えた場合、ステップS140において、例えば、期間P12において検出された目の開閉度に基づいて、閾値THcloseが補正される。
【0091】
なお、例えば、目の開閉度が最小値Dminを下回ったり、目の開閉度の平均値が閾値THcloseを下回る状態が続いたりする場合も、運転者が変わっている可能性が高く、閾値THcloseを補正することが望ましい。従って、目の開閉度が最小値Dminを下回ったか否か、目の開閉度の平均値が閾値THcloseを下回る状態が所定の時間継続したか否かを、ステップS139の判定条件として用いるようにしてもよい。
【0092】
一方、ステップS139において、目の開閉度が閾値THcloseを下回る頻度が所定の値を超えていないと判定された場合、処理はステップS141に進む。
【0093】
ステップS141において、閾値設定部221は、目の開閉度が閾値THopenと閾値THcloseの間になる頻度が所定の値を超えているか否かを判定する。閾値設定部221が、直近の所定の時間内(例えば、過去3分間)において、運転者の目の開閉度が閾値THopenと閾値THcloseの間になった頻度が、所定の値(例えば、80%)を超えていると判定した場合、処理はステップS142に進む。
【0094】
ステップS142において、閾値設定部221は、直近の所定の期間内(例えば、過去3分間)の目の開閉度の平均値を求める。
【0095】
ステップS143において、閾値設定部221は、求めた目の開閉度の平均値が所定の閾値以上であるか否かを判定する。この閾値は、例えば、図7の学習処理において蓄積したデータにおいて、運転者が目を閉じているときの開閉度の最大値に設定される。これにより、求めた開閉度の平均値がその閾値以上である場合、直近の所定の期間内において、運転者が総じて目を開いていたと推定することができる。求めた目の開閉度の平均値が、所定の閾値以上であると判定された場合、処理はステップS144に進む。
【0096】
ステップS144において、ステップS138の処理と同様に、閾値THopenが補正される。その後、処理はステップS131に戻り、ステップS131以降の処理が実行される。
【0097】
一方、ステップS143において、求めた目の開閉度の平均値が所定の閾値未満であると判定された場合、処理はステップS145に進む。
【0098】
ステップS145において、ステップS140の処理と同様に、閾値THcloseが補正される。その後、処理はステップS131に戻り、ステップS131以降の処理が実行される。
【0099】
ここで、図11を参照して、ステップS141乃至S145の処理の具体例について説明する。なお、図11は、図9および図10と同様に、運転者の目の開閉度の検出結果の一例を示している。
【0100】
例えば、時刻T1において、車両の向きが変わり、車内に直射日光が差し込むようになり、運転者が目を細めた場合、図11に示されるように、検出される目の開閉度が、閾値THopenと閾値THcloseの間になる頻度が高くなる。そして、所定の長さの期間P21において、目の開閉度が閾値THopenと閾値THcloseの間になった頻度が、所定の値を超えた場合、ステップS144において、例えば、期間P21において検出された目の開閉度に基づいて、閾値THopenが補正される。
【0101】
なお、例えば、運転者が入れ替わり、入れ替わった後の運転者の目の縦幅が、入れ替わる前の運転者の目の縦幅より小さい場合も同様に、検出される目の開閉度が閾値THopenと閾値THcloseの間になる頻度が高くなり、その結果、閾値THopenが補正される。
【0102】
また、例えば、運転者が入れ替わり、入れ替わった後に運転者が目を閉じた場合、運転者の目の形状によっては、検出される目の開閉度が、閾値THcloseを上回る頻度が高くなる場合がある。そして、所定の長さの期間において、目の開閉度が閾値THopenと閾値THcloseの間になる頻度が、所定の値を超えた場合、ステップS145において、閾値THcloseが補正される。
【0103】
以上のようにして、運転者の目の開閉を正確に判定することができる。また、運転者が変わったり、運転者の目の状態が変化したりしても、それに柔軟に対応して、運転者の目の開閉を正確に判定することができる。
【0104】
なお、運転者ごとに学習処理を実施し、各運転者に対する閾値THopenおよび閾値THcloseを予め求めておき、顔認証などの各種の生体認証により運転者を認証したり、ボタンなどの操作手段を用いてデータを選択するなどにより、運転者ごとに閾値THopenおよび閾値THcloseを選択して、使い分けるようにしてもよい。
【0105】
また、用途に応じて、閾値THopenまたは閾値THcloseのどちらか一方のみを求めて、目を開けているか否か、または、目を閉じているか否かの一方のみを判定するようにしてもよい。
【0106】
さらに、以上の説明では、運転者の目の開閉度の検出、および、目の開閉の判定を行う例を示したが、本発明は、運転者以外の人の目の開閉度の検出、および、目の開閉の判定に適用することが可能である。
【0107】
また、目の開閉度は、上述した例に限定されるものではなく、目の縦幅と横幅の比以外の値を用いるようにしてもよい。
【0108】
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
【0109】
図12は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
【0110】
コンピュータにおいて、CPU(Central Processing Unit)501,ROM(Read Only Memory)502,RAM(Random Access Memory)503は、バス504により相互に接続されている。
【0111】
バス504には、さらに、入出力インタフェース505が接続されている。入出力インタフェース505には、入力部506、出力部507、記憶部508、通信部509、及びドライブ510が接続されている。
【0112】
入力部506は、キーボード、マウス、マイクロフォンなどよりなる。出力部507は、ディスプレイ、スピーカなどよりなる。記憶部508は、ハードディスクや不揮発性のメモリなどよりなる。通信部509は、ネットワークインタフェースなどよりなる。ドライブ510は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブルメディア511を駆動する。
【0113】
以上のように構成されるコンピュータでは、CPU501が、例えば、記憶部508に記憶されているプログラムを、入出力インタフェース505及びバス504を介して、RAM503にロードして実行することにより、上述した一連の処理が行われる。
【0114】
コンピュータ(CPU501)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア511に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
【0115】
コンピュータでは、プログラムは、リムーバブルメディア511をドライブ510に装着することにより、入出力インタフェース505を介して、記憶部508にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部509で受信し、記憶部508にインストールすることができる。その他、プログラムは、ROM502や記憶部508に、あらかじめインストールしておくことができる。
【0116】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【0117】
また、本明細書において、システムの用語は、複数の装置、手段などより構成される全体的な装置を意味するものとする。
【0118】
さらに、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【0119】
【図1】本発明を適用した目開閉検出システムの第1の実施の形態を示すブロック図である。
【図2】目開閉検出システムにより実行される目開閉度検出処理を説明するためのフローチャートである。
【図3】目の開閉度の算出方法を説明するための図である。
【図4】目の開閉度の算出方法を説明するための図である。
【図5】目の開閉度の算出方法を説明するための図である。
【図6】本発明を適用した目開閉検出システムの第2の実施の形態を示すブロック図である。
【図7】目開閉検出システムにより実行される学習処理を説明するためのフローチャートである。
【図8】目開閉検出システムにより実行される目開閉判定処理を説明するためのフローチャートである。
【図9】閾値THopenの補正処理の具体例を説明するための図である。
【図10】閾値THcloseの補正処理の具体例を説明するための図である。
【図11】閾値THopenおよび閾値THcloseの補正処理の具体例を説明するための図である。
【図12】コンピュータの構成の例を示すブロック図である。
【符号の説明】
【0120】
101 目開閉検出システム
111 カメラ
112 検出装置
121 顔向き検出部
122 目検出部
123 開閉度算出部
201 目開閉検出システム
211 判定装置
221 閾値設定部
222 蓄積部
223 判定部

【特許請求の範囲】
【請求項1】
人の顔を撮影した画像に基づいて、前記人の顔の向きを検出する顔向き検出手段と、
前記画像における前記人の目の大きさを検出する目検出手段と、
前記画像における前記人の目の大きさに基づく前記人の目の開き具合を示す開閉度を、検出された前記人の顔の向きに基づいて前記人の顔を正面から見たときの値に補正した前記開閉度を算出する開閉度算出手段と
を含む検出装置。
【請求項2】
前記目検出手段は、前記画像における前記人の目の縦幅と横幅を検出し、
前記開閉度算出手段は、前記画像における前記人の目の縦幅と横幅の比を、検出された前記人の顔の向きに基づいて前記人の顔を正面から見たときの値に補正した前記開閉度を算出する
請求項1に記載の検出装置。
【請求項3】
前記人が目を開けているときの前記開閉度のデータを所定量取得し、前記データに基づいて、前記人が目を開けているか否かを判定する閾値を設定する閾値設定手段と、
前記開閉度を前記閾値と比較することにより、前記人が目を開けているか否かを判定する判定手段と
をさらに含む請求項1に記載の検出装置。
【請求項4】
前記閾値設定手段は、検出された前記開閉度が前記閾値を上回る頻度が所定の値を超えている場合、所定の期間内の前記開閉度に基づいて前記閾値を補正する
請求項3に記載の検出装置。
【請求項5】
前記人が目を閉じているときの前記開閉度のデータを所定量取得し、前記データに基づいて、前記人が目を閉じているか否かを判定する閾値を設定する閾値設定手段と、
前記開閉度を前記閾値と比較することにより、前記人が目を閉じているか否かを判定する判定手段と
をさらに含む請求項1に記載の検出装置。
【請求項6】
前記閾値設定手段は、検出された前記開閉度が前記閾値を下回る頻度が所定の値を超えている場合、所定の期間内の前記開閉度に基づいて前記閾値を補正する
請求項5に記載の検出装置。
【請求項7】
検出装置が、
人の顔を撮影した画像に基づいて、前記人の顔の向きを検出し、
前記画像における前記人の目の大きさを検出し、
前記画像における前記人の目の大きさに基づく前記人の目の開き具合を示す開閉度を、検出された前記人の顔の向きに基づいて前記人の顔を正面から見たときの値に補正した前記開閉度を算出する
ステップを含む検出方法。
【請求項8】
コンピュータに、
人の顔を撮影した画像に基づいて、前記人の顔の向きを検出し、
前記画像における前記人の目の大きさを検出し、
前記画像における前記人の目の大きさに基づく前記人の目の開き具合を示す開閉度を、検出された前記人の顔の向きに基づいて前記人の顔を正面から見たときの値に補正した前記開閉度を算出する
ステップを含む処理を実行させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate


【公開番号】特開2010−134490(P2010−134490A)
【公開日】平成22年6月17日(2010.6.17)
【国際特許分類】
【出願番号】特願2008−306942(P2008−306942)
【出願日】平成20年12月2日(2008.12.2)
【出願人】(000002945)オムロン株式会社 (3,542)
【Fターム(参考)】