(57)【要約】【課題】三次元の関節情報を含む複数の学習データをより容易に生成することが可能である学習データ生成装置、推定装置、推定方法及びコンピュータプログラムを提供する。【解決手段】学習データ生成装置は、関節を有する被写体の三次元モデルを表すコンピュータグラフィックスの画像である三次元モデル画像を三次元モデルの周囲に定められた視点ごとに取得し、三次元モデル画像にレンダリング処理を施すことによって三次元モデルのシルエット画像を視点ごとに生成するシルエット画像レンダリング部と、カメラパラメータを視点ごとに取得するカメラパラメータ部と、各視点のカメラパラメータに基づいて、各視点のシルエット画像から、三次元モデルの三次元の形状情報を復元する形状情報復元部と、三次元モデルの三次元の形状情報のボクセル空間と同じボクセル空間に、三次元モデルの三次元の関節情報を生成する関節情報ボクセル化部とを備える。【選択図】図２
2019016164.tif 000002
【特許請求の範囲】
【請求項１】
関節を有する被写体の三次元モデルを表すコンピュータグラフィックスの画像である三次元モデル画像を前記三次元モデルの周囲に定められた視点ごとに取得し、前記三次元モデル画像にレンダリング処理を施すことによって前記三次元モデルのシルエット画像を前記視点ごとに生成するシルエット画像レンダリング部と、
カメラパラメータを前記視点ごとに取得するカメラパラメータ部と、
各視点の前記カメラパラメータに基づいて、各視点の前記シルエット画像から、前記三次元モデルの三次元の形状情報を復元する形状情報復元部と、
前記三次元モデルの三次元の形状情報のボクセル空間と同じボクセル空間に、前記三次元モデルの三次元の関節情報を生成する関節情報ボクセル化部と
を備える学習データ生成装置。
【請求項２】
前記形状情報に応じて前記関節情報を出力するディープニューラルネットワークのパラメータを学習する学習部を更に備え、
前記ディープニューラルネットワークの出力層は、前記関節情報によって表される前記関節の個数に応じた個数のチャネルを有する、請求項１に記載の学習データ生成装置。
【請求項３】
請求項１又は請求項２に記載の学習データ生成装置によって生成された三次元モデルの三次元の形状情報に応じて前記三次元モデルの三次元の関節情報を出力するよう学習されたディープニューラルネットワークを用いて、前記三次元モデルに関する被写体の三次元の形状情報を前記ディープニューラルネットワークの入力とすることによって、前記三次元モデルに関する被写体の三次元の関節情報を推定する解析部
を備える推定装置。
【請求項４】
前記形状情報に応じて前記関節情報を出力するディープニューラルネットワークのパラメータを学習する学習部を更に備え、
前記学習部は、複数の前記形状情報をまとめることによって前記形状情報のセットを生成し、前記形状情報のセットをディープニューラルネットワークのパラメータの学習に用いるか否かを予め定められた条件に基づいて判定する、請求項１に記載の学習データ生成装置。
【請求項５】
前記形状情報に応じて前記関節情報を出力するディープニューラルネットワークの構成及びパラメータを記憶する記憶部を更に備え、
前記ディープニューラルネットワークのパラメータは、複数の前記形状情報をまとめることによって生成された前記形状情報のセットのうち、予め定められた条件を満たした前記形状情報のセットを用いた学習結果に基づくパラメータである、請求項３に記載の推定装置。
【請求項６】
推定装置が実行する推定方法であって、
請求項１又は請求項２に記載の学習データ生成装置によって生成された三次元モデルの三次元の形状情報に応じて前記三次元モデルの三次元の関節情報を出力するよう学習されたディープニューラルネットワークを用いて、前記三次元モデルに関する被写体の三次元の関節情報を推定するステップを有する推定方法。
【請求項７】
コンピュータを、請求項１、請求項２又は請求項４に記載の学習データ生成装置として機能させるためのコンピュータプログラム。
【請求項８】
コンピュータを、請求項３又は請求項５に記載の推定装置として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、学習データ生成装置、推定装置、推定方法及びコンピュータプログラムに関する。
【背景技術】
【０００２】
人物の関節の動きを計測する技術を応用することによって、映画などに登場する人を模したコンピュータグラフィックスのキャラクターに生き生きとした動作を付与することができる。そのため、人物の関節の動きを計測する技術は、コンテンツ全体の品質向上を実現するために必要不可欠な技術である。また、上記のようなエンタテインメントの分野以外にも、人物の関節の動きを計測する技術は、様々な分野で用いられている。例えば、医療の分野においては、患者の容体を把握するための情報として重要である。
【０００３】
以下、被写体の三次元モデルの各関節に付与された番号を「関節部位情報」という。以下、被写体の三次元モデルの各関節の位置を示す情報を「関節位置情報」という。以下、関節部位情報及び関節位置情報から成る情報を「関節情報」という。
【０００４】
上述したように、関節情報は様々な分野で重要な情報である。しかし、関節情報の取得には多大な手間が伴う。関節情報の取得技術としてモーションキャプチャを用いたデータ取得技術がある。モーションキャプチャでは、計測する対象の人物に専用のスーツを着てもらう必要があり、事前に空間のキャリブレーションを行う必要もあり、と煩雑な作業が必要となる。そのほかの技術に関しても、特殊な機器を必要とするものであったり、限定的な環境でしか利用できなかったりと、様々な問題を抱えている。
【０００５】
このような問題に対し、ディープラーニングを用いて、画像に撮像された被写体の関節位置をロバストに推定する技術が近年発表された（非特許文献１参照）。この技術では、画像内に複数の人物が存在していたとしても、ロバストな推定が可能である。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】L. Pishchulin, E. Insafutdinov, S. Tang, B. Andres, M. Andriluka, P. Gehler, B. Schiele, “DeepCut: Joint Subset Partition and Labeling for Multi Person Pose Estimation,” IEEE Conference on Computer Vision and Pattern Recognition (CVPR 2016).
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来の方法では、推定される関節情報は、画像上の二次元の関節位置のみである。そのため、アニメーション生成などに用いる関節情報としては不十分であった。一方で、三次元の関節情報をディープラーニング等の機械学習を用いて推定しようとすると、三次元の関節情報を含む学習データを多量に予め取得する必要があり、困難を伴っていた。
【０００８】
上記事情に鑑み、本発明は、三次元の関節情報を含む複数の学習データをより容易に生成することが可能である学習データ生成装置、推定装置、推定方法及びコンピュータプログラムを提供することを目的としている。
【課題を解決するための手段】
【０００９】
本発明の一態様は、関節を有する被写体の三次元モデルを表すコンピュータグラフィックスの画像である三次元モデル画像を前記三次元モデルの周囲に定められた視点ごとに取得し、前記三次元モデル画像にレンダリング処理を施すことによって前記三次元モデルのシルエット画像を前記視点ごとに生成するシルエット画像レンダリング部と、カメラパラメータを前記視点ごとに取得するカメラパラメータ部と、各視点の前記カメラパラメータに基づいて、各視点の前記シルエット画像から、前記三次元モデルの三次元の形状情報を復元する形状情報復元部と、前記三次元モデルの三次元の形状情報のボクセル空間と同じボクセル空間に、前記三次元モデルの三次元の関節情報を生成する関節情報ボクセル化部とを備える学習データ生成装置である。
【００１０】
本発明の一態様は、上記の学習データ生成装置であって、前記形状情報に応じて前記関節情報を出力するディープニューラルネットワークのパラメータを学習する学習部を更に備え、前記ディープニューラルネットワークの出力層は、前記関節情報によって表される前記関節の個数に応じた個数のチャネルを有する。
【００１１】
本発明の一態様は、上記の学習データ生成装置によって生成された三次元モデルの三次元の形状情報に応じて前記三次元モデルの三次元の関節情報を出力するよう学習されたディープニューラルネットワークを用いて、前記三次元モデルに関する被写体の三次元の形状情報を前記ディープニューラルネットワークの入力とすることによって、前記三次元モデルに関する被写体の三次元の関節情報を推定する解析部を備える推定装置である。
【００１２】
本発明の一態様は、上記の学習データ生成装置であって、前記形状情報に応じて前記関節情報を出力するディープニューラルネットワークのパラメータを学習する学習部を更に備え、前記学習部は、複数の前記形状情報をまとめることによって前記形状情報のセットを生成し、前記形状情報のセットをディープニューラルネットワークのパラメータの学習に用いるか否かを予め定められた条件に基づいて判定する。
【００１３】
本発明の一態様は、上記の推定装置であって、前記形状情報に応じて前記関節情報を出力するディープニューラルネットワークの構成及びパラメータを記憶する記憶部を更に備え、前記ディープニューラルネットワークのパラメータは、複数の前記形状情報をまとめることによって生成された前記形状情報のセットのうち、予め定められた条件を満たした前記形状情報のセットを用いた学習結果に基づくパラメータである。
【００１４】
本発明の一態様は、推定装置が実行する推定方法であって、上記の学習データ生成装置によって生成された三次元モデルの三次元の形状情報に応じて前記三次元モデルの三次元の関節情報を出力するよう学習されたディープニューラルネットワークを用いて、前記三次元モデルに関する被写体の三次元の関節情報を推定するステップを有する推定方法である。
【００１５】
本発明の一態様は、コンピュータを、上記の学習データ生成装置として機能させるためのコンピュータプログラムである。
【００１６】
本発明の一態様は、コンピュータを、上記の推定装置として機能させるためのコンピュータプログラムである。
【発明の効果】
【００１７】
本発明により、三次元の関節情報を含む複数の学習データをより容易に生成することが可能である。
【図面の簡単な説明】
【００１８】
【図１】第１実施形態における、推定システムの構成の例を示す図である。
【図２】第１実施形態における、学習データ生成部の構成の例を示す図である。
【図３】第１実施形態における、学習部の構成の例を示す図である。
【図４】第１実施形態における、ディープニューラルネットワークの構成の例を示す図である。
【図５】第１実施形態における、入力データ生成部の構成の例を示す図である。
【図６】第１実施形態における、解析部の構成の例を示す図である。
【図７】第１実施形態における、推定装置の動作の例を示すフローチャートである。
【図８】第１実施形態における、学習データ生成部の動作の例を示すフローチャートである。
【図９】第１実施形態における、学習部の動作の例を示すフローチャートである。
【図１０】第１実施形態における、入力データ生成部の動作の例を示すフローチャートである。
【図１１】第１実施形態における、解析部の動作の例を示すフローチャートである。
【図１２】第２実施形態における、推定システムの構成の例を示す図である。
【発明を実施するための形態】
【００１９】
本発明の実施形態について、図面を参照して詳細に説明する。
（第１実施形態）
以下では、被写体は、関節を有する生物又は物体であり、例えば、人物、動物、昆虫、ロボット等である。以下では、被写体は、一例として人物である。
【００２０】
図１は、推定システム１ａの構成の例を示す図である。推定システム１ａは、推定装置１０を備えるシステムである。推定装置１０は、被写体の三次元の関節位置を推定する情報処理装置である。推定装置１０は、例えば、サーバ装置、パーソナルコンピュータ装置、タブレット端末、スマートフォン端末等である。推定装置１０は、例えば、分散配置された複数の情報処理装置によって推定処理を実行してもよい。推定装置１０は、学習装置１１と、入力データ生成部１４と、解析部１５とを備える。
【００２１】
学習装置１１は、学習データ生成部１２と、学習部１３とを備える。学習データ生成部１２は、学習装置１１とは異なる学習データ生成装置に備えられてもよい。この場合、学習データ生成装置によって生成された学習データは、ネットワークや記憶媒体などを介して学習装置１１に与えられてもよい。学習データ生成装置としての学習データ生成部１２は、学習部１３を備えてもよい。推定装置１０は、学習装置１１と別体でもよい。すなわち、推定システム１ａは、推定装置１０と学習装置１１とを別体で備えてもよい。
【００２２】
推定装置１０は、記憶部を更に備えてもよい。記憶部は、例えば、磁気ハードディスク装置や半導体記憶装置等の不揮発性の記録媒体（非一時的な記録媒体）を有する記憶装置である。記憶部は、機械学習に関する各種データと、画像と、コンピュータプログラムとを記憶してもよい。機械学習に関する各種データとは、例えば、アルゴリズムを表すデータ、ディープニューラルネットワーク（ＤＮＮ: Deep Neural Network）の構成及びパラメータを表すデータである。
【００２３】
各機能部の一部又は全部は、例えば、ＣＰＵ（Central Processing Unit）等のプロセッサが、所定の記憶部に記憶されたコンピュータプログラムを実行することにより実現される。各機能部の一部又は全部は、ＬＳＩ（Large Scale Integration）やＡＳＩＣ（Application Specific Integrated Circuit）等のハードウェアを用いて実現されてもよい。
【００２４】
学習データ生成部１２（学習データ生成装置）は、機械学習に用いられる学習データを生成する。学習データ生成部１２によって生成された学習データは、ディープニューラルネットワーク以外の機械学習にも用いられることができる。被写体の三次元モデルを表す画像である三次元モデル画像は、コンピュータグラフィックスで事前に生成されている。学習データ生成部１２は、関節情報が付与された三次元モデル画像を取得する。学習データ生成部１２は、三次元モデルの周囲の複数のカメラ（多視点）から撮像された三次元モデルのシルエット画像（以下「多視点モデルシルエット画像」という。）を、コンピュータグラフィックスである三次元モデル画像から生成する。
【００２５】
以下では、被写体の関節（関節部位情報）の個数は、一例として１６個である。例えば、指先の三次元の関節情報が推定される場合、被写体の関節の個数は増加される。また、ディープニューラルネットワークの出力層のチャネル数は、被写体の関節の個数に応じて増加される。
【００２６】
学習データ生成部１２は、カメラパラメータを多視点モデルシルエット画像ごとに取得する。学習データ生成部１２は、複数の視点について三次元モデル画像にレンダリング処理を施すことによって、多視点モデルシルエット画像を生成する。学習データ生成部１２は、各視点のカメラパラメータに基づいて、多視点モデルシルエット画像から、三次元モデルの三次元の形状情報（ボクセル形状情報）を復元する。すなわち、学習データ生成部１２は、各視点のカメラパラメータと多視点モデルシルエット画像とに基づいて、三次元モデルの三次元の形状情報を復元する。三次元モデルの三次元の形状情報は、２値情報を含む。三次元モデルの三次元の形状情報の数値は、三次元モデルの形状部分では１であり、三次元モデルの形状部分以外では０である。学習データ生成部１２は、三次元モデルの三次元の形状情報を、機械学習に用いられる学習データ（学習用教師データ）として学習部１３に出力する。
【００２７】
学習データ生成部１２は、関節情報が付与された三次元モデル画像から、関節情報を抽出する。学習データ生成部１２は、三次元モデルの三次元の形状情報と同様のボクセル空間で、関節情報をボクセル化する。すなわち、学習データ生成部１２は、三次元モデルの三次元の形状情報の復元時と同じボクセル空間で、三次元モデルの三次元の関節情報（ボクセル関節情報）を生成する。
【００２８】
複数の学習データを学習データ生成部１２が生成する場合、学習データ生成部１２は、コンピュータグラフィックスで生成された被写体の三次元の形状を変化させて、三次元モデルの三次元の形状情報を変更する。複数の学習データを学習データ生成部１２が生成する場合、学習データ生成部１２は、形状情報が異なる複数の三次元モデルに、同様のボクセル化処理を施す。
【００２９】
学習部１３は、学習データを用いて機械学習を実行する。学習部１３は、推定処理を推定装置１０が実行するごとに機械学習を実行する必要はない。例えば、学習部１３は、推定処理を推定装置１０が実行する前に機械学習を完了してもよい。
【００３０】
学習部１３は、ディープニューラルネットワークに限らず、例えば、遺伝的プログラミングやクラスタリング等の機械学習を実行してもよい。第１実施形態では、学習部１３は、機械学習の一例として、ディープニューラルネットワークの学習処理を実行する。ディープニューラルネットワークの入力は、三次元モデルの三次元の形状情報である。ディープニューラルネットワークの出力は、三次元の関節情報である。ディープニューラルネットワークの出力チャネルは、三次元の関節情報を構成する関節部位情報に対応付けられている。
【００３１】
複数の学習データを学習データ生成部１２が生成した場合、学習部１３は、学習データ生成部１２によって生成された複数の学習データに基づいて、ディープニューラルネットワークのパラメータを学習する。学習部１３は、学習済みディープニューラルネットワークの構成及びパラメータを表す情報を、解析部１５に出力する。
【００３２】
以下、被写体の周囲の複数のカメラ（多視点）から被写体が撮像された実写画像を「多視点実写画像」という。入力データ生成部１４は、関節情報が推定される対象としての被写体が撮像されている多視点実写画像を取得する。入力データ生成部１４は、多視点実写画像のカメラパラメータを取得する。
【００３３】
入力データ生成部１４は、学習データ生成部１２が多視点モデル画像に施したボクセル化処理と同様のボクセル化処理を多視点実写画像に施すことによって、実写の被写体の三次元の形状情報を復元する。被写体の三次元の形状情報は、２値情報を含む。被写体の三次元の形状情報の数値は、三次元モデルの形状部分では１であり、三次元モデルの形状部分以外では０である。
【００３４】
解析部１５は、学習済みディープニューラルネットワークのパラメータを、学習部１３から取得する。解析部１５は、入力データ生成部１４によって復元された被写体の三次元の形状情報を、学習済みディープニューラルネットワークの入力とする。解析部１５は、被写体の三次元の関節位置情報を、学習済みディープニューラルネットワークのチャネルごとの出力とする。これによって、解析部１５は、被写体の三次元の関節情報を推定することができる。
【００３５】
次に、各機能部の詳細を説明する。
図２は、学習データ生成部１２の構成の例を示す図である。学習データ生成部１２は、シルエット画像レンダリング部１２１と、カメラパラメータ出力部１２２と、形状情報復元部１２３と、関節情報出力部１２４と、関節情報ボクセル化部１２５とを備える。
【００３６】
シルエット画像レンダリング部１２１は、関節情報が付与された三次元モデル画像を、視点（カメラの位置）ごとに取得する。シルエット画像レンダリング部１２１は、複数の視点について三次元モデル画像にレンダリング処理を施すことによって、被写体の三次元モデルのシルエット画像を視点ごとに生成する。すなわち、シルエット画像レンダリング部１２１は、複数の視点について三次元モデル画像にレンダリング処理を施すことによって、多視点モデルシルエット画像を生成する。複数の視点は、形状情報の推定の用途に合わせて定められる。複数の視点は、例えば被写体の全周囲の各視点である。被写体を撮像する複数のカメラの位置（視点）が定まっている場合、複数のカメラの向きは固定されてもよい。シルエット画像レンダリング部１２１は、多視点モデルシルエット画像を、形状情報復元部１２３に出力する。
【００３７】
カメラパラメータ出力部１２２（カメラパラメータ部）は、関節情報が付与された三次元モデル画像からカメラパラメータを抽出することによって、カメラパラメータを視点ごとに取得する。すなわち、カメラパラメータ出力部１２２は、カメラパラメータを多視点モデルシルエット画像ごとに取得する。カメラパラメータ出力部１２２は、多視点モデルシルエット画像のカメラパラメータを、視点ごとに形状情報復元部１２３に出力する。
【００３８】
形状情報復元部１２３は、各視点のカメラパラメータに基づいて、多視点モデルシルエット画像から、三次元モデルの三次元の形状情報を復元する。すなわち、形状情報復元部１２３は、各視点のカメラパラメータと多視点モデルシルエット画像とに基づいて、三次元モデルの三次元の形状情報を復元する。形状情報の復元処理の方法は、特定の方法に限定されないが、例えば視体積交差法である。復元される形状情報のボクセル空間の範囲と、復元される形状情報のボクセル空間におけるボクセルの体積と、復元される形状情報のボクセル空間におけるボクセルの解像度との各種パラメータは、任意に定められる。形状情報復元部１２３は、三次元モデルの三次元の形状情報を、学習部１３に出力する。
【００３９】
関節情報出力部１２４は、関節情報が付与された三次元モデル画像を取得する。関節情報出力部１２４は、関節情報が付与された三次元モデル画像から、三次元の関節情報を抽出する。関節情報を構成する関節位置情報を表現する座標系は、例えば、ｘｙｚ軸を用いたワールド座標系である。関節情報出力部１２４は、三次元の関節情報を関節情報ボクセル化部１２５に出力する。
【００４０】
関節情報ボクセル化部１２５は、三次元モデルの三次元の形状情報と同様のボクセル空間で、関節情報をボクセル化する。すなわち、関節情報ボクセル化部１２５は、三次元モデルの三次元の形状情報の復元時と同じボクセル空間で、三次元モデルの三次元の関節情報を生成する。各関節位置情報に付与された関節部位情報である番号は、任意の順序又は規則で各関節位置情報に付与されてもよい。例えば、関節部位情報である番号は、各関節位置情報に付与された１〜１６の連続値でもよい。関節情報ボクセル化部１２５は、三次元モデルの三次元の関節情報（三次元モデルのボクセル化された関節情報）を、学習部１３に出力する。
【００４１】
図３は、学習部１３の構成の例を示す図である。学習部１３は、ボクセルセット生成部１３１と、ボクセルセット判定部１３２と、ネットワーク構築部１３３と、パラメータ学習部１３４とを備える。
【００４２】
ボクセルセット生成部１３１は、複数の三次元モデルの三次元の形状情報を、形状情報復元部１２３から取得する。ボクセルセット生成部１３１は、複数の三次元モデルの三次元の形状情報をまとめることで、三次元モデルの三次元の形状情報のセット（以下「形状情報ボクセルセット」という。）を生成する。すなわち、ボクセルセット生成部１３１は、複数の三次元モデルの三次元の形状情報をボクセルセット化する。ボクセルセット生成部１３１は、三次元モデルの三次元の形状情報をボクセルセット化する場合、形状情報ボクセルセット同士の空間位置が重複してもよいし、形状情報ボクセルセット同士の空間位置が重複しないように、いずれかの形状情報ボクセルセットの空間位置を移動させてもよい。
【００４３】
ボクセルセット生成部１３１は、複数の三次元モデルの三次元の関節情報を、関節情報ボクセル化部１２５から取得する。ボクセルセット生成部１３１は、複数の三次元モデルの三次元の関節情報をまとめることで、三次元モデルの三次元の関節情報のセット（以下「関節情報ボクセルセット」という。）を生成する。すなわち、ボクセルセット生成部１３１は、複数の三次元モデルの三次元の関節情報をボクセルセット化する。ボクセルセット生成部１３１は、三次元モデルの三次元の関節情報をボクセルセット化する場合、関節情報ボクセルセット同士が重複してもよいし、関節情報ボクセルセット同士が重複しないように、いずれかの関節情報ボクセルセットの空間位置を移動させてもよい。
【００４４】
ボクセルセット生成部１３１は、空間位置が同一である形状情報ボクセルセット及び関節情報ボクセルセットを対応付ける。空間位置が同一である形状情報ボクセルセット及び関節情報ボクセルセットの各種パラメータには、同一のパラメータが定められる。例えば、以下では、ディープニューラルネットワークで一貫した学習処理を行うために、形状情報ボクセルセット及び関節情報ボクセルセットの立方体の空間の一辺の長さは、２の指数乗の一例である８に定められる。なお、ボクセルセットの空間の一辺の長さは、特定の長さに限定されない。
【００４５】
ボクセルセット判定部１３２は、ディープニューラルネットワークのパラメータの学習に使用するボクセルセットを選択する。ボクセルセット判定部１３２は、ディープニューラルネットワークのパラメータの学習に使用する形状情報ボクセルセットであるか否かを、予め定められた条件に基づいて形状情報ボクセルセットごとに判定する。例えば、ボクセルセット判定部１３２は、形状情報ボクセルセットについて、三次元モデルの形状部分の空間が形状情報ボクセルセットの全体の空間に対して所定割合以上であるか否かを判定する。すなわち、ボクセルセット判定部１３２は、数値が１であるボクセルの個数が形状情報ボクセルセットの全体におけるボクセルの個数に対して所定割合以上である形状情報ボクセルセットを、ディープニューラルネットワークのパラメータの学習に用いるボクセルセットであると判定する。所定割合は、例えば、３分の１である。
【００４６】
ボクセルセット判定部１３２は、ディープニューラルネットワークのパラメータの学習に使用する関節情報ボクセルセットであるか否かを、関節情報ボクセルセットごとに判定する。ボクセルセット判定部１３２は、パラメータの学習に用いる形状情報ボクセルセットに対応付けられた関節情報ボクセルセットを、ディープニューラルネットワークのパラメータの学習に用いる関節情報ボクセルセットであると判定する。
【００４７】
ディープラーニングの学習には、大量の学習データと膨大な処理時間とが必要である。このため従来では、グラフィックス・プロセッシング・ユニット（ＧＰＵ: Graphics Processing Unit）を用いた、ディープラーニングの高速な学習処理を試みる場合がある。本実施形態では、学習処理の対象は三次元のデータである。このため、ＧＰＵは、二次元のデータの学習処理よりもはるかに大量の学習データを扱うことになる。入力された大量の学習データをそのままの状態でディープニューラルネットワークの学習に用いた場合、ＧＰＵのメモリは不足する可能性が高い。そこで、ボクセルセット判定部１３２は、学習処理の対象をボクセルセット化して、学習に必要なボクセルセットのみを選択的にパラメータ学習部１３４に学習させる。これによって、学習部１３は、メモリの節約及び高速処理化が可能となる。
【００４８】
また、学習部１３が形状情報を三次元のデータとして扱うため、ボクセルセットにおいて形状情報が存在しない領域がボクセルセットの空間全体に占める割合は非常に大きい。すなわち、ボクセルセットにおいて形状情報として意味を持たない領域がボクセルセットの空間全体に占める割合は非常に大きい。このため、ボクセルセットにおいて形状情報として意味を持たない領域は、形状情報として意味を持つ領域と同様にディープニューラルネットワークのパラメータの学習に使用された場合には、パラメータの学習結果に影響を強く与えてしまうことになる。したがって、形状情報として意味を持たない領域を学習部１３がディープニューラルネットワークのパラメータの学習に使用することは、パラメータの学習結果の精度に多大な悪影響を及ぼすこととなる。
【００４９】
学習部１３は、三次元モデルの三次元の形状情報をボクセルセット化してから、三次元モデルの三次元の形状情報として意味を持たない領域をパラメータの学習対象から除外するので、パラメータの学習結果の精度を向上させることができる。なお、学習部１３は、ｌｏｓｓ計算をする際に、形状情報として意味を持たない領域の関節部位情報（ラベル）の重み付けを非常に小さな値に設定してもよい。
【００５０】
図４は、ディープニューラルネットワークの構成の例を示す図である。ネットワーク構築部１３３は、ディープニューラルネットワークを構築する。ディープニューラルネットワークの入力は、カーネルサイズ「８×８×８」でチャネル数が１ｃｈの情報を持つ形状情報ボクセルセットである。ディープニューラルネットワークの入力の形状情報ボクセルセットは、ボクセルセット判定部１３２によって学習に使用すると判定された形状情報ボクセルセットである。
【００５１】
ディープニューラルネットワークは、入力の形状情報ボクセルセットに対して、カーネルサイズ「３×３×３」のフィルタを用いた「ｃｏｎｖｏｌｕｔｉｏｎ」処理（畳み込み処理）と、カーネルサイズ「２×２×２」でストライド幅が２であるプーリング処理とを、１０ｃｈのチャネル数で実行する。活性化関数は、例えば、ＲｅＬＵ（Rectified Linear Unit function）である（図４の上段の「Ｃｏｎｖ１」）。
【００５２】
ディープニューラルネットワークは、チャネル数を２０ｃｈに変更して、同様に「ｃｏｎｖｏｌｕｔｉｏｎ」処理を実行する（「Ｃｏｎｖ２」）。また、ネットワーク構築部１３３は、チャネル数を１６ｃｈに変更して、同様に「ｃｏｎｖｏｌｕｔｉｏｎ」処理を実行する（「Ｃｏｎｖ３」）。更に、ネットワーク構築部１３３は、カーネルサイズ「３×３×３」のフィルタを用いた「ｄｅｃｏｎｖｏｌｕｔｉｏｎ」処理を、１６ｃｈのチャネル数で３回実行する（「ＤｅＣｏｎｖ１」〜「ＤｅＣｏｎｖ３」）。
【００５３】
ディープニューラルネットワークは、カーネルサイズが縮小された三次元の形状情報を、元のカーネルサイズの三次元の形状情報に復元する。ネットワーク構築部１３３は、カーネルサイズ「１×１×１」のフィルタを用いた「ｃｏｎｖｏｌｕｔｉｏｎ」処理を、１６ｃｈのチャネル数で実行する（図４の下段の「Ｃｏｎｖ１」）。
【００５４】
ディープニューラルネットワークは、チャネル方向に「ｓｏｆｔｍａｘ」処理を施した結果である数値を、チャネルごとに出力する。ディープニューラルネットワークの出力は、入力の形状情報ボクセルセットに対応する関節情報ボクセルセットである。ディープニューラルネットワークは、関節部位情報に対応するチャネルから、関節部位情報に対応する関節位置情報を出力する。
【００５５】
出力の関節情報ボクセルセットのカーネルサイズは、入力の形状情報ボクセルセットのカーネルサイズと同様に「８×８×８」である。ディープニューラルネットワークの出力層のチャネル数は、推定される関節部位の個数と、推定される関節部位のいずれにも付与されてない関節部位情報の個数とが加算された結果を表す個数である。ここでは、ディープニューラルネットワークの出力層のチャネル数は、推定される関節部位の個数（関節部位情報の個数）を表す１６ｃｈに１ｃｈを加算した１７ｃｈである。１個のボクセルの各チャネルに含まれる値は、そのチャネルに対応付けられた関節位置情報がそのボクセルと一致する確率を表す。最適化手法は、例えば、「Ａｄａｍ」である。学習率は、例えば、１０−４である。
【００５６】
最適化手法の種類は、各種パラメータとして任意に定められてもよい。カーネルサイズ、ストライド幅、活性化関数の種類、学習率等である各種パラメータは、任意の値又は関数に定められてもよい。ただし、入力の形状情報ボクセルセットと出力の関節情報ボクセルセットとでボクセル解像度が同一となるように、各種パラメータは定められる。
【００５７】
図３に戻り、学習部１３の構成の例の説明を続ける。パラメータ学習部１３４は、学習に使用すると判定された形状情報ボクセルセットを、ボクセルセット判定部１３２から取得する。パラメータ学習部１３４は、学習に使用すると判定された関節情報ボクセルセットを、ボクセルセット判定部１３２から取得する。パラメータ学習部１３４は、構築されたディープニューラルネットワークの構成を表す情報を、ネットワーク構築部１３３から取得する。パラメータ学習部１３４は、構築されたディープニューラルネットワークを用いて、ディープニューラルネットワークのパラメータを学習する。
【００５８】
パラメータ学習部１３４は、ディープニューラルネットワークの初期パラメータを、例えば、ディープラーニング用ライブラリ「ｃｈａｉｎｅｒ」において定められたパラメータとする。パラメータ学習部１３４は、ネットワーク構築部１３３によって構築されたディープニューラルネットワークを用いて、例えば、１万回の反復学習を実行する。初期パラメータ及び反復回数は、任意に予め定められる。パラメータ学習部１３４は、学習済みディープニューラルネットワークの構成及びパラメータを表す情報を、解析部１５に出力する。
【００５９】
このようにして、パラメータ学習部１３４は、被写体の三次元の関節位置情報を多視点実写画像から推定するためのディープニューラルネットワークのパラメータを定めることができる。また、パラメータ学習部１３４は、三次元の形状情報に「ｃｏｎｖｏｌｕｔｉｏｎ」処理及びプーリング処理を繰り返し施すので、被写体の三次元の関節位置情報を多視点実写画像から推定することが可能となる。
【００６０】
図５は、入力データ生成部１４の構成の例を示す図である。入力データ生成部１４は、シルエット生成部１４１と、形状情報生成部１４２とを備える。シルエット生成部１４１は、関節情報が推定される対象としての被写体が撮像された多視点実写画像を取得する。多視点実写画像は、どのような方式のカメラで被写体が撮影された画像でもよいが、例えば、カラーカメラで被写体が撮像された画像である。入力データ生成部１４は、多視点実写画像をハードディスクドライブ等の記録媒体から取得してもよい。
【００６１】
シルエット生成部１４１は、多視点実写画像から被写体領域を抽出することによって、多視点の被写体のシルエット画像（以下「多視点被写体シルエット画像」という。）を生成する。シルエット生成部１４１は、多視点被写体シルエット画像を任意の手法を用いて生成してもよいが、例えば、背景差分又はグラフカットの手法で多視点被写体シルエット画像を生成する。
【００６２】
形状情報生成部１４２は、各視点のカメラパラメータに基づいて、多視点被写体シルエット画像から、被写体の三次元の形状情報を復元する。すなわち、形状情報生成部１４２は、各視点のカメラパラメータと多視点被写体シルエット画像とに基づいて、被写体の三次元の形状情報を復元する。形状情報生成部１４２は、学習データ生成部１２の形状情報復元部１２３が実行した処理と同様の処理を実行することで、多視点被写体シルエット画像から、被写体の三次元の形状情報を復元する。例えば、形状情報生成部１４２は、形状情報復元部１２３が使用した各種パラメータと同一のパラメータを使用して、多視点被写体シルエット画像から、被写体の三次元の形状情報を復元する。形状情報生成部１４２は、被写体の三次元の形状情報を、解析部１５に出力する。
【００６３】
図６は、解析部１５の構成の例を示す図である。解析部１５は、被写体の三次元の形状情報を、形状情報生成部１４２から取得する。解析部１５は、学習済みディープニューラルネットワークの構成及びパラメータを表す情報を、パラメータ学習部１３４から取得する。解析部１５は、被写体の三次元の形状情報を学習済みディープニューラルネットワークの入力とすることによって、被写体の三次元の形状情報から被写体の関節位置情報を推定する。
【００６４】
解析部１５は、ディープニューラルネットワークの出力層のチャネルに対応付けられた関節部位情報を関節位置情報に付与することによって、被写体の三次元の関節情報を生成する。これによって、解析部１５は、各視点のカメラパラメータに基づいて、多視点被写体シルエット画像から被写体の三次元の関節情報を推定することが可能となる。解析部１５は、被写体の三次元の関節情報を外部装置に出力する。外部装置が記録媒体である場合、解析部１５は、被写体の三次元の関節情報を外部装置に記録してもよい。
【００６５】
次に、推定装置１０の動作の例を説明する。
図７は、推定装置１０の動作の例を示すフローチャートである。推定装置１０は、多視点モデルシルエット画像を生成する（ステップＳ１０１）。推定装置１０は、各視点のカメラパラメータに基づいて、多視点モデルシルエット画像から、三次元モデルの三次元の形状情報を復元する（ステップＳ１０２）。推定装置１０は、三次元モデルの三次元の形状情報と三次元モデルの三次元の関節情報とに基づいて、ディープニューラルネットワークのパラメータを定める（ステップＳ１０３）。
【００６６】
推定装置１０は、多視点被写体シルエット画像から、被写体の三次元の形状情報を復元する（ステップＳ１０４）。推定装置１０は、被写体の三次元の形状情報を学習済みディープニューラルネットワークの入力とすることによって、被写体の三次元の関節情報を推定する（ステップＳ１０５）。推定装置１０は、被写体の三次元の関節情報を外部装置に出力及び記録する（ステップＳ１０６）。
【００６７】
図８は、学習データ生成部１２の動作の例を示すフローチャートである。学習データ生成部１２は、関節情報が付与された三次元モデル画像を、視点ごとに取得する（ステップＳ２０１）。学習データ生成部１２は、視点ごとの三次元モデル画像から多視点モデルシルエット画像を生成し、多視点モデルシルエット画像とカメラパラメータとを出力する（ステップＳ２０２）。
【００６８】
学習データ生成部１２は、カメラパラメータに基づいて、多視点モデルシルエット画像から、三次元モデルの三次元の形状情報を復元する（ステップＳ２０３）。学習データ生成部１２は、三次元モデルの三次元の形状情報と三次元モデルの三次元の関節情報とを、学習部１３に出力する（ステップＳ２０４）。
【００６９】
図９は、学習部１３の動作の例を示すフローチャートである。学習部１３は、形状情報ボクセルセットと関節情報ボクセルセットとを生成する（ステップＳ３０１）。学習部１３は、学習に用いるボクセルセットであるか否かを、ボクセルセットごとに判定する（ステップＳ３０２）。学習部１３は、形状情報ボクセルセットを入力とし、関節情報ボクセルセットを出力とするディープニューラルネットワークを構築する（ステップＳ３０３）。学習部１３は、ディープニューラルネットワークのパラメータを学習する（ステップＳ３０４）。
【００７０】
図１０は、入力データ生成部１４の動作の例を示すフローチャートである。入力データ生成部１４は、被写体が撮像された多視点実写画像を取得する（ステップＳ４０１）。入力データ生成部１４は、多視点実写画像から多視点被写体シルエット画像を生成する（ステップＳ４０２）。入力データ生成部１４は、各視点のカメラパラメータに基づいて、多視点被写体シルエット画像から、被写体の三次元の形状情報を復元する（ステップＳ４０３）。入力データ生成部１４は、被写体の三次元の形状情報を、解析部１５に出力する（ステップＳ４０４）。
【００７１】
図１１は、解析部１５の動作の例を示すフローチャートである。解析部１５は、学習済みディープニューラルネットワークを用いて、被写体の三次元の形状情報から被写体の三次元の関節情報を推定する（ステップＳ５０１）。解析部１５は、被写体の三次元の関節情報を、外部装置に出力及び記録する（ステップＳ５０２）。
【００７２】
以上のように、第１実施形態の学習データ生成装置としての学習データ生成部１２は、シルエット画像レンダリング部１２１と、カメラパラメータ出力部１２２と、形状情報復元部１２３と、関節情報ボクセル化部１２５とを備える。シルエット画像レンダリング部１２１は、三次元モデル画像を三次元モデルの周囲に定められた視点ごとに取得する。シルエット画像レンダリング部１２１は、三次元モデル画像にレンダリング処理を施すことによって、多視点モデルシルエット画像を視点ごとに生成する。カメラパラメータ出力部１２２は、カメラパラメータを視点ごとに取得する。形状情報復元部１２３は、各視点のカメラパラメータに基づいて、多視点モデルシルエット画像から、三次元モデルの三次元の形状情報を復元する。関節情報ボクセル化部１２５は、三次元モデルの三次元の形状情報のボクセル空間と同じボクセル空間に、三次元モデルの三次元の関節情報を生成する。これによって、第１実施形態の学習データ生成装置としての学習データ生成部１２は、三次元の関節情報を含む複数の学習データをより容易に生成することが可能である。
【００７３】
第１実施形態の学習データ生成装置としての学習データ生成部１２は、学習部１３を更に備えてもよい。学習部１３は、三次元の形状情報に応じて三次元の関節情報を出力するディープニューラルネットワークのパラメータを学習する。ディープニューラルネットワークの出力層は、三次元の関節情報によって表される関節の個数に応じた個数のチャネルを有する。学習部１３は、複数の三次元の形状情報をまとめることによって、形状情報ボクセルセットを生成する。学習部１３は、形状情報ボクセルセットをディープニューラルネットワークのパラメータの学習に用いるか否かを、予め定められた条件に基づいて判定する。
【００７４】
第１実施形態の学習装置１１は、コンピュータグラフィックスの画像に基づいて学習データを生成する。これによって、第１実施形態の学習装置１１は、大量の学習データを容易に生成することが可能である。第１実施形態の学習装置１１は、大量の学習データを容易に拡張することができる。第１実施形態の学習装置１１は、関節情報が付与されている画像を取得するので、関節情報を画像から取得する手間を削減することが可能である。
【００７５】
（第２実施形態）
第２実施形態では、機械学習に関する各種データを推定装置１０が記憶する点が、第１実施形態と相違する。第２実施形態では、第１実施形態との相違点についてのみ説明する。
【００７６】
図１２は、推定システム１ｂの構成の例を示す図である。推定システム１ｂは、推定装置１０を備える。推定システム１ｂにおいて推定装置１０が三次元の関節情報の推定処理のみを実行する場合、推定システム１ｂは、学習装置１１を備えていなくてもよい。すなわち、推定システム１ｂにおいて推定装置１０が推定処理のみを実行する場合、学習装置１１は機械学習を実行しなくてもよい。推定システム１ａにおいて学習装置１１が機械学習を実行する場合には、推定システム１ｂは、学習装置１１を備える。
【００７７】
学習装置１１は、学習データ生成部１２と、学習部１３とを備える。学習データ生成部１２は、学習装置１１とは異なる学習データ生成装置に備えられてもよい。この場合、学習データ生成装置によって生成された学習データは、ネットワークや記憶媒体などを介して学習装置１１に与えられてもよい。学習データ生成装置としての学習データ生成部１２は、学習部１３を更に備えてもよい。
【００７８】
学習部１３は、学習データを用いて機械学習を実行する。学習部１３は、ディープニューラルネットワークに限らず、例えば、遺伝的プログラミングやクラスタリング等の機械学習を実行してもよい。学習部１３は、機械学習に関する各種データを、通信回線又は記録媒体等を介して推定装置１０に記録する。機械学習に関する各種データとは、例えば、アルゴリズムを表すデータ、学習済みディープニューラルネットワークの構成及びパラメータを表すデータである。
【００７９】
推定装置１０は、入力データ生成部１４と、解析部１５と、記憶部１６とを備える。記憶部１６は、学習部１３によって生成された機械学習に関する各種データを記憶する。解析部１５は、学習済みディープニューラルネットワークのパラメータを、記憶部１６から取得する。学習済みディープニューラルネットワークのパラメータは、形状情報ボクセルセットのうち、予め定められた条件を満たした形状情報ボクセルセットを用いた学習結果に基づくパラメータである。予め定められた条件とは、例えば、三次元モデルの形状部分の空間が形状情報ボクセルセットの全体の空間に対して所定割合以上であるという条件である。
【００８０】
以上のように、第２実施形態の推定装置１０は、解析部１５を備える。解析部１５は、学習装置１１によって生成された三次元モデルの三次元の形状情報に応じて三次元モデルの三次元の関節情報を出力するよう学習されたディープニューラルネットワークを用いて、被写体の三次元の関節情報を推定する。これによって、第２実施形態の推定装置１０は、被写体の三次元の関節位置を精度良く推定することが可能である。また、第２実施形態の学習データ生成装置としての学習データ生成部１２は、三次元の関節情報を含む複数の学習データをより容易に生成することが可能である。
【００８１】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【００８２】
１ａ，１ｂ…推定システム、１０…推定装置、１１…学習装置、１２…学習データ生成部、１３…学習部、１４…入力データ生成部、１５…解析部、１６…記憶部、１２１…シルエット画像レンダリング部、１２２…カメラパラメータ出力部、１２３…形状情報復元部、１２４…関節情報出力部、１２５…関節情報ボクセル化部、１３１…ボクセルセット生成部、１３２…ボクセルセット判定部、１３３…ネットワーク構築部、１３４…パラメータ学習部、１４１…シルエット生成部、１４２…形状情報生成部
【図１】
2019016164.tif 000003
【図２】
2019016164.tif 000004
【図３】
2019016164.tif 000005
【図４】
2019016164.tif 000006
【図５】
2019016164.tif 000007
【図６】
2019016164.tif 000008
【図７】
2019016164.tif 000009
【図８】
2019016164.tif 000010
【図９】
2019016164.tif 000011
【図１０】
2019016164.tif 000012
【図１１】
2019016164.tif 000013
【図１２】
2019016164.tif 000014