(57)【要約】【課題】ドライバの瞼を正確に検出する。【解決手段】ドライバの顔が写る画像から検出され、ペアリングされたエッジ同士の距離ｄを順次算出する。そして、算出した距離ｄの変化に基づいて、瞼のエッジのペアとしての確度が低い候補を除外していき、最終的に残ったエッジのペアを、上瞼のエッジと下瞼のエッジのペアとして検出する（Ｓ２０８）。このため、瞼のエッジに近い特徴だけでなく、瞼としての振る舞いを考慮した検出を行うことができる。したがって、ドライバの瞼のエッジを、正確に検出することが可能となる。【選択図】図３
2013015970.tif 000002
【特許請求の範囲】
【請求項１】
所定の期間に順次撮影されるドライバの顔の画像から、エッジを検出するエッジ検出手段と、
検出された前記エッジから、前記ドライバの上瞼のエッジの候補となる第１エッジと、下瞼のエッジの候補となる第２エッジとを抽出する抽出手段と、
前記第１エッジと、前記第２エッジとをペアリングするペアリング手段と、
ペアリングされた前記第１エッジと前記第２エッジとの距離の変化に応じて、前記距離の最小値よりも大きく、前記距離の最大値よりも小さい閾値を算出する閾値算出手段と、
前記距離が前記閾値以上となる回数に基づいて、前記第１エッジを前記ドライバの上瞼のエッジの候補から除外するか否かを決定するとともに、前記第２エッジを前記ドライバの下瞼のエッジの候補から除外するか否かを決定する決定手段と、
前記決定手段による決定結果に基づいて、前記第１エッジと前記第２エッジとを除外し、残りの前記第１エッジと前記第２エッジとのペアの中から、前記ドライバの上瞼のエッジと下瞼のエッジのペアを検出する検出手段と、
を備える瞼検出装置。
【請求項２】
前記閾値算出手段は、
ペアリングされた前記第１エッジと前記第２エッジとの距離の最大値と最小値とに基づいて、前記閾値を算出する請求項１に記載の瞼検出装置。
【請求項３】
前記決定手段は、
前記第１エッジと前記第２エッジとの距離の分散が、所定の基準値よりも大きい場合に、前記第１エッジを前記ドライバの上瞼のエッジの候補から除外し、前記第２エッジを前記ドライバの下瞼のエッジの候補から除外することを決定する請求項１又は２に記載の瞼検出装置。
【請求項４】
前記決定手段は、
前記第１エッジと前記第２エッジとの距離の最小値が、所定の基準値よりも大きい場合に、前記第１エッジを前記ドライバの上瞼のエッジの候補から除外し、前記第２エッジを前記ドライバの下瞼のエッジの候補から除外することを決定する請求項１乃至３のいずれか一項に記載の瞼検出装置。
【請求項５】
前記決定手段は、
前記第１エッジと前記第２エッジとの距離の最大値と最小値との差が、所定の基準値よりも小さい場合に、前記第１エッジを前記ドライバの上瞼のエッジの候補から除外し、前記第２エッジを前記ドライバの下瞼のエッジの候補から除外することを決定する請求項１乃至４のいずれか一項に記載の瞼検出装置。
【請求項６】
所定の期間に順次撮影されるドライバの顔の画像から、エッジを検出する工程と、
検出された前記エッジから、前記ドライバの上瞼のエッジの候補となる第１エッジと、下瞼のエッジの候補となる第２エッジとを抽出する工程と、
前記第１エッジと、前記第２エッジとをペアリングする工程と、
ペアリングされた前記第１エッジと前記第２エッジとの距離の変化に応じて、前記距離の最小値よりも大きく、前記距離の最大値よりも小さい閾値を算出する工程と、
前記距離が前記閾値以上となる回数に基づいて、前記第１エッジを前記ドライバの上瞼のエッジの候補から除外するか否かを決定するとともに、前記第２エッジを前記ドライバの下瞼のエッジの候補から除外するか否かを決定する工程と、
前記決定の結果に基づいて、前記第１エッジと前記第２エッジとを除外し、残りの前記第１エッジと前記第２エッジとのペアの中から、前記ドライバの上瞼のエッジと下瞼のエッジのペアを検出する工程と、
を含む瞼検出方法。
【請求項７】
コンピュータに、
所定の期間に順次撮影されるドライバの顔の画像から、エッジを検出する手順と、
検出された前記エッジから、前記ドライバの上瞼のエッジの候補となる第１エッジと、下瞼のエッジの候補となる第２エッジとを抽出する手順と、
前記第１エッジと、前記第２エッジとをペアリングする手順と、
ペアリングされた前記第１エッジと前記第２エッジとの距離の変化に応じて、前記距離の最小値よりも大きく、前記距離の最大値よりも小さい閾値を算出する手順と、
前記距離が前記閾値以上となる回数に基づいて、前記第１エッジを前記ドライバの上瞼のエッジの候補から除外するか否かを決定するとともに、前記第２エッジを前記ドライバの下瞼のエッジの候補から除外するか否かを決定する手順と、
前記決定の結果に基づいて、前記第１エッジと前記第２エッジとを除外し、残りの前記第１エッジと前記第２エッジとのペアの中から、前記ドライバの上瞼のエッジと下瞼のエッジのペアを検出する手順と、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、瞼検出装置、瞼検出方法及びプログラムに関し、更に詳しくは、眼の画像から瞼を検出する瞼検出装置、眼の画像から瞼を検出するための瞼検出方法及びプログラムに関する。
【背景技術】
【０００２】
近年、交通事故の死者数は減少傾向にあるものの、事故の発生件数は依然として高い水準にある。事故の原因は様々であるが、居眠り運転等、ドライバが覚醒度が低下した状態で車両の運転を行うことも、事故を誘発する原因の１つである。そこで、ドライバの覚醒度を判定する際の指標となる瞼の動きを、精度良く検出するための技術が種々提案されている。（例えば特許文献１及び２参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−１２５５１８号公報
【特許文献２】特開平９−２３０４３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に開示された装置は、ドライバの顔が写る写真から差分画像を生成する。そして、差分画像に瞼の残像がある場合に、ドライバが瞬きをしているものと判断する。しかしながら、ドライバの顔全体が動いてしまった場合には、瞼が動いていないにもかかわらず、差分画像に瞼の残像が現れることがある。このような場合には、特許文献１に開示された装置では、ドライバが瞬きをしているかどうかを、正確に判断することが困難になると考えられる。
【０００５】
特許文献２に開示された装置は、ドライバの眼によって反射される反射光の強度が、眼が開いているときと、閉じているときとで変化することを利用して、ドライバが瞬きをしているかどうかを判断する。しかしながら、ドライバの周囲環境の変化にともなって、ドライバの眼に入射する光の強度が変化すると、瞬きの有無にかかわらず、反射光の強度が変化してしまう。このような場合には、特許文献２に開示された装置では、ドライバが瞬きしているかどうかを、正確に判断することが困難になると考えられる。
【０００６】
本発明は、上述の事情の下になされたもので、ドライバの瞼を正確に検出することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明の第１の観点に係る瞼検出装置は、
所定の期間に順次撮影されるドライバの顔の画像から、エッジを検出するエッジ検出手段と、
検出された前記エッジから、前記ドライバの上瞼のエッジの候補となる第１エッジと、下瞼のエッジの候補となる第２エッジとを抽出する抽出手段と、
前記第１エッジと、前記第２エッジとをペアリングするペアリング手段と、
ペアリングされた前記第１エッジと前記第２エッジとの距離の変化に応じて、前記距離の最小値よりも大きく、前記距離の最大値よりも小さい閾値を算出する閾値算出手段と、
前記距離が前記閾値以上となる回数に基づいて、前記第１エッジを前記ドライバの上瞼のエッジの候補から除外するか否かを決定するとともに、前記第２エッジを前記ドライバの下瞼のエッジの候補から除外するか否かを決定する決定手段と、
前記決定手段による決定結果に基づいて、前記第１エッジと前記第２エッジとを除外し、残りの前記第１エッジと前記第２エッジとのペアの中から、前記ドライバの上瞼のエッジと下瞼のエッジのペアを検出する検出手段と、
を備える。
【０００８】
本発明の第２の観点に係る瞼検出方法は、
所定の期間に順次撮影されるドライバの顔の画像から、エッジを検出する工程と、
検出された前記エッジから、前記ドライバの上瞼のエッジの候補となる第１エッジと、下瞼のエッジの候補となる第２エッジとを抽出する工程と、
前記第１エッジと、前記第２エッジとをペアリングする工程と、
ペアリングされた前記第１エッジと前記第２エッジとの距離の変化に応じて、前記距離の最小値よりも大きく、前記距離の最大値よりも小さい閾値を算出する工程と、
前記距離が前記閾値以上となる回数に基づいて、前記第１エッジを前記ドライバの上瞼のエッジの候補から除外するか否かを決定するとともに、前記第２エッジを前記ドライバの下瞼のエッジの候補から除外するか否かを決定する工程と、
前記決定の結果に基づいて、前記第１エッジと前記第２エッジとを除外し、残りの前記第１エッジと前記第２エッジとのペアの中から、前記ドライバの上瞼のエッジと下瞼のエッジのペアを検出する工程と、
を含む。
【０００９】
本発明の第３の観点に係るプログラムは、
コンピュータに、
所定の期間に順次撮影されるドライバの顔の画像から、エッジを検出する手順と、
検出された前記エッジから、前記ドライバの上瞼のエッジの候補となる第１エッジと、下瞼のエッジの候補となる第２エッジとを抽出する手順と、
前記第１エッジと、前記第２エッジとをペアリングする手順と、
ペアリングされた前記第１エッジと前記第２エッジとの距離の変化に応じて、前記距離の最小値よりも大きく、前記距離の最大値よりも小さい閾値を算出する手順と、
前記距離が前記閾値以上となる回数に基づいて、前記第１エッジを前記ドライバの上瞼のエッジの候補から除外するか否かを決定するとともに、前記第２エッジを前記ドライバの下瞼のエッジの候補から除外するか否かを決定する手順と、
前記決定の結果に基づいて、前記第１エッジと前記第２エッジとを除外し、残りの前記第１エッジと前記第２エッジとのペアの中から、前記ドライバの上瞼のエッジと下瞼のエッジのペアを検出する手順と、
を実行させる。
【発明の効果】
【００１０】
本発明によれば、ドライバの顔の画像から検出されたエッジの中から、瞼のエッジの候補が抽出され、ペアリングされる。そして、ペアリングされたエッジ同士の距離の時間的な変化に基づいて、ドライバの瞼のエッジのペアが検出される。このため、ドライバが一瞬顔を動かしたり、周囲環境が一時的に変化したとしても、時間的な変化を一定期間観察することで、正確にドライバの瞼のエッジを検出することができる。その結果、ドライバの覚醒度を正確に判定することが可能となる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施形態に係る瞼検出装置のブロック図である。
【図２】撮影装置によって撮影された画像を示す図である。
【図３】ＣＰＵによって実行される一連の処理を示すフローチャートである。
【図４】水平エッジ検出オペレータを示す図である。
【図５】垂直エッジ検出オペレータを示す図である。
【図６】画像から検出されたエッジを示す図である。
【図７】瞼のエッジの候補を示す図である。
【図８】エッジ間の距離を算出する手順を説明するための図である。
【図９】瞼のエッジを検出するための手順を説明するための図である。
【図１０】瞼のエッジを検出するための手順を説明するための図である。
【図１１】瞼のエッジを検出するための手順を説明するための図である。
【図１２】瞼のエッジを検出するための手順を説明するための図である。
【図１３】瞼のエッジを検出するための手順を説明するための図である。
【図１４】第２の実施形態に係る瞼検出装置のブロック図である。
【発明を実施するための形態】
【００１２】
《第１の実施形態》
以下、本発明の第１の実施形態を、図面を参照しつつ説明する。図１は本実施形態に係る瞼検出装置１０の概略的な構成を示すブロック図である。瞼検出装置１０は、ドライバの顔が写る画像から、当該ドライバの瞼を検出する装置である。図１に示されるように、瞼検出装置１０は、演算装置２０と、撮影装置３０を有している。
【００１３】
撮影装置３０は、被写体を撮影することにより取得した画像を電気信号に変換して出力する装置である。図２には、撮影装置３０によって撮影された画像ＩＭが示されている。画像ＩＭを参照するとわかるように、この撮影装置３０は、車両の運転席に着座するドライバ５０の顔が、視野のほぼ中心に位置するように、取り付け角や画角が調整された状態で、例えばステアリングコラム上或いはステアリングに取り付けられている。そして、撮影装置３０は、ドライバ５０の顔を所定のサンプリング周期で撮影し、撮影して得た画像に関する画像情報を演算装置２０へ出力する。ここでは、撮影装置３０は、例えば１秒間に４枚の画像に関する画像情報を出力する。
【００１４】
ここで、説明の便宜上、画像ＩＭの左下のコーナーを原点とするＸＹ座標系を定義し、以下、適宜ＸＹ座標系を用いた説明を行う。
【００１５】
図１に戻り、演算装置２０は、ＣＰＵ（Central Processing Unit）２１、主記憶部２２、補助記憶部２３、表示部２４、入力部２５、及びインターフェイス部２６を有するコンピュータである。
【００１６】
ＣＰＵ２１は、補助記憶部２３に記憶されたプログラムを読み出して実行する。ＣＰＵ２１の具体的な動作については後述する。
【００１７】
主記憶部２２は、ＲＡＭ（Random Access Memory）等の揮発性メモリを有している。主記憶部２２は、ＣＰＵ２１の作業領域として用いられる。
【００１８】
補助記憶部２３は、ＲＯＭ（Read Only Memory）、磁気ディスク、半導体メモリ等の不揮発性メモリを有している。補助記憶部２３は、ＣＰＵ２１が実行するプログラム、及び各種パラメータなどを記憶している。また、撮影装置３０から出力される画像に関する情報、及びＣＰＵ２１による処理結果などを含む情報を順次記憶する。
【００１９】
表示部２４は、ＬＣＤ（Liquid Crystal Display）などの表示ユニットを有している。表示部２４は、ＣＰＵ２１の処理結果等を表示する。
【００２０】
入力部２５は、入力キーや、タッチパネル等のポインティングデバイスを有している。オペレータの指示は、入力部２５を介して入力され、システムバス２７を経由してＣＰＵ２１へ通知される。
【００２１】
インターフェイス部２６は、シリアルインターフェイスまたはＬＡＮ（Local Area Network）インターフェイス等を含んで構成されている。撮影装置３０は、インターフェイス部２６を介してシステムバス２７に接続される。
【００２２】
図３のフローチャートは、ＣＰＵ２１によって実行される瞼検出処理プログラムの一連の処理アルゴリズムに対応している。以下、図３を参照しつつ、瞼検出装置１０の動作について説明する。図３のフローチャートに示される一連の処理は、例えば車両のイグニッションスイッチがオンになると、定期的に実行される。また、ここでは撮影装置３０によって、図２に示される画像ＩＭが撮影されたものとする。
【００２３】
まず、最初のステップＳ２０１では、ＣＰＵ２１は、内蔵するカウンタのカウンタ値Ｎを零にリセットする。
【００２４】
次のステップＳ２０２では、ＣＰＵ２１は、カウンタ値Ｎをインクリメントする。
【００２５】
次のステップＳ２０３では、ＣＰＵ２１は、補助記憶部２３に順次蓄積される画像ＩＭＮの画像情報を取得し、画像ＩＭＮのエッジを検出する。このエッジの検出は、画像ＩＭに対してソーベルフィルタを用いた画像処理を実行することにより行う。
【００２６】
具体的には、ＣＰＵ２１は、まず、図４に示される水平エッジ検出オペレータを用いて、画像ＩＭを構成する画素それぞれのエッジ値を算出する。このエッジ値は、エッジ値の算出対象となる画素の上側（＋Ｙ側）の画素の輝度が高く、下側の画素の輝度が低い場合に＋になる。そして、エッジ値の算出対象となる画素の上側（＋Ｙ側）の画素の輝度が低く、下側（−Ｙ側）の画素の輝度が高い場合に−になる。そこで、ＣＰＵ２１は、エッジ値が第１の閾値以上の画素と、エッジ値が第２の閾値以下の画素を抽出する。
【００２７】
次に、ＣＰＵ２１は、図５に示される垂直エッジ検出オペレータを用いて、画像ＩＭを構成する画素それぞれのエッジ値を算出する。このエッジ値は、エッジ値の算出対象となる画素の左側（−Ｘ側）の画素の輝度が高く、右側（＋Ｘ側）の画素の輝度が低い場合に＋になる。そして、エッジ値の算出対象となる画素の左側（−Ｘ側）の画素の輝度が低く、右側（＋Ｘ側）の画素の輝度が高い場合に−になる。そこで、ＣＰＵ２１は、エッジ値が第１の閾値以上の画素からなる画素と、エッジ値が第２の閾値以下の画素を抽出する。
【００２８】
上述のようにＣＰＵ２１によって抽出される画素は、図６に破線及び実線で示されるエッジ６０Ａ，６０Ｂを構成する。破線で示されるエッジ６０Ａは、エッジ値の合計が＋の画素からなるプラスエッジである。また、実線で示されるエッジ６０Ｂは、エッジ値の合計が−の画素からなるマイナスエッジである。
【００２９】
次のステップＳ２０４では、ＣＰＵ２１は、連続エッジの検出を行う。具体的には、ＣＰＵ２１は、ステップＳ２０３で抽出した画素のうち、エッジ値の極性が等しく、相互に隣接する画素をグループ化する。これにより、複数の画素からなる複数の画素群が規定される。次に、ＣＰＵ２１は、複数の画素群の中から横方向（Ｘ軸方向）の長さが閾値以上のグループを連続エッジとして検出する。
【００３０】
例えば、図７に示されるエッジ６０Ａ５は、Ｘ軸方向に連続し、極性が＋の画素によって構成される。ＣＰＵ２１によるエッジ検出が行われると、エッジ６０Ａ５に代表されるように、相互に隣接し極性が等しい画素からなる画素群が、連続エッジとして検出される。これにより、図６に破線及び実線で示されるエッジ６０Ａ，６０Ｂが検出される。
【００３１】
次のステップＳ２０５では、ＣＰＵ２１は、エッジ６０Ａ，６０Ｂそれぞれの重心、及び長さを算出する。
【００３２】
例えば、図８を参照するとわかるように、ＣＰＵ２１は、エッジ６０Ａ１の重心を求める場合には、エッジ６０Ａ１の両端の点Ｄ１、Ｄ２のＸ座標、Ｘ１，Ｘ２を用いて、次式（１）で示される演算を行うことで、重心ＳＡ１のＸ座標ＡＸ１を算出する。そして、Ｘ座標をＡＸ１とし、エッジ６０Ａ１上にある点を重心ＳＡ１として算出する。
【００３３】
ＡＸ１＝（Ｘ１＋Ｘ２）／２  …（１）
【００３４】
同様に、ＣＰＵ２１は、エッジ６０Ｂ１の重心を求める場合には、エッジ６０Ｂ１の両端の点Ｄ１、Ｄ２のＸ座標、Ｘ１，Ｘ２を用いて、次式（２）で示される演算を行うことで、重心ＳＢ１のＸ座標ＢＸ１を算出する。そして、Ｘ座標をＢＸ１とし、エッジ６０Ｂ１上にある点を重心ＳＢ１として算出する。
【００３５】
ＢＸ１＝（Ｘ１＋Ｘ２）／２  …（２）
【００３６】
また、エッジ６０Ａ，６０Ｂの長さは、例えば、エッジ６０Ａ，６０Ｂにフィッティングした曲線の長さを算出することにより求めることができる。
【００３７】
次のステップＳ２０６では、ＣＰＵ２１は、エッジのペアリングを行う。瞼の大きさは、個人相互間で個体差はあるが、概ねその大きさを予測することができる。そこで、ＣＰＵ２１は、エッジ６０Ａ，６０ＢのＸ軸方向の大きさ（幅）に基づいて、瞼のエッジの候補を抽出する。これにより、極端に長いエッジや、極端に短いエッジが、瞼のエッジの候補から除外される。
【００３８】
次に、ＣＰＵ２１は、エッジ６０Ａとエッジ６０Ｂの横方向の重心位置の差が基準値以下であり、かつ、エッジ６０Ａの重心ＳＡとエッジ６０Ｂの重心ＳＢの距離が基準値以下であるエッジ６０Ａ，６０Ｂの組を抽出する。
【００３９】
例えば、図８を参照するとわかるように、ＣＰＵ２１は、エッジ６０Ａ１の重心ＳＡ１のＸ座標ＡＸ１と、エッジ６０Ｂ１の重心ＳＢ１のＸ座標ＢＸ１との差ｄｆ１１と、エッジ６０Ａ１の重心ＳＡ１と、エッジ６０Ｂ１の重心ＳＢ１との距離ｄ１１をそれぞれ算出する。そして、差Ｄｆ１１と距離Ｄ１１が、それぞれ所定の基準値よりも小さい場合に、エッジ６０Ａ１とエッジ６０Ｂ１をペアリングする。
【００４０】
ＣＰＵ２１は、上述の処理を、各エッジ６０Ａｉと各エッジ６０Ｂｊとの間で行うことで、エッジ６０Ａｉとエッジ６０Ｂｊのペアリングを行う。これにより、図７を参照するとわかるように、エッジ６０Ａ１とエッジ６０Ｂ１、エッジ６０Ａ２とエッジ６０Ｂ２、エッジ６０Ａ３とエッジ６０Ｂ３、エッジ６０Ａ４とエッジ６０Ｂ４、エッジ６０Ａ５とエッジ６０Ｂ５がそれぞれペアリングされる。
【００４１】
なお、エッジ６０Ａ１は、ドライバ５０の右眉の上側のエッジであり、エッジ６０Ｂ１は、右眉の下側のエッジである。エッジ６０Ａ２は、ドライバ５０の左眉の上側のエッジであり、エッジ６０Ｂ２は、左眉の下側のエッジである。エッジ６０Ａ３は、ドライバ５０の右眼上瞼のエッジであり、エッジ６０Ｂ３は、右眼下瞼のエッジである。エッジ６０Ａ４は、ドライバ５０の左眼上瞼のエッジであり、エッジ６０Ｂ４は、左眼下瞼のエッジである。エッジ６０Ａ５は、ドライバ５０の上唇の上側のエッジであり、エッジ６０Ｂ５は、下唇の下側のエッジである。
【００４２】
また、ＣＰＵ２１は、ペアリングされたエッジ６０Ａｉ，６０Ｂｊ同士の距離ｄｉｊを、画像ＩＭＮが撮影された時間ｔＮと関連付けて、データＤｉｊＮ（ｄｉｊ，ｔＮ）として、補助記憶部２３へ記憶する。これにより、データＤｉｊＮ（ｄｉｊ，ｔＮ）が、時系列的に保存される。
【００４３】
次のステップＳ２０７では、ＣＰＵ２１は、カウンタ値Ｎが２０より大きいか否かを判断する。ステップＳ２０７での判断が否定された場合は（ステップＳ２０７：Ｎｏ）、ＣＰＵ２１は、ステップＳ２０２へ戻り、以降、ステップＳ２０２〜ステップＳ２０７までの処理を繰り返し実行する。これにより、画像ＩＭ１〜ＩＭ２０について、それぞれエッジの検出、エッジのペアリング等の処理が行われる。そして、データＤｉｊＮ（ｄｉｊ，ｔＮ）が、補助記憶部２３へ時系列的に保存される。
【００４４】
本実施形態では、演算装置２０に対して、１秒間に４枚の画像ＩＭに関する画像情報が出力される。このため、これらのデータＤｉｊ１（ｄｉｊ，ｔ１）〜Ｄｉｊ２０（ｄｉｊ，ｔ２０）は、約５秒間ドライバ５０を観察したときのデータとなる。
【００４５】
一方、ステップＳ２０７での判断が肯定された場合は（ステップＳ２０７：Ｙｅｓ）、ＣＰＵ２１は、ステップＳ２０８へ移行する。
【００４６】
ステップＳ２０８では、ＣＰＵ２１は、ペアリングされたエッジの中から、上瞼のエッジと下瞼のエッジとのペアを検出する。具体的には、ＣＰＵ２１は、後述する第１処理、第２処理、第３処理、及び第４処理を行うことで、上瞼のエッジと下瞼のエッジとのペアを検出する。
【００４７】
例えば、図９には、縦軸を距離ｄとし、横軸を時間とする座標系にプロットされた点が示されている。これらの点は、上瞼のエッジと下瞼のエッジによるデータＤｉｊＮ（ｄｉｊ，ｔＮ）によって規定される点である。また、この一連のデータＤｉｊＮ（ｄｉｊ，ｔＮ）は、時刻ｔ１から時刻ｔ２までの間に、瞬きが行われたときのものである。
【００４８】
図９に示されるように、ドライバ５０の眼が開いているときには、ドライバ５０の上瞼のエッジと下瞼のエッジとの距離ｄは、閾値ｔｈ１より大きくなり、ドライバ５０の眼が閉じているときには、ドライバ５０の上瞼のエッジと下瞼のエッジとの距離ｄが、閾値ｔｈ１よりも小さくなる。
【００４９】
そして、データＤｉｊＮ（ｄｉｊ，ｔＮ）が、上瞼のエッジと下瞼のエッジによるデータである場合には、閾値ｔｈ１より大きい距離ｄｉｊをもつデータＤｉｊＮ（ｄｉｊ，ｔＮ）の数Ｍ１が、閾値ｔｈ１以下の距離ｄｉｊをもつデータＤｉｊＮ（ｄｉｊ，ｔＮ）の数よりも支配的になる。
【００５０】
《第１処理》
そこで、ＣＰＵ２１は、補助記憶部２３からデータＤｉｊＮ（ｄｉｊ，ｔＮ）を読み出す。そして、読み出したデータＤｉｊＮ（ｄｉｊ，ｔＮ）の中から、距離ｄｉｊの最小値ｄＭＩＮと、最大値ｄＭＡＸを用いて次式（３）で示される演算を行い、閾値ｔｈ（ｔｈ１，ｔｈ２，ｔｈ３）を算出する。
【００５１】
ｔｈ＝ｄＭＩＮ＋（（ｄＭＡＸ−ｄＭＩＮ）／３）  …（３）
【００５２】
そして、ＣＰＵ２１は、閾値ｔｈより大きい距離ｄｉｊをもつデータＤｉｊＮ（ｄｉｊ，ｔＮ）の数Ｍ１をカウントする。そして、Ｍ１の値が、基準値よりも少ない場合には、読み出したデータＤｉｊＮ（ｄｉｊ，ｔＮ）に対応するエッジのペアを、上瞼のエッジと下瞼のエッジの候補から除外する。
【００５３】
例えば、図１０に示されるように、閾値ｔｈ２よりも小さい距離ｄｉｊをもつデータＤｉｊＮ（ｄｉｊ，ｔＮ）の数Ｍ２が、閾値ｔｈ２以上の距離ｄｉｊをもつデータＤｉｊＮ（ｄｉｊ，ｔＮ）の数よりも支配的である場合には、ＣＰＵ２１は、当該データＤｉｊＮ（ｄｉｊ，ｔＮ）に対応するエッジのペアを、上瞼のエッジと下瞼のエッジの候補から除外する。図１０に示されるデータは、例えば眼鏡のフレームによるエッジのペアに関連するデータである。このため、上述の処理で、眼鏡のフレームによるペア等が候補から除外される。
【００５４】
《第２処理》
図９を参照するとわかるように、ドライバ５０が瞬きをすると、距離ｄは、所定の基準値Ｖ１ｍｉｎ（例えば３．５）以下になる。そこで、ＣＰＵ２１は、補助記憶部２３から読み出したデータＤｉｊＮ（ｄｉｊ，ｔＮ）の中から、距離ｄｉｊの最小値ｄＭＩＮを抽出する。そして、この最小値ｄＭＩＮと基準値Ｖ１ｍｉｎとを比較して、距離ｄｉｊの最小値ｄＭＩＮの方が、基準値Ｖ１ｍｉｎよりも大きい場合には、当該データＤｉｊＮ（ｄｉｊ，ｔＮ）に対応するエッジのペアを、上瞼のエッジと下瞼のエッジの候補から除外する。
【００５５】
例えば、図１１に示されるように、距離ｄｉｊの最小値ｄＭＩＮの方が、基準値Ｖ１ｍｉｎよりも大きい場合には、ＣＰＵ２１は、当該データＤｉｊＮ（ｄｉｊ，ｔＮ）に対応するエッジのペアを、上瞼のエッジと下瞼のエッジの候補から除外する。図１１に示されるデータは、例えば眉毛の上側のエッジ６０Ａ１，６０Ａ３と下側のエッジ６０Ｂ１，６０Ｂ２のペアに関連するデータである。このため、上述の処理で、眉毛のエッジのペアが候補から除外される。
【００５６】
《第３処理》
図９に示されるように、ドライバ５０が眼を開いているときの距離ｄと、眼を閉じているときの距離ｄとの差は、ある程度の大きさ（例えば６）になる。そこで、ＣＰＵ２１は、補助記憶部２３から読み出したデータＤｉｊＮ（ｄｉｊ，ｔＮ）の中から、距離ｄｉｊの最大値ｄＭＡＸと、距離ｄｉｊの最小値ｄＭＩＮと抽出する。そして、ＣＰＵ２１は、最大値ｄＭＡＸと最小値ｄＭＩＮとの差ｄｆｆ（＝ｄＭＡＸ−ｄＭＩＮ）と、基準値Ｖ２ｍｉｎとを比較して、差ｄｆｆの方が、基準値Ｖ２ｍｉｎよりも小さい場合には、当該データＤｉｊＮ（ｄｉｊ，ｔＮ）に対応するエッジのペアを、上瞼のエッジと下瞼のエッジの候補から除外する。
【００５７】
例えば、図１２を参照するとわかるように、最大値ｄＭＡＸと最小値ｄＭＩＮとの差ｄｆｆ（＝ｄＭＡＸ−ｄＭＩＮ）が比較的小さく、基準値Ｖ２ｍｉｎよりも小さい場合には、ＣＰＵ２１は、当該データＤｉｊＮ（ｄｉｊ，ｔＮ）に対応するエッジのペアを、上瞼のエッジと下瞼のエッジの候補から除外する。図１２に示されるデータは、例えば眉毛の上側のエッジ６０Ａ１，６０Ａ２と下側のエッジ６０Ｂ１，６０Ｂ２のペアに関連するデータである。このため、上述の処理で、眉毛のエッジのペアが候補から除外される。
【００５８】
《第４処理》
ドライバ５０が眼を開いているときの距離ｄは、図９を参照するとわかるように、概ね一定の値（ここでは９）に収束する。そこで、ＣＰＵ２１は、読み出したデータＤｉｊＮ（ｄｉｊ，ｔＮ）の中から、距離ｄｉｊの最小値ｄＭＩＮと最大値ｄＭＡＸとを用いて上記式（３）で示される演算を行い、閾値ｔｈ３を算出する。そして、閾値ｔｈ３以上の距離ｄｉｊをもつデータＤｉｊＮ（ｄｉｊ，ｔＮ）の分散ｖｒを算出し、この分散ｖｒが所定の基準値Ｖ３ｍｉｎより大きい場合には、読み出したデータＤｉｊＮ（ｄｉｊ，ｔＮ）に対応するエッジのペアを、上瞼のエッジと下瞼のエッジの候補から除外する。
【００５９】
例えば、ＣＰＵ２１は、図１３に着色して示される点に対応するデータＤｉｊＮ（ｄｉｊ，ｔＮ）の分散ｖｒを算出する。そして、この分散ｖｒが所定の基準値Ｖ３ｍｉｎより大きい場合には、読み出したデータＤｉｊＮ（ｄｉｊ，ｔＮ）に対応するエッジのペアを、上瞼のエッジと下瞼のエッジの候補から除外する。図１３に示されるデータは、例えば上唇のエッジ６０Ａ５と、下唇のエッジ６０Ｂ５のペアに関連するデータである。このため、上述の処理で、唇のエッジのペアが候補から除外される。
【００６０】
ＣＰＵ２１によって、第１処理〜第４処理が実行されると、眉毛のエッジのペアや、唇のエッジのペアなどが除外される。これにより、例えば図９に示される上瞼のエッジ６０Ａ３，６０Ａ４と下瞼のエッジ６０Ｂ３，６０Ｂ４によって得られるデータＤｉｊＮ（ｄｉｊ，ｔＮ）だけが除外されることなく残る。そこで、ＣＰＵ２１は、除外されることなく残ったデータＤｉｊＮ（ｄｉｊ，ｔＮ）に対応するエッジ６０Ａ３とエッジ６０Ｂ３のペアを右眼上瞼と右眼下瞼のエッジのペアとして検出する。また、エッジ６０Ａ４とエッジ６０Ｂ４のペアを左眼上瞼と左眼下瞼のエッジのペアとして検出する。
【００６１】
ＣＰＵ２１は、ドライバ５０の瞼のエッジのペアの検出が終了すると、一連の処理を終了する。以降、ＣＰＵ２１は、撮影装置３０から出力される画像ＩＭに含まれる、エッジ６０Ａ３とエッジ６０Ｂ３のペアと、エッジ６０Ａ４とエッジ６０Ｂ４のペアを両眼の瞼のエッジとして観察して、ドライバ５０の瞬き回数や、間隔などをサンプリングする。例えばエッジ６０Ａ３とエッジ６０Ｂ３との距離ｄ３３、或いはエッジ６０Ａ４とエッジ６０Ｂ４との距離ｄ４４が、所定の閾値以下となりその後一定の大きさとなった場合に、ドライバ５０が瞬きをしたと判断することができる。
【００６２】
ＣＰＵ２１は、瞬きのサンプリング結果を、例えば外部装置等へ出力する。これにより、車両を運転するドライバ５０の覚醒度等を監視することが可能となる。
【００６３】
以上説明したように、本第１の実施形態では、画像ＩＭから検出され、ペアリングされたエッジ同士の距離ｄが順次算出される。そして、算出された距離ｄの変化に基づいて、瞼のエッジのペアとしての確度が低い候補が除外されていくことで、最終的に残ったエッジのペアが、上瞼のエッジと下瞼のエッジのペアとして検出される。このため、瞼のエッジに近い特徴だけでなく、瞼としての振る舞いを考慮した検出が行われる。したがって、ドライバ５０の瞼のエッジを、正確に検出することが可能となる。
【００６４】
具体的には、例えば、図１０に示されるように、閾値ｔｈ２よりも小さい距離ｄｉｊをもつデータＤｉｊＮ（ｄｉｊ，ｔＮ）の数Ｍ２が、閾値ｔｈ２以上の距離ｄｉｊをもつデータＤｉｊＮ（ｄｉｊ，ｔＮ）の数よりも支配的である場合には、当該データＤｉｊＮ（ｄｉｊ，ｔＮ）に対応するエッジのペアが、上瞼のエッジと下瞼のエッジの候補から除外される。これにより、例えば眼鏡のフレームによるエッジのペア等が、瞼のエッジの候補となることがなくなり、結果的に、ドライバ５０の瞼のエッジを、正確に検出することが可能となる。
【００６５】
また、例えば、図１１に示されるように、距離ｄｉｊの最小値ｄＭＩＮの方が、基準値Ｖ１ｍｉｎよりも大きい場合には、当該データＤｉｊＮ（ｄｉｊ，ｔＮ）に対応するエッジのペアが、上瞼のエッジと下瞼のエッジの候補から除外される。これにより、眉毛のエッジのペア等が、瞼のエッジの候補となることがなくなり、結果的に、ドライバ５０の瞼のエッジを、正確に検出することが可能となる。
【００６６】
また、例えば、図１２を参照するとわかるように、最大値ｄＭＡＸと最小値ｄＭＩＮとの差ｄｆ（＝ｄＭＡＸ−ｄＭＩＮ）が比較的小さく、基準値Ｖ２ｍｉｎよりも小さい場合には、当該データＤｉｊＮ（ｄｉｊ，ｔＮ）に対応するエッジのペアが、上瞼のエッジと下瞼のエッジの候補から除外される。これにより、眉毛のエッジのペア等が、瞼のエッジの候補となることがなくなり、結果的に、ドライバ５０の瞼のエッジを、正確に検出することが可能となる。
【００６７】
また、例えば、図１３に着色して示される点に対応するデータＤｉｊＮ（ｄｉｊ，ｔＮ）の分散ｖｒが所定の基準値Ｖ３ｍｉｎより大きい場合には、読み出したデータＤｉｊＮ（ｄｉｊ，ｔＮ）に対応するエッジのペアが、上瞼のエッジと下瞼のエッジの候補から除外される。これにより、唇のエッジのペア等が、瞼のエッジの候補となることがなくなり、結果的に、ドライバ５０の瞼のエッジを、正確に検出することが可能となる。
【００６８】
《第２の実施形態》
次に、本発明の第２の実施形態を、図面を参照しつつ説明する。なお、第１の実施形態と同一又は同等の構成については、同等の符号を用いるとともに、その説明を省略又は簡略する。
【００６９】
本実施形態に係る瞼検出装置１０Ａは、演算装置２０が、ハードウエアで構成されている点で、第１の実施形態に係る瞼検出装置１０と相違している。図１４に示されるように、演算装置２０は、記憶部２０ａ、エッジ検出部２０ｂ、連続エッジ検出部２０ｃ、算出部２０ｄ、、ペアリング部２０ｅ、及び検出部２０ｆを有している。
【００７０】
記憶部２０ａは、撮影装置３０から出力される画像に関する情報、及び上記各部２０ｂ〜２０ｆの処理結果などを含む情報を順次記憶する。
【００７１】
エッジ検出部２０ｂは、記憶部２０ａに順次蓄積される画像ＩＭＮの画像情報を取得し、画像ＩＭＮのエッジを検出する。このエッジの検出は、画像ＩＭに対してソーベルフィルタを用いた画像処理を実行することにより行う。
【００７２】
連続エッジ検出部２０ｃは、連続エッジの検出を行う。具体的には、連続エッジ検出部２０ｃは、エッジ検出部２０ｂによって抽出された画素のうち、エッジ値の極性が等しく、相互に隣接する画素をグループ化する。これにより、複数の画素からなる複数の画素群が規定される。次に、連続エッジ検出部２０ｃは、複数の画素群の中から横方向（Ｘ軸方向）の長さが閾値以上のグループを連続エッジとして検出する。これにより、図６に破線及び実線で示されるエッジ６０Ａ，６０Ｂが検出される。
【００７３】
算出部２０ｄは、エッジ６０Ａ，６０Ｂそれぞれの重心ＳＡ，ＳＢ、及び長さを算出する。
【００７４】
ペアリング部２０ｅは、エッジのペアリングを行う。瞼の大きさは、個人相互間で個体差はあるが、概ねその大きさを予測することができる。そこで、ペアリング部２０ｅは、エッジ６０Ａｉ，６０ＢｊのＸ軸方向の大きさ（幅）に基づいて、瞼のエッジの候補を抽出する。次に、エッジ６０Ａとエッジ６０Ｂの横方向の重心位置の差が基準値以下であり、かつ、エッジ６０Ａｉの重心ＳＡｉとエッジ６０Ｂｊの重心ＳＢｊの距離とが基準値以下であるエッジ６０Ａｉ，６０Ｂｊの組を抽出する。
【００７５】
また、ペアリング部２０ｅは、ペアリングされたエッジ６０Ａｉ，６０Ｂｊ同士の距離ｄｉｊを、画像ＩＭＮが撮影された時間ｔＮと関連付けて、データＤｉｊＮ（ｄｉｊ，ｔＮ）として、補助記憶部２３へ記憶する。これにより、データＤｉｊＮ（ｄｉｊ，ｔＮ）が、時系列的に保存される。
【００７６】
検出部２０ｆは、ペアリングされたエッジの中から、上瞼のエッジと下瞼のエッジとのペアを検出する。具体的には、検出部２０ｆは、上述した第１処理、第２処理、第３処理、及び第４処理を行うことで、上瞼のエッジと下瞼のエッジとのペアを検出する。そして、検出結果を例えば外部装置等へ出力する。
【００７７】
以上説明したように、本第２の実施形態では、画像ＩＭから検出され、ペアリングされたエッジ同士の距離ｄが順次算出される。そして、算出された距離ｄの変化に基づいて、瞼のエッジのペアとしての確度が低い候補が除外されていくことで、最終的に残ったエッジのペアが、上瞼のエッジと下瞼のエッジのペアとして検出される。このため、瞼のエッジに近い特徴だけでなく、瞼としての振る舞いを考慮した検出が行われる。したがって、ドライバ５０の瞼のエッジを、正確に検出することが可能となる。
【００７８】
以上、本発明の実施形態について説明したが、本発明は上記実施形態によって限定されるものではない。
【００７９】
例えば、上記実施形態では、撮影装置３０は、例えば１秒間に４枚の画像に関する画像情報を出力することとした。これに限らず、撮影装置３０は、フレームレートに等しい数の画像に関する画像情報を出力し、演算装置２０は、２０秒間に出力される画像情報すべての時系列データに基づいて、瞼のエッジのペアを検出するための処理を実行することとしてもよい。
【００８０】
上記実施形態では、閾値ｔｈを上記式（３）に基づいて算出した。当該算出式は一例であり、他の式を用いて閾値ｔｈを算出することとしてもよい。
【００８１】
上記実施形態に係る演算装置２０の機能は、専用のハードウエアによっても、通常のコンピュータシステムによっても実現することができる。
【００８２】
上記第１の実施形態において演算装置２０の補助記憶部２３に記憶されているプログラムは、フレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disk Read-Only Memory）、ＤＶＤ（Digital Versatile Disk）、ＭＯ（Magneto-Optical disk）等のコンピュータで読み取り可能な記録媒体に格納して配布し、そのプログラムをコンピュータにインストールすることにより、上述の処理を実行する装置を構成することとしてもよい。
【００８３】
なお、本発明は、本発明の広義の精神と範囲を逸脱することなく、様々な実施形態及び変形が可能とされるものである。また、上述した実施形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。
【産業上の利用可能性】
【００８４】
本発明の瞼検出装置、瞼検出方法及びプログラムは、瞼の検出に適している。
【符号の説明】
【００８５】
１０，１０Ａ  瞼検出装置
２０  演算装置
２０ａ  記憶部
２０ｂ  エッジ検出部
２０ｃ  連続エッジ検出部
２０ｄ  算出部
２０ｅ  ペアリング部
２０ｆ  検出部
２１  ＣＰＵ
２２  主記憶部
２３  補助記憶部
２４  表示部
２５  入力部
２６  インターフェイス部
２７  システムバス
３０  撮影装置
５０  ドライバ
６０Ａ，６０Ｂ  エッジ
Ｄ  点
Ｄｉｊ  データ
Ｆ  顔
ＩＭ  画像
ＳＡ，ＳＢ  重心
【図１】
2013015970.tif 000003
【図２】
2013015970.tif 000004
【図３】
2013015970.tif 000005
【図４】
2013015970.tif 000006
【図５】
2013015970.tif 000007
【図６】
2013015970.tif 000008
【図７】
2013015970.tif 000009
【図８】
2013015970.tif 000010
【図９】
2013015970.tif 000011
【図１０】
2013015970.tif 000012
【図１１】
2013015970.tif 000013
【図１２】
2013015970.tif 000014
【図１３】
2013015970.tif 000015
【図１４】
2013015970.tif 000016