(57)【特許請求の範囲】
【請求項１】
判定装置における判定方法であって、
前記判定装置のコンピュータが、
画像に含まれる人が生体であるか否かを判定する複数の生体判定処理の中から、２以上の生体判定処理を選択し、
選択された前記２以上の生体判定処理を実行する順序を決定し、
選択された前記２以上の生体判定処理のそれぞれを、前記決定された順序で実行し、
選択された前記２以上の生体判定処理のそれぞれにおいて、（１）生体判定処理に必要な行動をユーザに提示する処理と、（２）前記提示された行動に応じて前記ユーザが行動した際の顔を含む顔画像を取得する処理と、（３）前記顔画像に含まれる顔の部位の特徴に基づき、前記ユーザが生体であるか否かを判定する処理とを行い、
選択された前記２以上の生体判定処理のそれぞれから得られた判定結果が所定の条件を満たすか否かを判定し、
前記判定結果が前記所定の条件を満たす場合、前記ユーザが生体であると判定し、前記判定結果が前記所定の条件を満たさない場合、前記ユーザが生体でないと判定する、
判定方法。
【請求項２】
前記２以上の生体判定処理の選択では、
前記複数の生体判定処理の中から、前記２以上の生体判定処理をランダムに選択する、
請求項１に記載の判定方法。
【請求項３】
選択された前記２以上の生体判定処理を実行する順序の決定では、
選択された前記２以上の生体判定処理を実行する順序をランダムに決定する、
請求項１又は２に記載の判定方法。
【請求項４】
前記複数の生体判定処理には、
顔の向きを前記顔の部位の特徴とする生体判定処理、
目の向きを前記顔の部位の特徴とする生体判定処理、
目の開閉状態を前記顔の部位の特徴とする生体判定処理、
口の開閉状態を前記顔の部位の特徴とする生体判定処理、及び
眼鏡の着脱状態を前記顔の部位の特徴とする生体判定処理、
が含まれる、
請求項１から３の何れか一項に記載の判定方法。
【請求項５】
選択された前記２以上の生体判定処理のそれぞれでは、
前記（１）乃至（３）の処理を複数回行い、
各前記（１）の処理において前記ユーザに提示する行動をランダムに決定する、
請求項１から４の何れか一項に記載の判定方法。
【請求項６】
前記２以上の生体判定処理の選択では、
前記ユーザの状態を検出し、生体判定処理に必要な行動が、当該検出した前記ユーザの状態に適している生体判定処理を選択する、
請求項１から５の何れか一項に記載の判定方法。
【請求項７】
前記判定結果が前記所定の条件を満たすか否かの判定では、
前記判定結果を数値化し、当該数値化した結果を生体判定処理毎に定められた係数で重み付け加算した結果が所定の数値条件を満たす場合に、前記判定結果が前記所定の条件を満たすと判定する、
請求項１から６の何れか一項に記載の判定方法。
【請求項８】
前記コンピュータは、
更に、前記ユーザの顔を含むユーザ画像を取得し、
更に、前記ユーザ画像に人の顔を囲む外枠が含まれているか否かを判定し、前記ユーザ画像に前記外枠が含まれていると判定した場合、前記ユーザが生体でないと判定し、前記ユーザ画像に前記外枠が含まれていないと判定した場合、前記２以上の生体判定処理を選択する処理以降の処理を行う、
請求項１から７の何れか一項に記載の判定方法。
【請求項９】
前記ユーザ画像に前記外枠が含まれているか否かの判定では、
前記ユーザ画像から前記ユーザの顔を含む顔領域を検出し、
前記ユーザ画像に含まれる、垂直方向に延びるエッジのうち、前記顔領域の左端に最も接近した第一所定長以上の長さを有する第一のエッジと、前記顔領域の右端に最も接近した前記第一所定長以上の長さを有する第二のエッジと、を検出する縦線検出処理と、
前記ユーザ画像に含まれる、水平方向に延びるエッジのうち、前記顔領域の上端に最も接近し、両端が前記第一のエッジ及び前記第二のエッジよりも前記顔領域側にある、第二所定長以上の長さを有する第三のエッジと、前記顔領域の下端に最も接近し、両端が前記第一のエッジ及び前記第二のエッジよりも前記顔領域側にある、前記第二所定長以上の長さを有する第四のエッジと、を検出する横線検出処理と、を実行し、
前記縦線検出処理及び前記横線検出処理により検出されたエッジの数の合計が３以上である場合に、前記ユーザ画像に前記外枠が含まれていると判定する、
請求項８に記載の判定方法。
【請求項１０】
前記ユーザ画像に前記外枠が含まれているか否かの判定では、
前記ユーザ画像から前記ユーザの顔を含む顔領域を検出し、
前記顔領域の幅が所定の上限幅より大きい場合、又は、前記顔領域の高さが所定の上限高さより大きい場合、前記ユーザ画像に前記外枠が含まれていると判定する、
請求項８又は９に記載の判定方法。
【請求項１１】
前記ユーザ画像に前記外枠が含まれているか否かの判定では、
前記ユーザ画像から前記ユーザの顔を含む顔領域を検出し、
前記顔領域の上端が前記ユーザ画像の上端から所定の第一マージン内に存在する場合、又は、前記顔領域の下端が前記ユーザ画像の下端から所定の第二マージン内に存在する場合に、前記縦線検出処理において前記第一のエッジ及び前記第二のエッジを検出したとき、前記ユーザ画像に前記外枠が含まれていると判定する、
請求項９に記載の判定方法。
【請求項１２】
前記ユーザ画像に前記外枠が含まれているか否かの判定では、
前記顔領域の左端が前記ユーザ画像の左端から所定の第三マージン内に存在する又は前記顔領域の右端が前記ユーザ画像の右端から所定の第四マージン内に存在する場合、前記縦線検出処理において検出された前記第一のエッジ又は前記第二のエッジと、前記横線検出処理において検出された前記第三のエッジ又は前記第四のエッジと、が交差するときに、前記ユーザ画像に前記外枠が含まれていると判定する、
請求項９又は１１に記載の判定方法。
【請求項１３】
画像に含まれる人が生体であるか否かを判定する複数の生体判定処理の中から、２以上の生体判定処理を選択し、選択された前記２以上の生体判定処理を実行する順序を決定する判定方法決定部と、
選択された前記２以上の生体判定処理のそれぞれを、前記決定された順序で実行する実行部と、
選択された前記２以上の生体判定処理のそれぞれにおいて、生体判定処理に必要な行動をユーザに提示する出力部と、前記提示された行動に応じて前記ユーザが行動した際の顔を含む顔画像を取得する顔画像取得部と、前記顔画像に含まれる顔の部位の特徴に基づき、前記ユーザが生体であるか否かを判定する第一判定部と、
選択された前記２以上の生体判定処理のそれぞれから得られた判定結果が所定の条件を満たすか否かを判定し、前記判定結果が前記所定の条件を満たす場合、前記ユーザが生体であると判定し、前記判定結果が前記所定の条件を満たさない場合、前記ユーザが生体でないと判定する第二判定部と、
を備える判定装置。
【請求項１４】
判定装置としてコンピュータを機能させる判定プログラムであって、
前記コンピュータを、
画像に含まれる人が生体であるか否かを判定する複数の生体判定処理の中から、２以上の生体判定処理を選択し、選択された前記２以上の生体判定処理を実行する順序を決定する判定方法決定部と、
選択された前記２以上の生体判定処理のそれぞれを、前記決定された順序で実行する実行部と、
選択された前記２以上の生体判定処理のそれぞれにおいて、生体判定処理に必要な行動をユーザに提示する出力部と、前記提示された行動に応じて前記ユーザが行動した際の顔を含む顔画像を取得する顔画像取得部と、前記顔画像に含まれる顔の部位の特徴に基づき、前記ユーザが生体であるか否かを判定する第一判定部と、
選択された前記２以上の生体判定処理のそれぞれから得られた判定結果が所定の条件を満たすか否かを判定し、前記判定結果が前記所定の条件を満たす場合、前記ユーザが生体であると判定し、前記判定結果が前記所定の条件を満たさない場合、前記ユーザが生体でないと判定する第二判定部として、
機能させる判定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、画像に含まれる人が生体であるか否かを判定する技術に関するものである。
【背景技術】
【０００２】
近年のオンライン化の進展に伴い、従来対面で行われていた本人確認もオンラインによって行われることが増えている。本人確認をオンラインで行う場合、ユーザによって予め用意された、他人の顔の静止画や動画等の画像を用いたなりすましが問題となる。このようななりすましへの対策として、本人確認に用いる画像に含まれる人が生体であるか否かを判定（以降、生体判定）する生体判定技術が存在する。生体判定に関する特許文献として下記の文献が知られている。
【０００３】
例えば、特許文献１には、ユーザの顔画像から取得した、特定の表情の度合い、顔の向き、目つぶりの度合い、口の開閉の度合い又は視線の方向等に基づき、生体判定を行う技術が開示されている。特許文献２には、ユーザに提示情報を提示し、ユーザの顔を表す顔画像列から検出した、提示情報に対する視線の時間変化に基づき、生体判定を行う技術が開示されている。特許文献３には、生体を撮像した画像に含まれる、まばたき等の生体のジェスチャに基づき、生体判定を行う技術が開示されている。
【０００４】
特許文献４には、顔画像列から抽出された所定の色情報の時間的な変化に基づき、生体判定を行う技術が開示されている。特許文献５には、撮像素子により取得された認証対象者の顔の２次元画像データと像面位相差情報（段落〔００３０〕−〔００３２〕）とに基づき、生体判定を行う技術が開示されている。特許文献６には、対象人物を撮像した撮像画像に人物の顔を囲む枠が存在するか否かに基づき、生体判定を行う技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１６−００９４５３号公報
【特許文献２】国際公開第２０１６／０５９７８６号
【特許文献３】特開２０１７−０４９８６７号公報
【特許文献４】特許第６５４４２４４号公報
【特許文献５】特開２０１８−１７３７３１号公報
【特許文献６】特開２０１８−１６９９４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、生体判定におけるなりすまし対策には更なる改善が必要である。
【０００７】
本開示は、上記課題を解決するためになされたものであり、生体判定におけるなりすまし対策を更に改善することを目的とする。
【課題を解決するための手段】
【０００８】
本開示の一態様に係る判定方法は、判定装置における判定方法であって、前記判定装置のコンピュータが、画像に含まれる人が生体であるか否かを判定する複数の生体判定処理の中から、２以上の生体判定処理を選択し、選択された前記２以上の生体判定処理を実行する順序を決定し、選択された前記２以上の生体判定処理のそれぞれを、前記決定された順序で実行し、選択された前記２以上の生体判定処理のそれぞれにおいて、（１）生体判定処理に必要な行動をユーザに提示する処理と、（２）前記提示された行動に応じて前記ユーザが行動した際の顔を含む顔画像を取得する処理と、（３）前記顔画像に含まれる顔の部位の特徴に基づき、前記ユーザが生体であるか否かを判定する処理とを行い、選択された前記２以上の生体判定処理のそれぞれから得られた判定結果が所定の条件を満たすか否かを判定し、前記判定結果が前記所定の条件を満たす場合、前記ユーザが生体であると判定し、前記判定結果が前記所定の条件を満たさない場合、前記ユーザが生体でないと判定する。
【発明の効果】
【０００９】
本開示によれば、生体判定におけるなりすまし対策を更に改善することができる。
【図面の簡単な説明】
【００１０】
【図１】本開示の実施の形態１における生体判定システムの外観図である。
【図２】本開示の実施の形態１における生体判定システムの全体構成の一例を示すブロック図である。
【図３】本開示の実施の形態１における判定装置の処理の一例を示すフローチャートである。
【図４】顔の向きに基づく生体判定処理の一例を示すフローチャートである。
【図５】目の向きに基づく生体判定処理の一例を示すフローチャートである。
【図６】目の開閉状態に基づく生体判定処理の一例を示すフローチャートである。
【図７】口の開閉状態に基づく生体判定処理の一例を示すフローチャートである。
【図８】顔の特徴点を示す図である。
【図９】眼鏡の着脱状態に基づく生体判定処理の一例を示すフローチャートである。
【図１０】外枠判定処理の一例を示すフローチャートである。
【図１１】ユーザ画像から検出される顔領域の一例を示す図である。
【図１２】縦線検出処理において検出される水平方向エッジの一例を示す図である。
【図１３】横線検出処理において検出される垂直方向エッジの一例を示す図である。
【図１４】ユーザ画像に含まれる顔領域の一例を示す図である。
【図１５】ユーザ画像に含まれる顔領域の他の一例を示す図である。
【発明を実施するための形態】
【００１１】
（本開示に至る経緯）
近年のオンライン化の進展に伴い、従来対面で行われていた本人確認をオンラインで行うことが増えている。例えば、金融機関のオンライン口座開設をはじめとしたｅＫＹＣ（ｅｌｅｃｔｒｏｎｉｃ  Ｋｎｏｗ  Ｙｏｕｒ  Ｃｕｓｔｏｍｅｒ）の領域では、本人確認書類とセルフィとをオンラインで送信して本人確認を行う仕組みが提供されている。
【００１２】
また、近年では、指紋や顔等の人の部位を使った生体認証が普及しつつある。特に、顔認証技術は、ユーザに非接触で行え、特殊機能を有さないカメラで撮影した画像を用いて行えるため、利便性が高くまた導入が容易である。このため、オンラインでの本人確認の手段として用いることが注目されている。
【００１３】
しかしながら、顔認証技術は、利便性が高い故、他人の顔を含む画像を用いて当該他人になりすますことが容易であるという問題がある。このなりすましに対応するため、画像に含まれる人が生体であるかどうかを判定する生体判定技術が様々な企業により研究開発されている。例えば、顔認証用の画像を取得する際に、ユーザの顔と考えられる領域にドットパターン光を照射し、顔の凹凸を検出した場合に、ユーザが生体であると判定する技術が知られている。また、上記特許文献１乃至６に記載の生体判定技術が知られている。
【００１４】
しかし、上述した生体判定技術のうちの何れかを固定的に採用して生体判定を行うとする。この場合、悪意のあるユーザは、採用された生体判定技術によって生体であると判定される画像を予め用意し易く、ひいては、なりすましが発生しやすいという課題がある。
【００１５】
そこで、本発明者は、複数の生体判定技術を適切に用いることで、悪意のあるユーザが予め用意した画像を用いてなりすましを行うことを困難にする技術について鋭意検討し、以下に示す本開示の各態様に相当するに至った。
【００１６】
本開示の一態様に係る判定方法は、判定装置における判定方法であって、前記判定装置のコンピュータが、画像に含まれる人が生体であるか否かを判定する複数の生体判定処理の中から、２以上の生体判定処理を選択し、選択された前記２以上の生体判定処理を実行する順序を決定し、選択された前記２以上の生体判定処理のそれぞれを、前記決定された順序で実行し、選択された前記２以上の生体判定処理のそれぞれにおいて、（１）生体判定処理に必要な行動をユーザに提示する処理と、（２）前記提示された行動に応じて前記ユーザが行動した際の顔を含む顔画像を取得する処理と、（３）前記顔画像に含まれる顔の部位の特徴に基づき、前記ユーザが生体であるか否かを判定する処理とを行い、選択された前記２以上の生体判定処理のそれぞれから得られた判定結果が所定の条件を満たすか否かを判定し、前記判定結果が前記所定の条件を満たす場合、前記ユーザが生体であると判定し、前記判定結果が前記所定の条件を満たさない場合、前記ユーザが生体でないと判定する。
【００１７】
本構成によれば、複数の生体判定処理の中から２以上の生体判定処理が選択され、当該２以上の生体判定処理のそれぞれを実行する順序が決定され、当該決定された順序で当該２以上の生体判定処理のそれぞれが実行される。このため、ユーザが生体であるか否かの判定のために実行される生体判定処理の数、内容及び実行順序に応じて、生体判定を実行するパターンが指数関数的に増大する。
【００１８】
また、本構成では、各生体判定処理において、生体判定処理に必要な行動がユーザに提示され、当該提示された行動に応じてユーザが行動した際の顔を含む顔画像に含まれる顔の部位の特徴に基づき、ユーザが生体であるか否かが判定される。そして、各生体判定処理から得られた判定結果が所定の条件を満たすか否かによってユーザが生体であるか否かが判定される。
【００１９】
したがって、本構成は、悪意あるユーザが、各生体判定処理で提示される行動に応じた顔の部位の特徴を含む顔画像を予め用意することを、事実上不可能にすることができる。これにより、本構成は、予め用意された画像を用いたなりすましを困難にすることができる。
【００２０】
上記判定方法において、前記２以上の生体判定処理の選択では、前記複数の生体判定処理の中から、前記２以上の生体判定処理をランダムに選択してもよい。
【００２１】
本構成によれば、２以上の生体判定処理が、複数の生体判定処理の中からランダムに選択される。このため、本構成は、悪意のあるユーザが全ての生体判定処理において生体であると判定される顔画像を予め用意することを困難にすることができる。
【００２２】
上記判定方法において、選択された前記２以上の生体判定処理を実行する順序の決定では、選択された前記２以上の生体判定処理を実行する順序をランダムに決定してもよい。
【００２３】
本構成によれば、選択された２以上の生体判定処理を実行する順序がランダムに決定される。このため、本構成は、悪意のあるユーザが全ての生体判定処理において生体であると判定される顔画像を予め用意することを困難にすることができる。
【００２４】
上記判定方法において、前記複数の生体判定処理には、顔の向きを前記顔の部位の特徴とする生体判定処理、目の向きを前記顔の部位の特徴とする生体判定処理、目の開閉状態を前記顔の部位の特徴とする生体判定処理、口の開閉状態を前記顔の部位の特徴とする生体判定処理、及び眼鏡の着脱状態を前記顔の部位の特徴とする生体判定処理、が含まれてもよい。
【００２５】
本構成によれば、顔の向きを顔の部位の特徴とする生体判定処理、目の向きを顔の部位の特徴とする生体判定処理、目の開閉状態を顔の部位の特徴とする生体判定処理、口の開閉状態を顔の部位の特徴とする生体判定処理、及び眼鏡の着脱状態を顔の部位の特徴とする生体判定処理のうちの２以上の生体判定処理を実行して、予め用意された画像を用いたなりすましを困難にすることができる。
【００２６】
上記判定方法において、選択された前記２以上の生体判定処理のそれぞれでは、前記（１）乃至（３）の処理を複数回行い、各前記（１）の処理において前記ユーザに提示する行動をランダムに決定してもよい。
【００２７】
本構成によれば、ユーザが生体であるか否かの判定のために実行される生体判定処理の数、内容及び実行順序と各生体判定処理において提示される行動の数及び内容とに応じて、生体判定を実行するパターンが指数関数的に増大する。このため、悪意のあるユーザが、ユーザが生体であると判定される顔画像を予め用意することをより困難にすることができる。
【００２８】
上記判定方法において、前記２以上の生体判定処理の選択では、前記ユーザの状態を検出し、生体判定処理に必要な行動が、当該検出した前記ユーザの状態に適している生体判定処理を選択してもよい。
【００２９】
本構成によれば、ユーザの状態に適した行動を必要とする２以上の生体判定処理を選択することができる。
【００３０】
上記判定方法において、前記判定結果が前記所定の条件を満たすか否かの判定では、前記判定結果を数値化し、当該数値化した結果を生体判定処理毎に定められた係数で重み付け加算した結果が所定の数値条件を満たす場合に、前記判定結果が前記所定の条件を満たすと判定してもよい。
【００３１】
本構成によれば、生体判定処理毎に定められた係数で、各生体判定処理の判定結果を数値化したものが重み付け加算される。そして、当該重み付け加算した結果が所定の数値条件を満たす場合に、前記判定結果が所定の条件を満たすと判定される。このため、本構成は、ユーザが生体であるか否かの判定精度を向上させることができる。
【００３２】
上記判定方法において、前記コンピュータは、更に、前記ユーザの顔を含むユーザ画像を取得し、更に、前記ユーザ画像に人の顔を囲む外枠が含まれているか否かを判定し、前記ユーザ画像に前記外枠が含まれていると判定した場合、前記ユーザが生体でないと判定し、前記ユーザ画像に前記外枠が含まれていないと判定した場合、前記２以上の生体判定処理を選択する処理以降の処理を行ってもよい。
【００３３】
本構成によれば、取得したユーザ画像に人の顔を囲む外枠が含まれているか否かが判定される。これにより、本構成は、ユーザ画像に人の顔を含んだ写真又はディスプレイの外枠が含まれているか否かを判定することができる。
【００３４】
ユーザ画像に外枠が含まれていると判定された場合、ユーザが、他人の顔を含んだ写真又はディスプレイの画像を生体の判定に用いる意図があると考えられる。この場合、本構成は、ユーザが生体でないと判定することができる。一方、本構成では、ユーザ画像に外枠が含まれていないと判定された場合には、２以上の生体判定処理を選択する処理以降の処理が行われる。このため、上記判定方法と同様の作用効果が得られる。
【００３５】
上記判定方法において、前記ユーザ画像に前記外枠が含まれているか否かの判定では、前記ユーザ画像から前記ユーザの顔を含む顔領域を検出し、前記ユーザ画像に含まれる、垂直方向に延びるエッジのうち、前記顔領域の左端に最も接近した第一所定長以上の長さを有する第一のエッジと、前記顔領域の右端に最も接近した前記第一所定長以上の長さを有する第二のエッジと、を検出する縦線検出処理と、前記ユーザ画像に含まれる、水平方向に延びるエッジのうち、前記顔領域の上端に最も接近し、両端が前記第一のエッジ及び前記第二のエッジよりも前記顔領域側にある、第二所定長以上の長さを有する第三のエッジと、前記顔領域の下端に最も接近し、両端が前記第一のエッジ及び前記第二のエッジよりも前記顔領域側にある、前記第二所定長以上の長さを有する第四のエッジと、を検出する横線検出処理と、を実行し、前記縦線検出処理及び前記横線検出処理により検出されたエッジの数の合計が３以上である場合に、前記ユーザ画像に前記外枠が含まれていると判定してもよい。
【００３６】
本構成では、ユーザ画像からユーザの顔を含む顔領域が検出され、ユーザ画像に含まれる垂直方向に延びるエッジのうち、顔領域の左端及び右端のそれぞれに最も接近した所定長以上の長さを有する第一のエッジ及び第二のエッジを検出する縦線検出処理が実行される。これにより、人の顔を含む写真又はディスプレイの画像の外枠を構成する、垂直方向に延びる二本の枠線を検出することができる。
【００３７】
また、ユーザ画像に含まれる水平方向に延びるエッジのうち、顔領域の上端及び下端のそれぞれに最も接近し、両端が検出された第一のエッジ及び第二のエッジよりも顔領域側にある第三のエッジ及び第四のエッジを検出する横線検出処理と、が実行される。これにより、人の顔を含む写真又はディスプレイの画像の外枠を構成する、水平方向に延びる二本の枠線を検出することができる。
【００３８】
そして、本構成によれば、縦線検出処理及び横線検出処理により検出されたエッジの数の合計が３以上である場合に、ユーザ画像に外枠が含まれていると判定される。このため、本構成は、人の顔を含む、写真又はディスプレイを含むユーザ画像が取得され、当該ユーザ画像から四本の枠線が検出できた場合に、ユーザ画像に外枠が含まれていると判定することができる。また、本構成は、例えば撮影環境等が原因で、人の顔を含む写真又はディスプレイの外枠の一枠線を含まないユーザ画像が取得され、当該ユーザ画像から三本の枠線しか検出できない場合であっても、ユーザ画像に外枠が含まれていると判定することができる。
【００３９】
上記判定方法において、前記ユーザ画像に前記外枠が含まれているか否かの判定では、前記ユーザ画像から前記ユーザの顔を含む顔領域を検出し、前記顔領域の幅が所定の上限幅より大きい場合、又は、前記顔領域の高さが所定の上限高さより大きい場合、前記ユーザ画像に前記外枠が含まれていると判定してもよい。
【００４０】
悪意のあるユーザは、他人の顔を含む写真又はディスプレイの外枠が映りこまないように、当該写真又はディスプレイを撮像装置に接近させて撮影し、この撮影画像をユーザ画像として取得させる虞がある。この場合、ユーザ画像に含まれる顔領域の幅が上限幅より大きく、又は、顔領域の高さが上限高さより大きくなることがある。
【００４１】
しかし、本構成では、ユーザ画像から検出された顔領域の幅が上限幅より大きい場合、又は、当該顔領域の高さが上限高さより大きい場合、ユーザ画像に外枠が含まれていると判定され、ひいては、ユーザ画像に対応するユーザが生体でないと判定される。このため、本構成は、悪意のあるユーザが予め用意した上述のような画像を用いてなりすましを行うことを困難にすることができる。
【００４２】
上記判定方法において、前記ユーザ画像に前記外枠が含まれているか否かの判定では、前記ユーザ画像から前記ユーザの顔を含む顔領域を検出し、前記顔領域の上端が前記ユーザ画像の上端から所定の第一マージン内に存在する場合、又は、前記顔領域の下端が前記ユーザ画像の下端から所定の第二マージン内に存在する場合に、前記縦線検出処理において前記第一のエッジ及び前記第二のエッジを検出したとき、前記ユーザ画像に前記外枠が含まれていると判定してもよい。
【００４３】
悪意のあるユーザは、他人の顔を含む写真又はディスプレイの外枠をなるべく隠すために、当該他人の顔が撮影画像の上端又は下端付近に位置するように、当該写真又はディスプレイを撮影し、この撮影画像をユーザ画像として取得させる虞がある。この場合、当該写真又はディスプレイの外枠を構成する左右の枠線だけがユーザ画像に含まれることがある。
【００４４】
しかし、本構成では、ユーザ画像から検出された顔領域の上端がユーザ画像の上端から所定の第一マージン内に存在する場合、又は、顔領域の下端がユーザ画像の下端から所定の第二マージン内に存在する場合に、垂直方向に延びる第一のエッジ及び第二のエッジが検出されたときは、ユーザ画像に外枠が含まれていると判定される。この場合、本構成では、ユーザが生体でないと判定される。このため、本構成は、悪意のあるユーザが予め用意した上述のような画像を用いてなりすましを行うことを困難にすることができる。
【００４５】
上記判定方法において、前記ユーザ画像に前記外枠が含まれているか否かの判定では、前記顔領域の左端が前記ユーザ画像の左端から所定の第三マージン内に存在する又は前記顔領域の右端が前記ユーザ画像の右端から所定の第四マージン内に存在する場合、前記縦線検出処理において検出された前記第一のエッジ又は前記第二のエッジと、前記横線検出処理において検出された前記第三のエッジ又は前記第四のエッジと、が交差するときに、前記ユーザ画像に前記外枠が含まれていると判定してもよい。
【００４６】
悪意のあるユーザは、他人の顔を含む写真又はディスプレイの外枠をなるべく隠すために、当該他人の顔が撮影画像の左端又は右端付近に位置するように、当該写真又はディスプレイを撮影し、この撮影画像をユーザ画像として取得させる虞がある。この場合、当該写真又はディスプレイの外枠を構成する右部及び下部の枠線等、外枠を構成する二本のＬ字状に交差する枠線だけがユーザ画像に含まれることがある。
【００４７】
しかし、本構成では、ユーザ画像から検出された顔領域の左端がユーザ画像の左端から所定の第三マージン内に存在する又は顔領域の右端がユーザ画像の右端から所定の第四マージン内に存在するときに検出された、垂直方向に延びる第一のエッジ又は第二のエッジと水平方向に延びる第三のエッジ又は第四のエッジとが交差するときは、ユーザ画像に外枠が含まれていると判定される。この場合、本構成では、ユーザ画像に対応するユーザが生体でないと判定される。このため、本構成は、悪意のあるユーザが予め用意した上述のような画像を用いてなりすましを行うことを困難にすることができる。
【００４８】
本開示の別の一態様に係る判定装置は、画像に含まれる人が生体であるか否かを判定する複数の生体判定処理の中から、２以上の生体判定処理を選択し、選択された前記２以上の生体判定処理を実行する順序を決定する判定方法決定部と、選択された前記２以上の生体判定処理のそれぞれを、前記決定された順序で実行する実行部と、選択された前記２以上の生体判定処理のそれぞれにおいて、生体判定処理に必要な行動をユーザに提示する出力部と、前記提示された行動に応じて前記ユーザが行動した際の顔を含む顔画像を取得する顔画像取得部と、前記顔画像に含まれる顔の部位の特徴に基づき、前記ユーザが生体であるか否かを判定する第一判定部と、選択された前記２以上の生体判定処理のそれぞれから得られた判定結果が所定の条件を満たすか否かを判定し、前記判定結果が前記所定の条件を満たす場合、前記ユーザが生体であると判定し、前記判定結果が前記所定の条件を満たさない場合、前記ユーザが生体でないと判定する第二判定部と、を備える。
【００４９】
本開示の別の一態様に係る判定プログラムは、判定装置としてコンピュータを機能させる判定プログラムであって、前記コンピュータを、画像に含まれる人が生体であるか否かを判定する複数の生体判定処理の中から、２以上の生体判定処理を選択し、選択された前記２以上の生体判定処理を実行する順序を決定する判定方法決定部と、選択された前記２以上の生体判定処理のそれぞれを、前記決定された順序で実行する実行部と、選択された前記２以上の生体判定処理のそれぞれにおいて、生体判定処理に必要な行動をユーザに提示する出力部と、前記提示された行動に応じて前記ユーザが行動した際の顔を含む顔画像を取得する顔画像取得部と、前記顔画像に含まれる顔の部位の特徴に基づき、前記ユーザが生体であるか否かを判定する第一判定部と、選択された前記２以上の生体判定処理のそれぞれから得られた判定結果が所定の条件を満たすか否かを判定し、前記判定結果が前記所定の条件を満たす場合、前記ユーザが生体であると判定し、前記判定結果が前記所定の条件を満たさない場合、前記ユーザが生体でないと判定する第二判定部として、機能させる。
【００５０】
これらの構成によれば、上記判定方法と同様の作用効果が得られる。
【００５１】
本開示は、このような判定プログラムによって動作する判定システムとして実現することもできる。また、このようなコンピュータプログラムを、ＣＤ−ＲＯＭ等のコンピュータ読取可能な非一時的な記録媒体あるいはインターネット等の通信ネットワークを介して流通させることができるのは、言うまでもない。
【００５２】
尚、以下で説明する実施の形態は、何れも本開示の一具体例を示すものである。以下の実施の形態で示される数値、形状、構成要素、ステップ、ステップの順序などは、一例であり、本開示を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。また全ての実施の形態において、各々の内容を組み合わせることもできる。
【００５３】
（実施の形態１）
図１は、本開示の実施の形態１における生体判定システム１００の外観図である。生体判定システム１００は、スマートフォン又はタブレット端末等の携帯端末装置により構成されている。但し、これは一例であり、生体判定システム１００は、据え置き型のコンピュータ又はクラウドサーバとカメラとディスプレイとを適宜組み合わせて構成されてもよい。
【００５４】
生体判定システム１００は、判定装置１、撮像装置２、及びディスプレイ３を含む。判定装置１は、撮像装置２により撮像された画像に含まれる人Ｕ１が生体であるか否かを判定する所謂生体判定を行う。
【００５５】
撮像装置２は、携帯端末装置に実装されたカメラで構成されている。撮像装置２は、所定のフレーム周期でカラーの可視光画像を撮像する。
【００５６】
ディスプレイ３は、携帯端末装置に実装された液晶表示装置又は有機ＥＬ（Ｅｌｅｃｔｒｏ  Ｌｕｍｉｎｅｓｃｅｎｃｅ）表示装置等の表示装置で構成されている。ディスプレイ３は、判定装置１による、撮像装置２が撮像した画像に含まれる人Ｕ１が生体であるか否かの判定結果を表示する。
【００５７】
図２は、本開示の実施の形態１における生体判定システム１００の全体構成の一例を示すブロック図である。判定装置１は、プロセッサ１０（コンピュータ）、メモリ２０、センサ３０、操作部４０及び通信部５０を含む。プロセッサ１０は、例えばＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）で構成されている。プロセッサ１０は、受付部１１、判定方法決定部１２、実行部１３、出力部１４、顔画像取得部１５、第一判定部１６及び第二判定部１７を含む。受付部１１〜第二判定部１７は、例えばプロセッサ１０が生体判定プログラム（判定プログラム）を実行することで実現される。
【００５８】
メモリ２０は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等の不揮発性メモリ及びＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等の揮発性メモリで構成され、プロセッサ１０が制御に用いる各種情報を記憶する。
【００５９】
センサ３０は、人感センサ又はイメージセンサ等で構成され、当該センサ３０から所定の近距離内に人物が存在することを検出する。操作部４０は、タッチパネル等で構成され、ユーザによる判定装置１の各種操作に用いられる。通信部５０は、Ｅｔｈｅｒｎｅｔ（登録商標）等の任意の通信方式に対応した通信回路を用いて構成され、外部装置と通信を行う。
【００６０】
受付部１１は、生体判定の実行指示の入力を受け付ける。具体的には、受付部１１は、センサ３０から人物を検出したことを示す検出信号が入力された場合に、生体判定の実行指示の入力を受け付ける。又は、ユーザが操作部４０を操作したことで、生体判定の実行指示を示す情報が入力された場合に、受付部１１は、生体判定の実行指示の入力を受け付ける。又は、受付部１１は、外部装置から通信部５０を介して生体判定の実行要求を示す情報が入力された場合、若しくは、プロセッサ１０によって実行中のアプリケーションプログラムから、生体判定の実行指示を示す情報が入力された場合に、生体判定の実行指示の入力を受け付ける。尚、生体判定の実行指示の入力方法は、これに限らない。
【００６１】
判定方法決定部１２は、画像に含まれる人が生体であるか否かを判定する複数の生体判定処理の中から、２以上の生体判定処理を選択し、選択された前記２以上の生体判定処理を実行する順序を決定する。
【００６２】
具体的には、判定方法決定部１２は、複数の生体判定処理の中から、２以上の生体判定処理をランダムに選択する。複数の生体判定処理には、顔の向きに基づく生体判定処理、目の向きに基づく生体判定処理、目の開閉状態に基づく生体判定処理、口の開閉状態に基づく生体判定処理及び眼鏡の着脱状態に基づく生体判定処理が含まれる。これらの複数の生体判定処理を実装した制御プログラムはメモリ２０に記憶されている。
【００６３】
尚、複数の生体判定処理には、その他の顔の部位の特徴に基づく生体判定処理が含まれてもよい。また、判定方法決定部１２による２以上の生体判定処理の選択方法は、上記に限らない。例えば、判定方法決定部１２は、複数の生体判定処理のそれぞれを実装した制御プログラムがメモリ２０に記憶された順に、所定数の生体判定処理を選択する等の方法で、複数の生体判定処理の中から２以上の生体判定処理を規則的に選択してもよい。
【００６４】
判定方法決定部１２は、選択した２以上の生体判定処理を実行する順序をランダムに決定する。尚、判定方法決定部１２は、これに限らず、例えば、前記２以上の生体判定処理のそれぞれを実装した制御プログラムがメモリ２０に記憶された順序を、前記２以上の生体判定処理を実行する順序として決定する等の方法で、前記２以上の生体判定処理を実行する順序を規則的に決定してもよい。
【００６５】
実行部１３は、判定方法決定部１２によって選択された２以上の生体判定処理のそれぞれを、判定方法決定部１２によって決定された順序で実行する。
【００６６】
出力部１４は、実行部１３により実行される各生体判定処理において、各生体判定処理に必要な行動を示す情報（以降、行動情報）をユーザに提示する。具体的には、出力部１４は、行動情報をディスプレイ３に表示することによって、当該行動情報をユーザに提示する。尚、出力部１４は、これに限らず、判定装置１に設けられたスピーカ（不図示）に、行動情報を示す音声を出力させることで、当該行動情報をユーザに提示してもよい。
【００６７】
顔画像取得部１５は、実行部１３により実行される各生体判定処理において、出力部１４によって提示された行動情報に応じてユーザが行動した際の顔を含む顔画像を取得する。具体的には、顔画像取得部１５は、出力部１４によって行動情報がユーザに提示された後、撮像装置２による画像の撮影を開始させ、撮像装置２によって撮影された人Ｕ１（図１）の顔を含む画像を顔画像として取得する。尚、顔画像取得部１５は、所定のフレームレートで撮像される顔画像を順次に取得する。
【００６８】
第一判定部１６は、顔画像取得部１５によって取得された顔画像に含まれる顔の部位の特徴に基づき、ユーザが生体であるか否かを判定する。具体的には、上記複数の生体判定処理には、顔の向きを前記顔の部位の特徴とする生体判定処理、目の向きを前記顔の部位の特徴とする生体判定処理、口の開閉状態を前記顔の部位の特徴とする生体判定処理、及び眼鏡の着脱状態を前記顔の部位の特徴とする生体判定処理が含まれる。例えば、顔の向きを前記顔の部位の特徴とする生体判定処理では、第一判定部１６は、顔画像取得部１５によって取得された顔画像に含まれる顔の向きに基づき、ユーザが生体であるか否かを判定する。
【００６９】
第二判定部１７は、判定方法決定部１２によって選択された２以上の生体判定処理のそれぞれから得られた判定結果が、所定の条件を満たすか否かを判定する。第二判定部１７は、前記２以上の生体判定処理のそれぞれから得られた判定結果が前記所定の条件を満たす場合、ユーザが生体であると判定する。第二判定部１７は、前記２以上の生体判定処理のそれぞれから得られた判定結果が前記所定の条件を満たさない場合、ユーザが生体でないと判定する。
【００７０】
例えば、第二判定部１７は、選択された前記２以上の生体判定処理から得られた全ての判定結果がユーザが生体であることを示す場合に、所定の条件を満たすと判定する。又は、第二判定部１７は、選択された前記２以上の生体判定処理から得られた判定結果のうち、ユーザが生体であることを示す判定結果が所定数以上（例えば過半数）である場合に、所定の条件を満たすと判定するようにしてもよい。
【００７１】
次に、図２に示す判定装置１の処理について説明する。図３は、本開示の実施の形態１における判定装置１の処理の一例を示すフローチャートである。
【００７２】
ステップＳ１００において、受付部１１が生体判定の実行指示の入力を受け付けると、ステップＳ１０１において、判定方法決定部１２は、複数の生体判定処理の中から、２以上の生体判定処理を選択し、選択した前記２以上の生体判定処理を実行する順序を決定する。
【００７３】
ステップＳ１０２において、実行部１３は、ステップＳ１０１で選択された２以上の生体判定処理を決定された順序で順次実行する。各生体判定処理では、ステップＳ１０３〜ステップＳ１０５が行われる。
【００７４】
ステップＳ１０３では、出力部１４は、実行中の生体判定処理に必要な行動を示す行動情報をディスプレイ３に表示する。これにより、行動情報がユーザに提示される。ステップＳ１０４では、顔画像取得部１５は、ステップＳ１０３で提示された行動情報に応じて、ユーザが行動した際の顔を含む顔画像を撮像装置２から取得する。ステップＳ１０５では、第一判定部１６は、顔画像取得部１５によって取得された顔画像に含まれる、実行中の生体判定処理に応じた顔の部位の特徴に基づき、ユーザが生体であるか否かを判定する。
【００７５】
ステップＳ１０６では、実行部１３は、ステップＳ１０１で選択された２以上の生体判定処理の全てが終了したか否かを判定する。ステップＳ１０６で、ステップＳ１０１で選択された２以上の生体判定処理の全てが終了していないと判定された場合（ステップＳ１０６でＮＯ）、ステップＳ１０２以降の処理が行われる。これにより、次の順序の生体判定処理が実行される。ステップＳ１０６で、ステップＳ１０１で選択された２以上の生体判定処理の全てが終了したと判定された場合（ステップＳ１０６でＹＥＳ）、ステップＳ１０７が行われる。
【００７６】
ステップＳ１０７では、第二判定部１７は、ステップＳ１０１で選択された２以上の生体判定処理のそれぞれから得られた判定結果が、所定の条件を満たすか否かを判定する。
【００７７】
第二判定部１７は、ステップＳ１０７において、前記判定結果が前記所定の条件を満たすと判定した場合（ステップＳ１０７でＹＥＳ）、ステップＳ１０８において、ユーザが生体であると判定する。一方、第二判定部１７は、ステップＳ１０７において、前記判定結果が前記所定の条件を満たさないと判定した場合（ステップＳ１０７でＮＯ）、ステップＳ１０９において、ユーザが生体でないと判定する。
【００７８】
ステップＳ１０８及びステップＳ１０９の後、ステップＳ１１０において、出力部１４は、ステップＳ１０８又はステップＳ１０９の判定結果を示す情報を出力する。
【００７９】
具体的には、ステップＳ１１０において、出力部１４は、例えば、ステップＳ１０８又はステップＳ１０９の判定結果を示すメッセージをディスプレイ３に表示する。更に、出力部１４は、このとき、ステップＳ１０８又はステップＳ１０９の判定結果を示す音声を不図示のスピーカに出力させてもよい。
【００８０】
また、ステップＳ１００において、外部装置から通信部５０を介して生体判定の実行要求を示す情報が入力されたことによって、生体判定の実行指示の入力が受け付けられたとする。この場合、出力部１４は、ステップＳ１０８又はステップＳ１０９の判定結果を示す情報を、通信部５０を介して外部装置に返信してもよい。
【００８１】
又は、ステップＳ１００において、プロセッサ１０によって実行中のアプリケーションプログラムから、生体判定の実行指示を示す情報が入力されたことによって、生体判定の実行指示の入力が受け付けられたとする。この場合、出力部１４は、ステップＳ１０８又はステップＳ１０９の判定結果を示す情報を、実行中のアプリケーションプログラムにリターンしてもよい。
【００８２】
このように、実施の形態１における判定装置１によれば、ユーザが生体であるか否かの判定のために実行される生体判定処理の数、内容及び実行順序に応じて、生体判定を実行するパターンが指数関数的に増大する。これにより、悪意あるユーザが、全てのパターンにおいて、ユーザが生体であると判定されるような他人の顔画像を予め用意することを事実上不可能にすることができ、ひいては、予め用意された画像を用いたなりすましを困難にすることができる。
【００８３】
以下では、実行部１３によって実行され得る、複数の生体判定処理のそれぞれについて詳述する。本実施の形態では、複数の生体判定処理として、顔の向きに基づく生体判定処理、目の向きに基づく生体判定処理、目の開閉状態に基づく生体判定処理、口の開閉状態に基づく生体判定処理及び眼鏡の着脱状態に基づく生体判定処理について詳述する。
【００８４】
（顔の向きに基づく生体判定処理）
以下、顔の向きに基づく生体判定処理について詳述する。図４は、顔の向きに基づく生体判定処理の一例を示すフローチャートである。顔の向きに基づく生体判定処理が実行されると、先ず、出力部１４は、図３に示すステップＳ１０３に対応するステップＳ２０１を行う。ステップＳ２０１では、出力部１４は、当該生体判定処理に必要な行動として、顔の向きを指示する行動情報をディスプレイ３に表示する。
【００８５】
具体的には、ステップＳ２０１において、出力部１４は、顔の向きを上下左右の何れか一方向に向けるように指示する行動情報をディスプレイ３に表示する。尚、出力部１４は、行動情報において指示する上下左右の何れか一方向をランダムに決定する。ただし、これに限らず、出力部１４は、行動情報において指示する上下左右の何れか一方向を、例えば上下左右の順に決定する等、所定の規則に従って規則的に決定してもよい。
【００８６】
次に、顔画像取得部１５は、図３に示すステップＳ１０４に対応するステップＳ２０２を行う。ステップＳ２０２では、顔画像取得部１５は、ユーザの顔を含む顔画像を撮像装置２から取得する。
【００８７】
次に、第一判定部１６は、図３に示すステップＳ１０５に対応するステップＳ２０３以降の処理を行う。
【００８８】
ステップＳ２０３では、第一判定部１６は、ステップＳ２０２で取得された顔画像から顔の中心座標を検出する。
【００８９】
具体的には、ステップＳ２０３において、第一判定部１６は、先ず、顔画像から人物の顔を示す顔領域を検出する。顔領域は、例えば顔の全体を含む程度のサイズを持つ矩形状の領域である。詳しくは、第一判定部１６は、顔領域を検出するために予め作成された分類器に顔画像を入力することで顔領域を検出する。この分類器は、例えば、ハール（Ｈａａｒ）状のカスケード分類器で構成される。
【００９０】
次に、第一判定部１６は、検出した顔領域から顔の特徴点を検出する。顔の特徴点とは、例えば目尻、目頭、顔の輪郭、鼻筋、唇、及び眉毛などの顔を構成する複数の部位のそれぞれにおいて、特徴的な位置にある１又は複数の点である。特徴点はランドマークとも呼ばれる。第一判定部１６は、例えば機械学習のフレームワークのモデルファイルを利用したランドマーク検出処理を実行することで、顔領域から顔の特徴点を検出する。
【００９１】
図８は、顔の特徴点９Ｘを示す図である。例えば、図８に示すように、顔領域８０に対してランドマーク検出処理が適用されることにより、複数の特徴点９Ｘが検出される。図８の例では、ランドマーク検出処理によって検出される特徴点９Ｘのうち、鼻筋上に位置する例えば５個の特徴点９Ｘと、鼻の下側に位置する例えば２個の特徴点９Ｘと、顔の輪郭上に位置する例えば１７個の特徴点９Ｘと、唇の上下左右端に位置する４個の特徴点９５〜９８が検出されている。更に、図８の例では、左右の目頭９２に位置する２個の特徴点９Ｘと、左右の目尻９３に位置する２個の特徴点９Ｘとが検出されている。
【００９２】
尚、特徴点９Ｘは、それぞれランドマーク点番号が付与されており、どのランドマーク点番号の特徴点が顔のどの部位を示すかは予め定められている。例えば、ランドマーク点番号が「２」の特徴点９Ｘは左の目尻９３を示し、ランドマーク点番号が「０」の特徴点は左の目頭９２を示すというように、各特徴点９Ｘにはランドマーク点番号が設定されている。そのため、第一判定部１６は、ランドマーク点番号から特徴点９Ｘが顔のどの部位を示しているのかを特定できる。
【００９３】
そして、第一判定部１６は、顔領域８０から検出した顔の特徴点９Ｘのうち、鼻筋を示す複数の特徴点９Ｘにおいて垂直方向における中央の特徴点９Ｘの座標を、顔の中心座標として検出する。図８の例では、第一判定部１６は、鼻筋を示す５個の特徴点９Ｘのうち、上から三番目の特徴点９４の座標を顔の中心座標として検出する。尚、これに限らず、第一判定部１６は、鼻筋の上端又は下端の特徴点９Ｘの座標を顔の中心座標として検出してもよい。
【００９４】
次に、ステップＳ２０４において、第一判定部１６は、顔の向きの水平成分を算出する。以下、図８を参照して、ステップＳ２０４の内容を具体的に説明する。
【００９５】
第一判定部１６は、顔領域８０から検出された顔の特徴点９Ｘから縦方向の縦中心線と横方向の横中心線とを設定する。例えば、第一判定部１６は、ステップＳ２０３で検出した顔の中心を示す特徴点９４を通り、且つ顔領域８０の縦の辺と平行な直線を縦中心線として設定する。また、第一判定部１６は、特徴点９４を通り、且つ顔領域８０の横の辺と平行な直線を横中心線として設定する。
【００９６】
次に、第一判定部１６は、横中心線を特徴点９４で区画し、右区間と左区間との長さを求め、横中心線の長さを１００％としたときの右区間と左区間との割合を求める。第一判定部１６は、この割合に基づいて顔の向きの水平成分を算出する。例えば、右区間の割合をα１、左区間の割合をα２とし、右方を正とする。つまり、顔が左方を向いている場合、割合α２が割合α１より小さくなる。顔が右方を向いている場合、割合α１が割合α２より小さくなる。顔が正面を向いている場合、割合α２が割合α１と概ね等しくなる。概ね等しいとは、割合α２と割合α１との多少の相違を許容することを意味している。
【００９７】
次に、第一判定部１６は、割合α１及び割合α２のうち小さい方の割合を５０から減じる。例えば、割合α２が割合α１より小さければ、第一判定部１６は、５０−α２を求め、割合α１が割合α２より小さければ、第一判定部１６は、５０−α１を求める。次に、第一判定部１６は、顔が右方を向いている場合は、右方が正であるため、５０−α１を顔の向きの水平成分として算出する。一方、第一判定部１６は、顔が左方を見ている場合、左方が負であるため、−（５０−α２）を顔の向きの水平成分として算出する。
【００９８】
これにより、顔の向きの水平成分の値がプラスの方向に増大するにつれて、顔の向きはより右方を向いていることを示し、顔の向きの水平成分の値がマイナスの方向に増大するにつれて、顔の向きはより左方を向いていることを示す。また、顔の向きの水平成分が０の場合、顔の向きは正面方向であることを示す。
【００９９】
次に、ステップＳ２０５において、第一判定部１６は、顔の向きの垂直成分を算出する。以下、図８を参照して、ステップＳ２０５の内容を具体的に説明する。
【０１００】
第一判定部１６は、顔の中心を示す特徴点９４を通り、且つ顔領域８０の横の辺と平行な直線である横中心線を顔領域８０に設定する。尚、横中心線は、特徴点９４以外の鼻筋の特徴点９Ｘに設定されてもよい。この横中心線の設定は、ステップＳ２０４における横中心線の設定結果が利用されてもよい。
【０１０１】
次に、第一判定部１６は、顔領域８０の縦辺を、縦辺と横中心線との交点で区画し、上区間と下区間との長さを求める。次に、第一判定部１６は、前記縦辺の長さを１００％としたときの上区間と下区間との割合を求め、この割合に基づいて顔の向きの垂直成分を求める。例えば、上区間の割合をα３、下区間の割合をα４とし、上方を正とする。つまり、顔は上方を向いている場合、割合α３が割合α４より小さくなる。顔が下方を向いている場合、割合α４が割合α３より小さくなる。顔が正面を向いている場合、割合α３が割合α４と概ね等しくなる。割合α３と割合α４とが概ね等しいとは、上述の割合α１と割合α２とが概ね等しいと同じ意味である。
【０１０２】
次に、第一判定部１６は、割合α３及び割合α４のうち小さい方の割合を５０から減じる。例えば、割合α３が割合α４より小さければ、第一判定部１６は、５０−α３を求める。割合α４が割合α３より小さければ、第一判定部１６は、５０−α４を求める。次に、第一判定部１６は、顔が上方を向いている場合は、上方が正であるため、５０−α３を顔の向きの垂直成分として算出する。一方、第一判定部１６は、顔が下方を見ている場合、上方が正であるため、−（５０−α４）を顔の向きの垂直成分として算出する。
【０１０３】
これにより、顔の向きの垂直成分の値がプラスの方向に増大するにつれて、顔の向きはより上方を向いていることを示し、顔の向きの垂直成分の値がマイナスの方向に増大するにつれて、顔の向きはより下方を向いていることを示す。また、顔の向きの垂直成分が０の場合、顔の向きは正面方向であることを示す。
【０１０４】
次に、ステップＳ２０６において、第一判定部１６は、ステップＳ２０４及びステップＳ２０５で算出した顔の向きの水平成分及び垂直成分が示す顔の向きが、ステップＳ２０１で提示された行動情報が示す顔の向きから所定範囲内であるか否かを判定する。
【０１０５】
例えば、ステップＳ２０１において、顔の向きを右に向けるように指示する行動情報がディスプレイ３に表示されたとする。この場合、第一判定部１６は、ステップＳ２０４で算出した顔の向きの水平成分の値が、プラスの所定範囲内の値（＋Ｚ１〜＋Ｚ２（Ｚ２＞Ｚ１））である場合、ステップＳ２０１で提示された行動情報が示す顔の向きから所定範囲内であると判定する。
【０１０６】
ステップＳ２０１において、顔の向きを左に向けるように指示する行動情報がディスプレイ３に表示されたとする。この場合、第一判定部１６は、ステップＳ２０４で算出した顔の向きの水平成分の値がマイナスの所定範囲内の値（−Ｚ１〜−Ｚ２（Ｚ２＞Ｚ１））である場合、ステップＳ２０１で提示された行動情報が示す顔の向きから所定範囲内であると判定する。
【０１０７】
ステップＳ２０１において、顔の向きを正面に向けるように指示する行動情報がディスプレイ３に表示されたとする。この場合、第一判定部１６は、ステップＳ２０４で算出した顔の向きの水平成分の値が、０を基準とするプラス及びマイナスの所定範囲内の値（−Ｚ３〜＋Ｚ４（Ｚ３、Ｚ４＞０））である場合、ステップＳ２０１で提示された行動情報が示す顔の向きから所定範囲内であると判定する。
【０１０８】
これと同様に、ステップＳ２０１において、顔の向きを上に向けるように指示する行動情報がディスプレイ３に表示されたとする。この場合、第一判定部１６は、ステップＳ２０５で算出した顔の向きの垂直成分の値が、プラスの所定範囲内の値（＋Ｚ５〜＋Ｚ６（Ｚ６＞Ｚ５））である場合、ステップＳ２０１で提示された行動情報が示す顔の向きから所定範囲内であると判定する。
【０１０９】
ステップＳ２０１において、顔の向きを下に向けるように指示する行動情報がディスプレイ３に表示されたとする。この場合、第一判定部１６は、ステップＳ２０５で算出した顔の向きの垂直成分の値がマイナスの所定範囲内の値（−Ｚ５〜−Ｚ６（Ｚ６＞Ｚ５））である場合、ステップＳ２０１で提示された行動情報が示す顔の向きから所定範囲内であると判定する。
【０１１０】
ステップＳ２０１において、顔の向きを正面に向けるように指示する行動情報がディスプレイ３に表示されたとする。この場合、第一判定部１６は、ステップＳ２０５で算出した顔の向きの垂直成分の値が、０を基準とするプラス及びマイナスの所定範囲内の値（−Ｚ７〜＋Ｚ８（Ｚ７、Ｚ８＞０））である場合、ステップＳ２０１で提示された行動情報が示す顔の向きから所定範囲内であると判定する。
【０１１１】
尚、第一判定部１６がステップＳ２０４で顔の向きの水平成分を算出する手法は、上述の手法に限らない。例えば、顔の向きの水平成分は、割合α１と割合α２とのうち大きい方の値から５０を引いた値が採用されてもよい。また、顔の向きの水平成分は左方が正とされてもよい。また、第一判定部１６が、ステップＳ２０５で顔の向きの垂直成分を算出する手法は、上述の手法に限らない。例えば、顔の向きの垂直成分は、割合α３及び割合α４のうち大きい方の割合から５０を減じた値が採用されてもよい。また、顔の向きの垂直成分は下方が正にされてもよい。これに合わせて、ステップＳ２０６において、当該ステップＳ２０４及びステップＳ２０５で算出された顔の向きの水平成分及び垂直成分の値に基づく、ステップＳ２０１で提示された行動情報が示す顔の向きから所定範囲内であるか否かの判定方法が変更されてもよい。
【０１１２】
第一判定部１６は、ステップＳ２０６において、顔の向きがステップＳ２０１で提示された行動情報が示す顔の向きから所定範囲内であると判定したとする。この場合（ステップＳ２０６でＹＥＳ）、ステップＳ２０７において、第一判定部１６は、ユーザが生体であると判定し、当該判定結果を示す情報を第二判定部１７へ出力し、顔の向きに基づく生体判定処理を終了する。
【０１１３】
一方、第一判定部１６は、ステップＳ２０６において、顔の向きがステップＳ２０１で提示された行動情報が示す顔の向きから所定範囲内ではないと判定した場合（ステップＳ２０６でＮＯ）、ステップＳ２０８において、第一判定部１６は、ユーザが生体ではないと判定し、当該判定結果を示す情報を第二判定部１７へ出力し、顔の向きに基づく生体判定処理を終了する。
【０１１４】
（目の向きに基づく生体判定処理）
以下、目の向きに基づく生体判定処理について詳述する。図５は、目の向きに基づく生体判定処理の一例を示すフローチャートである。目の向きに基づく生体判定処理が実行されると、先ず、出力部１４は、図３に示すステップＳ１０３に対応するステップＳ３０１を行う。ステップＳ３０１では、出力部１４は、当該生体判定処理に必要な行動として、目の向きを指示する行動情報をディスプレイ３に表示する。
【０１１５】
具体的には、ステップＳ３０１において、出力部１４は、顔を正面に向けたまま、目の向きを左右の何れか一方向に向けるように指示する行動情報をディスプレイ３に表示する。尚、出力部１４は、行動情報において指示する左右の何れか一方向をランダムに決定する。ただし、これに限らず、出力部１４は、行動情報において指示する左右の何れか一方向を、例えば左右の順に決定する等、所定の規則に従って規則的に決定してもよい。
【０１１６】
次に、顔画像取得部１５は、図３に示すステップＳ１０４に対応するステップＳ３０２を行う。ステップＳ２０２では、顔画像取得部１５は、ユーザの顔を含む顔画像を撮像装置２から取得する。
【０１１７】
次に、第一判定部１６は、図３に示すステップＳ１０５に対応するステップＳ３０３以降の処理を行う。
【０１１８】
ステップＳ３０３では、第一判定部１６は、ステップＳ３０２で取得された顔画像から虹彩の中心座標を検出する。
【０１１９】
具体的には、ステップＳ３０３において、第一判定部１６は、ステップＳ２０３（図４）と同様、顔領域を検出する分類器に顔画像を入力し、顔領域８０を検出する。第一判定部１６は、検出した顔領域８０を、目領域を検出する分類器に入力して目領域を検出する。目領域は、目の全域を含み、目の大きさに多少のマージンが加えられた矩形状の領域である。
【０１２０】
次に、第一判定部１６は、検出した目領域をグレースケール画像に変換する。グレースケール画像への変換処理としては、例えば目領域を構成する各画素の赤成分、緑成分、青成分のそれぞれの階調値の平均を算出する処理が採用できる。但し、これは一例であり、グレースケール画像への変換処理としては他の処理が採用されてもよい。
【０１２１】
次に、第一判定部１６は、グレースケール画像の目領域に対して二値化処理を実行し、目領域の二値画像を生成する。第一判定部１６は、生成した目領域の二値画像をＸ方向に所定画素ずつ分離して複数の局所領域に分割する。Ｘ方向とは撮像装置２が撮像する画像の水平方向（横方向）を指す。例えば、第一判定部１６は、二値画像を水平方向に均等に１０分割する。これにより、二値画像は、Ｙ方向を長手方向とする短冊状の１０個の局所領域に分けられる。ここで、第一判定部１６は、二値画像を１０個の局所領域に分割したが、これは一例である。分割数は、２以上９以下の整数又は１１以上の整数であってもよい。Ｙ方向とは、撮像装置２が撮像する画像の垂直方向（縦方向）を指す。
【０１２２】
次に、第一判定部１６は、１０個の局所領域のそれぞれの平均輝度値を算出する。
【０１２３】
次に、第一判定部１６は、虹彩推定中心位置のＸ座標を算出する。虹彩推定中心位置は、虹彩中心位置の推定位置であり、最終的に算出される虹彩中心位置とは異なる。二重まぶた、まつ毛の濃さ、及びつけまつ毛等の影響によりこれらの部位が白領域として大きく表れることがある。この場合、白目の部位が塗りつぶされる可能性がある。このような事態を回避するために、虹彩推定中心位置が算出される。
【０１２４】
第一判定部１６は、複数の局所領域のうち、平均輝度値が最大である局所領域のＸ方向の中点の座標を虹彩推定中心位置のＸ座標として算出する。尚、局所領域のＸ方向の幅によっては、局所領域のＸ方向の中点が虹彩推定中心位置のＸ座標として妥当でない場合もある。この場合、局所領域のＸ方向の左端又は右端が虹彩推定中心位置のＸ座標として算出されてもよい。
【０１２５】
次に、第一判定部１６は、虹彩推定中心位置のＹ座標を算出する。第一判定部１６は、は、虹彩推定中心位置のＸ座標が存在する局所領域において、白画素の最上端点と、白画素の最下端点とを検出し、最上端点と最下端点との中点を虹彩推定中心位置のＹ座標として算出する。
【０１２６】
尚、まつ毛及び化粧の影響で最上端点及び最下端点が左に隣接する局所領域又は右に隣接する局所領域に現れることもある。そこで、第一判定部１６は、虹彩推定中心位置のＸ座標が存在する局所領域と、当該局所領域の左右に隣接する２つの局所領域とにおいて最上端点及び最下端点を算出し、算出した３個の最上端点を平均して平均最上端点を求めると共に算出した３個の最下端点を平均して平均最下端点を算出し、平均最上端点と平均最下端点との中点を虹彩推定中心位置のＹ座標として算出してもよい。
【０１２７】
次に、第一判定部１６は、二値画像に対して塗りつぶし処理を実行する。可視光画像においては、周囲の明るさ等により、角膜に外光又は背景等が映り込むことがある。この映り込みが大きい場合、黒色又は茶色である瞳内に白などの明るい色の領域が現れる。この場合、目の画像を二値化すると、瞳領域内に黒の島領域が現れ、虹彩情報を高精度に検出できなくなる。そこで、第一判定部１６は、黒の島領域を塗りつぶす塗りつぶし処理を実行する。
【０１２８】
塗りつぶし処理の詳細は下記の通りである。まず、第一判定部１６は、二値画像に対して虹彩推定中心位置のＸ座標にＹ方向と平行な縦ラインを設定する。次に、第一判定部１６は、縦ラインにおいて二値画像の上端側から最初に現れる白画素を上端画素として検出する。
【０１２９】
次に、第一判定部１６は、縦ラインにおいて二値画像の下端側から最初に現れる白画素を下端画素として検出する。次に、第一判定部１６は、上端画素と下端画素間の距離が第一基準距離よりも大きいか否かを判定する。次に、第一判定部１６は、上端画素及び下端画素間の距離が第一基準距離よりも大きいと判定した場合、縦ラインにおいて上端画素及び下端画素間にある黒画素を所定の条件を満たす黒画素として判定し、この黒画素を白画素に置換する。
【０１３０】
一方、第一判定部１６は、上端画素と下端画素間の距離が第一基準距離以下と判定した場合、縦ラインに対する置換は行わない。第一基準距離としては、例えば、想定される虹彩直径を基準に妥当な距離が採用される。
【０１３１】
第一判定部１６は、このような塗りつぶし処理を虹彩推定中心位置からＸ方向の左側に向けて左基準距離の範囲内の各縦ラインについて実行すると共に虹彩推定中心位置からＸ方向の右側に向けて右基準距離の範囲内の各縦ラインについて実行する。左基準距離範囲と右基準距離範囲との和は第二基準距離の一例である。左基準距離範囲と右基準距離範囲とは例えば同じ範囲である。第二基準距離としては、例えば、想定される虹彩直径よりも多少大きな距離が採用される。これにより、瞳領域に位置する縦ラインに対して重点的に塗りつぶし処理を適用することができる。
【０１３２】
次に、第一判定部１６は、瞳領域の左端画素及び右端画素をそれぞれ検出する。第一判定部１６は、二値画像の白領域において、虹彩推定中心位置を起点として、Ｘ方向を左右に１画素ずつ輝度値の変化を調べる。そして、第一判定部１６は、Ｘ方向の左側に最初に現れる黒画素を左端画素として検出すると共に、Ｘ方向の右側に最初に現れる黒画素を右端画素として検出する。
【０１３３】
次に、第一判定部１６は、左端画素及び右端画素の中間位置を虹彩中心位置のＸ座標として算出する。
【０１３４】
次に、第一判定部１６は、瞳領域の上端画素及び下端画素をそれぞれ検出する。第一判定部１６は、二値画像の白領域において、虹彩中心位置のＸ座標を起点として、Ｙ方向を上下に１画素ずつ輝度値の変化を調べる。そして、第一判定部１６は、Ｙ方向の上側に最初に現れる黒画素を上端画素として検出すると共に、Ｙ方向の下側に最初に現れる黒画素を下端画素として検出する。
【０１３５】
次に、第一判定部１６は、上端画素及び下端画素の中間位置を虹彩中心位置のＹ座標として算出する。以上により、虹彩の中心座標が算出される。
【０１３６】
ステップＳ３０４では、第一判定部１６は、ステップＳ３０３において生成した目領域の二値画像から目尻及び目頭の位置を検出し、ステップＳ３０３で検出した虹彩の中心座標から目尻までの水平方向の距離及び虹彩の中心座標から目頭までの水平方向の距離を算出する。
【０１３７】
具体的には、目領域の二値画像の枠は、白領域の外接矩形である。このため、第一判定部１６は、二値画像において、白領域の左端のＸ座標を、二値画像の左端のＸ座標、つまり、左目の目尻又は右目の目頭の位置のＸ座標として算出する。また、第一判定部１６は、白領域の右端のＸ座標を、二値画像の右端のＸ座標、つまり、左目の目頭又は右目の目尻の位置のＸ座標として算出する。
【０１３８】
そして、第一判定部１６は、ステップＳ３０３で検出した虹彩の中心座標のＸ座標と目尻のＸ座標との差分の絶対値を、虹彩の中心座標から目尻の位置までの水平方向の距離として算出する。また、第一判定部１６は、ステップＳ３０３で検出した虹彩の中心座標のＸ座標と目頭のＸ座標との差分の絶対値を、虹彩の中心座標から目頭の位置までの水平方向の距離として算出する。これらの処理は、左右の目のそれぞれに対応する二値画像に対して実行される。
【０１３９】
ステップＳ３０５では、第一判定部１６は、目の水平方向の向きを算出する。具体的には、第一判定部１６は、ステップＳ３０４で算出した目頭と虹彩の中心座標との水平方向の距離を第一距離Ｄ１とし、目尻と虹彩の中心座標との水平方向の距離を第二距離Ｄ２とし、目頭のＸ座標と目尻のＸ座標との距離を１００％としたときの、第一距離Ｄ１の割合β１と第二距離Ｄ２の割合β２とを算出する。これらの処理は、左右の目のそれぞれに対応する二値画像に対して実行される。
【０１４０】
目が左方を向いている場合、左右の目が左に寄り、左目は第二距離Ｄ２が短く、右目は第一距離Ｄ１が短くなる。目が右方を向いている場合、左右の目が右に寄り、左目は第二距離Ｄ２が長く、右目は第一距離Ｄ１が長くなる。
【０１４１】
以上をふまえ、目が右に寄っている場合を正とする。第一判定部１６は、例えば右目に着目し、割合β１が割合β２より小さければ目は左寄りと判定し、割合β２が割合β１より小さければ目は右寄りと判定する。左目に着目した場合、第一判定部１６は、割合β２が割合β１より小さければ、目は左寄りと判定し、割合β１が割合β２より小さければ、目は右寄りと判定する。
【０１４２】
第一判定部１６は、目が左に寄っていると判定した場合、左目の第二距離Ｄ２の割合β２と右目の第一距離Ｄ１の割合β１との平均値を算出し、５０からこの平均値を減じた値にマイナスを乗じた値を、目の水平方向の向きとして算出する。平均値を算出しているのは、目の向きは、左右の目で大差がないからである。５０から平均値を引いているのは、目が顔の正面から左方又は右に寄るにつれて、目の水平方向の向きの値を大きくするためである。マイナスを乗じているのは右方を正にするためである。
【０１４３】
第一判定部１６は、目が右に寄っていると判定した場合、左目の第一距離Ｄ１の割合β１と右目の第二距離Ｄ２の割合β２との平均値を算出し、５０からこの平均値を減じた値を、目の水平方向の向きとして算出する。
【０１４４】
つまり、目の水平方向の向きの値がプラスの方向に増大するにつれて、顔の正面に対して目がより右方を向いていることを示し、目の水平方向の向きの値がマイナスの方向に増大するにつれて、顔の正面に対して目がより左方を向いていることを示す。また、目の水平方向の向きが０の場合、目が顔の正面を向いていることを示す。以上により、目の水平方向の向きが算出される。
【０１４５】
次に、ステップＳ３０６において、第一判定部１６は、ステップＳ３０５で算出した目の水平方向の向きが、ステップＳ３０１で提示された行動情報が示す目の向きから、所定範囲内であるか否かを判定する。
【０１４６】
例えば、ステップＳ３０１において、目の向きを右に向けるように指示する行動情報がディスプレイ３に表示されたとする。この場合、第一判定部１６は、ステップＳ３０５で算出した目の水平方向の向きの値が、プラスの所定範囲内の値（＋Ｚ１〜＋Ｚ２（Ｚ２＞Ｚ１））である場合、ステップＳ３０１で提示された行動情報が示す目の向きから所定範囲内であると判定する。
【０１４７】
ステップＳ３０１において、目の向きを左に向けるように指示する行動情報がディスプレイ３に表示されたとする。この場合、第一判定部１６は、ステップＳ３０５で算出した目の水平方向の向きの値がマイナスの所定範囲内の値（−Ｚ１〜−Ｚ２（Ｚ２＞Ｚ１））である場合、ステップＳ３０１で提示された行動情報が示す目の向きから所定範囲内であると判定する。
【０１４８】
ステップＳ３０１において、目の向きを正面に向けるように指示する行動情報がディスプレイ３に表示されたとする。この場合、第一判定部１６は、ステップＳ３０５で算出した目の水平方向の向きの値が、０を基準とするプラス及びマイナスの所定範囲内の値（−Ｚ３〜＋Ｚ４（Ｚ３、Ｚ４＞０））である場合、ステップＳ３０１で提示された行動情報が示す目の向きから所定範囲内であると判定する。
【０１４９】
尚、目の水平方向の向きは、左方が正とされてもよい。また、第一判定部１６がステップＳ３０５で目の水平成分の向きを算出する手法は、上述の手法に限らない。これに合わせて、ステップＳ３０６において、当該ステップＳ３０５で算出された目の水平方向の向きに基づく、ステップＳ３０１で提示された行動情報が示す目の向きから所定範囲内であるか否かの判定方法が変更されてもよい。
【０１５０】
第一判定部１６は、ステップＳ３０６において、目の水平方向の向きがステップＳ３０１で提示された行動情報が示す目の向きから所定範囲内であると判定したとする。この場合（ステップＳ３０６でＹＥＳ）、ステップＳ３０７において、第一判定部１６は、ユーザが生体であると判定し、当該判定結果を示す情報を第二判定部１７へ出力し、目の向きに基づく生体判定処理を終了する。
【０１５１】
一方、第一判定部１６は、ステップＳ３０６において、目の水平方向の向きがステップＳ３０１で提示された行動情報が示す目の向きから所定範囲内ではないと判定した場合（ステップＳ３０６でＮＯ）、ステップＳ３０８において、第一判定部１６は、ユーザが生体ではないと判定し、当該判定結果を示す情報を第二判定部１７へ出力し、目の向きに基づく生体判定処理を終了する。
【０１５２】
（目の開閉状態に基づく生体判定処理）
以下、目の開閉状態に基づく生体判定処理について詳述する。図６は、目の開閉状態に基づく生体判定処理の一例を示すフローチャートである。目の開閉状態に基づく生体判定処理が実行されると、先ず、出力部１４は、図３に示すステップＳ１０３に対応するステップＳ４０１を行う。ステップＳ４０１では、出力部１４は、当該生体判定処理に必要な行動として、目の開閉を指示する行動情報をディスプレイ３に表示する。
【０１５３】
具体的には、出力部１４は、ステップＳ４０１において、両目を開くように指示する行動情報、両目を閉じるように指示する行動情報又は両目をまばだきを所定回数行うように指示する行動情報をディスプレイ３に表示する。又は、出力部１４は、ステップＳ４０１において、右目及び左目のうちの一方を開き、他方を閉じるように指示する行動情報、右目又は左目のうちの一方の目だけまばだきを所定回数行うように指示する行動情報をディスプレイ３に表示する。
【０１５４】
尚、出力部１４は、行動情報において指示する目の開閉方法をランダムに決定する。ただし、これに限らず、出力部１４は、行動情報において指示する目の開閉方法を、例えば上述の順に決定する等、所定の規則に従って規則的に決定してもよい。
【０１５５】
次に、顔画像取得部１５は、図３に示すステップＳ１０４に対応するステップＳ４０２を行う。ステップＳ４０２では、顔画像取得部１５は、ユーザの顔を含む顔画像を撮像装置２から取得する。
【０１５６】
次に、第一判定部１６は、図３に示すステップＳ１０５に対応するステップＳ４０３以降の処理を行う。
【０１５７】
ステップＳ４０３では、第一判定部１６は、ステップＳ４０２で取得された顔画像から目の開閉状態を検出する。
【０１５８】
具体的には、ステップＳ４０３において、第一判定部１６は、先ず、図５に示すステップＳ３０３と同様、ステップＳ３０２で取得された顔画像から顔領域８０を検出し、当該顔領域８０から目領域を検出する。そして、第一判定部１６は、検出した目領域をグレースケール画像に変換し、当該グレースケール画像の目領域に対して二値化処理を実行し、目領域の二値画像を生成する。
【０１５９】
これにより、目が開かれている場合、目領域において、瞳、まつ毛及び白目の一部の暗い部位の画素が白色の画素で表され、白目の他部及び肌の明るい部位の画素が黒色の画素で表された二値画像が生成される。一方、目が閉じられている場合、目領域において、まつ毛及び上まぶたの縁の暗い部位の画素が白色の画素で表され、肌の明るい部位の画素が黒色の画素で表された二値画像が生成される。
【０１６０】
次に、第一判定部１６は、白色の画素で構成された一塊の白色領域内における上端画素と下端画素との間の縦方向の距離が最大となる最大高さを算出する。第一判定部１６は、二値画像の白色領域に対し、Ｘ軸上の各Ｘ座標の白色画素の数を計数することにより、白色領域の各Ｘ座標の高さを算出する。尚、高さは、縦方向の白色画素の数で表される。
【０１６１】
第一判定部１６は、白色領域の左端から右端に向かってＸ座標を１画素ずつ順にずらしながら各Ｘ座標における高さを算出する。第一判定部１６は、白色領域内において、高さが最大となるＸ座標とその高さを算出する。尚、この処理は、左右の目のそれぞれに対応する二値画像に対して行われる。
【０１６２】
次に、第一判定部１６は、白色領域の最大高さが、目領域の二値画像の高さに０．９を乗算した値よりも大きいか否かを判定する。
【０１６３】
ここで、第一判定部１６は、白色領域の最大高さが、目領域の二値画像の高さに０．９を乗算した値よりも大きいと判定した場合、目が開いている状態であると判定する。すなわち、目が開いている場合、目領域の二値画像の高さに対する白色領域の最大高さの割合は、１に近づく。そのため、白色領域の最大高さが、目領域の二値画像の高さに０．９を乗算した値よりも大きい場合、第一判定部１６は、目領域内の目が開いている状態であると判定する。
【０１６４】
一方、第一判定部１６は、白色領域の最大高さが、目領域の二値画像の高さに０．９を乗算した値以下であると判定した場合、白色領域の最大高さが、目領域の二値画像の高さに０．６を乗算した値よりも小さいか否かを判定する。ここで、第一判定部１６は、白色領域の最大高さが、目領域の二値画像の高さに０．６を乗算した値よりも小さいと判定した場合、目が閉じている状態であると判定する。すなわち、目が閉じている場合、白色領域の最大高さは、目領域の二値画像の高さの６０％の長さを下回る。そのため、白色領域の最大高さが、目領域の二値画像の高さに０．６を乗算した値よりも小さい場合、第一判定部１６は、目領域内の目が閉じている状態であると判定する。
【０１６５】
一方、第一判定部１６は、白色領域の最大高さが、目領域の二値画像の高さに０．６を乗算した値以上であると判定した場合、目の開閉状態の判定が不可能であると判定する。
【０１６６】
尚、第一判定部１６がステップＳ４０３で目の開閉状態を検出する手法は、上述の手法に限らない。例えば、第一判定部１６は、白色領域の最大高さが目領域の二値画像の高さに０．６を乗算した値よりも小さい場合に、目が閉じている状態であると判定し、白色領域の最大高さが目領域の二値画像の高さに０．６を乗算した値以上である場合に、目が開いている状態であると判定してもよい。
【０１６７】
次に、ステップＳ４０４において、第一判定部１６は、ステップＳ４０３で検出した目の開閉状態が、ステップＳ４０１で提示された行動情報が示す目の開閉状態と同じであるか否かを判定する。
【０１６８】
第一判定部１６は、ステップＳ４０４において、ステップＳ４０３で検出した目の開閉状態が、ステップＳ４０１で提示された行動情報が示す目の開閉状態と同じであると判定したとする。この場合（ステップＳ４０４でＹＥＳ）、ステップＳ４０５において、第一判定部１６は、ユーザが生体であると判定し、当該判定結果を示す情報を第二判定部１７へ出力し、目の開閉状態に基づく生体判定処理を終了する。
【０１６９】
一方、第一判定部１６は、ステップＳ４０４において、目の開閉状態がステップＳ４０１で提示された行動情報が示す目の開閉状態と同じではないと判定したとする。この場合（ステップＳ４０４でＮＯ）、ステップＳ４０６において、第一判定部１６は、ユーザが生体ではないと判定し、当該判定結果を示す情報を第二判定部１７へ出力し、目の向きに基づく生体判定処理を終了する。
【０１７０】
尚、第一判定部１６は、ステップＳ４０４において、ステップＳ４０３で目の開閉状態の判定が不可能であると判定した場合も、ステップＳ４０６において、ユーザが生体ではないと判定し、当該判定結果を示す情報を第二判定部１７へ出力し、目の向きに基づく生体判定処理を終了する。
【０１７１】
尚、ステップＳ４０１において、まばだきを所定回数行うように指示する行動情報がディスプレイ３に表示されたとする。この場合、ステップＳ４０２において、顔画像取得部１５は、撮像装置２から所定のフレーム周期で顔画像を随時取得する。第一判定部１６は、顔画像が取得される度に、当該取得した顔画像を用いてステップＳ４０３を行った後、ステップＳ４０４を行う。
【０１７２】
この場合、第一判定部１６は、ステップＳ４０４において、所定の上限時間内に、各ステップＳ４０３における目の開閉状態の検出結果から、目が開いている状態から目が閉じている状態への変化が所定回数以上検出できた場合、目の開閉状態が、ステップＳ４０１で提示された行動情報が示す目の開閉状態と同じであると判定する。この場合、ステップＳ４０５において、第一判定部１６は、ユーザが生体であると判定し、当該判定結果を示す情報を第二判定部１７へ出力し、目の開閉状態に基づく生体判定処理を終了する。
【０１７３】
一方、第一判定部１６は、ステップＳ４０４において、所定の上限時間内に、各ステップＳ４０３における目の開閉状態の検出結果から、目が開いている状態から目が閉じている状態への変化が所定回数以上検出できなかった場合、目の開閉状態が、ステップＳ４０１で提示された行動情報が示す目の開閉状態と同じではないと判定する。この場合、ステップＳ４０６において、第一判定部１６は、ユーザが生体ではないと判定し、当該判定結果を示す情報を第二判定部１７へ出力し、目の開閉状態に基づく生体判定処理を終了する。
【０１７４】
（口の開閉状態に基づく生体判定処理）
以下、口の開閉状態に基づく生体判定処理について詳述する。図７は、口の開閉状態に基づく生体判定処理の一例を示すフローチャートである。口の開閉状態に基づく生体判定処理が実行されると、先ず、出力部１４は、図３に示すステップＳ１０３に対応するステップＳ５０１を行う。ステップＳ５０１では、出力部１４は、当該生体判定処理に必要な行動として、口の開閉を指示する行動情報をディスプレイ３に表示する。
【０１７５】
具体的には、出力部１４は、ステップＳ５０１において、口を開くように指示する行動情報、口を閉じるように指示する行動情報又は口の開閉を所定回数行うように指示する行動情報をディスプレイ３に表示する。尚、出力部１４は、行動情報において指示する口の開閉方法をランダムに決定する。ただし、これに限らず、出力部１４は、行動情報において指示する口の開閉方法を、例えば上述の順に決定する等、所定の規則に従って規則的に決定してもよい。
【０１７６】
次に、顔画像取得部１５は、図３に示すステップＳ１０４に対応するステップＳ５０２を行う。ステップＳ５０２では、顔画像取得部１５は、ユーザの顔を含む顔画像を撮像装置２から取得する。
【０１７７】
次に、第一判定部１６は、図３に示すステップＳ１０５に対応するステップＳ５０３以降の処理を行う。
【０１７８】
ステップＳ５０３では、第一判定部１６は、ステップＳ５０２で取得された顔画像から唇の特徴点を検出する。
【０１７９】
具体的には、ステップＳ５０３において、第一判定部１６は、先ず、図４に示すステップＳ２０３と同様、ステップＳ３０２で取得された顔画像から顔領域８０を検出し、当該顔領域８０に対してランドマーク検出処理を適用することで、唇の特徴点を検出する。図８は、顔領域８０に対してランドマーク検出処理が適用されることにより、唇の上下左右端に位置する４個の特徴点９５〜９８が検出された例を示している。
【０１８０】
ステップＳ５０４では、第一判定部１６は、ステップＳ５０３で検出した唇の特徴点を用いて、口の開き度合を示す開口量を算出する。具体的には、第一判定部１６は、ステップＳ５０３で検出した唇の上端９５と下端９６との間の距離を、ステップＳ５０３で検出した唇の左端９７と右端９８との間の距離で除算し、当該除算の結果を開口量として算出する。これにより、口の大きさの個人差によらずに、開口量が適切に算出される。
【０１８１】
次に、ステップＳ５０５において、第一判定部１６は、ステップＳ５０４で算出した開閉量に基づき、口の開閉状態が、ステップＳ５０１で提示された行動情報が示す口の開閉状態と同じであるか否かを判定する。
【０１８２】
具体的には、ステップＳ５０５において、第一判定部１６は、先ず、ステップＳ５０４で算出した開口量に基づいて口の開閉状態を判定する。詳述すると、第一判定部１６は、ステップＳ５０４で算出した開口量が所定の閾値（例えば、０．３）以上であるか否かを判定する。第一判定部１６は、ステップＳ５０４で算出した開閉量が所定の閾値以上である場合、口が開いている状態であると判定する。
【０１８３】
一方、第一判定部１６は、ステップＳ５０４で算出した開閉量が所定の閾値未満である場合、口が閉じている状態であると判定する。そして、第一判定部１６は、ステップＳ５０４で算出した開口量に基づいて判定した口の開閉状態が、ステップＳ５０１で提示された行動情報が示す口の開閉状態と同じであるか否かを判定する。
【０１８４】
尚、第一判定部１６が、ステップＳ５０５で口の開閉状態を判定する手法は、上述の開口量を用いる手法に限らず、他の手法であってもよい。
【０１８５】
第一判定部１６は、ステップＳ５０５において、開口量に基づき判定した口の開閉状態が、ステップＳ５０１で提示された行動情報が示す口の開閉状態と同じであると判定したとする。この場合（ステップＳ５０５でＹＥＳ）、ステップＳ５０６において、第一判定部１６は、ユーザが生体であると判定し、当該判定結果を示す情報を第二判定部１７へ出力し、口の開閉状態に基づく生体判定処理を終了する。
【０１８６】
一方、第一判定部１６は、ステップＳ５０５において、口の開閉状態が、ステップＳ５０１で提示された行動情報が示す口の開閉状態と同じではないと判定したとする。この場合（ステップＳ５０５でＮＯ）、ステップＳ５０７において、第一判定部１６は、ユーザが生体ではないと判定し、当該判定結果を示す情報を第二判定部１７へ出力し、口の向きに基づく生体判定処理を終了する。
【０１８７】
尚、ステップＳ５０１において、口の開閉を所定回数行うように指示する行動情報がディスプレイ３に表示された場合、ステップＳ５０２では、顔画像取得部１５は、撮像装置２から所定のフレーム周期で顔画像を随時取得する。第一判定部１６は、顔画像が取得される度に、当該取得した顔画像を用いてステップＳ５０３及びステップＳ５０４を行った後、ステップＳ５０５を行う。
【０１８８】
この場合、第一判定部１６は、ステップＳ５０５において、所定の上限時間が経過するまでの間、各ステップＳ５０４において算出した開口量に基づき口の開閉状態を判定する。そして、第一判定部１６は、当該判定した結果から、口が開いている状態から口が閉じている状態への変化が所定回数以上検出できた場合、口の開閉状態が、ステップＳ５０１で提示された行動情報が示す口の開閉状態と同じであると判定する。この場合、ステップＳ５０６において、第一判定部１６は、ユーザが生体であると判定し、当該判定結果を示す情報を第二判定部１７へ出力し、口の開閉状態に基づく生体判定処理を終了する。
【０１８９】
一方、第一判定部１６は、ステップＳ５０４において、所定の上限時間が経過するまでの間、各ステップＳ５０４において算出した開口量に基づき口の開閉状態を判定し、当該判定した結果から、口が開いている状態から口が閉じている状態への変化が所定回数以上検出できなかったとする。この場合、第一判定部１６は、口の開閉状態が、ステップＳ５０１で提示された行動情報が示す口の開閉状態と同じではないと判定する。この場合、ステップＳ５０７において、第一判定部１６は、ユーザが生体ではないと判定し、当該判定結果を示す情報を第二判定部１７へ出力し、口の開閉状態に基づく生体判定処理を終了する。
【０１９０】
（眼鏡の着脱状態に基づく生体判定処理）
以下、眼鏡の着脱状態に基づく生体判定処理について詳述する。図９は、眼鏡の着脱状態に基づく生体判定処理の一例を示すフローチャートである。眼鏡の着脱状態に基づく生体判定処理が実行されると、先ず、出力部１４は、図３に示すステップＳ１０３に対応するステップＳ６０１を行う。ステップＳ６０１では、出力部１４は、当該生体判定処理に必要な行動として、眼鏡の着脱を指示する行動情報をディスプレイ３に表示する。
【０１９１】
具体的には、出力部１４は、ステップＳ６０１において、眼鏡を装着している状態となるように（眼鏡をかけるように）指示する行動情報、眼鏡を装着していない状態となるように（眼鏡をはずすように）指示する行動情報、又は眼鏡の着脱を所定回数行うように指示する行動情報をディスプレイ３に表示する。
【０１９２】
尚、出力部１４は、行動情報において指示する眼鏡の着脱方法をランダムに決定する。ただし、これに限らず、出力部１４は、行動情報において指示する眼鏡の着脱方法を、例えば上述の順に決定する等、所定の規則に従って規則的に決定してもよい。
【０１９３】
次に、顔画像取得部１５は、図３に示すステップＳ１０４に対応するステップＳ６０２を行う。ステップＳ６０２では、顔画像取得部１５は、ユーザの顔を含む顔画像を撮像装置２から取得する。
【０１９４】
次に、第一判定部１６は、図３に示すステップＳ１０５に対応するステップＳ６０３以降の処理を行う。
【０１９５】
ステップＳ６０３では、第一判定部１６は、ステップＳ６０２で取得された顔画像から眼鏡の着脱状態を検出する。
【０１９６】
具体的には、ステップＳ６０３において、第一判定部１６は、先ず、図５に示すステップＳ３０３と同様、ステップＳ３０２で取得された顔画像から顔領域８０を検出する。
【０１９７】
次に、第一判定部１６は、検出された顔領域８０を二値化して、階調値が閾値より小さい画素が第一輝度値で表され、階調値が閾値以上の画素が第二輝度値で表された二値画像を生成する。顔領域８０がカラー画像で構成されている場合、第一判定部１６は、顔領域８０を例えば０〜２５５の階調値を有するグレースケール画像に変換し、変換したグレースケール画像に対して二値化処理を実行すればよい。
【０１９８】
二値化処理としては、例えば大津の二値化処理が採用できる。第一輝度値は例えば白であり、第二輝度値は例えば黒である。この場合、暗い箇所は白で表され、明るい箇所は黒で表された二値画像が生成される。白の輝度値は例えば２５５で表され、黒の輝度値は例えば０で表される。
【０１９９】
尚、第一判定部１６は、カラー画像をグレースケール画像に変換する際に、一般的な変換処理を行う。グレースケール画像への一般的な変換処理としては、例えば、顔領域８０を構成する各画素の赤成分、緑成分及び青成分のそれぞれの階調値の平均を算出する処理が採用できる。また、第一判定部１６は、下記の式（１）を用いて、グレースケール画像の各画素の画素値Ｖを算出してもよい。
【０２００】
Ｖ＝０．２９９・Ｒ＋０．５８７・Ｇ＋０．１１４・Ｂ・・・（１）
上記の式（１）において、Ｒは、カラー画像の各画素の赤色成分値を表し、Ｇは、カラー画像の各画素の緑色成分値を表し、Ｂは、カラー画像の各画素の青色成分値を表す。
【０２０１】
次に、第一判定部１６は、生成した二値画像から、眼鏡が存在していると推定される眼鏡推定領域を抽出する。具体的には、第一判定部１６は、一般的な人間の顔の比率を鑑みて、顔領域８０の上辺から３／１０の位置を示すラインから６／１０の位置を示すラインまでの間の領域を、眼鏡推定領域として抽出する。
【０２０２】
次に、第一判定部１６は、抽出した眼鏡推定領域にラベリング処理を実行する。ラベリング処理では、二値画像に対して、連続する複数の白色画素に同じ番号が割り振られる。このラベリング処理により、眼鏡推定領域から、連続した複数の白色画素で構成される複数の白色領域が検出される。このように、予め顔領域８０の二値画像から、眼鏡推定領域の二値画像を抽出することにより、ラベリング処理を行う範囲が狭まり、ラベリング処理に要する時間を短縮することができる。
【０２０３】
次に、第一判定部１６は、抽出した眼鏡推定領域内において、複数の白色画素が連続する複数の白色領域のそれぞれの横幅（水平方向の長さ）を算出する。次に、第一判定部１６は、横幅が最も長い白色領域の横幅が眼鏡推定領域の横幅の２／３以上であるか否かを判定する。
【０２０４】
眼鏡のフレームを示す白色領域は、水平方向に連続した複数の白色画素で構成される。横幅が最も長い白色領域の横幅が眼鏡推定領域の横幅の２／３以上であるということは、眼鏡を装着している状態であると考えられる。このため、第一判定部１６は、白色領域の長さが、眼鏡推定領域の横幅の２／３以上である場合、眼鏡を装着している状態と判定する。一方、第一判定部１６は、横幅が最も長い白色領域の横幅が眼鏡推定領域の横幅の２／３以上ではない場合、眼鏡を装着していない状態であると判定する。
【０２０５】
尚、第一判定部１６がステップＳ６０３で眼鏡の着脱状態を検出する手法は、上述の手法に限らない。例えば、外光が眼鏡のフレームに差し込んでいたり、眼鏡のフレームに色が付いていたりする場合、眼鏡のフレームを示す白色領域が１つの島として検出されない虞がある。そこで、第一判定部１６は、横幅が所定の長さ以上である白色領域が所定の数以上ある場合、眼鏡を装着している状態と判定してもよい。また、第一判定部１６は、横幅が所定の長さ以上である白色領域が所定の数以上ない場合、眼鏡を装着していない状態と判定してもよい。
【０２０６】
次に、ステップＳ６０４において、第一判定部１６は、ステップＳ６０３で検出した眼鏡の着脱状態が、ステップＳ６０１で提示された行動情報が示す眼鏡の着脱状態と同じであるか否かを判定する。
【０２０７】
第一判定部１６は、ステップＳ６０４において、ステップＳ６０３で検出した眼鏡の着脱状態が、ステップＳ６０１で提示された行動情報が示す眼鏡の着脱状態と同じであると判定したとする。この場合（ステップＳ６０４でＹＥＳ）、ステップＳ６０５において、第一判定部１６は、ユーザが生体であると判定し、当該判定結果を示す情報を第二判定部１７へ出力し、眼鏡の着脱状態に基づく生体判定処理を終了する。
【０２０８】
一方、第一判定部１６は、ステップＳ６０４において、眼鏡の着脱状態がステップＳ６０１で提示された行動情報が示す眼鏡の着脱状態と同じではないと判定したとする。この場合（ステップＳ６０４でＮＯ）、ステップＳ６０６において、第一判定部１６は、ユーザが生体ではないと判定し、当該判定結果を示す情報を第二判定部１７へ出力し、眼鏡の向きに基づく生体判定処理を終了する。
【０２０９】
尚、ステップＳ６０１において、眼鏡の着脱を所定回数行うように指示する行動情報がディスプレイ３に表示された場合、ステップＳ６０２では、顔画像取得部１５は、撮像装置２から所定のフレーム周期で顔画像を随時取得する。第一判定部１６は、顔画像が取得される度に、当該取得した顔画像を用いてステップＳ６０３を行った後、ステップＳ６０４を行う。
【０２１０】
この場合、第一判定部１６は、ステップＳ６０４において、所定の上限時間内に、各ステップＳ６０３における眼鏡の着脱状態の検出結果から、眼鏡を装着していない状態から眼鏡を装着している状態への変化が所定回数以上検出できた場合、眼鏡の着脱状態が、ステップＳ６０１で提示された行動情報が示す眼鏡の着脱状態と同じであると判定する。この場合、ステップＳ６０５において、第一判定部１６は、ユーザが生体であると判定し、当該判定結果を示す情報を第二判定部１７へ出力し、眼鏡の着脱状態に基づく生体判定処理を終了する。
【０２１１】
一方、第一判定部１６は、ステップＳ６０４において、所定の上限時間内に、各ステップＳ６０３における眼鏡の着脱状態の検出結果から、眼鏡を装着していない状態から眼鏡を装着している状態への変化が所定回数以上検出できなかった場合、眼鏡の着脱状態が、ステップＳ６０１で提示された行動情報が示す眼鏡の着脱状態と同じではないと判定する。この場合、ステップＳ６０６において、第一判定部１６は、ユーザが生体ではないと判定し、当該判定結果を示す情報を第二判定部１７へ出力し、眼鏡の開閉状態に基づく生体判定処理を終了する。
【０２１２】
（実施の形態２）
顔画像に含まれる顔が、写真に含まれる顔、若しくは、スマートフォン又はタブレット等のディスプレイに映し出された顔である場合、当該顔画像に、写真又はディスプレイの外枠が含まれていることがある。そこで、実施の形態２の判定装置１は、図３に示すステップＳ１０１以降の処理を行う前に、撮像装置２からユーザの顔を含む顔画像を取得し、当該取得した顔画像に外枠が含まれているか否かを判定する。外枠が含まれている場合、判定装置１は、顔画像に含まれるユーザは生体でないと判定し、顔画像に外枠が含まれていない場合は、図３に示すステップＳ１０１以降の処理を行う。
【０２１３】
これにより、実施の形態２の判定装置１は、顔画像の周囲に外枠が存在し、ユーザが生体でないことがほぼ明らかな場合、図３に示すステップＳ１０１以降の処理を行うことなく、なりすましを検出する。一方、実施の形態２の判定装置１は、顔画像の周囲に外枠が存在しない場合、実施の形態１と同様、図３に示すステップＳ１０１以降の処理を行うことにより、なりすましを困難にする。
【０２１４】
以下、実施の形態２の判定装置１について詳述する。図１０は、外枠判定処理の一例を示すフローチャートである。ステップＳ１００において、受付部１１が生体判定の実行指示の入力を受け付けると、ステップＳ７０１において、顔画像取得部１５は、ユーザの顔を含む顔画像（以降、ユーザ画像）を撮像装置２から取得する。
【０２１５】
ステップＳ７０２では、第二判定部１７は、図５に示すステップＳ３０３と同様、ステップＳ７０１で取得されたユーザ画像から顔領域８０を検出する。図１１は、ユーザ画像１１０から検出される顔領域８０の一例を示す図である。例えば、図１１は、スマートフォンのディスプレイに投影された人物の顔を含む顔領域８０が検出された例を示している。
【０２１６】
次にステップＳ７０３では、第二判定部１７は、縦線検出処理を行う。縦線検出処理とは、ユーザ画像１１０に含まれ得る、写真又はディスプレイの外枠を構成する二本の縦線を検出処理である。
【０２１７】
具体的には、第二判定部１７は、縦線検出処理において、先ず、ユーザ画像１１０の水平方向にのみ、一次微分であるＳｏｂｅｌフィルタ又は二次微分であるラプラシアンフィルタ等を用いたフィルタリング処理を行うことにより、ユーザ画像１１０から水平方向エッジを検出する。水平方向エッジとは、輝度値が水平方向に隣接する画素と顕著に異なる画素群を示す。
【０２１８】
図１２は、縦線検出処理において検出される水平方向エッジの一例を示す図である。例えば、図１２は、図１１に示すユーザ画像１１０の水平方向にのみ、上述のフィルタリング処理を行うことで検出された水平方向エッジを白の画素で示し、当該ユーザ画像１１０におけるその他の画素を黒で示した画像１２０を示している。また、図１２には、図１１に示すユーザ画像１１０から検出された顔領域８０が破線で示されている。
【０２１９】
次に、第二判定部１７は、検出した水平方向エッジのうち、垂直方向に延びる、顔領域８０の左端に最も接近した第一所定長以上の長さを有する第一のエッジと、顔領域８０の右端に最も接近した第一所定長以上の長さを有する第二のエッジと、を検出する。第一所定長としては、例えば、ユーザ画像１１０の垂直方向の長さを基準に妥当な長さが採用される。
【０２２０】
図１２の例では、垂直方向に延びる水平方向エッジとして、顔領域８０の左端に最も接近した第一所定長以上の長さを有する水平方向エッジＥ１と、顔領域８０の右端に最も接近した第一所定長以上の長さを有する垂直方向に延びる水平方向エッジＥ２と、が検出されている。このため、第二判定部１７は、水平方向エッジＥ１を第一のエッジとして検出し、水平方向エッジＥ２を第一のエッジとして検出する。
【０２２１】
次に、ステップＳ７０４において、第二判定部１７は、横線検出処理を行う。横線検出処理とは、ユーザ画像１１０に含まれ得る、写真又はディスプレイの外枠を構成する二本の横線を検出処理である。
【０２２２】
具体的には、横線検出処理において、第二判定部１７は、先ず、ユーザ画像１１０の垂直方向にのみ、縦線検出処理と同様のフィルタリング処理を行うことにより、ユーザ画像１１０から垂直方向エッジを検出する。垂直方向エッジとは、輝度値が垂直方向に隣接する画素と顕著に異なる画素群を示す。
【０２２３】
図１３は、横線検出処理において検出される垂直方向エッジの一例を示す図である。例えば、図１３は、図１２に示す画像１２０において、図１１に示すユーザ画像１１０に対して上述のフィルタリング処理を行うことで検出された垂直方向エッジを白の画素で示した画像１３０を示している。
【０２２４】
次に、第二判定部１７は、検出した垂直方向エッジのうち、水平方向に延びる、顔領域８０の上端に最も接近し、両端が第一のエッジ及び第二のエッジよりも顔領域８０側にある、第二所定長以上の長さを有する第三のエッジと、顔領域８０の下端に最も接近し、両端が第一のエッジ及び第二のエッジよりも顔領域８０側にある、第二所定長以上の長さを有する第四のエッジと、を検出する。第二所定長としては、例えば、ユーザ画像１１０の水平方向の長さを基準に妥当な長さが採用される。
【０２２５】
図１３の例では、水平方向に延びる垂直方向エッジとして、顔領域８０の上端に最も接近し、両端が第一のエッジとして検出された水平方向エッジＥ１及び第二のエッジとして検出された水平方向エッジＥ２よりも顔領域８０側にある、第二所定長以上の長さを有する垂直方向エッジＥ３が検出されている。しかし、顔領域８０の下端に最も接近し、両端が第一のエッジ及び第二のエッジよりも顔領域８０側にある、第二所定長以上の長さを有する垂直方向エッジは検出されていない。このため、第二判定部１７は、垂直方向エッジＥ３を第三のエッジとして検出し、第四のエッジは検出しない。
【０２２６】
次に、ステップＳ７０５において、第二判定部１７は、縦線検出処理及び横線検出処理における検出結果に基づき、ユーザ画像１１０に外枠が含まれているか否かを判定する。
【０２２７】
具体的には、ステップＳ７０５において、第二判定部１７は、縦線検出処理及び前記横線検出処理により検出されたエッジの数の合計が３以上である場合に、ユーザ画像１１０に外枠が含まれていると判定する。上述した図１３の例では、縦線検出処理及び横線検出処理により、第一、第二及び第三の三個のエッジが検出されているため、第二判定部１７は、ユーザ画像１１０に外枠が含まれていると判定する。
【０２２８】
ステップＳ７０５において、ユーザ画像１１０に外枠が含まれていると判定された場合（ステップＳ７０５でＹＥＳ）、図３に示すステップＳ１０１以降の処理が行われず、図３に示すステップＳ１０９以降の処理が行われる。一方、ステップＳ７０５において、ユーザ画像１１０に外枠が含まれていないと判定された場合（ステップＳ７０５でＮＯ）、図３に示すステップＳ１０１以降の処理が行われる。
【０２２９】
尚、ユーザ画像１１０に写真又はディスプレイの外枠が含まれていると判定した場合にユーザが生体ではないと判定されることを知っている悪意のあるユーザは、外枠がユーザ画像１１０に含まれないように、写真又はディスプレイを撮像装置２に接近させる虞がある。
【０２３０】
そこで、第二判定部１７は、ステップＳ７０２において検出された顔領域８０の高さが所定の上限高さより大きい場合、又は、顔領域８０の幅が所定の上限幅より大きい場合、ステップＳ７０３及びステップＳ７０４を行わずに、ステップＳ７０５において、ユーザ画像１１０に外枠が含まれていると判定するようにしてもよい。
【０２３１】
尚、顔領域８０の高さは、顔領域８０の垂直方向の長さを示す。上限高さは、例えば、ユーザ画像１１０の垂直方向の長さの９０％以上に定めればよい。ただし、上限高さは、これに限定されない。顔領域８０の幅は、顔領域８０の水平方向の長さを示す。上限幅は、例えば、ユーザ画像１１０の水平方向の長さの９０％以上に定めればよい。ただし、上限幅は、これに限定されない。
【０２３２】
この構成によれば、悪意のあるユーザが、他人の顔を含む写真又はディスプレイの外枠がユーザ画像１１０に含まれないように、当該ディスプレイを撮像装置２に接近させたことで、ユーザ画像１１０から検出された顔領域８０が上限幅又は上限高さを超える程度に大きくなった場合に、ユーザ画像１１０に外枠が含まれていると判定される。この場合、図３に示すステップＳ１０９以降の処理が行われ、ユーザが生体ではないと判定される。このため、他人の顔を含む写真又はディスプレイを用いたなりすましを意図したユーザが、当該写真又はディスプレイの外枠がユーザ画像１１０に含まれないように、当該写真又はディスプレイを撮像装置２に接近させることを抑制することができる。
【０２３３】
また、図１０に示すユーザ画像１１０に外枠が含まれるか否かの判定方法では、縦線検出処理及び横線検出処理によって３個以上のエッジが検出できなかった場合、ユーザ画像１１０に外枠が含まれていないと判定される。このため、悪意のあるユーザは、他人の顔を含む写真又はディスプレイの外枠を構成する二本以上の枠線がユーザ画像１１０に含まれないように、当該写真又はディスプレイを撮像装置２に撮影させる虞がある。
【０２３４】
図１４は、ユーザ画像１１０に含まれる顔領域８０の一例を示す図である。具体的には、悪意のあるユーザは、例えば図１４に示すように、他人の顔の上端がユーザ画像１１０の上端の近傍となるように、又は、他人の顔の下端がユーザ画像１１０の下端の近傍となるように、当該ディスプレイを撮像装置２に撮影させる虞がある。これらの場合、例えば図１４に示すように、当該ディスプレイの外枠を構成する左右の枠線だけがユーザ画像１１０に含まれることがある。
【０２３５】
そこで、ステップＳ７０５において、第二判定部１７は、更に、ステップＳ７０２で検出した顔領域８０の上端がユーザ画像１１０の上端から所定の第一マージン内に存在する場合、又は、顔領域８０の下端がユーザ画像１１０の下端から所定の第二マージン内に存在する場合に、ステップＳ７０３の縦線検出処理において第一のエッジ及び第二のエッジを検出したとき、ユーザ画像１１０に外枠が含まれていると判定するようにしてもよい。
【０２３６】
尚、第一マージン及び第二マージンは、例えばユーザ画像１１０の垂直方向の長さ（高さ）の１０％以下に定めればよい。この構成によれば、ユーザ画像１１０に、他人の顔が表示されたディスプレイの左部及び右部の二本の枠線しか含まれていない場合であっても、ユーザ画像１１０に外枠が含まれていると判定することができる。
【０２３７】
また、悪意のあるユーザが、他人の顔を含む写真又はディスプレイの外枠の二本以上の枠線がユーザ画像１１０に映りこまないようにするため、当該他人の顔が撮像装置２による撮影画像の左端又は右端付近に位置するように、当該写真又はディスプレイを撮像装置２に撮影させる虞がある。
【０２３８】
図１５は、ユーザ画像１１０に含まれる顔領域８０の他の一例を示す図である。例えば、悪意のあるユーザが、他人の顔がユーザ画像１１０の右端付近に位置するように、当該他人の顔を含むディスプレイを撮像装置２に撮影させたとする。この場合、図１５に示すように、当該ディスプレイの外枠を構成する、Ｌ字状に交差する左部及び下部の枠線だけがユーザ画像１１０に含まれる虞がある。また、この場合、当該ディスプレイの外枠を構成するＬ字状に交差する左部及び上部の枠線だけがユーザ画像１１０に含まれる虞もある。同様に、悪意のあるユーザが、他人の顔がユーザ画像１１０の左端付近に位置するように、当該他人の顔を含むディスプレイを撮像装置２に撮影させた場合、当該ディスプレイの外枠を構成する、Ｌ字状に交差する、左部及び上部又は下部の枠線だけがユーザ画像１１０に含まれる虞がある。
【０２３９】
そこで、ステップＳ７０５において、第二判定部１７は、更に、ステップＳ７０２において検出された顔領域８０の左端がユーザ画像１１０の左端から所定の第三マージン内に存在する又は顔領域８０の右端がユーザ画像１１０の右端から所定の第四マージン内に存在する場合、ステップＳ７０３の縦線検出処理において検出された第一のエッジ又は第二のエッジと、ステップＳ７０４の横線検出処理において検出された第三のエッジ又は第四のエッジと、が交差するときに、ユーザ画像１１０に外枠が含まれていると判定するようにしてもよい。
【０２４０】
尚、第三マージン及び第四マージンは、例えば、ユーザ画像１１０の水平方向の長さ（幅）の１〜５％の長さに定めればよい。ただし、第三マージン及び第四マージンは、これに限定されない。
【０２４１】
つまり、第二判定部１７は、ステップＳ７０２において検出された顔領域８０の左端がユーザ画像１１０の左端から所定の第三マージン内に存在する又は顔領域８０の右端がユーザ画像１１０の右端から所定の第四マージン内に存在する場合に、ステップＳ７０３の縦線検出処理及びステップＳ７０４の横線検出処理によって、Ｌ字状に交差する二本のエッジが検出されたときは、ユーザ画像１１０に外枠が含まれていると判定するようにしてもよい。
【０２４２】
この構成によれば、ユーザ画像１１０に、他人の顔が表示されたディスプレイの外枠を構成する左部及び下部の二本の枠線等のＬ字状に交差する二本の枠線しか含まれていない場合であっても、ユーザ画像１１０に外枠が含まれていると判定することができる。
【０２４３】
本開示は、以下の変形例が採用できる。
【０２４４】
（１）図３に示すステップＳ１０２において、ステップＳ１０１で選択された２以上の生体判定処理のそれぞれが実行された場合に、各生体判定処理において、ステップＳ１０３からステップＳ１０５に対応する処理を複数回行うようにしてもよい。そして、各ステップＳ１０３に対応する処理では、出力部１４は、ユーザに提示する行動をランダムに決定してもよい。
【０２４５】
例えば、ステップＳ１０２（図３）において、目の向きに基づく生体判定処理が実行された場合に、ステップＳ１０３（図３）に対応するステップＳ３０１（図５）と、ステップＳ１０４（図３）に対応するステップＳ３０２（図５）と、ステップＳ１０５（図３）に対応するステップＳ３０３（図５）以降の処理と、を実行することを、複数回行うようにしてもよい。また、各ステップＳ３０１（図５）では、出力部１４は、ディスプレイ３に表示する行動情報において指示する目の向きをランダムに決定してもよい。
【０２４６】
本構成によれば、ユーザが生体であるか否かの判定のために実行される生体判定処理の数、内容、及び実行順序と各生体判定処理において提示される行動の数及び内容とに応じて、生体判定を実行するパターンが指数関数的に増大する。このため、悪意のあるユーザが、ユーザが生体であると判定されるような顔画像を予め用意することをより困難にすることができる。
【０２４７】
（２）図３に示すステップＳ１０１において、判定方法決定部１２は、ユーザの状態を検出し、生体判定処理に必要な行動が当該検出したユーザの状態に適している生体判定処理を選択するようにしてもよい。
【０２４８】
本構成は、例えば以下のようにして実現することができる。判定方法決定部１２は、ステップＳ１０１において、先ず、撮像装置２にユーザの顔を含む顔画像を取得させる。そして、判定方法決定部１２は、当該取得した顔画像を、顔領域を検出する分類器に入力して、顔領域８０を検出する。
【０２４９】
次に、判定方法決定部１２は、眼鏡の領域を検出する分類器に当該検出した顔領域８０を入力して、顔領域８０に含まれる眼鏡の領域を検出する。当該検出器によって眼鏡の領域が検出されなかった場合、ユーザが裸眼の状態であるため、判定方法決定部１２は、複数の生体判定処理のうち、眼鏡の着脱状態に基づく生体判定処理を除いた２以上の生体判定処理を選択する。
【０２５０】
また、判定方法決定部１２は、サングラスの領域を検出する分類器に上記検出した顔領域８０を入力して、顔領域８０に含まれるサングラスの領域を検出するようにしてもよい。当該検出器によってサングラスの領域が検出された場合、ユーザが目の向き及び目の開閉状態を検出できない状態であるため、判定方法決定部１２は、複数の生体判定処理のうち、目の向き及び目の開閉状態に基づく生体判定処理を除いた２以上の生体判定処理を選択するようにしてもよい。
【０２５１】
また、判定方法決定部１２は、マスクの領域を検出するための分類器に上記検出した顔領域８０を入力して、顔領域８０に含まれるマスクの領域を検出するようにしてもよい。当該検出器によってマスクの領域が検出された場合、ユーザが口の開閉状態を検出できない状態であるため、判定方法決定部１２は、複数の生体判定処理のうち、口の開閉状態に基づく生体判定処理を除いた２以上の生体判定処理を選択するようにしてもよい。
【０２５２】
本構成によれば、ユーザが生体であるか否かの判定のために実行する生体判定処理として、ユーザの状態に適した行動を必要とする２以上の生体判定処理を選択することができる。
【０２５３】
（３）図３に示すステップＳ１０７において、第二判定部１７が、ステップＳ１０１で選択された２以上の各生体判定処理における第一判定部１６による判定の結果を数値化し、当該数値化した結果を、生体判定処理毎に定められた係数で重み付け加算するようにしてもよい。そして、第二判定部１７が、当該重み付け加算の結果が所定の数値条件を満たす場合に、第一判定部１６による判定結果が所定の条件を満たすと判定するようにしてもよい。
【０２５４】
本構成は、例えば以下のようにして実現することができる。第一判定部１６は、ステップＳ１０１で選択された２以上の各生体判定処理において、ユーザが生体であると判定した場合、当該判定結果を１と数値化する。一方、第一判定部１６は、ユーザが生体ではないと判定された場合、当該判定結果を０と数値化する。また、ステップＳ１０１で選択された２以上の生体判定処理の数の２／３を閾値とし、各生体判定処理の判定結果を重み付け加算した結果が当該閾値以上である場合に、数値条件を満たすものとする。
【０２５５】
この場合、第二判定部１７は、各生体判定処理に定められた係数を１として各生体判定処理の判定結果を重み付け加算し、当該重み付け加算の結果が閾値以上であれば、数値条件を満たすので、第一判定部１６による判定結果が所定の条件を満たすと判定する。一方、第二判定部１７は、上記重み付け加算の結果が閾値未満であれば、数値条件を満たさないので、第一判定部１６による判定結果が所定の条件を満たさないと判定する。
【０２５６】
又は、例えば、ステップＳ１０１で、顔の向きに基づく生体判定処理と、目の向きに基づく生体判定処理と、が選択されたとする。この場合に、図４に示すステップＳ２０１では、顔の向きを右に向けるように指示する行動情報がディスプレイ３に表示され、図５に示すステップＳ３０１では、目の向きを右に向けるように指示する行動情報がディスプレイ３に表示されたとする。また、顔の向きに基づく生体判定処理による生体判定の精度の方が目の向きに基づく生体判定処理よりも高いものとして、判定結果の重み付け加算に用いる顔の向きに基づく生体判定処理の係数を０．７とし、目の向きに基づく生体判定処理の係数を０．３とする。
【０２５７】
この場合、第一判定部１６は、図４に示すステップＳ２０６において、ステップＳ２０４及びステップＳ２０５で算出した顔の向きの水平成分の値を、顔の向きが真横且つ右向きであるときの顔の向きの水平成分の値で除算した結果を、数値化した判定結果として出力する。同様に、第一判定部１６は、図５に示すステップＳ３０６において、ステップＳ３０５で算出した目の水平方向の向きの値を、目の向きが真横且つ右向きであるときの目の水平方向の向きの値で除算した結果を、数値化した判定結果として出力する。また、ステップＳ１０１で選択された生体判定処理の数の２／３を閾値とし、各生体判定処理の判定結果を重み付け加算した結果が当該閾値以上である場合に、数値条件を満たすものとする。
【０２５８】
この場合、第二判定部１７は、顔の向きに基づく生体判定処理の判定結果と係数０．７との積と目の向きに基づく生体判定処理の判定結果と係数０．３との積との和が示す、第一判定部１６による判定結果の重み付け加算の結果が閾値以上であれば、数値条件を満たすので、第一判定部１６による判定結果が所定の条件を満たすと判定する。一方、第二判定部１７は、上記重み付け加算の結果が閾値未満であれば、数値条件を満たさないので、第一判定部１６による判定結果が所定の条件を満たさないと判定する。
【０２５９】
本構成によれば、上述の例のように、各生体判定処理の判定精度に応じて係数を調整する等して、ユーザが生体であるか否かの判定精度を向上させることができる。
【産業上の利用可能性】
【０２６０】
本開示によれば、生体判定の精度を向上できるため、生体判定の技術分野において有用である。
【符号の説明】
【０２６１】
１        ：判定装置
１０      ：プロセッサ（コンピュータ）
１１      ：受付部
１２      ：判定方法決定部
１３      ：実行部
１４      ：出力部
１５      ：顔画像取得部
１６      ：第一判定部
１７      ：第二判定部
１１０    ：ユーザ画像
【要約】
【課題】生体判定の精度の更なる向上を図る。
【解決手段】判定方法は、画像に含まれる人が生体であるか否かを判定する複数の生体判定処理の中から２以上の生体判定処理を選択し、選択された２以上の生体判定処理を実行する順序を決定し、選択された２以上の生体判定処理のそれぞれを決定された順序で実行し、選択された２以上の生体判定処理のそれぞれにおいて、生体判定処理に必要な行動をユーザに提示する処理と、提示された行動に応じてユーザが行動した際の顔を含む顔画像を取得する処理と、顔画像に含まれる顔の部位の特徴に基づきユーザが生体であるか否かを判定する処理とを行い、選択された２以上の生体判定処理のそれぞれから得られた判定結果が所定の条件を満たすか否かを判定し、判定結果が所定の条件を満たす場合、ユーザが生体であると判定し、判定結果が所定の条件を満たさない場合、ユーザが生体でないと判定する。
【選択図】図２【図１】
0006956986.tif 000002
【図２】
0006956986.tif 000003
【図３】
0006956986.tif 000004
【図４】
0006956986.tif 000005
【図５】
0006956986.tif 000006
【図６】
0006956986.tif 000007
【図７】
0006956986.tif 000008
【図８】
0006956986.tif 000009
【図９】
0006956986.tif 000010
【図１０】
0006956986.tif 000011
【図１１】
0006956986.tif 000012
【図１２】
0006956986.tif 000013
【図１３】
0006956986.tif 000014
【図１４】
0006956986.tif 000015
【図１５】
0006956986.tif 000016