(57)【要約】【課題】関節が隠れている場合であっても、関節位置を精度よく推定できる。【解決手段】第一関節位置推定部２３０が、領域画像の各々と、関節位置を推定するための予め学習された第一関節位置推定モデル２５０とに基づいて、領域画像についての人物の各関節の関節位置の候補を推定し、第二関節位置推定部２４０が、領域画像の各々に対し、推定された各関節の関節位置の候補に基づいて、各関節について、関節の関節位置の候補を基準として切り出された関節位置画像の各々と、当該関節について予め学習された第二関節位置推定モデル２５２とに基づいて、関節位置画像の各々についての各関節の関節位置を推定し、各関節に対し、推定された関節の関節位置の各々に基づいて、画像についての関節の関節位置を推定する。【選択図】図４
2016212688.tif 000002
【特許請求の範囲】
【請求項１】
人物が撮像された深度画像から切り出された領域画像の各々と、深度画像についての各関節に対する相対位置を表す関節位置を推定するための予め学習された第一関節位置推定モデルとに基づいて、前記領域画像についての前記人物の各関節の関節位置の候補を推定する第一関節位置推定部と、
前記領域画像の各々に対し、前記第一関節位置推定部によって推定された各関節の関節位置の候補に基づいて、各関節について、前記深度画像から、前記関節の関節位置の候補を基準として切り出された関節位置画像の各々と、前記関節について予め学習された、前記関節の周辺の深度画像についての各関節の関節位置を推定するための第二関節位置推定モデルとに基づいて、前記関節位置画像の各々についての各関節の関節位置を推定し、
各関節に対し、推定された前記関節の関節位置の各々に基づいて、前記深度画像についての前記関節の関節位置を推定する第二関節位置推定部と、
を含む関節位置推定装置。
【請求項２】
前記第一関節位置推定部は、
前記深度画像から、ランダムに領域画像の各々を切り出すランダム領域切り出し部と、
前記ランダム領域切り出し部によって切り出された領域画像の各々と、前記第一関節位置推定モデルとに基づいて、前記領域画像についての前記人物の各関節の関節位置の候補を推定する第一関節位置推定モデル適用部とを含み、
前記第二関節位置推定部は、
前記第一関節位置推定モデル適用部によって推定された各関節の関節位置の候補に基づいて、前記深度画像から、前記関節の関節位置の候補を基準とした関節位置画像の各々を切り出す領域切り出し部と、
前記領域切り出し部によって切り出された前記関節の関節位置画像の各々と、前記関節についての前記第二関節位置推定モデルとに基づいて、前記関節の関節位置の候補を基準として切り出された前記関節位置画像の各々についての各関節の関節位置を推定する第二関節位置推定モデル適用部と、
各関節に対し、前記第二関節位置推定モデル適用部によって推定された前記関節の関節位置の各々に基づいて、前記深度画像についての前記関節の関節位置を推定する推定関節位置統合部とを含む請求項１に記載の関節位置推定装置。
【請求項３】
第一関節位置推定部が、人物が撮像された深度画像から切り出された領域画像の各々と、深度画像についての各関節に対する相対位置を表す関節位置を推定するための予め学習された第一関節位置推定モデルとに基づいて、前記領域画像についての前記人物の各関節の関節位置の候補を推定するステップと、
第二関節位置推定部が、前記領域画像の各々に対し、前記第一関節位置推定部によって推定された各関節の関節位置の候補に基づいて、各関節について、前記深度画像から、前記関節の関節位置の候補を基準として切り出された関節位置画像の各々と、前記関節について予め学習された、前記関節の周辺の深度画像についての各関節の関節位置を推定するための第二関節位置推定モデルとに基づいて、前記関節位置画像の各々についての各関節の関節位置を推定し、各関節に対し、推定された前記関節の関節位置の各々に基づいて、前記深度画像についての前記関節の関節位置を推定するステップと、
を含む関節位置推定方法。
【請求項４】
前記第一関節位置推定部は、ランダム領域切り出し部と、第一関節位置推定モデル適用部とを含み、
前記第一関節位置推定部が推定するステップは、
前記ランダム領域切り出し部が、前記深度画像から、ランダムに領域画像の各々を切り出すステップと、
第一関節位置推定モデル適用部が、前記ランダム領域切り出し部によって切り出された領域画像の各々と、前記第一関節位置推定モデルとに基づいて、前記領域画像についての前記人物の各関節の関節位置の候補を推定するステップとを含み、
前記第二関節位置推定部は、領域切り出し部と、第二関節位置推定モデル適用部とを含み、
前記第二関節位置推定部が推定するステップは、
領域切り出し部が、前記第一関節位置推定モデル適用部によって推定された各関節の関節位置の候補に基づいて、前記深度画像から、前記関節の関節位置の候補を基準とした関節位置画像の各々を切り出すステップと、
第二関節位置推定モデル適用部が、前記領域切り出し部によって切り出された前記関節の関節位置画像の各々と、前記関節についての前記第二関節位置推定モデルとに基づいて、前記関節の関節位置の候補を基準として切り出された前記関節位置画像の各々についての各関節の関節位置を推定するステップと、
推定関節位置統合部が、各関節に対し、前記第二関節位置推定モデル適用部によって推定された前記関節の関節位置の各々に基づいて、前記深度画像についての前記関節の関節位置を推定するステップとを含む請求項３に記載の関節位置推定方法。
【請求項５】
コンピュータを、請求項１又は請求項２に記載の関節位置推定装置の各部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、関節位置推定装置、方法、及びプログラムに係り、特に、人体の関節位置を推定するための関節位置推定装置、方法、及びプログラムに関する。
【背景技術】
【０００２】
安価な深度センサ付きカメラの普及に伴い、深度映像に基づいて映像に映る人物の姿勢を推定する手法は様々に提案されている。深度映像から人物姿勢を推定する手法として、大きく２つのアプローチが存在しており、１つは画素毎に対象画素が人体のどの部位に属するかクラス分けを行う手法（非特許文献１参照）、もう１つは画像特徴から各関節の３次元位置を直接推定する手法（非特許文献２参照）である。どちらも学習データを用いたパターン認識によって推定され、推定手法にはランダムフォレストなどの木構造を用いた識別器を適用する手法が主流であるが、最近では非特許文献１のようにConvolutional Neural Network(以下、ＣＮＮと称する)などの深層学習を用いた手法も提案されている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】M. Jiu, C. Wolf, G. Taylor, A. Baskurt, “Human body part estimation from depth images via spatially-constrained deep learning”, Pattern Recognition Letters, Volume 50, 2014
【非特許文献２】R. Girshick, J. Shotton, P. Kohli, A. Criminisi, A. Fitzgibbon, "Efficient regression of general-activity human poses from depth images," ICCV2011
【発明の概要】
【発明が解決しようとする課題】
【０００４】
非特許文献１で提案されているＣＮＮを用いた人体部位推定では、ＣＮＮによる深層学習によって深度画像から抽出される画像特徴をあらかじめ設定することなく、部位推定器の学習と同時に画像特徴をデータから学習することで従来よりも高精度な識別を実現している。しかしながら、画素毎に人体部位ラベルを与えるという枠組みから、オクルージョンなどによって映像中に映らない人体部位については推定が出来ないという問題がある。
【０００５】
一方、非特許文献２で提案されている人体姿勢推定手法では、深度画像の一部の領域を用いて直接３次元の関節位置を推定し、様々な領域からの投票によって関節位置を決定することで、オクルージョンの発生している見えない関節部位についても関節位置の推定が可能となっている。しかし、非特許文献２では、領域中の２点の深度の差分を計算するシンプルな特徴を用いているため、計算時間は少ないものの推定精度に課題がある。
【０００６】
本発明は、上記問題点を解決するために成されたものであり、関節が隠れている場合であっても、関節位置を精度よく推定できる関節位置推定装置、方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、第１の発明に係る関節位置推定装置は、人物が撮像された深度画像から切り出された領域画像の各々と、深度画像についての各関節に対する相対位置を表す関節位置を推定するための予め学習された第一関節位置推定モデルとに基づいて、前記領域画像についての前記人物の各関節の関節位置の候補を推定する第一関節位置推定部と、前記領域画像の各々に対し、前記第一関節位置推定部によって推定された各関節の関節位置の候補に基づいて、各関節について、前記深度画像から、前記関節の関節位置の候補を基準として切り出された関節位置画像の各々と、前記関節について予め学習された、前記関節の周辺の深度画像についての各関節の関節位置を推定するための第二関節位置推定モデルとに基づいて、前記関節位置画像の各々についての各関節の関節位置を推定し、各関節に対し、推定された前記関節の関節位置の各々に基づいて、前記深度画像についての前記関節の関節位置を推定する第二関節位置推定部と、を含んで構成されている。
【０００８】
また、第１の発明に係る関節位置推定装置において、前記第一関節位置推定部は、前記深度画像から、ランダムに領域画像の各々を切り出すランダム領域切り出し部と、前記ランダム領域切り出し部によって切り出された領域画像の各々と、前記第一関節位置推定モデルとに基づいて、前記領域画像についての前記人物の各関節の関節位置の候補を推定する第一関節位置推定モデル適用部とを含み、前記第二関節位置推定部は、前記第一関節位置推定モデル適用部によって推定された各関節の関節位置の候補に基づいて、前記深度画像から、前記関節の関節位置の候補を基準とした関節位置画像の各々を切り出す領域切り出し部と、前記領域切り出し部によって切り出された前記関節の関節位置画像の各々と、前記関節についての前記第二関節位置推定モデルとに基づいて、前記関節の関節位置の候補を基準として切り出された前記関節位置画像の各々についての各関節の関節位置を推定する第二関節位置推定モデル適用部と、各関節に対し、前記第二関節位置推定モデル適用部によって推定された前記関節の関節位置の各々に基づいて、前記深度画像についての前記関節の関節位置を推定する推定関節位置統合部とを含むようにしてもよい。
【０００９】
第２の発明に係る関節位置推定方法は、第一関節位置推定部が、人物が撮像された深度画像から切り出された領域画像の各々と、深度画像についての各関節に対する相対位置を表す関節位置を推定するための予め学習された第一関節位置推定モデルとに基づいて、前記領域画像についての前記人物の各関節の関節位置の候補を推定するステップと、第二関節位置推定部が、前記領域画像の各々に対し、前記第一関節位置推定部によって推定された各関節の関節位置の候補に基づいて、各関節について、前記深度画像から、前記関節の関節位置の候補を基準として切り出された関節位置画像の各々と、前記関節について予め学習された、前記関節の周辺の深度画像についての各関節の関節位置を推定するための第二関節位置推定モデルとに基づいて、前記関節位置画像の各々についての各関節の関節位置を推定し、各関節に対し、推定された前記関節の関節位置の各々に基づいて、前記深度画像についての前記関節の関節位置を推定するステップと、を含んで実行することを特徴とする。
【００１０】
また、第２の発明に係る関節位置推定方法において、前記第一関節位置推定部は、ランダム領域切り出し部と、第一関節位置推定モデル適用部とを含み、前記第一関節位置推定部が推定するステップは、前記ランダム領域切り出し部が、前記深度画像から、ランダムに領域画像の各々を切り出すステップと、第一関節位置推定モデル適用部が、前記ランダム領域切り出し部によって切り出された領域画像の各々と、前記第一関節位置推定モデルとに基づいて、前記領域画像についての前記人物の各関節の関節位置の候補を推定するステップとを含み、前記第二関節位置推定部は、領域切り出し部と、第二関節位置推定モデル適用部とを含み、前記第二関節位置推定部が推定するステップは、領域切り出し部が、前記第一関節位置推定モデル適用部によって推定された各関節の関節位置の候補に基づいて、前記深度画像から、前記関節の関節位置の候補を基準とした関節位置画像の各々を切り出すステップと、第二関節位置推定モデル適用部が、前記領域切り出し部によって切り出された前記関節の関節位置画像の各々と、前記関節についての前記第二関節位置推定モデルとに基づいて、前記関節の関節位置の候補を基準として切り出された前記関節位置画像の各々についての各関節の関節位置を推定するステップと、推定関節位置統合部が、各関節に対し、前記第二関節位置推定モデル適用部によって推定された前記関節の関節位置の各々に基づいて、前記深度画像についての前記関節の関節位置を推定するステップとを含むようにしてもよい。
【００１１】
また第３の発明に係るプログラムは、コンピュータを、上記第１の発明に係る関節位置推定装置の各部として機能させるためのプログラムである。
【発明の効果】
【００１２】
本発明の関節位置推定装置、方法、及びプログラムによれば、領域画像の各々と、関節位置を推定するための予め学習された第一関節位置推定モデルとに基づいて、領域画像についての人物の各関節の関節位置の候補を推定し、領域画像の各々に対し、推定された各関節の関節位置の候補に基づいて、各関節について、関節の関節位置の候補を基準として関節位置画像を切り出し、各関節に対し、当該関節の関節位置画像の各々と、当該関節について予め学習された第二関節位置推定モデルとに基づいて、関節位置画像の各々についての各関節の関節位置を推定し、各関節に対し、推定された関節の関節位置の各々に基づいて、画像についての関節の関節位置を推定することにより、関節が隠れている場合であっても、関節位置を精度よく推定することができる、という効果が得られる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施の形態に係る関節位置学習装置の構成を示すブロック図である。
【図２】領域画像及び正解の関節の関節位置の一例を示す図である。
【図３】選ばれた画素を基準として切り出される領域の一例を示す図である。
【図４】本発明の実施の形態に係る関節位置推定装置の構成を示すブロック図である。
【図５】推定された各関節の関節位置の候補の一例を示す図である。
【図６】本発明の実施の形態に係る関節位置学習装置における関節位置学習処理ルーチンを示すフローチャートである。
【図７】本発明の実施の形態に係る関節位置推定装置における関節位置推定処理ルーチンを示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
【００１５】
＜本発明の実施の形態に係る概要＞
【００１６】
まず、本発明の実施の形態における概要を説明する。
【００１７】
本発明の実施の形態では、上記非特許文献２と同様に、深度画像の一部領域を入力として各関節の３次元位置を推定することでオクルージョンへの対応を行う。一部の領域を入力とした関節位置推定を対象画像から得られる複数の領域に対して適用し、得られる複数の関節位置候補を用いてそれらを統合することで推定結果を得る。また、関節位置の推定手段として、Convolutional Neural Network(以下、ＣＮＮと称する)と呼ばれる入力画像に対するフィルタの畳み込みを特徴抽出として用いる多層ニューラルネットを導入することで、推定に有用な画像特徴を学習用画像から学習し、高精度な関節位置推定を実現する。さらに、効率的かつ精度良く関節位置推定を行うために、２段階の関節位置推定処理を設定し、２段目の推定に用いる画像領域（関節位置）の設定と、各関節に適用する有効な推定器を動的に決定する仕組みを導入する。１段目の関節位置推定はランダムに切り出された領域の画像を用いて各関節の関節位置候補の推定を行い、２段目の関節位置推定は１段目に推定された関節位置候補の周辺画像を用いて関節位置推定を行う。その際、２段目に用いる推定器は各関節個別に学習された推定器を用いることで、各推定器が対象とする関節周辺の関節について推定精度の向上が期待でき、また関節間の関係性を推定器が暗に持つことで、オクルージョンされた関節についての推定精度向上も期待される。
【００１８】
＜本発明の実施の形態に係る関節位置学習装置の構成＞
【００１９】
次に、本発明の実施の形態に係る関節位置学習装置の構成について説明する。図４に示すように、本発明の実施の形態に係る関節位置学習装置１００は、ＣＰＵと、ＲＡＭと、関節位置学習を実行するためのプログラムや各種データを記憶したＲＯＭと、を含むコンピュータで構成することが出来る。図１に示すように、関節位置学習装置１００は、機能的には図１に示すように入力部１０と、演算部２０とを備えている。
【００２０】
入力部１０は、人物が撮像された学習用深度画像を受け付ける。学習用深度画像は、深度センサ又は３Ｄモデリングソフトなどによってあらかじめ用意された、人物が映る深度付きの画像である。
【００２１】
演算部２０は、第一関節位置推定モデル学習部３０と、第二関節位置推定モデル学習部４０部と、第一関節位置推定モデル５０と、第二関節位置推定モデル５２とを含んで構成されている。
【００２２】
以下に説明する第一関節位置推定モデル学習部３０及び第二関節位置推定モデル学習部４０では、学習用画像と対応する関節位置（関節位置ベクトル）の情報を用いて深層学習による第一関節位置推定モデル及び第二関節位置推定モデルの学習を行う。本実施の形態では、深層学習にはＣＮＮを用いる。ＣＮＮでは、切り出された深度付き領域画像を入力とし、領域画像に対応する関節位置のベクトル（３×ＮＪ次元：ＮＪは推定する関節数を表す）を出力とするように学習される。多層ニューラルネットの構造は非特許文献３と同様のものを用いることができるが、これに限ったものではなく、入出力が同様であれば様々な構造のネットワークを用いることができる。なお、ニューラルネットによる推定器ではなく、特徴抽出器で抽出される特徴を求めておき、関節位置抽出器を学習するようにしてもよい。
【００２３】
[非特許文献３]：A. Toshev, and S. Christian, "Deeppose: Human pose estimation via deep neural networks." CVPR2014
【００２４】
第一関節位置推定モデル学習部３０は、学習用深度画像から切り出された領域画像の各々と、領域画像の各々についての、人物の各関節に対する相対位置を表す関節位置とに基づいて、深度画像についての各関節の関節位置を推定するための第一関節位置推定モデルを学習する。第一関節位置推定モデル学習部３０は、本実施の形態では、学習用深度画像の各関節の関節位置に基づき、関節位置推定モデルの学習に用いる領域画像の各々及び領域画像についての各関節の相対位置を表す関節位置ベクトルを生成し、それらを用いてＣＮＮのパラメータ推定を行う。また、学習用データとしてランダムに切り出された領域画像を用いる。図２に領域画像及び正解の関節の関節位置の例を示す。
【００２５】
次に、第一関節位置推定モデル学習部３０の具体的な構成について説明する。第一関節位置推定モデル学習部３０は、第一学習用データ生成部３２と、第一関節位置推定部３４とを備えている。
【００２６】
第一学習用データ生成部３２は、入力部１０により受け付けた学習用深度画像から関節位置情報又は適当な深度の閾値を用いて人物の領域抽出を行い、領域画像の各々を生成する。第一学習用データ生成部３２は、具体的には、学習用深度画像から得られた人物の領域からランダムな画素を選び、当該画素を中心に一辺Ｗの正方形の領域を抽出する。図３に選ばれた画素を基準として切り出される領域の例を示す。この時、切り出される領域の大きさＷは選ばれた画素の深度をＺとして、任意のパラメータＣによってＷ＝Ｃ／Ｚと定められる。これは、推定対象の位置によらず実空間での一定サイズの領域を抽出するための工夫である。そして、第一学習用データ生成部３２は、抽出した領域画像に対して、中心画素からの各関節の相対位置を表す関節位置ベクトルを教師ベクトルとして保持する。このようにして得られる領域画像及び教師ベクトルのセットを、学習用深度画像ＮＩ枚に対して、各Ｍ枚の領域画像分抽出し、計ＮＩ×Ｍ枚の第一学習用データセットを生成する。
【００２７】
第一関節位置推定部３４は、第一学習用データ生成部３２によって生成された第一学習用データセットに基づいて、第一関節位置推定モデルを学習する。第一関節位置推定部３４は、本実施の形態では、人物が撮像された深度画像から切り出された領域画像を入力すると、関節位置ベクトルを出力とする多層ニューラルネットを関節位置推定器として学習する。ニューラルネットのパラメータ推定には上記非特許文献３と同様にＣＮＮの学習に一般的に用いられる誤差逆伝播法を用いる。そして、推定されたニューラルネットのパラメータを、第一関節位置推定モデル５０として記憶する。
【００２８】
第二関節位置推定モデル学習部４０は、各関節に対し、学習用深度画像が表す人物の当該関節の位置の周辺から切り出された周辺画像の各々と、周辺画像の各々についての各関節に対する相対位置を表す関節位置とに基づいて、当該関節の周辺の深度画像についての各関節の関節位置を推定するための第二関節位置推定モデルを学習する。第二関節位置推定モデル学習部４０では、当該関節の位置の周辺から切り出された周辺画像の各々と、周辺画像の各々についての各関節に対する相対位置を表す関節位置とを用いて、第一関節位置推定モデル学習部３０とほぼ同様の手法により第二関節位置推定器を学習する。第二関節位置推定モデル５２は、特定の関節ごとに第二関節位置推定器を学習することにより、ＮＪ個の第二関節位置推定器を学習する。また、第二関節位置推定モデル学習部４０において学習される第二関節位置推定モデル５２は、全関節について学習を行った後に、学習に用いていないテストデータを用いて推定精度を評価し、精度が閾値を下回る関節については推定対象外とする。そのため、第二関節位置推定モデル５２を用いて推定される関節の数は、各関節に対応する第二関節位置推定器によって異なる。
【００２９】
次に、第二関節位置推定モデル学習部４０の具体的な構成について説明する。第二関節位置推定モデル学習部４０は、第二学習用データ生成部４２と、第二関節位置推定部４４と、推定対象関節決定部４６とを備えている。
【００３０】
第二学習用データ生成部４２では、各関節に対し、入力部１０により受け付けた学習用深度画像から、学習用深度画像が表す人物の当該関節の位置の周辺を切り抜いた周辺画像の各々を生成する。ここでは、特定の関節の正解となる関節位置の情報を用いて、関節位置を中心にとったランダムなガウスノイズを加えることによって周辺画像の各々を得る。次に、得られた周辺画像の画素を中心とする一辺Ｗの正方形を抽出する。この時の領域サイズＷは正解となる関節位置の深度をＺとして、Ｗ＝Ｃ／Ｚによって決定する。そして、第一学習用データ生成部３２と同様に、切り出された周辺画像に対応する各関節の相対位置を表す関節位置ベクトルを教師ベクトルとして保持し、第二学習用データセットとする。また、この時生成された第二学習用データセットの一部をテスト用データセットとして取り出す。
【００３１】
第二関節位置推定部４４では、第一関節位置推定部３４と同様の手法に従って、各関節に対し、当該関節の周辺画像について第二学習用データ生成部４２で生成された第二学習用データセット（テスト用データセットを除いたもの）に基づいて、ニューラルネットのパラメータの推定を行い、第二関節位置推定モデル５２として記憶する。
【００３２】
推定対象関節決定部４６では、各関節に対し、第二学習用データ生成部４２によって生成された当該関節のテスト用データセットと、第二関節位置推定部４４によって当該関節について学習された第二関節位置推定モデル５２とを用いて、当該関節の周辺画像における各関節の位置推定精度を評価する。当該関節に対するテスト用データセットを入力として、当該関節について、第二関節位置推定モデル５２の当該関節の第二関節位置推定器により各関節の関節位置を推定する。次に、推定された各関節の関節位置と、学習用深度画像が表す人物の正解となる各関節の関節位置との誤差を算出する。そして、当該誤差の平均が閾値以下の関節のみを、第二関節位置推定モデル５２の当該関節の第二関節位置推定器における推定対象関節として設定する。
【００３３】
＜本発明の実施の形態に係る関節位置推定装置の構成＞
【００３４】
次に、本発明の実施の形態に係る関節位置推定装置の構成について説明する。図４に示すように、本発明の実施の形態に係る関節位置推定装置２００は、ＣＰＵと、ＲＡＭと、後述する関節位置推定処理ルーチンを実行するためのプログラムや各種データを記憶したＲＯＭと、を含むコンピュータで構成することが出来る。この関節位置推定装置２００は、機能的には図４に示すように入力部２１０と、演算部２２０と、出力部２６０とを備えている。
【００３５】
関節位置推定装置２００は、以下に説明するように、関節位置の推定対象となる人物の映る深度画像を入力として、深度画像が表す人物の各関節の３次元位置を推定する。
【００３６】
入力部２１０は、人物が撮像された深度画像を受け付ける。
【００３７】
演算部２０は、前景抽出部２２８と、第一関節位置推定部２３０と、第二関節位置推定部２４０と、第一関節位置推定モデル２５０と、第二関節位置推定モデル２５２とを含んで構成されている。
【００３８】
第一関節位置推定モデル２５０には、第一関節位置推定モデル５０と同じものが記憶されている。
【００３９】
第二関節位置推定モデル２５２には、第二関節位置推定モデル５２と同じものが記憶されている。
【００４０】
まず、前景抽出部２２８において、入力部２１０により受け付けた深度画像から予め設定された深度の範囲にある領域の画像を抽出する。これは、簡単な背景除去を行うためのもので、撮影環境が既知であればそれを用いた背景除去を適用しても良いし、人物検出器などを用いて大まかな領域選択を行っても良い。ここで抽出された領域の深度情報を用いて以降の姿勢推定の処理を行う。
【００４１】
第一関節位置推定部２３０では、前景抽出部２２８により抽出された画像から切り出された領域画像の各々と、第一関節位置推定モデル２５０とに基づいて、領域画像の各々に対し、当該領域画像についての人物の各関節の関節位置の候補を推定する。
【００４２】
次に、第一関節位置推定部２３０の具体的な構成について説明する。第一関節位置推定部２３０は、ランダム領域切り出し部２３２と、第一関節位置推定モデル適用部２３４と、を備えている。
【００４３】
ランダム領域切り出し部２３２は、前景抽出部２２８により抽出された画像からランダムな画素を基準とする一辺Ｗの正方形の領域画像を切り出す。この時、上記関節位置学習装置１００の第一学習用データ生成部３２と同様に、領域サイズＷは深度ＺによってＷ＝Ｃ／Ｚで決められる。そして、ランダム領域切り出し部２３２は、切り出した領域画像の各々をリサイズして、第一関節位置推定モデル適用部２３４の入力とする。
【００４４】
第一関節位置推定モデル適用部２３４は、ランダム領域切り出し部２３２で切り出された領域画像の各々と、第一関節位置推定モデル２５０とに基づいて、領域画像の各々に対し、当該領域画像についての人物の各関節の関節位置の候補を推定する。第一関節位置推定モデル適用部２３４では、具体的には、領域画像の中心画素に対する各関節の相対位置を表す関節位置を推定する。領域画像について、第一関節位置推定モデル２５０におけるニューラルネットのパラメータに基づいて、ニューラルネットの順伝播計算を行う。そして、各関節について出力された関節位置からなる関節位置ベクトルを、関節位置の候補として保持する。このように、ランダムに切り出された複数の領域画像に対して推定処理を行い、各関節に対し、深度画像についての当該関節の関節位置の複数の候補を得る。図５に推定された各関節の関節位置の候補のイメージを示す。
【００４５】
第二関節位置推定部２４０は、ランダム領域切り出し部２３２で切り出された領域画像の各々に対し、第一関節位置推定モデル適用部２３４によって推定された各関節の関節位置の候補に基づいて、人物の各関節について、入力部２１０で受け付けた深度画像から、当該関節の関節位置の候補を基準として関節位置画像の各々を切り出す。そして、当該関節の関節位置の候補を基準として切り出された関節位置画像の各々と、当該関節について予め学習された第二関節位置推定モデル２５２とに基づいて、当該関節の関節位置の候補を基準として切り出された関節位置画像の各々についての各関節の関節位置を推定し、各関節に対し、推定された当該関節の関節位置の各々に基づいて、深度画像についての当該関節の関節位置を推定する。
【００４６】
次に、第二関節位置推定部２４０の具体的な構成について説明する。第二関節位置推定部２４０は、領域切り出し部２４２と、第二関節位置推定モデル適用部２４４と、推定関節位置統合部２４６とを備えている。
【００４７】
領域切り出し部２４２は、第一関節位置推定モデル適用部２３４によって推定された各関節の関節位置の候補に基づいて、人物の各関節について、深度画像から、当該関節の関節位置の候補を基準とした関節位置画像の各々を切り出す。具体的には、各関節に対し、当該関節について推定された当該関節の関節位置の候補を中心とする正方形の領域を関節位置画像として切り出す。領域サイズＷの決定はランダム領域切り出し部２３２と同様にして行うが、中心画素が、深度画像において深度が得られている処理対象領域に含まれない場合には、処理対象領域中で最も近傍の画素の深度を用いて領域サイズＷを算出する。
【００４８】
第二関節位置推定モデル適用部２４４は、各関節に対し、当該関節について切り出された関節位置画像の各々と、当該関節の第二関節位置推定モデル２５２とに基づいて、当該関節の関節位置画像の各々について、各関節の関節位置を推定する。具体的には、ニューラルネットのパラメータ推定を行い、第二関節位置推定モデル２５２の当該関節に対応する第二関節位置推定器において推定対象として設定されている各関節に対する関節位置を得る。
【００４９】
推定関節位置統合部２４６では、各関節に対し、第二関節位置推定モデル適用部２４４によって推定された、当該関節の関節位置の各々に基づいて、当該関節の関節位置の各々を統合することにより、深度画像についての当該関節の関節位置を推定して、推定結果を出力部２６０に出力する。具体的には、関節位置画像の各々について推定された各関節の関節位置を、深度画像にプロットし、プロットされた各関節の関節位置の各々に基づいて、各関節に対し、ロバスト推定を用いて外れ値を除去した平均値を算出し、当該関節の関節位置の推定結果とする。なお、推定対象が動画である場合、前フレームでの推定結果に基づいてMeanShiftなどの追跡手法を用いても良い。ここで、統合された推定結果を用いて第二関節位置推定部２４０による推定を繰り返し適用しても良い。第二関節位置推定モデル２５２は入力とする関節位置画像が対応する各関節の関節位置に近いほど高精度な推定が期待できるため、関節位置推定を繰り返し行うことによって、より高精度な関節位置推定を行うことができる。
【００５０】
＜本発明の実施の形態に係る関節位置学習装置の作用＞
【００５１】
次に、本発明の実施の形態に係る関節位置学習装置１００の作用について説明する。入力部１０において学習用深度画像を受け付けると、関節位置学習装置１００は、図６に示す関節位置学習処理ルーチンを実行する。
【００５２】
まず、ステップＳ１００では、入力部１０により受け付けた学習用深度画像から人物の領域抽出を行い、抽出された人物領域から、領域画像の各々を生成する。
【００５３】
次に、ステップＳ１０２では、ステップＳ１００で生成した領域画像の各々に対して、関節位置ベクトルを教師ベクトルとして保持し、第一学習用データセットを生成する。
【００５４】
ステップＳ１０４では、ステップＳ１０２で生成された第一学習用データセットに基づいて、第一関節位置推定モデル５０を学習する。
【００５５】
ステップＳ１０６では、各関節に対し、入力部１０により受け付けた学習用深度画像から、人物の当該関節の位置の周辺を切り抜いた周辺画像の各々を生成する。
【００５６】
ステップＳ１０８では、各関節に対し、ステップＳ１０６で生成した周辺画像に対応する各関節の相対位置を表す関節位置ベクトルを教師ベクトルとして保持し、第二学習用データセット及びテスト用データセットを生成する。
【００５７】
ステップＳ１１０では、各関節に対し、ステップＳ１０８で生成された第二学習用データセットに基づいて、第二関節位置推定モデル５２を学習する。
【００５８】
ステップＳ１１２では、各関節に対し、テスト用データセットと、第二関節位置推定部４４によって当該関節について学習された第二関節位置推定モデル５２とを用いて、当該関節の周辺画像における各関節の位置推定精度を評価する。
【００５９】
ステップＳ１１４では、評価結果に基づいて、第二関節位置推定モデル５２の各関節の第二関節位置推定器における推定対象関節を設定し、処理を終了する。
【００６０】
以上説明したように、本発明の実施の形態に係る関節位置学習装置によれば、学習用深度画像から切り出された領域画像の各々と、領域画像の各々についての関節位置とに基づいて、深度画像についての各関節の関節位置を推定するための第一関節位置推定モデルを学習し、各関節に対し、当該関節の位置の周辺から切り出された周辺画像の各々と、周辺画像の各々についての各関節に対する関節位置とに基づいて、当該関節の周辺の深度画像についての各関節の関節位置を推定するための第二関節位置推定モデルを学習することにより、関節が隠れている場合であっても、関節位置を精度よく推定するための関節位置推定モデルを学習することができる。
【００６１】
＜本発明の実施の形態に係る関節位置推定装置の作用＞
【００６２】
次に、本発明の実施の形態に係る関節位置推定装置２００の作用について説明する。関節位置学習装置１００によって学習された第一関節位置推定モデル５０と同じものが第一関節位置推定モデル２５０に記憶される。また、関節位置学習装置１００によって学習された関節毎の第二関節位置推定モデル５２と同じもの、及び推定対象関節の設定と同じものが、第二関節位置推定モデル２５２に記憶される。また、入力部２１０において人物が撮像された深度画像を受け付けると、関節位置推定装置２００は、図６に示す関節位置推定処理ルーチンを実行する。
【００６３】
まず、ステップＳ２００では、入力部２１０において受け付けた深度画像から予め設定された深度の範囲にある領域の画像を抽出する。
【００６４】
次に、ステップＳ２０２では、ステップＳ２００で抽出された領域の画像からランダムな画素を基準とする一辺Ｗの正方形の領域画像の各々を切り出す。
【００６５】
ステップＳ２０４では、ステップＳ２０２で切り出された領域画像の各々に対し、第一関節位置推定モデル２５０に基づいて、当該領域画像の各関節の関節位置の候補を推定する。
【００６６】
ステップＳ２０６では、ステップＳ２０２で切り出された領域画像から処理対象の領域画像を選択する。
【００６７】
ステップＳ２０８では、ステップＳ２０６で選択された領域画像に対し、ステップＳ２０４で推定された各関節の関節位置の候補に基づいて、人物の各関節について、深度画像から、当該関節の関節位置の候補を基準として関節位置画像の各々を切り出す。
【００６８】
ステップＳ２１０では、全ての領域画像について処理を終了したかを判定し、終了していればステップＳ２１２へ移行し、終了していなければステップＳ２０６へ戻って処理を終了していない領域画像を選択する。
【００６９】
ステップＳ２１２では、各関節のうち何れか１つの関節を指定する。
【００７０】
ステップＳ２１４では、ステップＳ２０８で指定された関節に対し、ステップＳ２０８で当該関節の関節位置の候補を基準として切り出された関節位置画像の各々と、当該関節に対する第二関節位置推定モデル２５２とに基づいて、当該関節の関節位置画像の各々について各関節の関節位置を推定する。
【００７１】
ステップＳ２１８では、全ての関節について処理を終了したかを判定し、終了していればステップＳ２２０へ移行し、終了していなければステップＳ２１２へ戻って指定されていない関節を指定する。
【００７２】
ステップＳ２１９では、各関節に対し、ステップＳ２１４で推定された当該関節の関節位置の各々を統合することにより、深度画像についての当該関節の関節位置を推定する。
【００７３】
ステップＳ２２０では、ステップＳ２１９で推定された画像についての各関節の関節位置の推定結果を出力部２６０に出力し、処理を終了する。
【００７４】
以上説明したように、本発明の実施の形態に係る関節位置推定装置によれば、領域画像の各々と、関節位置を推定するための予め学習された第一関節位置推定モデル２５０とに基づいて、領域画像についての人物の各関節の関節位置の候補を推定し、領域画像の各々に対し、推定された各関節の関節位置の候補に基づいて、各関節について、関節の関節位置の候補を基準として関節位置画像を切り出し、各関節に対し、当該関節の関節位置画像の各々と、当該関節について予め学習された第二関節位置推定モデル２５２とに基づいて、関節位置画像の各々についての各関節の関節位置を推定し、各関節に対し、推定された関節の関節位置の各々に基づいて、画像についての関節の関節位置を推定することにより、関節が隠れている場合であっても、関節位置を精度よく推定することができる。
【００７５】
なお、本発明は、上述した実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【００７６】
例えば、上述した実施の形態では、第二関節位置推定モデル２５２において推定対象として設定されている各関節の全ての関節位置を推定する場合を例に説明したが、これに限定されるものではなく、関節位置画像の周辺の各関節に限って関節位置を推定するようにしてもよい。
【符号の説明】
【００７７】
１０、２１０  入力部
２０、２２０  演算部
３０   第一関節位置推定モデル学習部
３２   第一学習用データ生成部
３４   第一関節位置推定部
４０   第二関節位置推定モデル学習部
４２   第二学習用データ生成部
４４   第二関節位置推定部
４６   推定対象関節決定部
５０、２５０  第一関節位置推定モデル
５２、２５２  第二関節位置推定モデル
１００ 関節位置学習装置
２００ 関節位置推定装置
２２８ 前景抽出部
２３０ 第一関節位置推定部
２３２ ランダム領域切り出し部
２３４ 第一関節位置推定モデル適用部
２４０ 第二関節位置推定部
２４２ 領域切り出し部
２４４ 第二関節位置推定モデル適用部
２４６ 推定関節位置統合部
２６０ 出力部
【図１】
2016212688.tif 000003
【図４】
2016212688.tif 000004
【図６】
2016212688.tif 000005
【図７】
2016212688.tif 000006
【図２】
2016212688.tif 000007
【図３】
2016212688.tif 000008
【図５】
2016212688.tif 000009