顔画像から上下瞼の位置を検出する瞼検出装置であって、前記顔画像から検出される顔の特徴点を三次元顔モデルに適合させることにより推定される顔向きに基づいて、上下瞼の位置を検出する、瞼検出装置。前記顔向きから推定される上下瞼の曲線モデルを、前記顔画像のエッジが強調されたエッジ画像に照合させて上下瞼の位置を検出する、請求項1に記載の瞼検出装置。運転中は、前記顔向きに応じて上下瞼を検出する上下方向の角度範囲を制限する、請求項2に記載の瞼検出装置。前記顔向きが上向きである場合は、前記顔向きが正面向きである場合よりも、上瞼の上限角度を低くする、請求項3に記載の瞼検出装置。前記顔向きが下向きである場合は、前記顔向きが正面向きである場合よりも、上下瞼の下限角度を高くする、請求項3に記載の瞼検出装置。しかしながら、特許文献1に記載の技術は、赤目現象や眼鏡などによる外乱によっては、瞼を正確に検出することができないという問題がある。例えば、赤目の周囲にはエッジが発生するため、このエッジを上下瞼の位置として誤検出する可能性がある。また、顔画像に写り込んだ眼鏡フレームのエッジが強いと、この眼鏡フレームを上下瞼の位置として誤検出する可能性がある。そこで、本発明は、赤目現象や眼鏡などによる外乱に対しても高い精度で上下瞼の位置を検出することができる瞼検出装置を提供することを課題とする。本発明に係る瞼検出装置は、顔画像から上下瞼の位置を検出する瞼検出装置であって、顔画像から検出される顔の特徴点を三次元顔モデルに適合させることにより推定される顔向きに基づいて、上下瞼の位置を検出する。本発明に係る瞼検出装置によれば、顔の特徴点を三次元顔モデルに適合させることにより顔向きを推定することができる。そして、顔向きに応じて上下瞼の存在し得る範囲が制限されることから、このように推定された顔向きに基づいて上下瞼の位置を検出することで、上下瞼の存在し得る範囲のみから上下瞼の位置を検出することができる。これにより、上下瞼の存在し得ない範囲に生じる赤目現象や眼鏡による外乱による影響を排除することができるため、高精度に上下瞼の位置を検出することができる。また、顔向きから推定される上下瞼の曲線モデルを、顔画像のエッジが強調されたエッジ画像に照合させて上下瞼の位置を検出するものとすることができる。このように、顔向きから推定される上下瞼の曲線モデルをエッジ画像に照合させることで、上下瞼の位置を適切に検出することができる。また、運転中は、顔向きに応じて上下瞼を検出する上下方向の角度範囲を制限するものとすることができる。運転中は顔向きに関わらず前方を注視しているため、上下瞼の存在する範囲が特定される。そこで、運転中は、顔向きに応じて上下瞼を検出する上下方向の角度範囲を制限することで、上下瞼の存在し得ない範囲に生じる赤目現象や眼鏡による外乱による影響を適切に排除することができる。この場合、顔向きが上向きである場合は、顔向きが正面向きである場合よりも、上瞼の上限角度を低くすることが好ましい。このように、顔向きが上向きである場合は、視線を下に向けている可能性が高いため、顔向きが正面向きである場合よりも上瞼の上限角度を低くすることで、上下瞼の存在し得ない範囲に生じる赤目現象や眼鏡による外乱の影響を適切に排除することができる。また、顔向きが下向きである場合は、顔向きが正面向きである場合よりも、上下瞼の下限角度を高くすることが好ましい。このように、顔向きが下向きである場合は、視線を上に向けている可能性が高いため、顔向きが正面向きである場合よりも上下瞼の下限角度を高くすることで、上下瞼の存在し得ない範囲に生じる赤目現象や眼鏡による外乱の影響を適切に排除することができる。本発明によれば、赤目現象や眼鏡などによる外乱に対しても高い精度で上下瞼の位置を検出することができる。以下、図面を参照して、本発明に係る瞼検出装置の実施の形態を説明する。なお、各図において同一又は相当する要素については同一の符号を付し、重複する説明を省略する。本実施形態に係る瞼検出装置は、上下瞼の位置から算出される開眼度からドライバの眠気度を推定して車両の運転支援制御を行う運転支援制御装置などに搭載されるものである。なお、上下瞼の位置とは、上瞼の位置及び下瞼の位置をいう。図1は、実施形態に係る瞼検出装置のブロック構成を示した図である。図1に示すように、実施形態に係る瞼検出装置1は、画像センサ10と、車速センサ20と、ECUElectronicControlUnit30と、を備えている。画像センサ10は、ドライバの顔を撮像するセンサである。画像センサ10としては、例えば、車両のステアリングコラムに固定されたCCDカメラ等が用いられる。画像センサ10が撮像した画像顔画像は、各画素の位置や色情報などを表す画像情報で構成されている。そして、画像センサ10は、撮像した画像の画像情報をECU30へ出力する。車速センサ20は、車両の車速を計測するセンサである。車速センサ20は、例えば、車両の各車輪の回転速度を計測することで、車両の車速を計測する。そして、車速センサ20は、計測した車速をECU30へ出力する。ECU30は、電子制御を行う自動車デバイスのコンピュータであり、CPUCentralProcessingUnit、ROMReadOnlyMemoryやRAMRandomAccessMemory等のメモリ、及び入出力インターフェイスなどを備えて構成されている。このECU30は、画像センサ10及び車速センサ20に接続されており、車速判定部31、顔位置顔特徴点検出部32、顔姿勢推定部33、瞼範囲設定部34及び瞼検出部35を備えている。車速判定部31は、車両が走行しているか否かを判定する機能を有している。車速判定部31は、例えば、車速センサ20から出力された車速が0km/hよりも高い場合は、車両が走行していると判定する。顔位置顔特徴点検出部32は、画像センサ10が撮像した画像から、ドライバの顔の特徴点を検出する機能を有している。具体的に説明すると、顔位置顔特徴点検出部32は、まず、画像センサ10が撮像した画像全体を探索範囲として、ニューラルネットワークNeuralNetworkやブースティングBoosting等の統計手法により顔位置を発見する。そして、顔位置顔特徴点検出部32は、この発見した顔位置を含む顔位置領域を設定し、この設定した顔位置領域から、ニューラルネットワークやブースティング等の統計手法により顔の特徴点を検出する。顔の特徴点としては、例えば、右目尻、右目頭、左目尻、左目頭、鼻腔中心、左右口端等が挙げられる。なお、顔の各特徴点の検出は、この手法に限られるものではなく、公知の他の手法を用いてもよい。顔姿勢推定部33は、顔位置顔特徴点検出部32が検出した顔の特徴点から、ドライバの顔姿勢顔向きを推定する機能を有している。具体的に説明すると、顔姿勢推定部33は、まず、顔位置顔特徴点検出部32が検出した顔の特徴点の座標位置に三次元顔モデル3D顔モデルをフィッティングさせる。そして、顔姿勢推定部33は、このフィッティングさせた3D顔モデルの姿勢から、ドライバの顔姿勢顔向きを推定する。なお、3D顔モデルには三次元眼球モデルが含まれており、三次元眼球モデルの視線方向や三次元眼球モデルを覆う上下瞼の位置なども表すことが可能となっている。瞼範囲設定部34は、顔姿勢推定部33が推定した顔姿勢に基づいて、上瞼の位置が存在し得る範囲である上瞼存在範囲と、下瞼の位置が存在し得る範囲である下瞼存在範囲と、を設定する機能を有している。運転中のドライバは、顔向きを上下方向の如何なる角度に向けていても、前方を注視していると考えられる。このため、運転中は、顔向きの上下方向の角度に対応して、上瞼存在範囲及び下瞼存在範囲が特定される。また、運転中は、顔を上方や下方に向けると、顔を正面に向けた場合に比べて、瞼の開く角度が狭くなる。そこで、瞼範囲設定部34は、顔姿勢推定部33が推定した顔姿勢顔向きに応じて、上瞼存在範囲及び下瞼存在範囲を設定する。この上瞼存在範囲及び下瞼存在範囲は、三次元眼球モデルにおける角度範囲で表される。そして、瞼範囲設定部34は、三次元眼球モデルにおける角度範囲で表された上瞼存在範囲及び下瞼存在範囲を、顔位置顔特徴点検出部32が設定した二次元の顔位置領域に投影することで、二次元で表された上瞼存在範囲及び下瞼存在範囲を顔位置領域に設定する。瞼検出部35は、瞼範囲設定部34が設定した上瞼存在範囲及び下瞼存在範囲において、上下瞼の位置を検出する機能を有している。具体的に説明すると、瞼検出部35は、顔位置顔特徴点検出部32が設定した顔位置領域に、例えばソーベルフィルタを適用して、エッジを強調した画像であるエッジ画像を生成する。また、瞼検出部35は、瞼範囲設定部34が設定した上瞼存在範囲及び下瞼存在範囲において、顔位置顔特徴点検出部32が検出した目尻及び目頭の特徴点を始点及び終点とする複数の曲線をエッジ画像に投影する。そして、瞼検出部35は、その曲線上のエッジの強度エッジ画像の画素値から、上下瞼の位置を検出する。すなわち、瞼検出部35は、上瞼存在範囲及び下瞼存在範囲に投影される複数の曲線上下瞼の曲線モデルをエッジ画像に照合させることで、上下瞼の位置を検出する。なお、上下瞼の位置の検出は、この手法に限られるものではなく、公知の他の手法を用いてもよい。次に、実施形態に係る瞼検出装置1の動作について説明する。図2は、実施形態に係る瞼検出装置の瞼検出処理動作を示すフローチャートである。図2に示す処理は、ECU30の制御により行われ、例えば、イグニッションオンされたタイミングからイグニッションオフされるまでの間、所定の間隔で繰返し行われる。図2に示すように、まず、ECU30は、画像センサ10が撮像したドライバの画像を入力するステップS1。ステップS1では、画像センサ10が撮像した図3に示す画像F1を入力する。図3は、画像センサが撮像した画像の一例である。次に、ECU30は、車両が走行中であるか否かを判定するステップS2。ステップS2の処理は、車速判定部31が行う。車速判定部31は、車速センサ20から出力された車速が0km/hよりも大きい場合は、走行中であると判定し、車速センサ20から出力された車速が0km/hである場合は、走行中ではないと判定する。そして、ECU30は、走行中ではないと判定するとステップS2:NO、瞼検出処理を終了する。一方、ECU30は、走行中であると判定するとステップS2:YES、次に、顔位置顔特徴点を検出するステップS3。ステップS3の処理は、顔位置顔特徴点検出部32が行う。顔位置顔特徴点検出部32は、まず、ステップS1で入力した画像F1の全体を探索範囲として、ニューラルネットワークやブースティング等の統計手法により顔位置を発見する。次に、顔位置顔特徴点検出部32は、顔位置領域G1を設定する。図4は、顔の特徴点検出方法を説明するための概要図であり、顔位置領域G1を示している。図4に示すように、顔位置領域G1は、この発見した顔位置を含む領域であり、画像F1の一領域である。そして、顔位置顔特徴点検出部32は、この設定した顔位置領域G1を探索範囲として、ニューラルネットワークやブースティング等の統計手法により、右目尻、右目頭、左目尻、左目頭、鼻腔中心、左右口端等の特徴点を検出する。次に、ECU30は、ステップS3で検出した顔の特徴点から、ドライバの顔姿勢顔向きを推定するステップS4。ステップS4は、顔姿勢推定部33が行う。顔姿勢推定部33は、まず、ステップS3において顔位置顔特徴点検出部32が検出した顔の特徴点の座標位置に3D顔モデルをフィッティングさせる。図5は、3D顔モデルの一例を示す概要図である。図5に示すように、3D顔モデルでは、顔の上下方向に沿ったYm方向、顔の左右方向に沿ったXm方向、顔の前後方向に沿ったZm方向とし、Ym軸周りの回転をヨー、Xm軸周りの回転をピッチ、Zm軸周りの回転をロールとしている。そして、3D顔モデルは、頭部回転中心からの距離を特徴点ごとに保持したものとなる。そこで、顔姿勢推定部33は、この3D顔モデルを顔の特徴点にフィッティングさせて、最も一致するときの位置及び回転ヨー、ピッチ、ロールをその時点での顔姿勢とする。なお、顔姿勢の推定方法は、この手法に限られるものではなく、公知の他の手法を用いてもよい。そして、顔姿勢推定部33は、このフィッティングさせた3D顔モデルの姿勢から、ドライバの顔姿勢顔向きを推定する。次に、ECU30は、ステップS3で推定した顔姿勢顔向きに基づいて上瞼存在範囲及び下瞼存在範囲を設定するステップS5。ステップS5は、瞼範囲設定部34が行う。瞼範囲設定部34は、まず、ステップS3で顔姿勢推定部33が推定した顔向きに応じて、三次元眼球モデルにおける角度範囲で表される上瞼存在範囲及び下瞼存在範囲を設定する。ここで、図6~図8を参照して、上瞼存在範囲及び下瞼存在範囲の設定例について説明する。図6は、顔向きが正面向きである場合の三次元眼球モデルを示した図である。図7は、顔向きが上向きである場合の三次元眼球モデルを示した図である。図8は、顔向きが下向きである場合の三次元眼球モデルを示した図である。図6~図8において、Oは三次元眼球モデルの眼球中心を示しており、EUprは上瞼を示しており、ELwrは下瞼、φUprは上瞼の位置を示しており、φLwrは下瞼の位置を示している。なお、以下に説明する上瞼存在範囲及び下瞼存在範囲は、一例であり、他の値を採用しても良い。瞼範囲設定部34は、まず、ステップS3で顔姿勢推定部33が推定した顔向きが、正面向き、上向き及び下向きの何れであるかを判定する。この判定は、顔向きが真正面を向いているときの上下方向の角度を0°とした場合に、顔向きの上下方向の角度が-10°以上10°以下の範囲にある場合を正面向きと判定し、顔向きの上下方向の角度が10°よりも大きい場合を上向きと判定し、顔向きの上下方向の角度が-10°よりも小さい場合を下向きと判定する。そして、瞼範囲設定部34は、顔向きが正面向きであると判定すると、図6に示すように、上瞼の位置φUprが存在し得る上瞼存在範囲を、-45°以上55°以下-45°≦φUpr≦55°に設定し、下瞼の位置φLwrが存在し得る下瞼存在範囲を、-45°以上-15°以下-45°≦φLwr≦-15°に設定する。また、瞼範囲設定部34は、顔向きが上向きであると判定すると、図7に示すように、上瞼の位置φUprが存在し得る上瞼存在範囲を、-45°以上30°以下-45°≦φUpr≦30°に設定し、下瞼の位置φLwrが存在し得る下瞼存在範囲を、-45°以上-15°以下-45°≦φLwr≦-15°に設定する。すなわち、顔向きが上向きであると判定した場合は、顔向きが正面向きであると判定した場合よりも、上瞼存在範囲の上限角度を25°小さくする。また、瞼範囲設定部34は、顔向きが下向きであると判定すると、図8に示すように、上瞼の位置φUprが存在し得る上瞼存在範囲を、-30°以上55°以下-30°≦φUpr≦55°に設定し、下瞼の位置φLwrが存在し得る下瞼存在範囲を、-30°以上-15°以下-30°≦φLwr≦-15°に設定する。すなわち、顔向きが下向きであると判定した場合は、顔向きが正面向きであると判定した場合よりも、上瞼存在範囲及び下瞼存在範囲の下限角度を15°大きくする。このようにして、顔向きに対応した上瞼存在範囲及び下瞼存在範囲を設定すると、瞼範囲設定部34は、次に、三次元眼球モデルにおける角度範囲で表された上瞼存在範囲及び下瞼存在範囲を、ステップS3において顔位置顔特徴点検出部32が設定した二次元の顔位置領域に投影し、顔位置領域における上瞼存在範囲及び下瞼存在範囲を設定する。次に、ECU30は、ステップS5において瞼範囲設定部34が設定した上瞼存在範囲及び下瞼存在範囲において、上瞼の位置及び下瞼の位置を検出するステップS6。ステップS6の処理は、瞼検出部35が行う。ここで、図9を参照して、ステップS4における上下瞼の検出方法について説明する。図9は、上下瞼の検出方法を説明するための概要図である。図9に示すように、瞼検出部35は、ステップS3において顔位置顔特徴点検出部32が設定した顔位置領域G1に対して、例えばソーベルフィルタを適用して、エッジを強調した画像であるエッジ画像G3を生成する。次に、瞼検出部35は、ステップS5において瞼範囲設定部34が設定した上瞼存在範囲及び下瞼存在範囲において、ステップS3で検出した目尻及び目頭の特徴点を始点及び終点とする複数の曲線を投影する。曲線として、例えば、ベジェ曲線が用いられる。このとき、瞼検出部35は、瞼範囲設定部34が設定した下瞼存在範囲にのみ、下瞼の候補としての曲線を投影し、瞼範囲設定部34が設定した上瞼存在範囲にのみ、上瞼の候補としての曲線を投影する。すなわち、瞼検出部35は、瞼範囲設定部34が設定した下瞼存在範囲外に、下瞼の候補としての曲線を投影せず、瞼範囲設定部34が設定した上瞼存在範囲外に、上瞼の候補としての曲線を投影しない。例えば、図9に示した曲線q1は、瞼範囲設定部34が設定した下瞼存在範囲よりも上側に位置するため、下瞼の候補として投影しない。また、図9に示した曲線q2は、瞼範囲設定部34が設定した上瞼存在範囲及び下瞼存在範囲よりも下側に位置するため、上瞼及び下瞼の候補として投影しない。また、図9に示した曲線q3は、瞼範囲設定部34が設定した上瞼存在範囲及び下瞼存在範囲よりも上側に位置するため、上瞼及び下瞼の候補として投影しない。このようにしてエッジ画像G3に複数の曲線を投影すると、瞼検出部35は、その曲線上のエッジの強度エッジ画像の画素値を算出し、エッジ強度の強い曲線を、上瞼の位置を示す上瞼曲線及び下瞼の位置を示す下瞼曲線として検出する。そして、瞼検出処理を終了する。ここで、図10を参照して、瞼範囲設定部34が上瞼存在範囲及び下瞼存在範囲を設定せずに、瞼検出部35が上下瞼の位置を検出する場合について説明する。図10は、上下瞼の位置の誤検出を説明するための概要図である。図10aに示すように、夜間に赤目現象が発生すると、赤目付近に不要なエッジが発生するため、この赤目付近に発生した不要なエッジを上下瞼の位置として誤検出する可能性がある。また、図10b及びcに示すように、ドライバが眼鏡をかけていると、眼鏡フレームのエッジが強くなるため、この眼鏡フレームを上下瞼の位置として誤検出することがある。しかしながら、本実施形態では、瞼範囲設定部34が設定した上瞼存在範囲及び下瞼存在範囲において瞼検出部35が上下瞼の位置を検出するため、図10に示すような上下瞼の位置の誤検出を防止することができる。例えば、図9に示す曲線q1は、瞼範囲設定部34が設定した下瞼存在範囲よりも上側に位置することから下瞼の候補として投影されないため、図10aに示すように、赤目付近に発生した不要なエッジを上下瞼の位置として誤検出することがない。また、図9に示す曲線q2は、瞼範囲設定部34が設定した下瞼存在範囲よりも下側に位置することから下瞼の候補として投影されないため、図10bに示すように、下側の眼鏡フレームを下瞼の位置として誤検出することがない。また、図9に示す曲線q3は、瞼範囲設定部34が設定した上瞼存在範囲よりも上側に位置することから上瞼の候補として投影されないため、図10cに示すように、上側の眼鏡フレームを上瞼の位置として誤検出することがない。以上説明したように、本実施形態に係る瞼検出装置1によれば、運転中は、顔向きに応じて上下瞼の位置が存在し得る上瞼存在範囲及び下瞼存在範囲を設定し、この設定した上瞼存在範囲及び下瞼存在範囲において上下瞼の位置を検出するため、上下瞼の存在し得ない範囲に生じる赤目現象や眼鏡による外乱による影響を排除することができる。これにより、高精度に上下瞼の位置を検出することができる。そして、上瞼存在範囲及び下瞼存在範囲において上下瞼の候補となる曲線をエッジ画像に照合させることで、上下瞼の位置を適切に検出することができる。また、顔向きが上向きである場合は、顔向きが正面向きである場合よりも上瞼存在範囲における上瞼の上限角度を低くし、顔向きが下向きである場合は、顔向きが正面向きである場合よりも上瞼存在範囲及び下瞼存在範囲における上下瞼の下限角度を高くすることで、上下瞼の存在し得ない範囲に生じる赤目現象や眼鏡による外乱の影響を適切に排除することができる。以上、本発明の好適な実施形態について説明したが、本発明は上記実施形態に限定されるものではない。例えば、上記実施形態では、瞼範囲設定部34が上瞼存在範囲及び下瞼存在範囲を設定し、瞼検出部35が上瞼存在範囲及び下瞼存在範囲から上下瞼の位置を検出するものとして説明したが、顔向きに基づいて上下瞼の位置を検出することができれば、如何なる手段により上下瞼の位置を検出するものとしてもよい。例えば、上瞼存在範囲及び下瞼存在範囲を設定することなく、顔向きからエッジ画像における上下瞼の存在し得る範囲を算出し、この範囲において上下瞼の候補となる曲線を投影するものとしてもよい。また、上記実施形態では、瞼範囲設定部34が、三次元眼球モデルにおける角度範囲で表される上瞼存在範囲及び下瞼存在範囲を設定した後、二次元の上瞼存在範囲及び下瞼存在範囲を顔位置領域に設定するものとして説明したが、直接、二次元の上瞼存在範囲及び下瞼存在範囲を顔位置領域に設定するものとしてもよい。