"赤目テンプレートを用いたテンプレートマッチングにより顔画像から赤目を検出する赤目検出装置であって、開眼度に対応する赤目テンプレートを生成する赤目テンプレート生成手段を有する、赤目検出装置。前記赤目テンプレート生成手段は、生成した赤目テンプレートで、次回のテンプレートマッチングに用いる赤目テンプレートを更新する、請求項1に記載の赤目検出装置。前記顔画像から開眼度を算出する開眼度算出手段を更に有する、請求項1に記載の赤目検出装置。前記開眼度算出手段は、閉眼状態を0及び開眼状態を100とした相対開眼度に基づいて開眼度を算出する、請求項3に記載の赤目検出装置。眠気度に応じて開眼度を推定する眠気度推定手段を更に有する、請求項1に記載の赤目検出装置。車外光量を検出する車外光量検出手段と、前記顔画像から開眼度を算出する開眼度検出手段と、前記顔画像から黒目を検出する黒目検出手段と、を更に有し、赤目テンプレート生成手段は、前記車外光量が検出した車外光量が高い時間帯に、開眼度と黒目の大きさとの相関関係を学習し、前記車外光量が検出した車外光量が低い時間帯に、前記相関関係を参照して開眼度に対応する大きさの赤目テンプレートを生成する、請求項1に記載の赤目検出装置。しかしながら、画像に写る赤目の形状は開眼度によって変化する。このため、単一の赤目テンプレートを用いてテンプレートマッチングを行うと、開眼度によっては赤目を適切に検出することができない。一方、あらゆる開眼度に対応して多数のる赤目テンプレートを用いてテンプレートマッチングを行うと、処理速度が著しく低下するため、現実的ではない。そこで、本発明は、赤目の形状が開眼度によって変化しても赤目を正確に検出することができる赤目検出装置を提供することを課題とする。本発明に係る赤目検出装置は、赤目テンプレートを用いたテンプレートマッチングにより顔を撮像した画像から赤目を検出する赤目検出装置であって、開眼度に対応する赤目テンプレートを生成する赤目テンプレート生成手段を有する。本発明に係る赤目検出装置によれば、開眼度に応じた赤目テンプレートを生成するため、赤目の形状が開眼度によって変化しても赤目を正確に検出することができる。この場合、赤目テンプレート生成手段は、生成した赤目テンプレートで、次回のテンプレートマッチングに用いる赤目テンプレートを更新するものとすることができる。これにより、次回のテンプレートマッチングでは開眼度に対応した赤目テンプレートを用いることができるため、赤目検出の確度を向上することができる。また、画像から開眼度を算出する開眼度算出手段を更に有するものとすることができる。このように、画像から直接的に開眼度を求めることで、開眼度の信頼性を向上することができる。この場合、開眼度算出手段は、閉眼状態を0及び開眼状態を100とした相対開眼度に基づいて開眼度を算出するものとすることができる。顔画像における上瞼から下瞼までの距離は、カメラからの距離や個人差によって異なる。そこで、このように開眼度を相対開眼度で表すことで、カメラからの距離や個人差によって画像における上瞼から下瞼までの距離が異なったとしても、開眼度を正規化することができるため、適切に赤目テンプレートを生成することができる。また、眠気度に応じて開眼度を推定する眠気度推定手段を更に有するものとすることができる。通常、眠気度によって開眼度が変わってくるため、眠気度から間接的に開眼度を求めることができる。そして、眠気度に応じて開眼度を推定することで、眠気度によって開眼度が変化しても、赤目を正確に検出することができる。また、車外光量を検出する車外光量検出手段と、顔画像から開眼度を算出する開眼度検出手段と、顔画像から黒目を検出する黒目検出手段と、を更に有し、赤目テンプレート生成手段は、車外光量が検出した車外光量が高い時間帯に、開眼度と黒目の大きさとの相関関係を学習し、車外光量が検出した車外光量が低い時間帯に、相関関係を参照して開眼度に対応する大きさの赤目テンプレートを生成するものとすることができる。赤目よりも黒目の方が検出し易く、車外光量が高い時間帯は赤目現象が生じないため、このような時間帯に開眼度と黒目の大きさとの相関関係を学習することで、適切に当該相関関係を学習することができる。そして、車外光量が低い時間帯に、当該相関関係を参照して、開眼度に対応する大きさの赤目テンプレートを生成するため、より高い確度で開眼度に対応した赤目テンプレートを生成することができる。本発明によれば、赤目の形状が開眼度によって変化しても赤目を正確に検出することができる。以下、図面を参照して、本発明に係る赤目検出装置の実施の形態を説明する。なお、各図において同一又は相当する要素については同一の符号を付し、重複する説明を省略する。本実施形態に係る赤目検出装置は、ドライバの視線を検出して運転支援制御を行う運転支援制御装置などに搭載されるものである。[第1の実施形態]図1は、第1の実施形態に係る赤目検出装置のブロック構成を示した図である。図1に示すように、第1の実施形態に係る赤目検出装置1は、画像センサ10と、ECUElectronicControlUnit20と、を備えている。画像センサ10は、ドライバの顔を撮像するセンサである。画像センサ10としては、例えば、車両のステアリングコラムに固定されたCCDカメラ等が用いられる。画像センサ10が撮像した画像顔画像は、各画素の位置や色情報などを表す画像情報で構成されている。そして、画像センサ10は、撮像した画像の画像情報をECU20へ出力する。ECU20は、電子制御を行う自動車デバイスのコンピュータであり、CPUCentralProcessingUnit、ROMReadOnlyMemoryやRAMRandomAccessMemory等のメモリ、及び入出力インターフェイスなどを備えて構成されている。このECU20は、画像センサ10に接続されており、顔位置顔特徴点検出部21、赤目検出部22、開眼度算出部23、相対開眼度算出部24及び赤目テンプレート更新部25を備えている。顔位置顔特徴点検出部21は、画像センサ10が撮像した画像から、ドライバの顔の特徴点を検出する機能を有している。具体的に説明すると、顔位置顔特徴点検出部21は、まず、画像センサ10が撮像した画像全体を探索範囲として、ニューラルネットワークNeuralNetworkやブースティングBoosting等の統計手法により顔位置を発見する。そして、顔位置顔特徴点検出部21は、この発見した顔位置を含む顔位置領域を設定し、この設定した顔位置領域から、ニューラルネットワークやブースティング等の統計手法により顔の特徴点を検出する。顔の特徴点としては、例えば、右目尻、右目頭、左目尻、左目頭、鼻腔中心、左右口端等が挙げられる。なお、顔の各特徴点の検出は、この手法に限られるものではなく、公知の他の手法を用いてもよい。赤目検出部22は、赤目テンプレートを用いたテンプレートマッチングにより赤目検出を行う機能を有している。具体的に説明すると、赤目検出部22は、まず、顔位置顔特徴点検出部21が検出した目尻及び目頭の特徴点に基づいて、顔位置顔特徴点検出部21が設定した顔位置領域から、赤目探索領域を設定する。そして、赤目検出部22は、赤目テンプレートを用いたテンプレートマッチングにより、赤目探索領域から赤目を検出する。開眼度算出部23は、ドライバの眼が開いている度合いを示す開眼度を算出する機能を有している。具体的に説明すると、開眼度算出部23は、顔位置顔特徴点検出部21が設定した顔位置領域にフィルタをかけてエッジを強調した画像を生成する。そして、開眼度算出部23は、生成されたエッジ画像上に目尻及び目頭を結ぶ複数の曲線を投影し、その曲線上のエッジ強度から上瞼及び下瞼の位置を検出する。そして、開眼度算出部23は、上瞼の位置と下瞼の位置との差分を用いて開眼度[pix]を算出する。この開眼度は、画素のピクセルpixel単位で表される。相対開眼度算出部24は、開眼度算出部23が算出したピクセル単位の開眼度から、閉眼状態を0及び開眼状態を100とした割合の相対開眼度[]を算出する機能を有している。赤目テンプレート更新部25は、相対開眼度算出部24で算出された相対開眼度に基づいて赤目テンプレートを更新する機能を有している。具体的に説明すると、赤目テンプレート更新部25は、相対開眼度算出部24で算出された相対開眼度に対応する赤目テンプレートを生成する。そして、赤目テンプレート更新部25は、この生成した赤目テンプレートで、次回のテンプレートマッチングに用いる赤目テンプレートを更新する。次に、第1の実施形態に係る赤目検出装置1の動作について説明する。図2は、第1の実施形態に係る赤目検出装置の赤目検出処理動作を示すフローチャートである。図2に示す処理は、ECU20の制御により行われ、例えば、イグニッションオンされたタイミングからイグニッションオフされるまでの間、所定の間隔で繰返し行われる。なお、図2に示す一連の処理の単位をフレームという。このため、今回のフレームとは、今回行う図2に示す一連の処理を意味し、前回のフレームとは、前回行った図2に示す一連の処理を意味する。図2に示すように、まず、ECU20は、画像センサ10が撮像したドライバの画像を入力するステップS11。ステップS11では、画像センサ10が撮像した図3に示す画像F1を入力する。図3は、画像センサが撮像した画像の一例である。次に、ECU20は、顔位置顔特徴点を検出するステップS12。ステップS12の処理は、顔位置顔特徴点検出部21が行う。顔位置顔特徴点検出部21は、まず、ステップS11で入力した画像F1の全体を探索範囲として、ニューラルネットワークやブースティング等の統計手法により顔位置を発見する。次に、顔位置顔特徴点検出部21は、顔位置領域G1を設定する。図4は、顔の特徴点検出方法を説明するための概要図であり、顔位置領域G1を示している。図4に示すように、顔位置領域G1は、この発見した顔位置を含む領域であり、画像F1の一領域である。そして、顔位置顔特徴点検出部21は、この設定した顔位置領域G1を探索範囲として、ニューラルネットワークやブースティング等の統計手法により、右目尻、右目頭、左目尻、左目頭、鼻腔中心、左右口端等の特徴点を検出する。次に、ECU20は、今回のフローが初回であるか否かを判定するステップS13。そして、ECU20は、今回のフローが初回であると判定するとステップS13:YES、ステップS14に進み、今回のフローが初回ではないと判定するとステップS13:NO、ステップS15に進む。ステップS13において今回のフローが初回であると判定したECU20は、次に、事前に用意されている赤目テンプレートを用いたテンプレートマッチングにより赤目を検出するステップS14。事前に用意されている赤目テンプレートとは、開眼度が100であるときの赤目を示したテンプレートである。ステップS14の処理は、赤目検出部22が行う。赤目検出部22は、まず、ステップS12において設定した顔位置領域G1図4参照から、赤目探索領域を設定する。図5は、赤目の検出方法を説明するための概要図である。図5に示すように、赤目探索領域G2は、例えば、目尻よりも外側に配置されて上下方向に延びる線分と、目頭よりも内側に配置されて上下方向に延びる線分と、目尻と目頭とを結ぶ線分よりも上側に配置されて左右方向に延びる線分と、目尻と目頭とを結ぶ線分よりも下側に配置されて左右方向に延びる線分と、により画成される矩形領域となる。そして、赤目検出部22は、事前に用意されている赤目テンプレートを用いて赤目探索領域G2をテンプレートマッチングすることにより、赤目候補Cを検出する。なお、赤目検出部22は、テンプレートマッチングにより所定の閾値を超えた画素パターンを赤目候補Cとして検出する。ここで、図5に示す赤目探索領域G2を見てみる。すると、赤目探索領域G2には、ドライバの目や瞼に反射したLED光Lが映り込んでいる。このLED光Lの画素パターンは、赤目Rの画素パターンと近似している。このため、赤目検出部22は、本当の赤目Rを赤目候補Cとして検出するとともに、このLED光Lも赤目候補Cとして検出する。その結果、ステップS14では、2つの赤目候補Cが検出される。そこで、赤目検出部22は、赤目テンプレートとのマッチング度が最も高い画素パターンの赤目候補Cを赤目Rと判定する。一方、上述したステップS13において今回のフローが初回であると判定したECU20は、次に、前回のフレームで更新された赤目テンプレートを用いたテンプレートマッチングにより赤目を検出するステップS15。前回のフレーム処理で更新された赤目テンプレートとは、前回のフレームにおけるステップS18詳細は後述するで更新された赤目テンプレートである。ステップS15の処理は、ステップS14と同様に赤目検出部22が行う。なお、ステップS15の処理は、基本的にステップS14の処理と同様であり、用いる赤目テンプレートのみが異なる。このため、ステップS15の詳細な説明は省略する。次に、ECU20は、開眼度を算出するステップS16。ステップS16の処理は、開眼度算出部23が行う。開眼度算出部23は、まず、ステップS12で検出した目頭及び目尻の特徴点から上下瞼を検出する。ここで、図6を参照して、上下瞼の検出方法について説明する。図6は、上下瞼の検出方法を説明するための概要図である。図6に示すように、開眼度算出部23は、ステップS12で設定した顔位置領域G1に対して、例えばソーベルフィルタを適用して、エッジを強調した画像であるエッジ画像G3を生成する。次に、開眼度算出部23は、ステップS12で検出した目尻及び目頭の特徴点を始点及び終点とする複数の曲線を投影し、その曲線上のエッジの強度エッジ画像の画素値を算出する。曲線として、例えば、ベジェ曲線が用いられる。そして、開眼度算出部23は、算出されたエッジ強度の中からエッジ強度が強い曲線を選択し、上瞼曲線,下瞼曲線とする。このとき、開眼度算出部23は、ステップS14又はS15で検出した赤目Rよりも下側の曲線は上瞼の候補から除外し、ステップS14又はS15で検出した赤目Rよりも上側の曲線は下瞼の候補から除外する。そして、開眼度算出部23は、上瞼曲線の中点のY座標及び下瞼曲線の中点のY座標を算出し、上下瞼のY座標の差分に基づいて開眼度[pix]を算出する。開眼度は、画素のピクセルpixel単位の値となる。なお、開眼度の算出方法は、この手法に限られるものではなく、公知の他の手法を用いてもよい。次に、ECU20は、ステップS16で算出した開眼度[pix]から、閉眼状態を0及び開眼状態を100とした割合の相対開眼度[]を算出するステップS17。ステップS17の処理は、相対開眼度算出部24が行う。ここで、図7を参照して、相対開眼度の算出方法について説明する。図7は、相対開眼度の算出方法を説明するための概要図であり、時間経過に伴う開眼度の波形K1を示した時間-開眼度グラフを示している。図7に示すように、相対開眼度算出部24は、予め所定の開眼度を開眼閾値A1及び閉眼閾値A2として設定しておき、ステップS16で算出された開眼度[pix]を開眼度-時間グラフにプロットしていく。次に、相対開眼度算出部24は、予め設定した開眼閾値A1よりも高い開眼度の平均値を開眼閾値A1として更新し、また、予め設定した閉眼閾値A2よりも低い開眼度の平均値を閉眼閾値A2として更新する。そして、相対開眼度算出部24は、開眼度算出部23が算出した開眼度から、更新した開眼閾値A1を100及び更新した閉眼閾値A2を0とした割合の相対開眼度[]を算出する。次に、ECU20は、ステップS18で算出した相対開眼度に応じて赤目テンプレートを更新するステップS18。ステップS18の処理は、赤目テンプレート更新部25が行う。ここで、図8を参照して、赤目テンプレートの更新処理について説明する。図8は、相対開眼度と赤目テンプレート形状との関係を示した概要図である。図8に示すように、画像に写る赤目の形状は、相対開眼度に比例する。すなわち、相対開眼度が100であれば、画像に写る赤目は100の形状であり、相対開眼度が75であれば、画像に写る赤目は75の形状であり、相対開眼度が50であれば、画像に写る赤目は50の形状であり、相対開眼度が0であれば、画像には赤目が写らない。そこで、赤目テンプレート更新部25は、ステップS17で算出した相対開眼度に対応した形状の赤目テンプレートを生成し、この生成した赤目テンプレートで、次回のフレームのテンプレートマッチングに用いる赤目テンプレートを更新する。具体的に説明すると、赤目テンプレート更新部25は、前回のフレームにおけるステップS17で算出した相対開眼度と、今回のフレームにおけるステップS17で算出した相対開眼度とを比較し、前回のフレームと今回のフレームとで相対開眼度が変化したか否かを判定する。そして、赤目テンプレート更新部25は、前回のフレームと今回のフレームとで相対開眼度が変化していないと判定すると、赤目テンプレートを更新することなくステップS18の処理を終了する。一方、赤目テンプレート更新部25は、前回のフレームと今回のフレームとで相対開眼度が変化していると判定すると、今回のフレームにおけるステップS17で算出した相対開眼度に対応した形状の赤目テンプレートを生成し、この生成した赤目テンプレートで、次回のフレームのテンプレートマッチングに用いる赤目テンプレートを更新する。なお、ステップS18において、赤目テンプレート更新部25は、赤目テンプレートを生成する代わりに、登録された赤目テンプレートを選択するものとしてもよい。具体的に説明すると、予め所定の相対開眼度に対応した形状の赤目テンプレートを複数種類登録しておく。その後処理が開始されると、赤目テンプレート更新部25は、ステップS18において、登録した複数の赤目テンプレートの中から、今回のフレームにおけるステップS17で算出した相対開眼度に対応した形状の赤目テンプレートを選択する。そして、赤目テンプレート更新部25は、この選択した赤目テンプレートで、次回のフレームのテンプレートマッチングに用いる赤目テンプレートを更新する。以上説明したように、第1の実施形態に係る赤目検出装置1によれば、相対開眼度に応じた赤目テンプレートを生成するため、赤目の形状が開眼度によって変化しても赤目を正確に検出することができる。また、次回のテンプレートマッチングでは、相対開眼度に対応した赤目テンプレートを用いることができるため赤目検出の確度を向上することができる。また、開眼度を相対開眼度で表すことで、画像センサ10からドライバの顔までの距離や個人差によって顔画像における上瞼から下瞼までの距離が異なったとしても、開眼度を正規化することができるため、適切に赤目テンプレートを生成することができる。また、画像から直接的に開眼度を求めることで、開眼度の信頼性を向上することができる。[第2の実施形態]次に、第2の実施形態に係る赤目検出装置2について説明する。第2の実施形態は、第1の実施形態と基本的には同様であるが、眠気度に基づいて開眼度を推定する点で第1の実施形態と相違する。このため、以下では、第1の実施形態と相違する部分のみを説明し、第1の実施形態と同様の部分の説明を省略する。図9は、第2の実施形態に係る赤目検出装置のブロック構成を示した図である。図9に示すように、第2の実施形態に係る赤目検出装置2は、画像センサ10と、ECU30と、を備えている。ECU30は、電子制御を行う自動車デバイスのコンピュータであり、CPU、ROMやRAM等のメモリ、及び入出力インターフェイスなどを備えて構成されている。このECU30は、画像センサ10に接続されており、顔位置顔特徴点検出部31、赤目検出部32、開眼度算出部33、眠気推定部34及び赤目テンプレート更新部35を備えている。顔位置顔特徴点検出部31、赤目検出部32及び開眼度算出部33は、それぞれ、第1の実施形態における顔位置顔特徴点検出部21、赤目検出部22及び開眼度算出部23と同様である。眠気推定部34は、開眼度算出部23が算出した開眼度から瞬き特徴量を算出し、この算出した瞬き特徴量に基づいて運転者の眠気の度合い眠気度を推定する機能を有している。瞬き特徴量としては、所定時間における目を閉じている時間などが用いられる。眠気推定部34は、例えば、事前に学習した眠気度と瞬き特徴量との関係を用いて、運転者の眠気度を推定する。赤目テンプレート更新部35は、眠気推定部34が推定した眠気度に基づいて赤目テンプレートを更新する機能を有している。具体的に説明すると、予め、所定の相対開眼度に対応した形状の赤目テンプレートを複数種類登録しておく。赤目テンプレート更新部35は、この登録した複数の赤目テンプレートの中から、眠気推定部34が推定した眠気度に対応する赤目テンプレートを選択する。そして、赤目テンプレート更新部35は、この選択した赤目テンプレートで、次回のテンプレートマッチングに用いる赤目テンプレートを更新する。すなわち、赤目テンプレート更新部35は、眠気推定部34が推定した眠気度から間接的に開眼度を推定する。そして、赤目テンプレート更新部35は、この推定した開眼度に対応する赤目テンプレートを、登録された複数の赤目テンプレートから選択することで生成し、この生成した赤目テンプレートで、次回のテンプレートマッチングに用いる赤目テンプレートを更新する。次に、第2の実施形態に係る赤目検出装置2の動作について説明する。図10は、第2の実施形態に係る赤目検出装置の赤目検出処理動作を示すフローチャートである。図10に示す処理は、ECU30の制御により行われ、例えば、イグニッションオンされたタイミングからイグニッションオフされるまでの間、所定の間隔で繰返し行われる。なお、図10に示す一連の処理の単位をフレームという。このため、今回のフレームとは、今回行う図10に示す一連の処理を意味し、前回のフレームとは、前回行った図10に示す一連の処理を意味する。図10に示すように、まず、ECU30は、画像センサ10が撮像したドライバの画像を入力するステップS21。ステップS21の処理は、第1の実施形態におけるステップS11の処理と同様である。次に、ECU30は、顔位置顔特徴点を検出するステップS22。ステップS22の処理は、第1の実施形態におけるステップS12の処理と同様である。次に、ECU30は、今回のフローが初回であるか否かを判定するステップS23。そして、ECU30は、今回のフローが初回であると判定するとステップS23:YES、ステップS24に進み、今回のフローが初回ではないと判定するとステップS23:NO、ステップS25に進む。ステップS23において今回のフローが初回であると判定したECU30は、次に、事前に用意されている赤目テンプレートを用いたテンプレートマッチングにより赤目を検出するステップS24。ステップS24の処理は、第1の実施形態におけるステップS14の処理と同様である。一方、ステップS23において今回のフローが初回であると判定したECU30は、次に、前回のフレームで更新された赤目テンプレートを用いたテンプレートマッチングにより赤目を検出するステップS25。前回のフレームで更新された赤目テンプレートとは、前回のフレームにおけるステップS28詳細は後述するで更新された赤目テンプレートである。ステップS25の処理は、ステップS24と同様に赤目検出部22が行う。なお、ステップS25の処理は、基本的にステップS24の処理と同様であり、用いる赤目テンプレートのみが異なる。このため、ステップS25の詳細な説明は省略する。次に、ECU30は、開眼度を算出するステップS26。ステップS26の処理は、第1の実施形態におけるステップS16の処理と同様である。次に、ECU30は、運転者の眠気度を推定するステップS27。ステップS27の処理は、眠気推定部34が行う。眠気推定部34は、まず、ステップS26で算出した開眼度に基づいて、眠気と相関関係のある特徴量である瞬き特徴量を算出する。瞬き特徴量は、所定の期間例えば10秒における眼の状態のうち、閉眼状態となっていた閉眼期間を取得し、所定の期間に対する閉眼期間の割合を算出した物理量とする。そして、眠気推定部34は、この算出した瞬き特徴量に基づいて運転者の眠気度を推定する。ここで、図11を参照して瞬き特徴量の算出方法について説明する。図11は、瞬き特徴量の算出方法を説明するための概要図であり、時間経過に伴う開眼度の波形K2を示した時間-開眼度グラフを示している。図11において、期間T1及びT2は、開眼度が閉眼閾値A2以下となった期間、すなわち閉眼期間である。また、図11において、期間T3は、ステップS26において開眼度を検出できなかった区間である。この場合、眠気推定部34は、期間T3を除く所定期間を設定し、設定された所定期間に対して閉眼期間が占める割合を瞬き特徴量として算出する。すなわち、眠気推定部34は、ステップS26において開眼度が未検出とされた期間の情報を除外して瞬き特徴量を算出する。なお、ステップS27では、眠気と相関関係のある物理量であれば瞬き特徴量以外の特徴量を算出してもよい。ここで、図12を参照して、運転者の眠気度の推定方法について説明する。図12は、眠気度の推定方法を説明するための概要図であり、瞬き特徴量と確率密度との関係を示している。図12では、2段階評価で表した各眠気度の統計分布瞬き特徴量に対する確率密度を示しており、眠気度が低い場合の統計分布をSA、眠気度が高い場合の統計分布をSBとしている。統計分布SA,SBは、例えば、オフライン処理で行われる事前学習で取得される。ここで、算出した瞬き特徴量をR1とすると、眠気推定部34は、瞬き特徴量がR1である場合の統計分布SA及び統計分布SBの確率密度を算出し、この算出した確率密度の大小関係によって眠気度を推定する。なお、眠気度の算出方法は、この手法に限られるものではなく、公知の他の手法を用いてもよい。なお、眠気度は、例えば0~5の6段階評価で表すことができる。この場合、例えば、眠気度0は完全に覚醒した状態、眠気度1は眠くない状態、眠気度2は殆ど眠くない状態、眠気度3はやや眠い状態、眠気度4はかなり眠い状態、眠気度5は殆ど寝ているに近い状態となる。次に、ECU30は、ステップS27で推定した眠気度に応じて赤目テンプレートを更新するステップS28。ステップS28の処理は、赤目テンプレート更新部35が行う。ここで、図13を参照して、赤目テンプレートの更新処理について説明する。図13は、眠気度と赤目テンプレート形状との関係を示した概要図である。通常、人は、眠気度によって開眼度が変化し、眠気度が高いほど開眼度が小さくなる。すなわち、眠気度が低ければ、開眼度が大きくなるためドライバの顔画像に写っている赤目の形状が大きくなり、眠気度が高ければ、開眼度が小さくなるためドライバの顔画像に写っている赤目の形状が小さくなる。そこで、図13に示すように、赤目テンプレート更新部35には、眠気度に対応した複数の赤目テンプレートが登録されている。この登録されている各赤目テンプレートは、それぞれ眠気度に対応した形状であって、眠気度に対応する開眼度に対応した赤目の形状となっている。そして、赤目テンプレート更新部35は、この登録された複数の赤目テンプレートの中から、ステップS27で推定した眠気度に対応した開眼度の赤目テンプレートを選択し、この選択した赤目テンプレートで、次回のフレームのテンプレートマッチングに用いる赤目テンプレートを更新する。すなわち、赤目テンプレート更新部35は、眠気度に応じて開眼度を推定し、この推定した開眼度に基づいて赤目テンプレートを更新する。具体的に説明すると、赤目テンプレート更新部35は、前回のフレームにおけるステップS27で推定した眠気度と、今回のフレームにおけるステップS27で推定した眠気度とを比較し、前回のフレームと今回のフレームとで眠気度が変化したか否かを判定する。そして、赤目テンプレート更新部35は、前回のフレームと今回のフレームとで眠気度が変化していないと判定すると、赤目テンプレートを更新することなくステップS28の処理を終了する。一方、赤目テンプレート更新部35は、前回のフレームと今回のフレームとで眠気度が変化していると判定すると、今回のフレームにおけるステップS27で推定した眠気度に対応した形状の赤目テンプレートを選択し、この選択した赤目テンプレートで、次回のフレームのテンプレートマッチングに用いる赤目テンプレートを更新する。なお、ステップS28において、赤目テンプレート更新部35は、登録情報から赤目テンプレートを選択する代わりに、赤目テンプレートを一から生成するものとしてもよい。具体的に説明すると、赤目テンプレート更新部35は、ステップS27で推定した眠気度から赤目の形状を推定し、この推定した形状の赤目テンプレートを生成する。そして、赤目テンプレート更新部35は、この生成した赤目テンプレートで、次回のフレームのテンプレートマッチングに用いる赤目テンプレートを更新する。また、処理開始直後の一定期間に、眠気度と赤目パターンとの相関関係を学習しておき、ステップS28では、赤目テンプレート更新部35が、この学習した眠気度と赤目パターンの相関関係に基づいて、赤目テンプレートを生成することとしてもよい。以上説明したように、第2の実施形態に係る赤目検出装置2によれば、眠気度から間接的に開眼度を求めることができる。更に、眠気度によって開眼度が変化しても、赤目を正確に検出することができる。[第3の実施形態]次に、第3の実施形態に係る赤目検出装置3について説明する。第3の実施形態は、第1の実施形態と基本的には同様であるが、開眼度と赤目のサイズとの相関関係を学習し、この学習した相関関係に基づいて赤目テンプレートを更新する点で第1の実施形態と相違する。このため、以下では、第1の実施形態と相違する部分のみを説明し、第1の実施形態と同様の部分の説明を省略する。図14は、第3の実施形態に係る赤目検出装置のブロック構成を示した図である。図14に示すように、第3の実施形態に係る赤目検出装置3は、画像センサ10と、照度センサ40と、ECU50と、を備えている。照度センサ40は、車外光量を計測するセンサである。車外光量とは、車両の外側の光量である。このため、昼間は車外光量が高くなり、夜間は車外光量が低くなる。照度センサ40としては、例えば、車両の窓付近に固定された光電変換素子等が用いられる。そして、照度センサ40は、計測した車外光量をECU50へ出力する。ECU50は、電子制御を行う自動車デバイスのコンピュータであり、CPU、ROMやRAM等のメモリ、及び入出力インターフェイスなどを備えて構成されている。このECU50は、画像センサ10及び照度センサ40に接続されており、昼夜判定部51、顔位置顔特徴点検出部52、赤目検出部53、開眼度算出部54、黒目サイズ学習部55及び赤目テンプレート更新部56を備えている。赤目検出部53及び開眼度算出部54は、それぞれ、第1の実施形態における赤目検出部22及び開眼度算出部23と同様である。昼夜判定部51は、車外光量の高い昼間か車外光量の低い夜間かを判定する機能を有している。昼夜判定部51は、例えば、照度センサ40から出力された車外光量や、画像センサ10から出力された画像の合計輝度などに基づいて、昼夜を判定する。顔位置顔特徴点検出部52は、基本的に第1の実施形態における顔位置顔特徴点検出部21と同様であるが、更に黒目を検出するとともに、検出した黒目のサイズを算出する機能を有している。なお、黒目の検出は、例えば、黒目テンプレートを用いたテンプレートマッチングなどにより行うことができる。黒目サイズ学習部55は、顔位置顔特徴点検出部52が検出した黒目のサイズと開眼度算出部54が算出した開眼度との相関関係を学習する機能を有している。赤目テンプレート更新部56は、開眼度を推定するとともに、推定した開眼度と黒目サイズ学習部55が学習した開眼度と黒目のサイズとの相関関係とに基づいて赤目テンプレートを更新する機能を有している。次に、第3の実施形態に係る赤目検出装置3の動作について説明する。図15は、第3の実施形態に係る赤目検出装置の赤目検出処理動作を示すフローチャートである。図15に示す処理は、ECU50の制御により行われ、例えば、イグニッションオンされたタイミングからイグニッションオフされるまでの間、所定の間隔で繰返し行われる。なお、図15に示す一連の処理の単位をフレームという。このため、今回のフレームとは、今回行う図15に示す一連の処理を意味し、前回のフレームとは、前回行った図15に示す一連の処理を意味する。図15に示すように、まず、ECU50は、画像センサ10が撮像したドライバの画像を入力するステップS31。ステップS31の処理は、第1の実施形態におけるステップS11の処理と同様である。次に、ECU50は、顔位置顔特徴点を検出するステップS32。ステップS32の処理は、第1の実施形態におけるステップS12の処理と同様である。次に、ECU50は、夜間であるか否かを判定するステップS33。ステップS33の処理は、昼夜判定部51が行う。昼夜判定部51は、照度センサ40から出力された車外光量や、画像センサ10から出力された画像などに基づいて、昼夜を判定する。照度センサ40から出力された車外光量に基づいて昼夜を判定する場合、昼夜判定部51は、まず、照度センサ40から出力された車外光量を取得する。そして、昼夜判定部51は、この車外光量が所定の閾値よりも高い場合は昼間であると判定し、この車外光量が所定の閾値以下である場合は夜間であると判定する。一方、画像センサ10から出力された画像に基づいて昼夜を判定する場合、昼夜判定部51は、まず、画像センサ10から出力された画像を取得する。そして、昼夜判定部51は、この画像を構成する各画素の合計輝度を算出し、合計輝度が所定の閾値よりも高い場合は昼間であると判定し、合計輝度が所定の閾値以下である場合は夜間であると判定する。そして、ECU50は、昼間であると判定するとステップS33:NO、ステップS34に進み、夜間であると判定するとステップS33:YES、ステップS37に進む。ステップS33において昼間であると判定したECU50は、次に、開眼度を算出するステップS34。ステップS34の処理は、第1の実施形態におけるステップS16の処理と同様である。次に、ECU50は、黒目を検出するステップS35。ステップS35の処理は、顔位置顔特徴点検出部52が行う。顔位置顔特徴点検出部52は、まず、ステップS32において設定した顔位置領域G1図4参照から、黒目探索領域を設定する。黒目探索領域は、赤目探索領域G25参照と同様である。また、顔位置顔特徴点検出部52は、黒目テンプレートを用いたテンプレートマッチングなどにより、黒目探索領域から黒目を検出する。なお、黒目の検出方法は、この手法に限られるものではなく、公知の他の手法を用いてもよい。そして、顔位置顔特徴点検出部52は、瞼に隠れていない部分の黒目のサイズを算出する。ここで、図16を参照して、黒目のサイズの算出方法について説明する。図16は、黒目のサイズの算出方法を説明するための概要図である。図16に示すように、ステップS34で算出される開眼度は、上瞼曲線の中点のY座標と下瞼曲線の中点のY座標との差分により算出されるため、必ずしも、このように算出される開眼度と瞼に隠れていない部分の黒目のサイズとが一致するとは限らない。そこで、顔位置顔特徴点検出部52は、黒目を検出すると、この検出した黒目における最上端のY座標と最下端のY座標とを検出し、この検出した両Y座標の差分を算出する。そして、顔位置顔特徴点検出部52は、この算出結果を瞼に隠れていない部分の黒目のサイズとする。次に、ECU50は、開眼度と黒目のサイズとの相関関係を学習するステップS36。ステップS36の処理は、黒目サイズ学習部55が行う。図17は、開眼度と黒目のサイズとの相関関係を示した開眼度-黒目サイズグラフである。黒目サイズ学習部55は、図17に示す開眼度-黒目サイズグラフを有している。そして、黒目サイズ学習部55は、ステップS34で算出した開眼度に対するステップS35で検出した黒目のサイズを、図17に示す開眼度-黒目サイズグラフにプロットしていくことで、開眼度に対する黒目のサイズを学習する。そして、黒目サイズ学習部55は、開眼度に対する黒目のサイズの平均値と標準偏差σとを算出する。一方、上述したステップS33において夜間であると判定したECU50は、次に、赤目テンプレートを更新するステップS37。ステップS37の処理は、赤目テンプレート更新部56が行う。図18は、開眼度の推定方法を説明するための概要図である。図18に示すように、赤目テンプレート更新部56は、まず、過去のフレームで検出した開眼度の値を記録しておき、カルマンフィルタやパーティクルフィルタなどのフィルタを用いて今回のフレームにおける開眼度を推測する。なお、開眼度の推測方法は、この手法に限られるものではなく、公知の他の手法を用いてもよい。次に、赤目テンプレート更新部56は、ステップS36で学習した開眼度-黒目のサイズグラフを参照して、推測した開眼度における黒目のサイズを算出する。このとき、赤目テンプレート更新部56は、開眼度-黒目のサイズグラフの平均値を用いて、1つの黒目のサイズを算出してもよく、開眼度-黒目のサイズグラフの標準偏差σを用いて複数の黒目のサイズを算出してもよい。次に、赤目テンプレート更新部56は、この算出した黒目のサイズの赤目テンプレートを生成する。なお、黒目のサイズを複数個算出した場合は、赤目テンプレートも複数個生成する。そして、赤目テンプレート更新部25は、この生成した赤目テンプレートで、今回のテンプレートマッチングに用いる赤目テンプレートを更新する。次に、ECU50は、ステップS37で更新した赤目テンプレートを用いたテンプレートマッチングにより赤目を検出するステップS38。ステップS38は、赤目テンプレート更新部56が行う。なお、ステップS38の処理は、基本的に第1の実施形態におけるステップS14の処理と同様であり、用いる赤目テンプレートのみが異なる。このため、ステップS38の詳細な説明は省略する。以上説明したように、第3の実施形態に係る赤目検出装置3によれば、車外光量が高い昼間に、開眼度に対する黒目のサイズの相関関係を学習しておき、車外光量が低い夜間に、この相関関係を参照して、開眼度に対応するサイズの赤目テンプレートを生成するため、より高い確度で開眼度に対応した赤目テンプレートを生成することができる。以上、本発明の好適な実施形態について説明したが、本発明は上記実施形態に限定されるものではない。例えば、第1~第3の実施形態は別物として説明したが、一部又は全部を適宜組み合わせてもよい。例えば、第1の実施形態は、第2の実施形態よりも精度が高く、第2の実施形態は、第1の実施形態処理も処理負荷が低いため、眠気度が低いときは第1の実施形態の処理を行い、眠気度が高くなると第2の実施形態の処理を行うものとしてもよい。また、第3の実施形態で行った開眼度の推測処理を、第1又は第2の実施形態で行ってもよい。"