(57)【要約】  カメラに対して顔が横を向いている場合でも、カメラにより撮影された画像に基づいて顔の向いている方向を示す方向情報を作成することができる情報生成装置等を提供することを課題とする。  上記課題に対して、装着物を装着した頭部を側面から撮影した画像における前記装着物の特徴部の傾きを検出し、当該検出した特徴部の傾きから顔の向いている方向を示す顔方向情報を生成する。
2017130407.tif 000002
【特許請求の範囲】
【請求項１】
装着物を装着した頭部を側面から撮影した画像における前記装着物の特徴部の傾きを検出する検出手段と、
前記検出手段が検出した前記特徴部の傾きから顔の向いている方向を示す顔方向情報を生成する生成手段と、
を備えることを特徴とする情報生成装置。
【請求項２】
請求項１に記載の情報生成装置であって、
前記生成手段は、前記特徴部の傾きから前記装着物の向いている方向を示す装着物方向情報を生成し、前記装着物が基準方向を向くときの前記顔が向く方向と前記基準方向との差分を示す差分情報に基づいて、前記装着物方向情報を補正して前記顔方向情報を生成することを特徴とする情報生成装置。
【請求項３】
請求項１又は２に記載の情報生成装置であって、
前記特徴部の傾きを示す傾き情報と生成された前記顔方向情報を対応付けて記憶手段に記憶させる記憶制御手段を更に備え、
前記生成手段は、前記検出手段が検出した前記特徴部の傾きとの差分が閾値以下である傾きを示す前記傾き情報が前記記憶手段に記憶されている場合に、当該傾き情報と対応付けて記憶されている前記顔方向情報を取得することを特徴とする情報生成装置。
【請求項４】
請求項３に記載の情報生成装置であって、
前記検出手段は、前記特徴部のエッジを示す線を検出し、
前記生成手段は、前記検出手段が２本の前記線を検出した場合に、２本の前記線の傾き及び２本の前記線間の間隔の少なくとも一方に基づいて、前記装着物の種類を示す種類情報を更に生成し、
前記記憶制御手段は、前記傾き情報及び前記顔方向情報に前記種類情報を更に対応付けて前記記憶手段に記憶させ、
前記生成手段は、新たに種類情報を生成した場合に、前記記憶手段において当該生成した種類情報と同じ種類を示す前記種類情報が対応付けられている前記顔方向情報を取得することを特徴とする情報生成装置。
【請求項５】
請求項１に記載の情報生成装置であって、
前記生成手段が生成した前記顔方向情報を記憶手段に記憶させる記憶制御手段を更に備え、
前記生成手段は、新たに顔方向情報を生成する際に当該顔方向情報の示す方向として複数の候補が存在する場合に、所定期間内に記憶された少なくとも１つの顔方向情報に基づいて顔方向情報を生成することを特徴とする情報生成装置。
【請求項６】
情報生成装置が行う情報生成方法であって、
装着物を装着した頭部を側面から撮影した画像における前記装着物の特徴部の傾きを検出する検出工程と、
前記検出工程により検出した前記特徴部の傾きから顔の向いている方向を示す顔方向情報を生成する生成工程と、
を含む情報生成方法。
【請求項７】
コンピュータを、
装着物を装着した頭部を側面から撮影した画像における前記装着物の特徴部の傾きを検出する検出手段、
前記検出手段が検出した前記特徴部の傾きから顔の向いている方向を示す顔方向情報を生成する生成手段、
として機能させることを特徴とする情報生成プログラム。
【請求項８】
コンピュータを、
装着物を装着した頭部を側面から撮影した画像における前記装着物の特徴部の傾きを検出する検出手段、
前記検出手段が検出した前記特徴部の傾きから顔の向いている方向を示す顔方向情報を生成する生成手段、
として機能させる情報生成プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、頭部を撮影した画像に基づいて顔の向いている方向を示す方向情報を作成する情報生成装置等の技術分野に関する。
【背景技術】
【０００２】
従来、頭部を撮影した画像から顔の向きを認識する技術がある。例えば、特許文献１に記載の技術は、対象者の掛けている眼鏡上の光の反射像の位置及び大きさを取得し、反射像の位置及び大きさに基づいて対象者の顔位置を推定する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−２４５２５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載の技術では、眼鏡の反射像から顔位置を推定するため、カメラに対して顔が横方向に向けられている場合には、推定精度が低下するという問題があった。この問題は、顔の特徴点から顔の向きを推定する手法についても同様に存在する。【０００５】
本願発明は、上記問題に鑑み、カメラに対して顔が横方向を向いている場合でも、カメラにより撮影された画像に基づいて顔の向いている方向を示す方向情報を作成することができる情報生成装置等を提供することを課題とする。
【課題を解決するための手段】
【０００６】
請求項１に記載の発明は、装着物を装着した頭部を側面から撮影した画像における前記装着物の特徴部の傾きを検出する検出手段と、前記検出手段が検出した前記特徴部の傾きから顔の向いている方向を示す顔方向情報を生成する生成手段と、を備えることを特徴とする。【０００７】
請求項６に記載の発明は、情報生成装置が行う情報生成方法であって、装着物を装着した頭部を側面から撮影した画像における前記装着物の特徴部の傾きを検出する検出工程と、前記検出工程により検出した前記特徴部の傾きから顔の向いている方向を示す顔方向情報を生成する生成工程と、を含む情報生成方法。【０００８】
請求項７に記載の発明は、コンピュータを、装着物を装着した頭部を側面から撮影した画像における前記装着物の特徴部の傾きを検出する検出手段、前記検出手段が検出した前記特徴部の傾きから顔の向いている方向を示す顔方向情報を生成する生成手段、として機能させることを特徴とする。【０００９】
請求項８に記載の発明は、コンピュータを、装着物を装着した頭部を側面から撮影した画像における前記装着物の特徴部の傾きを検出する検出手段、前記検出手段が検出した前記特徴部の傾きから顔の向いている方向を示す顔方向情報を生成する生成手段、として機能させる情報生成プログラムを記録したコンピュータ読み取り可能な記録媒体である。
【図面の簡単な説明】
【００１０】
【図１】情報生成装置１のブロック図である。
【図２】顔向き判定装置Ｄのブロック図の一例である。
【図３】判定装置Ｄの機能を実現する構成例を示した機能ブロック図である。
【図４】判定装置Ｄが顔の向きを判定する際の動作例を示すフローチャートである。
【図５】判定装置Ｄによる眼鏡着用判定処理の一例を示すフローチャートである。
【図６】（Ａ）は、パターンＡの眼鏡のつる部を撮影した画像であり、（Ｂ）は、パターンＢの眼鏡のつる部を撮影した画像であり、（Ｃ）は、パターンＣの眼鏡のつる部を撮影した画像である。
【図７】判定装置Ｄによる眼鏡向き判定処理の一例を示すフローチャートである。
【図８】判定装置Ｄによる第１ピッチ角判定処理の一例を示すフローチャートである。
【図９】パターンＡの眼鏡のピッチ角とつる部直線の傾きの関係を表す図である。
【図１０】判定装置Ｄによるつる部直線抽出処理の一例を示すフローチャートである。
【図１１】判定装置Ｄによる第２ピッチ角判定処理の一例を示すフローチャートである。
【図１２】パターンＢの眼鏡のピッチ角とつる部直線の傾きの関係を表す図である。
【図１３】パターンＣの眼鏡のピッチ角とつる部直線の傾きの関係を表す図である。
【図１４】判定装置Ｄによるヨー角判定処理の一例を示すフローチャートである。
【図１５】眼鏡の向きとつる部直線の傾きの関係を示す図である。
【図１６】判定装置Ｄによる顔向き判定処理の一例を示すフローチャートである。
【図１７】（Ａ）、（Ｂ）はつるの形状が特殊なパターンであるつる部を示す例図である。
【発明を実施するための形態】
【００１１】
本願発明を実施するための形態について、図１を用いて説明する。
【００１２】
図１に示すように、情報生成装置１は検出手段１１１Ａと、生成手段１１１Ｂと、記憶制御手段１１１Ｃと、記憶手段１１１Ｄと、を備えている。なお、記憶手段は、情報生成装置１の外部に設けてもよい。
【００１３】
検出手段１１１Ａは、装着物を装着した頭部を側面から撮影した画像における装着物の特徴部の傾きを検出する。装着物の例として、眼鏡やマスクが挙げられる。また、特徴部は、装着物における頭部の側面に位置する部分である。例えば、眼鏡やマスクの耳に掛ける部分が挙げられる。より具体的には、眼鏡であれば「つる」であり、マスクであれば耳に掛ける「紐」である。
【００１４】
生成手段１１１Ｂは、検出手段１１１Ａが検出した特徴部の傾きから顔の向いている方向を示す顔方向情報を生成する。顔の向いている方向は、例えば、ピッチ角（上下方向の角度）とヨー角（横方向の角度）により示される。
【００１５】
また、生成手段１１１Ｂは、特徴部の傾きから装着物の向いている方向を示す装着物方向情報を生成し、装着物が基準方向を向くときの顔が向く方向と基準方向との差分を示す差分情報に基づいて、装着物方向情報を補正することにより顔方向情報を生成する。これにより、装着物の向いている方向と顔の向いている方向が一致しない場合にも、正しい顔方向情報を生成することができる。
【００１６】
したがって、情報生成装置１によれば、カメラに対して顔が横方向を向いている場合でも、カメラにより頭部を撮影された画像に基づいて顔の向いている方向を示す顔方向情報を作成することができる。
【００１７】
更に、特徴部の傾きを示す傾き情報と生成された顔方向情報を対応付けて記憶手段１１１Ｄに記憶させることとしてもよい。この場合、生成手段１１１Ｂは、検出手段１１１Ａが検出した特徴部の傾きとの差分が閾値以下である傾きを示す傾き情報が記憶手段１１１Ｄに記憶されている場合に、当該傾き情報と対応付けて記憶されている顔方向情報を取得する。閾値は、検出手段１１１Ａが検出した特徴部の傾きと記憶手段１１１Ｄに記憶されている傾き情報が示す傾きがほぼ同じ傾きであるとみなすことができる幅を定めるための値である。これにより、生成手段１１１Ｂは、新たに検出された特徴部の傾きが、過去に顔方向情報を生成した際の特徴部の傾きとほぼ同じ場合には、新たに顔方向情報を生成しなくてすむため、特徴部の傾きから顔方向情報を生成するための処理に係る処理負担を軽減することができる。
【００１８】
更にまた、検出手段１１１Ａは、特徴部のエッジを示す線を検出し、生成手段１１１Ｂは、検出手段１１１が２本の線を検出した場合に、２本の線の傾き及び２本の線間の間隔の少なくとも一方に基づいて、装着物の種類を示す種類情報を更に生成することとしてもよい。そして、記憶制御手段１１１Ｃは、傾き情報及び顔方向情報に種類情報を更に対応付けて記憶手段１１１Ｄに記憶させ、生成手段１１１Ｂが、新たに種類情報を生成した場合に、記憶手段１１１Ｄにおいて当該生成した種類情報と同じ種類を示す種類情報が対応付けられている顔方向情報を取得することとしてもよい。これにより、装着物に複数の種類があり、それぞれの種類を２本の線の傾き及び間隔の少なくとも一方で特定できる場合に、種類毎に、特徴部の傾きと顔方向情報を対応付けて記憶させることができる。したがって、過去に顔方向情報を生成した際の装着物と同種類の装着物を装着している場合において、新たに検出された特徴部の傾きが、過去に顔方向情報を生成した際の特徴部の傾きとほぼ同じ場合には、新たに顔方向情報を生成しなくてすむため、特徴部の傾きから顔方向情報を生成するための処理に係る処理負担を軽減することができる。
【００１９】
更にまた、記憶制御手段１１１Ｃは、生成手段１１１Ｂが生成した顔方向情報を記憶手段１１１Ｄに記憶させ、生成手段１１１Ｂは、新たに顔方向情報を生成する際に当該顔方向情報の示す方向として複数の候補が存在する場合に、所定期間内に記憶された少なくとも１つの顔方向情報に基づいて顔方向情報を生成することとしてもよい。これにより、何らかの理由により当該顔方向情報の示す方向として複数の候補が存在する場合であっても、最新の顔方向情報の示す方向とかけ離れた方向を示す顔方向情報が生成されることを防止することができる。
【実施例】
【００２０】
次に、上述した実施形態に対応する具体的な実施例について説明する。【００２１】
図２−図１６を用いて実施例について説明する。なお以下に説明する実施例は、本願発明を、顔向き判定装置Ｄ（以下、「判定装置Ｄ」という場合がある）に適用した場合の実施例である。【００２２】
［１．判定装置Ｄの概要］
本実施例の判定装置Ｄは、眼鏡を掛けた対象者の頭部を撮影した画像から、眼鏡のつるのエッジを検出し、そのエッジの傾きを算出することで、眼鏡の向きや顔の向きを判定する。一般的に、顔をカメラに対して大きく横方向に向けたとき、カメラから見て顔の奥側（反対側）が撮影できなくなり、顔向き判定が困難となる場合が多い。判定装置Ｄは、このような場合でも、眼鏡のつるのエッジの傾きにより、顔の向きを判定することができる。具体的には、画像から眼鏡のつるのエッジが検出できた（眼鏡を着用していると判定した）場合、上エッジと下エッジの傾き、または、上エッジもしくは下エッジのどちらか一方の傾きを算出し、その傾き情報から、眼鏡／顔のカメラに対する垂直方向（ピッチ方向という場合がある）と水平方向（ヨー方向という場合がある）の向き判定する。【００２３】
［２．判定装置Ｄの構成］
次に図２を用いて本実施例に係る判定装置Ｄの構成について説明する。図２に示すように、判定装置Ｄは、大別して、制御部１１１、記憶部１１２、通信部１１３、表示部１１４及び操作部１１５を含んで構成されている。【００２４】
記憶部１１２は、例えばハードディスクドライブ等により構成されており、ＯＳ（Operating System）、顔の向きを判定するための顔向き判定プログラムを含む各種プログラムを記憶する。また、記憶部１１２は、カメラＣにより撮影された画像や顔向き判定プログラムに使用される各種データを記憶する。【００２５】
Ｉ／Ｆ部１１３は、カメラＣとのデータのやりとりを制御する。カメラＣは、対象者の顔の正面に設置され、対象者の頭部を撮影する。【００２６】
表示部１１４は、例えば、液晶ディスプレイ等により構成されており、カメラＣにより撮影された画像等を表示するようになっている。【００２７】
操作部１１５は、例えば、キーボード、マウス等により構成されており、オペレータからの操作指示を受け付け、その指示内容を指示信号として制御部１１１に出力するようになっている。【００２８】
制御部１１１は、ＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）等により構成されている。そして、ＣＰＵが、ＲＯＭや記憶部１１２に記憶された顔向き判定プログラムを含む各種プログラムを読み出し実行することにより各種機能を実現する。【００２９】
［３．判定装置Ｄの機能］
図３は、判定装置Ｄの機能を実現する構成例を示した機能ブロック図である。判定装置Ｄの制御部１１１は、顔向き判定プログラムを実行することにより、画像取得部１１、眼鏡つる領域判定部１２、眼鏡着用判定部１３、エッジ検出部１４、つる部直線検出部１５、眼鏡向き判定部１６、直線傾き算出部１７、ピッチ方向判定部１８、ヨー方向判定部１９、顔向き判定部２１、方向情報生成部２２として動作する。【００３０】
画像取得部１１は、カメラＣが頭部（顔）を撮影した画像を取得する。眼鏡つる領域判定部１２は、例えば、画像から顔が横を向いている（例えば、横方向３０度以上）かを判定し、目の横の領域を眼鏡のつるが存在するつる領域として決定する。つる領域が決定されると、その領域において、エッジ検出部１４がエッジ（画像におけるつる部の境界を表す線）の検出を行い、つる部直線検出部１５が検出したエッジからつる部直線を検出する。眼鏡着用判定部１３は、つる部直線が検出されたか否かに応じて眼鏡が着用されているか否かを判定する。次に、眼鏡向き判定部１６において、直線傾き算出部１７が、つる部直線の傾きを算出し、ピッチ方向判定部１８がその傾きから眼鏡のピッチ方向の角度を判定し、ヨー方向判定部１９が眼鏡のヨー方向の角度を判定する。つる部直線の傾きとしては、上エッジ直線（つる部の上側境界を示す線）の傾きと下エッジ直線（つる部の下側境界を示す線）の傾き、または、上エッジ直線もしくは下エッジ直線のどちらか一方の傾きを利用することができる。そして、顔向き判定部２１が、判定された眼鏡の向きと、顔向き基準情報（差分情報の一例）とに基づいて顔向き方向を判定し、方向情報生成部２２が、当該顔向き方向を示す方向情報を生成する。【００３１】
［４．判定装置Ｄの動作例］
次に、図４−図１６を用いて、判定装置Ｄの動作例について説明する。図４は、判定装置Ｄの判定処理の一例を示すフローチャートである。【００３２】
図４のフローチャートにおいて、まず、画像取得部１１としての制御部１１１は、カメラＣが対象者の頭部を撮影した画像を取得する（ステップＳ１１）。【００３３】
次に、眼鏡つる領域判定部１２としての制御部１１１は、ステップＳ１１の処理で取得した画像に写る顔が横向きであるか否かを判定する（ステップＳ１２）。具体的には、従来公知の手法により、顔の特徴部（目、鼻、口、耳等）を抽出し、その位置関係により顔の向きを判定する。なお、本実施例では、ヨー角が３０度以上の場合に横向きであると判定する。【００３４】
眼鏡つる領域判定部１２としての制御部１１１は、顔が横向きでないと判定した場合には（ステップＳ１２：ＮＯ）、ステップＳ１１の処理に移行する。一方、制御部１１１は、顔が横向きであると判定した場合には（ステップＳ１２：ＹＥＳ）、画像におけるつる領域を決定する（ステップＳ１３）。具体的には、目、眉毛、耳、鼻の位置や、顔の輪郭の特徴等からつる領域のｘ座標基準、ｙ座標基準を定めて、つる領域を決定する。【００３５】
次いで、眼鏡着用判定部１３としての制御部１１１は、眼鏡着用判定処理を行う（ステップＳ１４）。以下、図５のフローチャートを用いて、眼鏡着用判定処理について説明する。【００３６】
まず、エッジ検出部１４としての制御部１１１は、ステップＳ１３の処理で決定されたつる領域の画像を切り出す（ステップＳ３１）。次いで、制御部１１１は、つる領域の画像についてエッジ検出を行う（ステップＳ３２）。エッジ検出には、Canny法等の一般的なエッジ検出手法を用いることができる。【００３７】
次に、つる部直線検出部１５としての制御部１１１は、つる部直線検出処理を行う（ステップＳ３３）。具体的には、エッジ検出を行った２値化画像に対して、ハフ変換等の一般的な直線検出処理を行う。このとき、つる部を表す直線（つる部直線）の検出手法は、ハフ変換等の一般的な手法を用いることができる。なお、画像の画質等の影響によってつる部直線を正しく検出できない場合、すなわち、つる部を表す直線以外の直線を検出してしまうこともある。そこで、検出した直線がつる部を表す直線として適切であるかを、直線の長さが閾値以上かといった条件や、直線の角度が閾値以内かといった条件を設定して、条件を満たす直線をつる部直線として検出することとしてもよい。つまり、つるを表す直線として長さが不適切な直線や角度が不適切な直線を排除することにより適切なつる部直線を検出する。【００３８】
次に、制御部１１１は、つる部直線を検出できたか否かを判定する（ステップＳ３４）。制御部１１１は、つる部直線を検出できたと判定した場合には（ステップＳ３４：ＹＥＳ）、眼鏡を着用していると判定し（ステップＳ３５）、当該フローチャートの処理を終了する。一方、制御部１１１は、つる部直線を検出できなかったと判定した場合には（ステップＳ３４：ＮＯ）、眼鏡を着用していないと判定し（ステップＳ３６）、当該フローチャートの処理を終了する。【００３９】
なお、ステップＳ３３の処理において説明した上記条件でつる部直線を正しく検出できればよいが、画像によっては、それでも正しく検出できない場合もある。そのような場合も考慮して、ステップＳ３４の処理では、検出された直線の本数によって、ＹＥＳ／ＮＯ判定をすることとしてもよい。例えば、（１）少なくとも一本の直線を検出した場合にＹＥＳと判定したり、（２）２本の直線を検出した場合にＹＥＳと判定したり、（３）２本以上の直線を検出した場合にＹＥＳと判定することとしてもよい。画像処理では、つる部を表す直線以外の直線（例えば、髪の生え際を表す直線）が検出される場合があり、例えば、３本以上の直線が検出されたときに、傾きが近い２本の直線をつる部を表す上側の直線と下側の直線として検出したり、過去につる部の上側の直線と下側の直線と判定した２本の直線と類似（マッチ）する２本の直線をつる部を表す上側の直線と下側の直線として検出したりすることもできる。【００４０】
また、１枚の画像だけでつる部直線の検出を行うのではなく、複数枚の画像でつる部直線の検出を行い、つる部直線の検出できた画像の数が所定数以上である場合に眼鏡を着用していると判定し、所定数未満である場合に眼鏡を着用していないと判定してもよい。これにより、画像処理により、仮に誤ってつる部直線を検出したとしても、そのようなノイズに影響されず、ロバストなつる部直線検出処理を行うことができる。【００４１】
図４のステップＳ１５に戻り、制御部１１１は、ステップＳ１４の処理結果に基づき、眼鏡着用か否かを判定し（ステップＳ１５）、眼鏡を着用していない場合には（ステップＳ１５：ＮＯ）、ステップＳ１１の処理に移行し、眼鏡を着用している場合には（ステップＳ１５：ＹＥＳ）、図６−図１５を用いて後述する眼鏡向き判定処理を行う（ステップＳ１６）。【００４２】
次に、制御部１１１は、図１６を用いて後述する顔向き判定処理を行う（ステップＳ１７）。【００４３】
次に、制御部１１１は、判定処理を継続するか否かを判定する（ステップＳ１８）。制御部１１１は、判定処理を継続すると判定した場合には（ステップＳ１８：ＹＥＳ）、ステップＳ１１の処理に移行し、判定処理を継続しないと判定した場合には（ステップＳ１８：ＮＯ）、当該フローチャートに示す判定処理を終了する。【００４４】
次に、図６−図１５を用いて、眼鏡向き判定処理について説明する。【００４５】
眼鏡のつる部は眼鏡によって形状が異なり上エッジ直線と下エッジ直線の傾きも異なることから、本実施例では、上エッジ直線と下エッジ直線でつる部の傾きが異なる３パターンの眼鏡について眼鏡着用判定処理の判定例を示す。図６（Ａ）はパターンＡの眼鏡のつる部を示し、図６（Ｂ）はパターンＢの眼鏡のつる部を示し、図６（Ｃ）はパターンＣの眼鏡のつる部を示す。【００４６】
パターンＡでは、上エッジ直線２００Ｕと下エッジ直線２００Ｌがほぼ平行でその間隔は約３ｍｍである。パターンＡの眼鏡の場合は、上エッジ直線２００Ｕの傾きと下エッジ直線２００Ｌの傾きはほぼ同じとなるので、上エッジ直線２００Ｕか下エッジ直線２００Ｌのどちらかしか検出できなかった場合でも、その傾きから眼鏡（顔）のピッチ角判定を行うことができる。【００４７】
パターンＢでは、つる部がレンズ部に近くなるとつる部幅が太くなり（約１０ｍｍ）、レンズ部から遠くなるとつる部幅が細くなっている（約２ｍｍ）。パターンＢの眼鏡の場合は、上エッジ直線２００Ｕの傾きと下エッジ直線２００Ｌの傾きは異なるので、上エッジ直線２００Ｕか下エッジ直線２００Ｌのどちらかしか検出しなかった場合に、そのエッジ直線から眼鏡（顔）のピッチ角を判定するためには、検出した１本のエッジ直線が、上エッジ直線２００Ｕであるか、下エッジ直線２００Ｌであるかが確定し、その上エッジ直線２００Ｕ（又は下エッジ直２００Ｌ線）の基準角度に対する傾きが求まっている必要がある。例えば、眼鏡（顔）のピッチ角０度のときに、上エッジ直線２００Ｕの傾き１０度、下エッジ直線２００Ｌの傾き０度と基準が決まっていて、検出した１本のエッジ直線が上エッジ直線２００Ｕか下エッジ直線２００Ｌのどちらかが判明している場合であれば、（上エッジ直線２００Ｕの傾きと下エッジ直線２００Ｌの傾きが異なるパターンＢの眼鏡着用時においても、）１本のエッジ直線から眼鏡（顔）のピッチ角を判定することができる。【００４８】
パターンＣでは、つる部がレンズ部に近くなるとつる部幅が太くなり（約７ｍｍ）、レンズ部から遠くなるとつる部幅が細くなっている（約４ｍｍ）。但し、パターンＢほど、急激に細くなっているわけではない。【００４９】
次に、図７のフローチャートを用いて、眼鏡向き判定処理について説明する。【００５０】
まず、眼鏡向き判定部１６としての制御部１１１は、ステップＳ３３の処理で検出したつる部直線が１本であるか否かを判定する（ステップＳ５１）。制御部１１１は、検出したつる部直線は１本であると判定したときには（ステップＳ５１：ＹＥＳ）、図８を用いて後述する第１ピッチ角判定処理を行い（ステップＳ５２）、ステップＳ５６の処理に移行する。一方、制御部１１１は、検出したつる部直線は１本ではないと判定したときには（ステップＳ５１：ＮＯ）、次いで、ステップＳ３３の処理で検出したつる部直線は２本であるか否かを判定する（ステップＳ５３）。【００５１】
制御部１１１は、検出したつる部直線は２本ではない（３本以上である）と判定したときには（ステップＳ５３：ＮＯ）、図１１を用いて後述するつる部直線抽出処理を行い（ステップＳ５４）、次いで、図１２を用いて後述する第２ピッチ角判定処理を行って（ステップＳ５５）、ステップＳ５６の処理に移行する。一方、制御部１１１は、検出したつる部直線は２本であると判定したときには（ステップＳ５３：ＹＥＳ）、図１２を用いて後述する第２ピッチ角判定処理を行って（ステップＳ５５）、ステップＳ５６の処理に移行する。【００５２】
次いで、制御部１１１は、図１５を用いて後述するヨー角判定処理を行う（ステップＳ５６）。【００５３】
次いで、制御部１１１は、ステップＳ５２の第１ピッチ角判定処理又はステップＳ５５の第２ピッチ角判定処理で判定された眼鏡のピッチ角と、ステップＳ５６のヨー角判定処理で判定された眼鏡のヨー角を示す眼鏡方向情報を生成し（ステップＳ５７）、眼鏡向き判定処理を終了する。【００５４】
次に、図８のフローチャートを用いて、第１ピッチ角判定処理について説明する。第１ピッチ角判定処理は、つる部直線が１本のとき、その傾きから眼鏡向きのピッチ方向の角度を判定する処理である。【００５５】
まず、眼鏡向き判定部１６としての制御部１１１は、着用眼鏡のタイプはタイプＡか否かを判定する（ステップＳ７１）。具体的には、例えば、予めユーザや顔向き判定を行う対象者等に何れのタイプの眼鏡を着用しているかを入力してもらい、その入力結果に基づいて判定する。【００５６】
制御部１１１は、タイプＡではないと判定した場合には（ステップＳ７１：ＮＯ）、つる部直線が上エッジ又は下エッジかが確定し、基準角度に対する傾きが定まっているか否かを判定する（ステップＳ７２）。具体的には、例えば、制御部１１１は、図７のステップＳ５１の処理において、検出したつる部直線が２本であったために「ＮＯ」と判定したが、判定装置Ｄの設計者が処理負荷を軽減するために２本のつる部直線ではなく上エッジまたは下エッジのみ（すなわち１本のつる部直線）で、ピッチ角を判定させたい場合に、当該設計者は上エッジまたは下エッジの何れかを予め設定しておく。このように１本のつる部直線でピッチ角を判定させるために設計者が予め上エッジまたは下エッジを設定している場合には、制御部１１１は、つる部直線が上エッジ又は下エッジかが確定していると判定する。また、処理対象であるタイプの眼鏡の上エッジ又は下エッジ（設計者が予め設定したエッジ）について基準角度に対応する傾きを示すテーブル情報が事前に記憶部１１２に記憶されているか否かに応じて、制御部１１１は、基準角度に対する傾きが定まっているか否かを判定する。つまり、２本のつる部直線が検出された場合において、設計者が処理負荷の軽減のために１本のつる部直線でピッチ角を判定させたい場合に、設計者は上エッジ又は下エッジを予め設定しておくとともに、当該設定したエッジについて基準角度に対応する傾きを示すテーブル情報を用意しておくことにより、ステップＳ７２の処理で制御部１１１に「ＹＥＳ」と判定させ、１本のつる部直線でピッチ角を判定させることができる。制御部１１１は、「ＮＯ」であると判定した場合には（ステップＳ７２：ＮＯ）、第１ピッチ角判定処理を終了する。一方、制御部１１１は、「ＹＥＳ」であると判定した場合には（ステップＳ７２：ＹＥＳ）、ステップＳ７３の処理に移行する。【００５７】
また、制御部１１１は、ステップＳ７１の処理で、タイプＡであると判定した場合には（ステップＳ７１：ＹＥＳ）、ステップＳ７３の処理に移行する。【００５８】
次いで、直線傾き算出部１７としての制御部１１１は、ステップＳ３３の処理で検出したつる部直線の傾きを算出する（ステップＳ７３）。【００５９】
次いで、ピッチ方向判定部１８としての制御部１１１は、つる部直線の傾きに基づき、ピッチ角判定を行い（ステップＳ７３）、第１ピッチ角判定処理を終了する。【００６０】
ここで、つる部直線の傾きに基づくピッチ角判定について具体的に説明する。パターンＡの眼鏡の向きとつる部上エッジ直線と下エッジ直線の傾きを図９に示す。パターンＡの眼鏡では、上エッジ直線２００Ｕの傾き（Ｕ）と下エッジ直線２００Ｌの傾き（Ｌ）はほぼ同じなので、前述したように、上エッジ直線２００Ｕまたは下エッジ直線２００Ｌのどちらかの傾きから、ピッチ角を判定することができる。ここで、検出したエッジ直線の傾きをＥ１とすると、
・Ｅ１≧１５[度]          →  上１０度以上
・０[度]≦Ｅ１＜１５[度]  →  上下０度
・Ｅ１＜０[度]            →  下１０度未満
とそれぞれ条件判定することにより、眼鏡の向き（ピッチ角）を判定することができる。【００６１】
このように、つる部直線の傾きと眼鏡のピッチ角には相関があることから、次のように、つる部直線の傾きについて適切に閾値を設定することにより、制御部１１１はつる部直線の傾きから眼鏡のピッチ角を判定することができる。
・  Ｅ１≧Ｕ２[度]              →  ピッチ角上２０度以上
・  Ｕ１[度]≦Ｅ１＜Ｕ２[度]    →  ピッチ角上１０度
・  Ｌ１[度]≦Ｅ１＜Ｕ１[度]    →  ピッチ角上下０度
・  Ｌ２[度]≦Ｅ１＜Ｌ１[度]    →  ピッチ角下１０度
・  Ｅ１＜Ｌ２[度]              →  ピッチ角下２０度未満
（Ｕ２＞Ｕ１＞Ｌ１＞Ｌ２）【００６２】
次に、図１０のフローチャートを用いて、つる部直線抽出処理について説明する。つる部直線抽出処理は、つる部直線が３本以上の場合、２本のつる部直線を抽出する処理である。２本のつる部直線を抽出することができた場合には、当該２本のつる部直線に基づいて、第２ピッチ角判定処理によりピッチ角が判定される。【００６３】
まず、眼鏡向き判定部１６としての制御部１１１は、過去に記憶したつる部直線情報があるか否かを判定する（ステップＳ９１）。つる部直線情報とは、適切に２本のつる部直線を検出（ステップＳ３３）又は抽出（ステップＳ５４）できた際の情報であって、２本の直線の傾き、長さ、間隔、位置関係等を示す情報である。つる部直線情報としては、事前に予め記憶しておいた情報を用いたり、現在処理している直線について記憶した情報（直線の傾きをステップＳ９４の処理で記憶し、直線の長さをステップＳ９７の処理で記憶し、直線間の間隔をステップＳ９８の処理で記憶する）を用いたりする。制御部１１１は、過去に記憶したつる部直線情報はないと判定した場合には（ステップＳ９１：ＮＯ）、ステップＳ９４の処理に移行する。一方、制御部１１１は、過去に記憶したつる部直線情報があると判定した場合には（ステップＳ９１：ＹＥＳ）、次いで、つる部直線情報を利用するか否かを判定する（ステップＳ９２）。【００６４】
制御部１１１は、つる部直線情報を利用しないと判定した場合には（ステップＳ９２：ＮＯ）、ステップＳ９４の処理に移行する。一方、制御部１１１は、つる部直線情報を利用すると判定した場合には（ステップＳ９２：ＹＥＳ）、過去に記憶したつる部直線情報を利用して２本のつる部直線を抽出し（ステップＳ９３）、つる部直線抽出処理を終了する。具体的には、つる部直線情報が示す情報に最も類似する２本のつる部直線を抽出する。例えば、上エッジ直線２００Ｕと下エッジ直線２００Ｌの傾きの差が記憶したつる部直線情報の示す２本のつる部直線の傾きの差と近いものを選択する処理や、その差が大幅に超過する、もしくは大幅に小さい２本の直線の一方を除外する処理等を行うことができる。【００６５】
一方、制御部１１１は、ステップＳ９４の処理において、ステップＳ３３の処理で抽出された３本以上のつる部直線の中で、他の直線より傾きが大きく異なる直線を排除する（ステップＳ９４）。例えば、誤ってつる部直線として検出された髪の生え際などの場合、その傾きは実際のつる部直線の傾きと比較して大きく（急勾配）なるため、そのような直線を排除する。【００６６】
次いで、制御部１１１は、適切な２本のつる部直線を抽出できたか否かを判定する（ステップＳ９５）。具体的には、この処理では、２本のつる部直線を抽出でき、且つ、当該２本のつる部直線がつる部直線として長さ、傾き、間隔等が適切であるかが判定される。制御部１１１は、適切な２本のつる部直線を抽出できたと判定した場合には（ステップＳ９５：ＹＥＳ）、つる部直線抽出処理を終了する。一方、制御部１１１は、適切な２本のつる部直線を抽出できなかったと判定した場合には（ステップＳ９５：ＮＯ）、次いで、他のつる部直線より長さが大きく異なる直線を排除する（ステップＳ９６）。【００６７】
次いで、制御部１１１は、ステップＳ９５の処理と同様に、適切な２本のつる部直線を抽出できたか否かを判定する（ステップＳ９７）。制御部１１１は、適切な２本のつる部直線を抽出できたと判定した場合には（ステップＳ９７：ＹＥＳ）、つる部直線抽出処理を終了する。一方、制御部１１１は、適切な２本のつる部直線を抽出できなかったと判定した場合には（ステップＳ９７：ＮＯ）、次いで、不適切な直線間の距離を作る直線を排除する（ステップＳ９８）。例えば、直線同士が作る複数の間隔において、他と大きく外れた間隔を作る直線を除去する。【００６８】
次いで、制御部１１１は、ステップＳ９５の処理と同様に、適切な２本のつる部直線を抽出できたか否かを判定する（ステップＳ９９）。制御部１１１は、適切な２本のつる部直線を抽出できたと判定した場合には（ステップＳ９９：ＹＥＳ）、つる部直線抽出処理を終了する。一方、制御部１１１は、適切な２本のつる部直線を抽出できなかったと判定した場合には（ステップＳ９９：ＮＯ）、図４のステップＳ１１の処理に移行する。【００６９】
なお、つる部直線抽出処理では、適切な２本のつる部直線（上エッジ直線２００Ｕ、下エッジ直線２００Ｌ）を抽出する処理の一例について説明したが、適切な２本のつる部直線を抽出する方法は個々で説明した方法以外の他の方法であっても構わない。【００７０】
次に、図１１のフローチャートを用いて、第２ピッチ角判定処理について説明する。第２ピッチ角判定処理は、つる部直線が２本のとき、それらの傾きから眼鏡向きのピッチ方向の角度を判定する処理である。【００７１】
まず、ピッチ方向判定部１８としての制御部１１１は、２本のつる部直線から眼鏡パターンを判定し、当該眼鏡パターンを示すパターン情報を生成する（ステップＳ１１１）。具体的には、２本のつる部直線の傾き又は２本のつる部直線の間隔の少なくとも何れかに基づいて、眼鏡パターンを判定する。例えば、上エッジ直線の傾きＥＵと、下エッジ直線の傾きＥＬがほぼ等しい（傾きの差が３度未満）場合にはパターンＡであると判定する。また、ＥＵとＥＬの差が３度以上８度未満である場合にはパターンＢであると判定する。更に、ＥＵとＥＬの差が８度以上１５度未満である場合にはパターンＣであると判定する。この根拠について以下説明する。【００７２】
図１２は、パターンＢの眼鏡向きとつる部上エッジ直線２００Ｕと下エッジ直線２００Ｌの傾きの関係の一例を示す図である。図１２では、つる部上エッジ直線２００Ｕの傾きＥＵと、つる部下エッジ直線２００Ｌの傾きＥＬの差は、次の通りとなる。 
・ピッチ角上２０度時：約７度〜約９度
・ピッチ角上１０度時：約９度〜約１０度
・ピッチ角０度時    ：約８度〜約１４度
・ピッチ角下１０度時：約８度〜約１５度
・ピッチ角下２０度時：約１０度〜約１３度
つる部上エッジ直線２００Ｕの傾きＥＵと、つる部下エッジ直線２００Ｌの傾きＥＬの差が約７度〜約１５度であれば、パターンＢの眼鏡と判定することができる。同様に、図９で示したように、つる部上エッジ直線２００Ｕの傾きＥＵと、つる部下エッジ直線２００Ｌの傾きＥＬの差がほぼ同じ（約０度）であれば、パターンＡの眼鏡と判定することができる。【００７３】
図１３は、パターンＣの眼鏡向きとつる部上エッジ直線２００Ｕと下エッジ直線２００Ｌの傾きの関係の一例を示す図である。図１３では、つる部上エッジ直線２００Ｕの傾きＥＵと、つる部上エッジ直線２００Ｌの傾きＥＬの差は、次の通りとなる。 
・ピッチ角上２０度時：約４度〜約５度
・ピッチ角上１０度時：約７度〜約８度
・ピッチ角０度時    ：約３度〜約７度
・ピッチ角下１０度時：約３度〜約４度
・ピッチ角下２０度時：約５度〜約６度
つる部上エッジ直線２００Ｕの傾きＥＵと、つる部下エッジ直線２００Ｌの傾きＥＬの差が約３度〜約７度であれば、パターンＣの眼鏡と判定することができる。また、つる部上エッジ直線２００Ｕの傾きＥＵと、つる部下エッジ直線２００Ｌの傾きＥＬの差が約７度〜約８度のときは、ピッチ角情報を用いて眼鏡パターンを判定することができる（例えば、差が約７度でピッチ角上２０度時では、パターンＢの眼鏡、差が約７度でピッチ角１０度時では、パターンＣの眼鏡等）。【００７４】
なお、眼鏡パターンを判定する処理は、１枚の画像だけで判定するのではなく、複数枚の画像を用いて判定することとしてもよく、そうした場合、判定精度が向上する。【００７５】
また、２本のつる部直線の間隔に基づいて眼鏡のパターンを判定する場合には、間隔が一定の場合にはパターンＡの眼鏡と判定し、一端の間隔と他端の間隔が異なり且つ当該間隔が閾値以上である場合にパターンＢの眼鏡と判定し、一端の間隔と他端の間隔が異なり且つ当該間隔が閾値未満である場合にパターンＣの眼鏡と判定することができる。【００７６】
図１１に戻り、制御部１１１は、過去に記憶したつる部直線傾き情報があるか否かを判定する（ステップＳ１１２）。過去がどの程度の過去であるかについては適宜設定することができ、例えば、１秒前であってもよいし、１０ｆｐｓで撮影している場合の５枚前であってもよい（つる部直線傾き情報の記憶は、毎画像行ってもよいし、周期的（数フレーム毎）に行ってもよい）。また、つる部直線傾き情報とは、つる部直線情報に含まれる２本のつる部直線の傾きを示す情報である。制御部１１１は、過去に記憶したつる部直線傾き情報がないと判定した場合には（ステップＳ１１２：ＮＯ）、現在のつる部直線傾き情報を記憶部１１２に記憶させ（ステップＳ１１５）、ステップＳ１１６の処理に移行する。一方、制御部１１１は、過去に記憶したつる部直線傾き情報があると判定した場合には（ステップＳ１１２：ＹＥＳ）、過去のつる部直線の傾きと現在のつる部直線の傾きは異なるか否かを判定する（ステップＳ１１３）。具体的には、過去の２本のつる部直線同士の傾きの差と、現在の２本のつる部直線同士の傾きの差を比較し、タイプの異なる眼鏡であるか否かを判定する。【００７７】
制御部１１１は、過去のつる部直線の傾きと現在のつる部直線の傾きが異なると判定した場合には（ステップＳ１１３：ＹＥＳ）、眼鏡の着脱あり（過去に掛けていた眼鏡のタイプと異なるタイプの眼鏡に掛け替えた）と判定し（ステップＳ１１４）、現在のつる部直線傾き情報を記憶部１１２に記憶させる（ステップＳ１１５）、ステップＳ１１６の処理に移行する。一方、制御部１１１は、過去のつる部直線の傾きと現在のつる部直線の傾きが異ならないと判定した場合には（ステップＳ１１３：ＮＯ）、ステップＳ１１６の処理に移行する。【００７８】
次に、ピッチ方向判定部１８としての制御部１１１は、２本のつる部直線の傾きに基づき、ピッチ角判定を行う（ステップＳ１１６）。【００７９】
ここで、２本のつる部直線の傾きに基づくピッチ角判定について具体的に説明する。まず、図１２を参照して、パターンＢの眼鏡のピッチ角とつる部上エッジ直線と下エッジ直線の傾きについて検討する。制御部１１１は、つる部上エッジ直線の傾きをＥＵ、つる部下エッジ直線の傾きをＥＬとすると、
・「ＥＵ≧３７[度]」且つ「ＥＬ≧２８[度]」                          →上２０度以上
・「２８．５[度]≦ＥＵ＜３７[度]」且つ「１５[度]≦ＥＬ＜２８[度]」  →上１０度
・「１０[度]≦ＥＵ＜２８．５[度]」且つ「０[度]≦ＥＬ＜１５[度]」    →上下０度
・「０[度]≦ＥＵ＜１０[度]」且つ「−１５[度]≦ＥＬ＜０[度]」        →下１０度
・「ＥＵ＜０[度]」且つ「ＥＬ＜−１５[度]」                          →下２０度未満
とそれぞれ条件判定することにより、眼鏡のピッチ角を判定することができる。【００８０】
また、制御部１１１は、パターンＣの眼鏡の場合も同様に、
・「ＥＵ≧２５．５[度]」且つ「ＥＬ≧２０[度]」                      →上２０度以上
・「２０[度]≦ＥＵ＜２５．５[度]」且つ「１０[度]≦ＥＬ＜２０[度]」  →上１０度
・「０[度]≦ＥＵ＜２０[度]」且つ「０[度]≦ＥＬ＜１０[度]」          →上下０度
・「−１０[度]≦ＥＵ＜０[度]」且つ「−１０[度]≦ＥＬ＜０[度]」      →下１０度
・「ＥＵ＜−１０[度]」且つ「ＥＬ＜−１０[度]」                      →下２０度未満
とそれぞれ条件判定することにより、眼鏡のピッチ角を判定することができる。【００８１】
なお、パターンＡについては、上エッジ直線２００Ｕと下エッジ直線２００Ｌの傾きはほぼ同一であるので、何れか一方のエッジ直線の傾きについてステップＳ７４と同様の判定を行うことにより眼鏡のピッチ角を判定することができる。【００８２】
また、一般的には、つる部上エッジ直線の傾きＥＵ、つる部下エッジ直線の傾きＥＬに関する次の条件式から眼鏡のピッチ角を判定することができる。
・「ＥＵ≧Ｕ２Ｕ[度]」且つ「ＥＬ＞Ｕ２Ｄ」                          →上２０度以上
・「Ｕ１Ｕ[度]≦ＥＵ＜Ｕ２Ｕ[度]」且つ「Ｕ１Ｌ[度]≦ＥＬ＜Ｕ２Ｌ[度]」→上１０度
・「Ｌ１Ｕ[度]≦ＥＵ＜Ｕ１Ｕ[度]」且つ「Ｌ１Ｌ[度]≦ＥＬ＜Ｕ１Ｌ[度]」→上下０度
・「Ｌ２Ｕ[度]≦ＥＵ＜Ｌ１Ｕ[度]」且つ「Ｌ２Ｌ[度]≦ＥＬ＜Ｌ１Ｌ[度]」→下１０度
・「ＥＵ＜Ｌ２Ｕ[度]」且つ「ＥＬ＜Ｌ２Ｌ[度]」                      →下２０度未満
（但し、Ｕ２Ｕ＞Ｕ１Ｕ＞Ｌ１Ｕ＞Ｌ２Ｕ、Ｕ２Ｌ＞Ｕ１Ｌ＞Ｌ１Ｌ＞Ｌ２Ｌ）【００８３】
なお、眼鏡（顔）のピッチ角が判定できれば、そのピッチ角のつるエッジの傾き情報を保存して、以後、上記条件式の閾値の設定に用いてもよい。  【００８４】
次に、制御部１１１は、ステップＳ１１６の処理で判定したピッチ角を、２本のつる部直線の傾きと対応付けて記憶部１１２に記憶させ（ステップＳ１１７）、第２ピッチ角判定処理を終了する。【００８５】
次に、図１４のフローチャートを用いて、ヨー角判定処理について説明する。ヨー角判定処理は、つる部直線の傾きから眼鏡向きのヨー方向の角度（ヨー角）を判定する処理である。【００８６】
まず、ヨー方向判定部１９としての制御部１１１は、ステップＳ７４又はステップＳ１１６の処理で判定したピッチ角がヨー角を判定可能なピッチ角であるか否かを判定する（ステップＳ１３１）。これは、例えば、図１５に示すように、上下０度時のつる部直線の傾きでは、ヨー角が変化しても、つる部直線の傾きが変化しないため、ヨー角の判定が困難であることに基づく。したがって、制御部１１１は、つる部直線の傾きが水平に近い場合には、ヨー角判定は行えないと判定する。【００８７】
制御部１１１は、ヨー角を判定可能なピッチ角ではないと判定した場合には（ステップＳ１３１：ＮＯ）、ヨー角判定処理を終了する。一方、制御部１１１は、ヨー角を判定可能なピッチ角であると判定した場合には（ステップＳ１３１：ＹＥＳ）、次いで、２本のつる部直線でヨー角判定をするか否かを判定する（ステップＳ１３２）。【００８８】
このとき、制御部１１１は、ステップＳ５２の第１ピッチ角判定処理でピッチ角を判定した場合、又は第２ピッチ角判定処理でパターンＡの眼鏡について上エッジ直線２００Ｕ又は下エッジ直線２００Ｌの何れか一方の直線に基づいてピッチ角を判定した場合には２本のつる部直線でヨー角判定をしない（すなわち、１本のつる部直線でヨー角判定をする）と判定し（ステップＳ１３２：ＮＯ）、１本のつる部直線の傾きに基づきヨー角を判定して（ステップＳ１３３）、ヨー角判定処理を終了する。【００８９】
１本のつる部直線の傾きに基づきヨー角を判定する場合について説明する。ここでは、図９に基づいてパターンＡの眼鏡についてヨー角を判定する場合について説明する。制御部１１１は、つる部直線の傾きをＥ１とすると、眼鏡のピッチ角が上下０度のとき、例えば、
・Ｅ１≧１０[度]      →眼鏡のヨー角左３０度
・Ｅ１＜１０[度]      →眼鏡のヨー角左４０度以上
とそれぞれ条件判定することにより、眼鏡のヨー角を判定することができる。この例では、左４０度と左５０度で傾きの違いがあまり生じないため、Ｅ１＜１０[度]のときは、左４０度以上となったが、傾きに違いのあるピッチ角が上下０度以外の場合では、左４０度と左５０度の判別も可能となる。【００９０】
また、制御部１１１は、眼鏡のピッチ角が上１０度のとき、例えば、
・Ｅ１≧２５[度]            →眼鏡のヨー角左３０度
・２０[度]≦Ｅ１＜２５[度]  →眼鏡のヨー角左４０度
・Ｅ１＜２０[度]            →眼鏡のヨー角左５０度
とそれぞれ条件判定することにより、眼鏡のヨー角を判定することができる。【００９１】
一方、制御部１１１は、ステップＳ５５の第２ピッチ角判定処理でパターンＢ又はパターンＣの眼鏡についてピッチ角を判定した場合には２本のつる部直線でヨー角判定をすると判定し（ステップＳ１３２：ＹＥＳ）、２本のつる部直線の傾きに基づきヨー角を判定して（ステップＳ１３４）、ヨー角判定処理を終了する。【００９２】
２本のつる部直線の傾きに基づきヨー角を判定する場合について説明する。ここでは、図１２に基づいてパターンＢの眼鏡についてヨー角を判定する場合について説明する。制御部１１１は、つる部上エッジ直線の傾きをＥＵ、つる部下エッジ直線の傾きをＥＬとすると、眼鏡のピッチ角が上下０度のとき、例えば、 
・「ＥＵ≧２５[度]」且つ「ＥＬ＞１３[度]」                  →眼鏡のヨー角左３０度
・「１８[度]≦ＥＵ＜２５[度]」且つ「９[度]≦ＥＬ＜１３[度]」→眼鏡のヨー角左４０度
・「ＥＵ＜１８[度]」且つ「ＥＬ＜９[度]                      →眼鏡のヨー角左５０度
とそれぞれ条件判定することにより、眼鏡のヨー角を判定することができる
また、制御部１１１は、眼鏡のピッチ角が上１０度のとき、例えば、 
・「ＥＵ≧３４[度]」且つ「ＥＬ＞２４[度]」                    →眼鏡のヨー角左３０度
・「３０[度]≦ＥＵ＜３４[度]」且つ「２２[度]≦ＥＬ＜２４[度]」→眼鏡のヨー角左４０度
・「ＥＵ＜３０[度]」且つ「ＥＬ＜２２[度]                      →眼鏡のヨー角左５０度
とそれぞれ条件判定することにより、眼鏡のヨー角を判定することができる
更に、制御部１１１は、眼鏡のピッチ角が上２０度のとき、例えば、 
・「ＥＵ≧５０[度]」且つ「ＥＬ＞４０[度]」                    →眼鏡のヨー角左３０度
・「４２[度]≦ＥＵ＜５０[度]」且つ「３３[度]≦ＥＬ＜４０[度]」→眼鏡のヨー角左４０度
・「ＥＵ＜４２[度]」且つ「ＥＬ＜３３[度]                      →眼鏡のヨー角左５０度
とそれぞれ条件判定することにより、眼鏡のヨー角を判定することができる
更にまた、制御部１１１は、眼鏡のピッチ角が下２０度のとき、例えば、 
・「ＥＵ＜−１２[度]」且つ「ＥＬ＜−２３[度]」                →眼鏡のヨー角左３０度
・「−１２[度]≦ＥＵ＜−１０[度]」且つ「−２３[度]≦ＥＬ＜−２０[度]」→眼鏡のヨー角左４０度
・「ＥＵ≧−１０[度]」且つ「ＥＬ≧−２０[度]」                →眼鏡のヨー角左５０度
とそれぞれ条件判定することにより、眼鏡のヨー角を判定することができる。
但し、眼鏡のピッチ角が下１０度のときは、ヨー角が変化しても、ＥＵ及びＥＬに大きな変化はないためこの例では、ヨー角の判定はできない。 【００９３】
次に、図１６のフローチャートを用いて、顔向き判定処理について説明する。なお、顔のヨー角は、眼鏡のヨー角と一致するので眼鏡のヨー角を顔のヨー角と判定する。顔向き判定処理では、顔のピッチ角を、眼鏡のピッチ角に基づいて判定する。【００９４】
顔向き判定部２１としての制御部１１１は、顔向き基準情報を参照し、ステップＳ７４又はステップＳ１１６の処理で判定した眼鏡のピッチ角から顔のピッチ角を判定する（ステップＳ１５１）。一般的に眼鏡のピッチ角から顔のピッチ角を判定する場合、鼻あての位置や眼鏡の掛け方等から眼鏡のピッチ角と顔のピッチ角は一致しない。つる部直線の傾きがほぼ水平である場合でも、ある個人では顔向きが若干上向きであったり、ある個人では顔向きが若干下向きであったりする。そのため、眼鏡のピッチ角が上下０度の場合の顔のピッチ角を求めるための基準情報が必要となる。本実施例では、この基準情報を顔向き基準情報という。例えば、眼鏡のピッチ角が上下０度のときの顔のピッチ角が「＋２度」の個人については、「＋２度」という顔向き基準情報を生成する。そして、制御部１１１は眼鏡のピッチ角が上１０度と判定した場合には、顔のピッチ角を上１２度と判定する。なお、定期的に顔向き基準情報を補正することにより、眼鏡がズレても正しく顔のピッチ角を判定することができる。【００９５】
次いで、方向情報生成部２２としての制御部１１１は、顔の向き（ピッチ角及びヨー角）を示す顔方向情報を生成し（ステップＳ１５２）、顔向き判定処理を終了する。【００９６】
以上説明したように、本実施例の判定装置Ｄは、制御部１１１（「検出手段」、「生成手段」の一例）が、眼鏡（「装着物」の一例）を装着した頭部を側面から撮影した画像における眼鏡のつる部（「特徴部」の一例）の傾きを検出し、検出したつる部の傾きから顔の向いている方向を示す顔方向情報を生成する。【００９７】
したがって、本実施例の判定装置Ｄによれば、カメラＣに対して顔が横方向を向いている場合でも、カメラＣにより頭部を撮影された画像に基づいて顔の向いている方向を示す顔方向情報を作成することができる。【００９８】
また、制御部１１１は、つる部の傾きから眼鏡の向いている方向を示す眼鏡方向情報（「装着物方向情報」の一例）を生成し、眼鏡が基準方向を向くときの顔が向いている方向を示す顔向き基準情報（「差分情報」の一例）に基づいて、眼鏡方向情報を補正して顔方向情報を生成する。これにより、眼鏡の向いている方向と顔の向いている方向が一致しない場合にも、正しい顔方向情報を生成することができる。【００９９】
［５．変形例］
次に、上記実施例の変形例について説明する。なお、以下に説明する変形例は適宜組み合わせることができる。【０１００】
［４．１．変形例１］
上記実施例では、制御部１１１が、つる部直線の傾きに基づいて顔の向きを判定したが、更につる部直線の長さを判定要素に加えて顔の向きを判定することとしてもよい。この変形例は、頭部におけるつる部が位置する面がカメラに正対するほど（例えば、顔を左に向けると右のつる部が位置する面がカメラに正対するほど）、画像におけるつる部直線が長くなることに基づく。具体的には、制御部１１１は、顔（眼鏡）のヨー角と画像におけるつる部直線の長さを対応付けて記憶部１１２に記憶させておき、検出したつる部直線の長さに対応する顔（眼鏡）のヨー角と、上記実施例で示したようにつる部直線の傾きに基づいて取得される顔（眼鏡）のヨー角とに基づいて最終的な顔（眼鏡）のヨー角を判定することとしてもよい。例えば、両方のヨー角の平均値を最終的なヨー角とすることができる。【０１０１】
［４．２．変形例２］
制御部１１１（「記憶制御手段１１１Ｃ」の一例）は、顔方向情報を生成した場合に、つる部直線の傾きを示す傾き情報と顔方向情報を対応付けて記憶部１１２（「記憶手段」の一例）に記憶させることとしてもよい。このとき、制御部１１１は、新たに検出したつる部直線の傾きとの差分が閾値以下である傾きを示す傾き情報が記憶部１１２に記憶されている場合に、当該傾き情報と対応付けて記憶されている顔方向情報を取得することとしてもよい。これにより、制御部１１１は、新たに検出されたつる部直線の傾きが、過去に顔方向情報を生成した際のつる部直線の傾きとほぼ同じ場合（差分が閾値以下の場合）には、新たに顔方向情報を生成しなくてすむため、つる部直線の傾きから顔方向情報を生成するための処理に係る処理負担を軽減することができる。【０１０２】
また、上記実施例では、制御部１１１はつる部直線（「特徴部のエッジを示す線」の一例）を検出し、２本のつる部直線を検出した場合に、２本のつる部直線の傾き及び２本のつる部直線の間隔の少なくとも一方に基づいて、眼鏡のパターンを示すパターン情報（「種類情報」の一例）を生成する。そこで、制御部１１１（「記憶制御手段」の一例）が、傾き情報及び顔方向情報にパターン情報を更に対応付けて記憶部１１２に記憶させ、新たにパターン情報を生成した場合に、記憶部１１２において当該生成したパターン情報と同じ種類を示すパターン情報が対応付けられている顔方向情報を取得することとしてもよい。これにより、眼鏡につる部の形状が異なる複数の種類があり、それぞれの種類を２本の線の傾き又は間隔の少なくとも何れかで特定できる場合に、種類毎に、つる部直線の傾きと顔方向情報を対応付けて記憶させることができる。したがって、過去に顔方向情報を生成した際の眼鏡と同種類の眼鏡を装着している場合において、新たに検出されたつる部直線の傾きが、過去に顔方向情報を生成した際のつる部直線の傾きとほぼ同じ場合には、新たに顔方向情報を生成しなくてすむため、つる部直線の傾きから顔方向情報を生成するための処理に係る処理負担を軽減することができる。【０１０３】
［４．３．変形例３］
制御部１１１（「記憶制御手段」の一例）は、生成した顔方向情報を記憶部１１２（「記憶手段」の一例）に記憶させ、新たに顔方向情報を生成する際に当該顔方向情報の示す方向として複数の候補が存在する場合に、所定期間内に記憶された少なくとも１の顔方向情報が示す方向に最も近い方向を示す顔方向情報を生成することとしてもよい。また、所定期間内に記憶された少なくとも１の顔方向情報として、最新の顔方向情報としてもよい。例えば、制御部１１１は、検出したつる部直線の傾きが閾値とほぼ同じ値の場合であり、当該閾値で区別される顔の向き（角度）の何れに判定する場合、記憶部１１２に記憶されている最新の顔方向情報が示す方向（角度）に近い角度を判定結果とする。これにより、顔方向情報の示す方向として複数の候補が存在する場合であっても、最新の顔方向情報の示す方向とかけ離れた方向を示す顔方向情報が生成されることを防止することができる。【０１０４】
［４．４．変形例４］
上記実施例では、眼鏡のつる部のエッジを示す直線の傾きに基づいて眼鏡（顔）の向きを判定するが、マスクの耳に掛ける紐のエッジを示す直線の傾きに基づいてマスク（顔）の向きを判定することとしてもよい。【０１０５】
［４．５．変形例５］
上記実施例では、眼鏡のピッチ角が上下０度の場合の顔のピッチ角を求めるための顔向き基準情報を用いて眼鏡方向情報を補正することにより、顔の向いている方向を示す顔方向情報を生成したが、つる部エッジ直線の傾きから顔の向いている方向（ピッチ角及びヨー角）を求めることとしてもよい。具体的には、実験により顔の向きを基準方向（例えば、ピッチ角０度、ヨー角３０度）を基準に、ピッチ角及びヨー角を１０度ずつ変化するように変えた場合の、つる部エッジ直線の傾きを計測して、当該ピッチ角及びヨー角と対応付けることにより、つる部エッジ直線の傾きから、顔の向いている方向（ピッチ角及びヨー角）を特定できるようにつる部エッジ直線の傾きについての閾値を設定しておくこととする。例えば、つる部上エッジ直線の傾きが１５度以上３５度未満であり、且つ、つる部下エッジ直線の傾きが７度以上２０度未満の場合には、顔の向きはピッチ角１０度、ヨー角３０度であると判定するような傾きについての閾値を設定する。これを眼鏡のパターン毎に行うこととする。そして、制御部１１１は、つる部上エッジ直線及びつる部下エッジ直線の傾きを取得したら、閾値判定を行うことにより、顔の向いている方向を特定し、顔方向情報を生成することとする。これにより、つる部エッジ直線の傾きから直接的に顔方向情報を生成することができる。【０１０６】
また、カメラＣを自動車のセンターコンソールに運転手の頭部を撮影できる向きに設置し、制御部１１１が、カメラＣが撮影した画像に基づいて運転手の顔の向きを特定する場合についても同様に、運転手が正面（自動車の進行方向）を向いている場合の顔の向き（運転手の頭部を連続して撮影して、統計的に支配的な顔の向き）を基準方向（例えば、ピッチ角上１０度、ヨー角２０度。これらの角度は、カメラＣを設置した際の仰角等から求められる）として、当該基準方向を基準に、顔の向きをピッチ角及びヨー角を１０度ずつ変化するように変えた場合の、つる部エッジ直線の傾きを計測して、当該ピッチ角及びヨー角と対応付けることにより、つる部エッジ直線の傾きから、顔の向いている方向（ピッチ角及びヨー角）を特定できるようにつる部エッジ直線の傾きについての閾値を設定しておくこととする。これを眼鏡のパターン毎に行うこととする。この場合も、制御部１１１は、つる部エッジ直線の傾きを取得したら、つる部エッジ直線の傾きについての閾値判定を行うことにより、顔の向いている方向を特定し、顔方向情報を生成することとする。【０１０７】
［４．６．変形例６］
上記実施例では、眼鏡のつるのパターンがパターンＡ、パターンＢ、パターンＣである場合について説明したが、これら以外のつるの形状が特殊なケースについて図１７を用いて説明する。【０１０８】
図１７（Ａ）における符号３０１で示す眼鏡のつるは、上エッジ直線、下エッジ直線が検出できることから、上記実施例と同様の処理が可能である。図１７（Ａ）における符号３０３についても、エッジ直線が端にはないが、つる部中央部の複数本の水平な直線をエッジ直線として検出することにより、上記実施例と同様の処理が可能である。符号３０２、３０４で示すような特殊な眼鏡の場合でも、つる部から、上エッジ直線や下エッジ直線を検出することにより、上記実施例と同様の処理が可能である。例えば、図１７（Ｂ）における符号３０２で示す眼鏡の場合、つる領域でエッジ検出を行い、それらのエッジに接する直線を求めれば、それらの直線が、眼鏡のつるの上エッジ直線２００Ｕ、下エッジ直線２００Ｌとなり、同様の処理が可能である。
【符号の説明】
【０１０９】
１  情報生成装置
１１１Ａ  検出手段
１１１Ｂ  生成手段
１１１Ｃ  記憶制御手段
１１１Ｄ  記憶手段
Ｄ  顔向き判定装置
１１１  制御部
１１２  記憶部
１１３  通信部
１１４  表示部
１１５  操作部
【図１】
2017130407.tif 000003
【図２】
2017130407.tif 000004
【図３】
2017130407.tif 000005
【図４】
2017130407.tif 000006
【図５】
2017130407.tif 000007
【図６】
2017130407.tif 000008
【図７】
2017130407.tif 000009
【図８】
2017130407.tif 000010
【図９】
2017130407.tif 000011
【図１０】
2017130407.tif 000012
【図１１】
2017130407.tif 000013
【図１２】
2017130407.tif 000014
【図１３】
2017130407.tif 000015
【図１４】
2017130407.tif 000016
【図１５】
2017130407.tif 000017
【図１６】
2017130407.tif 000018
【図１７】
2017130407.tif 000019
【国際調査報告】
2017130407.tif 000020
2017130407.tif 000021
2017130407.tif 000022
2017130407.tif 000023