説明

瞼検出装置、瞼検出方法及びプログラム

【課題】ドライバの瞼を正確に検出する。
【解決手段】ドライバの顔が写る画像から検出され、ペアリングされたエッジ同士の距離dを順次算出する。そして、算出した距離dの変化に基づいて、瞼のエッジのペアとしての確度が低い候補を除外していき、最終的に残ったエッジのペアを、上瞼のエッジと下瞼のエッジのペアとして検出する(S208)。このため、瞼のエッジに近い特徴だけでなく、瞼としての振る舞いを考慮した検出を行うことができる。したがって、ドライバの瞼のエッジを、正確に検出することが可能となる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、瞼検出装置、瞼検出方法及びプログラムに関し、更に詳しくは、眼の画像から瞼を検出する瞼検出装置、眼の画像から瞼を検出するための瞼検出方法及びプログラムに関する。
【背景技術】
【0002】
近年、交通事故の死者数は減少傾向にあるものの、事故の発生件数は依然として高い水準にある。事故の原因は様々であるが、居眠り運転等、ドライバが覚醒度が低下した状態で車両の運転を行うことも、事故を誘発する原因の1つである。そこで、ドライバの覚醒度を判定する際の指標となる瞼の動きを、精度良く検出するための技術が種々提案されている。(例えば特許文献1及び2参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2009−125518号公報
【特許文献2】特開平9−230436号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1に開示された装置は、ドライバの顔が写る写真から差分画像を生成する。そして、差分画像に瞼の残像がある場合に、ドライバが瞬きをしているものと判断する。しかしながら、ドライバの顔全体が動いてしまった場合には、瞼が動いていないにもかかわらず、差分画像に瞼の残像が現れることがある。このような場合には、特許文献1に開示された装置では、ドライバが瞬きをしているかどうかを、正確に判断することが困難になると考えられる。
【0005】
特許文献2に開示された装置は、ドライバの眼によって反射される反射光の強度が、眼が開いているときと、閉じているときとで変化することを利用して、ドライバが瞬きをしているかどうかを判断する。しかしながら、ドライバの周囲環境の変化にともなって、ドライバの眼に入射する光の強度が変化すると、瞬きの有無にかかわらず、反射光の強度が変化してしまう。このような場合には、特許文献2に開示された装置では、ドライバが瞬きしているかどうかを、正確に判断することが困難になると考えられる。
【0006】
本発明は、上述の事情の下になされたもので、ドライバの瞼を正確に検出することを目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成するために、本発明の第1の観点に係る瞼検出装置は、
所定の期間に順次撮影されるドライバの顔の画像から、エッジを検出するエッジ検出手段と、
検出された前記エッジから、前記ドライバの上瞼のエッジの候補となる第1エッジと、下瞼のエッジの候補となる第2エッジとを抽出する抽出手段と、
前記第1エッジと、前記第2エッジとをペアリングするペアリング手段と、
ペアリングされた前記第1エッジと前記第2エッジとの距離の変化に応じて、前記距離の最小値よりも大きく、前記距離の最大値よりも小さい閾値を算出する閾値算出手段と、
前記距離が前記閾値以上となる回数に基づいて、前記第1エッジを前記ドライバの上瞼のエッジの候補から除外するか否かを決定するとともに、前記第2エッジを前記ドライバの下瞼のエッジの候補から除外するか否かを決定する決定手段と、
前記決定手段による決定結果に基づいて、前記第1エッジと前記第2エッジとを除外し、残りの前記第1エッジと前記第2エッジとのペアの中から、前記ドライバの上瞼のエッジと下瞼のエッジのペアを検出する検出手段と、
を備える。
【0008】
本発明の第2の観点に係る瞼検出方法は、
所定の期間に順次撮影されるドライバの顔の画像から、エッジを検出する工程と、
検出された前記エッジから、前記ドライバの上瞼のエッジの候補となる第1エッジと、下瞼のエッジの候補となる第2エッジとを抽出する工程と、
前記第1エッジと、前記第2エッジとをペアリングする工程と、
ペアリングされた前記第1エッジと前記第2エッジとの距離の変化に応じて、前記距離の最小値よりも大きく、前記距離の最大値よりも小さい閾値を算出する工程と、
前記距離が前記閾値以上となる回数に基づいて、前記第1エッジを前記ドライバの上瞼のエッジの候補から除外するか否かを決定するとともに、前記第2エッジを前記ドライバの下瞼のエッジの候補から除外するか否かを決定する工程と、
前記決定の結果に基づいて、前記第1エッジと前記第2エッジとを除外し、残りの前記第1エッジと前記第2エッジとのペアの中から、前記ドライバの上瞼のエッジと下瞼のエッジのペアを検出する工程と、
を含む。
【0009】
本発明の第3の観点に係るプログラムは、
コンピュータに、
所定の期間に順次撮影されるドライバの顔の画像から、エッジを検出する手順と、
検出された前記エッジから、前記ドライバの上瞼のエッジの候補となる第1エッジと、下瞼のエッジの候補となる第2エッジとを抽出する手順と、
前記第1エッジと、前記第2エッジとをペアリングする手順と、
ペアリングされた前記第1エッジと前記第2エッジとの距離の変化に応じて、前記距離の最小値よりも大きく、前記距離の最大値よりも小さい閾値を算出する手順と、
前記距離が前記閾値以上となる回数に基づいて、前記第1エッジを前記ドライバの上瞼のエッジの候補から除外するか否かを決定するとともに、前記第2エッジを前記ドライバの下瞼のエッジの候補から除外するか否かを決定する手順と、
前記決定の結果に基づいて、前記第1エッジと前記第2エッジとを除外し、残りの前記第1エッジと前記第2エッジとのペアの中から、前記ドライバの上瞼のエッジと下瞼のエッジのペアを検出する手順と、
を実行させる。
【発明の効果】
【0010】
本発明によれば、ドライバの顔の画像から検出されたエッジの中から、瞼のエッジの候補が抽出され、ペアリングされる。そして、ペアリングされたエッジ同士の距離の時間的な変化に基づいて、ドライバの瞼のエッジのペアが検出される。このため、ドライバが一瞬顔を動かしたり、周囲環境が一時的に変化したとしても、時間的な変化を一定期間観察することで、正確にドライバの瞼のエッジを検出することができる。その結果、ドライバの覚醒度を正確に判定することが可能となる。
【図面の簡単な説明】
【0011】
【図1】第1の実施形態に係る瞼検出装置のブロック図である。
【図2】撮影装置によって撮影された画像を示す図である。
【図3】CPUによって実行される一連の処理を示すフローチャートである。
【図4】水平エッジ検出オペレータを示す図である。
【図5】垂直エッジ検出オペレータを示す図である。
【図6】画像から検出されたエッジを示す図である。
【図7】瞼のエッジの候補を示す図である。
【図8】エッジ間の距離を算出する手順を説明するための図である。
【図9】瞼のエッジを検出するための手順を説明するための図である。
【図10】瞼のエッジを検出するための手順を説明するための図である。
【図11】瞼のエッジを検出するための手順を説明するための図である。
【図12】瞼のエッジを検出するための手順を説明するための図である。
【図13】瞼のエッジを検出するための手順を説明するための図である。
【図14】第2の実施形態に係る瞼検出装置のブロック図である。
【発明を実施するための形態】
【0012】
《第1の実施形態》
以下、本発明の第1の実施形態を、図面を参照しつつ説明する。図1は本実施形態に係る瞼検出装置10の概略的な構成を示すブロック図である。瞼検出装置10は、ドライバの顔が写る画像から、当該ドライバの瞼を検出する装置である。図1に示されるように、瞼検出装置10は、演算装置20と、撮影装置30を有している。
【0013】
撮影装置30は、被写体を撮影することにより取得した画像を電気信号に変換して出力する装置である。図2には、撮影装置30によって撮影された画像IMが示されている。画像IMを参照するとわかるように、この撮影装置30は、車両の運転席に着座するドライバ50の顔が、視野のほぼ中心に位置するように、取り付け角や画角が調整された状態で、例えばステアリングコラム上或いはステアリングに取り付けられている。そして、撮影装置30は、ドライバ50の顔を所定のサンプリング周期で撮影し、撮影して得た画像に関する画像情報を演算装置20へ出力する。ここでは、撮影装置30は、例えば1秒間に4枚の画像に関する画像情報を出力する。
【0014】
ここで、説明の便宜上、画像IMの左下のコーナーを原点とするXY座標系を定義し、以下、適宜XY座標系を用いた説明を行う。
【0015】
図1に戻り、演算装置20は、CPU(Central Processing Unit)21、主記憶部22、補助記憶部23、表示部24、入力部25、及びインターフェイス部26を有するコンピュータである。
【0016】
CPU21は、補助記憶部23に記憶されたプログラムを読み出して実行する。CPU21の具体的な動作については後述する。
【0017】
主記憶部22は、RAM(Random Access Memory)等の揮発性メモリを有している。主記憶部22は、CPU21の作業領域として用いられる。
【0018】
補助記憶部23は、ROM(Read Only Memory)、磁気ディスク、半導体メモリ等の不揮発性メモリを有している。補助記憶部23は、CPU21が実行するプログラム、及び各種パラメータなどを記憶している。また、撮影装置30から出力される画像に関する情報、及びCPU21による処理結果などを含む情報を順次記憶する。
【0019】
表示部24は、LCD(Liquid Crystal Display)などの表示ユニットを有している。表示部24は、CPU21の処理結果等を表示する。
【0020】
入力部25は、入力キーや、タッチパネル等のポインティングデバイスを有している。オペレータの指示は、入力部25を介して入力され、システムバス27を経由してCPU21へ通知される。
【0021】
インターフェイス部26は、シリアルインターフェイスまたはLAN(Local Area Network)インターフェイス等を含んで構成されている。撮影装置30は、インターフェイス部26を介してシステムバス27に接続される。
【0022】
図3のフローチャートは、CPU21によって実行される瞼検出処理プログラムの一連の処理アルゴリズムに対応している。以下、図3を参照しつつ、瞼検出装置10の動作について説明する。図3のフローチャートに示される一連の処理は、例えば車両のイグニッションスイッチがオンになると、定期的に実行される。また、ここでは撮影装置30によって、図2に示される画像IMが撮影されたものとする。
【0023】
まず、最初のステップS201では、CPU21は、内蔵するカウンタのカウンタ値Nを零にリセットする。
【0024】
次のステップS202では、CPU21は、カウンタ値Nをインクリメントする。
【0025】
次のステップS203では、CPU21は、補助記憶部23に順次蓄積される画像IMの画像情報を取得し、画像IMのエッジを検出する。このエッジの検出は、画像IMに対してソーベルフィルタを用いた画像処理を実行することにより行う。
【0026】
具体的には、CPU21は、まず、図4に示される水平エッジ検出オペレータを用いて、画像IMを構成する画素それぞれのエッジ値を算出する。このエッジ値は、エッジ値の算出対象となる画素の上側(+Y側)の画素の輝度が高く、下側の画素の輝度が低い場合に+になる。そして、エッジ値の算出対象となる画素の上側(+Y側)の画素の輝度が低く、下側(−Y側)の画素の輝度が高い場合に−になる。そこで、CPU21は、エッジ値が第1の閾値以上の画素と、エッジ値が第2の閾値以下の画素を抽出する。
【0027】
次に、CPU21は、図5に示される垂直エッジ検出オペレータを用いて、画像IMを構成する画素それぞれのエッジ値を算出する。このエッジ値は、エッジ値の算出対象となる画素の左側(−X側)の画素の輝度が高く、右側(+X側)の画素の輝度が低い場合に+になる。そして、エッジ値の算出対象となる画素の左側(−X側)の画素の輝度が低く、右側(+X側)の画素の輝度が高い場合に−になる。そこで、CPU21は、エッジ値が第1の閾値以上の画素からなる画素と、エッジ値が第2の閾値以下の画素を抽出する。
【0028】
上述のようにCPU21によって抽出される画素は、図6に破線及び実線で示されるエッジ60A,60Bを構成する。破線で示されるエッジ60Aは、エッジ値の合計が+の画素からなるプラスエッジである。また、実線で示されるエッジ60Bは、エッジ値の合計が−の画素からなるマイナスエッジである。
【0029】
次のステップS204では、CPU21は、連続エッジの検出を行う。具体的には、CPU21は、ステップS203で抽出した画素のうち、エッジ値の極性が等しく、相互に隣接する画素をグループ化する。これにより、複数の画素からなる複数の画素群が規定される。次に、CPU21は、複数の画素群の中から横方向(X軸方向)の長さが閾値以上のグループを連続エッジとして検出する。
【0030】
例えば、図7に示されるエッジ60Aは、X軸方向に連続し、極性が+の画素によって構成される。CPU21によるエッジ検出が行われると、エッジ60Aに代表されるように、相互に隣接し極性が等しい画素からなる画素群が、連続エッジとして検出される。これにより、図6に破線及び実線で示されるエッジ60A,60Bが検出される。
【0031】
次のステップS205では、CPU21は、エッジ60A,60Bそれぞれの重心、及び長さを算出する。
【0032】
例えば、図8を参照するとわかるように、CPU21は、エッジ60Aの重心を求める場合には、エッジ60Aの両端の点D、DのX座標、X,Xを用いて、次式(1)で示される演算を行うことで、重心SAのX座標AXを算出する。そして、X座標をAXとし、エッジ60A上にある点を重心SAとして算出する。
【0033】
AX=(X+X)/2 …(1)
【0034】
同様に、CPU21は、エッジ60Bの重心を求める場合には、エッジ60Bの両端の点D、DのX座標、X,Xを用いて、次式(2)で示される演算を行うことで、重心SBのX座標BXを算出する。そして、X座標をBXとし、エッジ60B上にある点を重心SBとして算出する。
【0035】
BX=(X+X)/2 …(2)
【0036】
また、エッジ60A,60Bの長さは、例えば、エッジ60A,60Bにフィッティングした曲線の長さを算出することにより求めることができる。
【0037】
次のステップS206では、CPU21は、エッジのペアリングを行う。瞼の大きさは、個人相互間で個体差はあるが、概ねその大きさを予測することができる。そこで、CPU21は、エッジ60A,60BのX軸方向の大きさ(幅)に基づいて、瞼のエッジの候補を抽出する。これにより、極端に長いエッジや、極端に短いエッジが、瞼のエッジの候補から除外される。
【0038】
次に、CPU21は、エッジ60Aとエッジ60Bの横方向の重心位置の差が基準値以下であり、かつ、エッジ60Aの重心SAとエッジ60Bの重心SBの距離が基準値以下であるエッジ60A,60Bの組を抽出する。
【0039】
例えば、図8を参照するとわかるように、CPU21は、エッジ60Aの重心SAのX座標AXと、エッジ60Bの重心SBのX座標BXとの差df11と、エッジ60Aの重心SAと、エッジ60Bの重心SBとの距離d11をそれぞれ算出する。そして、差Df11と距離D11が、それぞれ所定の基準値よりも小さい場合に、エッジ60Aとエッジ60Bをペアリングする。
【0040】
CPU21は、上述の処理を、各エッジ60Aと各エッジ60Bとの間で行うことで、エッジ60Aとエッジ60Bのペアリングを行う。これにより、図7を参照するとわかるように、エッジ60Aとエッジ60B、エッジ60Aとエッジ60B、エッジ60Aとエッジ60B、エッジ60Aとエッジ60B、エッジ60Aとエッジ60Bがそれぞれペアリングされる。
【0041】
なお、エッジ60Aは、ドライバ50の右眉の上側のエッジであり、エッジ60Bは、右眉の下側のエッジである。エッジ60Aは、ドライバ50の左眉の上側のエッジであり、エッジ60Bは、左眉の下側のエッジである。エッジ60Aは、ドライバ50の右眼上瞼のエッジであり、エッジ60Bは、右眼下瞼のエッジである。エッジ60Aは、ドライバ50の左眼上瞼のエッジであり、エッジ60Bは、左眼下瞼のエッジである。エッジ60Aは、ドライバ50の上唇の上側のエッジであり、エッジ60Bは、下唇の下側のエッジである。
【0042】
また、CPU21は、ペアリングされたエッジ60A,60B同士の距離dijを、画像IMが撮影された時間tと関連付けて、データDij(dij,t)として、補助記憶部23へ記憶する。これにより、データDij(dij,t)が、時系列的に保存される。
【0043】
次のステップS207では、CPU21は、カウンタ値Nが20より大きいか否かを判断する。ステップS207での判断が否定された場合は(ステップS207:No)、CPU21は、ステップS202へ戻り、以降、ステップS202〜ステップS207までの処理を繰り返し実行する。これにより、画像IM〜IM20について、それぞれエッジの検出、エッジのペアリング等の処理が行われる。そして、データDij(dij,t)が、補助記憶部23へ時系列的に保存される。
【0044】
本実施形態では、演算装置20に対して、1秒間に4枚の画像IMに関する画像情報が出力される。このため、これらのデータDij(dij,t)〜Dij20(dij,t20)は、約5秒間ドライバ50を観察したときのデータとなる。
【0045】
一方、ステップS207での判断が肯定された場合は(ステップS207:Yes)、CPU21は、ステップS208へ移行する。
【0046】
ステップS208では、CPU21は、ペアリングされたエッジの中から、上瞼のエッジと下瞼のエッジとのペアを検出する。具体的には、CPU21は、後述する第1処理、第2処理、第3処理、及び第4処理を行うことで、上瞼のエッジと下瞼のエッジとのペアを検出する。
【0047】
例えば、図9には、縦軸を距離dとし、横軸を時間とする座標系にプロットされた点が示されている。これらの点は、上瞼のエッジと下瞼のエッジによるデータDij(dij,t)によって規定される点である。また、この一連のデータDij(dij,t)は、時刻tから時刻tまでの間に、瞬きが行われたときのものである。
【0048】
図9に示されるように、ドライバ50の眼が開いているときには、ドライバ50の上瞼のエッジと下瞼のエッジとの距離dは、閾値thより大きくなり、ドライバ50の眼が閉じているときには、ドライバ50の上瞼のエッジと下瞼のエッジとの距離dが、閾値thよりも小さくなる。
【0049】
そして、データDij(dij,t)が、上瞼のエッジと下瞼のエッジによるデータである場合には、閾値thより大きい距離dijをもつデータDij(dij,t)の数M1が、閾値th以下の距離dijをもつデータDij(dij,t)の数よりも支配的になる。
【0050】
《第1処理》
そこで、CPU21は、補助記憶部23からデータDij(dij,t)を読み出す。そして、読み出したデータDij(dij,t)の中から、距離dijの最小値dMINと、最大値dMAXを用いて次式(3)で示される演算を行い、閾値th(th,th,th)を算出する。
【0051】
th=dMIN+((dMAX−dMIN)/3) …(3)
【0052】
そして、CPU21は、閾値thより大きい距離dijをもつデータDij(dij,t)の数M1をカウントする。そして、M1の値が、基準値よりも少ない場合には、読み出したデータDij(dij,t)に対応するエッジのペアを、上瞼のエッジと下瞼のエッジの候補から除外する。
【0053】
例えば、図10に示されるように、閾値thよりも小さい距離dijをもつデータDij(dij,t)の数M2が、閾値th以上の距離dijをもつデータDij(dij,t)の数よりも支配的である場合には、CPU21は、当該データDij(dij,t)に対応するエッジのペアを、上瞼のエッジと下瞼のエッジの候補から除外する。図10に示されるデータは、例えば眼鏡のフレームによるエッジのペアに関連するデータである。このため、上述の処理で、眼鏡のフレームによるペア等が候補から除外される。
【0054】
《第2処理》
図9を参照するとわかるように、ドライバ50が瞬きをすると、距離dは、所定の基準値V1min(例えば3.5)以下になる。そこで、CPU21は、補助記憶部23から読み出したデータDij(dij,t)の中から、距離dijの最小値dMINを抽出する。そして、この最小値dMINと基準値V1minとを比較して、距離dijの最小値dMINの方が、基準値V1minよりも大きい場合には、当該データDij(dij,t)に対応するエッジのペアを、上瞼のエッジと下瞼のエッジの候補から除外する。
【0055】
例えば、図11に示されるように、距離dijの最小値dMINの方が、基準値V1minよりも大きい場合には、CPU21は、当該データDij(dij,t)に対応するエッジのペアを、上瞼のエッジと下瞼のエッジの候補から除外する。図11に示されるデータは、例えば眉毛の上側のエッジ60A,60Aと下側のエッジ60B,60Bのペアに関連するデータである。このため、上述の処理で、眉毛のエッジのペアが候補から除外される。
【0056】
《第3処理》
図9に示されるように、ドライバ50が眼を開いているときの距離dと、眼を閉じているときの距離dとの差は、ある程度の大きさ(例えば6)になる。そこで、CPU21は、補助記憶部23から読み出したデータDij(dij,t)の中から、距離dijの最大値dMAXと、距離dijの最小値dMINと抽出する。そして、CPU21は、最大値dMAXと最小値dMINとの差dff(=dMAX−dMIN)と、基準値V2minとを比較して、差dffの方が、基準値V2minよりも小さい場合には、当該データDij(dij,t)に対応するエッジのペアを、上瞼のエッジと下瞼のエッジの候補から除外する。
【0057】
例えば、図12を参照するとわかるように、最大値dMAXと最小値dMINとの差dff(=dMAX−dMIN)が比較的小さく、基準値V2minよりも小さい場合には、CPU21は、当該データDij(dij,t)に対応するエッジのペアを、上瞼のエッジと下瞼のエッジの候補から除外する。図12に示されるデータは、例えば眉毛の上側のエッジ60A,60Aと下側のエッジ60B,60Bのペアに関連するデータである。このため、上述の処理で、眉毛のエッジのペアが候補から除外される。
【0058】
《第4処理》
ドライバ50が眼を開いているときの距離dは、図9を参照するとわかるように、概ね一定の値(ここでは9)に収束する。そこで、CPU21は、読み出したデータDij(dij,t)の中から、距離dijの最小値dMINと最大値dMAXとを用いて上記式(3)で示される演算を行い、閾値thを算出する。そして、閾値th以上の距離dijをもつデータDij(dij,t)の分散vrを算出し、この分散vrが所定の基準値V3minより大きい場合には、読み出したデータDij(dij,t)に対応するエッジのペアを、上瞼のエッジと下瞼のエッジの候補から除外する。
【0059】
例えば、CPU21は、図13に着色して示される点に対応するデータDij(dij,t)の分散vrを算出する。そして、この分散vrが所定の基準値V3minより大きい場合には、読み出したデータDij(dij,t)に対応するエッジのペアを、上瞼のエッジと下瞼のエッジの候補から除外する。図13に示されるデータは、例えば上唇のエッジ60Aと、下唇のエッジ60Bのペアに関連するデータである。このため、上述の処理で、唇のエッジのペアが候補から除外される。
【0060】
CPU21によって、第1処理〜第4処理が実行されると、眉毛のエッジのペアや、唇のエッジのペアなどが除外される。これにより、例えば図9に示される上瞼のエッジ60A,60Aと下瞼のエッジ60B,60Bによって得られるデータDij(dij,t)だけが除外されることなく残る。そこで、CPU21は、除外されることなく残ったデータDij(dij,t)に対応するエッジ60Aとエッジ60Bのペアを右眼上瞼と右眼下瞼のエッジのペアとして検出する。また、エッジ60Aとエッジ60Bのペアを左眼上瞼と左眼下瞼のエッジのペアとして検出する。
【0061】
CPU21は、ドライバ50の瞼のエッジのペアの検出が終了すると、一連の処理を終了する。以降、CPU21は、撮影装置30から出力される画像IMに含まれる、エッジ60Aとエッジ60Bのペアと、エッジ60Aとエッジ60Bのペアを両眼の瞼のエッジとして観察して、ドライバ50の瞬き回数や、間隔などをサンプリングする。例えばエッジ60Aとエッジ60Bとの距離d33、或いはエッジ60Aとエッジ60Bとの距離d44が、所定の閾値以下となりその後一定の大きさとなった場合に、ドライバ50が瞬きをしたと判断することができる。
【0062】
CPU21は、瞬きのサンプリング結果を、例えば外部装置等へ出力する。これにより、車両を運転するドライバ50の覚醒度等を監視することが可能となる。
【0063】
以上説明したように、本第1の実施形態では、画像IMから検出され、ペアリングされたエッジ同士の距離dが順次算出される。そして、算出された距離dの変化に基づいて、瞼のエッジのペアとしての確度が低い候補が除外されていくことで、最終的に残ったエッジのペアが、上瞼のエッジと下瞼のエッジのペアとして検出される。このため、瞼のエッジに近い特徴だけでなく、瞼としての振る舞いを考慮した検出が行われる。したがって、ドライバ50の瞼のエッジを、正確に検出することが可能となる。
【0064】
具体的には、例えば、図10に示されるように、閾値thよりも小さい距離dijをもつデータDij(dij,t)の数M2が、閾値th以上の距離dijをもつデータDij(dij,t)の数よりも支配的である場合には、当該データDij(dij,t)に対応するエッジのペアが、上瞼のエッジと下瞼のエッジの候補から除外される。これにより、例えば眼鏡のフレームによるエッジのペア等が、瞼のエッジの候補となることがなくなり、結果的に、ドライバ50の瞼のエッジを、正確に検出することが可能となる。
【0065】
また、例えば、図11に示されるように、距離dijの最小値dMINの方が、基準値V1minよりも大きい場合には、当該データDij(dij,t)に対応するエッジのペアが、上瞼のエッジと下瞼のエッジの候補から除外される。これにより、眉毛のエッジのペア等が、瞼のエッジの候補となることがなくなり、結果的に、ドライバ50の瞼のエッジを、正確に検出することが可能となる。
【0066】
また、例えば、図12を参照するとわかるように、最大値dMAXと最小値dMINとの差df(=dMAX−dMIN)が比較的小さく、基準値V2minよりも小さい場合には、当該データDij(dij,t)に対応するエッジのペアが、上瞼のエッジと下瞼のエッジの候補から除外される。これにより、眉毛のエッジのペア等が、瞼のエッジの候補となることがなくなり、結果的に、ドライバ50の瞼のエッジを、正確に検出することが可能となる。
【0067】
また、例えば、図13に着色して示される点に対応するデータDij(dij,t)の分散vrが所定の基準値V3minより大きい場合には、読み出したデータDij(dij,t)に対応するエッジのペアが、上瞼のエッジと下瞼のエッジの候補から除外される。これにより、唇のエッジのペア等が、瞼のエッジの候補となることがなくなり、結果的に、ドライバ50の瞼のエッジを、正確に検出することが可能となる。
【0068】
《第2の実施形態》
次に、本発明の第2の実施形態を、図面を参照しつつ説明する。なお、第1の実施形態と同一又は同等の構成については、同等の符号を用いるとともに、その説明を省略又は簡略する。
【0069】
本実施形態に係る瞼検出装置10Aは、演算装置20が、ハードウエアで構成されている点で、第1の実施形態に係る瞼検出装置10と相違している。図14に示されるように、演算装置20は、記憶部20a、エッジ検出部20b、連続エッジ検出部20c、算出部20d、、ペアリング部20e、及び検出部20fを有している。
【0070】
記憶部20aは、撮影装置30から出力される画像に関する情報、及び上記各部20b〜20fの処理結果などを含む情報を順次記憶する。
【0071】
エッジ検出部20bは、記憶部20aに順次蓄積される画像IMの画像情報を取得し、画像IMのエッジを検出する。このエッジの検出は、画像IMに対してソーベルフィルタを用いた画像処理を実行することにより行う。
【0072】
連続エッジ検出部20cは、連続エッジの検出を行う。具体的には、連続エッジ検出部20cは、エッジ検出部20bによって抽出された画素のうち、エッジ値の極性が等しく、相互に隣接する画素をグループ化する。これにより、複数の画素からなる複数の画素群が規定される。次に、連続エッジ検出部20cは、複数の画素群の中から横方向(X軸方向)の長さが閾値以上のグループを連続エッジとして検出する。これにより、図6に破線及び実線で示されるエッジ60A,60Bが検出される。
【0073】
算出部20dは、エッジ60A,60Bそれぞれの重心SA,SB、及び長さを算出する。
【0074】
ペアリング部20eは、エッジのペアリングを行う。瞼の大きさは、個人相互間で個体差はあるが、概ねその大きさを予測することができる。そこで、ペアリング部20eは、エッジ60A,60BのX軸方向の大きさ(幅)に基づいて、瞼のエッジの候補を抽出する。次に、エッジ60Aとエッジ60Bの横方向の重心位置の差が基準値以下であり、かつ、エッジ60Aの重心SAとエッジ60Bの重心SBの距離とが基準値以下であるエッジ60A,60Bの組を抽出する。
【0075】
また、ペアリング部20eは、ペアリングされたエッジ60A,60B同士の距離dijを、画像IMが撮影された時間tと関連付けて、データDij(dij,t)として、補助記憶部23へ記憶する。これにより、データDij(dij,t)が、時系列的に保存される。
【0076】
検出部20fは、ペアリングされたエッジの中から、上瞼のエッジと下瞼のエッジとのペアを検出する。具体的には、検出部20fは、上述した第1処理、第2処理、第3処理、及び第4処理を行うことで、上瞼のエッジと下瞼のエッジとのペアを検出する。そして、検出結果を例えば外部装置等へ出力する。
【0077】
以上説明したように、本第2の実施形態では、画像IMから検出され、ペアリングされたエッジ同士の距離dが順次算出される。そして、算出された距離dの変化に基づいて、瞼のエッジのペアとしての確度が低い候補が除外されていくことで、最終的に残ったエッジのペアが、上瞼のエッジと下瞼のエッジのペアとして検出される。このため、瞼のエッジに近い特徴だけでなく、瞼としての振る舞いを考慮した検出が行われる。したがって、ドライバ50の瞼のエッジを、正確に検出することが可能となる。
【0078】
以上、本発明の実施形態について説明したが、本発明は上記実施形態によって限定されるものではない。
【0079】
例えば、上記実施形態では、撮影装置30は、例えば1秒間に4枚の画像に関する画像情報を出力することとした。これに限らず、撮影装置30は、フレームレートに等しい数の画像に関する画像情報を出力し、演算装置20は、20秒間に出力される画像情報すべての時系列データに基づいて、瞼のエッジのペアを検出するための処理を実行することとしてもよい。
【0080】
上記実施形態では、閾値thを上記式(3)に基づいて算出した。当該算出式は一例であり、他の式を用いて閾値thを算出することとしてもよい。
【0081】
上記実施形態に係る演算装置20の機能は、専用のハードウエアによっても、通常のコンピュータシステムによっても実現することができる。
【0082】
上記第1の実施形態において演算装置20の補助記憶部23に記憶されているプログラムは、フレキシブルディスク、CD−ROM(Compact Disk Read-Only Memory)、DVD(Digital Versatile Disk)、MO(Magneto-Optical disk)等のコンピュータで読み取り可能な記録媒体に格納して配布し、そのプログラムをコンピュータにインストールすることにより、上述の処理を実行する装置を構成することとしてもよい。
【0083】
なお、本発明は、本発明の広義の精神と範囲を逸脱することなく、様々な実施形態及び変形が可能とされるものである。また、上述した実施形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。
【産業上の利用可能性】
【0084】
本発明の瞼検出装置、瞼検出方法及びプログラムは、瞼の検出に適している。
【符号の説明】
【0085】
10,10A 瞼検出装置
20 演算装置
20a 記憶部
20b エッジ検出部
20c 連続エッジ検出部
20d 算出部
20e ペアリング部
20f 検出部
21 CPU
22 主記憶部
23 補助記憶部
24 表示部
25 入力部
26 インターフェイス部
27 システムバス
30 撮影装置
50 ドライバ
60A,60B エッジ
D 点
Dij データ
F 顔
IM 画像
SA,SB 重心

【特許請求の範囲】
【請求項1】
所定の期間に順次撮影されるドライバの顔の画像から、エッジを検出するエッジ検出手段と、
検出された前記エッジから、前記ドライバの上瞼のエッジの候補となる第1エッジと、下瞼のエッジの候補となる第2エッジとを抽出する抽出手段と、
前記第1エッジと、前記第2エッジとをペアリングするペアリング手段と、
ペアリングされた前記第1エッジと前記第2エッジとの距離の変化に応じて、前記距離の最小値よりも大きく、前記距離の最大値よりも小さい閾値を算出する閾値算出手段と、
前記距離が前記閾値以上となる回数に基づいて、前記第1エッジを前記ドライバの上瞼のエッジの候補から除外するか否かを決定するとともに、前記第2エッジを前記ドライバの下瞼のエッジの候補から除外するか否かを決定する決定手段と、
前記決定手段による決定結果に基づいて、前記第1エッジと前記第2エッジとを除外し、残りの前記第1エッジと前記第2エッジとのペアの中から、前記ドライバの上瞼のエッジと下瞼のエッジのペアを検出する検出手段と、
を備える瞼検出装置。
【請求項2】
前記閾値算出手段は、
ペアリングされた前記第1エッジと前記第2エッジとの距離の最大値と最小値とに基づいて、前記閾値を算出する請求項1に記載の瞼検出装置。
【請求項3】
前記決定手段は、
前記第1エッジと前記第2エッジとの距離の分散が、所定の基準値よりも大きい場合に、前記第1エッジを前記ドライバの上瞼のエッジの候補から除外し、前記第2エッジを前記ドライバの下瞼のエッジの候補から除外することを決定する請求項1又は2に記載の瞼検出装置。
【請求項4】
前記決定手段は、
前記第1エッジと前記第2エッジとの距離の最小値が、所定の基準値よりも大きい場合に、前記第1エッジを前記ドライバの上瞼のエッジの候補から除外し、前記第2エッジを前記ドライバの下瞼のエッジの候補から除外することを決定する請求項1乃至3のいずれか一項に記載の瞼検出装置。
【請求項5】
前記決定手段は、
前記第1エッジと前記第2エッジとの距離の最大値と最小値との差が、所定の基準値よりも小さい場合に、前記第1エッジを前記ドライバの上瞼のエッジの候補から除外し、前記第2エッジを前記ドライバの下瞼のエッジの候補から除外することを決定する請求項1乃至4のいずれか一項に記載の瞼検出装置。
【請求項6】
所定の期間に順次撮影されるドライバの顔の画像から、エッジを検出する工程と、
検出された前記エッジから、前記ドライバの上瞼のエッジの候補となる第1エッジと、下瞼のエッジの候補となる第2エッジとを抽出する工程と、
前記第1エッジと、前記第2エッジとをペアリングする工程と、
ペアリングされた前記第1エッジと前記第2エッジとの距離の変化に応じて、前記距離の最小値よりも大きく、前記距離の最大値よりも小さい閾値を算出する工程と、
前記距離が前記閾値以上となる回数に基づいて、前記第1エッジを前記ドライバの上瞼のエッジの候補から除外するか否かを決定するとともに、前記第2エッジを前記ドライバの下瞼のエッジの候補から除外するか否かを決定する工程と、
前記決定の結果に基づいて、前記第1エッジと前記第2エッジとを除外し、残りの前記第1エッジと前記第2エッジとのペアの中から、前記ドライバの上瞼のエッジと下瞼のエッジのペアを検出する工程と、
を含む瞼検出方法。
【請求項7】
コンピュータに、
所定の期間に順次撮影されるドライバの顔の画像から、エッジを検出する手順と、
検出された前記エッジから、前記ドライバの上瞼のエッジの候補となる第1エッジと、下瞼のエッジの候補となる第2エッジとを抽出する手順と、
前記第1エッジと、前記第2エッジとをペアリングする手順と、
ペアリングされた前記第1エッジと前記第2エッジとの距離の変化に応じて、前記距離の最小値よりも大きく、前記距離の最大値よりも小さい閾値を算出する手順と、
前記距離が前記閾値以上となる回数に基づいて、前記第1エッジを前記ドライバの上瞼のエッジの候補から除外するか否かを決定するとともに、前記第2エッジを前記ドライバの下瞼のエッジの候補から除外するか否かを決定する手順と、
前記決定の結果に基づいて、前記第1エッジと前記第2エッジとを除外し、残りの前記第1エッジと前記第2エッジとのペアの中から、前記ドライバの上瞼のエッジと下瞼のエッジのペアを検出する手順と、
を実行させるためのプログラム。

【図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

【図13】
image rotate

【図14】
image rotate


【公開番号】特開2013−15970(P2013−15970A)
【公開日】平成25年1月24日(2013.1.24)
【国際特許分類】
【出願番号】特願2011−147470(P2011−147470)
【出願日】平成23年7月1日(2011.7.1)
【出願人】(000000011)アイシン精機株式会社 (5,421)
【Fターム(参考)】