(57)【特許請求の範囲】
【請求項１】
顔認識の、コンピュータによりインプリメントされる方法であって、
認識プロセス中に、認識されるべき観測された顔の複数の画像を受信することと、
前記受信した複数の画像内の前記観測された顔の１つまたは複数の特徴点を検出することと、 
少なくとも前記認識プロセスの一部として前記観測された顔の前記複数の画像のうちの２つ以上の選択された画像に少なくとも基づいて、前記観測された顔のテンプレートを生成することと、ここにおいて、前記観測された顔の前記テンプレートを生成することは、前記複数の画像のうちの前記２つ以上の選択された画像の特徴ベクトルに少なくとも基づいて、前記観測された顔の部分空間を生成することを含み、前記特徴ベクトルの各々は、前記観測された顔の前記１つまたは複数の検出された特徴点のうちの１つを中心とするバイナリパターンを備える、
既知の人物のアイデンティティおよび対応する顔データのデータベースを探索することと、なお、前記探索することは、前記観測された顔の前記テンプレートと、前記既知の人物の前記顔データとに少なくとも基づく、
前記探索に少なくとも基づいて、前記既知の人物の１つまたは複数のアイデンティティを選択することと、
を備えるコンピュータによりインプリメントされる方法。
【請求項２】
前記データベースの各アイデンティティは、１つの基準画像に基づくデータと関連づけられる、請求項１に記載のコンピュータによりインプリメントされる方法。
【請求項３】
画像センサを用いて、前記観測された顔の前記複数の画像をキャプチャすることをさらに備える、請求項１に記載のコンピュータによりインプリメントされる方法。
【請求項４】
前記特徴ベクトルは、前記選択された画像の線形バイナリパターンヒストグラムに少なくとも基づく、請求項１に記載のコンピュータによりインプリメントされる方法。
【請求項５】
前記特徴ベクトルは、フィルタされた画像ブロックのカスケードに少なくとも基づく、請求項１に記載のコンピュータによりインプリメントされる方法。
【請求項６】
前記部分空間は、前記複数の画像のうちの前記２つ以上の選択された画像の前記特徴ベクトルの平均と分散に関連づけられる、請求項１に記載のコンピュータによりインプリメントされる方法。
【請求項７】
前記データベースを探索することは、前記観測された顔の前記テンプレートと、前記既知の人物の前記対応する顔データのうちの１つまたは複数の各々との間の誤差測定を決定することを備える、請求項１に記載のコンピュータによりインプリメントされる方法。
【請求項８】
前記誤差測定は、カイ二乗距離に基づく、請求項７に記載のコンピュータによりインプリメントされる方法。
【請求項９】
前記１つまたは複数のアイデンティティの前記選択は、前記誤差測定のしきい値に基づく、請求項７に記載のコンピュータによりインプリメントされる方法。
【請求項１０】
前記観測された顔の向きに基づいて、前記複数の画像のうちの前記２つ以上の画像を選択することをさらに備える、請求項１に記載のコンピュータによりインプリメントされる方法。
【請求項１１】
前記複数の画像のうちの前記２つ以上の画像の前記選択は、関心のある顔の特徴にさらに基づく、請求項１０に記載のコンピュータによりインプリメントされる方法。
【請求項１２】
前記複数の画像のうちの前記２つ以上の画像の前記選択は、前記データベースの前記顔データの顔の向きにさらに基づく、請求項１０に記載のコンピュータによりインプリメントされる方法。
【請求項１３】
前記１つまたは複数の選択されたアイデンティティを示すデータをグラフィカル・ディスプレイに表示することをさらに備える、請求項１０に記載のコンピュータによりインプリメントされる方法。
【請求項１４】
前記２つ以上の選択されたアイデンティティの前記選択を確認するようにユーザに促すことと、
前記ユーザの前記確認に応答して、前記データベースを更新することと、
をさらに備える、請求項１３に記載のコンピュータによりインプリメントされる方法。
【請求項１５】
顔認識装置であって、
認識プロセス中に、認識されるべき観測された顔の複数の画像を受信し、
前記受信した複数の画像内の前記観測された顔の１つまたは複数の特徴点を検出し、
少なくとも前記認識プロセスの一部として前記観測された顔の前記複数の画像のうちの２つ以上の選択された画像に少なくとも基づいて、前記観測された顔のテンプレートを生成し、ここにおいて、前記観測された顔の前記テンプレートを生成することは、前記複数の画像のうちの前記２つ以上の選択された画像の特徴ベクトルに少なくとも基づいて、前記観測された顔の部分空間を生成することを含み、前記特徴ベクトルの各々は、前記観測された顔の前記１つまたは複数の検出された特徴点のうちの１つを中心とするバイナリパターンを備える、
既知の人物のアイデンティティおよび対応する顔データのデータベースを探索し、なお、前記探索することは、前記観測された顔の前記テンプレートと、前記既知の人物の前記顔データとに少なくとも基づく、
前記探索に少なくとも基づいて、前記既知の人物の１つまたは複数のアイデンティティを選択する
ように構成されるプロセッサ、
を備える顔認識装置。
【請求項１６】
前記プロセッサは、前記既知の人物の前記選択された１つまたは複数のアイデンティティを示すデータを転送するようにさらに構成され、ここにおいて、前記データベースの各アイデンティティは、１つの基準画像に基づくデータと関連づけられる、請求項１５に記載の顔認識装置。
【請求項１７】
画像センサをさらに備え、ここにおいて、前記プロセッサは、前記画像センサから前記観測された顔の複数の画像をキャプチャするようにさらに構成される、請求項１５に記載の顔認識装置。
【請求項１８】
命令を記憶した非一時的なコンピュータ可読媒体であって、前記命令は、実行されると、プロセッサに、
認識プロセス中に、認識されるべき観測された顔の複数の画像を受信することと、
前記受信した複数の画像内の前記観測された顔の１つまたは複数の特徴点を検出することと、
前記複数の画像のうちの２つ以上の選択された画像の特徴ベクトルに少なくとも基づいて前記観測された顔の部分空間を生成することに基づいて、少なくとも前記認識プロセスの一部として前記観測された顔の前記複数の画像のうちの２つ以上の選択された画像に少なくとも基づく前記観測された顔のテンプレートを生成することと、なお、前記特徴ベクトルの各々は、前記観測された顔の前記１つまたは複数の検出された特徴点のうちの１つを中心とするバイナリパターンを備える、
既知の人物のアイデンティティおよび対応する顔データのデータベースを探索することと、なお、前記探索することは、前記観測された顔の前記テンプレートと、前記既知の人物の前記顔データとに少なくとも基づく、
前記探索に少なくとも基づいて、前記既知の人物の１つまたは複数のアイデンティティを選択することと、
前記２つ以上の選択されたアイデンティティを示すデータをグラフィカル・ディスプレイに表示することと、
を行わせる、非一時的なコンピュータ可読媒体。
【請求項１９】
前記データベースの各アイデンティティは、１つの基準画像に基づくデータと関連づけられ、前記１つまたは複数の選択されたアイデンティティは、前記観測された顔の前記テンプレートのしきい値距離内の特徴ベクトルと関連づけられる、請求項１８に記載の非一時的なコンピュータ可読媒体。
【請求項２０】
顔認識の、コンピュータによりインプリメントされる方法であって、
認識プロセス中に、認識されるべき観測された顔の複数の画像を受信することと、
前記複数の画像のうちの２つ以上の画像を選択することと、前記２つ以上の画像の前記選択は、前記観測された顔の向きに基づき、前記２つ以上の画像の前記選択は、関心のある顔の特徴に基づく、
少なくとも前記認識プロセスの一部として前記２つ以上の選択された画像に少なくとも
基づいて、前記観測された顔のテンプレートを生成することと、
既知の人物のアイデンティティおよび対応する顔データのデータベースを探索することと、なお、前記探索することは、前記観測された顔の前記テンプレートと、前記既知の人物の前記顔データとに少なくとも基づく、
前記探索に少なくとも基づいて、前記既知の人物の１つまたは複数のアイデンティティを選択することと、
を備えるコンピュータによりインプリメントされる方法。
【請求項２１】
顔認識の、コンピュータによりインプリメントされる方法であって、
認識プロセス中に、認識されるべき観測された顔の複数の画像を受信することと、
前記複数の画像のうちの２つ以上の画像を選択することと、前記２つ以上の画像の前記選択は、前記観測された顔の向きに基づき、前記２つ以上の画像の前記選択は、データベースの顔データの顔の向きに基づく、
少なくとも前記認識プロセスの一部として前記２つ以上の選択された画像に少なくとも基づいて、前記観測された顔のテンプレートを生成することと、
既知の人物のアイデンティティおよび対応する顔データのデータベースを探索することと、なお、前記探索することは、前記観測された顔の前記テンプレートと、前記既知の人物の前記顔データとに少なくとも基づく、
前記探索に少なくとも基づいて、前記既知の人物の１つまたは複数のアイデンティティを選択することと、
を備えるコンピュータによりインプリメントされる方法。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]  本開示は、一般的には、画像処理に関する。より具体的には、本開示は、顔認識（facial recognition）に向けられる。
【背景技術】
【０００２】
[0002]  技術における進歩は、ますます強力なコンピューティングおよび通信の能力を有する携帯用デバイスをもたらした。例えば、携帯用無線電話、携帯情報端末（ＰＤＡ）、ラップトップコンピュータ、タブレットパーソナルコンピュータ、イーブックビューアー（eBook viewers）、およびこれに類するものなどの、様々な携帯用コンピューティングデバイスが現在存在している。より具体的には、このようなデバイスの多くは、写真およびビデオを撮るためのデジタル撮像センサ（digital imaging sensors）を含むことができ、また、有線または無線ネットワーク上で音声およびデータパケットを通信することができる。したがって、このような携帯用デバイスは、ビデオおよび画像をダウンロードすることが可能でありうる。１つのインプリメンテーションでは、セルラ電話は、ユーザにとって既知の人物の連絡先リスト（a contact list）を記憶しうる。ユーザはまた、選択された連絡先に写真を選択的に割り当てることが可能でありうる。写真は、セルラ電話上のカメラを用いて画像をキャプチャすることによって、または、インターネットのようなネットワークから適切な写真をダウンロードすることによって、受信されうる。
【０００３】
[0003]  さらに、顔認識における進歩は、ある状況においては未知の人物を識別することが可能なシステムをもたらした。これらのシステムは、識別されるべき人物の複数の画像を伴う事前トレーニング（prior training）を実行することを必要としうる。いくつかの例では、トレーニングプロセスは、トレーニングプロセスの正確性を確実にするために、オフラインの方法で実行される。
【発明の概要】
【０００４】
[0004]  本発明のシステム、方法、およびデバイスは、いくつかの態様をそれぞれ有し、これらのうちのどれ１つとして、単独でその望ましい属性を担うものではない。後続する特許請求の範囲によって示される本発明の範囲を限定することなく、ここでいくつかの特徴が簡潔に説明される。この説明を考慮した後に、また、特に「詳細な説明」と題されたセクションを読んだ後に、当業者であれば、どのように本発明の特徴が、観測された顔（an observed face）の顔認識（facial recognition）を実行するために必要な既知の顔の画像の数を低減させることを含む利点を提供するかを理解するであろう。
【０００５】
[0005]  １つの実施形態は、顔認識の、コンピュータによりインプリメントされる方法である。この方法は、識別のために、観測された顔の複数の画像を受信することと、複数の画像のうちの２つ以上の選択された画像に少なくとも基づいて、観測された顔のテンプレートを生成することと、既知の人物のアイデンティティおよび対応する顔データ（facial data）のデータベースを探索することと、この探索に少なくとも基づいて、既知の人物の１つまたは複数のアイデンティティ（identities）を選択することと、を含みうる。探索することは、観測された顔のテンプレートと、既知の人物の顔データとに少なくとも基づきうる。様々な実施形態では、コンピュータによりインプリメントされる方法は、画像センサを用いて、観測された顔の複数の画像をキャプチャすることをさらに含みうる。データベースの各アイデンティティは、１つの基準画像（reference image）に基づくデータと関連づけられうる。観測された顔のテンプレートを生成することは、複数の画像のうちの２つ以上の選択された画像の特徴ベクトル（feature vectors）に少なくとも基づいて、観測された顔の部分空間（a subspace）を生成することを含みうる。いくつかの実施形態では、特徴ベクトルは、選択された画像の線形バイナリパターンヒストグラム（linear binary pattern histograms）に少なくとも基づきうる。他の実施形態では、特徴ベクトルは、フィルタされた画像ブロックのカスケード（a cascade of filtered image blocks）に少なくとも基づきうる。部分空間は、複数の画像のうちの２つ以上の選択された画像の特徴ベクトルの平均（a mean）と分散（a variance）に関連づけられうる。データベースを探索することは、観測された顔のテンプレートと、既知の人物の対応する顔データのうちの１つまたは複数の各々との間の誤差測定（error measure）を決定することを含むことができ、ここで、誤差測定は、カイ二乗距離（Chi-square distance）に基づくことができる。１つまたは複数のアイデンティティの選択は、誤差測定のしきい値に基づきうる。コンピュータによりインプリメントされる方法のいくつかの実施形態は、観測された顔の向き（orientation）に基づいて、複数の画像のうちの２つ以上の画像を選択することをさらに含みうる。複数の画像のうちの２つ以上の画像の選択は、関心のある顔の特徴（facial feature of interest）にさらに基づきうる。複数の画像のうちの２つ以上の画像の選択は、データベースの顔データの顔の向きにさらに基づきうる。コンピュータによりインプリメントされる方法のいくつかの実施形態は、１つまたは複数の選択されたアイデンティティを示すデータをグラフィカル・ディスプレイに表示すること（displaying on a graphical display data indicative of）をさらに含みうる。コンピュータによりインプリメントされる方法のいくつかの実施形態は、２つ以上の選択されたアイデンティティの選択を確認する（confirm）ようにユーザに促すこと（prompting）と、ユーザの確認（confirmation）に応答して、データベースを更新することと、をさらに含みうる。
【０００６】
[0006]  なお別の実施形態は、顔認識装置である。この装置は、画像受信機モジュール（an image receiver module）、テンプレートモジュール、探索モジュール、および認識モジュールを含みうる。画像受信機モジュールは、識別のために、観測された顔の複数の画像を受信するようにプロセッサを構成する命令を含みうる。テンプレートモジュールは、複数の画像のうちの２つ以上の選択された画像に少なくとも基づいて、観測された顔のテンプレートを生成するようにプロセッサを構成する命令を含みうる。探索モジュールは、既知の人物のアイデンティティおよび対応する顔データのデータベースを探索するようにプロセッサを構成する命令を含みうる。
【０００７】
[0007]  なお別の実施形態は、命令を記憶した非一時的なコンピュータ可読媒体であって、該命令は実行されると、プロセッサに、識別のために、観測された顔の複数の画像を受信することと、複数の画像のうちの２つ以上の選択された画像に少なくとも基づいて、観測された顔のテンプレートを生成することと、既知の人物のアイデンティティおよび対応する顔データのデータベースを探索することと、この探索に少なくとも基づいて、既知の人物の１つまたは複数のアイデンティティを選択することとの方法を実行させうる。
【図面の簡単な説明】
【０００８】
【図１】図１は、１つの実施形態による、既知の人物の１つの基準画像から未知の人物を識別するためのシステムを示すブロック図である。
【図２】図２は、複数の画像から未知の人物を識別するためのクライアントサーバシステムの典型的な実施形態を示すブロック図である。
【図３】図３は、１つの実施形態による、顔認識の方法のデータフロー図である。
【図４】図４は、１つの実施形態による、観測された顔を認識する方法を示すフロー図である。
【図５】図５は、１つの実施形態による、顔検出（facial detection）アルゴリズムを用いて処理される画像の例示的な例を示す。
【図６Ａ】図６Ａは、１つの実施形態による、特徴抽出プロセスのフローチャートである。
【図６Ｂ】図６Ｂは、１つの実施形態による、画素（a pixel）に適用されるＬＢＰ動作の例示を示す。
【図７】図７は、顔認識システムの典型的な実施形態のフロー図である。
【発明を実施するための形態】
【０００９】
[0016]  本発明の実施形態は、複数の画像から未知の人物を識別するためのシステムおよび方法に関する。１つの実施形態では、システムは、認識されるべき人物の複数の画像をキャプチャして、既知の人物のデータベースからの基準画像と比較されるべき、これら画像からの顔の特徴または人物の顔のパターンを生じさせる（develops）。例えば、部分空間は、人物の顔のいくつかの画像の特徴ベクトルを計算することによって計算されることができ、この部分空間は、既知の人物の基準特徴ベクトル（a reference feature vector）と比較されることができる。１つの実施形態では、このシステムは、セルラ電話のような、携帯用コンピューティングデバイスでインプリメントされうる。例えば、ユーザは、ミーティングに入る同僚（a colleague）のビデオをキャプチャするために、カメラを備えた電話を使用し、この同僚の名前を識別するために、このビデオからのこれらの複数の画像を、電話またはサーバ上に記憶されたデータベースにおける複数の同僚の単一の画像（single images of colleagues）と比較しうる。
【００１０】
[0017]  １つの特定の例では、このシステムは、撮像センサと連絡先（contacts）のデータベースとを備えたハンドヘルド携帯用デバイス上にインプリメントされうる。人物が入室した場合、ユーザは、この人物の複数の画像を撮ることができ、このシステムは、合成画像を生じさせ（develop a composite image）、この合成画像を、それらの連絡先とともに記憶された全ての画像と比較することができる。合成画像が連絡先のデータベース（contact database）における人物と一致した場合には、入室した人物の名前、称号（title）および画像がユーザに対して表示される。これは、ユーザが、各人物の名前を尋ねる必要なしに、ミーティング内の各人物を識別することを可能にする。
【００１１】
[0018]  開示された方法、装置およびシステムは、トレーニングプロセスにおいて１人につき１つの顔画像のみで機能しうる。これは、レガシー顔認識データベースをより良く適応させる（accommodate）ことができ、それは、１人につき１つの基準画像のみを提供することができる。開示された顔認識方法は、認識プロセス中に、未知のまたは観測された人物の１つより多くの顔画像を収集する。複数の画像の収集は、例えば、セル電話などのモバイルデバイスと一体化されたもののような、現代のデジタルカメラのフレームレート（≧毎秒３０フレーム）により可能になりうる。これらの複数の顔画像は、観測されたまたは未知の人物の顔画像のテンプレートまたは部分空間を構築するために使用されうる。その後、データベースにおける既知の個人の基準顔データまたは画像は、テンプレートまたは部分空間と比較される。最も近い一致（closest match）を提供する基準画像が、識別および認識されうる。これはまた、例えば、モバイルデバイスのコンピューティングリソースのような、制限されたコンピューティングリソースを有するアプリケーション環境において有用でありうる。
【００１２】
[0019]  顔のテンプレートの例は、それに限定されるものではないが、画像の合成、モデル、パターン、またはコードを形成するために、複数の顔画像を集約（aggregating）または組み合わせた結果を含む。１つの実施形態では、これら画像は、システム内の記憶空間を節約するために、低減された形状で記憶される。複数の画像の部分空間は、テンプレートの一例である。（例えば、プーリング動作（pooling operation）によって）複数の画像を組み合わせるまたは比較することによって形成される画像は、テンプレートの別の例である。
【００１３】
[0020]  顔データの例は、例えば、画像およびテンプレートを含む。１つの実施形態では、顔データは、例えば、動作中に記憶空間または処理を低減させるために、テンプレート形式で基準データベースに記憶される。
【００１４】
[0021]  図１は、１つの実施形態による、既知の人物の１つの基準画像から未知の人物を識別するためのシステム１００を示す。システム１００は、未知の人物１０４を識別するための電子デバイス１０２を含む。電子デバイス１０２は、プロセッサ１１２に結合された画像センサ（an image sensor）１０６と、入力デバイス１０８と、出力デバイス１１０とを含む。プロセッサ１１２はまた、記憶装置１１４、メモリ１１６、および通信デバイス１１８に結合される。メモリ１１６は、画像受信機モジュール１２０、部分空間モジュール１２４、探索モジュール１２６、認識モジュール１２８、および入力／出力（Ｉ／Ｏ）モジュール１３０を含む。電子デバイス１０２は、未知の人物１０４の複数の画像をキャプチャし、ユーザ（図示せず）に対して、この未知の人物のアイデンティティを識別するように構成される。
【００１５】
[0022]  撮像センサ（the imaging sensor）１０６は、メモリ１１６の画像受信機モジュール１２０の特定の命令を実行しているプロセッサ１１２からの制御に応答して画像をキャプチャおよび供給するように構成される。撮像センサ１０６の例は、デジタル電荷結合素子（ＣＣＤ）カメラ、赤外線カメラ、およびこれに類するものを含む。いくつかの実施形態では、図２を参照して以下に説明されるように、撮像センサ１０６は、オプションであり、未知の人物１０４の画像は、例えば、記憶装置１１４またはメモリ１１６に記憶されて、またそれから取り出され、または入力デバイス１０８または通信デバイス１１８から受信される。
【００１６】
[0023]  入力デバイス１０８は、ディスプレイ、キーパッド、マウス、タッチスクリーン、マイクロフォン、データドライブまたはポート（例えば、携帯用データデバイスのためのユニバーサルシリアルバス（ＵＳＢ）ポートまたは光ディスクドライブ）、または電子デバイス１０２に入力を提供するように構成されたその他の同様のデバイスを含みうる。例えば、動作中に入力デバイス１０８は、ユーザが、電子デバイス１０２のグラフィカルユーザインタフェースを通じて、画像のキャプチャおよび顔認識プロセスを開始することを可能にしうる。さらに、以下に説明されるように、入力デバイス１０８は、何らかの認識基準を満たす２つ以上の基準画像の間で選択するなど、ユーザが、顔認識プロセスを支援するために追加の入力を提供することを可能にしうる。
【００１７】
[0024]  出力デバイス１１０は、光ディスプレイ、スピーカ、またはプロセッサ１１２の制御下で出力を提供するように構成されたその他の同様のデバイスでありうる。動作中、出力デバイス１１０は、いくつかの実施形態では、既知の人物のデータベース（「基準データベース（reference database）」）の探索の結果を表示しうる。例えば、出力デバイス１１０は、探索モジュール１２６および認識モジュール１２８によって基準データベースから選択された人物の画像およびアイデンティティを表示するように構成されたセルラ電話のディスプレイ画面でありうる。
【００１８】
[0025]  入力デバイス１０８および出力デバイス１１０は、プレビュー画像（a preview image）が表示されている間に、顔認識のためにいつデータが収集されるかを制御する（control when data is collected for face recognition）ためのユーザインタフェースを提供しうる。いくつかのインプリメンテーションはまた、認識プロセスが、１つの画像の高い信頼度（high-confidence）の認識をもたらさない場合、ユーザに１つより多くの既知の顔画像を提供しうる。このケースでは、ユーザは、返された画像（returned images）のうちのどれが観測された顔として適正に認識されるかを選択する能力を提供されうる。ユーザはまた、表示された画像のうちのいずれも観測された顔との適正な一致でないことを示すためのオプションを与えられうる。
【００１９】
[0026]  プロセッサ１１２は、メモリ１１６からの命令を実行して撮像センサ１０６、入力デバイス１０８、出力デバイス１１０、記憶装置１１４、メモリ１１６、通信デバイス１１８を制御および動作するように構成され、かつこれらのデバイスへのおよびこれらのデバイスからのデータの処理を制御するように構成された、マイクロプロセッサまたはマイクロコントローラのような、回路を含む。
【００２０】
[0027]  記憶装置１１４およびメモリ１１６は、化学的、磁気的、電気的、光学的、または同様の手段によって情報を記憶するために構成されたメカニズムを含む。例えば、記憶装置１１４およびメモリ１１６はそれぞれ、フラッシュメモリまたはハードディスクドライブのような、不揮発性メモリデバイス、または、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）またはスタティックランダムアクセスメモリ（ＳＲＡＭ）のような、揮発性メモリデバイスでありうる。プロセッサ１１２は、記憶装置１１４から読み取ることによって、基準データベースにアクセスしうる。図１は、電子デバイスの一部として記憶装置およびメモリを示す。例えば、記憶装置１１４は、連絡先リストのような、既知の人物の基準データベースを含んでいるセル電話上の不揮発性メモリでありうる。しかしながら、いくつかの実施形態では、図２に関連して説明されるように、記憶装置１１４はまた、別のデバイス上に遠く離れて位置し、例えば、ネットワーク上で、通信チャネルによってアクセスされうる。
【００２１】
[0028]  通信デバイス１１８は、未知の人物の画像に関連するデータまたは基準データベースに関連するデータなどのデータを送信および受信するための通信インタフェースをプロセッサ１１２に提供するように構成された電子機器を含む。例えば、プロセッサ１１２は、基準データベースの既知の人物のデータに関連する画像または複数の画像を要求するように構成されうる。通信は、コンピュータまたは電気通信ネットワーク上の無線または有線の通信でありうる。
【００２２】
[0029]  画像受信機モジュール１２０は、複数の画像を受信するようにプロセッサ１１２を構成する命令を含む。１つの実施形態では、画像は、入力デバイス１０８から受信されうる。別の実施形態では、画像は、画像をキャプチャする撮像センサ１０６から直接受信されうる。別の実施形態では、画像は、通信デバイス１１８を介してネットワーク（図示せず）から受信されうる。なお別の実施形態では、画像は、記憶装置１１４、メモリ１１６、または入力デバイス１０８を介して電子デバイス１０２と接続されるデータ記憶デバイスなどの、データ記憶装置から画像データをロードすることによって受信されうる、
[0030]  メモリ１１６内には、システムによって受信された画像について、入力またはキャプチャされた画像から１つまたは複数の顔を識別するようにプロセッサ１１２を構成する命令を含む顔検出モジュール１３２がある。例えば、顔検出モジュール１３２は、顔検出、特徴検出、顔画像の正規化、および複数の受信された画像からの２つ以上の画像の選択に関連する命令を含みうる。１つの実施形態では、選択は、正面の顔の向き（a frontal face orientation）のような、対応する画像における顔の向きに基づく。顔検出システムの例は、例えば、２０１１年２月２４日に出願された米国特許出願公開第２０１１００４７３８４号に見られる。
【００２３】
[0031]  メモリ１１６はまた、複数の画像に基づいて顔の特徴の部分空間を生成するようにプロセッサ１１２を構成する命令を有する部分空間モジュール１２４を含む。例えば、部分空間モジュール１２４は、特徴ベクトル化（feature vectorization）、特徴ベクトルプーリングまたは集約（feature vector pooling or aggregation）、およびこれに類することに関連する命令を含みうる。１つの実施形態では、特徴に対応する画像の部分（特徴の関心領域（ＲＯＩ）（feature regions of interests））は、対応する特徴ＲＯＩ内の線形バイナリパターン（linear binary patterns）（ＬＢＰ）のヒストグラム（a histogram）を計算することによって、ベクトルに変換される。別の実施形態では、特徴は、様々な向き（orientations）およびスケールにおいて、ガボールフィルタ（a Gabor filter）によってフィルタされうる。スケールまたは向きごとに、結果は、ベクトルを形成するために（例えば、最大または平均の結果をとることによって）プールされる（pooled）。顔検出および部分空間生成は、図３−図７を参照してより詳細に説明される。
【００２４】
[0032]  メモリ１１６はまた、部分空間モジュール１２４の命令を実行することによって作成される顔の特徴の部分空間を使用して、既知の顔の基準データベースを探索するようにプロセッサ１１２を構成する命令を含む探索モジュール１２６を含む。いくつかの実施形態では、基準データベースは、記憶装置１１４または入力デバイス１０８を使用してアクセス可能でありうる。例えば、１つの実施形態では、入力デバイス１０８は、基準データベースを含んでいる外部記憶デバイスへのインタフェースを含みうる。
【００２５】
[0033]  以下により詳細に説明されるように、動作時に、基準データベースを探索することは、未知の人物の部分空間を、基準データベースからの１つまたは複数の基準画像と比較することを含む。例えば、データベース中の既知の記憶された顔の基準特徴ベクトルが、生成されて、投影誤差（a projection error）を計算するために、未知の顔の部分空間に投影されうる。その後、投影誤差は、基準データベースの各基準特徴ベクトルのために計算されうる。様々な測定（measures）が、投影誤差または部分空間と基準特徴ベクトルの間の距離を計算するために使用されうる。例えば、いくつかの実施形態では、カイ二乗距離が使用されうる。しかしながら、ユークリッドノルム（Euclidean norms）、ＬＰノルム（LP norms）、およびこれに類するものなどの、他の適用可能な測定（measure）が使用されうることが理解されるであろう。
【００２６】
[0034]  メモリ１１６内にはまた、探索の結果に少なくとも部分的に基づいて、複数の記憶された画像における観測対象（an observed subject）を認識するようにプロセッサ１１２を構成する命令を含む認識モジュール１２８がある。例えば、最も小さい投影誤差と関連づけられる基準データベースからの画像およびアイデンティティが選ばれ、未知の顔と関連づけられうる。いくつかの実施形態では、基準データベースの２つ以上の画像およびアイデンティティが、ユーザ選択のために選ばれうる。認識モジュール１２８はまた、一致に関する最大の満足できる（maximum satisfactory）投影誤差を表すしきい値をテストするための命令を含みうる。しきい値を満たさない基準画像は、部分空間との一致と見なされない（not qualify as）。いくつかの実施形態では、適格な（qualifying）基準画像がない状況において、認識モジュールは、プロセッサ１１２に、出力デバイス１１０を介して一致する基準画像（matching reference image）がないことを示させうる。
【００２７】
[0035]  メモリ１１６はまた、モジュール１２８によって実行される認識の結果を出力するようにプロセッサ１１２を構成する命令を含むＩ／Ｏモジュール１３０とともに示される。特定の出力は、実施形態ごとに異なりうる。出力デバイス１１０がディスプレイである、いくつかのインプリメンテーションでは、認識出力は、ディスプレイに生成されうる。いくつかの実施形態では、Ｉ／Ｏモジュール１３０は、通信デバイス１１８を介してデータを送信または受信するようにプロセッサ１１２を構成する命令を含みうる。
【００２８】
[0036]  画像受信機モジュール１２０、部分空間モジュール１２４、探索モジュール１２６、認識モジュール１２８、およびＩ／Ｏモジュール１３０に含まれる命令は、コンピュータ可読媒体上に記憶されうる。例えば、記憶装置１１４は、モジュール１２０、１２４、１２６、１２８、１３０、１３２に含まれる命令を記憶しうる。
【００２９】
[0037]  顔認識のための電子デバイス１０２が示され、単一の電子デバイス１０２で具現化される（embodied）として、主に上述されてきた。１つの実施形態では、電子デバイス１０２は、素早い顔認識を達成しうる。例えば、プロセッサ１１２および記憶装置１１４は、高速データレートを提供するデータチャネルによって接続されうる。追加または代替として、１つの実施形態では、電子デバイス１０２は、例えば、顔または個人データに関連するデータが、ネットワーク上で送信される必要がないので、安全な顔認識を達成しうる。
【００３０】
[0038]  他の実施形態では、顔認識プロセスは、様々なデバイス間で分散される。例えば、図２は、複数の画像から未知の人物を識別するためのクライアントサーバシステム２００の典型的な実施形態を示す。図１および２のシステム１００、２００に共通のエレメントは、共通の参照表示（reference indicia）を共有し、簡潔さのために、システム１００、２００の間の差のみがここに説明される。
【００３１】
[0039]  クライアントデバイス２０２は、ネットワーク２０６によって、サーバデバイス２０４および記憶装置１１４に通信可能に結合されうる。クライアントデバイス２０２の例は、セルラ電話、ラップトップ、タブレットＰＣ、およびこれに類するデバイスなどの、ネットワーク化されたデバイスまたは通信デバイスを含みうる。サーバデバイス２０４は、顔認識サービスをクライアントデバイス２０２に提供するように構成されたコンピュータでありうる。ネットワーク２０６は、コンピュータネットワーク（例えば、インターネット）、電気通信ネットワーク（例えば、無線セルラ通信ネットワーク）、またはこれに類するものでありうる。
【００３２】
[0040]  図２に示されるように、クライアントデバイス２０２は、画像センサ１０６、入力デバイス１０８、出力デバイス１１０、クライアント側のプロセッサ１１２ａ、クライアント側の通信デバイス１１８ａ、および画像受信機モジュール１２０と、Ｉ／Ｏモジュール１３０と、顔検出モジュール１３２とを含むクライアント側のメモリ１１６ａを含む。サーバデバイス２０４は、サーバ側のプロセッサ１１２ｂ、サーバ側の通信デバイス１１８ｂ、および部分空間モジュール１２４と、探索モジュール１２６と、認識モジュール１２８とを含むサーバ側のメモリ１１６ｂを含む。
【００３３】
[0041]  動作時に、クライアントデバイス２０２は、未知の人物の識別のために、撮像センサ１０６を用いて未知の人物の複数の画像をキャプチャしうる。クライアント側のプロセッサ１１２ａは、顔画像選択および正規化などの、様々な前処理および顔検出のために顔検出モジュール１３２の命令を実行する。複数の顔画像に関係するデータは、ネットワーク２０６上でサーバ２０４に通信されうる。サーバ２０４は、通信されたデータを処理し、クライアント２０２に識別データを送信または送りうる。例えば、サーバ側のプロセッサ１１２ｂは、未知の人物の複数の画像に関係する通信されたデータから部分空間を生成するために、部分空間モジュール１２４からの命令を実行しうる。その後、サーバ側のプロセッサ１１２ｂは、探索モジュール１２６からの命令を実行することによって、生成された部分空間を、基準データベースに含まれる基準画像と比較しうる。その後、サーバ２０４は、部分空間との最も近い一致に関連づけられる（associated with the closest match to the subspace）画像および／または個人ＩＤをクライアント２０２に送りうる。
【００３４】
[0042]  クライアントサーバシステム２００のいくつかの実施形態は、ユーザのクライアントデバイス２０２の計算および記憶の要件を低減しうる。例えば、クライアントデバイス２０２の代わりにサーバデバイス２０４上で部分空間モジュール１２４および探索モジュール１２６の命令を実行することは、クライアントデバイス２０２上で実行される命令の必要とされる数を低減しうる。さらに、クライアントデバイス２０２の外部に基準データベースを記憶することは、クライアントデバイス２０２上で必要とされるデータ記憶を低減しうる。したがって、分散システムがまた、いくつかの実施形態において、電力効率およびバッテリ寿命を改善しうる。
【００３５】
[0043]  ここで図３を参照すると、顔認識の方法のデータフロー図が、１つの実施形態に従って示され、全般的に３００と示される。データフロー３００は、Ｎ人の人物のための顔画像のセット３０４を含むトレーニングプロセス３０２を備える。この実施形態では、データベース３０４は、データベース３０４によって表される各人物について利用可能な１つの基準画像のみを有しうる。すなわち、データベースの各アイデンティティは、１つの基準画像に基づくデータと関連づけられうる。関連づけられたデータは、例えば、基準画像、基準画像の圧縮されたバージョン、基準画像から生成された特徴ベクトル、またはこれに類するものでありうる。しかしながら、データベース３０４は、他の適用可能な数の基準画像に基づくデータを有しうることが理解されるであろう。例えば、データベース３０４は、複数の基準画像にそれぞれ関連づけられる１つまたは複数のアイデンティティを有することができ、また、１つの基準画像のみに関連づけられる他の複数のアイデンティティを有することができる。特に、本開示のいくつかの実施形態の１つの利点は、データベース３０４が、トレーニングのために複数の画像を必要とするデータベースよりも、生成するのにより実用的でありうるということである。認識されるべき各対象のための複数の画像のライブラリは、多くのケースにおいて利用可能でない場合がある。例えば、レガシー・ウェブサイトは、そのユーザの各々についてのプロフィール（profiles）を有することができるが、各ユーザについて１つのプロフィール写真（profile picture）のみである。追加の例として、セルラ電話は、データ記憶の制約により、連絡先ごとに１つの写真のみを許可しうる。
【００３６】
[0044]  ブロック３０６では、各サンプル画像は、比較のための基準として使用される。いくつかの実施形態では、この基準は、画像に基づいて生じさせた特徴ベクトルである。データベース３０４の一人の人物が、１つより多くの基準画像を有する場合には、部分空間が基準として生成されうる。部分空間を生成するプロセスは、以下に詳細に説明される。
【００３７】
[0045]  認識プロセス３２２中に、未知の人物の複数の入力画像３２４が受信されて、顔検出ブロック３２６に入力される。顔検出ブロック３２６は、顔を含む画像の部分のみならず、顔の特徴を含む顔の部分を識別する。様々な顔検出方法が使用されうる。いくつかの顔検出方法は、例えば、未知の人物の顔の周囲（perimeter）の周りに長方形のＲＯＩ（「顔ＲＯＩ」）を検出し、ＲＯＩ内の顔の特徴を検出する。これらの顔の特徴の例は、口の中心と左目の中心と右目の中心（centers of the mouth and the left and right eyes）、左と右の目の目頭と目尻（inner and outer corners of left and right eyes）、口の左口角と右口角（left and right corners of the mouth）、左と右の鼻孔（nostrils）、および上唇の中心を含みうる。顔検出ブロック３２６は、図１の顔検出モジュール１３２からの命令を実行することによってインプリメントされうる。
【００３８】
[0046]  ブロック３２８では、部分空間が、複数の画像３２４における顔検出モジュール３２６によって検出された顔から構築される。１つのインプリメンテーションでは、部分空間は特徴ベクトルに基づく。いくつかの実施形態では、所与の顔の特徴ベクトルは、顔画像の全ての特徴セグメントの順序付けられた連結（ordered concatentaion）でありうる。特徴セグメントは、特徴を抽出または集約する（summarize）、対応する特徴のデータ構造または変形（transformation）である。特徴ベクトルを生成するプロセスは、図６Ａおよび図６Ｂに関連してさらに詳細に説明される。部分空間は、複数の入力画像からの対応する特徴ベクトルに基づいて形成される。例えば、部分空間は、他のプーリング演算子（pooling operators）を含む、最大、最小、平均、またはこれに類する演算子を適用することによって生成されうる。追加または代替として、統計的方法が、部分空間を生成するために使用されうる。例えば、特徴ベクトルの平均と分散が、部分空間の統計モデルを提供しうる。ブロック３２８は、例えば、図１の部分空間モジュール１２４の命令を実行することによってインプリメントされうる。
【００３９】
[0047]  部分空間を構築した後、フロー３００は、ブロック３３０に移動し、ここで、部分空間に最もよく一致する（most closely matches）基準画像が、データベース３０４から選択される。例えば、認識は、例えば、探索モジュール１２６の命令を実行することによって、各データベース基準画像の特徴ベクトルを、未知の人物の部分空間へと投影することによって達成されうる。各基準画像の特徴ベクトルは、図６Ａおよび図６Ｂにおいておよび上述されたような同様のプロセスにおいて計算されうる。ブロック３３０は、例えば、図１の認識モジュール１２８の命令を実行することによって、最小の投影誤差を有する特徴ベクトルに対応する人物の個人ＩＤおよび／または基準画像３３２を出力しうる。
【００４０】
[0048]  図４は、１つの実施形態による、観測された顔を認識する方法４００を示す。方法４００は、ブロック４０５において開始し、その後、ブロック３１０に移動し、ここで、認識されるべき観測された顔の複数の画像が受信される。いくつかの実施形態では、これら画像は、ファイルシステムからまたはネットワークから受信されうる。別の実施形態では、これら画像は、画像をキャプチャする画像センサから受信されうる。画像は、例えば、画像受信機モジュール１２０からの命令を実行するためにプロセッサ１１２を使用することによって受信されうる。
【００４１】
[0049]  ブロック４１５では、複数の受信された画像に基づいて、部分空間が構築される。いくつかの実施形態では、部分空間を構築することは、受信された画像の各々における顔を検出すること、検出された顔のサブセットを選択すること、選択された顔の各々のための特徴ベクトルを生成すること、および生成された特徴ベクトルから部分空間を生成すること、のうちの１つまたは複数を含む。部分空間は、例えば、部分空間モジュール１２４からの命令を実行するためにプロセッサ１１２を使用することによって生成されうる。
【００４２】
[0050]  ブロック４２０では、顔画像の基準データベースが、部分空間に基づいて探索される。いくつかのインプリメンテーションでは、基準データベースから取り出された画像が、部分空間へと投影される。その後、投影誤差が決定される。投影誤差は、基準データベースの画像と関連づけられうる。基準データベースは、例えば、記憶装置１１４を探索する探索モジュール１２６からの命令を実行するためにプロセッサ１１２を使用することによって探索されうる。
【００４３】
[0051]  ブロック４２５では、観測された顔は、探索の結果に少なくとも部分的に基づいて認識される。観測された顔は、様々な基準によって認識されうる。例えば、投影誤差を最小化するデータベースからの画像が、観測された顔であると認識されうる。いくつかの実施形態では、データベースからのしきい値を満たす２つ以上の画像が、観測された顔の一致候補であると認識されうる。観測された顔は、例えば、認識モジュール１２８からの命令を実行するためにプロセッサ１１２を使用することによって認識されうる。
【００４４】
[0052]  ブロック４３０では、出力が、認識に基づいて生成される。例えば、出力は、ディスプレイデバイスに生成されることができ、観測された顔が認識されたことを示す。代替として、認識が行なわれたことを示すメッセージがネットワーク上で送られうる。認識された個人の名前、住所、または他の識別情報などの、認識に関連するデータがまた、表示されるまたはネットワーク上で送られることができる。ブロック４３５では、プロセス４００は終了する。出力は、例えば、出力デバイス１０８を制御するＩ／Ｏモジュール１３０からの命令を実行するためにプロセッサ１１２を使用することによって生成されうる。
【００４５】
[0053]  図５は、１つの実施形態による、顔検出アルゴリズムを用いて処理される画像５００の例示的な例を示す。画像５００は、人物５０２の顔画像を含む。顔検出アルゴリズムは、人物の顔の周りのバウンディングボックス（a bounding box）５０４を検出する。ボックス５０４内の部分は、「顔ＲＯＩ（face ROI）」と称されうる。さらに、顔検出方法は、バウンディングボックス５０４内の顔の特徴（または「特徴ＲＯＩ」）を検出する。これらの顔特徴は、口の中心と左目の中心と右目の中心、左と右の目の目頭と目尻、口の左口角と右口角、左と右の鼻孔、および上唇の中心を含みうる。個別のバウンディングボックスが、これらの各々のために作成されうる。例えば、右目の右端は、ＲＯＩ ５０６を有し、右目の中心は、ＲＯＩ ５０８を有し、右目の左端は、ＲＯＩ ５１０を有する。
【００４６】
[0054]  図６Ａは、１つの実施形態による、特徴抽出プロセス６００ａのフローチャートを示す。ブロック６０４では、顔画像が、入力６０２として提供され、ここで、顔画像は、顔検出モジュール１３２によって処理されたものである。例えば、画像６０２は、検出された顔についてのＲＯＩ（例えば、顔ＲＯＩ）のみならず、顔ＲＯＩ内の各検出された特徴についてのＲＯＩ（例えば、特徴ＲＯＩ）を有しうる。ブロック６０４では、ＬＢＰラベルが、各特徴点の長方形の領域内の各画素のために計算される。実例的なＬＢＰ動作が、図６Ｂに関連して以下に説明される。ＬＢＰ動作は、ＬＢＰ動作が適用される画素においてバイナリパターンをもたらす。したがって、ブロック６０４は、各特徴ＲＯＩの各画素のためのバイナリパターンをもたらす。ブロック６０６では、ＬＢＰラベルのヒストグラムが、各特徴ＲＯＩのために計算される。ブロック６０８では、特徴ベクトルが、各特徴ＲＯＩのヒストグラムを順序だって連結すること（orderly concatenating）によって生成される。
【００４７】
[0055]  図６Ｂは、１つの実施形態による、画素に適用されるＬＢＰ動作６００ｂの例示を示す。画像６１２は、特徴の一部分、すなわち、特徴ＲＯＩである。画像６１４は、画像６１２の複数の画素のうちの１つについての３×３のグレー・スケール近傍（grey-scale neighborhood）を示す。画像６１６は、画像６１４の１０進表現（decimal representation）を示す。しきい値処理演算子（thresholding operator）が、バイナリパターン６２０を生成するために画像６１６に適用され、ここで、中心画素は、しきい値として使用される。すなわち、複数の画素は、それらの１０進表現が中心画素より大きい場合には、「１」というラベルを付けられ、そうでない場合には、「０」というラベルを付けられる。例示されるように、ＬＢＰ「１１００１０１１」は、３×３の近傍のエッジに沿って複数のビットを読み出すことによって形成される。図６Ｂでは、最下位ビットは、画像６２０の左上のビットに対応し、画像６２０の複数のビットは、時計回りに読み出される。図６Ｂは、３×３の近傍を示すが、他の適用可能な近傍が、約３×３から約６５×６５の近傍の範囲で選択され（selected from about 3x3 to about 65x65 neighborhoods）うることが理解されるであろう。
【００４８】
[0056]  図７は、顔認識システム７００の典型的な実施形態のブロック図を示す。ブロック７０４は、ビデオ入力７０２を受信し、認識モジュール１２８のような顔検出プロセスを使用して、入力画像の各々における顔を検出する。ビデオ入力７０２は、例えば、撮像センサ１０６から受信されうる。述べたように、顔検出プロセスは、顔およびそれの関連する特徴を含む入力画像の領域を識別する。
【００４９】
[0057]  ブロック７０６では、顔検出プロセスは、ビデオ入力７０２のシーケンスから特定の画像フレームを選択する。正面の顔をターゲットとした選択は、正面の顔は、ほぼ左右対称であるという仮定に基づきうる。具体的には、顔ＲＯＩの水平の中心が、中心軸として計算されうる。特に、下記の幾何学的情報が、検出された顔特徴から計算されうる。
【００５０】
１．左目の中心、左の鼻孔、および口の左口角を含みうる左側の顔の特徴から中心軸までの水平距離、および右側の顔のものの水平距離。対応する対についての距離の平均差（average difference）がまた、計算されうる。
【００５１】
２．左目の中心と右目の中心、左と右の鼻孔、および左口角と右口角を含みうる、左側および右側の顔の特徴の垂直の差（vertical difference）。全ての垂直の差の平均がまた、計算されうる。
【００５２】
３．検出された口の中心と、左口角と右口角から計算された口の中心との水平位置の差（horizontal location difference）がまた、計算されうる。
【００５３】
４．計算された目の中心および鼻の中心の位置までの、左口角と右口角から計算された口の中心の累積された水平位置の差（The accumulated horizontal location differences of the computed mouth center from left and right mouth corners to the computed eye center and nose center locations）。
【００５４】
５．計算された目の中心および鼻の中心の位置との、計算された口の中心の累積された垂直位置の差（The accumulated vertical location differences of the computed mouth center with the computed eye center and nose center locations）。
【００５５】
[0058]  これらの計算された幾何学的な差が、いくつかの所定のしきい値よりも小さい場合、正面の顔のポーズが選択される。加えて、ぼやけた画像フレームが、画像のセットから除去されうる。エッジおよびエッジ幅が、ぼやけ（blur）のレベルを決定するために使用されうる。ブロック７０６は、正面の顔をターゲットとして説明された一方で、他の適用可能な向きが選択されうることが理解されるであろう。いくつかの実施形態では、ターゲットとされる向きは、基準画像の向きに基づきうる。例えば、観測された画像は、それの向きが基準画像における顔の向きとほぼ一致する場合に選択されうる。
【００５６】
[0059]  別の実施形態では、観測された画像の選択は、関心のある顔の特徴に基づきうる。例えば、どの顔の特徴が現在分析されているかに基づいて、正面のおよびプロフィールの両方の向き（both frontal and profile orientations）がターゲットにされうる。プロフィールの写真は、耳の特徴における差をキャプチャすることができ、この情報は、例えば、目の間隔についてのデータを取得するために、正面の画像と併せて使用されうる。
【００５７】
[0060]  画像選択プロセスは、適格な（qualified）画像フレームのしきい値数（a threshold number of qualified image frames）に達するまで継続しうる。例えば、決定ブロック７０８では、プロセス７００は、少なくとも５つの適格な画像フレームが累積されて（accumulated）いる場合には、ブロック７１０に進み、５つ未満の適格な画像フレームが累積されている場合には、ブロック７０４に戻る。他の適用可能な停止基準が、約５個から約５０個の選択された適格な画像の範囲から選択されうることが理解されるであろう。
【００５８】
[0061]  ブロック７１０では、選択された適格な画像は、比較を向上させるために正規化される。正規化は、例えば、必要に応じて、アップサンプリング、ダウンサンプリング、およびフィルタリングを含みうる。いくつかの実施形態では、各顔画像は、ｎ×ｍ画像のような、指定されたサイズに正規化される。他の実施形態では、顔画像は、基準顔画像のような、別の画像のサイズに関して正規化される。正規化（Normalization）は、例えば、顔検出モジュール１３２からの命令を実行することによって実行されうる。
【００５９】
[0062]  ブロック７１２では、特徴が、特徴ベクトルを形成するために顔画像から抽出される。特徴ベクトルは、選択された顔画像の検出された特徴点に中心があるローカルバイナリパターン（ＬＢＰ）である。ＬＢＰパターンは、中心画素を用いて各画素の３×３の近傍にしきい値を適用することの結果として、２進数で各画素をラベル付けすることによって取得される。各顔の特徴点の所与のバウンディングボックス内のラベルのヒストグラムは、特徴セグメントを形成する。全ての特徴セグメントの順序付けられた連結は、所与の顔の特徴ベクトルである。ＬＢＰヒストグラムまたは特徴セグメントは、各顔の特徴に中心があるとして計算される（computed centered at each face feature）。セグメントの順序付けられた連結は、最終的な特徴ベクトルを構成しうる。ブロック７１２の動作は、部分空間モジュール１２４からの命令を実行することによって実行されうる。
【００６０】
[0063]  特徴ベクトルが選択された画像から生成された後、ブロック７１４では、ランダム・サンプル・コンセンサス（ＲＡＮＳＡＣ：random sample consensus）アルゴリズムが、特徴ベクトルの統計的分布モデル（例えば、平均と分散）を計算するために使用されうる。ＲＡＮＳＡＣアルゴリズムは、データセットから外れ値（outlier）を取り除くことによって、統計的ノイズに強くありうる。最終的な平均と分散は、観測されたまたは未知の人物の統計的な部分空間表現を構成しうる。ブロック７１４の動作は、部分空間モジュール１２４からの命令を実行することによって実行されうる。
【００６１】
[0064]  ブロック７１６では、最小のカイ二乗距離を有する特徴ベクトルを有する基準画像が、未知のまたは観測された人物として識別されうる。カイ二乗距離は、
【数１】
0006030240.tif 000002
【００６２】
として計算されうる。
【００６３】
[0065]  式１では、ｍは、部分空間の平均ベクトルを示し、ｘｉは、ｉ番目の人物の特徴ベクトルを示し、Ｎは、特徴ベクトルの次元であり、下付き添字（subscript）ｊは、関連するベクトルのｊ番目の成分を示す。ブロック７１６の動作は、探索モジュール１２６からの命令を実行することによって実行されうる。
【００６４】
[0066]  ブロック７１８では、最も小さい関連する距離ｄｉを有する２つの画像が、基準データベースから選択される。その後、これらの２つの画像は、ブロック７２０における選択のためにユーザに提供される。これに応答して、ユーザは、未知の人物に最もよく似ている画像を選択しうる。１つの実施形態では、基準データベースは、未知の人物のユーザ選択された画像を含めることによって更新されうる。ブロック７１８の動作は、探索モジュール１２６からの命令を実行することによって実行されうる。上記には２つの画像を選択することが説明されているが、任意の適用可能な数の画像が、約３個から約１０個の範囲の画像から選択されうることが理解されるであろう。
【００６５】
[0067]  本技術は、数多くの他の汎用または特定用途のコンピューティングシステムの環境または構成で動作可能である。本発明との使用に適している周知のコンピューティングシステム、環境、および／または構成の例は、限定はしないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルド型またはラップトップ型のデバイス、マルチプロセッサシステム、プロセッサベースのシステム、プログラム可能な家庭用電子機器、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、任意の上記のシステムまたはデバイスを含む分散型コンピューティング環境、およびこれに類するものを含む。
【００６６】
[0068]  ここで使用される場合、命令は、システムにおいて情報を処理するための、コンピュータによりインプリメントされるステップを指す。命令は、ソフトウェア、ファームウェア、またはハードウェアでインプリメントされることができ、システムのコンポーネントによって行われる（undertaken）プログラムされたステップの任意のタイプを含む。
【００６７】
[0069]  プロセッサは、ＡＭＤ（登録商標）Ａｔｈｌｏｎ（登録商標）ＩＩまたはＰｈｅｎｏｍ（登録商標）ＩＩプロセッサ、Ｉｎｔｅｌ（登録商標）ｉ３（登録商標）／ｉ５（登録商標）／ｉ７（登録商標）プロセッサ、Ｉｎｔｅｌ Ｘｅｏｎ（登録商標）プロセッサ、またはＡＲＭ（登録商標）プロセッサの任意のインプリメンテーションのような、任意の従来の汎用のシングルまたはマルチチップのマイクロプロセッサでありうる。加えて、プロセッサは、ＯＭＡＰプロセッサ、Ｓｎａｐｄｒａｇｏｎ（登録商標）のようなＱｕａｌｃｏｍｍ（登録商標）プロセッサ、またはデジタル信号プロセッサまたはグラフィックスプロセッサを含む、任意の従来の専用プロセッサでありうる。プロセッサは、典型的に、従来のアドレスライン、従来のデータライン、および１つまたは複数の従来の制御ラインを有する。
【００６８】
[0070]  システムは、詳細に説明されるように、様々なモジュールで構成されている。当業者によって理解されることができるように、これらモジュールの各々は、様々なサブルーチン、プロシージャ、定義づけ命令文（definitional statement）およびマクロを備える。これらモジュールの各々は、典型的に、単一の実行可能なプログラムへと別々にコンパイルおよびリンクされる。したがって、これらモジュールの各々の説明は、好ましいシステムの機能性を説明する便宜のために使用される。したがって、これらモジュールの各々によって行われる（undergone）プロセスは、他のモジュールのうちの１つに任意に再分配される、単一のモジュールに共に結合される、または、例えば、共用可能な動的リンクライブラリにおいて利用可能にされることができる。
【００６９】
[0071]  システムは、Ｃ＃、Ｃ、Ｃ＋＋、ＢＡＳＩＣ、Ｐａｓｃａｌ、またはＪａｖａ（登録商標）のような、任意の従来のプログラミング言語で書かれることができ、従来のオペレーティングシステム下で実行される。Ｃ＃、Ｃ、Ｃ＋＋、ＢＡＳＩＣ、Ｐａｓｃａｌ、Ｊａｖａ、およびＦＯＲＴＲＡＮは、多くの商用コンパイラが、実行可能なコードを作成するために使用されうる業界標準のプログラミング言語である。システムはまた、Ｐｅｒｌ、ＰｙｔｈｏｎまたはＲｕｂｙのようなインタープリタ型言語を使用して書かれうる。
【００７０】
[0072]  当業者であれば、ここに開示された実施形態に関連して説明された様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組み合わせとしてインプリメントされうることをさらに理解するであろう。ハードウェアとソフトウェアとのこの互換性を明確に例示するために、様々な例示的なコンポーネント、ブロック、モジュール、回路、およびステップは、概してそれらの機能の観点から上記に説明された。このような機能が、ハードウェアとしてインプリメントされるか、あるいはソフトウェアとしてインプリメントされるかは、特定のアプリケーションおよびシステム全体に課せられる設計制約に依存する。当業者は、各特定のアプリケーションに関して、多様な方法で、説明された機能をインプリメントしうるが、このようなインプリメンテーションの決定は、本開示の範囲から逸脱を引き起こしていると解釈されるべきでない。
【００７１】
[0073]  ここに開示された実施形態に関連して説明された様々な例示的な論理ブロック、モジュール、および回路は、汎用プロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）またはその他のプログラマブル論理デバイス、ディスクリートゲートまたはトランジスタロジック、ディスクリートハードウェアコンポーネント、あるいはここに説明された機能を実行するように設計されたこれらの任意の組み合わせで、インプリメントまたは実行されうる。汎用プロセッサは、マイクロプロセッサでありうるが、代替において、このプロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシン（state machine）でありうる。プロセッサはまた、例えば、ＤＳＰとマイクロプロセッサの組み合わせ、複数のマイクロプロセッサ、ＤＳＰコアと連携した１つまたは複数のマイクロプロセッサ、あるいはその他任意のこのような構成である、コンピューティングデバイスの組み合わせとしてインプリメントされうる。
【００７２】
[0074]  １つまたは複数の実例的な実施形態では、説明された機能および方法は、ハードウェア、ソフトウェア、またはプロセッサ上で実行されるファームウェア、またはこれらの任意の組み合わせでインプリメントされうる。ソフトウェアでインプリメントされる場合、これら機能は、コンピュータ可読媒体上で、１つまたは複数の命令またはコードとして送信または記憶されうる。コンピュータ可読媒体は、１つの場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体とコンピュータ記憶媒体との両方を含む。記憶媒体は、コンピュータによってアクセスされうる任意の利用可能な媒体でありうる。限定ではなく例として、このようなコンピュータ可読媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭまたは他の光ディスク記憶装置、磁気ディスク記憶装置またはその他の磁気記憶デバイス、あるいは、データ構造または命令の形式で所望のプログラムコードを記憶または搬送するために使用可能であり、かつコンピュータによってアクセスされうるその他任意の媒体を備えうる。また、任意の接続は、コンピュータ可読媒体と厳密には称される。例えば、ソフトウェアが、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、電波、およびマイクロ波のような無線技術を使用して、ウェブサイト、サーバ、またはその他の遠隔ソースから送信される場合には、この同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、電波、およびマイクロ波のような無線技術は、媒体の定義に含まれる。ここで使用される場合、ディスク（disk）およびディスク（disc）は、コンパクトディスク（ＣＤ）、レーザーディスク（登録商標）、光ディスク、デジタル多目的ディスク（ＤＶＤ）、フロッピー（登録商標）ディスクおよびブルーレイ（登録商標）ディスクを含み、ここでディスク（disks）は、通常磁気的にデータを再生し、一方ディスク（discs）は、レーザーを用いて光学的にデータを再生する。上記の組み合わせもまた、コンピュータ可読媒体の範囲内に含まれるべきである。
【００７３】
[0075]  上記説明は、ここに開示されたシステム、デバイス、および方法のある特定の実施形態を詳しく述べた。しかしながら、上記が原文においていかに詳細に掲載されていたとしても、これらシステム、デバイス、および方法は、多くの方法で実施されうることが理解されるであろう。また上述のように、本発明のある特定の特徴または態様について説明する際の特定の専門用語の使用は、その専門用語が関連する技術の特徴または態様の任意の特定の特徴を含むように制限されるように、その専門用語がここで再定義されることを暗示するようにとらえられるべきではないことに留意されたい。
【００７４】
[0076]  様々な修正および変更は、説明された技術の範囲から逸脱することなく行われうるがことが、当業者によって理解されるであろう。このような修正および変更は、実施形態の範囲内であるものとする。１つの実施形態に含まれる部分は、他の実施形態と交換可能であり、示された実施形態からの１つまたは複数の部分は、任意の組み合わせで他の示された実施形態とともに含まれうることも当業者によって理解されるであろう。例えば、ここで説明された、および／または図に図示された様々なコンポーネントのうちの任意のものが、組み合わせられる、交換される、または他の実施形態から除外されることができる。
【００７５】
[0077]  ここでの実質的に任意の複数および／または単数の用語の使用に関して、当業者は、コンテキストおよび／または用途に合わせて、複数から単数におよび／または単数から複数に変換することができる。明確さのために、様々な単数／複数の置換がここに明記されうる。
【００７６】
[0078]  概して、ここで使用される用語は、「オープンな（open）」用語（例えば、「含む（including）」という用語は、「それに限定されるものではないが、〜を含む」と解釈されるべきであり、「有する（having）」という用語は、「〜を少なくとも有する」と解釈されるべきであり、「含む（includes）」という用語は、「それに限定されるものではないが、〜を含む」と解釈されるべきである、等）として全般的に意図されることが当業者によって理解されるであろう。特定の数の導入された（introduced）請求項の記載 が意図される場合には、そのような意図は、請求項に明記され、そのような記載がない場合には、そのような意図も存在しないことが、当業者によってさらに理解されるであろう。例えば、理解を助けるものとして、以下の添付の特許請求の範囲は、請求項の記載を導入する（introduce）ために、「少なくとも１つ」および「１つまたは複数」という前置きのフレーズ（introductory phrases）の使用を含みうる。しかしながら、このようなフレーズの使用は、たとえ同一の請求項が、「１つまたは複数」または「少なくとも１つ」という前置きのフレーズと「ａ」または「ａｎ」などの不定冠詞を含むときでさえも、不定冠詞「ａ」または「ａｎ」による請求項の記載の導入（introduction）が、そのような導入された請求項の記載を含む任意の特定の請求項を、たった１つのそのような記載を含む実施形態に限定することを意味するようには解釈されるべきではない（例えば、「ａ」および／または「ａｎ」は、典型的には「少なくとも１つ」または「１つまたは複数」を意味するものと解釈されるべきである）。同じことが、請求項の記載を導入するために使用される定冠詞の使用にも当てはまる。加えて、たとえ特定の数の導入された請求項の記載が明記されていたとしても、当業者であれば、そのような記載は、典型的には、「少なくとも」記載された数を意味するように解釈されるべきであることを認識するであろう（例えば、他の修飾語のない、「２つの記載」というそのままの記載は、典型的に、「少なくとも」２つの記載、または「２つ以上の」記載を意味する）。さらに、「Ａ、Ｂ、およびＣのうちの少なくとも１つ、等」に類似した表記法（convention）が使用されるそれらの実例では、一般に、このような表記法は、当業者が該表記法を理解する意味において、そのような構成が意図される（例えば、「Ａ、Ｂ、およびＣのうちの少なくとも１つを有するシステム」は、それに限定されるものではないが、Ａのみ、Ｂのみ、Ｃのみ、ＡおよびＢをともに、ＡおよびＣをともに、ＢおよびＣをともに、および／またはＡ、Ｂ、およびＣをともに有するシステムを含むであろう、等）。「Ａ、Ｂ、またはＣのうちの少なくとも１つ、等」に類似した表記法が使用されるそれらの実例では、一般に、このような構成は、当業者が該表記法を理解する意味において、意図される（例えば、「Ａ、Ｂ、またはＣのうちの少なくとも１つを有するシステム」は、それに限定されるものではないが、Ａのみ、Ｂのみ、Ｃのみ、ＡおよびＢをともに、ＡおよびＣをともに、ＢおよびＣをともに、および／またはＡ、Ｂ、およびＣをともに有するシステムを含むであろう、等）。事実上、２つ以上の代替用語を表す任意の離接的な��語（disjunctive word）および／またはフレーズが、詳細な説明にある場合であっても、特許請求の範囲にある場合であっても、または、図面にある場合であっても、それら用語のうち１つ、それら用語のうちのいずれか、または両方の用語、を含む可能性を企図するものと理解されるべきであることは、当業者によってさらに理解されるだろう。例えば、「ＡまたはＢ」というフレーズは、「Ａ」または「Ｂ」または「ＡおよびＢ」の可能性を含むことが理解されるだろう。
【００７７】
[0079]  様々な態様および実施形態がここで開示されてきたが、他の態様および実施形態も当業者には明らかであろう。ここに開示された様々な態様および実施形態は、例示の目的のためのものであり、限定するものであるようには意図されない。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
顔認識装置であって、
識別のために、観測された顔の複数の画像を受信するようにプロセッサを構成する命令を含む画像受信機モジュールと、
前記複数の画像のうちの２つ以上の選択された画像に少なくとも基づいて、前記観測された顔のテンプレートを生成するように前記プロセッサを構成する命令を含むテンプレートモジュールと、
既知の人物のアイデンティティおよび対応する顔データのデータベースを探索するように前記プロセッサを構成する命令を含む探索モジュールと、なお、前記探索することは、前記観測された顔の前記テンプレートと、前記既知の人物の前記顔データとに少なくとも基づく、
前記探索に少なくとも基づいて、前記既知の人物の１つまたは複数のアイデンティティを選択するように前記プロセッサを構成する命令を含む認識モジュールと、
を備える顔認識装置。
［Ｃ２］
前記既知の人物の前記選択された１つまたは複数のアイデンティティを示すデータを転送するように前記プロセッサを構成する命令を含む通信モジュールをさらに備え、ここにおいて、前記データベースの各アイデンティティは、１つの基準画像に基づくデータと関連づけられる、Ｃ１に記載の顔認識装置。
［Ｃ３］
画像センサをさらに備え、ここにおいて、前記画像受信機モジュールは、前記画像センサから観測された顔の複数の画像をキャプチャするように前記プロセッサを構成する命令をさらに備える、Ｃ１に記載の顔認識装置。
［Ｃ４］
顔認識の、コンピュータによりインプリメントされる方法であって、
識別のために、観測された顔の複数の画像を受信することと、
前記複数の画像のうちの２つ以上の選択された画像に少なくとも基づいて、前記観測された顔のテンプレートを生成することと、
既知の人物のアイデンティティおよび対応する顔データのデータベースを探索することと、なお、前記探索することは、前記観測された顔の前記テンプレートと、前記既知の人物の前記顔データとに少なくとも基づく、
前記探索に少なくとも基づいて、前記既知の人物の１つまたは複数のアイデンティティを選択することと、
を備えるコンピュータによりインプリメントされる方法。
［Ｃ５］
前記データベースの各アイデンティティは、１つの基準画像に基づくデータと関連づけられる、Ｃ４に記載のコンピュータによりインプリメントされる方法。
［Ｃ６］
画像センサを用いて、前記観測された顔の前記複数の画像をキャプチャすることをさらに備える、Ｃ４に記載のコンピュータによりインプリメントされる方法。
［Ｃ７］
前記観測された顔の前記テンプレートを生成することは、前記複数の画像のうちの前記２つ以上の選択された画像の特徴ベクトルに少なくとも基づいて、前記観測された顔の部分空間を生成することを含む、Ｃ４に記載のコンピュータによりインプリメントされる方法。
［Ｃ８］
前記特徴ベクトルは、前記選択された画像の線形バイナリパターンヒストグラムに少なくとも基づく、Ｃ７に記載のコンピュータによりインプリメントされる方法。
［Ｃ９］
前記特徴ベクトルは、フィルタされた画像ブロックのカスケードに少なくとも基づく、Ｃ７に記載のコンピュータによりインプリメントされる方法。
［Ｃ１０］
前記部分空間は、前記複数の画像のうちの前記２つ以上の選択された画像の前記特徴ベクトルの平均と分散に関連づけられる、Ｃ７に記載のコンピュータによりインプリメントされる方法。
［Ｃ１１］
前記データベースを探索することは、前記観測された顔の前記テンプレートと、前記既知の人物の前記対応する顔データのうちの１つまたは複数の各々との間の誤差測定を決定することを備える、Ｃ４に記載のコンピュータによりインプリメントされる方法。
［Ｃ１２］
前記誤差測定は、カイ二乗距離に基づく、Ｃ１１に記載のコンピュータによりインプリメントされる方法。
［Ｃ１３］
前記１つまたは複数のアイデンティティの前記選択は、前記誤差測定のしきい値に基づく、Ｃ１１に記載のコンピュータによりインプリメントされる方法。
［Ｃ１４］
前記観測された顔の向きに基づいて、前記複数の画像のうちの前記２つ以上の画像を選択することをさらに備える、Ｃ４に記載のコンピュータによりインプリメントされる方法。
［Ｃ１５］
前記複数の画像のうちの前記２つ以上の画像の前記選択は、関心のある顔の特徴にさらに基づく、Ｃ１４に記載のコンピュータによりインプリメントされる方法。
［Ｃ１６］
前記複数の画像のうちの前記２つ以上の画像の前記選択は、前記データベースの前記顔データの顔の向きにさらに基づく、Ｃ１４に記載のコンピュータによりインプリメントされる方法。
［Ｃ１７］
前記１つまたは複数の選択されたアイデンティティを示すデータをグラフィカル・ディスプレイに表示することをさらに備える、Ｃ１４に記載のコンピュータによりインプリメントされる方法。
［Ｃ１８］
前記２つ以上の選択されたアイデンティティの前記選択を確認するようにユーザに促すことと、
前記ユーザの前記確認に応答して、前記データベースを更新することと、
をさらに備える、Ｃ１７に記載のコンピュータによりインプリメントされる方法。
［Ｃ１９］
命令を記憶した非一時的なコンピュータ可読媒体であって、前記命令は、実行されると、プロセッサに、
識別のために、観測された顔の複数の画像を受信することと、
前記複数の画像のうちの２つ以上の選択された画像に少なくとも基づいて、前記観測された顔のテンプレートを生成することと、
既知の人物のアイデンティティおよび対応する顔データのデータベースを探索することと、なお、前記探索することは、前記観測された顔の前記テンプレートと、前記既知の人物の前記顔データとに少なくとも基づく、
前記探索に少なくとも基づいて、前記既知の人物の１つまたは複数のアイデンティティを選択することと、
から成る方法を実行させる、非一時的なコンピュータ可読媒体。
［Ｃ２０］
前記データベースの各アイデンティティは、１つの基準画像に基づくデータと関連づけられ、前記１つまたは複数の選択されたアイデンティティは、前記観測された顔の前記テンプレートのしきい値距離内の特徴ベクトルと関連づけられる、Ｃ１９に記載の非一時的なコンピュータ可読媒体。
［Ｃ２１］
前記方法は、前記２つ以上の選択されたアイデンティティを示すデータをグラフィカル・ディスプレイに表示することをさらに備える、Ｃ１９に記載の非一時的なコンピュータ可読媒体。
【図１】
0006030240.tif 000003
【図２】
0006030240.tif 000004
【図３】
0006030240.tif 000005
【図４】
0006030240.tif 000006
【図５】
0006030240.tif 000007
【図６Ａ】
0006030240.tif 000008
【図６Ｂ】
0006030240.tif 000009
【図７】
0006030240.tif 000010