(57)【要約】多大なコストをかけずに、顔向き推定処理と顔検出処理を同時に、かつ高精度に学習することができる技術を提供する。  画像処理学習装置は、顔向きが既知か否かを識別する顔向き識別部と、既知の場合に、顔向きに関する情報を多様体上の位置に変換する位置変換部と、未知の場合に、多様体上の位置を推定する位置推定部と、顔・非顔かが既知か否かを識別する顔識別部と、既知の場合に、多様体上の位置と、空間上の位置との距離から顔か非顔かに応じて更新量を計算する第１の更新量計算部と、未知の場合に、多様体上の位置と、空間上の位置との距離が近い場合はより近づけ、遠い場合はより遠ざけるように更新量を計算する第２の更新量計算部と、パラメータを更新するパラメータ更新部と、を含む。
2012005066.tif 000002
【特許請求の範囲】
【請求項１】
学習データ群から選択されたデータに対して、顔向きが既知か未知かを識別する顔向き情報識別手段と、
前記顔向き情報識別手段で顔向きが既知であると識別された場合に、顔向きに関する情報を、多様体上の位置に変換する多様体位置変換手段と、
前記顔向き情報識別手段で顔向きが未知であると識別された場合に、前記データに対応する画像を前記多様体が埋め込まれた空間上の位置に変換する関数を用いて変換された前記画像の前記空間上の位置から、前記多様体上のどの位置が相応しい位置かを推定する多様体位置推定手段と、
前記データに対して、顔画像であるか非顔画像であるかが既知か未知かを識別する顔情報識別手段と、
前記顔情報識別手段で顔画像であるか非顔画像であるかが既知であると識別された場合に、前記多様体位置変換手段が変換したか、又は前記多様体位置推定手段が推定した多様体上の位置と、前記関数によって変換された前記画像の前記空間上の位置との距離を計算し、該距離に基づき、顔画像であるか非顔画像であるかに応じて前記関数を構成するパラメータの更新量を計算する第１のパラメータ更新量計算手段と、
前記顔情報識別手段で顔画像であるか非顔画像であるかが未知であると識別された場合に、前記多様体位置変換手段が変換したか、又は前記多様体位置推定手段が推定した多様体上の位置と、前記画像の前記空間上の位置との距離が近い場合はより近づけ、遠い場合はより遠ざけるように前記パラメータの更新量を計算する第２のパラメータ更新量計算手段と、
前記第１のパラメータ更新量計算手段又は前記第２のパラメータ更新量計算手段で計算された更新量を用いて前記パラメータを更新するパラメータ更新手段と、
を含む画像処理学習装置。
【請求項２】
前記多様体は、特にニューラルネットワークによって得られる空間上に埋め込まれている
請求項１に記載の画像処理学習装置。
【請求項３】
学習データ群から１つのデータを選択する学習データ選択手段をさらに含み、
前記学習データ選択手段は、学習初期の段階には、顔向きが既知であって、顔画像であるか非顔画像であるかが分かっているデータを優先的に選択する
請求項１又は２に記載の画像処理学習装置。
【請求項４】
請求項１〜３のいずれかに記載の画像処理学習装置の学習により更新されたパラメータを有する前記関数を用いて顔検出処理及び顔向き推定処理を行う画像処理装置であって、
顔向きが未知の場合、入力画像の多様体を含む空間上の位置と、入力画像の前記多様体上の位置に基づいて顔向きを推定する顔向き推定手段と、
顔又は非顔画像であるか否かが未知の場合、前記入力画像の前記空間上の位置と前記多様体上の位置との距離で顔画像であるか非顔画像であるかを判定する顔画像判定手段と、
を含む画像処理装置。
【請求項５】
前記顔向き推定手段は、
前記入力画像の顔向きが既知か未知かを識別し、既知であると識別された場合は該顔向きを推定結果とし、未知であると識別された場合は、前記関数を用いて算出された前記入力画像の前記空間上の位置から前記多様体上の位置を推定し、該推定した多様体上の位置から算出された顔向きを推定結果とし、
前記顔画像判定手段は、
顔又は非顔画像であるかが既知か未知かを識別し、既知であると識別された場合は、既知の情報を判定結果とし、未知であると識別された場合は、前記入力画像の前記空間上の位置と前記多様体上の位置との距離が、閾値より小さければ前記入力画像は顔画像であると判定し、閾値より大きければ前記入力画像は非顔画像であると判定する、
請求項４に記載の画像処理装置。
【請求項６】
前記顔向き推定手段の顔向きの推定の結果及び前記顔画像判定手段の画像の判定の結果を出力する、
請求項５に記載の画像処理装置。
【請求項７】
学習データ群から選択されたデータに対して、顔向きが既知か未知かを識別し、
前記顔向きが既知であると識別された場合に、顔向きに関する情報を、多様体上の位置に変換し、
前記顔向きが未知であると識別された場合に、前記データに対応する画像を前記多様体が埋め込まれた空間上の位置に変換する関数を用いて変換された前記画像の前記空間上の位置から、前記多様体上のどの位置が相応しい位置かを推定し、
前記データに対して、顔画像であるか非顔画像であるかが既知か未知かを識別し、
前記顔画像であるか非顔画像であるかが既知であると識別された場合に、前記変換又は前記推定した多様体上の位置と、前記関数によって変換された前記画像の前記空間上の位置との距離を計算し、該距離に基づき、顔画像であるか非顔画像であるかに応じて前記関数を構成するパラメータの更新量を計算し、
前記顔画像であるか非顔画像であるかが未知であると識別された場合に、前記変換又は前記推定した多様体上の位置と、前記画像の前記空間上の位置との距離が近い場合はより近づけ、遠い場合はより遠ざけるように前記パラメータの更新量を計算し、
前記計算された更新量を用いて前記パラメータを更新する、
画像処理学習方法。
【請求項８】
請求項７に記載の画像処理学習方法の学習により更新されたパラメータを有する前記関数を用いて顔検出処理及び顔向き推定処理を行う画像処理方法であって、
顔向きが未知の場合、入力画像の多様体を含む空間上の位置と、入力画像の前記多様体上の位置に基づいて顔向きを推定し、
顔又は非顔画像であるか否かが未知の場合、前記入力画像の前記空間上の位置と前記多様体上の位置との距離で顔画像であるか非顔画像であるかを判定する、
画像処理方法。
【請求項９】
学習データ群から選択されたデータに対して、顔向きが既知か未知かを識別し、
前記顔向きが既知であると識別された場合に、顔向きに関する情報を、多様体上の位置に変換し、
前記顔向きが未知であると識別された場合に、前記データに対応する画像を前記多様体が埋め込まれた空間上の位置に変換する関数を用いて変換された前記画像の前記空間上の位置から、前記多様体上のどの位置が相応しい位置かを推定し、
前記データに対して、顔画像であるか非顔画像であるかが既知か未知かを識別し、
前記顔画像であるか非顔画像であるかが既知であると識別された場合に、前記変換又は前記推定した多様体上の位置と、前記関数によって変換された前記画像の前記空間上の位置との距離を計算し、該距離に基づき、顔画像であるか非顔画像であるかに応じて前記関数を構成するパラメータの更新量を計算し、
前記顔画像であるか非顔画像であるかが未知であると識別された場合に、前記変換又は前記推定した多様体上の位置と、前記画像の前記空間上の位置との距離が近い場合はより近づけ、遠い場合はより遠ざけるように前記パラメータの更新量を計算し、
前記計算された更新量を用いて前記パラメータを更新する、
処理をコンピュータに実行させるための画像処理学習プログラム。
【請求項１０】
請求項９に記載の画像処理学習プログラムの学習により更新されたパラメータを有する前記関数を用いて顔検出処理及び顔向き推定処理をコンピュータに実行させるための画像処理プログラムであって、
顔向きが未知の場合、入力画像の多様体を含む空間上の位置と、入力画像の前記多様体上の位置に基づいて顔向きを推定し、
顔又は非顔画像であるか否かが未知の場合、前記入力画像の前記空間上の位置と前記多様体上の位置との距離で顔画像であるか非顔画像であるかを判定する、
処理をコンピュータに実行させるための画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理学習装置、画像処理学習方法、および画像処理学習プログラムに関する。
【背景技術】
【０００２】
本発明に関連する、画像中の顔の向きを推定等する技術として、例えば特許文献１や特許文献２に記載の技術がある。
例えば、特許文献１に記載の顔向き推定技術は、予め複数人の正面顔データを取得して平均顔を作成し、平均顔を３Ｄモデルに張り合わせて任意の角度を回転させた画像を生成する。特許文献１に記載の顔向き推定技術は、入力画像と最も相関度の高い角度の画像を決定することで入力画像の顔の向きを推定する。特許文献１に記載の顔向き推定技術は、入力画像が顔画像であることが前提である。この前提は、特許文献２も同様である。
上記のように、顔向き推定技術は、多くの場合、予め入力画像が顔画像であるか否かが判断されている。入力画像が顔画像であるか否かの判断は、例えば、非特許文献１などに記載の顔検出技術によって入力画像中の顔を検出することにより行う。
非特許文献１などにみられる様々な顔検出技術は、顔を検出したい画像中から顔の領域を抽出する。具体的には、顔検出技術は画像中から様々な部分画像を抽出する。次に顔検出技術は、抽出した部分画像が、顔が主体的に映っている画像かそうではない画像かを判断する。そして顔検出技術は、顔が主体的に映っている画像であると判断した画像に対応する領域を、顔が存在する領域であると判定する。
なお、以後は説明の便宜のために、「顔が主体的に映っている画像」を顔画像と呼び、「そうではない画像」を非顔画像と呼ぶ。
非特許文献１などに記載の技術は、顔を検出する処理を、予め大量の顔画像群と非顔画像群を用意した上で学習する。学習に用いる顔画像群は、例えば、顔が含まれる画像中から人手によって顔が存在する領域を指定し、その領域のみ切り出すことで取得する。
上記の特許文献１のように、顔向き推定技術の多くは、関連する顔検出技術などによって顔の検出処理が行われていることを前提としている。すなわち、多くの場合、顔向き推定技術と顔検出技術とは独立の技術である。多くの場合、顔向き推定技術は、推定の対象となる画像が顔画像であるか非顔画像であるかがわかっていることが前提となっており、一方で顔検出技術は、検出の対象となる画像中の顔の向きが大まかにわかっていることが前提となっている。
ここで、非特許文献２に記載の技術は、顔向き推定処理と顔検出処理とを独立として行わず、同時に行わせることで双方の処理の精度を向上させている。
非特許文献２に記載の技術は、予め大量の顔画像群と非顔画像群を用意する。非特許文献２に記載の技術は、用意した各画像群の画像それぞれに対して、顔画像であるか否かという情報と、顔画像であればどの向きを向いているかの情報を合わせて付与しておく。そして、非特許文献２に記載の技術は、各画像とそれぞれの情報を統合したデータを用いて、顔検出処理と顔向き推定処理を同時に学習する。そのため非特許文献２に記載の技術は、顔検出処理と顔向き推定処理を同時に、かつ高精度に行うことができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００１−２９１１０８号公報
【特許文献２】特開２００４−０９４４９１号公報
【非特許文献】
【０００４】
【非特許文献１】Ｐ．Ｖｉｏｌａ  ａｎｄ  Ｍ．Ｊｏｎｅｓ，″Ｒａｐｉｄ  Ｏｂｊｅｃｔ  Ｄｅｔｅｃｔｉｏｎ  ｕｓｉｎｇ  ａ  Ｂｏｏｓｔｅｄ  Ｃａｓｃａｄｅ  ｏｆ  Ｓｉｍｐｌｅ  Ｆｅａｔｕｒｅｓ，″Ｃｏｍｐｕｔｅｒ  Ｖｉｓｉｏｎ  ａｎｄ  Ｐａｔｔｅｒｎ  Ｒｅｃｏｇｎｉｔｉｏｎ，２００１．
【非特許文献２】Ｍ．Ｏｓａｄｃｈｙ，Ｍａｔｔｈｅｗ  Ｌ．Ｍｉｌｌｅｒ  ａｎｄ  Ｙ．Ｌ．Ｃｕｎ，″Ｓｙｎｅｒｇｉｓｔｉｃ  Ｆａｃｅ  Ｄｅｔｅｃｔｉｏｎ  ａｎｄ  Ｐｏｓｅ  Ｅｓｔｉｍａｔｉｏｎ  ｗｉｔｈ  Ｅｎｅｒｇｙ−Ｂａｓｅｄ  Ｍｏｄｅｌｓ，″Ｊｏｕｒｎａｌ  ｏｆ  Ｍａｃｈｉｎｅ  Ｌｅａｒｎｉｎｇ  Ｒｅｓｅａｒｃｈ，２００７．
【非特許文献３】Ｃ．Ｍ．ビショップ著、元田浩／栗田多喜夫／樋口知之／松本裕治／村田昇監訳、ｐｐ．２７０−２７２、パターン認識と機械学習（上）、２００７．
【非特許文献４】Ｃ．Ｍ．ビショップ著、元田浩／栗田多喜夫／樋口知之／松本裕治／村田昇監訳、ｐｐ．２２６−２３８、パターン認識と機械学習（上）、２００７．
【発明の概要】
【発明が解決しようとする課題】
【０００５】
非特許文献２に記載の技術では、予め用意したすべての画像に対して、顔情報と、顔画像であればどの向きを向いているかに関する情報を合わせて付与する必要がある。
しかしながら、実際にはすべての画像に対して、顔情報と、顔向き情報を同時に付与しておくことは困難である。なぜならば、顔情報を付与する過程と顔向き情報を付与する過程は、まったく異なるからである。
顔情報は、収集された顔を含む画像中から、顔の領域を１つ１つ人手によって切り出すことで得ることができる。一方、顔向き情報は、画像をカメラ等で撮影・採取する前にカメラと被写体の位置を予め固定し、その位置関係を測定することによって正確な値を得ることができる。逆にいえば、正確な顔向き情報は、正確な数値を把握することなく撮影された顔画像（例えばＷｅｂ等で容易かつ大量に収集可能な、カメラと被写体の位置がわからない状態で撮影されている顔画像）からは得ることができない。
また、撮影の時にカメラと被写体の位置を予め測定しておけば、その後カメラで大量に画像を撮影することで、顔向き情報を把握した画像を多く、容易に得ることができる。しかし、その中から顔画像を適切に切り出すために顔の領域を指定する作業は、画像１枚１枚ごとに対して人手をかけなければならず、多大なコストがかかる。
そのため、顔向き情報と顔情報を同時に保持する画像を多量に集めることは、実用上においては困難である。
なお、非特許文献２には、顔向き情報が未知である場合、顔向きを推定した結果を用いて学習すれば良いことが簡単に言及されているが、詳細な学習方法については記載されていない。
以上より、本発明の目的は、予め用意したすべての画像が、顔情報と、顔画像であればどの向きを向いているかという情報を同時に付与されていなくても、多大なコストをかけずに、顔向き推定処理と顔検出処理を同時に、かつ高精度に学習することができる技術を提供することである。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明における画像処理学習装置は、学習データ群から選択されたデータに対して、顔向きが既知か未知かを識別する顔向き情報識別部と、顔向き情報識別部で顔向きが既知であると識別された場合に、顔向き情報を、多様体上の位置に変換する多様体位置変換部と、顔向き情報識別部で顔向きが未知であると識別された場合に、データに対応する画像を多様体が埋め込まれた空間上の位置に変換する関数を用いて変換された画像の空間上の位置から、多様体上のどの位置が相応しい位置かを推定する多様体位置推定部と、データに対して、顔画像であるか非顔画像であるかが既知か未知かを識別する顔情報識別部と、顔情報識別部で顔画像であるか非顔画像であるかが既知であると識別された場合に、多様体位置変換部が変換したか、又は多様体位置推定部が推定した多様体上の位置と、関数によって変換された画像の空間上の位置との距離を計算し、該距離に基づき、顔画像であるか非顔画像であるかに応じて関数を構成するパラメータの更新量を計算する第１のパラメータ更新量計算部と、顔情報識別部で顔画像であるか非顔画像であるかが未知であると識別された場合に、多様体位置変換部が変換したか、又は多様体位置推定部が推定した多様体上の位置と、画像の空間上の位置との距離が近い場合はより近づけ、遠い場合はより遠ざけるようにパラメータの更新量を計算する第２のパラメータ更新量計算部と、第１のパラメータ更新量計算部又は第２のパラメータ更新量計算部で計算された更新量を用いてパラメータを更新するパラメータ更新部と、を含む。
上記目的を達成するために、本発明における画像処理学習方法は、学習データ群から選択されたデータに対して、顔向きが既知か未知かを識別し、顔向きが既知であると識別された場合に、顔向き情報を、多様体上の位置に変換し、顔向きが未知であると識別された場合に、データに対応する画像を多様体が埋め込まれた空間上の位置に変換する関数を用いて変換された画像の空間上の位置から、多様体上のどの位置が相応しい位置かを推定し、データに対して、顔画像であるか非顔画像であるかが既知か未知かを識別し、顔画像であるか非顔画像であるかが既知であると識別された場合に、変換又は推定した多様体上の位置と、関数によって変換された画像の空間上の位置との距離を計算し、該距離に基づき、顔画像であるか非顔画像であるかに応じて関数を構成するパラメータの更新量を計算し、顔画像であるか非顔画像であるかが未知であると識別された場合に、変換又は推定した多様体上の位置と、画像の空間上の位置との距離が近い場合はより近づけ、遠い場合はより遠ざけるようにパラメータの更新量を計算し、計算された更新量を用いてパラメータを更新する。
上記目的を達成するために、本発明における画像処理学習プログラムは、学習データ群から選択されたデータに対して、顔向きが既知か未知かを識別し、顔向きが既知であると識別された場合に、顔向き情報を、多様体上の位置に変換し、顔向きが未知であると識別された場合に、データに対応する画像を多様体が埋め込まれた空間上の位置に変換する関数を用いて変換された画像の空間上の位置から、多様体上のどの位置が相応しい位置かを推定し、データに対して、顔画像であるか非顔画像であるかが既知か未知かを識別し、顔画像であるか非顔画像であるかが既知であると識別された場合に、変換又は推定した多様体上の位置と、関数によって変換された画像の空間上の位置との距離を計算し、該距離に基づき、顔画像であるか非顔画像であるかに応じて関数を構成するパラメータの更新量を計算し、顔画像であるか非顔画像であるかが未知であると識別された場合に、変換又は推定した多様体上の位置と、画像の空間上の位置との距離が近い場合はより近づけ、遠い場合はより遠ざけるようにパラメータの更新量を計算し、計算された更新量を用いてパラメータを更新する、処理をコンピュータに実行させる。
【発明の効果】
【０００７】
本発明における画像処理学習装置によれば、予め用意したすべての画像が、顔情報と、顔画像であればどの向きを向いているかという情報を同時に付与されていなくても、多大なコストをかけずに、顔向き推定処理と顔検出処理を同時に、かつ高精度に学習することができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の第１の実施の形態における画像処理学習装置１００のハードウェア構成図である。
【図２】本発明の第１の実施の形態における画像処理学習装置１００の機能構成を示すブロック図である。
【図３】学習データの例を示す図である。
【図４】学習データのもう１つの例を示す図である。
【図５】顔向き情報ｗｊから多様体上の位置ｐを求めるイメージを示す図である。
【図６】多様体位置推定部が、顔向きが未知である学習データから多様体上の位置を推定する方法を示した図である。
【図７】顔画像であるとことが既知である学習データに対する顔向き推定パラメータの更新を示す図である。
【図８】非顔画像であることが既知である学習データに対する顔向き推定パラメータの更新を示す図である。
【図９】顔画像であるか非顔画像であるかが未知の学習データに対する顔向き推定パラメータの更新を示す図である。
【図１０】本発明の第１の実施の形態の動作を示す流れ図である。
【図１１】本発明の第２の実施の形態に係る画像処理装置の機能構成を示すブロック図である。
【図１２】本発明の第２の実施の形態の動作を示す流れ図である。
【図１３】画像を多様体に変換するニューラルネットワークの例を示す図である。
【発明を実施するための形態】
【０００９】
＜第１の実施の形態＞
図１は、本発明の第１の実施の形態における画像処理学習装置１００のハードウェア構成図である。図１に示すように、画像処理学習装置１００は、ＣＰＵ（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）１と、通信インターフェース（ＩＦ）２と、メモリ３と、ＨＤＤ（ハードディスクドライブ）４とを含む。これらの構成要素は、入力装置５と、出力装置６とを合わせてバス７を通して互いに接続されており、データの入出力を行なう。通信ＩＦ２は、外部のネットワークに接続するためのインターフェースである。入力装置５は、例えば、キーボードやマウスである。出力装置６は、例えばディスプレイなどである。画像処理学習装置１００は、ＣＰＵ１が、メモリ３又はＨＤＤ４等の記憶媒体に記憶されているプログラムを実行することにより実現される。
図２は、本発明の第１の実施の形態における画像処理学習装置１００の機能構成を示すブロック図である。図２に示すように、画像処理学習装置１００は、学習データ選択部１０２と顔向き情報識別部１０３と多様体位置変換部１０４と多様体位置推定部１０５と顔情報識別部１０６と第１のパラメータ更新量計算部１０７と第２のパラメータ更新量計算部１０８とパラメータ更新部１０９とを含む。また、画像処理学習装置１００は、学習データ入力部１０１及び結果出力部１１０と接続されている。
学習データ入力部１０１は、顔検出処理と顔向き推定処理の学習を行わせるための大量の学習データ群を入力する。また、学習データ入力部１０１は、入力した学習データ群を、たとえば図１に示すバス７または学習データ選択部１０２に出力するために一時的に格納する機能を有しても良い。学習データ入力部１０１は、メモリ３又はＨＤＤ４等の記憶媒体に記憶されている学習データ群を読み出して入力しても良い。または学習データ入力手段１０１は、ユーザが入力装置５を操作して発生した情報に基づいて学習データ群を入力しても良い。または、学習データ入力部１０１は、図１の通信ＩＦ２を通じてインターネットから学習データ群を受信することで入力しても良い。
学習データ群は、以下で説明する情報から構成されるデータの群である。学習データの情報の１つは、１枚の顔画像情報または１枚の非顔画像情報である。また、学習データの情報の１つは、顔情報である。ここで、顔情報とは、画像が顔画像であるか非顔画像であるか、またはどちらか不明であるか、を示す情報である。また、学習データの情報の１つは、顔向き情報である。顔向き情報とは、顔画像であればどの向きを向いているかに関する情報である。学習データは、以上の画像情報と、顔情報と、顔向き情報との組み合わせで構成される。
以降では、入力される学習データ群の中に学習データがＮ個あったとし、それぞれの学習データをｚｉ（ここで、ｉ＝１，２，３，・・・，Ｎ）と表現する。ｚｉは、画像情報ｘｉと、顔情報ｙｉと、顔向き情報ｗｉとを含む。
例えば、ｘｉについては、画像が縦３２画素で横３２画素のモノクロ画像であれば、ｘは３２×３２の場所における階調値を並べた３２×３２次元のベクトルでも良い。
また、ｙｉについて、ｘｉが顔画像である場合に、ｙｉに“１”、非顔画像である場合にｙｉに“−１”、どちらか不明である場合にｙｉに“ｎｉｌ”という記号が、それぞれ付与されても良い。
また、ｗｉについて、顔向きの角度（ｙａｗ（Ｙ軸の回転角度）、ｒｏｌｌ（Ｚ軸の回転角度）、ｐｉｔｃｈ（Ｘ軸の回転角度））の情報があれば、その情報が付与され、そうでなければ“ｎｉｌ”という記号が付与されても良い。顔向きの角度の設定基準は、所定の基準で定めれば良いが、画像中の顔が正面を向いている状態を、“ｙａｗ＝０度、ｒｏｌｌ＝０度、ｐｉｔｃｈ＝０度”と設定しても良い。
図３は、学習データ入力部１０１が入力する学習データの例を示す図である。図３に示すｚ１は、顔画像情報ｘ１と、画像が顔画像であるという顔情報ｙ１（＝１）と、顔向き情報ｗ１（ｙａｗ＝０度、ｒｏｌｌ＝１０度、ｐｉｔｃｈ＝０度の情報）とを含む例である。すなわちｚ１は、顔画像であるということと顔向きが既知なデータである。図３に示すｚ２は、顔画像情報ｘ２と、画像が顔画像であるという顔情報ｙ２（＝１）の情報と、顔向きが分かっていないことを示すｗ２（＝“ｎｉｌ”）を含む例である。すなわちｚ２は、顔画像であることは既知だが、顔向きは不明なデータである。学習時に入力する学習データ群に含まれる顔画像は、人手によって顔領域を指定して切り出した顔画像を用いても良い。図４は、このような学習データの例を示す図である。図４に示す学習データｚ３は、撮影画像Ａから一部を切り出した顔画像情報ｘ３と、画像が顔画像であるか非顔画像であるかは不明であるという情報ｙ３（＝“ｎｉｌ”）と、顔向き情報であるｗ３＝（ｙａｗ＝０度、ｒｏｌｌ＝０度、ｐｉｔｃｈ＝０度の情報）とを含む例である。このような画像は、撮影環境を事前に測定することで正面を向いた顔を撮影したことが分かっている場合に、顔の位置が分からないため、ランダムもしくは機械的に領域を選択して切り出すことで得られる。
学習時に入力する学習データ群に含まれる顔画像情報は、学習の前半においては、例えば非特許文献１に記載の技術によって検出された画像を顔画像として用いた情報でも良い。この場合、学習の後半においては、顔画像か否か未知のデータとして再活用しても良い。
また、近年デジタルカメラ等に搭載されている顔検出技術は、主に正面を向いた顔を検出する。そのため、学習データ群に含まれる顔画像情報は、デジタルカメラ搭載の顔検出処理を用いて処理され、顔検出が行えた顔向きが正面である顔画像の情報でも良い。学習の後半においては、顔向きが未知のデータとして再活用しても良い。
学習データ選択部１０２は、前記学習データ入力部１０１で入力された学習データ群中の学習データｚｉから、１つの学習データｚｊ（ｊはｉ＝１，２，３，・・・，Ｎの中から任意に選んだ数字）を選択し、選択したデータｚｊを出力する。学習データ選択部１０２は、Ｎ個の学習データから学習データｚｊをランダムに選択しても良い。または、学習データ選択部１０２は、ｙｊとｗｊの値それぞれに対して、予め異なる選択確率値を設定または保持し、その選択確率値に従って学習データｚｊを選択しても良い。例えば、学習データ選択部１０２は、ｙｊ＝１の学習データｚｊを優先的に選択しても良い。また学習データ選択部１０２は、ｙｊ＝１であり、かつｗｊが“ｎｉｌ”では無いような学習データを優先的に選択しても良い。また、学習データ選択部１０２は、学習初期の段階に限って、顔向きが既知であって、顔画像であるか非顔画像であるかが分かっているデータを優先的に選択しても良い。
顔向き情報識別部１０３は、学習データ選択部１０２で選択されたデータｚｊに対して、顔向きが既知か未知かを識別する。具体的には、顔向き情報識別部１０３は、ｚｊの中の顔向き情報ｗｊを検出して、ｗｊに“ｎｉｌ”が付与されているか否かを識別し、“ｎｉｌ”以外が付与されていれば、顔向きが既知であると判定した情報を出力しても良い。なお、データｚｊの中の顔情報ｙｊが“−１”の場合、顔向き情報識別部１０３は、画像情報ｘｊが非顔画像の情報あることを識別し、さらに、ｗｊを参照せずに顔向きが未知であると判定した情報を出力しても良い。
多様体位置変換部１０４は、顔向き情報識別部１０３で顔向きが既知であると識別されたときに出力される情報に基づいて、顔向き情報ｗｊを、予め定めた顔向きを表現する多様体上の位置の情報に変換し出力する。具体的には例えば非特許文献２に記載のように、多様体位置変換部１０４は、多様体上の位置をｐとして、予め定めた顔向き情報ｗｊを位置ｐに変換する関数Ｆによって、ｐ＝Ｆ（ｗｊ）と変換しても良い。ここで関数Ｆは、非特許文献２に記載されているものと同一の関数でも良いが、これに限定されない。
図５は、顔向き情報ｗｊから多様体１１１上の位置ｐを求めるイメージを示す図である。図５において、空間１１２は、多様体１１１を埋め込んだ空間と定義する。
仮に、顔向きとしてｙａｗのみを考える。この場合、ｗｊを多様体１１１上の位置に変換するための関数は、非特許文献２に記載のように、式１に示す関数Ｆで定義しても良い。
2012005066.tif 000003
θはｙａｗである。この場合、Ｆ（ｗ）で表現される顔向きを表す多様体は、３次元空間中に埋め込まれた多様体になる。
また仮に、顔向きとしてｙａｗとｒｏｌｌを考える。この場合、ｗｊを多様体上の位置に変換するための関数は、ｙａｗをθ、ｒｏｌｌをφとして、式２に示す関数Ｆで定義しても良い。
2012005066.tif 000004
この場合、Ｆ（ｗ）で表現される顔向きを表す多様体は、９次元空間中に埋め込まれた多様体になる。
また仮に、顔向きとしてｙａｗとｒｏｌｌとｐｉｔｃｈを考える。この場合、顔向きを表す多様体は、ｙａｗをθ、ｒｏｌｌをφ、ｐｉｔｃｈをψとして、式３に示す関数Ｆで定義しても良い。
2012005066.tif 000005
この場合、Ｆ（ｗ）で表現される顔向きを表す多様体は、２７次元空間中に埋め込まれた多様体になる。
なお、例えば式４で表されるように、多様体の次元数を増やしても良い。
2012005066.tif 000006
この場合、式３のＦ（ｗ）で表現される顔向きを表す多様体は、１２５次元の空間中に埋め込まれた多様体になる。また、式１のＦ（ｗ）で表現される顔向きを表す多様体は、５次元の、式２のＦ（ｗ）で表現される顔向きを表す多様体は、２５次元の空間中に埋め込まれた多様体になる。
多様体位置推定部１０５は、顔向き情報識別手段１０３で顔向きが未知であると識別されたときに出力される情報に基づいて、学習データに対応する画像を前述の多様体１１１が埋め込まれた空間１１２上の位置に変換する関数を用いて変換された画像情報ｘｊの前記空間１１２上の位置から、予め定めた顔向きを表現する多様体１１１上のどの点が相応しい点かを推定する。
具体的には、関数Ｆとは別に、画像情報ｘｊを多様体１１１が埋め込まれた空間１１２上の位置に変換する関数Ｇ（ｘｊ）を準備する。関数Ｇは、単数ないし複数のパラメータから構成されている。以下このパラメータをλと定義する。非特許文献２において、Ｇ（ｘｊ）は、非特許文献３にも記載されているようなたたみ込みニューラルネットワーク（以下、ＣＮＮ）である。このとき、λは、ＣＮＮの重みパラメータである。ここで関数Ｇ（ｘｊ）は、非特許文献２及び非特許文献３に記載されている関数と同一の関数でも良いが、これに限定されない。
多様体位置推定部１０５は、画像情報ｘｊを関数Ｇ（ｘｊ）によって別のベクトルｖｊに対しｖｊ＝Ｇ（ｘｊ）という変換を行う。多様体位置推定部１０５は、顔向きを表現する多様体１１１上の位置でｖｊに最も近い位置であるｐを式５によって算出する。
2012005066.tif 000007
図６は、多様体位置推定部１０５が、顔向きが未知である学習データから多様体１１１上の位置を推定する方法を示した図である。図６に示すように、多様体位置推定部１０５は、式５によって算出した位置ｐを顔向きの推定結果として出力する。
例えば、顔向きとしてｙａｗのみを考え、式１のＦの定義で表現されるような多様体の場合を考える。この場合、多様体位置推定部１０５は、式６によって位置ｐを算出する。
2012005066.tif 000008
顔情報識別部１０６は、学習データ選択部１０２で選択されたデータｚｊに対して、顔画像であるか非顔画像であるかが既知か未知かを識別し、その識別結果情報を出力する。
具体的には、顔情報識別部１０６は、ｙｊの値を検出して、ｙｊ＝１もしくはｙｊ＝−１であれば、顔画像であるか非顔であるかが既知であると判断し、ｙｊ＝０であれば、顔画像であるか非顔画像であるかが未知であると判断しても良い。
または、例えば学習の初期の段階では、顔情報識別部１０６は、非特許文献１に記載の顔検出技術を活用し、検出ができたのであればｙｊ＝１とし、そうでなければｙｊ＝−１と判断することで、顔画像であるか非顔であるかが既知であると判断しても良い。
第１のパラメータ更新量計算部１０７及び第２のパラメータ更新量計算部１０８は、いずれも実際に顔検出処理及び顔向き推定処理を行う際に、処理の誤差を最小化するようにパラメータの更新量Δλを計算する。
第１のパラメータ更新量計算部１０７は、顔情報識別部１０６により顔画像であるか非顔画像であるかが既知であると識別された結果情報に基づいて、関数Ｇのパラメータλの更新量Δλを計算する。具体的には第１のパラメータ更新量計算部１０７は、多様体位置変換部１０４が変換したか、又は多様体位置推定部１０５が推定した多様体１１１上の位置ｐと、関数Ｇによってベクトルｖｊに変換された画像情報ｘｊの、多様体１１１が埋め込まれた空間１１２上の位置との距離を計算する。第１のパラメータ更新量計算部１０７は、計算した距離に基づき、顔画像であるか非顔画像であるかに応じてパラメータλの更新量Δλを計算する。
例えば、第１のパラメータ更新量計算部１０７は、非特許文献２にあるように、顔画像であることが既知であるデータに対しては、多様体位置変換部１０４が変換したか、又は多様体位置推定部１０５が推定した多様体１１１上の位置ｐを用いて、エネルギー関数Ｅを、式７のように設定する。
2012005066.tif 000009
また、例えば、第１のパラメータ更新量計算部１０７は、非顔画像であることが既知であるデータに対しては、エネルギー関数Ｅを、式８のように設定する。
2012005066.tif 000010
第１のパラメータ更新量計算部１０７は、上記エネルギー関数Ｅを小さくするような更新量Δλを、式９によって計算する。
2012005066.tif 000011
αは予め定めた微小な数である。
図７は、顔画像であることが既知である学習データに対する顔向き推定パラメータの更新を示す図である。図８は、非顔画像であることが既知である学習データに対する顔向き推定パラメータの更新を示す図である。
図７に示すように、上記エネルギー関数Ｅを小さくするということは、顔画像の場合は、関数Ｇ（ｘｊ）が位置ｐに近づくように更新量を計算することであると言える。また、図８に示すように上記エネルギー関数Ｅを小さくするということは、非顔画像の場合は、関数Ｇ（ｘｊ）が位置ｐから遠ざかるように更新量を計算することであると言える。
上記エネルギー関数は、顔画像の場合と非顔画像の場合で関数の形状が変わる。したがって、第１のパラメータ更新量計算部１０７は、上記エネルギー関数の代わりに、式１０のようにエネルギー関数Ｅを設定しても良い。
2012005066.tif 000012
Ｔは任意のベクトルである。
第２のパラメータ更新量計算部１０８は、顔情報識別部１０６で顔画像であるか非顔画像であるかが未知であると識別された結果情報に基づいて、すなわちｙｊ＝０となる場合に、関数Ｇのパラメータλの更新量を計算する。具体的には、第２のパラメータ更新量計算部１０８は、多様体位置変換部１０４が変換したか、又は多様体位置推定部１０５が推定した多様体上の位置と、画像ｘｊの多様体１１１が埋め込まれた空間１１２上の位置との距離が近い場合はより近づけ、遠い場合はより遠ざけるようにパラメータの更新量を計算する。
例えば、第１のパラメータ更新量計算部１０７において、顔画像であるか非顔画像であるかが既知である場合に採用している前記エネルギー関数Ｅを用いて、顔画像であるか非顔画像であるかが未知である学習データ、すなわちｙｊ＝０である学習データに対して、式１１のようにエネルギー関数Ｅを設定しても良い。
2012005066.tif 000013
第２のパラメータ更新量計算部１０８は、式１１で示すエネルギー関数Ｅを最小化するようにパラメータの更新量Δλを、式９によって計算する。
図９は、顔画像であるか非顔画像であるかが未知の学習データに対する顔向き推定パラメータの更新を示す図である。図９に示すように、式１１及び式１２によってパラメータ更新量を計算するということは、関数Ｇ（ｘｊ）が位置ｐに近い場合はより近づけ、位置ｐから遠い場合はより遠ざけるように計算することであると言える。図９に示すように、関数Ｇ（ｘｊ）が位置ｐに近いか遠いかの判定は、例えば閾値で境界面を定め、顔画像らしい領域と非顔画像らしい領域を定義して判定しても良い。
パラメータ更新部１０９は、第１のパラメータ更新量計算部１０７又は第２のパラメータ更新量計算部１０８で得られた更新量Δλを用いて、パラメータλをλ＋Δλへと更新する。
結果出力部１１０は、パラメータ更新部１０９で更新したパラメータλをファイルなどに出力する。
次に、図２及び図１０を参照して本発明の第１の実施の形態の動作について詳細に説明する。図１０は、本発明の第１の実施の形態の動作を示す流れ図である。
まず、ユーザによる操作に基づき、学習データ入力部１０１は、Ｎ個の学習データｚｉ（ｉ＝１，，，Ｎ）から構成される学習データ群を入力し格納する（ステップＡ１）。
次に、学習データ選択部１０２は、学習データ入力部１０１で入力された学習データ群の中から１つ、以降の処理を行わせる学習データｚｊを選択する（ステップＡ２）。
次に、顔向き情報識別部１０３には、学習データ選択部１０２で選択された学習データｚｊの顔向きが既知か未知かを識別する（ステップＡ３）。
顔向きが既知であることが識別された場合は、顔向き情報識別部１０３は、学習データｚｊを多様体位置変換部１０４に出力する。未知であることが識別された場合、顔向き情報識別部１０３は、学習データｚｊを多様体位置推定部１０５に出力する（ステップＡ４）。
次にステップＡ４において顔向きが既知である、すなわちｗｊが“ｎｉｌ”では無い適切な値であることが識別された場合、多様体位置変換部１０４は、顔向き情報ｗｊを顔向き多様体１１１上の位置ｐに変換する。（ステップＡ５）。一方、ステップＡ４において顔向きが未知であることが識別された場合には、多様体位置推定部１０５は、学習データの画像ｘｊを用いて顔向き多様体１１１上の位置ｐを推定する（ステップＡ６）。ステップＡ５またはステップＡ６のいずれのステップに移行した場合にも、画像処理学習装置１００は、顔向き多様体１１１上の位置情報ｐを得る。
次に、顔情報識別部１０６は、多様体位置変換部１０４又は多様体位置推定部１０５から、学習データｚｊ及び位置情報ｐの入力を受け、顔画像であるか非顔画像であるかが既知か未知かを識別する（ステップＡ７）。
顔画像であるか非顔画像であるかが既知であることが識別された場合、顔情報識別部１０６は、学習データｚｊ及び位置情報ｐを第１のパラメータ更新量計算部１０７に出力する。未知であることが識別された場合、顔情報識別部１０６は、学習データｚｊ及び位置情報ｐを第２のパラメータ更新量計算部１０９に出力する（ステップＡ８）。
次にステップＡ８において顔画像であるか非顔画像であるかが既知であることが識別された場合、第１のパラメータ更新量計算部１０７は、画像ｘｊの、多様体１１１が埋め込まれた空間１１２上の位置に対応する関数Ｇ（ｘｊ）と、多様体１１１上の位置ｐとの距離を計算し、顔画像であるか非顔画像であるかに応じて更新量を計算する（ステップＡ９）。一方、前記ステップＡ８において顔画像であるか非顔画像であるかが未知であることが識別された場合、第２のパラメータ更新量計算部１０９は、Ｇ（ｘｊ）がｐに近い場合はより近づけ、ｐから遠い場合はより遠くなるようにパラメータλの更新量を計算する（ステップＡ１０）。
次に、パラメータ更新部１０９は、パラメータλをλ＋Δλへとを更新する（ステップＡ１１）。
さらに、画像処理装置１０９はパラメータを十分更新したか否かを判断（ステップＡ１２）し、十分更新していないと判断されれば、再度ステップＡ２にもどり、そうでなければ処理を終了する。具体的には、ステップＡ１２に到達した回数が予め定めた回数を上回れば終了としても良い。または、ステップＡ１１で更新した更新量の大きさを識別し、その大きさが予め定めた値を下回れば終了としても良い。
本実施の形態における画像処理学習プログラムは、コンピュータに図１０に示したステップＡ１〜Ａ１２を実行させるプログラムであって、上述した動作を実行されるプログラムであれば良い。
以上説明したように、本発明の第一の実施の形態に係る画像処理学習装置１００によれば、予め用意したすべての画像が、顔情報と、顔画像であればどの向きを向いているかという情報を同時に付与されていなくても、多大なコストをかけずに、顔向き推定処理と顔検出処理を同時に、かつ高精度に学習することができる。
なぜならば、画像処理学習装置１００は、顔情報の有無と、顔向き情報の有無に応じて、学習のための処理を切り分けているからである。学習処理の切り分けにより、適切な顔検出処理と顔向き推定処理を実現できるパラメータλを学習することができる。
＜第２の実施の形態＞
本発明の第２の実施の形態は、第１の実施の形態に係る画像処理学習装置１００で学習したパラメータλから構成される関数Ｇを用いて、顔検出処理及び顔向き推定処理を行う画像処理装置２００である。
図１１は、本発明の第２の実施の形態に係る画像処理装置と画像処理学習装置の機能構成を示すブロック図である。図１１に示すように、画像処理装置２００は、画像処理学習装置１００と結果出力部１１０を介して接続されている。画像処理学習装置１００については、第１の実施の形態と同様の構成であるため説明を省略する。画像処理装置２００は、顔向き推定部２０１と顔画像判定部２０２とを含む。
顔向き推定部２０１は、入力画像の多様体を含む空間上の位置と、入力画像の多様体上の位置に基づいて顔向きを推定する。入力される入力画像は、本発明に関連する顔検出技術によって抽出された部分画像であっても良い。
具体的には、顔向き推定部２０１は、まず結果出力部１１０からのデータｕｊに基づいて入力画像の顔向きが既知か未知かを識別する。顔向き推定部２０１は、第１の実施の形態における顔向き情報識別部１０３のように顔向きを推定しても良い。すなわち、顔向き推定部２０１は、対象データｕｊ（第１の実施の形態における学習データｚｊと同様の構成によるデータ）の中の顔向き情報ｗｊを参照して、ｗｊにｎｉｌが格納されているか否かを識別し、ｎｉｌ以外が格納されていれば顔向きが既知であると判定しても良い。なお、ｙｊ＝−１の場合はｘｊが非顔画像であることが分かるので、顔向き情報識別部１０３は、ｗｊを参照せずに顔向きが未知であると判定しても良い。
顔向きが既知であると識別された場合、顔向き推定部２０１は、既知である顔向きを推定結果とする。なお、顔向き推定部２０１は、顔向き情報を多様体上の位置に変換しておいても良い。多様体上の位置は、例えば式１、式２又は式３などによって変換しても良い。また、顔向き推定部２０１は、画像処理学習装置１００の学習によって更新したパラメータλから構成される関数Ｇを用いて、入力画像の多様体を含む空間上の位置を算出しておいても良い。
顔向きが未知であると識別された場合、顔向き推定部２０１は、画像処理学習装置１００の学習により更新したパラメータλから構成される関数Ｇを用いて、入力画像の多様体を含む空間上の位置を算出する。顔向き推定部２０１は、算出した空間上の位置から多様体上の位置を推定し、該推定した多様体上の位置から算出された顔向きを推定し、その結果を出力する。多様体上の位置は、例えば式５などによって推定しても良い。顔向きは、例えば式１、式２又は式３などによって算出しても良い。
顔画像判定部２０２は、顔向き推定部２０１が入力画像の多様体を含む空間上の位置と前記多様体上の位置との距離で顔画像であるか非顔画像であるかを判定する。
具体的には、顔画像判定部２０２は、まず入力画像が顔又は非顔画像であることが既知か未知かを識別する。顔画像判定部２０２は、第１の実施の形態における顔情報識別部１０６のように顔・非顔の判定を行っても良い。すなわち、顔画像判定部２０２は、対象データｕｊの中の顔情報ｙｊの値を検出して、ｙｊ＝１もしくはｙｊ＝−１であれば、顔画像であるか非顔画像であるかが既知であると判断し、ｙｊ＝０であれば、顔画像であるか非顔画像であるかが未知であると判断しても良い。
顔又は非顔画像であることが既知であると判定された場合、顔画像判定部２０２は、既知である情報を推定結果とする。
顔又は非顔画像であることが未知である場合、顔画像判定部２０２は、画像処理学習装置１００の学習により更新したパラメータλから構成される関数Ｇを用いて、入力画像の多様体を含む空間上の位置を算出する。顔向き推定部２０１によってすでに空間上の位置が算出されていた場合は、その位置を用いても良い。
また、顔画像判定部２０２は、入力画像の多様体上の位置を算出する。多様体上の位置は、例えば式１、式２又は式３などによって算出しても良い。顔向き推定部２０１によってすでに入力画像の多様体上の位置が変換又は推定されていた場合は、その位置を用いても良い。
顔画像判定部２０２は、入力画像の多様体を含む空間上の位置と、入力画像の多様体上の位置との距離が、閾値より小さければ入力画像は顔画像であると判定する。顔画像判定部２０２は、入力画像の多様体を含む空間上の位置と、入力画像の多様体上の位置との距離が、閾値より大きければ入力画像は非顔画像であると判定する。
次に、図１２を参照して本発明の第２の実施の形態の動作について詳細に説明する。図１２は、本発明の第２の実施の形態の動作を示す流れ図である。
まず、ユーザは、対象データを顔向き推定部２０１に入力する。または、コンピュータが本発明に関連する顔検出技術において抽出された部分画像を入力しても良い（ステップＢ１）。
次に、顔向き推定部２０１は、入力された対象データの画像の顔向きが既知か未知かを識別する（ステップＢ２）。
顔向きが既知であると識別された場合、顔向き推定部２０１は、既知である顔向きを推定結果とする（ステップＢ３）。
顔向きが未知であると識別された場合は、顔向き推定部２０２は、上述した処理によって対象データの画像の多様体上の位置を推定し、顔向きを算出する（ステップＢ４）。
次に、顔画像判定部２０２は、対象データの画像が顔又は非顔画像であることが既知か未知かを識別する（ステップＢ５）。
顔又は非顔画像であることが既知であると識別した場合、顔画像判定部２０２は、既知である情報を判定結果とする（ステップＢ６）。
顔又は非顔画像であることが未知であると識別した場合、顔画像判定部２０２は、対象データの画像の多様体を含む空間上の位置と、多様体上の位置との距離が、閾値より小さければ、対象データの画像は顔画像であると判定する。また、顔画像判定部２０２は、閾値より大きければ非顔画像であると判定する（ステップＢ７）。
本実施の形態における画像処理プログラムは、コンピュータに図１２に示したステップＢ１〜Ｂ６を実行させるプログラムであって、上述した動作を実行されるプログラムであれば良い。
以上説明したように、本発明に係る画像処理装置２００によれば、画像処理学習装置１００の学習により更新したパラメータλから構成される関数Ｇを用いることで、顔検出処理及び顔向き推定処理を同時に、かつ高精度に行うことができる。
【実施例】
【００１０】
次に、図１０及び図１３を参照して、本発明の第１の実施の形態の具体的な実施例を説明する。図１３は、画像を多様体に変換するニューラルネットワークの例を示す図である。顔向き推定を実現する関数Ｇとしては、図１３に示すような、３２×３２の画素から構成される画像を１０００個の隠れ層を経て５つの出力層に出力する３層のニューラルネットワークを、非特許文献４も参考にして採用する。
まず、ユーザは、該ニューラルネットワークに対するパラメータλを、はじめはすべて０に設定しておく。また、ユーザは学習用のデータ群を予め用意する。
用意する学習用のデータ群について詳細に説明する。まず、ユーザは、デジタルカメラを用いて、予め顔を含む画像を大量に撮影する。この際に、ユーザは、撮影対象となる人物の立つ位置とカメラの位置を固定することで、顔向きが一定になるようにして撮影を行い、例えば１００人の人物の１つの顔向きの画像を計１００枚撮影する。
次に、ユーザは、人物の立つ位置とカメラの位置を逐次変更させ、さまざまな顔向きの画像の撮影を繰り返す。ユーザは、全部で例えば１０通りの顔向きの画像をそれぞれ１００枚ずつ撮影することで、合計１０００枚の画像を撮影する。この場合、すでに人物の立つ位置とカメラの位置がわかっているので、ユーザは、これらの画像すべてについて顔向き情報を得ることができる。例えば、ユーザは、顔向き情報として、正面を０度として左右何度方向を向いているか、その角度を撮影状況から計算して得る。本実施例においては、撮影状況から計算して得た角度をｗｉとし、ｗｉとしてｙａｗのみを考える。
次に、ユーザは、撮影した画像群と顔向き情報をテキスト化したファイルをＰＣのハードディスクに画像として格納する。そして、該画像群に対し、ＰＣの画像処理ソフトを用いて、人手によって顔以外の領域を削除し、顔が写っている領域部分を切り出す。
この処理は人手の手間がかかるために、例えばユーザは、撮影した１０００枚の画像のうちの５００枚の画像に対してのみ顔の領域部分を切り出す処理を実施し、５００枚の顔画像群を得る。
次にユーザは、顔画像群の大きさをすべて拡大若しくは縮小させて縦３２画素、横３２画素にそろえ、モノクロ画像に変換して再度ＰＣのハードディスクに格納する。この画像データを学習データ群Ａと呼ぶとする。学習データ群Ａに属するデータは、顔画像であり、かつ顔向き情報が既知である。すなわち学習データ群Ａは、縦３２画素、横３２画素からなる３２×３２次元のベクトルｘｉ（ｉ＝１．．．５００）と、対応する顔・非顔情報ｙｉ＝１と、ｎｉｌでは無い顔向き情報ｗｉを保持する。
次に、ユーザは、撮影した１０００枚の画像のうち、顔の領域部分を切り出す処理に利用しなかった残りの５００枚の画像に対して、ランダムに画像中の一部矩形領域を切り出す。ユーザは、切り出した画像を縦３２画素、横３２画素の画像に拡大もしくは縮小し、全部で５００枚の画像群を作成する。ユーザは、該画像群をモノクロ画像に変換して再度ＰＣのハードディスクに格納する。この画像データを学習データ群Ｂと呼ぶとする。学習データ群Ｂに属するデータは、顔画像であるか否かは不明であるが、仮に顔画像であるとした場合の顔向きは既知である。すなわち学習データ群Ｂは、縦３２画素、横３２画素からなる３２×３２次元のベクトルｘｉ（ｉ＝５０１．．．１０００）と、対応する顔・非顔情報ｙｉ＝ｎｉｌと、ｎｉｌでは無い顔向き情報ｗｉを保持する。
次に、ユーザは、これまでの画像群とは別にあらたに、風景など人物の顔が映らない画像を例えば５００枚撮影し、ＰＣのハードディスクに格納する。その後、ユーザは、ランダムに画像中の一部矩形領域を切り出してきて、それを縦３２画素、横３２画素の画像に拡大もしくは縮小し、全部で５００枚の画像群を作成する。ユーザは、該画像群をモノクロ画像に変換して再度ＰＣのハードディスクに格納する。この画像データを学習データ群Ｃと呼ぶとする。学習データ群Ｃに属するデータは、非顔画像であることが既知である。すなわち学習データ群Ｃは、縦３２画素、横３２画素からなる３２×３２ベクトルｘｉ（ｉ＝１００１．．．１５００）と、対応する顔・非顔情報ｙｉ＝−１と、ｎｉｌが格納されている顔向き情報ｗｉを保持する。
次に、ユーザは、これまでの画像群とは別にあらたに、インターネットなどから顔を含む画像を例えば１０００枚収集し、ＰＣのハードディスクに格納する。そしてユーザは、収集した画像に対し、ＰＣの画像処理ソフトを用いて、人手によって顔の領域部分を切り出す。
この処理は人手の手間がかかるために、例えばユーザは、撮影した１０００枚の画像のうちの５００枚の画像に対してのみ顔の領域部分を切り出す処理を実施し、５００枚の顔画像群を得る。
次に、ユーザは、顔画像群の大きさをすべて拡大若しくは縮小させて縦３２画素、横３２画素にそろえ、モノクロ画像に変換して再度ＰＣのハードディスクに格納する。この画像データを学習データ群Ｄと呼ぶとする。学習データ群Ｄに属するデータは、顔画像であることは既知であるが、顔向き情報は未知である。すなわち学習データ群Ｄは、縦３２画素、横３２画素からなる３２×３２次元のベクトルｘｉ（ｉ＝１５０１．．．２０００）と、対応する顔・非顔情報ｙｉ＝１と、ｎｉｌが格納されている顔向き情報ｗｉを保持する。
次に、ユーザは、インターネットなどから収集した１０００枚の画像うち、顔の領域部分を切り出す処理に利用しなかった残りの５００枚の画像に対して、ランダムに画像中の一部矩形領域を切り出す。ユーザは、切り出した画像を縦３２画素、横３２画素の画像に拡大もしくは縮小し、全部で５００枚の画像群を作成する。ユーザは、該画像群をモノクロ画像に変換して再度ＰＣのハードディスクに格納する。この画像データを学習データ群Ｅと呼ぶとする。学習データ群Ｅに属するデータは、顔画像であるか否かは未知であり、かつ仮に顔画像だとした場合でも顔向き情報も未知である。すなわち学習データ群Ｅは、縦３２画素、横３２画素からなる３２×３２次元のベクトルｘｉ（ｉ＝２００１．．．２５００）と、対応する顔・非顔情報ｙｉ＝ｎｉｌと、ｎｉｌが格納されている顔向き情報ｗｉを保持する。
ユーザによる操作に基づき、学習データ入力部１０１は、学習データ群ＡからＥまで合計２５００個のデータを一括して学習用のデータ群として入力する。すなわち、第１の実施の形態におけるステップＡ１において、学習データ入力部１０１は、該２５００個（Ｎ＝２５００）の学習データｚｉから構成される学習用のデータ群を入力する。
次にステップＡ２において、学習データ選択部１０２は、２５００個のデータから構成される学習用のデータ群の中から、ランダムに１つのデータｚｊを学習データとして選択する。例えば、学習データは、ｊ＝１２０のデータ（２５００個のデータのうちの１２０番目のデータ）であるとする。
次にステップＡ３において、顔向き情報識別部１０３は、ｚｊが顔向き情報をもっているか否かを識別する。ｊが１から１０００までの値であればｚｊは学習データ群ＡまたはＢに属しているため、ｗｊにはｎｉｌが格納されておらず、顔向き情報識別部１０３は、ｗｊにはｎｉｌ以外の顔向きを示す値が入っていることを検出する。今回はｊ＝１２０であるために、顔向き情報識別部１０３は、ｚｊは顔向きが既知のデータであることを識別する。
次にステップＡ４に移行するが、ｚｊは顔向きが既知であることが識別されたために、ステップＡ５に移行する。
次にステップＡ５において、多様体位置変換部１０４は、顔向き情報ｗｊを、顔向き多様体上の位置に変換する。
本実施例においては、顔向き多様体として５次元空間内部の多様体を考える。多様体位置変換部１０４は、式１２によって、顔向き情報ｗｊを５次元内部の点ｐ＝Ｆ（ｗｊ）に変換する。
2012005066.tif 000014
本実施例では、顔向き情報ｗｊとしてｙａｗのみを考えているため、そのｙａｗの大きさをθとする。
次にステップＡ７において、顔情報識別部１０６は、ｚｊの顔情報を識別する。
ｊが１から５００（学習データ群Ａに対応）まで若しくは１００１から２０００（学習データ群Ｃ及びＤに対応）までの値であれば、顔情報識別部１０６は、顔情報を保持していることを識別する。学習データｚｊはｊ＝１２０のデータであるから、顔情報識別部１０６は、ｚｊは顔情報を保持していることを識別する。また、ｙｉ＝１であるために、顔情報識別部１０６は、ｚｊが顔画像であることを識別し、ステップＡ１０に移行する。
ステップＡ１０において、第１のパラメータ更新量計算部１０７は、点ｐと点Ｇ（ｘｊ）が近づくような関数Ｇのパラメータλの更新量を、式１０を用いて、式９のように計算することで決定する。
ステップＡ１１において、パラメータ更新部１０９は、パラメータλをλ＋Δλに更新する。
ステップＡ１２において、パラメータ更新部１０９は、パラメータの更新を十分に行ったかどうかを判定する。パラメータ更新部１０９は、例えば１００００回パラメータλの更新を行ったら終了するという判定を行う。今回は、まだ１回目であるから、終了とは判定されず、ステップＡ２にもどる。
以下、同様の処理を繰り返し、１００００回パラメータλの更新を行ったところで処理が終了する。
＜実施の形態の他の表現＞
上記の各実施の形態においては、以下に示すような画像処理学習装置、画像処理学習方法、および画像処理学習プログラムの特徴的構成が示されている。
本発明の実施形態における画像処理学習装置は、学習データ群から選択されたデータに対して、顔向きが既知か未知かを識別する顔向き情報識別部と、顔向き情報識別部で顔向きが既知であると識別された場合に、顔向き情報を、多様体上の位置に変換する多様体位置変換部と、顔向き情報識別部で顔向きが未知であると識別された場合に、データに対応する画像を多様体が埋め込まれた空間上の位置に変換する関数を用いて変換された画像の空間上の位置から、多様体上のどの位置が相応しい位置かを推定する多様体位置推定部と、データに対して、顔画像であるか非顔画像であるかが既知か未知かを識別する顔情報識別部と、顔情報識別部で顔画像であるか非顔画像であるかが既知であると識別された場合に、多様体位置変換部が変換したか、又は多様体位置推定部が推定した多様体上の位置と、関数によって変換された画像の空間上の位置との距離を計算し、該距離に基づき、顔画像であるか非顔画像であるかに応じて関数を構成するパラメータの更新量を計算する第１のパラメータ更新量計算部と、顔情報識別部で顔画像であるか非顔画像であるかが未知であると識別された場合に、多様体位置変換部が変換したか、又は多様体位置推定部が推定した多様体上の位置と、画像の空間上の位置との距離が近い場合はより近づけ、遠い場合はより遠ざけるようにパラメータの更新量を計算する第２のパラメータ更新量計算部と、第１のパラメータ更新量計算部又は第２のパラメータ更新量計算部で計算された更新量を用いてパラメータを更新するパラメータ更新部と、を含む。
また、本発明の他の実施形態における画像処理装置は、画像処理学習装置の学習により更新されたパラメータを有する関数を用いて顔検出処理及び顔向き推定処理を行う画像処理装置であって、顔向きが未知の場合、入力画像の多様体を含む空間上の位置と、入力画像の多様体上の位置に基づいて顔向きを推定する顔向き推定部と、顔又は非顔画像であるか否かが未知の場合、入力画像の空間上の位置と多様体上の位置との距離で顔画像であるか非顔画像であるかを判定する顔画像判定部と、さらにを含む。
本発明の実施形態における画像処理学習方法は、学習データ群から選択されたデータに対して、顔向きが既知か未知かを識別し、顔向きが既知であると識別された場合に、顔向き情報を、多様体上の位置に変換し、顔向きが未知であると識別された場合に、データに対応する画像を多様体が埋め込まれた空間上の位置に変換する関数を用いて変換された画像の空間上の位置から、多様体上のどの位置が相応しい位置かを推定し、データに対して、顔画像であるか非顔画像であるかが既知か未知かを識別し、顔画像であるか非顔画像であるかが既知であると識別された場合に、変換又は推定した多様体上の位置と、関数によって変換された画像の空間上の位置との距離を計算し、該距離に基づき、顔画像であるか非顔画像であるかに応じて関数を構成するパラメータの更新量を計算し、顔画像であるか非顔画像であるかが未知であると識別された場合に、変換又は推定した多様体上の位置と、画像の空間上の位置との距離が近い場合はより近づけ、遠い場合はより遠ざけるようにパラメータの更新量を計算し、計算された更新量を用いてパラメータを更新する。
また、本発明の他の実施形態における画像処理方法は、画像処理学習方法の学習により更新されたパラメータを有する関数を用いて顔検出処理及び顔向き推定処理を行う画像処理方法であって、さらに、顔向きが未知の場合、入力画像の多様体を含む空間上の位置と、入力画像の多様体上の位置に基づいて顔向きを推定し、顔又は非顔画像であるか否かが未知の場合、入力画像の空間上の位置と多様体上の位置との距離で顔画像であるか非顔画像であるかを判定する。
本発明の実施形態における画像処理学習プログラムは、学習データ群から選択されたデータに対して、顔向きが既知か未知かを識別し、顔向きが既知であると識別された場合に、顔向き情報を、多様体上の位置に変換し、顔向きが未知であると識別された場合に、データに対応する画像を多様体が埋め込まれた空間上の位置に変換する関数を用いて変換された画像の空間上の位置から、多様体上のどの位置が相応しい位置かを推定し、データに対して、顔画像であるか非顔画像であるかが既知か未知かを識別し、顔画像であるか非顔画像であるかが既知であると識別された場合に、変換又は推定した多様体上の位置と、関数によって変換された画像の空間上の位置との距離を計算し、該距離に基づき、顔画像であるか非顔画像であるかに応じて関数を構成するパラメータの更新量を計算し、顔画像であるか非顔画像であるかが未知であると識別された場合に、変換又は推定した多様体上の位置と、画像の空間上の位置との距離が近い場合はより近づけ、遠い場合はより遠ざけるようにパラメータの更新量を計算し、計算された更新量を用いてパラメータを更新する、処理をコンピュータに実行させる。
また、本発明の他の実施形態における画像処理プログラムは、画像処理学習プログラムの学習により更新されたパラメータを有する関数を用いて顔検出処理及び顔向き推定処理をコンピュータに実行させるための画像処理プログラムであって、さらに、顔向きが未知の場合、入力画像の多様体を含む空間上の位置と、入力画像の多様体上の位置に基づいて顔向きを推定し、顔又は非顔画像であるか否かが未知の場合、入力画像の空間上の位置と多様体上の位置との距離で顔画像であるか非顔画像であるかを判定する、処理をコンピュータに実行させる。
以上、各実施の形態及び実施例を参照して本願発明を説明したが、本願発明は以上の実施の形態及び実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で同業者が理解し得る様々な変更をすることができる。
この出願は、２０１０年７月７日に出願された日本出願特願２０１０−１５４９１４を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【００１１】
１００    画像処理学習装置
１０１    学習データ入力部
１０２    学習データ選択部
１０３    顔向き情報識別部
１０４    多様体位置変換部
１０５    多様体位置推定部
１０６    顔情報識別部
１０７    第１のパラメータ更新量計算部
１０８    第２のパラメータ更新量計算部
１０９    パラメータ更新部
１１０    結果出力部
１１１    多様体
１１２    空間
２００    画像処理装置
２０１    顔向き推定部
２０２    顔画像判定部
Ａ    撮影画像
【図１】
2012005066.tif 000015
【図２】
2012005066.tif 000016
【図３】
2012005066.tif 000017
【図４】
2012005066.tif 000018
【図５】
2012005066.tif 000019
【図６】
2012005066.tif 000020
【図７】
2012005066.tif 000021
【図８】
2012005066.tif 000022
【図９】
2012005066.tif 000023
【図１０】
2012005066.tif 000024
【図１１】
2012005066.tif 000025
【図１２】
2012005066.tif 000026
【図１３】
2012005066.tif 000027
【国際調査報告】
2012005066.tif 000028
2012005066.tif 000029