(57)【要約】【課題】被写体の姿勢を簡易かつ高精度に推定する。【解決手段】姿勢推定装置１の識別部１０は、画像Ｉを入力し、例えば畳み込みニューラルネットワークにて、予め設定されたパラメータｐを用いて、Ｎ個の離散的な角度θnの識別処理を行い、それぞれの確度値ｗ（θn）を求める。加重合成部２０は、Ｎ個の角度θnに対するそれぞれの確度値ｗ（θn）に応じた重み付けにより、Ｎ個の角度θnの加重合成処理を行い、連続的な姿勢情報θを生成する。【選択図】図１
2020107244.tif 000002
【特許請求の範囲】
【請求項１】
入力画像に含まれる被写体の姿勢を推定する姿勢推定装置において、
前記入力画像に基づいて前記被写体の角度を識別し、予め設定された複数の角度のそれぞれに対応する確度値を求める識別部と、
前記識別部により求めた前記複数の角度のそれぞれに対応する前記確度値に応じた重み付けにより、前記複数の角度を加重合成し、姿勢情報を求める加重合成部と、
を備えたことを特徴とする姿勢推定装置。
【請求項２】
請求項１に記載の姿勢推定装置において、
前記識別部は、ニューラルネットワークにより構成される、ことを特徴とする姿勢推定装置。
【請求項３】
請求項１または２に記載の姿勢推定装置において、
前記姿勢情報を前記被写体の角度とする、または、前記姿勢情報をベクトル値または複素数値として表したときのノルムを信頼度とした場合に、前記姿勢情報を、前記被写体の角度及び当該角度における前記信頼度とする、ことを特徴とする姿勢推定装置。
【請求項４】
学習データとして被写体を含む画像及び前記被写体の姿勢情報を入力し、前記学習データを用いてモデルを学習し、当該モデルのパラメータの最適化を行う学習装置において、
前記姿勢情報に基づいて、予め設定された複数の角度のそれぞれに対応する学習用確度値を求める確度生成部と、
前記画像、及び前記確度生成部により求めた前記複数の角度のそれぞれに対応する前記学習用確度値に基づいて、前記被写体の角度を識別するための前記モデルを学習し、前記被写体の姿勢を推定するために用いる前記パラメータを更新する学習用識別部と、
を備えたことを特徴とする学習装置。
【請求項５】
請求項４に記載の学習装置において、
前記確度生成部は、
前記姿勢情報のベクトルと前記複数の角度のそれぞれのベクトルとの間のなす角を算出し、当該なす角に対し、広義単調減少かつ非定数の関数を適用し、前記複数の角度のそれぞれに対応する前記学習用確度値を求める、ことを特徴とする学習装置。
【請求項６】
請求項４に記載の学習装置において、
前記確度生成部は、
前記姿勢情報のベクトルと前記複数の角度のそれぞれのベクトルとの間のなす角を算出し、前記複数の角度のうち前記なす角が最小となる角度について、所定値を前記学習用確度値に設定し、前記複数の角度のうち前記なす角が最小とならない角度について、前記所定値よりも小さい値を前記学習用確度値に設定する、ことを特徴とする学習装置。
【請求項７】
コンピュータを、請求項１から３までのいずれか一項に記載の姿勢推定装置として機能させるためのプログラム。
【請求項８】
コンピュータを、請求項４から６までのいずれか一項に記載の学習装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力画像から被写体の姿勢を推定する姿勢推定装置、入力画像と被写体の姿勢の関係を学習する学習装置、及びプログラムに関する。
【背景技術】
【０００２】
従来、被写体を含む入力画像から当該被写体の姿勢を推定する姿勢推定装置が知られている。例えば、顔の姿勢を推定するために、テンプレートを用いて入力画像との間でマッチング処理を行う技術が開示されている（例えば、特許文献１を参照）。具体的には、この技術は、顔を構成する眼等の器官のテンプレートを用いて、入力画像から頭部姿勢を推定し、眼等の器官の位置を計算し、頭部モデルを適合して頭部の回転変位及び並進変位を決定するものである。
【０００３】
また、例えば、顔の姿勢を推定するために、入力画像の色ヒストグラムに基づく識別結果と、色ヒストグラム以外の特徴量（例えば、勾配ヒストグラム）に基づく識別結果とを統合化する技術が開示されている（例えば、特許文献２を参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第５０１６１７５号公報
【特許文献２】特開２０１８−２２４１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、前述の特許文献１のテンプレートマッチングによる技術は、顔の姿勢を推定するために、顔を構成する眼等の器官毎のテンプレートが予め必要である。このため、顔を構成する器官毎のテンプレートを用意するのに手間がかかるという問題があった。
【０００６】
また、前述の特許文献２の技術は、入力画像の色ヒストグラムと例えば勾配ヒストグラムとに基づいて、顔の姿勢の推定を低負荷に行うものである。
【０００７】
しかしながら、入力画像には色ヒストグラム及び勾配ヒストグラム以外にも、顔の姿勢を推定するために有用な情報が含まれ得る。例えば、周波数領域における位相情報、特徴的なパターンの見え方（傾き、位置、大きさ、縦横比等）等も有用となる可能性があるが、特許文献２の技術では、これらの情報を有効に活用していない。このため、色ヒストグラム等の情報に限定した処理では、顔の姿勢の推定精度が不十分であるという問題があった。
【０００８】
そこで、本発明は前記課題を解決するためになされたものであり、その目的は、被写体の姿勢を簡易かつ高精度に推定可能な姿勢推定装置、学習装置及びプログラムを提供することにある。
【課題を解決するための手段】
【０００９】
前記課題を解決するために、請求項１の姿勢推定装置は、入力画像に含まれる被写体の姿勢を推定する姿勢推定装置において、前記入力画像に基づいて前記被写体の角度を識別し、予め設定された複数の角度のそれぞれに対応する確度値を求める識別部と、前記識別部により求めた前記複数の角度のそれぞれに対応する前記確度値に応じた重み付けにより、前記複数の角度を加重合成し、姿勢情報を求める加重合成部と、を備えたことを特徴とする。
【００１０】
請求項１の発明によれば、識別部は、離散的な角度に対する確度値を求めればよいから、連続的な角度の確度値を求める場合に比べ、回路規模を削減することができる。また、加重合成部により、離散的な角度に対する確度値を用いて、連続的な角度情報である姿勢情報が得られる。加重合成部の処理は、積和演算で済むから低負荷である。したがって、低負荷かつ小規模な回路により、連続的な姿勢情報を得ることができる。
【００１１】
また、請求項２の姿勢推定装置は、請求項１に記載の姿勢推定装置において、前記識別部が、ニューラルネットワークにより構成される、ことを特徴とする。
【００１２】
請求項２の発明によれば、ニューラルネットワークの構成及び種類並びにパラメータである結合重み係数の設定次第で、入力画像の多様な特徴のうち姿勢を推定するために好適な特徴を抽出するネットワークを構築することができる。その結果、特定の特徴量を用いて姿勢を推定する従来の手法よりも、推定精度を向上させることができる。また、被写体の部分（例えば、顔の器官）毎のテンプレートを明示的に与える必要もない。
【００１３】
また、請求項３の姿勢推定装置は、請求項１または２に記載の姿勢推定装置において、前記姿勢情報を前記被写体の角度とする、または、前記姿勢情報をベクトル値または複素数値として表したときのノルムを信頼度とした場合に、前記姿勢情報を、前記被写体の角度及び当該角度における前記信頼度とする、ことを特徴とする。
【００１４】
請求項３の発明によれば、姿勢情報を被写体の角度及び信頼度とすることで、被写体の角度の信頼度も定量化することができる。これにより、当該姿勢推定装置により得られた姿勢情報を用いて他の処理を行う場合、信頼度の低い姿勢情報については、他の処理のために用いないようにする。つまり、当該姿勢推定装置、及び姿勢情報を用いる装置を含む全体システムにおいて、信頼度を向上させることができる。
【００１５】
さらに、請求項４の学習装置は、学習データとして被写体を含む画像及び前記被写体の姿勢情報を入力し、前記学習データを用いてモデルを学習し、当該モデルのパラメータの最適化を行う学習装置において、前記姿勢情報に基づいて、予め設定された複数の角度のそれぞれに対応する学習用確度値を求める確度生成部と、前記画像、及び前記確度生成部により求めた前記複数の角度のそれぞれに対応する前記学習用確度値に基づいて、前記被写体の角度を識別するための前記モデルを学習し、前記被写体の姿勢を推定するために用いる前記パラメータを更新する学習用識別部と、を備えたことを特徴とする。
【００１６】
請求項４の発明によれば、姿勢情報から、複数の角度のそれぞれに対応する学習用確度値を得ることができ、画像及び学習用確度値を用いてモデルを学習することができ、最適化したパラメータを得ることができる。
【００１７】
また、請求項５の学習装置は、請求項４に記載の学習装置において、前記確度生成部が、前記姿勢情報のベクトルと前記複数の角度のそれぞれのベクトルとの間のなす角を算出し、当該なす角に対し、広義単調減少かつ非定数の関数を適用し、前記複数の角度のそれぞれに対応する前記学習用確度値を求める、ことを特徴とする。
【００１８】
請求項５の発明によれば、姿勢情報に近い角度ほど、学習用確度値が大きくなる。このような学習用確度値を用いる学習用識別部は、モデルにより姿勢情報に近い角度の姿勢が推定されるように、パラメータを更新することができる。このパラメータを姿勢推定装置に用いることで、被写体の姿勢を適切に推定することができる。
【００１９】
また、請求項６の学習装置は、請求項４に記載の学習装置において、前記確度生成部が、前記姿勢情報のベクトルと前記複数の角度のそれぞれのベクトルとの間のなす角を算出し、前記複数の角度のうち前記なす角が最小となる角度について、所定値を前記学習用確度値に設定し、前記複数の角度のうち前記なす角が最小とならない角度について、前記所定値よりも小さい値を前記学習用確度値に設定する、ことを特徴とする。
【００２０】
請求項６の発明によれば、学習用確度値は２値であるため、学習用確度値に対応する各角度に対し、２値分類の学習を行えばよいこととなる。その結果、学習用識別部の回路規模を小さくすることができ、学習効率を向上させることができる。
【００２１】
さらに、請求項７のプログラムは、コンピュータを、請求項１から３までのいずれか一項に記載の姿勢推定装置として機能させることを特徴とする。
【００２２】
また、請求項８のプログラムは、コンピュータを、請求項４から６までのいずれか一項に記載の学習装置として機能させることを特徴とする。
【発明の効果】
【００２３】
以上のように、本発明によれば、被写体の姿勢を簡易かつ高精度に推定することができる。
【図面の簡単な説明】
【００２４】
【図１】本発明の実施形態による姿勢推定装置の構成の一例を示すブロック図である。
【図２】姿勢推定装置の処理の一例を示すフローチャートである。
【図３】識別部の構成の一例を示すブロック図である。
【図４】本発明の実施形態による学習装置の構成の一例を示すブロック図である。
【図５】学習装置の処理の一例を示すフローチャートである。
【図６】学習用識別部の構成の一例を示すブロック図である。
【発明を実施するための形態】
【００２５】
以下、本発明を実施するための形態について図面を用いて詳細に説明する。本発明の  実施形態による姿勢推定装置は、姿勢推定の対象となる画像Ｉを入力し、予め設定されたパラメータｐを用いて、画像Ｉに基づき姿勢情報θ及び必要に応じてその信頼度ｒを推定して出力する。
【００２６】
画像Iは、例えば、人の頭部画像とする。姿勢情報θは、例えば、画像Iを撮影したカメラに対して人の頭部が正対した場合を0とし、所定の回転方向（例えば、人の上から見て反時計回り）を正の回転角とした場合の角度値（０ラジアン以上２πラジアン未満の角度値）とする。
【００２７】
画像Iの大きさ、形状及び解像度は、好適には固定とする。例えば、画像Ｉは、水平Ｗ画素及び垂直Ｈ画素の矩形画像とする。Ｗ及びＨは自然数とする。画像Iは、例えばカラー画像であってもよいし、モノクロ画像であってもよい。
【００２８】
姿勢情報θは、角度値であってもよいし、方向ベクトルのベクトル値または複素数値（フェーザ）であってもよい。姿勢情報θを角度値にて表現する場合、θの範囲を所定範囲に限定してもよい（θを弧度法で表す場合には、例えば、０≦θ＜２πとする）。また、姿勢情報θをベクトル値または複素数値にて表現する場合、そのノルム値（例えば、ユークリッドノルム値）は１とする。信頼度ｒは、例えば０以上１以下の実数値とする。
【００２９】
尚、姿勢情報θ及び信頼度ｒを一括して、ベクトル値または複素数値としての姿勢情報θとして表現してもよい。このとき、姿勢情報θの偏角を姿勢角に呼応させ、姿勢情報θのノルム値を信頼度ｒに呼応させる。
【００３０】
また、本発明の実施形態による学習装置は、画像Ｊk及び姿勢情報φkを学習データとして、画像Ｊkと姿勢情報φkとの間の関係を学習し、姿勢推定装置にて使用する最適なパラメータｐを求める。
【００３１】
〔姿勢推定装置〕
次に、本発明の実施形態による姿勢推定装置について詳細に説明する。図１は、本発明の実施形態による姿勢推定装置の構成の一例を示すブロック図であり、図２は、姿勢推定装置の処理の一例を示すフローチャートである。この姿勢推定装置１は、入力画像に含まれる被写体の姿勢を推定する装置であり、識別部１０及び加重合成部２０を備えている。
【００３２】
（識別部１０）
識別部１０は、姿勢推定の対象となる画像Ｉを入力し、予め設定されたパラメータｐを用いて、画像Ｉに含まれる被写体についてＮ個の代表的な角度θnの識別処理を行い、それぞれの確度値ｗ（θn）を求める。Ｎは２以上の自然数であり、ｎは０以上Ｎ−１以下の整数である。Ｎ個の代表的な角度θnは、予め設定される。そして、識別部１０は、Ｎ個の角度θnに対するそれぞれの確度値ｗ（θn）からなる確度値列（ｗ（θn））n∈{0,1,…,N-1}を加重合成部２０に出力する。
【００３３】
すなわち、識別部１０は、入力信号を画像Ｉとし、出力信号を、Ｎ個の代表的な角度θnに対するそれぞれの確度値ｗ（θn）とする識別器である。後述する図３においては、入力信号であるの画像Ｉを、各画素３成分からなるカラー画像とし、Ｎ＝８としている。
【００３４】
代表的な角度θnは、例えば以下の式のとおり、２πラジアンをＮ等分するように予め設定される。
【数１】
2020107244.tif 000003
【００３５】
識別部１０は、例えばニューラルネットワークにより構成される。図３は、識別部１０の構成の一例を示すブロック図であり、識別部１０が畳み込みニューラルネットワークにより構成された場合を示している。識別部１０は、畳み込み層（畳み込み部）１１，１２，１３，１４及び全結合層（全結合部）１５，１６からなる畳み込みニューラルネットワークにより構成される。
【００３６】
尚、ニューラルネットワークの層数、素子数、活性化関数、畳み込み層の有無、畳み込みカーネルの大きさ、全結合層の有無、ストライド（サブサンプリング）の有無及びステップ、プーリング層の有無及び種類、ドロップアウトの有無等の構成は任意である。また、識別部１０は、畳み込みニューラルネットワーク以外のニューラルネットワークであってもよい。
【００３７】
図３において、例えば、識別部１０が入力する画像Ｉを、水平Ｗ＝２０画素、垂直Ｈ＝２０画素及び色３成分からなる２０×２０×３の３階テンソルとする。以下、水平Ｗ画素数×垂直Ｈ画素数×成分数で表される水平画素、垂直画素及び成分を、説明の便宜上「画素成分」という。
【００３８】
図２及び図３を参照して、畳み込み層１１は、２０×２０×３画素成分の３階テンソルの画像Ｉを入力する（ステップＳ２０１）。そして、畳み込み層１１は、画像Ｉに対し、３×３×３画素成分の畳み込みフィルタを２×２のストライドにおいて１２種類適用し、予め設定されたパラメータｐを用いて畳み込み処理を行う。畳み込み層１１は、１０×１０×１２画素成分の３階テンソルの画像Ｔ1を生成する（ステップＳ２０２）。
【００３９】
尚、畳み込みニューラルネットワークにおける畳み込み層１１，１２，１３，１４による畳み込み処理は既知であるから、ここでは詳細な説明を省略する。
【００４０】
畳み込み層１１は、１０×１０×１２画素成分の３階テンソルの画像Ｔ1を畳み込み層１２に出力する。画像Ｔ1は、水平Ｗ＝１０画素、垂直Ｈ＝１０画素及び１２成分からなる３階テンソルの画像である。
【００４１】
畳み込み層１２は、畳み込み層１１から、１０×１０×１２画素成分の３階テンソルの画像Ｔ1を入力する。そして、畳み込み層１２は、画像Ｔ1に対し、３×３×３画素成分の畳み込みフィルタを２×２のストライドにおいて２４種類適用し、予め設定されたパラメータｐを用いて畳み込み処理を行う。畳み込み層１２は、５×５×２４画素成分の３階テンソルの画像Ｔ2を生成する（ステップＳ２０３）。
【００４２】
畳み込み層１２は、５×５×２４画素成分の３階テンソルの画像Ｔ2を畳み込み層１３に出力する。画像Ｔ2は、水平Ｗ＝５画素、垂直Ｈ＝５画素及び２４成分からなる３階テンソルの画像である。
【００４３】
畳み込み層１３は、畳み込み層１２から、５×５×２４画素成分の３階テンソルの画像Ｔ2を入力する。そして、畳み込み層１３は、画像Ｔ2に対し、３×３×３画素成分の畳み込みフィルタを１×１のストライドにおいて３２種類適用し、予め設定されたパラメータｐを用いて畳み込み処理を行う。畳み込み層１３は、３×３×３２画素成分の３階テンソルの画像Ｔ3を生成する（ステップＳ２０４）。
【００４４】
畳み込み層１３は、３×３×３２画素成分の３階テンソルの画像Ｔ3を畳み込み層１４に出力する。画像Ｔ3は、水平Ｗ＝３画素、垂直Ｈ＝３画素及び３２成分からなる３階テンソルの画像である。
【００４５】
畳み込み層１４は、畳み込み層１３から、３×３×３２画素成分の３階テンソルの画像Ｔ3を入力する。そして、畳み込み層１４は、画像Ｔ3に対し、３×３×３画素成分の畳み込みフィルタを１×１のストライドにおいて６４種類適用し、予め設定されたパラメータｐを用いて畳み込み処理を行う。畳み込み層１４は、１×１×６４画素成分の３階テンソルの画像（６４成分のベクトルＶ1）を生成する（ステップＳ２０５）。畳み込み層１４は、６４成分のベクトルＶ1を全結合層１５に出力する。
【００４６】
全結合層１５は、畳み込み層１４から６４成分のベクトルＶ1を入力し、予め設定されたパラメータｐを用いて、６４成分のベクトルＶ1を構成する全ての成分を結合するための全結合処理を行い、１６成分のベクトルＶ2を生成する（ステップＳ２０６）。そして、全結合層１５は、１６成分のベクトルＶ2を全結合層１６に出力する。つまり、全結合層１５は、入力信号である６４成分のベクトルＶ1の各要素と、出力信号である１６成分のベクトルＶ2の各要素とを全て結合するネットワークである。
【００４７】
尚、畳み込みニューラルネットワークにおける全結合層１５，１６による全結合処理は既知であるから、ここでは詳細な説明を省略する。
【００４８】
全結合層１６は、全結合層１５から１６成分のベクトルＶ2を入力し、予め設定されたパラメータｐを用いて、１６成分のベクトルＶ2を構成する全ての成分を結合するための全結合処理を行う。全結合層１６は、８成分のベクトルＶ3（確度値ｗ（θn），ｎ＝０，１，・・・，７）を生成する（ステップＳ２０７）。
【００４９】
全結合層１６は、８成分のベクトルＶ3である、８個の角度θnに対するそれぞれの確度値ｗ（θn）からなる確度値列（ｗ（θn））n∈{0,1,…,7}を加重合成部２０に出力する。この場合、θ0＝０・２π／８＝０，θ1＝１・２π／８＝π／４，θ2＝２・２π／８＝π／２，・・・，θ7＝７・２π／８＝７π／４である。つまり、全結合層１６は、入力信号である１６成分のベクトルＶ2の各要素と、出力信号である８成分のベクトルＶ3の各要素とを全て結合するネットワークである。
【００５０】
このように、識別部１０は、離散的な角度θnに対する確度値ｗ（θn）を求めればよいから、連続的な角度に対する確度値を求める場合に比べ、簡易な処理で済み、かつ回路規模を削減することができる。
【００５１】
尚、畳み込み層１１，１２，１３，１４及び全結合層１５，１６を構成する素子（ニューロン）には、バイアス値を設定するようにしてもよい。また、畳み込み層１１，１２，１３，１４及び全結合層１５，１６を構成する素子に適用する活性化関数は任意であるが、例えば半波整流関数（ReLU：Rectified Linear Unit）、シグモイド（Sigmoid）関数、双曲線正接関数等を用いることができる。
【００５２】
畳み込み層１１，１２，１３，１４及び全結合層１５，１６にて用いるパラメータｐは、図１に示した姿勢推定装置１における識別部１０の識別方法を特定するためのパラメータである。識別部１０がニューラルネットワークによる場合は、重み値、バイアス値、フィルタ係数等の結合重み係数である。パラメータｐは、後述する学習装置２により予め求めた値が用いられ、姿勢推定装置１に備えたＲＯＭ（Read Only Memory）等に格納しておくようにしてもよいし、外部から更新できるように、ＲＡＭ（Random Access Memory）またはフラッシュＲＯＭに格納しておくようにしてもよい。
【００５３】
（加重合成部２０）
図１及び図２に戻って、加重合成部２０は、識別部１０から、Ｎ個（図３の例ではＮ＝８）の角度θnに対するそれぞれの確度値ｗ（θn）からなる確度値列（ｗ（θn））n∈{0,1,…,N-1}を入力する。
【００５４】
加重合成部２０は、Ｎ個の角度θnに対するそれぞれの確度値ｗ（θn）に応じた重み付けにより、Ｎ個の角度θnの加重合成処理を行い、姿勢情報θを推定する（ステップＳ２０８）。そして、加重合成部２０は、姿勢情報θを出力する（ステップＳ２０９）。
【００５５】
例えば、加重合成部２０は、以下の式のとおり、確度値ｗ（θn）を重みとして、絶対値１及び角度（偏角）θnの複素数値を加重合成し、加重合成の結果である複素数ζを算出する。
【数２】
2020107244.tif 000004
ｊは虚数単位である。
【００５６】
尚、複素数ζの代わりに、複素数ζの実部及び虚部を成分とする２次元ベクトル値を用いて、前記式（２）の演算を行うようにしてもよい。
【００５７】
また、加重合成部２０は、姿勢情報θ及び信頼度ｒを一括して、ベクトル値または複素数値としての姿勢情報θを表現する場合、前記式（２）において、以下の式のとおり、複素数ζを姿勢情報θとしてそのまま出力する。
【数３】
2020107244.tif 000005
【００５８】
また、加重合成部２０は、姿勢情報θ及び信頼度ｒを個別に出力する場合、以下の式を用いて演算を行う。
【数４】
2020107244.tif 000006
前記式（４）において、ノルム
2020107244.tif 000007
は、例えばユークリッドノルムとする。
【００５９】
このように、加重合成部２０は、離散的な角度θnに対する確度値ｗ（θn）を重みとして角度θnを加重合成することで、連続的な角度情報の姿勢情報θを推定するようにした。これにより、加重合成の処理は積和演算により行われるから、演算負荷を低減することができ、かつ小規模な回路にて連続的な値をとる姿勢情報θを推定することができる。
【００６０】
以上のように、本発明の実施形態の姿勢推定装置１によれば、識別部１０は、画像Ｉを入力し、例えば畳み込みニューラルネットワークにて、予め設定されたパラメータｐを用いて、Ｎ個の代表的な角度θnを識別し、それぞれの確度値ｗ（θn）を求める。
【００６１】
加重合成部２０は、Ｎ個の角度θnに対するそれぞれの確度値ｗ（θn）に応じた重み付けにより、Ｎ個の角度θnを加重合成し、姿勢情報θを生成する。
【００６２】
これにより、予め設定されたパラメータｐを用いて姿勢情報θを推定することができ、パラメータｐは後述する学習装置２により得ることができるから、前述の特許文献１に記載された顔の器官毎のテンプレートを用意する必要がない。つまり、特許文献１の技術に比べ、手間がかかることはない。
【００６３】
また、姿勢情報θを推定するために、特定の特徴量のみを用いることがないから、特定の特徴量のみを用いる特許文献２の技術に比べ、姿勢情報θの推定精度を向上させることができる。したがって、被写体の姿勢を簡易かつ高精度に推定することができる。
【００６４】
〔学習装置〕
次に、本発明の実施形態による学習装置について詳細に説明する。図４は、本発明の実施形態による学習装置の構成の一例を示すブロック図であり、図５は、学習装置の処理の一例を示すフローチャートである。この学習装置２は、確度生成部３０及び学習用識別部４０を備えている。
【００６５】
学習装置２は、学習データとして、Ｋ個（組）の画像Ｊk及び姿勢情報φkを入力する（ステップＳ５０１）。そして、学習装置２は、これらの学習データを用いて、画像Ｊkに含まれる被写体の角度を識別するためのモデルを学習する。学習装置２は、当該モデルのパラメータｐ、すなわち図１に示した姿勢推定装置１の識別部１０の動作を規定する、被写体の姿勢を推定するために用いるパラメータｐの最適化を行い、最適化されたパラメータｐを出力する。パラメータｐは、図１に示した姿勢推定装置１の識別部１０に設定される。Ｋは自然数であり、ｋは０以上Ｋ未満の整数である。
【００６６】
（確度生成部３０）
確度生成部３０は、学習データの姿勢情報φkを入力し、姿勢情報φkに基づいて、Ｎ個の角度θnに対するそれぞれの学習用確度値ｔk（θn）を生成する（ステップＳ５０２）。そして、確度生成部３０は、１個の姿勢情報φkについて、Ｎ個の角度θnに対するそれぞれの学習用確度値ｔk（θn）からなる学習用確度値列（ｔk（θn））n∈{0,1,…,N-1}を学習用識別部４０に出力する。
【００６７】
姿勢情報φkは、図１に示した姿勢情報θと同様に、角度値（例えば、弧度法による）とする。
【００６８】
具体的には、確度生成部３０は、姿勢情報φk（の示す角度）のベクトルと各角度θnのベクトルとの間のなす角α（φk，θn）を算出し、なす角α（φk，θn）に応じた学習用確度値ｔk（θn）を生成する。α（φk，θn）は、姿勢情報φk（の示す角度）のベクトルと各角度θnのベクトルとの間のなす角を演算する関数である。
【００６９】
例えば、確度生成部３０は、以下の式のとおり、なす角α（φk，θn）が最小となる場合、当該角度θnについて学習用確度値ｔk（θn）＝Ａ（Ａは所定の実数、例えばＡ＝１）を設定する。また、確度生成部３０は、なす角α（φk，θn）が最小とならない場合、当該角度θnについて学習用確度値ｔk（θn）＝Ｂ（ＢはＡよりも小さい所定の実数、例えばＢ＝０）を設定する。
【数５】
2020107244.tif 000008
【００７０】
また、確度生成部３０は、以下の式のとおり、なす角α（φk，θn）に対して所定の関数ｆを適用し、学習用確度値ｔk（θn）を算出するようにしてもよい。
【数６】
2020107244.tif 000009
【００７１】
関数ｆは、広義単調減少の関数であり、かつ非定数の関数である。例えば、関数ｆとして、以下のガウス関数が用いられる。
【数７】
2020107244.tif 000010
λは正の実定数とする。
【００７２】
このように、確度生成部３０は、連続的な角度情報の姿勢情報φkから、離散的な角度θnに対する学習用確度値ｔk（θn）を生成するようにした。これにより、離散的な角度θnに対する学習用確度値ｔk（θn）は、図１に示した姿勢推定装置１の識別部１０により生成される確度値ｗ（θn）に対応させることができる。そして、識別部１０に対応する学習用識別部４０において、これを学習データとして用いることができる。
【００７３】
（学習用識別部４０）
図６は、学習用識別部４０の構成の一例を示すブロック図である。学習用識別部４０は、畳み込み層１１，１２，１３，１４及び全結合層１５，１６等を備えている。
【００７４】
学習用識別部４０は、学習データの画像Ｊkを入力すると共に、確度生成部３０から、Ｎ個の角度θnに対するそれぞれの学習用確度値ｔk（θn）からなる学習用確度値列（ｔk（θn））n∈{0,1,…,N-1}を入力する。そして、学習用識別部４０は、図１に示した識別部１０に対応する学習処理を行い、Ｋ個の画像Ｊk及び学習用確度値列（ｔk（θn））n∈{0,1,…,N-1}を用いて、識別部１０が備えるべき最適なパラメータpを求め、当該パラメータpを出力する。
【００７５】
識別部１０がニューラルネットワークにより構成される場合には、学習用識別部４０も識別部１０と同様に、ニューラルネットワークにより構成され、その結合重み係数であるパラメータｐを更新可能な状態としておく。
【００７６】
学習用識別部４０は、学習データの画像Ｊkを入力する。そして、学習用識別部４０は、画像Ｊkに対し、畳み込み層１１，１２，１３，１４による畳み込み処理、及び全結合層１５，１６による全結合処理を行い、Ｎ個の角度θnに対するそれぞれの確度値ｗk（θn）を求める（ステップＳ５０３）。これにより、Ｎ個の角度θnに対するそれぞれの確度値ｗk（θn）からなる確度値列（ｗk（θn））n∈{0,1,…,N-1}が得られる。
【００７７】
学習用識別部４０に備えた図示しない誤差算出部は、以下の式のとおり、確度値列（ｗk（θn））n∈{0,1,…,N-1}と学習用確度値列（ｔk（θn））n∈{0,1,…,N-1}との間の誤差を算出する。そして、誤差算出部は、当該誤差を、Ｎ個の角度θnに対するそれぞれの誤差値ｄk（θn）からなる誤差値列（ｄk（θn））n∈{0,1,…,N-1}とする（ステップＳ５０４）。
【数８】
2020107244.tif 000011
【００７８】
学習用識別部４０に備えた図示しない逆伝播部は、誤差値列（ｄk（θn））n∈{0,1,…,N-1}を、畳み込み層１１，１２，１３，１４及び全結合層１５，１６に対してこの逆の順番に伝播（逆伝播）させる（ステップＳ５０５）。そして、逆伝播部は、この誤差値逆伝播法により、畳み込み層１１，１２，１３，１４及び全結合層１５，１６においてそれぞれ用いるパラメータｐを更新する（ステップＳ５０６）。
【００７９】
学習用識別部４０は、Ｋ個の画像Ｊk及び学習用確度値列（ｔk（θn））n∈{0,1,…,N-1}について、ステップＳ５０２〜Ｓ５０６の処理が完了したか否かを判定する（ステップＳ５０７）。学習用識別部４０は、ステップＳ５０７において、処理が完了していないと判定した場合（ステップＳ５０７：Ｎ）、次のパラメータｋを設定し（ステップＳ５０８）、ステップＳ５０２へ移行する。
【００８０】
一方、学習用識別部４０は、ステップＳ５０７において、処理が完了したと判定した場合（ステップＳ５０７：Ｙ）、ステップＳ５０６にて更新したパラメータｐを最適なパラメータであるとして出力する（ステップＳ５０９）。出力されたパラメータｐは、図１に示した識別部１０にて用いられる。
【００８１】
尚、学習装置２は、図５のステップＳ５０２〜Ｓ５０８に示したように、誤差値逆伝播法による処理を、Ｋ個の画像Ｊk及び姿勢情報φk（学習用確度値列（ｔk（θn））n∈{0,1,…,N-1}）に対して適宜実行するようにしてもよい。この場合、学習装置２は、Ｋ個の画像Ｊk及び姿勢情報φk（学習用確度値列（ｔk（θn））n∈{0,1,…,N-1}）の全てについて、順次実行するようにしてもよいし、Ｋ個の中から所定数をランダムに選択して実行するようにしてもよい。また、学習装置２は、Ｋ個の中から１個以上を選択し、１個以上の画像Ｊk及び姿勢情報φk（学習用確度値列（ｔk（θn））n∈{0,1,…,N-1}）をまとめた、いわゆるミニバッチを構成し、実行するようにしてもよい。
【００８２】
このように、学習装置２は、図１に示した識別部１０にて用いるパラメータｐを、確度生成部３０及び当該識別部１０に対応する学習用識別部４０において学習し、最適化するようにした。これにより、最適化されたパラメータｐを用いて、識別部１０を動作させることができる。
【００８３】
以上のように、本発明の実施形態の学習装置２によれば、確度生成部３０は、姿勢情報φk（の示す角度）のベクトルと各角度θnのベクトルとの間のなす角α（φk，θn）を算出し、なす角α（φk，θn）に応じた学習用確度値ｔk（θn）を生成する。
【００８４】
学習用識別部４０は、図１に示した識別部１０と同様にニューラルネットワークにより構成される場合、学習データの画像Ｊkに対し、畳み込み層１１，１２，１３，１４及び全結合層１５，１６による処理を行う。そして、学習用識別部４０は、Ｎ個の角度θnに対するそれぞれの確度値ｗk（θn）を求める。
【００８５】
学習用識別部４０は、確度値ｗk（θn）と学習用確度値ｔk（θn）との間の誤差値ｄk（θn）を算出し、誤差値ｄk（θn）を、畳み込み層１１，１２，１３，１４及び全結合層１５，１６に逆伝播させ、パラメータｐを更新する。
【００８６】
確度生成部３０は、Ｋ個の姿勢情報φkについて処理を行い、Ｋ個の学習用確度値ｔk（θn）を生成する。そして、学習用識別部４０は、Ｋ個の画像Ｊk及び学習用確度値ｔk（θn）について処理を行い、最適なパラメータｐを生成する。
【００８７】
このようにして生成された最適なパラメータｐは、図１に示した姿勢推定装置１にて用いられ、姿勢推定装置１の識別部１０を動作させることができる。
【００８８】
これにより、姿勢推定装置１において、パラメータｐを用いて姿勢情報θを推定することができるから、前述の特許文献１に記載された顔の器官毎のテンプレートを用意する必要がなく、手間がかかることはない。
【００８９】
また、姿勢情報θを推定するために、特定の特徴量のみを用いることがないから、特定の特徴量のみを用いる特許文献２の技術に比べ、姿勢情報θの推定精度を向上させることができる。
【００９０】
したがって、学習装置２により生成されたパラメータｐを用いることで、姿勢推定装置１において被写体の姿勢を簡易かつ高精度に推定することができる。
【００９１】
以上、実施形態を挙げて本発明を説明したが、本発明は前記実施形態に限定されるものではなく、その技術思想を逸脱しない範囲で種々変形可能である。例えば、図３において、識別部１０は、水平Ｗ＝２０画素、垂直Ｈ＝２０画素及び色３成分からなる画像Ｉを入力するようにしたが、本発明は、画素数及び色成分数を限定するものではない。
【００９２】
また、図３において、識別部１０は、ニューラルネットワークにより構成されるようにした。本発明は、識別部１０をニューラルネットワークに限定するものではなく、ニューラルネットワーク以外の構成部を用いるようにしてもよい。つまり、識別部１０は、画像Ｉを入力し、パラメータｐを用いて、画像Ｉに含まれる被写体についてＮ個の代表的な角度θnの識別処理を行い、それぞれの確度値ｗ（θn）を求めて出力する構成部であればよい。識別部１０に対応する図６に示した学習用識別部４０についても同様である。
【００９３】
尚、本発明の実施形態による姿勢推定装置１及び学習装置２のハードウェア構成としては、通常のコンピュータを使用することができる。姿勢推定装置１及び学習装置２は、ＣＰＵ、ＲＡＭ等の揮発性の記憶媒体、ＲＯＭ等の不揮発性の記憶媒体、及びインターフェース等を備えたコンピュータによって構成される。
【００９４】
姿勢推定装置１に備えた識別部１０及び加重合成部２０の各機能は、これらの機能を記述したプログラムをＣＰＵに実行させることによりそれぞれ実現される。また、学習装置２に備えた確度生成部３０及び学習用識別部４０の各機能も、これらの機能を記述したプログラムをＣＰＵに実行させることによりそれぞれ実現される。
【００９５】
これらのプログラムは、前記記憶媒体に格納されており、ＣＰＵに読み出されて実行される。また、これらのプログラムは、磁気ディスク（フロッピー（登録商標）ディスク、ハードディスク等）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤ等）、半導体メモリ等の記憶媒体に格納して頒布することもでき、ネットワークを介して送受信することもできる。
【符号の説明】
【００９６】
１  姿勢推定装置
２  学習装置
１０   識別部
１１，１２，１３，１４  畳み込み層（畳み込み部）
１５，１６  全結合層（全結合部）
２０  加重合成部
３０  確度生成部
４０  学習用識別部
【図１】
2020107244.tif 000012
【図２】
2020107244.tif 000013
【図３】
2020107244.tif 000014
【図４】
2020107244.tif 000015
【図５】
2020107244.tif 000016
【図６】
2020107244.tif 000017