(57)【要約】【課題】画像に写る人の姿勢に偏りがある場合に、関節の位置を精度良く推定することができるようにする。【解決手段】関節尤度算出部３２０が、入力画像中の各画素について、関節推定器に基づいて、関節を表す複数の関節ラベルの各々に対する関節位置のスコアと配置関係のスコアとを算出する。疑似関節画像生成部２８０が、３次元モーションキャプチャデータと特定のカメラパラメータとに基づいて、３次元モーションキャプチャデータから各関節の２次元位置情報を表す複数の疑似関節画像を生成する。関節配置関係パラメータ算出部２８２が、各関節について、生成された複数の疑似関節画像に基づいて、第１の統計値と第２の統計値とを算出する。関節配置最適化部３２２が、関節位置のスコア及び配置関係のスコアと、第１の統計値及び第２の統計値とを含む、各関節の位置に対する評価関数を最適化するように、入力画像中の各関節の位置を算出する。【選択図】図１
2018013999.tif 000002
【特許請求の範囲】
【請求項１】
入力画像中の各画素について、予め求められた関節推定器に基づいて、関節を表す複数の関節ラベルの各々に対する、前記画素が前記関節ラベルが表す関節の関節位置である尤度を表す関節位置のスコアと、隣接する関節間の配置関係を表す複数の配置関係クラスの各々についての前記画素に位置する前記関節ラベルが表す関節と隣接する関節との間の配置関係が前記配置関係クラスとなる尤度を表す配置関係のスコアとを算出する関節尤度算出部と、
人物について計測された各関節の位置を表す３次元モーションキャプチャデータと、姿勢推定対象の人物が写る画像を撮像するカメラの予め定められた特定のカメラパラメータとに基づいて、あるいは、予め定められた人物の特定の行動パターンについて計測された前記関節の位置を表す３次元モーションキャプチャデータと、前記カメラの予め定められた複数のカメラパラメータとに基づいて、前記３次元モーションキャプチャデータから各関節の２次元位置情報を表す複数の疑似関節画像を生成する疑似関節画像生成部と、
各関節について、
前記疑似関節画像生成部によって生成された前記複数の疑似関節画像に基づいて、
前記関節の子関節に対する前記配置関係クラスの各々を条件とした前記関節の親関節に対する前記配置関係クラスの各々の頻度を表す第１の統計値と、前記関節の親関節に対する前記配置関係クラスの各々を条件とした前記親関節の子関節である前記関節に対する前記配置関係クラスの各々の頻度を表す第２の統計値とを算出する関節配置関係パラメータ算出部と、
前記関節尤度算出部によって算出された前記関節位置のスコア及び前記配置関係のスコアと、前記関節配置関係パラメータ算出部によって算出された前記第１の統計値及び前記第２の統計値とを含む、各関節の位置に対する評価関数を最適化するように、
前記入力画像中の各関節の位置を算出する関節配置最適化部と、
を含む姿勢推定装置。
【請求項２】
前記評価関数は、前記第１の統計値を用いて表され、かつ前記複数の関節の各々についての隣接する関節との間の配置関係の尤もらしさを表すスコアと、前記第２の統計値を用いて表され、かつ相互に隣接する関節のペアの間の配置関係の尤もらしさを表すスコアとを含む請求項１記載の姿勢推定装置。
【請求項３】
前記評価関数は、隣接する前記関節のペアの関節間の距離と予め設定された距離との差分が大きいほど、小さくなるように設定された、関節間の距離に関するスコアを更に含む
請求項１又は２に記載の姿勢推定装置。
【請求項４】
前記関節配置最適化部は、
各関節をノードとし、隣接する関節間をエッジで結合した木構造を表す骨格モデルの葉ノードから根ノードまで順に対象ノードとし、
前記評価関数を最適化するように、前記対象ノードが表す関節の位置、及び前記対象ノードが表す関節の、隣接関節に対する配置関係を計算することを繰り返す
請求項１〜請求項３の何れか１項に記載の姿勢推定装置。
【請求項５】
関節尤度算出部が、入力画像中の各画素について、予め求められた関節推定器に基づいて、関節を表す複数の関節ラベルの各々に対する、前記画素が前記関節ラベルが表す関節の関節位置である尤度を表す関節位置のスコアと、隣接する関節間の配置関係を表す複数の配置関係クラスの各々についての前記画素に位置する前記関節ラベルが表す関節と隣接する関節との間の配置関係が前記配置関係クラスとなる尤度を表す配置関係のスコアとを算出するステップと、
疑似関節画像生成部が、人物について計測された各関節の位置を表す３次元モーションキャプチャデータと、姿勢推定対象の人物が写る画像を撮像するカメラの予め定められた特定のカメラパラメータとに基づいて、あるいは、予め定められた人物の特定の行動パターンについて計測された前記関節の位置を表す３次元モーションキャプチャデータと、前記カメラの予め定められた複数のカメラパラメータとに基づいて、前記３次元モーションキャプチャデータから各関節の２次元位置情報を表す複数の疑似関節画像を生成するステップと、
関節配置関係パラメータ算出部が、
各関節について、
前記疑似関節画像生成部によって生成された前記複数の疑似関節画像に基づいて、
前記関節の子関節に対する前記配置関係クラスの各々を条件とした前記関節の親関節に対する前記配置関係クラスの各々の頻度を表す第１の統計値と、前記関節の親関節に対する前記配置関係クラスの各々を条件とした前記親関節の子関節である前記関節に対する前記配置関係クラスの各々の頻度を表す第２の統計値とを算出するステップと、
関節配置最適化部が、前記関節尤度算出部によって算出された前記関節位置のスコア及び前記配置関係のスコアと、前記関節配置関係パラメータ算出部によって算出された前記第１の統計値及び前記第２の統計値とを含む、各関節の位置に対する評価関数を最適化するように、前記入力画像中の各関節の位置を算出するステップと、
を含む姿勢推定方法。
【請求項６】
コンピュータを、請求項１〜請求項４の何れか１項に記載の姿勢推定装置の各部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、姿勢推定装置、方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、画像認識技術の発展に伴い、人が写る画像・映像から人体の骨格姿勢を推定する手法が高度化しており、様々に提案されている。人物姿勢推定のアプローチは大きく２つあり、人体のモデルをあらかじめ持っておきそのモデルのあてはめによって推定を行うアプローチ（例えば、非特許文献１を参照。）、人体の形状についての知識を明示的に用いることなく、画像特徴から関節位置がどこにあるのかを直接推定するアプローチ（例えば、非特許文献２を参照。）である。近年ではいずれのアプローチにおいても深層学習を用いた手法が高精度を示している。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Chen, Xianjie, and Alan L. Yuille. "Articulated pose estimation by a graphical model with image dependent pairwise relations." Advances in Neural Information Processing Systems. 2014.
【非特許文献２】Tompson, Jonathan, et al. "Efficient object localization using convolutional networks." Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2015.
【発明の概要】
【発明が解決しようとする課題】
【０００４】
単視点の画像・映像のみから人の骨格姿勢を推定する手法は、その見えの多様性から十分な精度での推定が難しいのが現状である。一方で、監視映像のようなカメラが固定されている状況においては、固定カメラからの人の見え方には偏りがあり、姿勢推定がより容易になると考えられる。また、推定対象がとっている行動があらかじめわかっている場合、同様に取りうる姿勢には偏りがあるため、その情報を活用できると考えられる。しかし、上記非特許文献１、２などの従来手法の枠組みでは、データの偏りを学習するために大量の画像に人体姿勢情報を付与する必要があり大きなコストがかかる。このようにラベル付けされた学習用データのない特定のシーンでの姿勢推定においてそのシーンでの姿勢情報の偏りを推定時に活用することが課題となっている。
【０００５】
本発明は上記問題点を考慮してなされたものであり、画像に写る人の姿勢に偏りがある場合に、関節の位置を精度良く推定することができる、姿勢推定装置、方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明の姿勢推定装置は、入力画像中の各画素について、予め求められた関節推定器に基づいて、関節を表す複数の関節ラベルの各々に対する、前記画素が前記関節ラベルが表す関節の関節位置である尤度を表す関節位置のスコアと、隣接する関節間の配置関係を表す複数の配置関係クラスの各々についての前記画素に位置する前記関節ラベルが表す関節と隣接する関節との間の配置関係が前記配置関係クラスとなる尤度を表す配置関係のスコアとを算出する関節尤度算出部と、人物について計測された各関節の位置を表す３次元モーションキャプチャデータと、姿勢推定対象の人物が写る画像を撮像するカメラの予め定められた特定のカメラパラメータとに基づいて、あるいは、予め定められた人物の特定の行動パターンについて計測された前記関節の位置を表す３次元モーションキャプチャデータと、前記カメラの予め定められた複数のカメラパラメータとに基づいて、前記３次元モーションキャプチャデータから各関節の２次元位置情報を表す複数の疑似関節画像を生成する疑似関節画像生成部と、各関節について、前記疑似関節画像生成部によって生成された前記複数の疑似関節画像に基づいて、前記関節の子関節に対する前記配置関係クラスの各々を条件とした前記関節の親関節に対する前記配置関係クラスの各々の頻度を表す第１の統計値と、前記関節の親関節に対する前記配置関係クラスの各々を条件とした前記親関節の子関節である前記関節に対する前記配置関係クラスの各々の頻度を表す第２の統計値とを算出する関節配置関係パラメータ算出部と、前記関節尤度算出部によって算出された前記関節位置のスコア及び前記配置関係のスコアと、前記関節配置関係パラメータ算出部によって算出された前記第１の統計値及び前記第２の統計値とを含む、各関節の位置に対する評価関数を最適化するように、前記入力画像中の各関節の位置を算出する関節配置最適化部と、を備える。
【０００７】
本発明の姿勢推定装置の前記評価関数は、前記第１の統計値を用いて表され、かつ前記複数の関節の各々についての隣接する関節との間の配置関係の尤もらしさを表すスコアと、前記第２の統計値を用いて表され、かつ相互に隣接する関節のペアの間の配置関係の尤もらしさを表すスコアとを含むようにしてもよい。
【０００８】
本発明の姿勢推定装置の前記評価関数は、隣接する前記関節のペアの関節間の距離と予め設定された距離との差分が大きいほど、小さくなるように設定された、関節間の距離に関するスコアを更に含むようにしてもよい。
【０００９】
本発明の姿勢推定装置の前記関節配置最適化部は、各関節をノードとし、隣接する関節間をエッジで結合した木構造を表す骨格モデルの葉ノードから根ノードまで順に対象ノードとし、前記評価関数を最適化するように、前記対象ノードが表す関節の位置、及び前記対象ノードが表す関節の、隣接関節に対する配置関係を計算することを繰り返すようにしてもよい。
【００１０】
また、本発明の姿勢推定方法は、関節尤度算出部が、入力画像中の各画素について、予め求められた関節推定器に基づいて、関節を表す複数の関節ラベルの各々に対する、前記画素が前記関節ラベルが表す関節の関節位置である尤度を表す関節位置のスコアと、隣接する関節間の配置関係を表す複数の配置関係クラスの各々についての前記画素に位置する前記関節ラベルが表す関節と隣接する関節との間の配置関係が前記配置関係クラスとなる尤度を表す配置関係のスコアとを算出するステップと、疑似関節画像生成部が、人物について計測された各関節の位置を表す３次元モーションキャプチャデータと、姿勢推定対象の人物が写る画像を撮像するカメラの予め定められた特定のカメラパラメータとに基づいて、あるいは、予め定められた人物の特定の行動パターンについて計測された前記関節の位置を表す３次元モーションキャプチャデータと、前記カメラの予め定められた複数のカメラパラメータとに基づいて、前記３次元モーションキャプチャデータから各関節の２次元位置情報を表す複数の疑似関節画像を生成するステップと、関節配置関係パラメータ算出部が、各関節について、前記疑似関節画像生成部によって生成された前記複数の疑似関節画像に基づいて、前記関節の子関節に対する前記配置関係クラスの各々を条件とした前記関節の親関節に対する前記配置関係クラスの各々の頻度を表す第１の統計値と、前記関節の親関節に対する前記配置関係クラスの各々を条件とした前記親関節の子関節である前記関節に対する前記配置関係クラスの各々の頻度を表す第２の統計値とを算出するステップと、関節配置最適化部が、前記関節尤度算出部によって算出された前記関節位置のスコア及び前記配置関係のスコアと、前記関節配置関係パラメータ算出部によって算出された前記第１の統計値及び前記第２の統計値とを含む、各関節の位置に対する評価関数を最適化するように、前記入力画像中の各関節の位置を算出するステップと、を含む。
【００１１】
また、本発明のプログラムは、コンピュータを、本発明の姿勢推定装置の各部として機能させるためのプログラムである。
【発明の効果】
【００１２】
本発明によれば、入力画像中の各画素について、予め求められた関節推定器に基づいて、関節位置のスコアと配置関係のスコアとを算出し、３次元モーションキャプチャデータと特定のカメラパラメータとに基づいて３次元モーションキャプチャデータから各関節の２次元位置情報を表す複数の疑似関節画像を生成し、各関節について、複数の疑似関節画像に基づいて、関節の親関節に対する配置関係クラスの各々の頻度を表す第１の統計値と、親関節の子関節である関節に対する配置関係クラスの各々の頻度を表す第２の統計値とを算出し、算出された関節位置のスコア及び配置関係のスコアと、算出された第１の統計値及び第２の統計値とを含む、各関節の位置に対する評価関数を最適化するように、入力画像中の各関節の位置を算出することにより、画像に写る人の姿勢に偏りがある場合に、関節の位置を精度良く推定することができる、という効果が得られる。
【図面の簡単な説明】
【００１３】
【図１】本実施形態の姿勢推定装置の概略構成の一例を示す構成図である。
【図２】簡易化された骨格モデルの一例を示す図である。
【図３】本実施形態の関節推定器学習部の概略構成の一例を示す構成図である。
【図４】配置関係クラスの一例を示す図である。
【図５】本実施形態の関節配置関係学習部の概略構成の一例を示す構成図である。
【図６】本実施形態の関節位置推定部の概略構成の一例を示す構成図である。
【図７】本実施形態の姿勢推定装置の関節推定器学習部における関節推定器学習処理の流れの一例を示すフローチャートである。
【図８】本実施形態の姿勢推定装置の関節配置関係学習部における関節配置関係学習処理の流れの一例を示すフローチャートである。
【図９】本実施形態の姿勢推定装置の関節位置推部における関節位置推定処理の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【００１４】
本発明の実施の形態では、画像を入力として画像に写る人物の骨格姿勢を推定する。具体的には、上記非特許文献１に示されるような画像特徴から関節ラベルを推定する関節推定器を用いて、推定された関節位置をつなぎ合わせた際に尤もらしい配置関係となるような姿勢推定を行う。
【００１５】
本発明の実施の形態では、画像特徴と関節ラベルとの関係については、人手によって関節ラベルが付与された既存のデータが数多くあるためそれらによって学習を行うが、取りうる姿勢が制限されるような特定のシーンにおけるラベル付けデータを大量に作製するにはコストがかかるため、モーションキャプチャデータを用いた疑似的な学習データの作製を行う。
【００１６】
モーションキャプチャデータは関節位置の３次元情報を含むため、制限されているカメラ配置、又は自由なカメラ配置において関節位置のカメラ映像への写り方をシミュレートすることができる。このようにしてシミュレートされた関節位置情報を用いて、特定のシーンにおける関節位置の尤もらしい配置関係を学習する。
【００１７】
また、入力画像に対して人体の姿勢を推定する際には、上記の画像特徴と関節との関係に基づく関節推定器によって各画素について関節らしさを表す尤度を算出し、それらの見た目による関節らしさと各関節間の配置関係に基づいた特定シーンにおける姿勢らしさを足し合わせて尤もらしい姿勢を推定する。
【００１８】
以下、図面を参照して本発明の実施の形態を詳細に説明する。なお、本実施の形態は本発明を限定するものではない。
【００１９】
図１は、本実施形態の姿勢推定装置１００の概略構成の一例を示す構成図である。図１に示すように本実施形態の姿勢推定装置１００は、入力部１０と、演算部２０と、出力部４０とを備える。
【００２０】
入力部１０は、訓練画像及び関節位置データである学習データを受け付ける。学習データは、後述する関節推定器学習部２４において用いられる。また、入力部１０は、３次元モーションキャプチャデータ及びカメラパラメータを受け付ける。３次元モーションキャプチャデータ及びカメラパラメータは、後述する関節配置関係学習部２８において用いられる。また、入力部１０は、入力画像を受け付ける。入力画像は、後述する関節位置推定部３２において用いられる。
【００２１】
演算部２０は、骨格モデル記憶部２２と、関節推定器学習部２４と、関節推定器記憶部２６と、関節配置関係学習部２８と、関節配置関係パラメータ記憶部３０と、関節位置推定部３２とを備えている。
【００２２】
骨格モデル記憶部２２には、各関節をノードとし、隣接する関節間をエッジで結合した木構造を表す骨格モデルが格納されている。図２に、骨格モデルの一例を示す。本実施形態では、図２に示すように、推定対象の人体の関節が木構造によって事前に定義されている。木構造の根ノードは頭部を表し、葉ノードは、手足の端点を表す。また、エッジによって結ばれている２つの関節を、隣接する関節と称し、その中で根側を親関節、葉側を子関節と称する。本実施形態では、図２に示した骨格モデルを用いており、関節としては、「頭」、「首」、「肩」、「肘」、「手」、「腿」、「膝」、及び「足」を採用している。
【００２３】
関節推定器学習部２４は、図３に示すように、入力部１０により受け付けた、訓練画像及び関節位置データの組み合わせである学習データと、骨格モデル記憶部２２に格納された骨格モデルとに基づいて、機械学習を用いて関節推定器を学習する。
【００２４】
関節推定器は、画像中の各画素について、関節を表す複数の関節ラベルの各々に対し、当該画素が、当該関節ラベルが表す関節の関節位置である尤度を表す関節位置のスコアを算出する。また、本実施の形態の関節推定器は、画像中の各画素について、隣接する関節間の配置関係を表す複数の配置関係クラスの各々及び関節ラベルの各々について、当該画素に位置する当該関節ラベルが表す関節と隣接する関節との間の配置関係が、当該配置関係クラスとなる尤度を表す配置関係のスコアを算出する。
【００２５】
このように、関節推定器によって、入力画像中の各画素について、関節ラベルに属する尤度が算出されると共に、関節ラベルだけでなく隣接する関節との配置関係についてもクラス分けが行われ、配置関係クラスに属する尤度が算出される。
【００２６】
図４に、配置関係クラスの一例を示す。本実施の形態では、図４に示すように、入力部１０により受け付けた学習データの関節位置データに含まれる関節位置情報を用いて、予め隣接する関節間の相対的な配置を一定数のクラスにクラスタリングする。
【００２７】
そして、関節推定器学習部２４は、関節ラベルと配置関係クラスとの組み合わせによって分けられたデータを１つのクラスとして多クラス識別を行う関節推定器を学習する。
【００２８】
学習された関節推定器は、後述する関節尤度算出部３２０において、画像中の各画素について各関節に属する尤度及び隣接する関節との配置関係が各配置関係クラスに属する尤度を算出する際に用いられる。
【００２９】
こうした推定を高精度に行う手法として深層学習を用いる方法が知られているが、画像の勾配を特徴としてBoostingやSupport Vector Machineを識別器として用いても良い。上記非特許文献１では、深層学習を用いて同様の関節の配置関係を判別する関節推定器の学習を行っている。
【００３０】
関節推定器記憶部２６には、関節推定器学習部２４によって学習された関節推定器が格納される。
【００３１】
関節配置関係学習部２８は、入力部１０により受け付けた、人物について計測された各関節の位置を表す複数の３次元モーションキャプチャデータと、姿勢推定対象の人物が写る画像を撮像するカメラの予め定められた特定のカメラパラメータとに基づいて、特定のシーンでカメラに写る関節配置をシミュレートし、シミュレートされた関節配置の偏りを学習する。関節配置関係学習部２８は、図５に示すように、疑似関節画像生成部２８０と、関節配置関係パラメータ算出部２８２とを備える。
【００３２】
疑似関節画像生成部２８０は、入力部１０により受け付けた複数の３次元モーションキャプチャデータと、カメラパラメータとに基づいて、３次元モーションキャプチャデータが表す各関節の３次元位置から、カメラに写る各関節の２次元位置情報を表す複数の疑似関節画像を生成する。
【００３３】
本実施の形態では、カメラパラメータには内部パラメータと外部パラメータとが含まれている。内部パラメータは、姿勢推定対象の人物が写る画像を撮像するカメラの画角、レンズゆがみ等である。また、外部パラメータは、撮像対象の人物に対するカメラの位置と向きである。
【００３４】
３次元モーションキャプチャデータは、例えば、人体にマーカーが付けられ、様々な人間の行動について記録されたデータとして、予め取得される。カメラパラメータが既知の場合、様々な人間の行動について記録された３次元モーションキャプチャデータに基づき、既知の視点からの関節位置の見え方をシミュレートすることができ、複数の疑似関節画像を生成することができる。なお、各関節の配置関係については、関節の配置関係クラスを用いて離散化する。
【００３５】
なお、本実施の形態では、カメラパラメータが既知である場合を例に説明するが、行動パターンが既知であるなどの場合にも人体姿勢の偏りがシミュレートできれば同様に適用可能である。この場合、疑似関節画像生成部２８０は、予め定められた人物の特定の行動パターンについて計測された関節の位置を表す複数の３次元モーションキャプチャデータと、カメラの予め定められた複数のカメラパラメータとに基づいて、複数の３次元モーションキャプチャデータから複数の疑似関節画像を生成する。
【００３６】
関節配置関係パラメータ算出部２８２は、各関節について、骨格モデル記憶部２２に格納された骨格モデルと、疑似関節画像生成部２８０によって生成された複数の疑似関節画像とに基づいて、当該関節の隣接する関節に対する配置関係クラスの各々の頻度を算出する。
【００３７】
また、関節配置関係パラメータ算出部２８２は、各関節について、骨格モデル記憶部２２に格納された骨格モデルと、疑似関節画像生成部２８０によって生成された複数の疑似関節画像とに基づいて、当該関節の子関節に対する配置関係クラスの各々を条件とした当該関節の親関節に対する配置関係クラスの各々の頻度を表す第１の統計値を算出する。
【００３８】
また、関節配置関係パラメータ算出部２８２は、各関節について、骨格モデル記憶部２２に格納された骨格モデルと、複数の疑似関節画像とに基づいて、当該関節の親関節に対する配置関係クラスの各々を条件とした親関節の子関節である当該関節に対する配置関係クラスの各々の頻度を表す第２の統計値を算出する。
【００３９】
具体的には、関節配置関係パラメータ算出部２８２は、骨格モデル記憶部２２に格納された骨格モデルと、疑似関節画像生成部２８０によりシミュレートによって得られた疑似関節画像とに基づいて、複数の疑似関節画像の各々について、隣接する関節の配置関係クラスを算出し、複数の疑似関節画像について配置関係クラスを数え上げることで、以下の（１）〜（３）に示す統計値を求め、関節配置関係パラメータとする。
【００４０】
（１）関節ｉの隣接する関節ｋに対する配置関係クラスｍｉｋがｔとなる頻度
（２）第１の統計値：関節ｉの子関節に対する配置関係が既知の場合に、関節ｉの親関節ｐ（ｉ）に対する配置関係クラスｍｉｐ（ｉ）がｔとなる頻度
（３）第２の統計値：関節ｋの親関節ｉに対する配置関係が既知の場合に、関節ｉの子関節ｋに対する配置関係クラスｍｉｋがｔとなる頻度
【００４１】
関節配置関係パラメータ記憶部３０には、関節配置関係パラメータ算出部２８２によって算出された関節配置関係パラメータが格納される。
【００４２】
関節位置推定部３２は、入力部１０により受け付けた入力画像と、関節推定器記憶部２６に格納された関節推定器と、関節配置関係パラメータ記憶部３０に格納された関節配置関係パラメータとに基づいて、入力画像に含まれる人体の姿勢推定を行う。関節位置推定部３２は、図６に示すように、関節尤度算出部３２０と、関節配置最適化部３２２とを備えている。
【００４３】
関節尤度算出部３２０は、入力部１０により受け付けた入力画像中の各画素について、関節推定器記憶部２６に格納された関節推定器を用いて、各関節ラベル及び配置関係クラスについての尤度の計算を行い、関節位置のスコア及び配置関係のスコアとする。この場合、尤度の算出は各画素に対して行い、関節推定器の出力としては、ある画素ｌについて、関節ラベルｊがｉとなる尤度Ｐ（ｊ＝ｉ│Ｉ（ｌ））と、関節ラベルｊがｉとなるときの隣接する関節ｋに対する配置関係クラスｍがｔとなる尤度Ｐ（ｍｉｋ＝ｔ｜ｊ＝ｉ，Ｉ（ｌ））とが得られる。
【００４４】
関節配置最適化部３２２は、関節尤度算出部３２０によって算出された関節位置のスコア及び配置関係のスコアと、関節配置関係パラメータ記憶部３０に格納された第１の統計値及び第２の統計値とを含む、各関節の位置に対する評価関数を最適化するように、入力部１０により受け付けた入力画像中の各関節の位置を算出する。本実施の形態では、以下の式（１）に示すような評価関数を最大化することを考える。
【００４５】
【数１】
2018013999.tif 000003
（１）
【００４６】
ここで、ｌが各関節の位置を表すベクトル、ｔが各隣接する関節ペアの配置関係クラスを示しており、Ｖは関節ノードの集合、εは隣接する関節のペアの集合を示し、ペアの中でもｉが親関節、ｋが子関節を示している。また、Ｉは入力画像を示す。
【００４７】
また、上記式（１）では、Ｕは関節尤度算出部３２０によって算出された関節ｉの関節位置のスコアを表す。また、Ｒａは関節尤度算出部３２０によって算出された、親関節ｉに対する子関節ｋの配置関係のスコア、及び子関節ｋに対する親関節ｉの配置関係のスコアを表す。
【００４８】
また、Ｊａは、複数の関節の各々についての隣接する関節との間の配置関係の尤もらしさを表すスコアを表す。Ｊａは、関節配置関係パラメータ記憶部３０に格納された関節配置関係パラメータのうちの、第１の統計値を用いて表される。
【００４９】
また、Ｊｃは、相互に隣接する関節のペアの間の配置関係の尤もらしさを表すスコアを表す。Ｊｃは、関節配置関係パラメータ記憶部３０に格納された関節配置関係パラメータのうちの、第２の統計値を用いて表される。
【００５０】
また、Ｒｄは、隣接する関節のペアの関節間の距離と予め設定された距離との差分が大きいほど、小さくなるように設定された、関節間の距離に関するスコアを表す。
【００５１】
上記式（１）の評価関数では、各関節についての関節位置のスコアＵと、各関節についての隣接する関節との間の配置関係の尤もらしさを表すスコアＪａとが足し合わされ、また各隣接する関節のペアについて、関節間の距離に関するスコアＲｄと、画像情報に基づく配置関係のスコアＲａと、相互に隣接する関節のペアの間の配置関係の尤もらしさを表すスコアＪｃとが足し合わされる。
【００５２】
本実施の形態では、訓練画像及び関節位置データである学習データから直接学習される関節位置のスコアＵ、配置関係のスコアＲａ及び関節間の距離に関するスコアＲｄに加えて、特定シーンにおける姿勢の偏りに基づく関節配置関係に対する、複数の関節の各々についての隣接する関節との間の配置関係の尤もらしさを表すスコアＪａ及び相互に隣接する関節のペアの間の配置関係の尤もらしさを表すスコアＪｃを考慮することで、特定シーンにおける姿勢の推定精度を高めることができる。
【００５３】
関節位置のスコアＵ及び配置関係のスコアＲａを以下の（２），（３）に示す。
【００５４】
【数２】
2018013999.tif 000004
（２）
2018013999.tif 000005
（３）
【００５５】
ここで、ｗｉ（Ｕ）及びｗｉｋ（Ｒａ）はスコア間の影響を調整するためのパラメータである。上記式に示すように、関節位置のスコアＵ及び配置関係のスコアＲａは、関節推定器の出力より算出される。また、関節間の距離に基づくスコアＲｄは以下の式によって求められる。
【００５６】
【数３】
2018013999.tif 000006
2018013999.tif 000007
（４）
【００５７】
ここで、〈  ，〉は内積処理を示す。また、ψは差分ベクトルに対して上式の変換を行う関数を示す。ｒは各隣接する関節のペアに対して事前に計算された平均的な差分ベクトルを示しており、関節間の距離に関するスコアＲｄは、隣接する関節ペアとその配置関係クラスに対して関節位置の相対配置が標準的な相対配置ｒとずれるほど低いスコアが出力されるように設計されている。ｗｉｋ（Ｒｄ）及びｗｋｉ（Ｒｄ）はスコア間の影響を調整するためのパラメータベクトルである。
【００５８】
また、隣接する関節の配置関係同士の尤もらしさを示す、複数の関節の各々についての隣接する関節との間の配置関係の尤もらしさを表すスコアＪａ及び相互に隣接する関節のペアの間の配置関係の尤もらしさを表すスコアＪｃは以下の式（５）、（６）によって求められる。
【００５９】
【数４】
2018013999.tif 000008
（５）
2018013999.tif 000009
（６）
【００６０】
ここで、Ｃ（ｉ）は関節ｉの持つ子関節の集合、ｐ（ｉ）は関節ｉの親関節を示しており、Ｊａは子関節との配置関係クラスが既知である場合に親関節との配置関係クラスがｔとなる頻度に応じた尤度に基づき、Ｊｃは子関節から親関節への配置関係クラスが既知である場合に親関節から子関節への配置関係クラスがｔとなる頻度に応じた尤度に基づいている。ｗｉ（Ｊａ）及びｗｉｋ（Ｊｃ）はスコア間の影響を調整するためのパラメータベクトルである。
【００６１】
本実施の形態では、骨格モデルに木構造を用いているため、上記各スコアの合計値は動的計画法によって効率的に求めることができる。具体的には以下の式（７）、（８）を葉ノードから順に計算することによってスコアが最大となる対象ノードが表す関節ｉの関節位置が求められる。
【００６２】
【数５】
2018013999.tif 000010
（７）
2018013999.tif 000011
（８）
【００６３】
従って、関節配置最適化部３２２は、骨格モデル記憶部２２に格納された骨格モデルの葉ノードから根ノードまで順に対象ノードとし、上記式（７）及び（８）に示す評価関数を最適化するように、対象ノードが表す関節ｉの位置、及び対象ノードが表す関節ｉの、隣接関節ｃ，ｋに対する配置関係クラスｔｉｃ,ｔｉｐを計算することを繰り返す。
【００６４】
ここで、上記式（７）に示すＳｉｃ（Ｃ）は各関節の子関節への配置関係クラス毎に計算され、上記式（８）に示すＳｉｐ（Ｐ）は各関節の親関節への配置関係クラス毎に計算される。葉ノードから順にそれぞれのスコアを最大化していくことで、対象ノードが表す関節の位置、子関節への配置関係クラス、及び親関節への配置関係クラスが決定される。最後に根ノードである頭部関節の位置ｌ１を以下の式（９）に示すスコアの最大化によって求めることで、対応する各関節位置を逆算していき、各関節位置を得ることができる。
【００６５】
【数６】
2018013999.tif 000012
（９）
【００６６】
なお、各スコアの影響の度合いを決める重みｗ（ｗｉ（Ｕ），ｗｉｋ（Ｒａ），ｗｉｋ（Ｒｄ），ｗｋｉ（Ｒｄ），ｗｉ（Ｊａ），ｗｉｋ（Ｊｃ））は人手によって値を設定しても良いし、Structured SVM等の手法を用いて学習データに基づいて決定しても良い。
【００６７】
出力部４０は、関節配置最適化部３２２によって得られた関節位置と配置関係クラスとを出力する。
【００６８】
なお、本実施形態の姿勢推定装置１００は、ＣＰＵ（Central  Processing  Unit）、ＲＡＭ（Random  Access  Memory）、及びＲＯＭ（Read  Only  Memory）等を備えたコンピュータにより実現されており、ＣＰＵが、ＲＯＭに記憶されているプログラムを実行することにより、後述する関節推定器学習処理、関節配置関係学習処理、及び関節位置推定処理が実行される。
【００６９】
次に、本実施形態の姿勢推定装置１００の作用について説明する。
【００７０】
まず、関節推定器学習部２４において実行される関節推定器学習処理について説明する。関節推定器学習部２４は、入力部１０が訓練画像及び関節位置データを受け付けると、図７に一例を示す関節推定器学習処理を実行する。
【００７１】
＜関節推定器学習処理ルーチン＞
ステップＳ１００で、関節推定器学習部２４は、入力部１０から入力された訓練画像及び関節位置データを取得する。
【００７２】
次にステップＳ１０２で、関節推定器学習部２４は、上記ステップＳ１００で取得した訓練画像及び関節位置データに基づいて、機械学習を用いて関節推定器を学習する。
【００７３】
次にステップＳ１０２で、関節推定器学習部２４は、上記ステップＳ１０２で得られた関節推定器を関節推定器記憶部２６に格納して、関節推定器学習処理を終了する。
【００７４】
関節推定器記憶部２６に関節推定器が格納され、入力部１０が複数の３次元モーションキャプチャデータ及び特定のカメラパラメータを受け付けると、関節配置関係学習部２８は、図８に一例を示す関節配置関係学習処理を実行する。
【００７５】
＜関節配置関係学習処理ルーチン＞
ステップＳ２００で、疑似関節画像生成部２８０は、入力部１０により受け付けた３次元モーションキャプチャデータと、カメラパラメータとを取得する。
【００７６】
次のステップＳ２０２で、疑似関節画像生成部２８０は、上記ステップＳ２００で受け付けた３次元モーションキャプチャデータとカメラパラメータとに基づいて、３次元モーションキャプチャデータから各関節の２次元位置情報を表す複数の疑似関節画像を生成する。
【００７７】
次のステップＳ２０４で、関節配置関係パラメータ算出部２８２は、各関節について、骨格モデル記憶部２２に格納された骨格モデルと、上記ステップＳ２０２で生成された複数の疑似関節画像に基づいて、関節配置関係パラメータを算出する。
【００７８】
次のステップＳ２０６で、関節配置関係パラメータ算出部２８２は、上記ステップＳ２０４で得られた関節配置関係パラメータを、関節配置関係パラメータ記憶部３０に格納し、関節配置関係学習処理を終了する。
【００７９】
関節配置関係パラメータ記憶部３０に関節配置関係パラメータが格納され、入力部１０が入力画像を受け付けると、関節位置推定部３２は、図９に一例を示す関節位置推定処理を実行する。
【００８０】
＜関節位置推定処理ルーチン＞
ステップＳ３００で、関節尤度算出部３２０は、入力部１０により受け付けた入力画像を取得する。
【００８１】
ステップＳ３０２で、関節尤度算出部３２０は、上記ステップＳ３００で取得した入力画像中の各画素について、関節推定器記憶部２６に格納された関節推定器を用いて、各関節の関節位置のスコアＵと、各関節及び各配置関係のスコアＲａとを算出する。
【００８２】
ステップＳ３０４で、関節配置最適化部３２２は、上記ステップＳ３０２で算出された関節位置のスコアＵ及び配置関係のスコアＲａと、関節配置関係パラメータ記憶部３０に格納された第１の統計値及び第２の統計値とを含む、各関節の位置に対する上記式（１）に示す評価関数を最適化するように、上記ステップＳ３００で受け付けた入力画像中の各関節の位置を算出する。
【００８３】
ステップＳ３０６で、出力部４０は、関節配置最適化部３２２によって得られた関節位置と配置関係クラスとを出力して、関節位置推定処理を終了する。
【００８４】
以上説明したように、本実施形態の姿勢推定装置１００によれば、入力画像中の各画素について、予め求められた関節推定器に基づいて、関節位置のスコアと配置関係のスコアとを算出し、３次元モーションキャプチャデータと特定のカメラパラメータとに基づいて３次元モーションキャプチャデータから各関節の２次元位置情報を表す複数の疑似関節画像を生成し、各関節について、複数の疑似関節画像に基づいて、関節の親関節に対する配置関係クラスの各々の頻度を表す第１の統計値と、親関節の子関節である関節に対する配置関係クラスの各々の頻度を表す第２の統計値とを算出し、算出された関節位置のスコア及び配置関係のスコアと、算出された第１の統計値及び第２の統計値とを含む、各関節の位置に対する評価関数を最適化するように、入力画像中の各関節の位置を算出することにより、画像に写る人の姿勢に偏りがある場合に、関節の位置を精度良く推定することができる。
【００８５】
また、本実施形態の姿勢推定装置１００によれば、例えば人物を撮影しているカメラと床面との関係が既知である等の条件により、人物が予め取りうる姿勢の偏りがわかっている場合、その情報を活用して精度良く姿勢推定を行うことができる。特に、監視カメラ映像を対象として人物の姿勢推定を行う場合、カメラに写る人の取りうる姿勢はそのカメラ配置によって限定されており、大きな精度向上が期待される。
【００８６】
なお、本発明は、上述した実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【００８７】
例えば、上記の実施の形態において、上記式（１）に示す評価関数を最適化する場合を例に説明したが、これに限定されるものではなく、例えば、評価関数には関節間の距離に関するスコアＲｄが含まれていなくともよい。
【００８８】
また、本実施形態において、関節配置最適化部３２２は、関節位置と配置関係クラスとを推定する場合を例に説明したが、これに限定されるものではなく、例えば、関節位置のみを推定してもよい。
【００８９】
また、本実施形態では、関節推定器学習部２４、関節配置関係学習部２８、及び関節位置推定部３２が１つの装置（姿勢推定装置１００）内に備えられている場合を例に説明したが、関節推定器学習部２４、関節配置関係学習部２８、及び関節位置推定部３２を別々の装置として構成してもよい。
【００９０】
上述の姿勢推定装置１００は、内部にコンピュータシステムを有しているが、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
【００９１】
また、本願明細書中において、プログラムが予めインストールされている実施形態として説明したが、当該プログラムを、コンピュータ読み取り可能な記録媒体に格納して提供することも可能である。
【符号の説明】
【００９２】
１０   入力部
２０   演算部
２２   骨格モデル記憶部
２４   関節推定器学習部
２６   関節推定器記憶部
２８   関節配置関係学習部
３０   関節配置関係パラメータ記憶部
３２   関節位置推定部
４０   出力部
１００ 姿勢推定装置
２８０ 疑似関節画像生成部
２８２ 関節配置関係パラメータ算出部
３２０ 関節尤度算出部
３２２ 関節配置最適化部
【図１】
2018013999.tif 000013
【図２】
2018013999.tif 000014
【図３】
2018013999.tif 000015
【図４】
2018013999.tif 000016
【図５】
2018013999.tif 000017
【図６】
2018013999.tif 000018
【図７】
2018013999.tif 000019
【図８】
2018013999.tif 000020
【図９】
2018013999.tif 000021